Mon cas perso:
Un script de notification par téléphone (c’est le seul endroit où je fais directement appel à l’integration de notification du telephone…) :
exemple vers mon telephone, nous en avons 5 sur le même modèle...
sequence:
- action: notify.mobile_app_smartphone_doudou
metadata: {}
data:
title: "{{ titre }}"
message: "{{ message }}"
data:
clickAction: "{{ clickaction}}"
sticky: "{{ sticky }}"
continue_on_error: true
fields:
titre:
selector:
text: null
name: Titre
description: >-
Titre de la notification (peut contenir un template type {{
states('entity.name') }} )
required: true
message:
selector:
template: {}
name: message
description: >-
Message de la notification, (peut contenir un template type {{
states('entity.name') }} )
required: true
clickaction:
selector:
template: {}
name: clickAction
description: Raccourci lors du clic sous la forme /lovelace-smartphone/view
required: false
sticky:
selector:
text: {}
default: "true"
description: true reste apres visionage, false disparait dès visionnage
alias: Notification smartphone doudou
description: Notification vers le smartphone de Bernard
icon: mdi:bell
J’appelle ensuite ces 5 scripts soit directement, soit dans un autre script, par exemple pour notifier les téléphones des parents, ou de toute la famille (nous sommes 5):
exemple scripts parents, celui pour juste les enfants ou pour toute la famille est fait sur le même modèle en utilisant les scripts définis précédemment:
sequence:
- action: script.notification_smartphone_doudou
metadata: {}
data:
sticky: "{{ sticky }}"
titre: "{{ titre }}"
message: "{{ message }}"
clickaction: "{{ clickaction }}"
- action: script.notification_smartphone_jeanne
metadata: {}
data:
sticky: "{{ sticky }}"
titre: "{{ titre }}"
message: "{{ message }}"
clickaction: "{{ clickaction }}"
fields:
titre:
selector:
text: null
name: Titre
description: >-
Titre de la notification (peut contenir un template type {{
states('entity.name') }} )
required: true
message:
selector:
template: {}
name: message
description: >-
Message de la notification, (peut contenir un template type {{
states('entity.name') }} )
required: true
clickaction:
selector:
template: {}
name: clickAction
description: Raccourci lors du clic sous la forme /lovelace-smartphone/view
required: false
sticky:
selector:
text: {}
default: "true"
description: true reste apres visionage, false disparait dès visionnage
alias: Notification smartphone parents
description: Notification vers le smartphone des parents
icon: mdi:bell
de le même façon je peux me faire un script intelligent pour Alexa:
notif alexa:
sequence:
- choose:
- conditions:
- alias: si c'est le jour (WE avec grasse mat')
condition: or
conditions:
- condition: time
after: "08:00:00"
before: "20:30:00"
weekday:
- mon
- tue
- wed
- thu
- fri
- condition: time
after: "09:30:00"
before: "20:30:00"
weekday:
- sat
- sun
sequence:
- action: notify.alexa_media
metadata: {}
data:
target:
- media_player.echo_dot_jeanne
- media_player.echo_jeanne
- media_player.jeanne_echo_dot
- media_player.echo_dot_sdb_enfant
- media_player.echo_dot_thibault
- media_player.echo_dot_louise
- media_player.echo_dot_justine
data:
type: tts
message: "{{ message }}"
title: "{{ titre }}"
alias: diffuser "message" partout
continue_on_error: true
default:
- alias: Chuchotage du message (de nuit si message facultatif)
if:
- condition: template
value_template: "{{ message_nuit == idem }}"
alias: Si message de nuit par défaut
then:
- action: notify.alexa_media
metadata: {}
data:
target:
- media_player.echo_dot_jeanne
- media_player.echo_jeanne
- media_player.jeanne_echo_dot
data:
type: tts
message: <amazon:effect name="whispered">{{ message }}</amazon:effect>
title: "{{ titre }}"
alias: Chuchotage de "message" sur les echo des pieces à vivre
else:
- action: notify.alexa_media
metadata: {}
data:
target:
- media_player.echo_dot_jeanne
- media_player.echo_jeanne
- media_player.jeanne_echo_dot
data:
type: tts
message: >-
<amazon:effect name="whispered">{{ message_nuit
}}</amazon:effect>
title: "{{ titre }}"
alias: Chuchotage de "message_nuit" sur les echo des pieces à vivre
continue_on_error: true
fields:
titre:
selector:
text: null
name: Titre
description: Titre de la notification (facultatif)
example: notification
default: Titre
message:
selector:
text: null
name: Message
required: true
description: Message inclus dans la notification de jour
example: Ceci est une notification de jour
default: Notification jour
message_nuit:
selector:
text: null
name: Message de nuit
description: Message à chuchoter (si différent du message principal)
example: ceci est un message chuchoté de nuit
default: idem
description: >-
Notification d'un message dans toute la maison.
- Message diffusé partout le jour
Message chuchoté dans les pieces a vivre seulement la nuit (possibilité d'un
message différent la nuit)
icon: mdi:speaker-message
alias: Alexa-notification-maison
Ensuite dans chaque automatisation ou script dans lequel j’ai besoin d’une notification téléphone ou Alexa, ce sont ces scripts que j’appelle (notif parents, notifs enfants, notif famille et/ou notif Alexa) plutôt que de devoir refaire une logique à chaque fois.
Le gain est double :
- je n’ai qu’un script à appeller pour notifier 5 telephones et pas à refaire 5x la notification
- la maintenance est facilitée.
exemple : automatisation de surveillance de fuite dans le cellier
alias: Surveillance - Fuite - cellier
description: Envoi d'une notification en cas de détection d'eau dans le cellier
triggers:
- entity_id:
- binary_sensor.fuite_eau_cellier_water_leak
for:
hours: 0
minutes: 1
seconds: 0
trigger: state
to: "on"
conditions: []
actions:
- action: script.notification_smartphone_famille
metadata: {}
data:
titre: Maison - surveillance fuite
message: >-
Le capteur de fuite détecte de l'eau sous la machine à laver. Il
faudrait vérifier dans le cellier!
- action: script.ecam_publish
data:
message: "SURV: Alerte Fuite cellier "
mode: single
pour la maintenance, s’il y a une modification à faire:
- nouveau telephone
- changement d’horaire
- ajouter une enceinte
- etc…
on ne le fait que dans un seul script et ça se propage à tous les scripts / automatisations qui utilisent ce script, comme des dominos…
Sinon il faut le refaire à tous les endroits où la logique ou l’action est appelée…
L’image des poupées russes c’est:
- Automatisation de surveillance X => appelle le script notification parents => appelle les scripts du portable de mon epouse et le mien.
- Automatisation de surveillance Y => appelle le script notification parents => appelle les scripts du portable de mon epouse et le mien.
- Automatisation de surveillance Z => appelle le script notification famille => appelle les scripts du portable de mon epouse, de chaque enfant et le mien.
si je change de telephone, je n’ai qu’un script à modifier.
Si le fils est parti de la maison, je n’ai qu’à supprimer l’appel à son script dans les script famille et enfant.
etc…
Si en plus on ajoute des etiquettes / labels, on peut se rappeller facilement où sont utilisés ces scripts…