Commutateur de blocage

Bonjour à vous j’ai mis en place des automatisme pour mon arrosage automatique grâce a une page GitHub. Tout fonctionne très bien il me manque juste une fonction que je voudrais ajouter mais je ne sais pas comment faire. Je voudrai rajouter un bouton qui quand je l’active me bloquerait mes commande d’arrosage jusqu’au moment ou désactiverait ce bouton. Sauriez vous me guider pour cette fonction ?
Merci,

Salut,

quand tu parles de Github, tu veux dire que tu as installé une intégration custo pour gérer l’arrosage?
Ce serait bien de donner le liens au cas où.

Pour le bouton que tu veux ajourer, je n’ai pas compris ce que tu veux qu’il fasse?
C’est plutôt une marche forcée ou à l’inverse un bouton pour désactiver l’automatisme?

En fait j’ai 4 circuits d’arrosage qui sont programmé pour ce déclencher chacun a une heur différente et pour chaque circuit j’ai un slider qui me permet de changer le temps d’arrose. Ce que je voudrai donc fair c’est un bouton qui me permet de bloquer l’arrosage par moment comme par exemple quand il pleut.
En fait je me suis trompé, je n’ai pas trouvé sur Github mais sur une vidéo
" #44 How to Create a Dashboard Controllable Timer Switch in Home Assistant | vccground - YouTube "

Ok, donc tu devrais avoir des automatisation qui gèrent tes circuits.

Le plus basique serait de créer un interrupteur virtuel (input_boolean) que tu peux contrôler par l’interface ou plus tard automatiquement si tu veux intégrer la météo…
(Paramètres>Appareils&Services>Entrées)

Dans les automatisations de l’arrosage il faudra ajouter une condition qui vérifiera létat de cet interrupteur virtuel.
Tu peux aussi ajouter une autre automatisation qui se déclenchera dès que l’interrupteur est allumé pour couper les timers déjà en cours à ce moment là.

J’ai la chance de possèder un OpenSprinkler qui me calcule tous les jours un taux d’arrosage nécessaire en fonction de la météo (une valeur entre 0 et 200% par rapport à la durée d’arrosage « normale »).
Du coup, dans mes automatisme d’arrosage pour les vannes non connectées à l’OpenSprinkler, j’ai comme toi créé un input (slider) qui me permet de définir la durée d’arrosage « normale » (10 mintes par exemple), et je multiplie cette durée par mon « taux d’arrosage » pour avoir la durée effective de déclenchement de la vanne.
Par exemple, comme il faut beau, chaud et venteux dans la partie nord de la France en ce moment, mon OpenSpinkler me donne un taux d’arrosage de 125%. Du coup, pour les fleurs de la terrasse qui s’arrosent en général 10 min (input manuel en slider), la durée réelle d’arrosage est de 12 minutes.
Tu pourrais créer un autre input (taux d’arrosage) que tu pourrais faire varier en fonction de la météo.
Ci-dessous le yaml de mon automatisme:

alias: Arrosage plantes terrasse variable
description: Arrosage plantes terrasse variable
trigger:
  - platform: time
    at: "2:30:00"
condition:
  - condition: numeric_state
    entity_id: sensor.opensprinkler_water_level
    above: 0
action:
  - type: turn_on
    device_id: d2ef12411b312c99a93810c608f7a187
    entity_id: switch.valve_arrosage_terrasse_switch
    domain: switch
  - delay:
      hours: 0
      minutes: >-
        {{
        float((states("sensor.opensprinkler_water_level")))*float((states("input_number.duree_d_arrosage_plantes_terrasse")))/100
        }}
      seconds: 0
      milliseconds: 0
  - type: turn_off
    device_id: d2ef12411b312c99a93810c608f7a187
    entity_id: switch.valve_arrosage_terrasse_switch
    domain: switch
mode: single

Salut c’est bien ce que je voudrais faire mais je n’y arrive pas. j’ai bien créé un interrupteur virtuel mais après je bloque !
Voila ce que j’ai mis pour chaque circuit,


