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