Merci !
Il n’y a qu’une seule version des smileys « prise électrique » et « batterie », rien à faire, ça ne passe pas dans les SMS sur mon S9.
Tant pis, c’est pas bien grave
Merci !
Il n’y a qu’une seule version des smileys « prise électrique » et « batterie », rien à faire, ça ne passe pas dans les SMS sur mon S9.
Tant pis, c’est pas bien grave
Tu ne pourra pas avoir les deux en même temps avec le code que je t’ai donné mais ce n’est pas grave… Tu aura dans un premier temps la notification d’état puis ensuite, sur un changement de niveau, la charge de la batterie.
Pour avoir la notification de coupure/reprise de courant, il faut inverser l’ordre dans l’automatisation pour mettre en premier la vérification de l’état (actuellement c’est le niveau qui est e vérifié en premier)(cela sous-entend que lorsque tu débranche, l’intégration met également à jour le niveau et c’est lui qui est capté en 1er)
Merci !
Je regarde et teste demain
Au final, tu as réussi à avoir une automatisation fonctionnelle ?
Si ou, peux tu la poster ? Afin de mettre le sujet résolu en indiquant ton post comme solution
Je suis sous l’eau, je suis peu à la maison et je n’ai pas encore pu regarder ce que tu avais répondu, désolé.
Je reviens en parler dès que j’arrive à m’y remettre.
Y a pas de soucis
Je posais la question car je voulais guider une autre personne sur le post que tu utilisais mais je n’arrivait pas à déterminer lequel tu utilisais…
Maintenant je sais
Bon courage !
Voilà, je peux enfin re-tester.
J’ai donc inversé, dans l’éditeur YAML, le contenu des 2 " - conditions:", mais ça fait toujours la même chose.
J’ai débranché l’onduleur, j’ai reçu une notif « décharge en cours 94% » mais pas la notif « détection coupure de courant ».
J’imagine que je m’y prends mal ?
Bon, aujourd’hui, sans rien avoir changé, ça fonctionne.
Entre, j’ai mis à jour HA / relancé (le core, HA, l’host).
Donc les modifs n’avaient peut-être pas été prises en compte ?
Désolé pour le dérangement, et encore MERCI pour cette super aide !
Postes l’automatisation finale du coup et marque ton post la contenant comme solution
Voici donc l’automatisation qui fonctionne pour mon besoin :
alias: Gestion Onduleur
description: Notification en fonction des changements d'état de l'onduleur
trigger:
- platform: state
entity_id: sensor.myups_status_data_2
- platform: state
entity_id: sensor.myups_battery_charge_2
condition: []
action:
- choose:
- conditions:
- condition: template
value_template: >-
{{trigger.from_state.entity_id.split('.')[1] ==
'myups_status_data_2' }}
sequence:
- choose:
- conditions:
- condition: or
conditions:
- condition: state
entity_id: sensor.myups_status_data_2
state: OB DISCHRG
- condition: state
entity_id: sensor.myups_status_data_2
state: FSD OB DISCHRG
sequence:
- service: notify.huawei_lte
data:
message: >-
⚠️ Détection ⚡ Coupure de Courant :
{{(now()|string).split('.')[0]}}
- service: notify.notify
data:
message: '⚠️ Détection : {{(now()|string).split(''.'')[0]}}'
title: "⚡ Coupure de Courant \U0001F50B"
- service: persistent_notification.create
data:
message: '⚠️ Détection : {{(now()|string).split(''.'')[0]}}'
title: "⚡ Coupure de Courant \U0001F50B"
notification_id: '{{ (range(1, 9999)|random) }}'
- conditions:
- condition: template
value_template: >
{% set etat_precedent = trigger.from_state.state %} {% if
'DISCHRG' in etat_precedent.split() %}
true
{% else %}
false
{% endif %}
- condition: template
value_template: '{{ trigger.to_state.state != ''unknown'' }}'
- condition: template
value_template: '{{ trigger.to_state.state != ''unavailable'' }}'
sequence:
- service: notify.huawei_lte
data:
message: "ℹ️ Détection ⚡ Retour du Courant \U0001F50C : {{(now()|string).split('.')[0]}}"
- service: notify.notify
data:
message: 'ℹ️ Détection : {{(now()|string).split(''.'')[0]}}'
title: "⚡ Retour du Courant \U0001F50C"
- service: persistent_notification.create
data:
message: 'ℹ️ Détection : {{(now()|string).split(''.'')[0]}}'
title: "⚡ Retour du Courant \U0001F50C"
notification_id: '{{ (range(1, 9999)|random) }}'
- conditions:
- condition: template
value_template: >-
{{trigger.from_state.entity_id.split('.')[1] ==
'myups_battery_charge_2' }}
sequence:
- service: notify.huawei_lte
data:
message: >-
⚡ Onduleur niveau de batterie : {{
states('sensor.myups_battery_charge_2')|int }}%
title: >
{% set etat_precedent = trigger.from_state.state|int %} {% set
etat_actuel = trigger.to_state.state|int %} {% if
etat_precedent > etat_actuel %}
⚡ Décharge en cours ↘️
{% else %}
⚡ Recharge en cours ↗️
{% endif %}
- service: notify.notify
data:
message: "\U0001F50B Onduleur niveau de batterie : {{ states('sensor.myups_battery_charge_2')|int }}%"
title: >
{% set etat_precedent = trigger.from_state.state|int %} {% set
etat_actuel = trigger.to_state.state|int %} {% if etat_precedent
> etat_actuel %}
⚡ Décharge en cours ↘️
{% else %}
⚡ Recharge en cours ↗️
{% endif %}
- service: persistent_notification.create
data:
message: "\U0001F50B Onduleur niveau de batterie : {{ states('sensor.myups_battery_charge_2')|int }}%"
title: "{% set etat_precedent = trigger.from_state.state|int %} {% set etat_actuel = trigger.to_state.state|int %} {% if etat_precedent > etat_actuel %}\n ⚡ Décharge en cours ↘️\n{% else %}\n \U0001F50C Recharge en cours ↗️\n{% endif %} \n"
notification_id: '{{ (range(1, 9999)|random) }}'
mode: restart
Bonjour,
Après quelques essai du code précédent avec mon onduleur quand la batterie descend fortement sa spam pas mal.
ma question: est-il possible d’indiquer tout les ‹ 10 › % envoyer la notif à la place de chaque changement de pourcentage ?
Merci d’avance
Bonjour
Je me permet de relancer ce sujet, J’ai utilisé le code ci dessus pour automatisation des alertes pour mon onduleur. sa fonctionne, mais j’ai un souci, c’est que la fréquence des messages se fait a chaque fois que le % de recharge ou décharge évolue de 1%.
voici le code que j’ai utilisé : (je pense que c’est dans cette partie qu’il faut modifier, mais je n’y arrive pas.
service: notify.telegram_pascal_ha
data:
message: >-
🔋 Onduleur niveau de batterie : {{ states('sensor.ups_battery_charge')|int
}}%
title: >
{% set etat_precedent = trigger.from_state.state|int %} {% set etat_actuel
= trigger.to_state.state|int %} {% if etat_precedent > etat_actuel %}
⚡ Décharge en cours ↘️
{% else %}
⚡ Recharge en cours ↗️
{% endif %}
Merci de votre aide
A la lecture de ça, je pense que c’est plus sur le « trigger » qu’il va falloir jouer.
Le code que tu partages ne sert ni plus ni moins qu’à documenter le message
Ce serait plus dans cette partie qu’il faut modifier (avant séquence) ?
- conditions:
- condition: template
value_template: >-
{{trigger.from_state.entity_id.split('.')[1] ==
'ups_battery_charge' }}
sequence:
- service: notify.telegram_pascal_ha
data:
message: >-
🔋 Onduleur niveau de batterie : {{
states('sensor.ups_battery_charge')|int }}%
title: >
{% set etat_precedent = trigger.from_state.state|int %} {% set
etat_actuel = trigger.to_state.state|int %} {% if
etat_precedent > etat_actuel %}
⚡ Décharge en cours ↘️
{% else %}
⚡ Recharge en cours ↗️
{% endif %}
mode: restart
Dans le même esprit qu’@Herbs je suis pas certain que le niveau de charge de la batterie soit un trigger intéressant :
L’info importante à suivre c’est plutôt le fait d’avoir ou non du courant, il y a un sensor.xxx_status exprès
Oui je pense que je vais simplifier.
Je vais récupérer :
c’est bien ce sensor ups status data qu’il que j’utilise
(nodered va être plus a ma portée pour le faire)
Tu as un autre status plus simple : avec juste online/battery. Faire le tri des 3 états de celui data c’est un bel exercice
oui j’ai ups.status
merci a vous deux pour votre aide.
Je vais voir cela dans la semaine, et faire des essais.
Pour ce week end c’est bon
bonne soirée
Pour ne pas être spams j’ai rajouter un délai entre deux notification.
Sinon option 2
condition: or
conditions:
- condition: numeric_state
entity_id: sensor.ups_battery_charge
below: "101"
above: "90"
- condition: numeric_state
entity_id: sensor.ups_battery_charge
below: "71"
above: "60"
- condition: numeric_state
entity_id: sensor.ups_battery_charge
below: "51"
above: "40"
- condition: numeric_state
entity_id: sensor.ups_battery_charge
below: "31"
above: "20"
- condition: numeric_state
entity_id: sensor.ups_battery_charge
below: "10"
Hello, je post ici car c’est sensiblement le même script que j’utilise.
Tout fonctionne parfaitement sauf le retour au secteur, je ne recois aucunes notifications de retour de courant (le comptage de % de batterie lui fonctionne en décharge et en charge avec notifications)
Peut être un membre plus expérimenté dans le code que moi trouveras la faille ?
- id: '1643189410521'
alias: Gestion Onduleur
description: Notification en fonction des changements d'état de l'onduleur
trigger:
- platform: state
entity_id: sensor.qnapups_status_data
- platform: state
entity_id: sensor.qnapups_battery_charge
condition: []
action:
- choose:
- conditions:
- condition: template
value_template: '{{trigger.from_state.entity_id.split(''.'')[1] == ''qnapups_status_data''
}}'
sequence:
- choose:
- conditions:
- condition: or
conditions:
- condition: state
entity_id: sensor.qnapups_status_data
state: OB
- condition: state
entity_id: sensor.qnapups_status_data
state: FSD
sequence:
- service: notify.gmail
data:
message: '⚠️ Détection ⚡ Coupure de Courant : {{(now()|string).split(''.'')[0]}}'
- service: notify.notify
data:
message: '⚠️ Détection : {{(now()|string).split(''.'')[0]}}'
title: "⚡ Coupure de Courant \U0001F50B"
- service: persistent_notification.create
data:
message: '⚠️ Détection : {{(now()|string).split(''.'')[0]}}'
title: "⚡ Coupure de Courant \U0001F50B"
notification_id: '{{ (range(1, 9999)|random) }}'
- conditions:
- condition: template
value_template: "{% set etat_precedent = trigger.from_state.state %} {%
if 'DISCHRG' in etat_precedent.split() %}\n true\n{% else %}\n false\n{%
endif %}\n"
- condition: template
value_template: '{{ trigger.to_state.state != ''unknown'' }}'
- condition: template
value_template: '{{ trigger.to_state.state != ''unavailable'' }}'
sequence:
- service: notify.gmail
data:
message: "ℹ️ Détection ⚡ Retour du Courant \U0001F50C : {{(now()|string).split('.')[0]}}"
- service: notify.notify
data:
message: 'ℹ️ Détection : {{(now()|string).split(''.'')[0]}}'
title: "⚡ Retour du Courant \U0001F50C"
- service: persistent_notification.create
data:
message: 'ℹ️ Détection : {{(now()|string).split(''.'')[0]}}'
title: "⚡ Retour du Courant \U0001F50C"
notification_id: '{{ (range(1, 9999)|random) }}'
- conditions:
- condition: template
value_template: '{{trigger.from_state.entity_id.split(''.'')[1] == ''qnapups_battery_charge''
}}'
sequence:
- service: notify.gmail
data:
message: '⚡ Onduleur niveau de batterie : {{ states(''sensor.qnapups_battery_charge'')|int
}}%'
title: "{% set etat_precedent = trigger.from_state.state|int %} {% set
etat_actuel = trigger.to_state.state|int %} {% if etat_precedent > etat_actuel
%}\n ⚡ Décharge en cours ↘️\n{% else %}\n ⚡ Recharge en cours ↗️\n{%
endif %} \n"
- service: notify.notify
data:
message: "\U0001F50B Onduleur niveau de batterie : {{ states('sensor.qnapups_battery_charge')|int
}}%"
title: "{% set etat_precedent = trigger.from_state.state|int %} {% set etat_actuel
= trigger.to_state.state|int %} {% if etat_precedent > etat_actuel %}\n
\ ⚡ Décharge en cours ↘️\n{% else %}\n ⚡ Recharge en cours ↗️\n{%
endif %} \n"
- service: persistent_notification.create
data:
message: "\U0001F50B Onduleur niveau de batterie : {{ states('sensor.qnapups_battery_charge')|int
}}%"
title: "{% set etat_precedent = trigger.from_state.state|int %} {% set etat_actuel
= trigger.to_state.state|int %} {% if etat_precedent > etat_actuel %}\n
\ ⚡ Décharge en cours ↘️\n{% else %}\n \U0001F50C Recharge en cours
↗️\n{% endif %} \n"
notification_id: '{{ (range(1, 9999)|random) }}'
mode: restart