platform: state
entity_id:

  • switch.sonoff_a48002e528_1
    to: « on »
    for:
    hours: 0
    minutes: « {{ states.input_number.arrosage_bordure_timer.state | int }} »
    seconds: 0

1 « J'aime »

Merci beaucoup à toi, mais je n’ai pas ce matériel et cela me semble un peut compliqué pour mois, je débute. Mais je garde ton code pour peut être plus tard.

Slt
Tu pourrais mettre le fichier complet en mode Yaml , en texte (insertion dans balises message </>)

Exemple du mien
alias: "Arrosage "
description: ""
trigger:
  - platform: device
    type: turned_on
    device_id: e236b76a7a1de25bb9b0b4754db29095
    entity_id: switch.pompe_puit
    domain: switch
    for:
      hours: 0
      minutes: 0
      seconds: 5
condition:
  - type: is_power
    condition: device
    device_id: e236b76a7a1de25bb9b0b4754db29095
    entity_id: sensor.pompe_puit_power
    domain: sensor
    above: 800
    alias: Test Puissance Pompe Puit > 800 W
action:
  - service: notify.mobile_app_m2012k11ag
    data:
      message: "Début du Cycle d'arrosage ! "
    alias: Notification du Démarrage arrosage pour DOM
  - service: timer.start
    data:
      duration: "{{states.input_number.temps_d_attente.state| int}}"
    target:
      entity_id: timer.attente
    alias: Affichage Décompte temps d'attente lancement Arrosage
  - delay:
      seconds: "{{ states.input_number.temps_d_attente.state | int }}"
    alias: Attente pour lancer arrosage
  - service: switch.turn_on
    data: {}
    target:
      entity_id: switch.vanne4
    alias: Ouverture Vanne du Tourniquet
  - service: timer.start
    data:
      duration: "{{states.input_number.temps_d_arrosage.state | int}}"
    target:
      entity_id: timer.decompte_tempo
    alias: Affichage Décompte Temps d'arrosage
  - delay:
      seconds: "{{ states.input_number.temps_d_arrosage.state | int }}"
    alias: Temps d'arrosage
  - service: switch.turn_off
    data: {}
    target:
      entity_id: switch.vanne4
    alias: Fermeture Vanne du Tourniquet
  - service: timer.start
    data:
      duration: "{{states.input_number.attente_vanne_hors_fonction.state | int}}"
    target:
      entity_id: timer.decompte_tempo
    alias: Affichage Décompte Temps d'attente vanne suivante
  - delay:
      seconds: "{{ states.input_number.attente_vanne_hors_fonction.state | int }}"
    alias: Attente pour Vanne suivante
  - service: switch.turn_on
    data: {}
    target:
      entity_id: switch.vanne2
    alias: Ouverture Vanne de Gauche
  - service: timer.start
    data:
      duration: "{{states.input_number.temps_d_arrosage.state | int}}"
    target:
      entity_id: timer.decompte_tempo
    alias: Affichage Décompte Temps d'arrosage
  - delay:
      seconds: "{{ states.input_number.temps_d_arrosage.state | int }}"
    alias: Temps d'arrosage
  - service: switch.turn_off
    data: {}
    target:
      entity_id: switch.vanne2
    alias: Fermeture Vanne de Gauche
  - service: timer.start
    data:
      duration: "{{states.input_number.attente_vanne_hors_fonction.state | int}}"
    target:
      entity_id: timer.decompte_tempo
    alias: Affichage Décompte Temps d'attente vanne suivante
  - delay:
      seconds: "{{ states.input_number.attente_vanne_hors_fonction.state | int }}"
    alias: Attente pour Vanne suivante
  - service: switch.turn_on
    data: {}
    target:
      entity_id: switch.vanne1
    alias: Ouverture Vanne du Milieu
  - service: timer.start
    data:
      duration: "{{states.input_number.temps_d_arrosage.state | int}}"
    target:
      entity_id: timer.decompte_tempo
    alias: Affichage Décompte Temps d'arrosage
  - delay:
      seconds: "{{ states.input_number.temps_d_arrosage.state | int }}"
    alias: Temps d'arrosage
  - service: switch.turn_off
    data: {}
    target:
      entity_id: switch.vanne1
    alias: Fermeture Vanne du Milieu
  - service: timer.start
    data:
      duration: "{{states.input_number.attente_vanne_hors_fonction.state | int}}"
    target:
      entity_id: timer.decompte_tempo
    alias: Affichage Décompte Temps d'attente vanne suivante
  - delay:
      seconds: "{{ states.input_number.attente_vanne_hors_fonction.state | int }}"
    alias: Attente pour Vanne suivante
  - service: switch.turn_on
    data: {}
    target:
      entity_id: switch.vanne3
    alias: Ouverture Vanne de Droite
  - service: timer.start
    data:
      duration: "{{states.input_number.temps_d_arrosage.state | int}}"
    target:
      entity_id: timer.decompte_tempo
    alias: Affichage Décompte Temps d'arrosage
  - delay:
      seconds: "{{ states.input_number.temps_d_arrosage.state | int }}"
    alias: Temps d'arrosage
  - service: switch.turn_off
    data: {}
    target:
      entity_id: switch.vanne3
    alias: Fermeture Vanne de Droite
  - service: timer.start
    data:
      duration: "{{states.input_number.attente_vanne_hors_fonction.state | int}}"
    target:
      entity_id: timer.decompte_tempo
    alias: Affichage Décompte Temps d'attente vanne Hors fonction
  - delay:
      seconds: "{{ states.input_number.attente_vanne_hors_fonction.state | int }}"
    alias: Attente pour Vanne Hors fonction
  - type: turn_off
    device_id: e236b76a7a1de25bb9b0b4754db29095
    entity_id: switch.pompe_puit
    domain: switch
    alias: Désactivation Pompe Puit
  - service: notify.mobile_app_m2012k11ag
    data:
      message: "Fin du Cycle d'arrosage ! "
    alias: Notification de l'Arrêt arrosage pour DOM
