Automatisation Lave vaisselle

Mon problème

Bonjour à tous…
J’ai vu dernièrement la vidéo du Journal de Thomas sur l’automatisation de sa machine à laver :

Je souhaites en faire de même avec mon lave vaisselle, mais je me casses les dents…
Pour cela je m’appuies sur une prise Nous A1Z Zigbee (je penses de bonne facture) et sur le sensor puissance…
L’automatisation de début de cycle fonctionne bien mais celle de fin de cycle n’arrive jamais

Avant de vous donner mes automatisations voici ma configuration :

Ma configuration


[center]## System Information

version core-2024.1.2
installation_type Home Assistant Supervised
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.11.6
os_name Linux
os_version 6.1.0-17-amd64
arch x86_64
timezone Europe/Paris
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
GitHub API Calls Remaining 5000
Installed Version 1.33.0
Stage running
Available Repositories 1374
Downloaded Repositories 12
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Debian GNU/Linux 12 (bookworm)
update_channel stable
supervisor_version supervisor-2023.12.0
agent_version 1.5.1
docker_version 24.0.7
disk_total 914.4 GB
disk_used 32.7 GB
healthy true
supported true
supervisor_api ok
version_api ok
installed_addons File editor (5.7.0), Terminal & SSH (9.8.1), TasmoAdmin (0.29.0), Mosquitto broker (6.4.0), Samba Backup (5.2.0), Zigbee2MQTT (1.35.1-1), Rclone Backup (3.1.0), AirSend (1.2)
Dashboards
dashboards 1
resources 5
views 8
mode storage
Recorder
oldest_recorder_run 31 décembre 2023 à 21:33
current_recorder_run 7 janvier 2024 à 19:01
estimated_db_size 258.98 MiB
database_engine sqlite
database_version 3.41.2
[/center] ___

Comme le précise aussi le journal de Thomas j’ai créé un input.boolean :

###########################
####  Input Boolean  ######
###########################

input_boolean:
  notify_home:
    name: lave_vaisselle_en_cours
    icon: mdi:dishwasher

Voici l’automatisation de début de cycle qui fonctionne :

alias: Lave vaisselle - Début de cycle
description: ""
trigger:
  - type: power
    platform: device
    device_id: b9878309a63b389b2911889bb5a9fe33
    entity_id: 4e301e162dfa8087a85bb6da9e193945
    domain: sensor
    above: 12
condition:
  - condition: state
    entity_id: input_boolean.notify_home
    state: "off"
action:
  - service: input_boolean.turn_on
    target:
      entity_id: input_boolean.notify_home
    data: {}
  - service: notify.claude
    data:
      message: Début du cycle lave vaisselle
      title: Lave vaisselle
mode: single

Et voici l’automatisation de fin de cycle qui ne veut pas fonctionner :

alias: Lave vaisselle - Fin de cycle
description: ""
trigger:
  - type: power
    platform: device
    device_id: b9878309a63b389b2911889bb5a9fe33
    entity_id: 4e301e162dfa8087a85bb6da9e193945
    domain: sensor
    below: 10
    for:
      hours: 0
      minutes: 0
      seconds: 0
condition:
  - condition: state
    entity_id: input_boolean.notify_home
    state: "on"
    for:
      hours: 2
      minutes: 15
      seconds: 0
action:
  - service: input_boolean.turn_off
    target:
      entity_id:
        - input_boolean.notify_home
      device_id: []
      area_id: []
    data: {}
  - service: notify.claude
    data:

Et la prise Nous A1Z :

Si quelqu’un voit ce qui cloche car moi je ne vois plus rien…
Ou j’ai trop la tête dedans !!!

Essaye en retirant le « for » du trigger avec les hours, min, sec. J’ai eu un problème similaire avec une automation cette semaine en renseignant un temps puis en le repassant à 0, ca ne fonctionnait plus. Si tu forces l’exécution, cela marche ?

Salut

Il faut regarder les logs et l’historique de l’automatisation.
Sinon le plus simple, ç’est d’utiliser un blueprint : Notify or do something when an appliance like a dishwasher or washing machine finishes - Blueprints Exchange - Home Assistant Community

