L’intégration est simple :
Si tu n’as pas découpé ton fichier configuration.yaml en plusieurs morceaux, il faut coller le code à cet endroit.
Voilà un autre exemple encore plus adapté à ton cas (switch qui n’offre que 2 fonctions on/off). Si on joue avec le switch directement, ça fonctionne ainsi :
-
on
=> le volet monte, un deuxièmeon
pour le stopper -
off
=> le volet descend, un deuxièmeoff
pour le stopper - si on mélange les
on
et lesoff
c’est le bazard, le moteur force car alimenté pour faire les 2 mouvements opposés
velux_suite_prop:
name: "Velux suite"
travelling_time_up: 23
travelling_time_down: 23
close_script_entity_id: script.close_velux_suite_prop
stop_script_entity_id: script.stop_velux_suite_prop
open_script_entity_id: script.open_velux_suite_prop
send_stop_at_ends: True
ça c’est la création de ton volet… qui va appeller tout seul les 3 scripts pour les actions open/stop/close
Tu dois juste définir les temps de montée/descente en secondes (en fonction de comment ça fonctionne chez toi, mais c’est pas indispensable au premier abord)
script:
open_velux_suite_prop:
alias: Ouvre le velux de la suite
sequence:
- service: switch.turn_on
data:
entity_id: switch.velux_suite
- service: input_text.set_value
target:
entity_id: input_text.velux_suite_prop_last
data:
value: open
close_velux_suite_prop:
alias: Ferme le velux de la suite
sequence:
- service: switch.turn_off
data:
entity_id: switch.velux_suite
- service: input_text.set_value
target:
entity_id: input_text.velux_suite_prop_last
data:
value: close
stop_velux_suite_prop:
alias: Stoppe le velux de la suite
sequence:
- service: "{% if is_state('input_text.velux_suite_prop_last', 'open') %}
script.open_velux_suite_prop
{% elif is_state('input_text.velux_suite_prop_last', 'close') %}
script.close_velux_suite_prop
{% endif %}"
- service: input_text.set_value
target:
entity_id: input_text.velux_suite_prop_last
data:
value: "{% if is_state('input_text.velux_suite_prop_last', 'open') %}
stop_open
{% elif is_state('input_text.velux_suite_prop_last', 'close') %}
stop_close
{% endif %}"
ça c’est les 3 scripts en question. Il faut que tu remplaces switch.velux_suite
par le bon switch chez toi
et pour que ça marche bien il faut aussi créer l’entrée
input_text:
velux_suite_prop_last:
initial: ""
ça va récupérer le dernier mouvement (up/down) pour appeler le ‹ stop › qui va bien et appeler le switch dans les bonnes conditions
Forcement quand tout est correct, il faut relancer le core pour la prise en compte