Compter le nombre de cycle d'un lave vaisselle

Hello hello,

Voila plusieurs jours que j’essaie de résoudre mon problème mais rien y fait… c’est pourquoi je fais alors appel à la Communauté :wink:

Mon objectif principal est de détecter la fin du cycle de lavage de mon lave vaiselle, petit problème, mon LV passe par des phases de consommation de 0W durant parfois 30min, ce qui m’empêche de simplement détecter lorsque cette puissance passe à 0W et déclencher mon alerte de fin de lavage.

Je décide alors de compter les fronts descendants avec un seuil de 5W durant mon cycle. Ce qui veut dire que lorsque ma puissance passe sous les 5W pour la 6eme fois, c’est la fin de mon cycle.

J’ai essayé de faire ça avec un template mais il faut que je stocke cette valeur du nb de front pour pouvoir ensuite déclencher une notification quand il vaut 6.

Je me dis que ça devrait ressembler à une entité du type sensor.lave-vaisselle-status en étant à « off » lorsque la puissance du LV est à 0W, « on » lorsqu’il y a une puissance détectée, puis de nouveau « off » lorsque le 6eme cycle est détecté.

Le compteur de cycle serait un attribut de « sensor.lave-vaisselle-status »

Mais me voila bloqué, ne sachant pas comment implémenter la chose.

Je suis preneurs de votre avis sur la méthode de détection, mais aussi sur comment incrémenter un attributs lors d’une détection d’un front descendant.

Merci :slight_smile:

Salut

As-tu essayé ce blueprint: Open your Home Assistant instance and show the blueprint import dialog with a specific blueprint pre-filled.
Tu peux définir que ton lave vaisselle a fini s’il est à 0W depuis 30 minutes.

C’est sûrement 6 fois pour le cycle habituelle mais pour un autre cycle moins

Je te conseil d’avoir là, où il y a pas mal d’information à ce sujet : Obtenir le temps d'utilisation d'un appareil électrique sur une période donnée - #21 par roumano

1 « J'aime »

En effet, c’est parfait ce lien @roumano a fait un super taf que j’utilise tout les jours
Un grand merci d’ailleurs @roumano

image

La dernière colonne c’est justement le nombre de cycle

1 « J'aime »

@roumano voici un visuel aussi

C’est un peut HS mais j’ai un coup de gueule a passer et si vous avez une ou des idées sur les différentes action que je peut faire avec mon souci :
Je vous explique en essayent de pas écrire un paver :
Recamment, j’ai changer de Lave-vaisselle car HS, j’ai opter pour un modèle relativement chère mais qui était sensé me faire économiser par la suite car faible consommation :