1 « J'aime »

Je te mets ci-dessous le codes de mes automatisation de début de cycle, de fin de cycle, et de notifications associées si ça peut t’aider.
J’utilise aussi des prises Nous A1Z Zigbee.
Ceci est fortement inspiré de ce qu’a fait @roumano

- id: '1681377180789'
  alias: 'Lave linge : 1 - Start'
  description: Lave linge start
  trigger:
  - platform: numeric_state
    entity_id: sensor.tz3000_2putqrmw_ts011f_active_power_6
    above: 10
    for:
      hours: 0
      minutes: 1
      seconds: 0
  condition:
  - condition: state
    entity_id: input_boolean.lave_linge_cycle
    state: 'off'
  action:
  - service: utility_meter.calibrate
    data:
      value: '0'
    target:
      entity_id: sensor.lave_linge_power_cycle_2
  - service: input_boolean.turn_on
    data: {}
    target:
      entity_id: input_boolean.lave_linge_cycle
  mode: single
- id: '1681377539978'
  alias: 'Lave-vaisselle : 2 - Fin'
  description: Lave_vaisselle Fin
  trigger:
  - platform: numeric_state
    entity_id: sensor.tz3000_2putqrmw_ts011f_active_power_7
    below: 10
    for:
      hours: 0
      minutes: 2
      seconds: 0
  condition:
  - condition: state
    entity_id: input_boolean.lave_vaisselle_cycle
    state: 'on'
  action:
  mode: restart
- id: '1681378226117'
  alias: 'Lave linge : 3 - Fin, notification'
  description: Lave linge Fin, notifications
  trigger:
  - platform: numeric_state
    entity_id: sensor.tz3000_2putqrmw_ts011f_active_power_6
    below: 2
    for:
      hours: 0
      minutes: 3
      seconds: 0
  condition:
  - condition: state
    entity_id: input_boolean.lave_linge_cycle
    state: 'on'
  action:
  - service: input_boolean.turn_off
    data: {}
    target:
      entity_id: input_boolean.lave_linge_cycle
  - service: notify.mobile_app_sm_s906b
    data:
      title: Lave linge terminé
      message: Le cycle s'est déroulé de {{ ((state_attr('automation.lave_linge_start','last_triggered'))
        | as_local).strftime("%Hh%M") }} à {{ now().strftime("%Hh%M") }}
  - continue_on_error: true
    service: persistent_notification.create
    data:
      title: Lave linge terminé
      message: '{%- set time = ((state_attr(''automation.lave_linge_fin_2'',''last_triggered''))
        - (state_attr(''automation.lave_linge_start'',''last_triggered''))).seconds
        -%} {%- set minutes = ((time % 3600) / 60) | round | int -%} {%- set hours
        = ((time % 86400) / 3600) | int -%} Le cycle s''est déroulé de {{ ((state_attr(''automation.lave_linge_start'',''last_triggered''))
        | as_local).strftime("%Hh%M") }} à {{ now().strftime("%Hh%M") }}

        Durée du cycle : {{ ''{:01}h{:02}m''.format(hours, minutes) }}

        Consommation : {{ states(''sensor.lave_linge_power_cycle_2'') }}kWh, soit
        {{ ((states(''sensor.lave_linge_power_cycle_2'') | float(default=0) *  float(states(''input_number.prix_du_kwh_d_electricite''))))
        | round(2) }}€

        '
  - continue_on_error: true
    service: notify.consommations
    data:
      message: '{{ now().strftime("%d/%m/%Y") }} ; Lave linge ; {{ ((state_attr(''automation.lave_linge_start'',''last_triggered''))
        | as_local).strftime("%Hh%M") }} - {{ now().strftime("%Hh%M") }} ;  {{ (((state_attr(''automation.lave_linge_fin_2'',''last_triggered''))
        - (state_attr(''automation.lave_linge_start'',''last_triggered''))).seconds
        / 3600 )| int }}h{{((((state_attr(''automation.lave_linge_fin_2'',''last_triggered''))
        - (state_attr(''automation.lave_linge_start'',''last_triggered''))).seconds
        % 3600 )/60 )| round }}m ; {{ states(''sensor.lave_linge_power_cycle_2'')
        }}kWh ; {{ ((states(''sensor.lave_linge_power_cycle_2'') | float(default=0)
        * float(states(''input_number.prix_du_kwh_d_electricite''))))  | round(2)
        }} EUR'
  mode: single

