Merci pour le partage.
Bonjour,
j’ai adapté ce tuto pour mon utilisation mais je ne reçois pas de notification.
j’ai supprimer la partie Google car je veux que des notifications sur mon smartphone.
pouvez vous m’aidé?
Merci
voici le code
- id: 30f4e5a8-df44-11ea-87d0-0242ac130003
alias: Alerte quand pluie attendue
description: Envoie des notifications quand la pluie est attendue dans l'heure
trigger:
- platform: state
entity_id: sensor.courlay_next_rain
action:
- choose:
- conditions:
- condition: template
value_template: '{{ trigger.to_state.state != ''unknown'' }}'
- condition: state
entity_id: input_boolean.stop_rain_notification
state: 'off'
sequence:
- choose:
- conditions:
- condition: template
value_template: '{{ trigger.to_state.state != trigger.from_state.state
}}'
sequence:
- service: notify.telegram_groupe
data:
message: 'La pluie est attendue à {{ as_timestamp(states(''sensor.courlay_next_rain''))
| timestamp_custom(''%H:%M'', True) }}.
'
- choose:
- conditions:
- condition: template
value_template: '{{ state_attr(''ssensor.courlay_next_rain'', ''1_hour_forecast'')[''0
min''] != ''Temps sec'' }}'
sequence:
- service: input_boolean.turn_on
data:
entity_id: input_boolean.stop_rain_notification
- conditions:
- condition: template
value_template: '{{ trigger.to_state.state == ''unknown'' }}'
- condition: template
value_template: '{{ trigger.from_state.state != ''unknown'' }}'
sequence:
- service: notify.telegram_groupe
data:
message: Plus de pluie attendue dans la prochaine heure.
- service: input_boolean.turn_off
data:
entity_id: input_boolean.stop_rain_notification
mode: single
en faite je reçois que ça comme notification alors que quand je l’ai mis en place j’avais bien de la pluie de prévu
- choose:
- conditions:
- condition: template
value_template: '{{ state_attr(''ssensor.courlay_next_rain'', ''1_hour_forecast'')[''0
min''] != ''Temps sec'' }}'
tu as un s
en trop sur l’entité ssensor.courlay_next_rain
au lieu de sensor.courlay_next_rain
merci j’avais, pas vu ça mais ça ne fonctionne toujours pas toujours que c’est notification et pas les pluie
Ajoute ceci en première action pour déboguer :
- service: persistent_notification.create
data:
message: "L'entité **{{trigger.from_state.state.name}}** *({{trigger.from_state.state.entity_id}})* vient de passer de : \n '{{trigger.from_state.state}}' \n à \n '{{trigger.to_state.state}}'"
title: "DEBUG Automatisation"
notification_id: "{{ (range(1, 9999)|random) }}"
Ensuite, il attendre que l’automatisation s’éxécute d’elle même, car l’utilisation des trigger.from\to_state
n’est pas compatible avec le déclenchement fait par l’interface car le déclencheur n’existe pas à ce moment…
(voir la de cette page )
j’ai ce message quand je veux ajouter en 1er action le code que tu ma donné:
Tu peux déboguer en forçant la valeur des états et des attributs dans l’onglet Etats
de la section outils de développement
.
C’est comme ca que je fais.
Attention il y a un ou plusieurs bug ouverts sur l’IHM de création d’automatisation si vous alternez entre la vue YAML et la vue classique.
Si vous copiez un code YAML sans trop comprendre son contenu, faites le dans l’IHM en mode YAML, enregistrez le mais si vous revenez en mode standard n’enregistrez pas les modifications.
Je t’avoues que je l’ai écrit rapidement et ne l’est pas du tout testé…
Je suis au boulot, donc ça attendra ce soir pour ma part.
Effectivement, j’étais parti sur le fait d’informer que l’execution manuelle ne marche pas dans le cas de l’utilisation des données contenu dans le déclencheur
très bien pas de problème je vais attendre je suis moi même au boulot
Après une pause café passé sur le forum (car les collègues sont en vacances… ) :
#DEBUG
- service: persistent_notification.create
data:
message: "L'entité **{{trigger.from_state.name}}** *({{trigger.from_state.entity_id}})* vient de passer de : \n '{{trigger.from_state.state}}' \n à \n '{{trigger.to_state.state}}'"
title: "DEBUG Automatisation"
notification_id: "{{ (range(1, 9999)|random) }}"
#DEBUG
il y avait un ‹ trigger.from_state .state. name › de trop , mais sans rapport avec ton erreur.
J’ai pris ton automatisation, et ajouter donc le débogage :
- id: 30f4e5a8-df44-11ea-87d0-0242ac130003
alias: Alerte quand pluie attendue
description: Envoie des notifications quand la pluie est attendue dans l'heure
trigger:
- platform: state
entity_id: sensor.courlay_next_rain
action:
#DEBUG
- service: persistent_notification.create
data:
message: "L'entité **{{trigger.from_state.name}}** *({{trigger.from_state.entity_id}})* vient de passer de : \n '{{trigger.from_state.state}}' \n à \n '{{trigger.to_state.state}}'"
title: "DEBUG Automatisation"
notification_id: "{{ (range(1, 9999)|random) }}"
#DEBUG
- choose:
- conditions:
- condition: template
value_template: '{{ trigger.to_state.state != ''unknown'' }}'
- condition: state
entity_id: input_boolean.stop_rain_notification
state: 'off'
sequence:
#DEBUG
- service: persistent_notification.create
data:
message: "Déclencheur différent de 'unknown'"
title: "DEBUG Automatisation"
notification_id: "{{ (range(1, 9999)|random) }}"
#DEBUG
- choose:
- conditions:
- condition: template
value_template: '{{ trigger.to_state.state != trigger.from_state.state
}}'
sequence:
#DEBUG
- service: persistent_notification.create
data:
message: "Déclencheur différent de l'état précédent, la pluie arrive !"
title: "DEBUG Automatisation"
notification_id: "{{ (range(1, 9999)|random) }}"
#DEBUG
- service: notify.telegram_groupe
data:
message: 'La pluie est attendue à {{ as_timestamp(states(''sensor.courlay_next_rain''))
| timestamp_custom(''%H:%M'', True) }}.
'
- choose:
- conditions:
- condition: template
value_template: '{{ state_attr(''ssensor.courlay_next_rain'', ''1_hour_forecast'')[''0
min''] != ''Temps sec'' }}'
sequence:
#DEBUG
- service: persistent_notification.create
data:
message: "La pluie est là !"
title: "DEBUG Automatisation"
notification_id: "{{ (range(1, 9999)|random) }}"
#DEBUG
- service: input_boolean.turn_on
data:
entity_id: input_boolean.stop_rain_notification
- conditions:
- condition: template
value_template: '{{ trigger.to_state.state == ''unknown'' }}'
- condition: template
value_template: '{{ trigger.from_state.state != ''unknown'' }}'
sequence:
#DEBUG
- service: persistent_notification.create
data:
message: "Plus de pluie dans l'heure..."
title: "DEBUG Automatisation"
notification_id: "{{ (range(1, 9999)|random) }}"
#DEBUG
- service: notify.telegram_groupe
data:
message: Plus de pluie attendue dans la prochaine heure.
- service: input_boolean.turn_off
data:
entity_id: input_boolean.stop_rain_notification
mode: single
Je te confirme que ce code fonctionne car je l’ai testé
je n’ai rien modifié à la logique, du coup, une question me vient :
- As tu bien créé le booléen
input_boolean.stop_rain_notification
?
Car sans lui, tu ne verras que la première notification…
J’aimerai bien trouver un moyen de le faire sans le input_boolen.
Et pourquoi ne pas utiliser les scènes ?
Une utilisation ici.
Et conditionner sur le fait de son existence ?
ah non j’avais pas fait le input boolean
par contre j’ai un autre problème lol
je pense a voir trouvé j’ai changer le fuseau horaire
Tu veux dire que tu l’avais mal renseigné à l’installation ?
si je pose la question, c’est pour m’assurer que le code est bon
Car c’est la fonction as_timestamp() qui renvoi l’heure locale (le fait de mettre True
en paramètre)
oui j’avais laisser UTC, mais la il pleut plus chez moi c’est chiant alors plus de notification lol
Remonte plus haut dans le fil pour déboguer, @oncleben31 à mit comment il faisait (et c’est ce qu’il faut faire )