Créer une automatisatiion avec un déclenchement toutes les heures pour une durée de 5mins

Bonsoir à tous.

Avec cette neige qui tombe sans discontinu, je dois activer ma pompe d’évacuation au sous-sol.
Afin d’eviter une inondation (sans trop de conséquences) j’aimerai activer ma pompe 1x /h pendant 5mins.
Donc là je bloque.

Merci d’avance

Voici ce que j’essaie:

alias: Nouvelle automatisation
description: ''
trigger:
  - platform: time
    at: '23:00:00'
  - platform: time
    at: '00:01:00'
  - platform: time
    at: '02:00:00'
  - platform: time
    at: '03:00:00'
  - platform: time
    at: '04:00:00'
  - platform: time
    at: '05:00:00'
  - platform: time
    at: '06:00:00'
  - platform: time
    at: '07:00:00'
condition: []
action:
  - type: turn_on
    device_id: 6e2e6a54d609f4002b458e10434b98dc
    entity_id: switch.pompe_garage
    domain: switch
  - delay: '00:05:00'
mode: single

Mets plutôt :

  1. Déclenchement toutes les heures sur la 5ème minute (00:05,01:05,02:05,etc)
  trigger:
    platform: time_pattern
    minutes: 5

Ou mieux,’ pour ton cas, toutes les heures :

  trigger:
    platform: time_pattern
    hours: '*'

Bien sûr, ça va déclencher l’automatisation toutes les heures de la journée…

  1. Donc tu crée 2x input_datetime pour définir l’heure de début et de fin du cycle de vidange :
input_datetime:
  evacuation_debut:
    name: Horaire de démarrage de l'évacuation
    has_date: false
    has_time: true
  evacuation_fin:
    name: Horaire de fin de l'évacuation
    has_date: false
    has_time: true
  1. Tu les configure ensuite sur ton tableau de bord.

  2. Puis tu ajoutes dans ton automatisation la condition horaire d’exécution des actions (ici l’allumage de la pompe)

condition:
  condition: time
  after: input_datetime.evacuation_debut
  before: input_datetime.evacuation_fin
  1. Ce qui au final te donne comme automatisation :
automation:
- alias: 'Vidange Sous-sol'
  trigger:
    #Toutes les heures
    platform: time_pattern
    hours: '*'
  condition:
    condition: time
    after: input_datetime.house_silent_hours_start
    before: input_datetime.house_silent_hours_end
  action:
    - service: switch.turn_on
      entity_id: switch.pompe_garage
    - delay:
        minutes: 5
    - service: switch.turn_off
      entity_id: switch.pompe_garage  

:information_source: Si tu veux pour le délai tu peux créer un nombre input_number.pompe_temps_evacuation et l’utiliser pour pouvoir ajuster le temps de marche directement depuis ton tableau de bord. il te faut alors remplacer :

- delay:
    minutes: 5

par

- delay: "{{ states('input_number.pompe_temps_evacuation') | multiply(60) | int }}"

Si t’as des questions, n’hésite pas.

Automation Trigger - Home Assistant / Conditions - Home Assistant / Script Syntax - Home Assistant

Merci pour ta réponse.

Donc le texte en rouge correspond à mes propres valeurs?

Edit:
Donc celà me donne ça:

alias: Vidange Sous-sol
description: ''
trigger:
  - platform: time_pattern
    hours: '*'
condition:
  - condition: time
    after: '22:00:00'
    before: '07:00:00'
action:
  - service: switch.turn_on
    entity_id: switch.pompe_garage
  - delay: '[object Object]'
  - service: switch.turn_off
    entity_id: switch.pompe_garage
mode: single



l’interface graphique n’as pas l’air de bien gérer le delai…

alias: Vidange Sous-sol
description: ''
trigger:
  - platform: time_pattern
    hours: '*'
condition:
  - condition: time
    after: '22:00:00'
    before: '07:00:00'
action:
  - service: switch.turn_on
    entity_id: switch.pompe_garage
  - delay: '00:05:00'
  - service: switch.turn_off
    entity_id: switch.pompe_garage