@Jeffodilo @Giga77

L’automatisation fonctionne quant je la lances manuellement…

Voici la copie écran d’une partie de log (je ne pensais pas à utiliser cette fonction…)

Peut être que tu as trouvé l’explication !!
J’ai modifié mon automatisation :

alias: Lave vaisselle - Fin de cycle
description: ""
trigger:
  - type: power
    platform: device
    device_id: b9878309a63b389b2911889bb5a9fe33
    entity_id: 4e301e162dfa8087a85bb6da9e193945
    domain: sensor
    below: 10
condition:
  - condition: state
    entity_id: input_boolean.notify_home
    state: "on"
    for:
      hours: 2
      minutes: 15
      seconds: 0
action:
  - service: input_boolean.turn_off
    target:
      entity_id:
        - input_boolean.notify_home
      device_id: []
      area_id: []
    data: {}
  - service: notify.claude
    data:
      message: Fin du cycle lave vaisselle
      title: Lave vaisselle
mode: single

Le prochain lavage de vaisselle devrait confirmer ou infirmer cette modification

@Giga77 @Gilles2
Les blueprints et les formules, je n’en suis pas là en terme de connaissance HA

Ça t’evite de réinventer la roue. :yum:
Ça te permet de créer des automatisations déjà utilisées et éprouvées par d’autres utilisateurs, avec tes capteurs.

Je te ne sais pas de quoi tu parles. Quelle formule ?

@Giga77
Les formules c’était plutôt dans l’exemple de @Gilles2 (texte dans message: )

Je ne comprends pas pourquoi mon automatisation a un message d’erreur a 20:59:48 alors que le lave vaisselle s’est terminé aux environs de 19:44…
Le bug est peut être là

Bonjour
J’ai fait évoluer l’automatisation de fin de cycle :

alias: Lave vaisselle - Fin de cycle
description: ""
trigger:
  - type: power
    platform: device
    device_id: b9878309a63b389b2911889bb5a9fe33
    entity_id: 4e301e162dfa8087a85bb6da9e193945
    domain: sensor
    below: 5
  - platform: state
    entity_id:
      - input_boolean.notify_home
    from: "on"
    for:
      hours: 2
      minutes: 15
      seconds: 0
condition: []
action:
  - service: input_boolean.turn_off
    target:
      entity_id:
        - input_boolean.notify_home
      device_id: []
      area_id: []
    data: {}
  - service: notify.claude
    data:
      message: Fin du cycle lave vaisselle
      title: Lave vaisselle
mode: single

La détection et la notification se font bien au début (20:09)
La détection et la notification se font bien à la fin aussi (22:37)

Par contre le lave vaisselle passe par un étape ou la consommation passe à 0 W (durant 2 ou 3 minutes…) j’imagines que c’est le programme de lavage qui est prévu comme cela…

Mais du coup les détections et notifications sont doublées et je retrouves avec
Début : 20:09
Fin : 21:59
Début : 22:02
Fin : 22:37

Un petite idée serait la bienvenue

Merci à tous

L’approche que j’ai prise est de mttre la condition sur le fait que la consommation passe à 0 pour plus de 2 min par exemple.
Bien sûr, ça ne te donne pas la fin éxacte du cycle, mais en particulier si tu calcules la consommation du cycle (ce que je fais), ceci permet d’être sûr d’avoir l’ensemble du cycle.

