@titoumimi , merci.
Dans les « action: » comment insérer du code jinja2 sur plusieurs lignes et garder le formatage des saut de lignes pour plus de lisibilité ?
J’ai essayé « service: <- » mais sans succès.
Pour le coup, je ne suis pas certain de comprendre…
Tu veux n’executer ce script que si la condition est remplie ?
Si oui, utilise plutôt la condition de ton automatisation, non ?
Désolé de t’embêter avec ca…Je viens de Domoticz en LUA.
J’ai pas mal de code assez complexe et YAML n’est pas assez complet pour moi et j’essaye de me passer de RedNode.
j’essaye de retranscrire ce code :
if (JourChome == 'false' and TimeInMinutes == VoletDontOpenBeforeInMinutes) then
-------------------------------------------
-- Il fait jour et c'est un jour travaillé
-------------------------------------------
if (otherdevices['Volet_salle_eau']) ~= 'Open' then
commandArray['Volet_salle_eau']='On'
end
if (otherdevices['Volet_cuisine'] ~= 'Open' and otherdevices['Vacances'] == 'Off') then
commandArray['Volet_cuisine']='On'
end
if (otherdevices['Volet_salon_rue']) ~= 'Open' then
commandArray['Volet_salon_rue']='On'
elseif (JourChome == 'true' and TimeInMinutes == VoletDontOpenBeforeNonWorkingDayInMinutes) then
-------------------------------------------
-- Il fait jour et c'est un jour Chomé
-------------------------------------------
if (otherdevices['Volet_salle_eau']) ~= 'Open' then
commandArray['Volet_salle_eau']='On'
end
if (otherdevices['Volet_cuisine'] ~= 'Open' and otherdevices['Vacances'] == 'Off') then
commandArray['Volet_cuisine']='On'
end
if (otherdevices['Volet_salon_rue']) ~= 'Open' then
commandArray['Volet_salon_rue']='On'
commandArray['Volet_salon_jardin']='On'
end
end
OK, donc de ce que je comprend, ce que je ferait :
Créer deux binary sensors, correspondant respectivement à :
– Il fait jour et c’est un jour travaillé
– Il fait jour et c’est un jour Chomé
paramètres → appareils et services → entrées → créer une entrée → template → modéliser un capteur binaire
tu leur donne un nom, et dans « Modèle d’état » tu met ton bout de yaml qui répond True ou False
Ensuite, tu crées une automatisation avec en déclencheur le changement d’état de ce sensor vers True
(dans l’exemple ci-dessous, j’utilise un input_boolean.sandbox_toggle à la place) qui va ressembler à ça :
alias: AAAA sandbox
description: ""
trigger:
- platform: state
entity_id:
- input_boolean.sandbox_toggle
to: "on"
condition: []
action:
- service: cover.open_cover
target:
entity_id:
- cover.sde_volet
- cover.jardin
data: {}
mode: single
Je ne pense pas qu’il soit nécessaire de vérifier l’état actuel du volet avant de lui demander de s’ouvrir (en tout cas pas avec les lampes, mais je n’ai pas de volets…), peut-être d’autres auront plus d’info…
Plus sérieusement, à un moment, je trouve que ça dépend du niveau de lisibilité / maintenance que tu souhaites obtenir… On pourrait tout mettre dans une seule automatisation, mais comme les conditions de déclenchement ne sont pas les mêmes, et que les actions à effectuer ne sont pas 100% identiques, je préfère splitter, plus facile de s’y retrouver à postériori (just my opinion hein )
OK chacun ça façon de voir et de faire !
C’est seulement la création d’entité qui si elle ne serve que à cette automation, on peut se poser la question du pourquoi !