jojo Posté(e) le 14 juillet 2022 Signaler Posté(e) le 14 juillet 2022 Le 03/07/2022 à 18:47, RS600807 a dit : Je reçois également un email m'indiquant "suspicious login attempt" avec une adresse IP. je rencontre en problème similaire, quand je veux envoyer des messages depuis mon ancienne box (une LD, donc sur le même réseau). je n'ai jamais essayé des notif interactives ... Mais ok depuis des Google Scripts externes => PAS GEA et pas le dernier firmware beta, car je suis sur le dernier stable
Felig Posté(e) le 28 juillet 2022 Signaler Posté(e) le 28 juillet 2022 Bonjour, J'ai un problème avec la règle suivante: GEA.add({"Breached", "Alarme"},-1,"INTRUSION",{"Email","admin","Intrusion détectée","Alarme Fibaro"},"INTRUSION") Quand l'alarme est déclenchée, GEA se lance bien en mode event, mais il ne trouve pas de règle à exécuter. J'ai le message d'erreur suivant: [29.07.2022] [01:42:10] [TRACE] [QA_GEA_28]: ---------------------------------------------------------------------------------------------------- [29.07.2022] [01:42:10] [TRACE] [QA_GEA_28]: GEA 7.37 started by event: mode alarm #2 Alarme breached [29.07.2022] [01:42:10] [TRACE] [QA_GEA_28]: ---------------------------------------------------------------------------------------------------- [29.07.2022] [01:42:10] [WARNING] [QA_GEA_28]: No entry to check in automatic mode [29.07.2022] [01:42:10] [WARNING] [QA_GEA_28]: No entry for this event Alarm[2], please remove it from header En mode non instantané (si je remplace -1 par 0), la règle s'exécute normalement. Vous avez une idée ? Merci d'avance
jojo Posté(e) le 29 juillet 2022 Signaler Posté(e) le 29 juillet 2022 tu n'auras pas réponse ici. Pose ta question dans le topic Support GEA. Merci 1
Felig Posté(e) le 31 juillet 2022 Signaler Posté(e) le 31 juillet 2022 Ok, désolé Jojo. Mais je pense que c'est un bug de GEA. J'en ai trouvé un autre petit, de formatage:
Lazer Posté(e) le 1 août 2022 Auteur Signaler Posté(e) le 1 août 2022 @Felig étrange, il me faudra le log détaillé avec debug et lldebug à true pour analyser le problème.
Felig Posté(e) le 2 août 2022 Signaler Posté(e) le 2 août 2022 Lazer, J'ai créé une configuration test avec seulement 2 règles: GEA.add({"Profile", "3"},0,"",{"Filters","Lights","turnOff"},"Mode Vacances -> Extinction lumières") GEA.add({"Breached","Alarme"},-1,"ALARME DECLENCHEE",{},"ALARME DECLENCHEE") Voici le log, du lancement de GEA jusqu'au déclenchement de l'alarme: [02.08.2022] [19:56:20] [TRACE] [QUICKAPP28]: ---------------------------------------------------------------------------------------------------- [02.08.2022] [19:56:20] [TRACE] [QUICKAPP28]: GEA 7.37 started automatically: mode autostart [02.08.2022][19:56:20] [TRACE] [QUICKAPP28]: ---------------------------------------------------------------------------------------------------- [02.08.2022] [19:56:20] [DEBUG] [QUICKAPP28]: Use tools library v2.20 [02.08.2022] [19:56:20] [DEBUG] [QUICKAPP28]: Check automatic every 30 seconds [02.08.2022] [19:56:20] [DEBUG] [QUICKAPP28]: GEA QuickApp variable : GEA_History [02.08.2022] [19:56:20] [DEBUG] [QUICKAPP28]: ---------------------------------------------------------------------------------------------------- [02.08.2022] [19:56:20] [DEBUG] [QUICKAPP28]: Loading user code setEvents() : [02.08.2022] [19:56:20] [DEBUG] [QUICKAPP28]: GEA:addEntry(["Profile","3"], 0, "", ["Filters","Lights","turnOff"], "Mode Vacances -> Extinction lumières") [02.08.2022] [19:56:20] [DEBUG] [QUICKAPP28]: Add auto #1 : Mode Vacances -> Extinction lumières [02.08.2022] [19:56:20] [DEBUG] [QUICKAPP28]: GEA:addEntry(["Breached","Alarme"], -1, "ALARME DECLENCHEE", {}, "ALARME DECLENCHEE") [02.08.2022] [19:56:20] [DEBUG] [QUICKAPP28]: ---------------------------------------------------------------------------------------------------- [02.08.2022] [19:56:20] [DEBUG] [QUICKAPP28]: Event triggers: 1 [02.08.2022] [19:56:20] [DEBUG] [QUICKAPP28]: Trigger : alarm #2 Alarme breached [02.08.2022] [19:56:21] [DEBUG] [QUICKAPP28]: ---------------------------------------------------------------------------------------------------- [02.08.2022] [19:56:21] [DEBUG] [QUICKAPP28]: GEA started in automatic mode on 02.08.22 at 19:56:21 ... [02.08.2022] [19:56:21] [DEBUG] [QUICKAPP28]: ---------------------------------------------------------------------------------------------------- [02.08.2022] [19:56:21] [DEBUG] [QUICKAPP28]: ... check running #0 @0s... [02.08.2022] [19:56:21] [DEBUG] [QUICKAPP28]: GEA:encapsule() copy.check() copy.name="Profile" id="3" property="3" value="3" value2="3" value3="3" value4="3" [02.08.2022] [19:56:21] [DEBUG] [QUICKAPP28]: GEA:encapsule() copy.getValue() 2 return copy.lastvalue, copy.lastDisplayValue : 3, 3 [02.08.2022] [19:56:21] [DEBUG] [QUICKAPP28]: GEA:encapsule() copy.check() result = 3 [02.08.2022] [19:56:21] [DEBUG] [QUICKAPP28]: GEA:check() result = true, 3 [02.08.2022] [19:56:21] [DEBUG] [QUICKAPP28]: GEA:check() ready = true [02.08.2022] [19:56:21] [DEBUG] [QUICKAPP28]: @0s [Validation*] #1 : Mode Vacances -> Extinction lumières [02.08.2022] [19:56:21] [DEBUG] [QUICKAPP28]: GEA:check() difftime(0.0) >= 0 [02.08.2022] [19:56:21] [DEBUG] [QUICKAPP28]: [Started] #1 : Mode Vacances -> Extinction lumières [02.08.2022] [19:56:21] [DEBUG] [QUICKAPP28]: [action] ["Filters",["Lights","turnOff"]] [02.08.2022] [19:56:34] [DEBUG] [QUICKAPP28]: Event : {"type":"AlarmPartitionBreachedEvent","data":{"partitionId":2}} [02.08.2022] [19:56:34] [DEBUG] [QUICKAPP28]: GEA:init() self.source = {"type":"alarm","msg":"#2 Alarme<\/font><\/b> breached<\/font>","property":"breached","id":2} [02.08.2022] [19:56:34] [TRACE] [QUICKAPP28]: ---------------------------------------------------------------------------------------------------- [02.08.2022] [19:56:34] [TRACE] [QUICKAPP28]: GEA 7.37 started by event: mode alarm #2 Alarme breached [02.08.2022] [19:56:34] [TRACE] [QUICKAPP28]: ---------------------------------------------------------------------------------------------------- [02.08.2022] [19:56:34] [DEBUG] [QUICKAPP28]: GEA:init() self.event = {"id":2} [02.08.2022] [19:56:34] [DEBUG] [QUICKAPP28]: GEA:addEntry(["Profile","3"], 0, "", ["Filters","Lights","turnOff"], "Mode Vacances -> Extinction lumières") [02.08.2022] [19:56:34] [DEBUG] [QUICKAPP28]: GEA:addEntry(["Breached","Alarme"], -1, "ALARME DECLENCHEE", {}, "ALARME DECLENCHEE") [02.08.2022] [19:56:34] [WARNING] [QUICKAPP28]: No entry to check in automatic mode [02.08.2022] [19:56:34] [WARNING] [QUICKAPP28]: No entry for this event Alarm[2], please remove it from header
Lazer Posté(e) le 3 août 2022 Auteur Signaler Posté(e) le 3 août 2022 Merci... étrange... Si je comprends bien, ton "Alarme" c'est la partition n°2 ? Tu as une autre partition en n°1 ? 2 tests que tu peux faire : - {"Breached", 2} => c'est à dire avec l'ID numérique - {"Breached"} => c'est à dire sans ID, il devrait déclencher la règle lors de l'intrusion sur la partition n°1 ou n°2
Felig Posté(e) le 4 août 2022 Signaler Posté(e) le 4 août 2022 (modifié) Oui "Alarme" est ma partition 2. La partition 1 était la partition par défaut, mais je l'ai effacée. Quand je remplace "Alarme" par 2 j'ai carrément un crash de GEA (cf. log ci-dessous). Et si je ne mets aucune id, j'ai le même crash (je n'ai pas mis le log, mais la ligne d'erreur est la même). Précision peut-être importante: la partition 2 "Alarme" est associée à un QA de type "Alarm Partition" et a été créée automatiquement quand j'ai créé le QA. Ce n'est pas une partition créée manuellement. Je peux refaire le test avec une partition créée manuellement si ça t'est utile. [04.08.2022] [14:03:34] [TRACE] [QA_GEA_28]: ---------------------------------------------------------------------------------------------------- [04.08.2022] [14:03:34] [TRACE] [QA_GEA_28]: GEA 7.37 started automatically: mode autostart [04.08.2022] [14:03:34] [TRACE] [QA_GEA_28]: ---------------------------------------------------------------------------------------------------- [04.08.2022] [14:03:34] [DEBUG] [QA_GEA_28]: Use tools library v2.20 [04.08.2022] [14:03:34] [DEBUG] [QA_GEA_28]: Check automatic every 30 seconds [04.08.2022] [14:03:34] [DEBUG] [QA_GEA_28]: GEA QuickApp variable : GEA_History [04.08.2022] [14:03:34] [DEBUG] [QA_GEA_28]: ---------------------------------------------------------------------------------------------------- [04.08.2022] [14:03:34] [DEBUG] [QA_GEA_28]: Loading user code setEvents() : [04.08.2022] [14:03:34] [DEBUG] [QA_GEA_28]: GEA:addEntry(["Breached",2], -1, "ALARME DECLENCHEE", {}, "ALARME DECLENCHEE") [04.08.2022] [14:03:34] [WARNING] [QA_GEA_28]: No entry to check in automatic mode [04.08.2022] [14:03:34] [DEBUG] [QA_GEA_28]: ---------------------------------------------------------------------------------------------------- [04.08.2022] [14:03:34] [DEBUG] [QA_GEA_28]: Event triggers: 1 [04.08.2022] [14:03:34] [DEBUG] [QA_GEA_28]: Trigger : alarm #2 Alarme breached [04.08.2022] [14:03:34] [DEBUG] [QA_GEA_28]: ---------------------------------------------------------------------------------------------------- [04.08.2022] [14:03:34] [DEBUG] [QA_GEA_28]: GEA has stopped running in automatic mode [04.08.2022] [14:04:07] [DEBUG] [QA_GEA_28]: Event : {"data":{"partitionId":2},"type":"AlarmPartitionBreachedEvent"} [04.08.2022] [14:04:07] [DEBUG] [QA_GEA_28]: GEA:init() self.source = {"msg":"#2 Alarme<\/font><\/b> breached<\/font>","type":"alarm","id":2,"property":"breached"}[04.08.2022] [14:04:07] [TRACE] [QA_GEA_28]: ---------------------------------------------------------------------------------------------------- [04.08.2022] [14:04:07] [TRACE] [QA_GEA_28]: GEA 7.37 started by event: mode alarm #2 Alarme breached [04.08.2022] [14:04:07] [TRACE] [QA_GEA_28]: ---------------------------------------------------------------------------------------------------- [04.08.2022] [14:04:07] [DEBUG] [QA_GEA_28]: GEA:init() self.event = {"id":2} [04.08.2022] [14:04:07] [DEBUG] [QA_GEA_28]: GEA:addEntry(["Breached",2], -1, "ALARME DECLENCHEE", {}, "ALARME DECLENCHEE") [04.08.2022] [14:04:07] [ERROR] [QUICKAPP28]: QuickApp crashed [04.08.2022] [14:04:07] [ERROR] [QUICKAPP28]: main.lua:3165: attempt to index a nil value (field '?') Modifié le 4 août 2022 par Felig
Felig Posté(e) le 5 août 2022 Signaler Posté(e) le 5 août 2022 @Lazer En regardant la ligne concernée, le crash venait du fait que j'avais mis {} comme action (au lieu de laisser vide entre les deux virgules). En réessayant avec une action non vide, ça fonctionne bien. Donc en résumé: GEA.add({"Breached", 2}, -1,"ALARME DECLENCHEE",{"turnOn", 146},"ALARME DECLENCHEE") => OK GEA.add({"Breached"}, -1,"ALARME DECLENCHEE",{"turnOn", 146},"ALARME DECLENCHEE") => OK GEA.add({"Breached", "Alarme"},-1,"ALARME DECLENCHEE",{"turnOn", 146},"ALARME DECLENCHEE") => Message "No entry for this event Alarm[2], please remove it from header"
Lazer Posté(e) le 5 août 2022 Auteur Signaler Posté(e) le 5 août 2022 Arf, et dire que je m'arrachais les cheveux et n'y comprenais rien, je ne regardais pas au bon endroit. Tant mieux si tu as trouvé. Si je comprends bien, il reste un cas de figure qui ne fonctionne pas, c'est lorsque la partition est identifiée par son nom ? Il faudra que je regarde si je peux corriger ça.
Felig Posté(e) le 5 août 2022 Signaler Posté(e) le 5 août 2022 (modifié) Ton intuition de tester directement avec l'id au lieu du nom était la bonne. Ça m'a pris un peu de temps mais je crois que j'ai trouvé. Lors de la vérification du déclencheur, GEA remplace "Alarme" par l'id d'un QA qui s'appelle aussi Alarme. Il fait une recherche dans la liste des devices, et pas dans la liste des partitions. Pour régler le problème, j'ai ajouté la ligne suivante dans l'option "Breached" (que j'ai trouvée dans l'option "Armed"). getId = function(id) return self:findPartitionId(id) end, Il faut sans doute l'ajouter aussi dans les options "setArmed" et "setDisarmed", mais je te laisse confirmer. En tous cas avec cet ajout ça marche! Je suggère aussi l'ajout de la ligne suivante pour ceux qui comme moi essayent d'utiliser {} pour remplacer une action vide: -- traitement des actions if a and type(a) == "table" and #a == 0 then a = nil end -- AJOUT FELIG if a then if type(a) == "table" and type(a[1]) == "table" then for i = 1, #a do if type(a[i]) == "table" and a[i][1]:lower()=="if" then Modifié le 5 août 2022 par Felig 1
Lazer Posté(e) le 5 août 2022 Auteur Signaler Posté(e) le 5 août 2022 Ah bien joué Effectivement par défaut GEA cherche les noms dans la liste des devices, c'est historique et hérité de GEA sur HC2. J'avais constaté cet effet de bord lors du passage sur HC3, raison pour laquelle j'ai ajouté la possibilité de définir la fonction getId() pour chaque option, notamment pour tout ce qui ne concerne pas les modules (scènes, partitions d'alarmes, profiles, panneau de climat, etc) Et donc le fait que cette fonction ne soit pas définie pour Breached, SetArmed et SetDisarmed est un oubli. Merci pour tes suggestions, j'ajouterai tout ça dans une prochaine mise à jour du code. 1
jojo Posté(e) le 6 octobre 2022 Signaler Posté(e) le 6 octobre 2022 j'ai fait des centaines d'essais, avant de devoir admettre l'impossible : il y aurait un bug ? Voici mon instruction GEA : GEA.add ({"HeatingThermostatSetpoint!", <id_module>, <value>}, 1, "", {"HeatingThermostatSetpoint", id["CHAUF_ECS_THERMOSTAT"],{"VariableQuickApp", id["GESTION_CHAUFFAGE"], "ChECSEco"}}) La condition ne fonctionne pas (avec ou sans ! - je n'ai pas essayé + ou -) et GEA tourne malgré tout comme un charme. L'action fonctionne parfaitement. Peux-tu le confirmer ? Merci
Lazer Posté(e) le 6 octobre 2022 Auteur Signaler Posté(e) le 6 octobre 2022 Hum... je ne peux pas confirmer, je n'ai pas du tout le temps de me replonger dans du LUA en ce moment. Il faudrait analyser les logs détaillés, éventuellement ajouter des traces supplémentaires... Ne peux-tu pas écrire ta règle autrement pour éviter l'usage du comparateur point d'exclamation ?
jojo Posté(e) le 7 octobre 2022 Signaler Posté(e) le 7 octobre 2022 le problème n'est pas au niveau du !, car même sans GEA.add ({"HeatingThermostatSetpoint", <id_module>, <value>}, 1, "", le problème existe également. J'ai trouvé une parade pas propre au problème, donc j'aurai de l'eau chaude cet hiver (je ne dépends pas du gaz ...) J'imaginais bien que tu avais peu de temps pour trouver une solution, mais valider que le problème est bien là (ce ne serait pas la première fois que je fais une stupide erreur) est rapide (créer un QA lié de type thermostat qui allume une lampe). Ainsi je saurais si j'ai déconné ou pas ...
Lazer Posté(e) le 7 octobre 2022 Auteur Signaler Posté(e) le 7 octobre 2022 Sinon en attendant tu peux toujours utiliser {"Property", ID, "heatingThermostatSetpoint", valeur} ce qui est propre. 1 1
jojo Posté(e) le 7 octobre 2022 Signaler Posté(e) le 7 octobre 2022 très bonne idée ! si tu as un/des mots clés sur lesquels je peux chercher dans le code pour essayer de trouver le bug ...
Lazer Posté(e) le 7 octobre 2022 Auteur Signaler Posté(e) le 7 octobre 2022 Dans le fichier main, il faut chercher "HeatingThermostatSetpoint", tu vas tomber sur la section qui gère cette option. 1
jojo Posté(e) le 7 octobre 2022 Signaler Posté(e) le 7 octobre 2022 en fait avec le properties, ce n'était pas aussi simple qu'il n'y paraissait. Je m'explique : J'avais mis mon thermostat à 50 °C, et donc je faisait un test sur la valeur 50 de la property. Or dans le json, il avait 50.0, donc c'était 50.0 (et pas 50) qu'il fallait tester. Et comme je voulais tester que la propriété était <> que la valeur stockée dans une variable d'un QA, j'ai dû rajouter .0 à la valeur de ma variable. Donc ceci fonctionne : GEA.add ({"Property!", id["CHAUF_ECS_THERMOSTAT"], "heatingThermostatSetpoint", {"VariableQuickApp", id["GESTION_CHAUFFAGE"], "ChECSEco"}}, 1*60*60, "", Je vais regarder ce pm si je trouve une erreur simple, mais c'est probablement le .0 qui ?manque ? (à tester)
Lazer Posté(e) le 7 octobre 2022 Auteur Signaler Posté(e) le 7 octobre 2022 Le souci avec la comparaison "!" c'est qu'elle n'est pas numérique, à cause de la variable globale qui est traitée comme une chaine de caractère (string) par la box. Ton artifice de rajouter .0 a l'air de fonctionner, car du coup tostring(50.0) = "50.0" Tandis que tostring(50) <> "50.0"
jojo Posté(e) le 7 octobre 2022 Signaler Posté(e) le 7 octobre 2022 ok, mais j'avais le même soucis sans le ! ...
jojo Posté(e) le 7 octobre 2022 Signaler Posté(e) le 7 octobre 2022 il y a une heure, jojo a dit : mais c'est probablement le .0 qui ?manque ? (à tester) je viens de faire le test avec le .0 ajouté à la variable et ça fonctionne autant avec le ! que sans ... Je pense que ce serait un "problème" général, que si une fonction compare une valeur avec une propriété (autre que "value" ?) numérique, il faudrait voir s'il y a un . dans la propriété, analyser combien de chiffres il y a après le . et modifier, si nécessaire, pour ajouter des .0 (ou .00, ou si la valeur est .5 mais que la propriété attend 2 décimales, mettre .50) à la valeur à comparer. C'est super compliqué à faire, je viens de faire le plus simple ...
Felig Posté(e) le 10 octobre 2022 Signaler Posté(e) le 10 octobre 2022 J'ai pas regardé le code, mais le plus efficace serait de vérifier si les deux valeurs string à comparer ont un format numérique et si c'est le cas, comparer les nombres au lieu de comparer les valeurs string. Un truc du genre: function compare(a, b) if tonumber(a) and tonumber(b) then return tonumber(a) == tonumber(b) else return a == b end end a = "50" b = "50.0" if compare(a,b) then print("equal") else print("different") end 1
Lazer Posté(e) le 10 octobre 2022 Auteur Signaler Posté(e) le 10 octobre 2022 Oui bonne idée, il faudra que je regarde si c'est intégrable facilement (sans remettre en cause les autres conditions... je me méfie des effets de bord) Ou alors il faudrait réfléchir à ajouter un flag permettant de forcer la comparaison numérique (ou à l'inverse, sous forme de chaine de caractère), selon l'effet désiré par l'utilisateur. 1
Lazer Posté(e) le 15 mai 2023 Auteur Signaler Posté(e) le 15 mai 2023 Le 03/07/2022 à 18:47, RS600807 a dit : Bonsoir, Est-ce que quelqu'un rencontre des pb avec la fonction Ask sous GEA? GEA.add(true, 30, "", {{"Ask", 26, "test notif inter", "voulez-vous ouvrir ?", {"Close", 35, 85}}, {"Repeat"}}, "test notification interactive") Je reçois bien le message intercatif. Mais dès que je clique sur le "yes" (j'ai testé aussi avec le "no" au cas où !), je reçois une notif instantanément indiquant : "info: sending action "%@" failed" failed. Je reçois également un email m'indiquant "suspicious login attempt" avec une adresse IP. J'ai vu sur le forum forum.fibaro.com que des personnes ont déjà rencontré ce pb sur des versions antérieures, mais je n'ai pas trouvé de solutions qui résoud le pb... J'ai l'impression qu'il y a comme un filtrage et que la box ne veut pas accepter les messages entrant. Je suis en version 5.111.48 (beta). Je précise que je n'ai aucun soucis avec les notifications push "classiques". J'ai également testé la notification interactive en mode bloc et j'obtiens les mêmes soucis (donc a priori pas un pb lié à GEA) Quelqu'un rencontre-t-il le même pb ? Un bug de la dernière version ? Merci pour vos réponses. Désolé pour le délai de réponse... as-tu réessayé depuis, ça fonctionne, ou bien toujours le bug ? Je viens de tester, et à priori tout est OK. Si tu soupçonne un bug, il faut refaire le test en isolant cette ligne dans ta config, et en activant GEA.debug = true et GEA.lldebug = false dans ta fonction config(), et ensuite partager le log ici.
Messages recommandés