ggpublic Posté(e) le 10 juillet 2021 Signaler Posté(e) le 10 juillet 2021 @Lazer merci bcp pour ta réponse et ton fix rapide. Je te confirme que cela refonctionne comme avant
Dragoniacs Posté(e) le 16 juillet 2021 Signaler Posté(e) le 16 juillet 2021 Je cherche à recevoir une alerte lorsque le contenu d'un label de mon QA change. J'ai tenté cette syntaxe : GEA.add({"Label!","monQA","monLabel",""},30,"Le Label a été mis à jour #value#",{action}) Mais la ligne ne s'active qu'au démarrage de GEA. Une idée ? (note : cette syntaxe fonctionnait avec mes VD dans GEA HC2)
fredokl Posté(e) le 17 juillet 2021 Signaler Posté(e) le 17 juillet 2021 Salut. J'ai plusieurs lignes de ce type qui ne fonctionnent plus depuis quelques jours: GEA.add({{"Weather", "Clear"},{"Time","06:00","08:00"},id["OEIL_SAURON_CUISINE"]}, -1, "", {"Color", 153, 255, 206, 51, 0}) Ces lignes sont censées afficher une couleur spécifique en fonctionne la météo extérieur (Clear, Fog, Cloudy, Rain, Snow, Storm). Voici le debug: [17.07.2021] [10:44:43] [DEBUG] [QA_GEA_29]: @0s [Validation] #12 : ["Weather",["Clear"]] [160] ["Time",["06:00","22:00"]] => ["Color",[153,255,206,51,0]] [17.07.2021] [10:44:43] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.check() copy.name="Weather" id="Cloudy" property="Cloudy" value="Cloudy" value2="Cloudy" value3="Cloudy" value4="Cloudy" [17.07.2021] [10:44:43] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.getValue() 2 return copy.lastvalue, copy.lastDisplayValue : nil, nil [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.check() result = nil [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:check() result = false, nil [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.check() copy.name=160 id=160 property=160 value=160 value2=160 value3=160 value4=160 [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.getValue() 2 return copy.lastvalue, copy.lastDisplayValue : true, true [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.check() result = true [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:check() result = true, true [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.check() copy.name="Time" id="06:00" property="22:00" value="22:00" value2="22:00" value3="22:00" value4="22:00" [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.getValue() 2 return copy.lastvalue, copy.lastDisplayValue : true, true [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.check() result = true [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:check() result = true, true [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:check() ready = false [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: @0s [Validation] #13 : ["Weather",["Cloudy"]] [160] ["Time",["06:00","22:00"]] => ["Color",[153,255,255,255,0]] [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.check() copy.name="Weather" id="Rain" property="Rain" value="Rain" value2="Rain" value3="Rain" value4="Rain" [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.getValue() 2 return copy.lastvalue, copy.lastDisplayValue : nil, nil [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.check() result = nil [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:check() result = false, nil [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.check() copy.name=160 id=160 property=160 value=160 value2=160 value3=160 value4=160 [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.getValue() 2 return copy.lastvalue, copy.lastDisplayValue : true, true [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.check() result = true [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:check() result = true, true [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.check() copy.name="Time" id="06:00" property="22:00" value="22:00" value2="22:00" value3="22:00" value4="22:00" [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.getValue() 2 return copy.lastvalue, copy.lastDisplayValue : true, true [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.check() result = true [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:check() result = true, true [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:check() ready = false [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: @0s [Validation] #14 : ["Weather",["Rain"]] [160] ["Time",["06:00","22:00"]] => ["Color",[153,0,135,255,0]] [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.check() copy.name="Weather" id="Snow" property="Snow" value="Snow" value2="Snow" value3="Snow" value4="Snow" [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.getValue() 2 return copy.lastvalue, copy.lastDisplayValue : nil, nil [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.check() result = nil [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:check() result = false, nil [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.check() copy.name=160 id=160 property=160 value=160 value2=160 value3=160 value4=160 [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.getValue() 2 return copy.lastvalue, copy.lastDisplayValue : true, true [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.check() result = true [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:check() result = true, true [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.check() copy.name="Time" id="06:00" property="22:00" value="22:00" value2="22:00" value3="22:00" value4="22:00" [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.getValue() 2 return copy.lastvalue, copy.lastDisplayValue : true, true [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.check() result = true [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:check() result = true, true [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:check() ready = false [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: @0s [Validation] #15 : ["Weather",["Snow"]] [160] ["Time",["06:00","22:00"]] => ["Color",[153,77,0,255,0]] [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.check() copy.name="Weather" id="Storm" property="Storm" value="Storm" value2="Storm" value3="Storm" value4="Storm" [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.getValue() 2 return copy.lastvalue, copy.lastDisplayValue : nil, nil [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.check() result = nil [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:check() result = false, nil [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.check() copy.name=160 id=160 property=160 value=160 value2=160 value3=160 value4=160 [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.getValue() 2 return copy.lastvalue, copy.lastDisplayValue : true, true [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.check() result = true [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:check() result = true, true [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.check() copy.name="Time" id="06:00" property="22:00" value="22:00" value2="22:00" value3="22:00" value4="22:00" [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.getValue() 2 return copy.lastvalue, copy.lastDisplayValue : true, true [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.check() result = true [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:check() result = true, true [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:check() ready = false [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: @0s [Validation] #16 : ["Weather",["Storm"]] [160] ["Time",["06:00","22:00"]] => ["Color",[153,255,0,0,0]] [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.check() copy.name="Weather" id="Fog" property="Fog" value="Fog" value2="Fog" value3="Fog" value4="Fog" [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.getValue() 2 return copy.lastvalue, copy.lastDisplayValue : nil, nil [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.check() result = nil [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:check() result = false, nil [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.check() copy.name=160 id=160 property=160 value=160 value2=160 value3=160 value4=160 [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.getValue() 2 return copy.lastvalue, copy.lastDisplayValue : true, true [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.check() result = true [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:check() result = true, true [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.check() copy.name="Time" id="06:00" property="22:00" value="22:00" value2="22:00" value3="22:00" value4="22:00" [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.getValue() 2 return copy.lastvalue, copy.lastDisplayValue : true, true [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.check() result = true [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:check() result = true, true [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: GEA:check() ready = false [17.07.2021] [10:44:44] [DEBUG] [QA_GEA_29]: @0s [Validation] #17 : ["Weather",["Fog"]] [160] ["Time",["06:00","22:00"]] => ["Color",[153,255,255,255,0]] [17.07.2021] [10:44:49] [DEBUG] [QA_GEA_29]: Event : {"data":{"id":160,"property":"value"},"type":"DevicePropertyUpdatedEvent"} [17.07.2021] [10:44:49] [DEBUG] [QA_GEA_29]: GEA:init() self.source = {"msg":"#160 Mouvement Cuisine (Cuisine)<\/font><\/b> value<\/font><\/b>","type":"device","id":160,"property":"value"} [17.07.2021] [10:44:49] [TRACE] [QA_GEA_29]: ---------------------------------------------------------------------------------------------------- [17.07.2021] [10:44:49] [TRACE] [QA_GEA_29]: Démarrage par événement de GEA 7.33 : mode device #160 Mouvement Cuisine (Cuisine) value [17.07.2021] [10:44:49] [TRACE] [QA_GEA_29]: ---------------------------------------------------------------------------------------------------- [17.07.2021] [10:44:49] [DEBUG] [QA_GEA_29]: GEA:init() self.event = {"id":160} [17.07.2021] [10:44:49] [DEBUG] [QA_GEA_29]: GEA:addEntry(true, 0, "Démarrage de GEA le #date# à #time#", nil, "Démarrage GEA") [17.07.2021] [10:44:49] [DEBUG] [QA_GEA_29]: GEA:addEntry(true, 0, "", ["CurrentIcon",29,1053]) [17.07.2021] [10:44:49] [DEBUG] [QA_GEA_29]: GEA:addEntry(["Info+","serverStatus",1626511369], 0, "Box redémarrée à #time# le #date#", nil, "Démarrage box") [17.07.2021] [10:44:49] [DEBUG] [QA_GEA_29]: GEA:addEntry(["Info","updateStableAvailable",true], 86400, "Une nouvelle version est disponible", nil, "Détection nouvelle version") [17.07.2021] [10:44:49] [DEBUG] [QA_GEA_29]: GEA:addEntry(["Info","updateBetaAvailable",true], 86400, "Une nouvelle version BETA est disponible", nil, "Détection nouvelle version beta") [17.07.2021] [10:44:49] [DEBUG] [QA_GEA_29]: GEA:addEntry(["Time","01:00"], 30, "", [["Profile","Nuit"]]) [17.07.2021] [10:44:49] [DEBUG] [QA_GEA_29]: GEA:addEntry(["Time","05:59"], 30, "", [["Profile","NUIT FIN"]]) [17.07.2021] [10:44:49] [DEBUG] [QA_GEA_29]: GEA:addEntry(["Time","06:00"], 30, "", [["Profile","Présence"]]) [17.07.2021] [10:44:49] [DEBUG] [QA_GEA_29]: GEA:addEntry([["Profile","Présence"],["Global","Jour_Nuit","Jour"],["Time","09:00","Sunset"]], -1, "", ["Open",[123,137]]) [17.07.2021] [10:44:49] [DEBUG] [QA_GEA_29]: GEA:addEntry([["Time","Sunset+15"],["Global","Vacances","0"]], 30, "Fermeture du volet de la chambre des Parents à #time#", [["close",131]]) [17.07.2021] [10:44:49] [DEBUG] [QA_GEA_29]: GEA:addEntry([["Days","Saturday"],["Time","11:00"],["Global","Vacances","0"]], 30, "Mettre le sachet dans la fosse septique") [17.07.2021] [10:44:49] [DEBUG] [QA_GEA_29]: GEA:addEntry([["Weather","Clear"],["Time","06:00","22:00"],160], -1, "", ["Color",153,255,206,51,0]) [17.07.2021] [10:44:49] [DEBUG] [QA_GEA_29]: Ajout immédiat #12 : ["Weather",["Clear"]] [160] ["Time",["06:00","22:00"]] => ["Color",[153,255,206,51,0]] [17.07.2021] [10:44:49] [DEBUG] [QA_GEA_29]: GEA:addEntry([["Weather","Cloudy"],["Time","06:00","22:00"],160], -1, "", ["Color",153,255,255,255,0]) [17.07.2021] [10:44:49] [DEBUG] [QA_GEA_29]: Ajout immédiat #13 : ["Weather",["Cloudy"]] [160] ["Time",["06:00","22:00"]] => ["Color",[153,255,255,255,0]] [17.07.2021] [10:44:49] [DEBUG] [QA_GEA_29]: GEA:addEntry([["Weather","Rain"],["Time","06:00","22:00"],160], -1, "", ["Color",153,0,135,255,0]) [17.07.2021] [10:44:49] [DEBUG] [QA_GEA_29]: Ajout immédiat #14 : ["Weather",["Rain"]] [160] ["Time",["06:00","22:00"]] => ["Color",[153,0,135,255,0]] [17.07.2021] [10:44:49] [DEBUG] [QA_GEA_29]: GEA:addEntry([["Weather","Snow"],["Time","06:00","22:00"],160], -1, "", ["Color",153,77,0,255,0]) [17.07.2021] [10:44:49] [DEBUG] [QA_GEA_29]: Ajout immédiat #15 : ["Weather",["Snow"]] [160] ["Time",["06:00","22:00"]] => ["Color",[153,77,0,255,0]] [17.07.2021] [10:44:49] [DEBUG] [QA_GEA_29]: GEA:addEntry([["Weather","Storm"],["Time","06:00","22:00"],160], -1, "", ["Color",153,255,0,0,0]) [17.07.2021] [10:44:49] [DEBUG] [QA_GEA_29]: Ajout immédiat #16 : ["Weather",["Storm"]] [160] ["Time",["06:00","22:00"]] => ["Color",[153,255,0,0,0]] [17.07.2021] [10:44:49] [DEBUG] [QA_GEA_29]: GEA:addEntry([["Weather","Fog"],["Time","06:00","22:00"],160], -1, "", ["Color",153,255,255,255,0]) [17.07.2021] [10:44:49] [DEBUG] [QA_GEA_29]: Ajout immédiat #17 : ["Weather",["Fog"]] [160] ["Time",["06:00","22:00"]] => ["Color",[153,255,255,255,0]] [17.07.2021] [10:44:49] [DEBUG] [QA_GEA_29]: GEA:addEntry([160,["Value+",153,1]], 60, "", [["Inverse"],["turnOff",153]]) Merci.
Lazer Posté(e) le 17 juillet 2021 Auteur Signaler Posté(e) le 17 juillet 2021 @Dragoniacs ça me semble un comportement normal, il faut que tu rajoutes {"Repeat"} dans les actions. @fredokl je vois que tu utilises le déclenchement instantané avec -1. Cependant tu n'as entouré aucune de tes conditions par des parenthèses, donc elles sont toutes des déclencheurs... es-tu certain que c'est bien ce que tu voulais ? Sinon sur quelle condition est censée se déclencher ta règle ? Commençons par mettre la règle au propre avant de débugguer.
Dragoniacs Posté(e) le 17 juillet 2021 Signaler Posté(e) le 17 juillet 2021 Avec un "Repeat" ça m'envoie un push toutes les 30s Envoyé de mon RMX1993 en utilisant Tapatalk
Lazer Posté(e) le 18 juillet 2021 Auteur Signaler Posté(e) le 18 juillet 2021 Hum, je n'avais pas compris. Tu veux un déclenchement de la règle à chaque fois que le Label change. Alors du coup, le comportent actuel de GEA est "normal". C'est le comportement que tu avais sur HC2 que je ne comprend pas.... GEA est censé faire la comparaison avec la valeur donnée (donc une chaine vide "" dans ton cas), du coup il ne va jamais déclencher quand le label change, car il est toujours différent de "". Ce qu'il faudrait que tu fasses, c'est stocker la valeur du label dans une VariableCache à chaque changement, puis comparer le label avec la VariableCache en question, ainsi tu pourrais détecter la modification du label.
Dragoniacs Posté(e) le 18 juillet 2021 Signaler Posté(e) le 18 juillet 2021 Bonne idée !Mais comment on fait pour comparer un label et une variable ?GEA.add({"Label","MonQA","MonLabel",????},30,"Le label a changé",{action})Envoyé de mon RMX1993 en utilisant Tapatalk
Lazer Posté(e) le 18 juillet 2021 Auteur Signaler Posté(e) le 18 juillet 2021 Euh.... bonne question... tu me poses une colle là 1
Dragoniacs Posté(e) le 18 juillet 2021 Signaler Posté(e) le 18 juillet 2021 Je vais essayer de passer par une fonction....Envoyé de mon RMX1993 en utilisant Tapatalk
Lazer Posté(e) le 19 juillet 2021 Auteur Signaler Posté(e) le 19 juillet 2021 C'est une solution. Sinon avec VariableCache, je verrais bien le synoptique suivant, en 2 règles : - condition true => action : affectation de la valeur du label dans une VariableCache courante - condition : comparaison de la VariableCache courante avec la VariableCache précédente => action notification + mémorisation du nouveau label dans la VariableCache précédente
Dragoniacs Posté(e) le 20 juillet 2021 Signaler Posté(e) le 20 juillet 2021 Les volets ne se ferment plus en fonction de la hauteur et azimut du soleil.Je pense que GEA ne sait plus gérer les variables des QA en tant que nombre .... Voici une de mes lignes de code qui ne se déclenche plus :GEA.add({"VariableQA+","Soleil","Azimut",150},30,"",{"close","Volet séjour"})Envoyé de mon RMX1993 en utilisant Tapatalk
Dragoniacs Posté(e) le 20 juillet 2021 Signaler Posté(e) le 20 juillet 2021 Laisse tomber, je crois que c'est un autre bug, mes volets ont bien bougé... Je pense que GEA n'est pas en tordEnvoyé de mon RMX1993 en utilisant Tapatalk
fredokl Posté(e) le 2 août 2021 Signaler Posté(e) le 2 août 2021 @Lazer Je reviens sur ce post. Je n'ai pas pris le temps de répondre car j'étais en vacances et que cela n'était pas une priorité pour moi. Bon concernant cette ligne (et les suivantes que je ne mets pas car elles sont presque identiques): GEA.add({{"Weather", "Clear"},{"Time","06:00","08:00"},id["OEIL_SAURON_CUISINE"]}, -1, "", {"Color", 153, 255, 206, 51, 0}) Toutes les conditions doivent être rempli pour que le bandeau led s'allume dans la couleur choisie. Jusqu'à récemment ça fonctionnait bien mais depuis je ne sais plus qu'elle mise à jour de GEA, ça ne fonctionne plus. J'ai essayé de changer le code dans tout les sens (enfin je pense) et rien n'y fait. Petite astuce? Merci.
Lazer Posté(e) le 2 août 2021 Auteur Signaler Posté(e) le 2 août 2021 OK, mais du coup tu n'as pas répondu à mes questions. Je suis surpris par ta syntaxe, tu as 3 déclencheurs instantanés (= pas de parenthèse). Bon même si "Time" ne peut pas être utilisé en déclencheur instantané, ça en laisse quand même 2 : le changement de météo, et le mouvement. Tu es certain que c'est bien ce que tu veux ? Ensuite, quand tu dis que ça ne fonctionne pas, il faudrait que tu isoles la règle dans une instance GEA dédiée, et que tu actives GEA.debug=true et GEA;lldebug=true comme je le demande toujours, puis tu nous partages les logs pour voir ce qui se passe. Sans log, je ne peux pas deviner le problème.
fredokl Posté(e) le 2 août 2021 Signaler Posté(e) le 2 août 2021 Ok. Je pensai avoir répondu mais je recommence. Oui j'utilise le déclenchement instantané -1. Je pense ne pas avoir compris le coup des parenthèses. Oui je veux que l'oeil de Sauron et la météo soit déclencheur dans la tranche horaire prévue. Il faut que les deux conditions (oeil et météo) soit vrai sinon pas de déclenchement. Pour le debug je l'ai fait plus haut dans le poste mais indigeste. Je fais plus simple.
fredokl Posté(e) le 2 août 2021 Signaler Posté(e) le 2 août 2021 (modifié) [02.08.2021] [16:28:50] [DEBUG] [QA_GEA_29]: Event : {"data":{"property":"value","id":160},"type":"DevicePropertyUpdatedEvent"} [02.08.2021] [16:28:50] [DEBUG] [QA_GEA_29]: GEA:init() self.source = {"msg":"#160 Mouvement Cuisine (Cuisine)<\/font><\/b> value<\/font><\/b>","type":"device","id":160,"property":"value"} [02.08.2021] [16:28:50] [TRACE] [QA_GEA_29]: ---------------------------------------------------------------------------------------------------- [02.08.2021] [16:28:50] [TRACE] [QA_GEA_29]: Démarrage par événement de GEA 7.33 : mode device #160 Mouvement Cuisine (Cuisine) value [02.08.2021] [16:28:50] [TRACE] [QA_GEA_29]: ---------------------------------------------------------------------------------------------------- [02.08.2021] [16:28:50] [DEBUG] [QA_GEA_29]: GEA:init() self.event = {"id":160} [02.08.2021] [16:28:50] [DEBUG] [QA_GEA_29]: GEA:addEntry(true, 0, "Démarrage de GEA le #date# à #time#", nil, "Démarrage GEA") [02.08.2021] [16:28:50] [DEBUG] [QA_GEA_29]: GEA:addEntry(true, 0, "", ["CurrentIcon",29,1053]) [02.08.2021] [16:28:50] [DEBUG] [QA_GEA_29]: GEA:addEntry(["Info+","serverStatus",1627914410], 0, "Box redémarrée à #time# le #date#", nil, "Démarrage box") [02.08.2021] [16:28:50] [DEBUG] [QA_GEA_29]: GEA:addEntry(["Info","updateStableAvailable",true], 86400, "Une nouvelle version est disponible", nil, "Détection nouvelle version") [02.08.2021] [16:28:50] [DEBUG] [QA_GEA_29]: GEA:addEntry(["Info","updateBetaAvailable",true], 86400, "Une nouvelle version BETA est disponible", nil, "Détection nouvelle version beta") [02.08.2021] [16:28:50] [DEBUG] [QA_GEA_29]: GEA:addEntry([["Weather","Clear"],["Time","06:00","22:00"],160], -1, "", ["Color",153,255,206,51,0]) [02.08.2021] [16:28:50] [DEBUG] [QA_GEA_29]: Ajout immédiat #6 : ["Weather",["Clear"]] [160] ["Time",["06:00","22:00"]] => ["Color",[153,255,206,51,0]] [02.08.2021] [16:28:50] [DEBUG] [QA_GEA_29]: GEA:addEntry([["Weather","Cloudy"],["Time","06:00","22:00"],160], -1, "", ["Color",153,255,255,255,0]) [02.08.2021] [16:28:50] [DEBUG] [QA_GEA_29]: Ajout immédiat #7 : ["Weather",["Cloudy"]] [160] ["Time",["06:00","22:00"]] => ["Color",[153,255,255,255,0]] [02.08.2021] [16:28:50] [DEBUG] [QA_GEA_29]: GEA:addEntry([160,["Value+",153,1]], 60, "", [["Inverse"],["turnOff",153]]) [02.08.2021] [16:28:50] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.check() copy.name="Weather" id="Clear" property="Clear" value="Clear" value2="Clear" value3="Clear" value4="Clear" [02.08.2021] [16:28:50] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.getValue() 2 return copy.lastvalue, copy.lastDisplayValue : nil, nil [02.08.2021] [16:28:50] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.check() result = nil [02.08.2021] [16:28:50] [DEBUG] [QA_GEA_29]: GEA:check() result = false, nil [02.08.2021] [16:28:50] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.check() copy.name=160 id=160 property=160 value=160 value2=160 value3=160 value4=160 [02.08.2021] [16:28:50] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.getValue() 2 return copy.lastvalue, copy.lastDisplayValue : true, true [02.08.2021] [16:28:50] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.check() result = true [02.08.2021] [16:28:50] [DEBUG] [QA_GEA_29]: GEA:check() result = true, true [02.08.2021] [16:28:50] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.check() copy.name="Time" id="06:00" property="22:00" value="22:00" value2="22:00" value3="22:00" value4="22:00" [02.08.2021] [16:28:50] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.getValue() 2 return copy.lastvalue, copy.lastDisplayValue : true, true [02.08.2021] [16:28:50] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.check() result = true [02.08.2021] [16:28:50] [DEBUG] [QA_GEA_29]: GEA:check() result = true, true [02.08.2021] [16:28:50] [DEBUG] [QA_GEA_29]: GEA:check() ready = false [02.08.2021] [16:28:50] [DEBUG] [QA_GEA_29]: @0s [Validation] #6 : ["Weather",["Clear"]] [160] ["Time",["06:00","22:00"]] => ["Color",[153,255,206,51,0]] [02.08.2021] [16:28:50] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.check() copy.name="Weather" id="Cloudy" property="Cloudy" value="Cloudy" value2="Cloudy" value3="Cloudy" value4="Cloudy" [02.08.2021] [16:28:50] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.getValue() 2 return copy.lastvalue, copy.lastDisplayValue : nil, nil [02.08.2021] [16:28:50] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.check() result = nil [02.08.2021] [16:28:50] [DEBUG] [QA_GEA_29]: GEA:check() result = false, nil [02.08.2021] [16:28:50] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.check() copy.name=160 id=160 property=160 value=160 value2=160 value3=160 value4=160 [02.08.2021] [16:28:50] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.getValue() 2 return copy.lastvalue, copy.lastDisplayValue : true, true [02.08.2021] [16:28:50] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.check() result = true [02.08.2021] [16:28:50] [DEBUG] [QA_GEA_29]: GEA:check() result = true, true [02.08.2021] [16:28:50] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.check() copy.name="Time" id="06:00" property="22:00" value="22:00" value2="22:00" value3="22:00" value4="22:00" [02.08.2021] [16:28:50] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.getValue() 2 return copy.lastvalue, copy.lastDisplayValue : true, true [02.08.2021] [16:28:50] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.check() result = true [02.08.2021] [16:28:50] [DEBUG] [QA_GEA_29]: GEA:check() result = true, true [02.08.2021] [16:28:50] [DEBUG] [QA_GEA_29]: GEA:check() ready = false [02.08.2021] [16:28:50] [DEBUG] [QA_GEA_29]: @0s [Validation] #7 : ["Weather",["Cloudy"]] [160] ["Time",["06:00","22:00"]] => ["Color",[153,255,255,255,0]] [02.08.2021] [16:28:56] [DEBUG] [QA_GEA_29]: Event : {"data":{"property":"value","id":160},"type":"DevicePropertyUpdatedEvent"} [02.08.2021] [16:28:56] [DEBUG] [QA_GEA_29]: GEA:init() self.source = {"msg":"#160 Mouvement Cuisine (Cuisine)<\/font><\/b> value<\/font><\/b>","type":"device","id":160,"property":"value"} [02.08.2021] [16:28:56] [TRACE] [QA_GEA_29]: ---------------------------------------------------------------------------------------------------- [02.08.2021] [16:28:56] [TRACE] [QA_GEA_29]: Démarrage par événement de GEA 7.33 : mode device #160 Mouvement Cuisine (Cuisine) value [02.08.2021] [16:28:56] [TRACE] [QA_GEA_29]: ---------------------------------------------------------------------------------------------------- [02.08.2021] [16:28:56] [DEBUG] [QA_GEA_29]: GEA:init() self.event = {"id":160} [02.08.2021] [16:28:56] [DEBUG] [QA_GEA_29]: GEA:addEntry(true, 0, "Démarrage de GEA le #date# à #time#", nil, "Démarrage GEA") [02.08.2021] [16:28:56] [DEBUG] [QA_GEA_29]: GEA:addEntry(true, 0, "", ["CurrentIcon",29,1053]) [02.08.2021] [16:28:56] [DEBUG] [QA_GEA_29]: GEA:addEntry(["Info+","serverStatus",1627914416], 0, "Box redémarrée à #time# le #date#", nil, "Démarrage box") [02.08.2021] [16:28:56] [DEBUG] [QA_GEA_29]: GEA:addEntry(["Info","updateStableAvailable",true], 86400, "Une nouvelle version est disponible", nil, "Détection nouvelle version") [02.08.2021] [16:28:56] [DEBUG] [QA_GEA_29]: GEA:addEntry(["Info","updateBetaAvailable",true], 86400, "Une nouvelle version BETA est disponible", nil, "Détection nouvelle version beta") [02.08.2021] [16:28:56] [DEBUG] [QA_GEA_29]: GEA:addEntry([["Weather","Clear"],["Time","06:00","22:00"],160], -1, "", ["Color",153,255,206,51,0]) [02.08.2021] [16:28:56] [DEBUG] [QA_GEA_29]: Ajout immédiat #6 : ["Weather",["Clear"]] [160] ["Time",["06:00","22:00"]] => ["Color",[153,255,206,51,0]] [02.08.2021] [16:28:56] [DEBUG] [QA_GEA_29]: GEA:addEntry([["Weather","Cloudy"],["Time","06:00","22:00"],160], -1, "", ["Color",153,255,255,255,0]) [02.08.2021] [16:28:56] [DEBUG] [QA_GEA_29]: Ajout immédiat #7 : ["Weather",["Cloudy"]] [160] ["Time",["06:00","22:00"]] => ["Color",[153,255,255,255,0]] [02.08.2021] [16:28:56] [DEBUG] [QA_GEA_29]: GEA:addEntry([160,["Value+",153,1]], 60, "", [["Inverse"],["turnOff",153]]) [02.08.2021] [16:28:56] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.check() copy.name="Weather" id="Clear" property="Clear" value="Clear" value2="Clear" value3="Clear" value4="Clear" [02.08.2021] [16:28:56] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.getValue() 2 return copy.lastvalue, copy.lastDisplayValue : nil, nil [02.08.2021] [16:28:56] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.check() result = nil [02.08.2021] [16:28:56] [DEBUG] [QA_GEA_29]: GEA:check() result = false, nil [02.08.2021] [16:28:56] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.check() copy.name=160 id=160 property=160 value=160 value2=160 value3=160 value4=160 [02.08.2021] [16:28:56] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.getValue() 2 return copy.lastvalue, copy.lastDisplayValue : false, false [02.08.2021] [16:28:56] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.check() result = false [02.08.2021] [16:28:56] [DEBUG] [QA_GEA_29]: GEA:check() result = false, false [02.08.2021] [16:28:56] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.check() copy.name="Time" id="06:00" property="22:00" value="22:00" value2="22:00" value3="22:00" value4="22:00" [02.08.2021] [16:28:56] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.getValue() 2 return copy.lastvalue, copy.lastDisplayValue : true, true [02.08.2021] [16:28:56] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.check() result = true [02.08.2021] [16:28:56] [DEBUG] [QA_GEA_29]: GEA:check() result = true, true [02.08.2021] [16:28:56] [DEBUG] [QA_GEA_29]: GEA:check() ready = false [02.08.2021] [16:28:56] [DEBUG] [QA_GEA_29]: @0s [Validation] #6 : ["Weather",["Clear"]] [160] ["Time",["06:00","22:00"]] => ["Color",[153,255,206,51,0]] [02.08.2021] [16:28:56] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.check() copy.name="Weather" id="Cloudy" property="Cloudy" value="Cloudy" value2="Cloudy" value3="Cloudy" value4="Cloudy" [02.08.2021] [16:28:56] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.getValue() 2 return copy.lastvalue, copy.lastDisplayValue : nil, nil [02.08.2021] [16:28:56] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.check() result = nil [02.08.2021] [16:28:56] [DEBUG] [QA_GEA_29]: GEA:check() result = false, nil [02.08.2021] [16:28:56] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.check() copy.name=160 id=160 property=160 value=160 value2=160 value3=160 value4=160 [02.08.2021] [16:28:56] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.getValue() 2 return copy.lastvalue, copy.lastDisplayValue : false, false [02.08.2021] [16:28:56] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.check() result = false [02.08.2021] [16:28:56] [DEBUG] [QA_GEA_29]: GEA:check() result = false, false [02.08.2021] [16:28:56] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.check() copy.name="Time" id="06:00" property="22:00" value="22:00" value2="22:00" value3="22:00" value4="22:00" [02.08.2021] [16:28:56] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.getValue() 2 return copy.lastvalue, copy.lastDisplayValue : true, true [02.08.2021] [16:28:56] [DEBUG] [QA_GEA_29]: GEA:encapsule() copy.check() result = true [02.08.2021] [16:28:56] [DEBUG] [QA_GEA_29]: GEA:check() result = true, true [02.08.2021] [16:28:56] [DEBUG] [QA_GEA_29]: GEA:check() ready = false [02.08.2021] [16:28:56] [DEBUG] [QA_GEA_29]: @0s [Validation] #7 : ["Weather",["Cloudy"]] [160] ["Time",["06:00","22:00"]] => ["Color",[153,255,255,255,0]] Modifié le 2 août 2021 par fredokl Nouveau debug
Lazer Posté(e) le 2 août 2021 Auteur Signaler Posté(e) le 2 août 2021 (modifié) Extrait de la doc : --> Il est possible d'exclure une option des déclenchements instantanés à l'aide des parenthèses : -- Syntaxe : GEA.add({ {CONDITION1}, {(CONDITION2)} }, -1, "", {ACTIONS} ) -- Seule la CONDITION 1 sera utilisée en comme déclencheur de la ligne \\ Only condition number 1 will trigger the line -- Exemple : -- Ceci sans exclusion : GEA.add ({{"Global", "JohhnyHome", "1"}, {"Global", "TimeOfDay", "Night"}}, -1, "", {"QuickApp", QA["TTS"], "1"}) -->> La ligne se déclenche lorsque : -- 1- "JohhnyHome" passe à 1 -- 2- "JohhnyHome" est déjà à 1 ET lors du passage de la variable "TimeOfDay" passe à "Night" -- Ceci avec exclusion : GEA.add ({{"Global", "JohhnyHome", "1"}, {"(Global)", "TimeOfDay", "Night"}}, -1, "", {"QuickApp", QA["TTS"], "1"}) -->> La ligne se déclenche UNIQUEMENT lorsque : -- "JohhnyHome" passe à 1 ET que la variable "TimeOfDay" est égal à "Night" Dans ton cas ça ne change rien puisque tu veux le déclenchement instantané sur Weather et la Value du module, mais tu devrais mettre le Time entre parenthèses, car tu vas avoir de drôle de surprise si une prochaine version de GEA permet de réaliser des déclencheurs instantanés sur le Time (ce qui permettrait de faire de GEA un Scheduler....) Il faut prendre les bonnes habitudes dès le début. Remarque : le seul déclencheur pertinent est le détecteur de mouvement. Le déclenchent sur la condition Weather est peu utile à mon avis (il faudrait que la météo change pile pendant les quelques secondes où le détecteur est en alarme... peu de chances) Merci pour le log détaillé, mais bon... j'aurais aimé que tu isoles la règle... car le log est bavard, et avec les autres règles, c'est franchement pas simple à analyser.... Par ailleurs l'en tête de démarrage de GEA aurait été utile aussi, pour voir s'il prend bien en compte tes 2 déclencheurs. En tout cas je vois que le déclenchement instantané sur le détecteur de mouvement de la cuisine a bien lieu, c'est déjà bon signe. Modifié le 2 août 2021 par Lazer
fredokl Posté(e) le 2 août 2021 Signaler Posté(e) le 2 août 2021 Oui j'ai épluché la doc et vu cette partie. Voilà le code que j'ai essayé mais rien ne se passe: GEA.add({id["OEIL_SAURON_CUISINE"],{"(Weather)", "dégagé"},{"(Time)","06:00","22:00"}},-1, "", {"Color", 153, 255, 206, 51, 0}) Pour le debug, je n'ai pourtant que deux règles qui tournent pour faire les tests. Je ferai mieux la prochaine fois.
Lazer Posté(e) le 2 août 2021 Auteur Signaler Posté(e) le 2 août 2021 Rien ne se passe ? Alors là c'est curieux, car cette règle devrait se déclencher sur détection de mouvement, c'est ultra basique. Juste une remarque, tu es sûr de son ID ? Que dis le log au démarrage de GEA avec cette règle ? Si tu as bien la dernière version ? Qui affiche en couleur les déclencheurs instantanés au démarrage Mais... mais... mais .... je viens de voir que tu as posté sur le topic de GEA pour HC2... tu parles de quoi en fait ??
fredokl Posté(e) le 2 août 2021 Signaler Posté(e) le 2 août 2021 (modifié) Oups boulet>... Je suis sur HC3. EDIT: on est bien sur le topic pour la HC3, non? En fait la condition se lance bien mais la bande led ne s'allume pas du tout. Tous mes ID sont bons. J'ai bien la dernière version de GEA 7.33 Tu peux déplacer le fils ou supprime, je ferai ma demande sur le bon fil. Modifié le 2 août 2021 par fredokl
Lazer Posté(e) le 2 août 2021 Auteur Signaler Posté(e) le 2 août 2021 J'ai fait le déplacement (il y avait aussi les messages de Dragoniacs du coup) Tu peux essayer avec la syntaxe suivante (avec "WeatherCondition") : {"Weather", "WeatherCondition", "xxx"} Ce qui devrait donner un truc du genre (tu es sûr pour la valeur "dégagé" ?) GEA.add({id["OEIL_SAURON_CUISINE"], {"(Weather)", "WeatherCondition", "dégagé"}, {"(Time)","06:00","22:00"}}, -1, "", {"Color", 153, 255, 206, 51, 0}) Je soupçonne la syntaxe abrégée d'être buggée dans cette version de GEA (et vu que je ne l'ai jamais utilisé, ça fait peut être longtemps) 1
fredokl Posté(e) le 2 août 2021 Signaler Posté(e) le 2 août 2021 Merci pour le déplacement. Pour "dégagé", je l'ai pris dans la doc syntaxe. je vais tester le code.
fredokl Posté(e) le 2 août 2021 Signaler Posté(e) le 2 août 2021 Super @Lazer Au top comme toujours! Ça fonctionne enfin! Donc il fallait ajouter "WeatherCondition" à la condition "Weather" et mettre les parenthèses au bon endroit. C'est un oubli dans la doc ou un bug sur GEA?
Lazer Posté(e) le 2 août 2021 Auteur Signaler Posté(e) le 2 août 2021 (modifié) Cool Les 2 raisons... je pense que la syntaxe abrégée devait fonctionner il y a bien longtemps, et qu'elle a dû cesser de fonctionner à un moment donné dans mes différentes modifications pour HC3. J'ai regardé dans les règles que j'ai testé, je n'ai jamais testé cette syntaxe abrégée, uniquement la version longue avec WeatherCondition explicitement déclaré. Je regarderai si je peux patcher GEA pour rétablir le fonctionnement raccourci de cette règle, comme avant. Et mettre la doc à jour aussi du coup. Au fait, pour voir la condition actuelle de la météo, il faut passer par l'API de la box : /api/weather On y voit clairement toutes les propriétés exploitables avec "Weather" : (pour la précision, on repassera, il fait soleil en ce moment.... mais bon c'est du Cloud (sans jeu de mot), donc pas précis, peut être qu'il pleut effectivement de l'autre coté de Paris. Modifié le 2 août 2021 par Lazer 1
fredokl Posté(e) le 2 août 2021 Signaler Posté(e) le 2 août 2021 Merci pour ces précisions. Maintenant que ce faux bug a été mis à jour, tu as le temps pour appliquer un correctif. Pour l'API, je passe par le swagger que je trouve pratique. Et oui la précision n'est pas vraiment au rendez-vous, il y a une tempête de ciel bleu chez moi en ce moment alors que l'API indique "nuageux"! Sinon, ce bout de code, je ne l'utilise qu'à titre informatif. Ça serait prendre trop de risque que de lui faire entièrement confiance!
Messages recommandés