Bonjour,
Dans l’exemple que j’ai partagé, la détection du début de cycle se fait par une automatisation qui est déclechée par la consommation électrique du lave-vaisselle. Regarde bien l’exemple, tout est détailé.
Ci-dessous mon automatisation qui identifie que le lave vaisselle a été mis en marche:
En yaml si tu préfères >>
alias: "Lave-vaisselle : 1 - Start"
description: Lave-vaisselle start
mode: single
triggers:
- entity_id: sensor.tz3000_2putqrmw_ts011f_active_power_7
above: 10
for:
hours: 0
minutes: 1
seconds: 0
trigger: numeric_state
conditions:
- condition: state
entity_id: input_boolean.lave_vaisselle_cycle
state: "off"
actions:
- data:
value: "0"
target:
entity_id: sensor.lave_vaisselle_power_cycle_bis
action: utility_meter.calibrate
- data: {}
target:
entity_id: input_boolean.lave_vaisselle_cycle
action: input_boolean.turn_on
En résumé, je passe un input number booléen à « on » (input_bolean.lave_vaisselle_cycle) lorsque HA détecte que le lave vaisselle consomme plus de 10W pendant 1 minute.
J’ai une autre automatisation qui détecte de façon similaire la fin du cycle.
Détection de fin de cycle
alias: "Lave-vaisselle : 2 - Fin"
description: Lave_vaisselle Fin
mode: restart
triggers:
- entity_id: sensor.tz3000_2putqrmw_ts011f_active_power_7
below: 10
for:
hours: 0
minutes: 2
seconds: 0
trigger: numeric_state
conditions:
- condition: state
entity_id: input_boolean.lave_vaisselle_cycle
state: "on"
actions: nulli
Puis une autre automatisation qui calcule la durée du cycle, m’nvoie une notification et ajoute une entrée à mon fichier de suivi:
Calcul durée et coût du cycle, envoi notifications et entrée dans fichier de suivi
alias: "Lave-vaisselle : 3 - Fin, notification"
description: Lave-vaisselle Fin, notifications
triggers:
- entity_id: sensor.tz3000_2putqrmw_ts011f_active_power_7
below: 5
for:
hours: 0
minutes: 30
seconds: 0
trigger: numeric_state
conditions:
- condition: state
entity_id: input_boolean.lave_vaisselle_cycle
state: "on"
actions:
- data: {}
target:
entity_id: input_boolean.lave_vaisselle_cycle
action: input_boolean.turn_off
- data:
title: Lave-vaisselle terminé
message: >-
Le cycle s'est déroulé de {{
((state_attr('automation.lave_vaisselle_start','last_triggered')) |
as_local).strftime("%Hh%M") }} à {{ now().strftime("%Hh%M") }}
action: notify.mobile_app_sm_s936b
- continue_on_error: true
data:
title: Lave-vaisselle terminé
message: >
Le cycle s'est déroulé de {{
((state_attr('automation.lave_vaisselle_start','last_triggered')) |
as_local).strftime("%Hh%M") }} à {{ now().strftime("%Hh%M") }}
Soit une durée de {{
(((state_attr('automation.lave_vaisselle_fin_notification','last_triggered'))
-
(state_attr('automation.lave_vaisselle_start','last_triggered'))).seconds
/ 3600 )| int
}}h{{((((state_attr('automation.lave_vaisselle_fin_notification','last_triggered'))
-
(state_attr('automation.lave_vaisselle_start','last_triggered'))).seconds
% 3600 )/60 )| round }}m
Le cycle a consommé {{ states('sensor.lave_vaisselle_power_cycle_bis')
}}kWh
Le cycle a coûté {{ ((states('sensor.lave_vaisselle_power_cycle_bis') |
float(default=0) *
float(states('input_number.prix_du_kwh_d_electricite')))) | round(2)
}}€
action: persistent_notification.create
- continue_on_error: true
target:
entity_id: notify.consommations2
data:
message: >-
{{ now().strftime("%d/%m/%Y") }} ; Lave-vaisselle ; {{
((state_attr('automation.lave_vaisselle_start','last_triggered')) |
as_local).strftime("%Hh%M") }} - {{ now().strftime("%Hh%M") }} ; {{
(((state_attr('automation.lave_vaisselle_fin_notification','last_triggered'))
-
(state_attr('automation.lave_vaisselle_start','last_triggered'))).seconds
/ 3600 )| int
}}h{{((((state_attr('automation.lave_vaisselle_fin_notification','last_triggered'))
-
(state_attr('automation.lave_vaisselle_start','last_triggered'))).seconds
% 3600 )/60 )| round }}min ; {{
states('sensor.lave_vaisselle_power_cycle_bis') }}kWh ; {{
((states('sensor.lave_vaisselle_power_cycle_bis') | float(default=0) *
float(states('input_number.prix_du_kwh_d_electricite')))) | round(2) }}
EUR
action: notify.send_message
mode: single
Je n’ai rien inventé, tout le crédit va à @roumano