Bosh SMI6TCS00E ( https://eprel.ec.europa.eu/screen/product/dishwashers2019/377160 )

il est noter classe énergétique A et une consommation électrique de 543 Wh pour un cycle eco.
Or tous mes cycles sont systématiquement bien supérieur ( de plus de 40%) (j’ai des mesures entre 820 et 850wh).

J’ai bien sur vérifier avec un autre appareil de mesure ( non connecter) et le résultat est identique a moins de 0,3% prés.
J’ai contacter Bosh par e-mail mais après deux échanges, ils font les morts , …

Il se peut que ce soit mon produit qui est défectueux (si c’est le cas, comment me le faire echanger ? ) mais franchement je pense plutôt qui font de la fraude sur les étiquette énergétique de la part de Bosh !

Donc si vous avez des idées sur des actions que je peut mener, n’hésiter pas.

@roumano
Je pense que beaucoup font cette fraude de l’affichage
J’ai eu le cas sur un frigo avec soit disant une conso très faible ! Résultat je trouve un conso supérieur à mon ancien frigo qui tourne toujours (mais en 2nd frigo) toujours entrain de réguler pour ne jamais atteindre la température que je veux ! Mais si je pousse encore il gèle dans le fond bref

Sur le lave vaisselle les wh chez moi je trouve que ça va mais c’est l’eau annoncé comme faible conso et pas moyen de mesurer enfin pour le moment

Hello hello,

Merci beaucoup pour vos messages ! C’est top ce que vous avez fait :slightly_smiling_face:

Je me suis pas mal inspiré de ce que vous m’avez donné et ça ma aidé à faire ma propre version qui répond parfaitement à mon besoin.

Ca me donne ça sur HA :

Avec les notifications sur Smarphone :

Je vais donc tenter d’expliquer ce que j’ai fait, cela pourra peut-être, et je l’espère, en aider certains.

Ma problématique initiale était de détecter la fin d’un cycle de lavage de lave vaisselle. Due au fonctionnement de celui ci, je ne pouvais pas simplement détecter lorsque sa puissance instantanée passe à Zéro comme ce que je fais pour mon lave linge (raison expliqué plus haut). Le seul moyen que j’ai trouvé est de me référer aux différents cycles de puissance remonté par ma prise connectée, et de déterminer la fin du cyle de lavage au bout d’un certain nombre de cycle (voir photo premier post), cycle que j’appelerai front dans la suite. Je souhaitais aussi être averti très rapidement après la fin de mon lavage, la technique d’attendre que la machine soit à 0W pendant + de 30min pour ensuite être alerté ne me convenait pas totalement …

Voila comment fonctionne mon machin :

Mon seuil de puissance sera 5W, c’est à dire que lorsque la puissance du LV augmente et traverse ce seuil, ou que la puissance baisse et traverse ce seuil, je compterai cela comme un front (montant ou descendant). Au bout de 14 front dans mon cas, mon lavage est terminé.

Donc grossièrement :

1- Mon LV démarre, sa puissance consommée passe au dessus de 5W, un front est détecté, j’incrémente mon compteur de front via une automatisation

2- Le nombre de front est compris entre 1 et 13, le status de mon LV passe à “Running”

3- La puissance de mon LV va de nouveau passer en dessus de mon seuil de 5W, front descendant → incrémentation de mon compteur

4- Répétition jusqu’a ce que le dernier front soit détecté, passage du compteur à 14.

5- Le nombre de front n’est plus compris entre 1 et 13, ma machine passe à “Not Running”

6 - Une automatisation est déclenchée lorsque le status de la machine passe de “Running” à “Not Running”, cela déclenche une notification ainsi que le reset du compteur de front.

En prime, j’ai un compteur qui me donne la consommation d’énergie du cycle, ainsi que le coût en “€” du cycle.

Voila les codes associés aux différentes briques :

Un capteur binaire qui me donne le status de mon LV en fonction du compteur du nombre de front.

template:
  
  binary_sensor:

    - state: "
	  {% set cycle = states('counter.compteur_cycle_lave_vaisselle')  %}
	  {% if cycle | int >= 1 and cycle | int <= 13-%}
	  on
	  {%- else  -%}
	  off
	  {%- endif %}"
      name: "Lavage en cours vaisselle"
      unique_id: dishwasher_is_running
      device_class: running

Deux sensors, un qui me donne le coût du dernier cycle de lavage, et un qui me donne son temps d’éxecution.

sensor:

    - state: "
      {% set price = 0.23 | float %}
      {% set prix = states('sensor.conso_dernier_cycle_lave_vaisselle_kwh') | float * price %}
      {{prix | round(2)}}
      "
      name: "Cout dernier cycle lave vaisselle"
      unique_id: dishwashing_cost
      unit_of_measurement: "€"

    - state: "
      {% set debut = as_local(state_attr('automation.lancement_lave_vaisselle', 'last_triggered')) %}
      {% set fin = as_local(state_attr('automation.cycle_lave_vaisselle_termine', 'last_triggered')) %}
      {% set time_now = as_local(now()) %}
      {% if is_state('binary_sensor.lavage_en_cours_vaisselle', 'on') -%}
      {% set secondes = (time_now-debut).total_seconds() | round | int%}
      {%- else -%}
      {% set secondes = (fin-debut).total_seconds() | round | int%}
      {%- endif %}
      {% set hour = (secondes / 3600) | float | round(0,'floor') %}
      {% set min = ((secondes % 3600)/60) | float | round (0,'floor') %}
      {% set sec = ((secondes % 3600)%60) | float | round (0,'floor') %}
      {{ '%02i:%02i'%(hour, min) }}
      "
      name: "Duree dernier cycle lave vaisselle"
      unique_id: dishwashing_time

Un sensor qui va me compter l’énergie totale consommée par mon LV en faisant une intégrale de la puissance instantannée :

sensor:
  - platform: integration
    name: energie_conso_lave_vaisselle_kwh
    source: sensor.prise_nous_2_active_power
    unit_prefix: k
    method: left
    round: 2

Issue de : Integration - Riemann sum integral - Home Assistant

Un utility_meter qui va me permettre de compter l’énergie consommée durant mon lavage, puis de remettre à zero au début du cycle suivant.

utility_meter:
  conso_dernier_cycle_lave_vaisselle_kwh:
    source: sensor.energie_conso_lave_vaisselle_kwh
    unique_id: conso_dernier_cycle_lv
    cycle: monthly

Issue de : Utility Meter - Home Assistant

Un compteur qui me permettra de compter mon nombre de front durant mon lavage.

counter:
  compteur_cycle_lave_vaisselle:
    name: "compteur_lave_vaisselle"
    initial: 0
    step: 1

Automatisation déclenchée au lancement d’un cycle de LV.

- id: '1694642123355'
  alias: Lancement lave vaisselle
  description: ''
  trigger:
  - platform: state
    entity_id:
    - binary_sensor.lavage_en_cours_vaisselle
    from: 'off'
    to: 'on'
  condition: []
  action:
  - service: notify.mobile_app_iphone_de_XXX
    data:
      message: Lavage lancé ! ⚡️
      title: Lave vaisselle
  - service: utility_meter.calibrate
    data:
      value: '0'
    target:
      entity_id: sensor.conso_dernier_cycle_lave_vaisselle_kwh
  mode: single

Automatisation déclenchée pour incrémenter le compteur de front.

- id: '1694637497215'
  alias: 'Incrémentation cycle lave vaiselle '
  description: ''
  trigger:
  - platform: numeric_state
    entity_id: sensor.prise_nous_2_active_power
    below: 5
  - platform: numeric_state
    entity_id: sensor.prise_nous_2_active_power
    above: 5
  condition: []
  action:
  - service: counter.increment
    data: {}
    target:
      entity_id: counter.compteur_cycle_lave_vaisselle
  mode: single

Automatisation déclenchée à la fin d’un cycle de LV.

- id: '1694642228875'
  alias: Cycle lave vaisselle termine
  description: ''
  trigger:
  - platform: state
    entity_id:
    - binary_sensor.lavage_en_cours_vaisselle
    from: 'on'
    to: 'off'
  condition: []
  action:
  - service: notify.mobile_app_iphone_de_XXX
    data:
      title: Lave vaisselle
      message: Lavage terminé ! ✅
  - service: counter.reset
    data: {}
    target:
      entity_id: counter.compteur_cycle_lave_vaisselle
  mode: single

Jespère que ça pourra en aider quelque un, la limite de cette méthode est qu’il faut saisir manuellement le nombre de front d’un cycle de lavage. Dans mon cas j’utilise constamment le même cycle, ça ne me pose pas de soucis.

N’hésitez pas si vous avez des questions ou des remarques pour améliorer le système.

Enjoy,

Vic.