Automatisation Start et End de mon sèche Linge

Bonjour à tous

je viens voir la communauté au sujet de deux automatisations.
Elles doivent me permettre de voir si mon sèche linge a démarré, en route, ou s’est arrêté.
J’ai sur le sèche linge une prise connectée et un capteur d’ouverture sur l’hublot.

La courbe de la puissance de la prise est la suivante :

La zone rouge correspond à l’endroit où le cycle de séchage est terminé.
Les zones jaunes correspondent au mode défroissage du sèche linge.
Et le temps de fonctionnement complet pourrait être l’ouverture de la porte d’ailleurs ! Mais je ne veut pas attendre tous les cycles pour avoir la notification :slight_smile:

Mon problème aujourd’hui, c’est que je capte bien l’arrêt de la machine et je m’envoie les bonnes notifications mais les pics jaune me déclenche à nouveau le start alors que c’est pas nécessaire.

Mes notifications Discord (ne pas se regarder les chiffres c’est des tests donc il sont pas juste)
image
Capture d'écran 2024-04-16 104043

J’ai tenté de mettre une condition template dans le START.
Cette condition regarde si le last changed de l’ouverture de porte est inférieur à 5 minutes et que la porte est bien fermée donc à Off.
Mais je suis pas serein sur la syntaxe dans l’automatisation (même si c’est ok dans la partie modèle).

{% if is_state('binary_sensor.pte_buanderie_seche_linge_contact', 'off') and
    as_timestamp(now()) - as_timestamp(states.binary_sensor.pte_buanderie_seche_linge_contact.last_changed) < 300 %}
    true
{% else %}
    false
{% endif %}

Est-ce que déjà vous pouvez me dire si le template se gère bien comme ceci et s’il est correct en syntaxe ?
Auriez vous un autre approche, pour faire abstraction de ces pics qui sont aléatoires à la fois en nombre et en valeur ?

Merci de votre approche
je tente l’expérience HA plutôt que Node Red

Mon automatisation START :

Sèche Linge Start
alias: Sèche Linge Start
description: ""
trigger:
  - type: power
    platform: device
    device_id: bc13545f3db9a733403213d935627cb9
    entity_id: 6c8f07c063934ada4b5787cfbc3d843c
    domain: sensor
    above: 5
    for:
      hours: 0
      minutes: 0
      seconds: 1
condition:
  - condition: state
    entity_id: input_boolean.seche_linge_cycle
    state: "off"
  - condition: state
    entity_id: binary_sensor.pte_buanderie_seche_linge_contact
    state: "off"
  - condition: template
    value_template: >-
      {% if is_state('binary_sensor.pte_buanderie_seche_linge_contact', 'off')
      and
          as_timestamp(now()) - as_timestamp(states.binary_sensor.pte_buanderie_seche_linge_contact.last_changed) < 300 %}
          true
      {% else %}
          false
      {% endif %}
    enabled: true
action:
  - service: utility_meter.calibrate
    data:
      value: "0"
    target:
      entity_id:
        - sensor.pc_buanderie_seche_linge_energy_kwh_heure
  - service: input_boolean.turn_on
    data: {}
    target:
      entity_id: input_boolean.seche_linge_cycle
  - service: notify.home_assistant
    data:
      message: ""
      target:
        - "1108858191128838184"
      data:
        embed:
          title: ""
          description: >-
            Démarrage du Sèche Linge à
            **{{((state_attr('automation.seche_linge_start','last_triggered')) |
            as_local).strftime("%Hh%M") }}**
          url: https://www.home-assistant.io
          color: 199363
          author:
            name: Gestion des machines
            url: https://www.home-assistant.io
            icon_url: https://i.imgur.com/9V4Lspg.png
          footer:
            text: "HA - Sèche Linge : Notification"
            icon_url: https://www.home-assistant.io/images/favicon-192x192-full.png
          thumbnail:
            url: https://i.imgur.com/9V4Lspg.png
mode: single

Mon automatisation END:

Sèche Linge Fin : Notification
alias: "Sèche Linge Fin : Notification"
description: ""
trigger:
  - type: power
    platform: device
    device_id: bc13545f3db9a733403213d935627cb9
    entity_id: 6c8f07c063934ada4b5787cfbc3d843c
    domain: sensor
    below: 5
    for:
      hours: 0
      minutes: 0
      seconds: 5
condition:
  - condition: state
    entity_id: input_boolean.seche_linge_cycle
    state: "on"
action:
  - service: input_boolean.turn_off
    data: {}
    target:
      entity_id:
        - input_boolean.seche_linge_cycle
  - service: counter.increment
    data: {}
    target:
      entity_id:
        - counter.seche_linge_cycle
  - service: notify.home_assistant
    data:
      message: ""
      target:
        - "1108858191128838184"
      data:
        embed:
          title: ""
          description: >-
            {%- set time =
            ((state_attr('automation.seche_linge_fin_notification','last_triggered'))
            -
            (state_attr('automation.seche_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.seche_linge_start','last_triggered')) |
            as_local).strftime("%Hh%M") }}** à **{{
            (state_attr('automation.seche_linge_fin_notification','last_triggered')
            | as_local).strftime("%Hh%M") }}**

            Pour une durée de : **{{ '{:01}h{:02}'.format(hours, minutes) }}**

            Le cycle à consommé : 
            **{{states('sensor.pc_buanderie_seche_linge_energy_kwh_heure') |
            round(4) }}** kWh

            Pour un coût de : 
            **{{(states('sensor.pc_buanderie_seche_linge_energy_kwh_heure') |
            float  * states('input_number.hp_energy_cout')| float) | round (2)
            }}** €

            Nombre de cycles : **{{states('counter.seche_linge_cycle') |
            float(default=0) |
                round(0)}}**
          url: https://www.home-assistant.io
          color: 199363
          author:
            name: Gestion des machines
            url: https://www.home-assistant.io
            icon_url: https://i.imgur.com/9V4Lspg.png
          footer:
            text: "HA - Sèche Linge Fin : Notification"
            icon_url: https://www.home-assistant.io/images/favicon-192x192-full.png
          thumbnail:
            url: https://i.imgur.com/9V4Lspg.png
mode: single

Si tu changes juste ton seuil pour le start:

Tu mets un seuil plus haut (5W c’est pas lourd…) pour être sûr d’être en chauffage et pas en defroissage (vu ton cycle, un seuil de 250W devrait convenir).

Au pire ça retarde un peu le démarrage du cycle entre les 5W et les 250W, mais ça doit pas être bien long…

Comme tu peux voir là: Présentation + [Mon Dashboard] BBE - #3 par BBE
Mes automatisations pour le sèche linge triggent sur:

  • P > 500W durant 10S pour le départ
  • P < 4W durant 45s pour la fin de cycle

Et je n’ai pas de soucis avec le mode défroissage…

1 « J'aime »

Sinon, il y a la solution du fer à repasser :joy:

Effectivement je ne suis pas à quelques secondes sur le temps et la conso complète
Je vais tester ceci.

1 « J'aime »

Réponse à la prochaine lessive alors…

Exactement mais à 5 à la maison cela va arriver vite :slight_smile:

1 « J'aime »

Pour info il y a ici un Blueprint des plus complets.

Salut.
Juste pour savoir tu a quoi comme modèle de prise :slight_smile:

Merci

Voici mon auto, sans blueprint, juste en ayant observé le comportement de la conso de ma prise zigbee.

Je peux différencier les états on, veille, et off et donc :

  • déclencher une notif de fin de cycle au passage de on à veille.
  • savoir que le cycle commence au passage de veille à on.
alias: Lave Linge state
description: ""
trigger:
  - platform: template
    value_template: >-
      {{states('sensor.lave_linge_conso') | float == 0  and
      states('sensor.lave_linge_rms_current') | float == 0.1 }}
    alias: Veille
    enabled: true
  - platform: template
    value_template: >-
      {{states('sensor.lave_linge_conso') | float == 0  and
      states('sensor.lave_linge_rms_current') | float == 0.0 }}
    for:
      hours: 0
      minutes: 0
      seconds: 30
    alias: "OFF"
    enabled: true
  - platform: template
    value_template: >-
      {{states('sensor.lave_linge_conso') | float != 0  and
      states('sensor.lave_linge_rms_current') | float != 0.0 }}
    for:
      hours: 0
      minutes: 0
      seconds: 30
    alias: "ON"
    enabled: true
condition: []
action:
  - choose:
      - conditions:
          - condition: template
            value_template: >-
              {{states('sensor.lave_linge_conso') | float == 0  and
              states('sensor.lave_linge_rms_current') | float == 0.0 }}
            alias: "OFF"
        sequence:
          - service: input_select.select_option
            data:
              option: "off"
            target:
              entity_id: input_select.lave_linge
      - conditions:
          - condition: template
            value_template: >-
              {{states('sensor.lave_linge_conso') | float == 0  and
              states('sensor.lave_linge_rms_current') | float == 0.1 }}
            alias: Veille
        sequence:
          - service: input_select.select_option
            data:
              option: veille
            target:
              entity_id: input_select.lave_linge
      - conditions:
          - condition: template
            value_template: >-
              {{states('sensor.lave_linge_conso') | float != 0  and
              states('sensor.lave_linge_rms_current') | float != 0.0 }}
            alias: "ON"
        sequence:
          - service: input_select.select_option
            data:
              option: "on"
            target:
              entity_id: input_select.lave_linge
    default: []
mode: single

Pour compléter cela, pour afficher la durée depuis qu’il est en cycle ou en veille, j’ai fait ce sensor template :

      lave_linge_duree:
        friendly_name: lave-linge durée
        value_template: >-   
          {% if states.input_select.lave_linge.state == 'on' %}
            {{ as_timestamp(states.input_select.lave_linge.last_changed) | timestamp_custom("%Hh%M") }}  
          {% elif states.input_select.lave_linge.state == 'veille' %}
            {{ as_timestamp(states.input_select.lave_linge.last_changed) | timestamp_custom("%Hh%M") }} 
          {%- else %}
          {%- endif %}

Tu pourrais ajouter une condition, qui passerait l’état on qu’après une durée X (fais en sorte qu’elle soit plus grande que la durée de défroissage).

1 « J'aime »

Mes prises ressortent dans Z2M comme 10A UK or 16A EU smart plug (TS0121_plug)
par TuYa mais ce sont des blitzwolf.

merci @herveaurel je regarde ça

Ça marche merci.
Je te demande car j’avais mis un shelly plug S et il a fondu du coup je suis plus trop rassuré….

Je vais regarder :slight_smile:

Il existe des prises 20A.
Mais les miennes de mémoire c’est 16A et RAS
Avant j’avais du fibaro dessus et RAS
Au global depuis 6 ans RAS sur le sujet ampères

1 « J'aime »