Retro-programmation avec un bloc A

Bonjour,

J’utilise un scénario tout con pour la production d’eau chaude à la maison.
Lancement à 0h30 :
image
Lancement du la chauffe et arrêt suivant une durée variable
image

J’aimerai faire les choses dans l’autre sens, à savoir faire le “Off” en fonction d’une heure de mise à disposition, et donc faire le “On” en comptant à rebours.
image

Mais pas de bol :
image

Pourtant
image

J’ai essayé avec une variable mais ça me donne une string… qui n’est pas plus ok avec la fonction time_op…

Bref, j’ai pas trop d’idée d’un truc “simple” …

A vot’ bon coeur

A mon avis trop de parenthèses pour le parser.

Fais le calcul et affecte le dans une variable
Et fait ton A avec time_op et la variable
(Tu peux détruire la variable après si tu veux pas laisser traîner une variable)

Merci pour l’idée @Cavador

Je l’avais évoqué dans le message précédent, avec une variable c’est à peine mieux

image

image

Et dans la log du scenario, il y a une paire de " qui traîne en plus dans le deuxième paramètre de time_op
image

Et c’est pas mieux compris
Reste à tester l’affectation de la variable par code PHP… A voir si j’ai un eval() ou un truc qui traine. Mais bon c’est moche je trouve comme solution

image

ça sent la limite du parser jeedom

image

Si je raccourci la contenu de la variable, ça fonctionne…

Bonjour,
Pourrais tu ouvrir un ticket ou l’accès support pour que je regarde directement sur ton jeedom (en laissant le scénario, enfin l’évaluation qui marche dans le testeur d’expression et qui ne marche pas dans jeedom) ?

Bonjour @Loic

L’accès support est ouvert => naboleo
image
[Scénario][X Tests][tmp2] est dispo avec les 2 cas OK et KO => [Scénario][X Tests][tmp2]
Voilà ses traces également

------------------------------------
[2020-01-09 19:46:34][SCENARIO] Start : Scénario lancé manuellement.
[2020-01-09 19:46:34][SCENARIO] Exécution du sous-élément de type [action] : action
[2020-01-09 19:46:34][SCENARIO] Affectation de la variable TempsECS => -1*(200+ (9.4<1 ? 100 : 0)) = -200
[2020-01-09 19:46:34][SCENARIO] Exécution du sous-élément de type [action] : code
[2020-01-09 19:46:34][SCENARIO] Exécution d'un bloc code
[2020-01-09 19:46:34][SCENARIO] variable TempsECS
[2020-01-09 19:46:34][SCENARIO] val -200
[2020-01-09 19:46:34][SCENARIO] val -200
[2020-01-09 19:46:34][SCENARIO] Exécution du sous-élément de type [action] : action
[2020-01-09 19:46:34][SCENARIO] Affectation de la variable TempsECS => -1*(200+ (Hiver matches /^((?!Eté).)*$/ ? 100 : 0)+ ( == ? 0 : 200)+ (9.4<1 ? 100 : 0)) = -1*(200+ (Hiver matches /^((?!Eté).)*$/ ? 100 : 0)+ ( == ? 0 : 200)+ (9.4<1 ? 100 : 0))
[2020-01-09 19:46:34][SCENARIO] Exécution du sous-élément de type [action] : code
[2020-01-09 19:46:34][SCENARIO] Exécution d'un bloc code
[2020-01-09 19:46:34][SCENARIO] variable TempsECS
[2020-01-09 19:46:34][SCENARIO] val -1*(200+ (Hiver matches /^((?!Eté).)*$/ ? 100 : 0)+ ( == ? 0 : 200)+ (9.4<1 ? 100 : 0))
[2020-01-09 19:46:34][SCENARIO] val -1*(200+ (Hiver matches /^((?!Eté).)*$/ ? 100 : 0)+ ( == ? 0 : 200)+ (9.4<1 ? 100 : 0))
[2020-01-09 19:46:34][SCENARIO] Fin correcte du scénario

Les deux expressions sont dans les scénarios, attribuées dans la variable mais celle qui bloque tout en fonctionnant dans le testeur est la suivante

-1*(200+ (#[Contrôles][Modes Saisons][Mode]# matches "/^((?!Eté).)*$/" ? 100 : 0)+ (variable("Invités_start") =="" ? 0 : 200)+ (average(#[Au sous-sol][Chauffe-eau][Courant]#,5 day)<1 ? 100 : 0))

Merci pour ton aide et à ta dispo

J’ai trouvé par contre la modification peu avoir un impact assez fort mais je suis incapable de le predire ni meme si ca sera mieux ou pire. En gros ya un soucis avec les " qui sont remplacer lors du setTags mais je sais pas pourquoi et ca pour tout les calculs de ce genre (pas que pour les variables). Je pense que c’est historique donc je viens de le virer pour tout les calculs (si ca merde je le supprimerais que pour les variables).
La correction est disponible en alpha/beta (faut forcer une mise à jour). Tu n’as pas a la faire j’ai tout corriger chez toi.

1 J'aime

OK merci ! A suivre donc si je vois d’autres trucs avec des comportements différents