mode: single

non mais poste pas de code sans rien dire ou demander :thinking: :upside_down_face:

Pas faux !! Désolé :grin:

(- delay: ‹ [object Object] ›) changé en (- delay: ‹ 00:05:00 ›)

fait un retour pour nous dire si ca fonctionne :+1: et si ça répond à ton besoin (marque en solution le poste pour le faire ressortir)

Pas de .soucis.
Encore merci

Bonjour à tous.

ça a marché nickel
Capture

Plus qu’a peaufiné pour les réglage.
Merci

1 « J'aime »

Bonjour je rechercherai une config dans le même style si vous pouvez corriger ce que j’ai fait.
Le ventilateur doit fonctionner toute les 15 mm puis stop 15mm et reprends
Merci
Cordialement

id: '1645485014601'
alias: 'Ventilateur Box Marche '
description: ''
trigger:
  - platform: device
    type: changed_states
    device_id: 8bc2790a6b2d4b1bb0dd029290cee70b
    entity_id: light.ventilateur_box
    domain: light
condition: []
action:
  - delay:
      hours: 0
      minutes: 15
      seconds: 0
      milliseconds: 0
  - type: turn_on
    device_id: 8bc2790a6b2d4b1bb0dd029290cee70b
    entity_id: light.ventilateur_box
    domain: light
  - delay:
      hours: 0
      minutes: 15
      seconds: 0
      milliseconds: 0
  - type: turn_off
    device_id: 8bc2790a6b2d4b1bb0dd029290cee70b
    entity_id: light.ventilateur_box
    domain: light
mode: restart

Pour anticiper le cas les cas liés à l’arrêt/démarrage de HA, pour éviter que la pompe tourne pendant 65 minutes, il faudrait aussi traiter le cas du démarrage de HA et arrêter la pompe par exemple au moment du démarrage.

Dans ce cas là - au pire - un pompage en cours serait abbrégé à moins que la durée prévue mais comme c’est programmé toutes les heures ce n’est pas grave je suppose.

Bonjour le_top merci de ta réponse moi c’est toute les 15 mm et je suis null j’ai fait 1001 test et celui la fonctionne mais des fois il plante je voudrais bien récupéré le code de Clemalex mais je ne sais pas comment le faire fonctionner chez moi. D’ou ma demande si le miens fait directe dans automatisation de HA est bon ou pas.
Coedialement

  1. Jamais dire qu’on est nul - on peut toujours s’améliorer et dire plutôt : je vais apprendre ça, je peux le faire - c’est de la PNL. De la programmation que tout le monde peut faire :wink: .
  2. Avant de rentrer dans le détail d’un sujet qu’on maîtrise moins, identifier les étapes:
    Triggers:
    • Détecter l’allumage.
    • (Détecter le démarrage de HA).
      Puis:
    • Attendre 15 min;
      • Détecter un arrêt prématuré pour arrêter tout?
    • Eteindre;
    • Attendre 15 min;
    • Allumer (et déclender la détection d’allumage).

Identification de l’automatisme:

id: '1645485014601'
alias: 'Ventilateur Box Marche '
description: ''

Triggers:

trigger:
  - platform: device
    type: changed_states
    device_id: 8bc2790a6b2d4b1bb0dd029290cee70b
    entity_id: light.ventilateur_box
    domain: light
  • Un entity_id ou un device_id sufift, il ne faut pas plus je pense, mais les deux sont ajoutés par l’interface utilisateur tant que cela correspond, c’est ok.
  • ‹ changed_states ›: Cela s’active aussi quand on éteint. comme c’est périodique pourquoi pas, mais l’implémentation change.
    • Donc peut-être plutôt « turned_on » que « changed ».
condition: []
  • On pourrait exiger que l’état soit actif après la détection d’un trigger et gérer ainsi le redémarrage de HA (car si l’automatisme évalue la condition après un démarrage, et la condition exige que le ventilateur soit actif, l’execution s’arrête si c’est éteint et sinon, les actions vont être exécutés).
action:
  - delay:
      hours: 0
      minutes: 15
      seconds: 0
      milliseconds: 0
  - type: turn_on
    device_id: 8bc2790a6b2d4b1bb0dd029290cee70b
    entity_id: light.ventilateur_box
    domain: light
  • Cela fait attendre 15 minutes avant d’allumer.
  • Comme à travers le trigger et la condition à mettre on sait déjà que c’est allumé, il faut plutôt éteindre après 15 min .
  - delay:
      hours: 0
      minutes: 15
      seconds: 0
      milliseconds: 0
  - type: turn_off
    device_id: 8bc2790a6b2d4b1bb0dd029290cee70b
    entity_id: light.ventilateur_box
    domain: light
  • Compte tenu du changement à opérer sur l’étape précédente, il faut maintenant allumer 15 minutes après.
  • Cet allumage devrait faire redémarrer l’automatisation car c’est un événement qui le fait démarrer.
mode: restart
  • Pas si anodin!
  • Un restart veut dire que si l’automatisation est déjà en cours alors qu’un événement arrive, on arrête et on recommence.

Maintenant comment on arrête cette automatisation en éteignant la commande du ventilateur? Dans l’état c’est pas possible car:

  • L’automatisation démarre seulement quand on allume ou quand HA démarre.
  • Si on fait démarrer l’automatisation aussi quand on éteint, on va l’allumer à nouveau tout de suite après l’avoir arrêté par l’automatisme, donc cela ne va pas.

Là, je réfléchis, je vérifie la documentation. Il y a « wait_for_trigger », ce qui permet d’attendre un événement ou un délai. On pourrait attendre que le ventilateur s’éteint ou que 15 minutes expirent, puis vérifier après cette étape s’il est éteint ou pas et s’il est éteint, ne plus rien faire, sinon éteindre - attendre 15 minutes - et rallumer.

Mais je préfère une autre piste - on peut attendre qu’un état soit présent pendant une durée et utiliser cela comme trigger initial pour l’automatisme.

Example (voir aussi Automation Trigger - Home Assistant ):

trigger:
    - platform: state
      entity_id: light.LIGHT
      to: "on"
      for: 900
  • Cela déclenche quand light.LIGHT est « on » depuis 15 minutes.
  • Si on démarre l’automatisation avec cela, on doit:
    • Eteindre dès le démarrage (car c’est allumé depuis 15 min);
    • Attendre 15 minutes;
    • Allumer (ce qui est la fin de l’automatisme, mais qui le redémarre si le ventilateur reste à nouveau allumé pendant 15 minutes, ce qui entraine donc une répétition).

Avec cette nouvelle approche:

  • Quand on allume le ventilateur et c’est allumé depuis 15 min, l’automatisme entre en jeu et éteint le ventilateur pour le rallumer 15 minutes plus tard;
  • Quand on laisse le ventilateur allumé pendant moins de 15 min, l’automatisseme ne démarre pas → pas de répétition (donc la ventilation est arrêté);
  • Si l’automatisme est en cours et on rallume le ventilateur:
    • L’allumage ne fera rien dans l’immédiat;
    • Le délai va expirer avant la fin des 15 minutes, la commande de rallumage sera sans effet;
    • Au bout de 15 minutes d’allumage, le ventilateur sera éteint pour être rallumé 15 minutes après.
  • Le cas de redémarrage de HA doit être étudié - pas sûr que HA déclenche un événement si le ventilateur est allumé 15 minutes après le démarrage:
    • Si oui, tout va bien car l’automatisme va l’éteindre au bout de 15 minutes,
    • Si non, il faut ajuster.
      • Mettre une condition que HA doit être démarré depuis 15 min.
      • Au bout de 15 minutes, l’automatisme « démarre » et en mettant comme condition que le ventilateur doit être actif, la répétition ne commencera que si c’est le cas.
      • Il y a toutefois un cas particulier: si on allume le ventilateur dans les 15 min qui suivent un démarrage de HA, le ventilateur sera éteint après moins de 15 min d’allumage, mais la répétition sera enclenché de toute façon).

