Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- sensor:
- - platform: template
- sensors:
- last_alexa:
- value_template: >
- {{ expand(states.group.ovunque) | selectattr('attributes.last_called','eq',True) | map(attribute='entity_id') | first }}
- input_text:
- alexa_actionable_notification:
- name: Alexa Actionable Notification Holder
- max: 255
- initial: '{"text": "Questa è una prova delle azioni Alexa con skill personalizzata. Funziona?", "event": "actionable.skill.test"}'
- script:
- # Script actionable notification di Alexa
- activate_alexa_actionable_notification:
- description: "Attiva una notifica azionabile su uno specifico dispositivo echo"
- fields:
- text:
- description: "Il testo che vuoi che Alexa pronunci"
- example: "Vuoi chiudere la porta?"
- event_id:
- description: "ID evento da correlare per le risposte"
- example: "ask_close_door"
- alexa_device:
- description: "Dispositivo Alexa che vuoi usare"
- example: "media_player.alexa_mansarda"
- sequence:
- - service: input_text.set_value
- data:
- entity_id: input_text.alexa_actionable_notification
- value: '{"text": "{{ text }}", "event": "{{ event_id }}"}'
- - service: media_player.play_media
- data:
- entity_id: "{{ alexa_device }}"
- media_content_type: skill
- media_content_id: amzn1.ask.skill.2352ef13-b515-43a9-92b2-5a64fc8e3201
- # Script da chiamare con routing di Alexa: "Alexa, è pronto da mangiare"
- # TODO: raffinare le notifiche a seconda di dove vengono rilevati gli utenti, magari chiamandoli per nome se si sa dove sono.
- pronto_da_mangiare:
- alias: "E' pronto da mangiare"
- description: "Script da usare per la routine di Alexa che avvisa che è pronto da mangiare"
- sequence:
- - alias: "Se papà è a casa o in zona"
- choose:
- - conditions:
- - condition: template
- value_template: "{{distance(states.device_tracker.tel_henrik) < 20 or is_state('binary_sensor.henrik_at_home','on')}}"
- sequence:
- - service: script.multinotify
- continue_on_error: true
- data:
- title: "E' pronto da mangiare"
- message: "Antonella chiama a raduno la famiglia a tavola"
- notify_app: notify.mobile_app_tel_henrik
- group: meal
- channel: meal
- icon: meal
- app_actions:
- - action: "pronto_mangiare_ok"
- title: "CONFERMA"
- - action: "pronto_mangiare_returning"
- title: "STO RIENTRANDO"
- - action: "pronto_mangiare_delay"
- title: "TRA POCO"
- - alias: "Se Erica è a casa"
- choose:
- - conditions:
- - condition: template
- value_template: "{{is_state('binary_sensor.erica_at_home','on')}}"
- sequence:
- - service: script.multinotify
- continue_on_error: true
- data:
- title: "E' pronto da mangiare"
- message: "La mamma chiama a raduno la famiglia a tavola!"
- notify_app: notify.mobile_app_iphone_di_erica
- group: meal
- channel: meal
- icon: meal
- app_actions:
- - action: "pronto_mangiare_ok"
- title: "CONFERMA"
- - action: "pronto_mangiare_delay"
- title: "TRA POCO"
- - service: script.multinotify
- data:
- title: "E' pronto da mangiare!"
- message: "Hey, è pronto da mangiare!"
- alexa_target:
- - media_player.mansarda
- - media_player.primo_piano
- alexa_volume: 0.8
- alexa_force: true
- automation:
- - id: a2c0ecc8-29e5-4965-a120-bf32d56284ba
- alias: "Comunicazione - Notifica - Pronto da mangiare Actions"
- description: "Quando si preme su una risposta alla notifica che è pronto da mangiare"
- trigger:
- - platform: event
- event_type: mobile_app_notification_action
- event_data:
- action: "pronto_mangiare_ok"
- id: "ok"
- - platform: event
- event_type: mobile_app_notification_action
- event_data:
- action: "pronto_mangiare_delay"
- id: "delay"
- - platform: event
- event_type: mobile_app_notification_action
- event_data:
- action: "pronto_mangiare_returning"
- id: "returning"
- variables:
- user_id: "{{trigger.event.context.user_id}}"
- person_id: "{{ states.person | selectattr('attributes.user_id', 'defined') | selectattr('attributes.user_id', '==', user_id) | map(attribute='attributes.id') | first | default('') }}"
- person_name_surname: "{{ states.person[person_id].name | default('Utente sconosciuto') }}"
- person_name: "{{ person_name_surname | regex_findall(find='(\\w+) ') | first }}"
- action:
- - alias: "A seconda della risposta"
- choose:
- - conditions:
- - "{{trigger.id == 'ok'}}"
- sequence:
- - service: script.multinotify
- data:
- message: "{{person_name}} conferma che sta arrivando a mangiare"
- alexa_target: media_player.pian_terreno
- alexa_volume: 0.8
- alexa_force: true
- - conditions:
- - "{{trigger.id == 'delay'}}"
- sequence:
- - service: script.multinotify
- data:
- message: "{{person_name}} ha sentito che è pronto ma arriverà tra poco, appena terminata una attività"
- alexa_target: media_player.pian_terreno
- alexa_volume: 0.8
- alexa_force: true
- - conditions:
- - "{{trigger.id == 'returning'}}"
- sequence:
- - service: script.multinotify
- data:
- message: "{{person_name}} ha letto la notifica e comunica che sta arrivando, il tempo di rientrare a casa. Al momento risulta a {{ distance(states.person[person_id]) | float(0) | round(1) }} chilometri da casa."
- alexa_target: media_player.pian_terreno
- alexa_volume: 0.8
- alexa_force: true
- # Se viene fermata la musica a pian terreno e il volume è al 30% ripristina il volume normale del 60% per evitare che in seguito risponano Echo Dot più lontani...
- - id: 979a8650-d59c-416f-8b36-e2b96bae47af
- alias: "Alexa - Azione - Ripristino volume dopo musica"
- description: "Ripristina il volume al 60% dopo aver riprodotto la musica al pian terreno"
- trigger:
- - platform: state
- entity_id: media_player.pian_terreno
- from: "playing"
- condition:
- - alias: "Se il volume era al 30% (quella impostata automaticamente dalla musica di sottofondo)"
- condition: template
- value_template: "{{ is_state_attr('media_player.pian_terreno', 'volume_level', 0.3) }}"
- action:
- - alias: "Imposta il volume al 60%"
- service: media_player.volume_set
- data:
- entity_id: media_player.pian_terreno
- volume_level: 0.6
- # Notifica quando Alexa Media Player necessita relogin
- - id: 11996eb7-ed6a-4592-af88-994534b3c836
- alias: Alexa - Notifica - Relogin Alexa Media Player
- trigger:
- - platform: event
- event_type: "alexa_media_relogin_required"
- action:
- - service: script.multinotify
- data:
- title: Alexa relogin
- message: Alexa Media Player richiede il relogin su Home Assistant. Le notifiche non verranno più riprodotte finché non verrà fatto il relogin.
- group: warning
- notify_app: notify.all_android_devices
- critical: true
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement