un input_number (input_number.chauffage_timer_maison_minutes)
un input_boolean (input_boolean.switch_timer_chauffage_maison)
L’idée est la suivante, au basculement de l’input_boolean :
On sauvegarde l’état d’un input_select (input_select.chauffage) puis on remplace son état par celui affiché (input_select.chauffage4) le temps de l’input_number (input_number.chauffage_timer_maison_minutes)
A la fin du timer, l’input_select (input_select.chauffage) retrouve son état d’origine (d’ou la copie au début) et le switch bascule sur off.
Je cherche à écrire l’automatisation correspondante.
Je lis ce message et me rends compte que je t’ai dis de faire la même ici :
Pour la mémorisation on t’a déjà répondu ici :
Pour en revenir à ta demande :
Loupé ! Il te faut 2 automatisations
Automatisation 1
Si booléen = vrai ALORS
Mémorisation de mode_de_chauffage
Affectation mode_de_chauffage = mode_chauffage_forcé
Lancement du timer le temps définit par le nombre
FIN SI
Automatisation 2
Si fin_timer détecté ALORS
Affectation mode_de_chauffage = mode_chauffage_mémo
FIN SI
Merci de ton aide @Clemalex mais ma difficulté ne réside pas dans la logique à avoir pour arriver à ce que je veux faire mais dans sa mis en oeuvre.
Écris autrement, sous Domoticz, j’ai programmé plusieurs années en lua. La logique (de programmation), je pense que je l’ai (même si elle peut légèrement différer sous HA) par contre le yaml est tout nouveau pour moi et bon nombre de fonctions et leurs syntaxes me sont étrangères.
Je progresse petit à petit mais encore bien loin de ce que je pouvais faire en lua.
Pour des choses simples, j’utilise l’interface. Quand c’est plus compliqué, j’utilise un mixte des deux.
Finalement, j’ai fais ça (j’ai un peu melangé les switchs et les booleans… mais bon !!)
Peut-on utiliser un slider pour programmer le timer ?
Si je le dis autrement, dans ton animation ci-dessous, quand tu appuies sur play, tu pars avec 10 min. Peut-on rajouter un slider qui permettrait de programmer la durée ?
J’applique aujourd’hui cette solution pour lancer manuellement mon chauffage quand c’est nécessaire mais j’utiliser un timer que j’ai programmé à 15 min: je suis donc obligé de relancer au bout de 15 min si je vais plus longtemps…
@Clemalex: J’ai voulu remplacer mon timer « à durée fixe » par « une durée variable » à l’aide d’un input number que j’ai crée (cf ci-dessous) mais je pense que je m’y prend mal car j’ai une erreur à la vérification du redémarrage de HA.
Mon input_number (que je pourrai régler ultérieurement via un slider):
val_timer_chauffe_manu_min:
name: "Durée en min du Chauffage MANU"
min: 15
max: 60
step: 15
unit_of_measurement: "min"
icon: mdi:timer-sand
J’utilise aujourd’hui une carte button qui fonctionne bien avec un timer prédéfini (comme tu le suggère dans ce post):
Syntaxe dans mon fichier timers.yaml pour avoir un timing à durée variable:
=> Ce que j’ai aujourd’hui et qui fonctionne bien.
timer_30min:
duration: '00:30:00'
=> Ce que je viens de faire pour rendre mon timer (avec une durée variable réglée par mon input_number) mais qui semble bloquer:
timer_chauffe_manu:
duration: '{{ states(''input_number.val_timer_chauffe_manu_min''') | int / 60 }}'
(Edit: je viens également de tester cette syntaxe en regarder la doc HA sur les Input Number: duration: "00:{{ states('input_number.val_timer_chauffe_manu_min') | int }}:00" sans plus de succès.)
Message lors du redémarrage de HA:
Citation Invalid config for [timer]: offset {{ states(‹ input_number.val_timer_chauffe_manu_min ›) | int / 60 }} should be format ‹ HH:MM ›, ‹ HH:MM:SS › or ‹ HH:MM:SS.F › for dictionary value @ data[‹ timer ›][‹ timer_chauffe_manu ›][‹ duration ›]. Got « {{ states(‹ input_number.val_timer_chauffe_manu_min ›) | int / 60 }} ». (See /config/configuration.yaml, line 30).
=> Je comprends que ma syntaxe n’est pas bonne mais y’a t-il un moyen de contourner cette syntaxe ?