Je te laisses cela comme exercice pour commencer… Je préfères apprendre qqn à pêcher que pêcher à sa place.

1 « J'aime »

Merci de ton poste je vais le lire re lire et apprendre sans problème j’apprends vite mais il faut m’expliqué
longtemps lol sérieux tu ma donner de belle explication je regarde ce soir et je te tiens au courant.
milles mercis
Cordialement

Bonsoir le_top
Voici ce que j’ai fait si j’ai bien compris ton exercice sur une lampe.
J’attends ta réponse.
Merci
Cordialement

id: '1645781246849'
alias: test Ventilateur Box Arrêt
description: ''
trigger:
  - platform: state
    entity_id: light.lampe_lidl
    to: 'on'
    for:
      hours: 0
      minutes: 15
      seconds: 0
condition:
  - condition: device
    type: is_on
    device_id: 7fb940f2af6bbecf4c5eefe5a37abaf7
    entity_id: light.lampe_lidl
    domain: light
action:
  - delay:
      hours: 0
      minutes: 15
      seconds: 0
      milliseconds: 0
  - type: turn_off
    device_id: 7fb940f2af6bbecf4c5eefe5a37abaf7
    entity_id: light.lampe_lidl
    domain: light
  - delay:
      hours: 0
      minutes: 15
      seconds: 0
      milliseconds: 0
  - type: turn_on
    device_id: 7fb940f2af6bbecf4c5eefe5a37abaf7
    entity_id: light.lampe_lidl
    domain: light
mode: restart

Ca ma l’air pas mal. Tu peux ajouter un petit trigger sur Home Assistant/start ce qui rendra la condition utile (dans l’état elle ne l’est pas car à l’issue du trigger indiqué, elle l’est).

Pour tester, il vaut mieux réduire les délais bien sûr.

Comme cela?
En manuel il fonctionne
j’ai cette erreur quand je reboot home assistant
Triggered by the Home Assistant starting at 4 mars 2022, 23:20:02

Test device condition

Stopped because a condition failed at 4 mars 2022, 23:20:02 (runtime: 0.00 seconds)

id: '1645781246849'
alias: test Ventilateur Box Arrêt
description: ''
trigger:
  - platform: state
    entity_id: light.lampe_lidl
    to: 'on'
    for:
      hours: 0
      minutes: 1
      seconds: 0
  - platform: homeassistant
    event: start
condition:
  - condition: device
    type: is_on
    device_id: 7fb940f2af6bbecf4c5eefe5a37abaf7
    entity_id: light.lampe_lidl
    domain: light
action:
  - type: turn_off
    device_id: 7fb940f2af6bbecf4c5eefe5a37abaf7
    entity_id: light.lampe_lidl
    domain: light
  - delay:
      hours: 0
      minutes: 1
      seconds: 0
      milliseconds: 0
  - type: turn_on
    device_id: 7fb940f2af6bbecf4c5eefe5a37abaf7
    entity_id: light.lampe_lidl
    domain: light
mode: restart

@filtre Ce n’est pas une erreur, mais normal si la « lampe » n’était pas allumée au moment du démarrage.

Donc: le démarrage déclenche l’automatisme - c’est normal car c’est l’un des « triggers ».
Puis la condition exige que la lampe soit on pour continuer. Comme elle ne l’est probablement pas, l’automatisme s’arrête là.

Par contre, l’objectif est surtout d’agir quand « la lampe » est activée. Dans ce cas là, l’automatisme est à nouveau déclenché au reboot, mais comme la lampe est « on », la condition se valide et le délai démarre pour s’engager dans la répétition on/off.

Cela permet donc d’éviter que « la lampe » ne cycle pas quand elle était activée au reboot.

Bonjour Le_top
Merci pour ta réponse si j’ai bien compris je crée une automatisation pour allumé la lampe si je reboot HA
et de la sa déclenche l’automatisme?
Merci
Cordialement