Salut @spamoi ,
Effectivement mon information ne correspondais pas avec l’automatisation, la remise a zero était fait par le start. (c’est ce qu’il faut sinon tu vas avoir la conso en veille de ton LV dans ton reporting)
J’ai améliorer le fonctionne pour qu’il soit plus robuste, et j’ai rajouter une automatisation intermédiaire pour avoir le temps de fin de façon plus précise (avec le mode éco de mon lave-vaisselle, il peut se passer presque une 1heure où il consomme rien mais n’a pas encore fini)
je vous les partagent :
Start
- id: '1673367359265'
alias: 'Lave-Vaisselle : Start'
description: Lave vaisselle Start
trigger:
- type: power
platform: device
device_id: efc284c42c5676265a2e8ad8c7144625
entity_id: sensor.circuit_13_power
domain: sensor
above: 10
for:
hours: 0
minutes: 1
seconds: 0
condition:
- condition: state
entity_id: input_boolean.lave_vaisselle_cycle
state: 'off'
action:
- service: utility_meter.calibrate
data:
value: '0'
target:
entity_id: sensor.lave_vaisselle_power_cycle
- service: input_boolean.turn_on
data: {}
target:
entity_id: input_boolean.lave_vaisselle_cycle
mode: single
Fin ?
( attention, ici le mode est important )
- id: '1674478650323'
alias: 'Lave-Vaisselle : Fin'
description: Lave vaisselle Fin
trigger:
- type: power
platform: device
device_id: efc284c42c5676265a2e8ad8c7144625
entity_id: sensor.circuit_13_power
domain: sensor
below: 10
for:
hours: 0
minutes: 1
seconds: 0
condition:
- condition: state
entity_id: input_boolean.lave_vaisselle_cycle
state: 'on'
action:
mode: restart
Fin : notification
il y a 2 notification, l’un pour le téléphone, l’autre pour crée un « csv » de tous les cycles de l’appareil
- id: '1673367677075'
alias: 'Lave-Vaisselle : Fin , Notification'
description: a la fin du cycle notification de la durée et de la consommation du
cycle de lave-vaiselle
trigger:
- type: power
platform: device
device_id: efc284c42c5676265a2e8ad8c7144625
entity_id: sensor.circuit_13_power
domain: sensor
below: 10
for:
hours: 1
minutes: 0
seconds: 0
condition:
- condition: state
entity_id: input_boolean.lave_vaisselle_cycle
state: 'on'
action:
- service: input_boolean.turn_off
data: {}
target:
entity_id: input_boolean.lave_vaisselle_cycle
- service: notify.mobile_app_rmx3085
data:
title: Lave-Vaisselle Fini
message: 'Le cycle s''est déroulé de {{ ((state_attr(''automation.lave_vaisselle_start'',''last_triggered''))
| as_local).strftime("%Hh%M") }} à {{ ((state_attr(''automation.lave_vaisselle_fin'',''last_triggered''))
| as_local).strftime("%Hh%M") }}. Soit une durée de {{ (( (state_attr(''automation.lave_vaisselle_fin'',''last_triggered''))
- (state_attr(''automation.lave_vaisselle_start'',''last_triggered''))).seconds /
3600 )| int }}h{{ ((((state_attr(''automation.lave_vaisselle_fin'',''last_triggered''))
- (state_attr(''automation.lave_vaisselle_start'',''last_triggered''))).seconds
% 3600 )/60 )| round }}m\n Le cycle à consommé {{ states(''sensor.lave_vaisselle_power_cycle'') | round
}}Wh\n Pour un coût de {{(states(''sensor.lave_vaisselle_power_cycle'') |
float(default=0) * (states(''sensor.edf_tempo_current_cost'')|float(default=0))
/1000) | round(2) }}€
'
- service: notify.lave_vaisselle
data:
message: '{{ now().strftime("%d/%m/%Y") }} ; {{ ((state_attr(''automation.lave_vaisselle_start'',''last_triggered''))
| as_local).strftime("%Hh%M") }} ; {{ (state_attr(''automation.lave_vaisselle_fin'',''last_triggered'')|
as_local).strftime("%Hh%M") }} ; {{ (((state_attr(''automation.lave_vaisselle_fin'',''last_triggered''))
- (state_attr(''automation.lave_vaisselle_start'', ''last_triggered''))).seconds
/ 3600 )| int }}h{{ ((((state_attr(''automation.lave_vaisselle_fin'',''last_triggered''))
- (state_attr(''automation.lave_vaisselle_start'',''last_triggered''))).seconds
% 3600 )/60 )| round }}m ; {{ states(''sensor.lave_vaisselle_power_cycle'') | round
}}Wh ; {{ (states(''sensor.lave_vaisselle_power_cycle'') | float(default=0)
* (states(''sensor.edf_tempo_current_cost'')| float(default=0)) /1000) | round(2)
}}€ ;
'
ps : il est possible de fusionner les deux fin si celui-ci se termine rapidement et/ou si on se moque d’avoir le temps de fin et de la durée du cycle de manière « précise ». ( +1heures dans mon cas )
ps2: petit coup de gueule a l’interface graphique des automatisations dans home assistant
j’en écrivant ça en yaml qui fonctionne : (le message a un poil évolué mais l’idée est là )
message: >
Le cycle s'est déroulé de {{ ((state_attr('automation.lave_vaisselle_start','last_triggered')) | as_local).strftime("%Hh%M") }} à {{ ((state_attr('automation.lave_vaisselle_fin','last_triggered')) | as_local).strftime("%Hh%M") }}. Soit une durée de {{ (( (state_attr('automation.lave_vaisselle_fin','last_triggered')) - (state_attr('automation.lave_vaisselle_start','last_triggered'))).seconds / 3600 )| int }}h{{ ((((state_attr('automation.lave_vaisselle_fin','last_triggered')) - (state_attr('automation.lave_vaisselle_start','last_triggered'))).seconds % 3600 )/60 )| round }}m
mais quand je vais dans le GUI des automatisation, même sans faire de changement, celui-ci parse le fichier des automatisations et le modifie en quelques-chose comme ça ( qui fonctionne aussi mais qui est illisible avec 2 simples quotes de partout et ce qui est une plaît pour reprendre en fichier texte ! )
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 {{ ((now() - (state_attr(''automation.lave_vaisselle_start'',
''last_triggered''))).seconds / 3600 )| int }}h{{ (((now() - (state_attr(''automation.lave_vaisselle_start'',
''last_triggered''))).seconds % 3600 )/60 )| round }}m\n Le cycle à consommé
{{ states(''sensor.lave_vaisselle_power_cycle'') }}Wh\n Pour un coût de {{
(states(''sensor.lave_vaisselle_power_cycle'') | float(default=0) * (states(''sensor.edf_tempo_current_cost'')|
float(default=0)) /1000) | round(2) }}€
'