Aller au contenu

Messages recommandés

Posté(e)

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) 

 

 

Posté(e)

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.

Posté(e)

@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.

Posté(e)

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.

Posté(e)

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

Posté(e)

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

Posté(e)

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

Posté(e)

Laisse tomber, je crois que c'est un autre bug, mes volets ont bien bougé... Je pense que GEA n'est pas en tord

Envoyé de mon RMX1993 en utilisant Tapatalk

Posté(e)

@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.

Posté(e)

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.

Posté(e)

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.

Posté(e) (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é par fredokl
Nouveau debug
Posté(e) (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é par Lazer
Posté(e)

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.^_^

Posté(e)

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 ??

Posté(e) (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é par fredokl
Posté(e)

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)

 

  • Thanks 1
Posté(e)

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?

Posté(e) (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" :

image.png.10184fa712d7f6fb764719075c5f3aec.png

(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é par Lazer
  • Like 1
Posté(e)

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!

×
×
  • Créer...