Bonjour,
Je débute sur HA et je me lance dans mes premiers script / automatisation. Je travaille sur mon arrosage automatique qui comporte 3 zones différentes. J’essaie de tout de suite travailler avec des variables / champs pour me faire le cerveau et « optimiser » le nombre de script et automatisation.
J’ai plusieurs variables qui changent en fonction de la zone à arroser et pour l’instant ca donne ca, exemple pour la zone 1:
Autom:
alias: Arrosage_z1_start
description: ""
trigger:
- platform: state
entity_id:
- input_boolean.activation_arrosage_zone_1
from: "off"
to: "on"
condition:
- condition: numeric_state
entity_id: input_number.temps_zone1
above: 0
action:
- service: script.turn_on
data:
variables:
temps: input_number.temps_zone1
timer: timer.timer_arrosage_zone_1
nzone: 1
vanne_rainbird: switch.rain_bird_sprinkler_1
target:
entity_id: script.script_allumage_arrosage_variable
mode: single
Script :
alias: start arrosage variable
fields:
temps:
description: Temps d'arrosage à réaliser
example: 5 minutes
timer:
description: Timer de l'arrosage en cours
example: 2min 25s
nzone:
description: Zone à arroser
example: 1
vanne_rainbird:
description: Vanne d'arrosage à activer
example: switch.rain_bird_sprinkler_1
sequence:
- service: timer.start
data:
entity_id: "{{ timer }}"
data_template:
duration: "{{ states(temps) | int * 60 }}"
- service: switch.turn_on
metadata: {}
data: {}
target:
entity_id: "{{ vanne_rainbird }}"
- service: notify.mobile_app_tel_syl
metadata: {}
data:
title: Activation arrosage automatique
message: >-
L'arrosage de la zone {{ zone }} est en cours pendant {{
states(temps) | int }} minutes
- service: notify.mobile_app_tel_2
metadata: {}
data:
title: Activation arrosage automatique
message: >-
L'arrosage de la zone {{ zone }} est en cours pendant {{
states(temps) | int }} minutes
mode: parallel
max: 4
Cela fonctionne bien mais, étant donné que toutes les entités que je « variabilise » sont sous la même forme et que seul le numéro de la zone change dans l’id de l’entité. Exemple :
Pour la zone 1 : switch.rain_bird_sprinkler_1
Pour la zone 2 : switch.rain_bird_sprinkler_2
Pour la zone 1 : input_number.temps_zone1
Pour la zone 2 : input_number.temps_zone2
J’aurais voulu savoir si il est possible d’intégrer le champs directement dans l’id de l’entité. Dans le but de n’avoir que le numéros de la zone en variable :
fields:
nzone:
description: Zone à arroser
example: 1
Pour l’utiliser de cette façon: (que je n’arrive pas à faire fonctionner)
sequence:
- service: timer.start
data:
entity_id: timer.timer_arrosage_zone_{{ nzone }}
data_template:
duration: "{{ states('input_number.temps_zone{{ nzone }}') | int * 60 }}"
- service: switch.turn_on
metadata: {}
data: {}
target:
entity_id: switch.rain_bird_sprinkler_{{ nzone }}
J’ai essayé plusieurs syntaxes mais je n’ai pas réussi à trouver la bonne ou même si c’est possible ou non …
Merci d’avance à ceux qui me répondront