mode: restart


PS le fichier complet :point_up_2:

Et référence autre post

- id: '1685803326122'
  alias: 'Arrosage bordure automatisme '
  description: ''
  trigger:
  - platform: state
    entity_id:
    - switch.sonoff_a48002e528_1
    to: 'on'
    for:
      hours: 0
      minutes: '{{ states.input_number.arrosage_bordure_timer.state | int }}'
      seconds: 0
  condition: []
  action:
  - service: switch.turn_off
    data: {}
    target:
      entity_id: switch.sonoff_a48002e528_1
  mode: single
- id: '1685805343718'
  alias: 'Arrosage géranium automatisme '
  description: ''
  trigger:
  - platform: state
    entity_id:
    - switch.sonoff_a48002e528_2
    to: 'on'
    for:
      hours: 0
      minutes: '{{ states.input_number.arrosage_geranium_timer.state | int }}'
      seconds: 0
  condition: []
  action:
  - service: switch.turn_off
    data: {}
    target:
      entity_id: switch.sonoff_a48002e528_2
  mode: single
- id: '1685805696912'
  alias: 'Arrosage côté automatisme '
  description: ''
  trigger:
  - platform: state
    entity_id:
    - switch.sonoff_a48002e528_3
    to: 'on'
    for:
      hours: 0
      minutes: '{{ states.input_number.arrosage_cote_timer.state | int }}'
      seconds: 0
  condition: []
  action:
  - service: switch.turn_off
    data: {}
    target:
      entity_id: switch.sonoff_a48002e528_3
  mode: single
- id: '1685805927676'
  alias: 'Arrosage devant automatisme '
  description: ''
  trigger:
  - platform: state
    entity_id:
    - switch.sonoff_a48002e528_4
    to: 'on'
    for:
      hours: 0
      minutes: '{{ states.input_number.arrosage_devant_timer.state | int }}'
      seconds: 0
  condition: []
  action:
  - service: switch.turn_off
    data: {}
    target:
      entity_id: switch.sonoff_a48002e528_4
  mode: single
- id: '1685806990818'
  alias: 'Osmoseur automatisme '
  description: ''
  trigger:
  - platform: state
    entity_id:
    - switch.sonoff_10004a606b
    to: 'on'
    for:
      hours: 0
      minutes: '{{ states.input_number.osmoseur.state | int }}'
      seconds: 0
  condition: []
  action:
  - service: switch.turn_off
    data: {}
    target:
      entity_id: switch.sonoff_10004a606b
  mode: single
- id: '1685807420349'
  alias: Départ bordure
  description: ''
  trigger:
  - platform: time
    at: 08:00:00
  condition: []
  action:
  - type: turn_on
    device_id: 03b201883538b4bae7d213c6f9193130
    entity_id: switch.sonoff_a48002e528_1
    domain: switch
  mode: single
- id: '1685807491435'
  alias: 'Départ géranium '
  description: ''
  trigger:
  - platform: time
    at: 08:30:00
  condition: []
  action:
  - type: turn_on
    device_id: 03b201883538b4bae7d213c6f9193130
    entity_id: switch.sonoff_a48002e528_2
    domain: switch
  mode: single
- id: '1685807567623'
  alias: 'Départ gazon côté '
  description: ''
  trigger:
  - platform: time
    at: '21:00:00'
  condition: []
  action:
  - type: turn_on
    device_id: 03b201883538b4bae7d213c6f9193130
    entity_id: switch.sonoff_a48002e528_3
    domain: switch
  mode: single
- id: '1685807628110'
  alias: 'Départ gazon devant '
  description: ''
  trigger:
  - platform: time
    at: '21:30:00'
  condition: []
  action:
  - type: turn_on
    device_id: 03b201883538b4bae7d213c6f9193130
    entity_id: switch.sonoff_a48002e528_4
    domain: switch
  mode: single
- id: '1685807691734'
  alias: 'Départ osmoseur '
  description: ''
  trigger:
  - platform: time
    at: 09:00:00
  condition: []
  action:
  - type: turn_on
    device_id: 25a2da053f2759e4f97a5f6ff409dc96
    entity_id: switch.sonoff_10004a606b
    domain: switch
  mode: single
- id: '1685823794823'
  alias: Heure bordure
  description: ''
  trigger:
  - platform: state
    entity_id:
    - switch.sonoff_a48002e528_1
    to: 'on'
    for:
      hours: '{{ states.input_datetime.bordure.state | int }}'
      minutes: '{{ states.input_datetime.bordure.state | int }}'
      seconds: '{{ states.input_datetime.bordure.state | int }}'
  condition: []
  action:
  - service: switch.turn_off
    data: {}
    target:
      entity_id: switch.sonoff_a48002e528_1
  mode: single

tu vois ce qui se passe dans automatisme ? Historique ?

On dirait qu’il y a un mélange dans ton YAML ! Normalement devrait pas pouvoir enregistré !
Plusieurs automatisme ?

Je viens de trouver la solution:

Mais merci de votre aide, en fait c’etait simple mais mois j’ai pas l’habitude des fonction et des contritions !

Si tu le dis !
mais voir sur H M S:

"10":
  id: "1685823794823"
  alias: Heure bordure
  description: ""
  trigger:
    - platform: state
      entity_id:
        - switch.sonoff_a48002e528_1
      to: "on"
      for:
        hours: "{{ states.input_datetime.bordure.state | int }}"
        minutes: "{{ states.input_datetime.bordure.state | int }}"
        seconds: "{{ states.input_datetime.bordure.state | int }}"
  condition: []
  action:
    - service: switch.turn_off
      data: {}
      target:
        entity_id: switch.sonoff_a48002e528_1
  mode: single

Merci beaucoup cela me permet de comparer et d’améliore mon code.
bonne soirée à toi .

J’ai fait un truc qui donne ça, j’avais prévu un petit article avec le code si ça intéresse…

2 « J'aime »