- id: '1681377539978'
  alias: 'Lave-vaisselle : 2 - Fin'
  description: Lave_vaisselle Fin
  trigger:
  - platform: numeric_state
    entity_id: sensor.tz3000_2putqrmw_ts011f_active_power_7
    below: 10
    for:
      hours: 0
      minutes: 2
      seconds: 0
  condition:
  - condition: state
    entity_id: input_boolean.lave_vaisselle_cycle
    state: 'on'
  action:
  mode: restart

@Gilles2

Merci de ton idée
Je viens de rajouter une tempo de 3 minutes => on verra au prochain lave vaisselle

  trigger:
  - type: power
    platform: device
    device_id: b9878309a63b389b2911889bb5a9fe33
    entity_id: 4e301e162dfa8087a85bb6da9e193945
    domain: sensor
    below: 5
    for:
      hours: 0
      minutes: 3
      seconds: 0

Bonjour

Cette automatisation me faisant batailler (avec des alertes durant le cycle de lavage ou après la fin de lavage…je ne sais pourquoi…) j’ai revu tout cela en m’appuyant sur la vidéo ici :

alias: Lave vaisselle - Début de cycle (V2)
description: ""
trigger:
  - platform: state
    entity_id:
      - binary_sensor.lave_vaisselle_en_cours
    from: "off"
    to: "on"
condition: []
action:
  - service: notify.claude
    metadata: {}
    data:
      message: Lave vaisselle - Début de cycle (V2)
      title: Lave vaisselle (V2)
mode: single

et celui ci :

alias: Lave vaisselle - Fin de cycle (V2)
description: ""
trigger:
  - platform: state
    entity_id:
      - binary_sensor.lave_vaisselle_en_cours
    from: "on"
    to: "off"
condition: []
action:
  - service: notify.claude
    metadata: {}
    data:
      message: Lave vaisselle - Fin de cycle (V2)
      title: Lave vaisselle (V2)
mode: single

Et pour le binary sensor dans le fichier configuration.yaml :

template:
    binary_sensor:
      - state: "{{ states('sensor.prise_7_lave_vaisselle_power') | float(default = 0) > 3 }}"
        name: Lave vaisselle en cours
        unique_id: is_vaisselle_machine_running
        device_class: running
        delay_off: '0:05:00'

Là ça fonctionne
je l’ai décliné sur le lave linge et c’est top aussi

Merci à tous

Si tu veux quelque chose de plus complet, regarde pr ici :

De ce que je comprends du premier post et de toutes les infos fournies :

  • il y a une condition, d’attente que le la puissance soit supérieure à 10 W pendant 2h15 avant de pouvoir lancer l’alerte.
  • le cycle commence vers 17h15 et se termine à…19h45 ? Mais entre 19h05 et 19h45, c’était au dessus des 10 W ? Car sinon, tu remplis pas ta condition de temps. Pas facile de voir avec cette échelle :slight_smile: .

La raison du délais entre la baisse de la consommation et le déclenchement du message de fin de cycle est lié au fait que pour certaines machines, le cycle réel se termine sans (ou avec très peu) de consommation.
Si je prends l’exemple de mon lave vaisselle (l’exemple que j’ai mis plus haut), en fin de cycle, il s’entrouvre et reste ainsi pendant pas mal de temps pour laisser sécher. Le cycle n’est donc pas terminé immédiatement.
Ce temps supplémentaire est à adapter en fonction des machines. Sur ma machine à laver, ce délais n’est que de 2 minutes (le hublot ne se déverouille pas immédiatement après que la consommation passe à 0).

Oui je confirme qu’il faut adapter les seuils et temps pour chaque appareil (et avec des valeurs qui fonctionne pour chaque mode/cycle)

Le mode éco de mon LV passe beaucoup de temps à vide, pire pour mon ancien lave-vaisselle, où il avait une consommation presque totalement nul pour une période de plus de 30 minutes.

il faut que tu regarde la conso d’un cycle pour mettre les bonnes valeurs

Sur ce graph, on pourrait croire qu’il a fini vers 3h15 ou 4h30 :

mais en zoomant après, on vois qu’il a fini a 5h44 :

Bon weekend

2 « J'aime »