piccolo upgrade al mio scriptone di notifica.
prima se chiedevo qualcosa a home assistant dai nest mini (tramite routine google assistant) rispondeva su tutti insieme.
ora ho 4 switch che si chiamano "cast" in home assistant, in aree diverse (ognuna per ogni area dove c'è un gugu), esposti a google assistant
aggiungendo un "attiva cast" nei comandi della routine di google assistant, home assistant sa in quale area ho chiesto (si attiva lo switch nell'area che sente il comando)
con qualche sistema di specchi e leve (ultimo "switch cast" riempie un input_text con il nome del nest, dopo 10 secondi resetta) manda il tts solo al gugu che ha sentito il comando
ora faccio maddare harbi, dovrei semplificare il tutto che sono aggiunte su aggiunte ma sticazzi
alias: Notifica
sequence:
- choose:
- conditions:
- condition: template
value_template: >-
{{ ( Speaker | default(none) is not none ) and
((is_state('input_boolean.non_disturbare','off' ) and
(silenzio_ospiti|default(false) is false or
is_state('input_boolean.modalita_ospiti','off' ))) or
Prioritario|default(false)) }}
sequence:
- if:
- condition: not
conditions:
- condition: state
entity_id: media_player.garage
state: playing
- condition: state
entity_id: media_player.pianela
state: playing
- condition: state
entity_id: media_player.sasso
state: playing
- condition: state
entity_id: media_player.saponetta
state: playing
- condition: state
entity_id: media_player.soggiorno
state: playing
then:
- data: {}
continue_on_error: true
action: script.reimposta_volumi_scatoline
- if:
- condition: template
value_template: "{{ messaggio_ai | default(false) }}"
then:
- metadata: {}
data:
agent_id: 580c6fe2e4f4a26ecced6b4aac872d79
text: "avviso: {{Messaggio}}"
response_variable: messaggio_AI
action: conversation.process
- if:
- condition: template
value_template: "{{states('input_text.input_vocale') != ''}}"
then:
- data:
entity_id: media_player.{{states('input_text.input_vocale')}}
message: "{{ messaggio_AI.response.speech.plain.speech }}"
action: tts.cloud_say
continue_on_error: true
else:
- data:
entity_id: "{{ Speaker.entity_id }}"
message: "{{ messaggio_AI.response.speech.plain.speech }}"
action: tts.cloud_say
continue_on_error: true
else:
- if:
- condition: template
value_template: "{{states('input_text.input_vocale') != ''}}"
then:
- data:
entity_id: media_player.{{states('input_text.input_vocale')}}
message: "{{ Messaggio }}"
action: tts.cloud_say
continue_on_error: true
else:
- data:
entity_id: "{{ Speaker.entity_id }}"
message: "{{ Messaggio }}"
action: tts.cloud_say
continue_on_error: true
else:
- if:
- condition: template
value_template: "{{ ( Speaker.entity_id != 'media_player.garage') }}"
then:
- if:
- condition: template
value_template: "{{ messaggio_ai | default(false) }}"
then:
- metadata: {}
data:
agent_id: 580c6fe2e4f4a26ecced6b4aac872d79
text: "avviso: {{Messaggio}}"
response_variable: messaggio_AI
action: conversation.process
- if:
- condition: template
value_template: "{{states('input_text.input_vocale') != ''}}"
then:
- data:
command: >-
annuncia su {{states('input_text.input_vocale')
+ ' ' +
messaggio_AI.response.speech.plain.speech }}
action: google_assistant_sdk.send_text_command
continue_on_error: true
else:
- data:
command: >-
annuncia '{{
messaggio_AI.response.speech.plain.speech }}'
action: google_assistant_sdk.send_text_command
continue_on_error: true
else:
- if:
- condition: template
value_template: "{{states('input_text.input_vocale') != ''}}"
then:
- data:
command: >-
annuncia su {{states('input_text.input_vocale')
+ ' ' + Messaggio}}
action: google_assistant_sdk.send_text_command
continue_on_error: true
else:
- data:
command: annuncia '{{ Messaggio }}'
action: google_assistant_sdk.send_text_command
continue_on_error: true
else:
- if:
- condition: template
value_template: "{{ messaggio_ai | default(false) }}"
then:
- metadata: {}
data:
agent_id: 580c6fe2e4f4a26ecced6b4aac872d79
text: "avviso: {{Messaggio}}"
response_variable: messaggio_AI
action: conversation.process
- data:
command: >-
annuncia su garage '{{
messaggio_AI.response.speech.plain.speech }}'
action: google_assistant_sdk.send_text_command
continue_on_error: true
else:
- data:
command: annuncia su garage '{{ Messaggio }}'
action: google_assistant_sdk.send_text_command
continue_on_error: true
- choose:
- conditions:
- condition: template
value_template: "{{ Telefono_paolo|default(false) }}"
sequence:
- if:
- condition: template
value_template: "{{ messaggio_ai | default(false) }}"
then:
- metadata: {}
data:
agent_id: 580c6fe2e4f4a26ecced6b4aac872d79
text: "avviso: {{Messaggio}}"
response_variable: messaggio_AI
action: conversation.process
- data:
title: "{{ Titolo|default('') }}"
message: "{{ messaggio_AI.response.speech.plain.speech }}"
data:
ttl: 0
priority: high
tag: "{{ Tag|default('notifica_paolo') }}"
image: "{{ Immagine|default('') }}"
clickAction: "{{ Azione|default('') }}"
action: notify.mobile_app_telefono_paolo
else:
- data:
title: "{{ Titolo|default('') }}"
message: "{{ Messaggio }}"
data:
ttl: 0
priority: high
tag: "{{ Tag|default('notifica_paolo') }}"
image: "{{ Immagine|default('') }}"
clickAction: "{{ Azione|default('') }}"
action: notify.mobile_app_telefono_paolo
- choose:
- conditions:
- condition: template
value_template: "{{ Telefono_enrica|default(false) }}"
sequence:
- if:
- condition: template
value_template: "{{ messaggio_ai | default(false) }}"
then:
- metadata: {}
data:
agent_id: 580c6fe2e4f4a26ecced6b4aac872d79
text: "avviso: {{Messaggio}}"
response_variable: messaggio_AI
action: conversation.process
- data:
title: "{{ Titolo|default('') }}"
message: "{{ messaggio_AI.response.speech.plain.speech }}"
data:
ttl: 0
priority: high
tag: "{{ Tag|default('notifica_enrica') }}"
image: "{{ Immagine|default('') }}"
clickAction: "{{ Azione|default('') }}"
action: notify.mobile_app_telefono_enrica
else:
- data:
title: "{{ Titolo|default('') }}"
message: "{{ Messaggio }}"
data:
ttl: 0
priority: high
tag: "{{ Tag|default('notifica_enrica') }}"
image: "{{ Immagine|default('') }}"
clickAction: "{{ Azione|default('') }}"
action: notify.mobile_app_telefono_enrica
- choose:
- conditions:
- condition: template
value_template: "{{ TV|default(false) }}"
- condition: template
value_template: "{{not is_state('media_player.tv', 'off')}}"
sequence:
- if:
- condition: template
value_template: "{{ messaggio_ai | default(false) }}"
then:
- metadata: {}
data:
agent_id: 580c6fe2e4f4a26ecced6b4aac872d79
text: "avviso: {{Messaggio}}"
response_variable: messaggio_AI
action: conversation.process
- data:
title: "{{ Titolo|default('') }}"
message: "{{ messaggio_AI.response.speech.plain.speech }}"
action: notify.tv
else:
- data:
title: "{{ Titolo|default('') }}"
message: "{{ Messaggio }}"
action: notify.tv
- choose:
- conditions:
- condition: template
value_template: "{{ PC|default(false) }}"
sequence:
- if:
- condition: template
value_template: "{{ messaggio_ai | default(false) }}"
then:
- metadata: {}
data:
agent_id: 580c6fe2e4f4a26ecced6b4aac872d79
text: "avviso: {{Messaggio}}"
response_variable: messaggio_AI
action: conversation.process
- data:
topic: iotlink/workgroup/paolo-portatile/commands/notify
payload: >-
{ "title": "{{ Titolo|default('Home Assistant') }}",
"message": "{{ messaggio_AI.response.speech.plain.speech
}}", "launchParams": "toast://open/{{ Azione|default('')
}}"}
action: mqtt.publish
else:
- data:
topic: iotlink/workgroup/paolo-portatile/commands/notify
payload: >-
{ "title": "{{ Titolo|default('Home Assistant') }}",
"message": "{{ Messaggio }}", "launchParams":
"toast://open/{{ Azione|default('') }}"}
action: mqtt.publish
- choose:
- conditions:
- condition: template
value_template: "{{ Email|default('') != \"\" }}"
sequence:
- if:
- condition: template
value_template: "{{ messaggio_ai | default(false) }}"
then:
- metadata: {}
data:
agent_id: 580c6fe2e4f4a26ecced6b4aac872d79
text: "avviso: {{Messaggio}}"
response_variable: messaggio_AI
action: conversation.process
- data:
message: |-
{{ messaggio_AI.response.speech.plain.speech }}
{{Azione|default('')}}
title: "{{ Titolo|default('') }}"
target: "{{ Email|default('') }}"
action: notify.email
else:
- data:
message: |-
{{ Messaggio }}
{{Azione|default('')}}
title: "{{ Titolo|default('') }}"
target: "{{ Email|default('') }}"
action: notify.email
description: Notifica telefono, tv, vocale, pc
fields:
Messaggio:
description: Testo della notifica / frase da pronunciare
required: true
selector:
text: null
messaggio_ai:
name: Rielabora messaggio AI
description: Rielabora il messaggio tramite OpenAI
default: false
required: true
selector:
boolean: null
Speaker:
description: Invia notifica vocale
selector:
target:
entity:
domain: media_player
integration: cast
Titolo:
description: Titolo della notifica
selector:
text: null
Tag:
description: Tag della notifica ai telefoni
selector:
text: null
Immagine:
description: Url immagine nella notifica ai telefoni
selector:
text: null
Azione:
description: Url da aprire al clic della notifica (tel/pc), da aggiungere alla mail
selector:
text: null
Prioritario:
description: Ignora non disturbare e modalità ospiti
default: false
required: true
selector:
boolean: null
silenzio_ospiti:
name: Non disturbare ospiti
description: Nessun output vocale se ci sono ospiti
default: false
required: true
selector:
boolean: null
Email:
description: Invia email
selector:
text:
type: email
Telefono_paolo:
name: Telefono Paolo
description: Invia notifica al telefono di Paolo
default: false
required: true
selector:
boolean: null
Telefono_enrica:
name: Telefono Enrica
description: Invia notifica al telefono di Enrica
default: false
required: true
selector:
boolean: null
TV:
description: Invia notifica alla tv
default: false
required: true
selector:
boolean: null
PC:
description: Invia notifica al pc di Paolo
default: false
required: true
selector:
boolean: null
mode: queued
max: 10
icon: mdi:bell-outline