Bonjour à tous et à toutes,
J’ai actuellement un scénario qui fonctionne bien, dans celui-ci j’ai plusieurs test « Si », et plus particulièrement j’ai trois tests dans ce dernier à savoir :
(#timestamp# - lastCommunication(#[Appartement][Accu]#, U) > 300) || (#timestamp# - lastCommunication(#[Appartement][Teleinfo]#, U) > 600) || ( (#[Balcon][Balcon][Mode]# == 'Planté' ) && (#timestamp# - lastCommunication(#[Balcon][Arrosage Balcon]#, U) > 600) )
Le scénario s’exécute bien et il n’y a pas de message d’erreur ni quand je la passe au « testeur d’expression ».
Résultat du testeur d’expression :
Je vais évaluer : (1666756674 - " 1666756660" > 300) || (1666756674 - " 1666756668" > 600) || ( ("Non Planté" == 'Planté' ) && (1666756674 - " 1664291179" > 600) )
Résultat : false
J’ai rajouter un module et j’aimerai donc le monitorer comme les trois que j’ai déjà, en l’occurrence je voudrais rajouter ce test :
(#timestamp# - lastCommunication(#[Appartement][ECS-Linky]#, U) > 300)
Résultat du testeur d’expression :
Je vais évaluer : (1666756764 - " 1666756762" > 300)
Résultat : false
Je modifie donc mon expression comme ci-dessous pour l’intégrer (je l’insère en position « 3 » en dupliquant l’expression « 2 » puis en la modifiant) elle devient donc ceci :
(#timestamp# - lastCommunication(#[Appartement][Accu]#, U) > 300) || (#timestamp# - lastCommunication(#[Appartement][Teleinfo]#, U) > 600) || (#timestamp# - lastCommunication(#[Appartement][ECS-Linky]#, U) > 300) || ( (#[Balcon][Balcon][Mode]# == 'Planté' ) && (#timestamp# - lastCommunication(#[Balcon][Arrosage Balcon]#, U) > 600) )
Et là le scénario ainsi que le testeur d’expression ne sont pas content …
Attention : il doit y avoir un souci, car le résultat est le même que l'expression
Je vais évaluer : (1666757001 - " 1666756960" > 300) || (1666757001 - " 1666756999" > 600) || (1666757001 - " 1666756942" > 300) || ( (#[Balcon][Balcon][Mode]# == 'Planté' ) && (1666757001 - " 1664291179" > 600) )
Résultat : (1666757001 - " 1666756960" > 300) || (1666757001 - " 1666756999" > 600) || (1666757001 - " 1666756942" > 300) || ( (#[Balcon][Balcon][Mode]# == 'Planté' ) && (1666757001 - " 1664291179" > 600) )
Mais si je supprime une des expression (la 1, la 2 ou la 4) ça refonctionne comme il faut …
Ici en supprimant la 1 :
(#timestamp# - lastCommunication(#[Appartement][Teleinfo]#, U) > 600) || (#timestamp# - lastCommunication(#[Appartement][ECS-Linky]#, U) > 300) || ( (#[Balcon][Balcon][Mode]# == 'Planté' ) && (#timestamp# - lastCommunication(#[Balcon][Arrosage Balcon]#, U) > 600) )
Je vais évaluer : (1666757072 - " 1666757060" > 600) || (1666757072 - " 1666757062" > 300) || ( ("Non Planté" == 'Planté' ) && (1666757072 - " 1664291179" > 600) )
Résultat : false
Ici en supprimant la 2 :
(#timestamp# - lastCommunication(#[Appartement][Accu]#, U) > 300) || (#timestamp# - lastCommunication(#[Appartement][ECS-Linky]#, U) > 300) || ( (#[Balcon][Balcon][Mode]# == 'Planté' ) && (#timestamp# - lastCommunication(#[Balcon][Arrosage Balcon]#, U) > 600) )
Je vais évaluer : (1666757106 - " 1666757104" > 300) || (1666757106 - " 1666757062" > 300) || ( ("Non Planté" == 'Planté' ) && (1666757106 - " 1664291179" > 600) )
Résultat : false
Ici en supprimant la 4 :
(#timestamp# - lastCommunication(#[Appartement][Accu]#, U) > 300) || (#timestamp# - lastCommunication(#[Appartement][Teleinfo]#, U) > 600) || (#timestamp# - lastCommunication(#[Appartement][ECS-Linky]#, U) > 300)
Je vais évaluer : (1666757125 - " 1666757104" > 300) || (1666757125 - " 1666757120" > 600) || (1666757125 - " 1666757123" > 300)
Résultat : false
Je ne comprends donc pas d’où vient l’erreur.
J’ai cherché sur le forum mais aucun résultat, la plupart son des erreurs de guillemet oublié ou autre qui ne passe pas déjà au testeur d’expression, les miennes le passe toutes séparément mais pas ensemble …
Merci par avance pour votre aide
Jeedom 4.2.21