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)
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 !
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%.
est il possible que la notification ne soit envoyé que pour 10% de changement ?
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 %}
Dans le même esprit qu’@Herbs je suis pas certain que le niveau de charge de la batterie soit un trigger intéressant :
En fonctionnement normal, la batterie est toujours chargée à 100% (soit 99% du temps)
Il y a décharge uniquement quand l’onduleur prends le relais par rapport à l’alimentation secteur. Idem la charge n’a lieu que quand le secteur est revenu
Comme en principe on coupe les applis avant la fin de la batterie, tu vas perdre une partie des infos des cycles
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
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