Action sur le stop d'un script

Bonjour,

j’utilise des scripts avec des delay pour faire des boosts de chauffage… Le truc, c’est que lorsque je stop mon script, j’aimerais revenir en éco… J’ai beau me tourner la tête, je ne vois qu’une solution :

  • Faire un script avec que le délai.
  • Faire 1 automatisation qui va écouter le star / stop tu script.

On ne peut pas faire mieux et mettre une condition de shutdown sur le script ?

Peut-être un truc a faire avec les wait for trigger.

En fait, je me demande si le mieux ce n’est pas un interrupteur + 1 automation à la plac d’un script.

Salut,

Les timers !!! Comme pour jeedom, les wait & delay c’est loin d 'être idéal.
En plus les timers ça survit au restart de HA !

Merci !

Je partage mon code pour que ça serve :

alias: Chambre confort+ timer
description: Gestion du timer pour l'automatisation du boost chauffage dans la chambre.
triggers:
  - trigger: state
    entity_id:
      - input_boolean.timer_chambre_confort
    id: interrupteur
  - trigger: state
    entity_id:
      - timer.timer_chambre_confort
    id: minuteur
conditions:
  - condition: template
    value_template: "{{trigger.from_state.state != 'unavailable'}}"
actions:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - interrupteur
          - alias: Activation
            condition: template
            value_template: >-
              {{ trigger.from_state.state == 'off' and trigger.to_state.state ==
              'on' }}
        sequence:
          - action: timer.start
            metadata: {}
            data: {}
            target:
              entity_id: timer.timer_chambre_confort
        alias: Interrupteur activé
      - conditions:
          - condition: trigger
            id:
              - interrupteur
          - alias: Désactivation
            condition: template
            value_template: >-
              {{ trigger.from_state.state == 'on' and trigger.to_state.state ==
              'off' }}
        sequence:
          - action: timer.finish
            metadata: {}
            data: {}
            target:
              entity_id: timer.timer_chambre_confort
        alias: Interrupteur désactivé
      - conditions:
          - condition: trigger
            id:
              - minuteur
          - alias: Activation
            condition: template
            value_template: >-
              {{ trigger.from_state.state == 'idle' and trigger.to_state.state
              == 'active' }}
        sequence:
          - action: climate.set_temperature
            metadata: {}
            data:
              hvac_mode: heat
              temperature: 23
            target:
              entity_id: climate.heater_chambre_parentale
        alias: Minuteur activé
      - conditions:
          - condition: trigger
            id:
              - minuteur
          - alias: Désactivation
            condition: template
            value_template: >-
              {{ trigger.from_state.state == 'active' and trigger.to_state.state
              == 'idle' }}
        sequence:
          - action: climate.set_temperature
            metadata: {}
            data:
              hvac_mode: heat
              temperature: 18
            target:
              entity_id: climate.heater_chambre_parentale
          - if:
              - condition: state
                entity_id: input_boolean.timer_chambre_confort
                state: "on"
            then:
              - action: input_boolean.turn_off
                metadata: {}
                data: {}
                target:
                  entity_id: input_boolean.timer_chambre_confort
        alias: Minuteur désactivé
mode: single

1 « J'aime »

Ou plus simple, en effet, le timer propose déjà une interface on/off. Du coup plus besoin d’un interrupteur :

alias: Chambre confort
description: Gestion du minuteur  pour l'automatisation du boost chauffage dans la chambre.
triggers:
  - trigger: state
    entity_id:
      - timer.timer_chambre_confort
    id: minuteur
conditions:
  - condition: template
    value_template: "{{trigger.from_state.state != 'unavailable'}}"
actions:
  - choose:
      - conditions:
          - alias: Activation
            condition: template
            value_template: >-
              {{ trigger.from_state.state == 'idle' and trigger.to_state.state
              == 'active' }}
        sequence:
          - action: climate.set_temperature
            metadata: {}
            data:
              hvac_mode: heat
              temperature: 23
            target:
              entity_id: climate.heater_chambre_parentale
        alias: Minuteur activé
      - conditions:
          - alias: Désactivation
            condition: template
            value_template: >-
              {{ trigger.from_state.state == 'active' and trigger.to_state.state
              == 'idle' }}
        sequence:
          - action: climate.set_temperature
            metadata: {}
            data:
              hvac_mode: heat
              temperature: 18
            target:
              entity_id: climate.heater_chambre_parentale
        alias: Minuteur désactivé
mode: single