Lazer Posté(e) le 9 mai 2022 Signaler Partager Posté(e) le 9 mai 2022 (modifié) Si ça se trouve, sur HC2 ils ont fait comme sur HC3.... c'est à dire la suppression de la possibilité de rebooter la box via le code LUA. Je n'ai plus d'HC2, donc je ne pourrai pas investiguer d'avantage. Modifié le 9 mai 2022 par Lazer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Jacquominot Posté(e) le 10 mai 2022 Signaler Partager Posté(e) le 10 mai 2022 Slt Lazer, Pas de soucis, Mon GEA a planté aujourd'hui donc je vais pouvoir être plus précis. En fait, de manière aléatoire, c'est à dire parfois au bout de plusieurs jours et parfois au bout d'une heure, mon GEA plante et toujours avec la même erreur : [DEBUG] 02:04:28: 2022-05-10 02:04:28.152671 [ error] API: Host not found (authoritative) [DEBUG] 02:04:28: ... vérification en cours #529 @15870s... [DEBUG] 02:04:28: 2022-05-10 02:04:28.154409 [ error] timer handler failed with error: /opt/fibaro/scenes/43.lua:716: attempt to index field 'globalvalue' (a nil value) et la ligne 716 chez moi ramène à la fonction : restarttask = {name="RestartTask", getValue=function(taskid) return GEA.globalvalue:find("|R_" .. taskid.."|") end, action=function(taskid) if (type(taskid) ~= "table") then taskid = {taskid} end for i=1, #taskid do if (taskid[i]=="self") then taskid[i]=GEA.currentEntry.id end GEA.globalvalue = GEA.globalvalue:gsub("|R_" .. taskid[i].."|", ""):gsub("|M_" .. taskid[i] .. "{(%d+)}|", ""):gsub("|S_" .. taskid[i].."|", "") .. "|R_" .. taskid[i].."|" end end et plus précisément le getValue : getValue=function(taskid) return GEA.globalvalue:find("|R_" .. taskid.."|") end, Du coup, pour essayer de feinter le problème, j'ai mis des tâches pour reboot la HC2 toutes les 2h parce que sinon tout plante et toute ma programmation chauffage s'arrête. Autant vous dire que ça été particulièrement galère cet hiver. J'en appelle donc à une âme charitable car mon code n'a pas changé depuis des années et cette satané v4 qui m'a tout cassée... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Lazer Posté(e) le 10 mai 2022 Signaler Partager Posté(e) le 10 mai 2022 Il faudrait prier très fort que @Steven passe par ici pour se pencher sur ton problème, c'est le seul qui maitrise le code GEA sur HC2. Mais ta remarque est étrange, la v4 elle est vieille maintenant, et elle fonctionne super bien avec GEA, j'ai fonctionné ainsi pendant des années, sans rencontrer de plantages de GEA. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Jacquominot Posté(e) le 10 mai 2022 Signaler Partager Posté(e) le 10 mai 2022 Oui, je sais, c'est très bizarre. Sinon, il me reste la solution de repartir d'une version vierge de GEA et de rajouter mes appels de fonction 1 par 1 JE peux tenter le coup au point ou j'en suis et si Steven passe hé bien tant mieux pour moi Lien vers le commentaire Partager sur d’autres sites More sharing options...
Jacquominot Posté(e) le 10 mai 2022 Signaler Partager Posté(e) le 10 mai 2022 Arf, je viens de trouver dis donc. J'ai créé une nouvelle scène avec rien dedans à part : -- Début de journée, on vérifie si on est en vacances aujourd'hui GEA.add( {"Time", "00:02", "00:04"}, 30, "", {"VirtualDevice", 259, 1} ) -- === Chauffage Sèche Serviette Parents === -- GEA.add( {{"Days", "Monday,Tuesday,Wednesday,Thursday,Friday"},{"Time", "05:30", "05:32"}}, 30, "", {"turnOn", id["SECHE_SERVIETTE_RDC"]} ) -- Eteindre après 1heure 10 minutes GEA.add(id["SECHE_SERVIETTE_RDC"], 1*70*60, "", {{"turnOff"}}) et ca plante immédiatement toujours sur la même fonction. Et je viens de remarquer que dans le code, il y a une coquille : au tout début, il est écrit : GEA.checkEvery = 30 GEA.portables = {256} GEA.globalvariables = "GEA_Tasks6" GEA.language = "fr" Hors la variable globale qui est créée par la suite est GEA_Tasks (miss click sur le 6) En relançant en tirant le 6 ça a l'air de passer et en fait, en regardant dans les vieilles versions de GEA, je crois que l'erreur est arrivée entre la 6.05 et la 6.10 car je la vois également dans mon 6.10. Je relance donc tout avec la correction pour voir si c'est bien cela. D'ici demain soir j'en aurais le coeur net Lien vers le commentaire Partager sur d’autres sites More sharing options...
Jacquominot Posté(e) le 11 mai 2022 Signaler Partager Posté(e) le 11 mai 2022 Perdu, j'ai encore eu l'erreur cette nuit. Tjs la même : [DEBUG] 02:05:33: 2022-05-11 02:05:33.327566 [ error] API: Host not found (authoritative) [DEBUG] 02:05:33: ... vérification en cours #576 @17280s... [DEBUG] 02:05:33: 2022-05-11 02:05:33.329407 [ error] timer handler failed with error: /opt/fibaro/scenes/43.lua:716: attempt to index field 'globalvalue' (a nil value) et c'est cette fonction restarttask qui m'embête mais je ne sais pas d'où se fait l'appel Lien vers le commentaire Partager sur d’autres sites More sharing options...
971jmd Posté(e) le 18 mai 2022 Signaler Partager Posté(e) le 18 mai 2022 (modifié) Salut à tous comment interprétée le code suivant : GEA.add({"Sensor-" , id["FRIGO"], 10}, 20*60, "PANNE CONGELO" , {... si la consommation est inférieur à 10 durant 20mm. ou. si la consommation est inférieur à 10 dans 20mm Je souhaite réaliser un code qui surveille la consommation d'un congélateur Si mon congélateur n'a pas consommé 10 W dans les 20 minutes alors ..... merci de votre aide Modifié le 18 mai 2022 par 971jmd Lien vers le commentaire Partager sur d’autres sites More sharing options...
flamalex Posté(e) le 18 mai 2022 Signaler Partager Posté(e) le 18 mai 2022 Il y a 2 heures, 971jmd a dit : Salut à tous comment interprétée le code suivant : GEA.add({"Sensor-" , id["FRIGO"], 10}, 20*60, "PANNE CONGELO" , {... si la consommation est inférieur à 10 durant 20mm. ou. si la consommation est inférieur à 10 dans 20mm Je souhaite réaliser un code qui surveille la consommation d'un congélateur Si mon congélateur n'a pas consommé 10 W dans les 20 minutes alors ..... merci de votre aide Bonjour, sauf erreur, durant = depuis donc, « Si mon congélateur n'a pas consommé 10 W depuis 20 minutes alors ..... » 1 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Jacquominot Posté(e) le 18 mai 2022 Signaler Partager Posté(e) le 18 mai 2022 Slt Jmd, à l'époque, j'avais mis : -- on le désactive si conso à moins de 40W depuis 5 minutes --GEA.add ({{"Sensor-", id["SECHE_LINGE"], 40}, id["SECHE_LINGE"]}, 5*60, "", {{"turnOff", id["SECHE_LINGE"]}}) ca doit répondre à ton besoin 1 Lien vers le commentaire Partager sur d’autres sites More sharing options...
971jmd Posté(e) le 20 mai 2022 Signaler Partager Posté(e) le 20 mai 2022 Merci à vous je vais essayer Lien vers le commentaire Partager sur d’autres sites More sharing options...
cseb62 Posté(e) le 25 mai 2022 Signaler Partager Posté(e) le 25 mai 2022 (modifié) Bonjour, je souhaite déclencher des extracteurs d'air 15 min toutes les heures. j'avais déjà posté cette demande et il me semble que cela fonctionnait.....mais plus à l'heure actuelle .... Citation ------ ventilation cave GEA.add(true, 60*60, "", {"Repeat"}, {"TurnOn", 163, 15*60}) GEA.add(true, 60*60, "", {"Repeat"}, {"TurnOn", 165, 15*60}) merci d'avance pour votre aide. Modifié le 25 mai 2022 par cseb62 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Lazer Posté(e) le 25 mai 2022 Signaler Partager Posté(e) le 25 mai 2022 Il faut que tu entoures les 2 actions par des accolades. Lien vers le commentaire Partager sur d’autres sites More sharing options...
cseb62 Posté(e) le 25 mai 2022 Signaler Partager Posté(e) le 25 mai 2022 Il y a 2 heures, Lazer a dit : Il faut que tu entoures les 2 actions par des accolades. Comme cela ? Citation ------ ventilation cave GEA.add(true, 60*60, "", {{"Repeat"}, {"TurnOn", 163, 15*60}}) GEA.add(true, 60*60, "", {{"Repeat"}, {"TurnOn", 165, 15*60}}) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Lazer Posté(e) le 25 mai 2022 Signaler Partager Posté(e) le 25 mai 2022 Oui ça m'a l'air bon. Lien vers le commentaire Partager sur d’autres sites More sharing options...
cseb62 Posté(e) le 26 mai 2022 Signaler Partager Posté(e) le 26 mai 2022 Il y a 11 heures, Lazer a dit : Oui ça m'a l'air bon. Merci cela fonctionne ;-) Lien vers le commentaire Partager sur d’autres sites More sharing options...
jojo Posté(e) le 30 mai 2022 Signaler Partager Posté(e) le 30 mai 2022 Bonjour, D'après la doc de GEA 7.x il y a -- "httpGet" : Exécute une requête HTTP mais ça ne fonctionne pas (enfin, je n'ai pas réussi) pour des requêtes https. Notmal ? Y a-t-il un truc ? Merci et bon pm Lien vers le commentaire Partager sur d’autres sites More sharing options...
Lazer Posté(e) le 30 mai 2022 Signaler Partager Posté(e) le 30 mai 2022 (modifié) il y a 5 minutes, jojo a dit : ça ne fonctionne pas comment te dire poliment.... ? les logs, tout ça... merci EDIT : GEA.debug = true GEA.lldebug = true Avec ça on est bon Modifié le 30 mai 2022 par Lazer Lien vers le commentaire Partager sur d’autres sites More sharing options...
jojo Posté(e) le 1 juin 2022 Signaler Partager Posté(e) le 1 juin 2022 sorry pour la réponse tardive, je n'ai pas eu de notif de ta réponse. Je venais pour supprimer mon post car ça fonctionne, sauf (validé après des 10zaines d'essais) quand j'ai un H (majuscule, pas minuscule) dans mon paramètre value1. C'est tellement étrange/spécifique qu'on oublie, bien que quand j'entre la même url dans mon browser, c'est ok. Je GEA démarre bien automatiquement, mais l'instruction ne fait juste rien ... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Lazer Posté(e) le 1 juin 2022 Signaler Partager Posté(e) le 1 juin 2022 Ah, je pense que le navigateur fait automatiquement la correction de casse, ce que je ne fait pas la HC3. Avec le GEA.debug = true tu aurais vu le code de retour http, le message de retour ou d'erreur, etc, bref de quoi diagnostiquer. Comme on en discutait sur l'autre topic, il faut user et abuser de ce paramètre de debug, c'est fait pour, ça date de GEA sur HC2 et Steven pensait à tout Lien vers le commentaire Partager sur d’autres sites More sharing options...
jojo Posté(e) le 3 juin 2022 Signaler Partager Posté(e) le 3 juin 2022 Le 30/05/2022 à 13:53, Lazer a dit : comment te dire poliment.... ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
jojo Posté(e) le 20 juin 2022 Signaler Partager Posté(e) le 20 juin 2022 bonjour, La question a probablement déjà été posée, mais je n'ai pas le courage de parcourir les >450 pages du topic ... Je souhaite comparer la valeur de 2 modules (plus précisément si module1>module2, alors valeur module2 = valeur module1) Mais la fonction GEA GEA.add( {"Value+", 73, 50} compare la valeur du module 73 à la valeur fixe 50. Avez-vous une astuce ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
jojo Posté(e) le 20 juin 2022 Signaler Partager Posté(e) le 20 juin 2022 bon, du coup j'ai trouvé une manière de contourner le problème. J'utilise ceci GEA.add ({"Value!", id["PISCINE_TMP"], 0}, 0, '', {"QuickApp", id["GESTIONPISCINE"], "TmpLast"}) à chaque changement (ok, au prochain cycle) de "PISCINE_TMP" j'appelle un QA qui fera la comparaison.... Ca devrait fonctionner, mais j'aurais aimé rester 100% GEA ... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Lazer Posté(e) le 20 juin 2022 Signaler Partager Posté(e) le 20 juin 2022 (modifié) Je crois que c'est possible en imbriquant les "Value". Un truc dans le genre : GEA.add( {"Value+", id["1er_module"], {"Value", id["2nd_module"]}}, ... A tester... EDIT : autrement si ça ne fonctionne pas, et plutôt que de passer par un QA externe, tu devrais pouvoir y arriver en pur GEA avec 2 autres méthodes : "VariableCache" "Function" EDIT 2 : Non testé, mais ça devrait fonctionner ainsi avec "Function" : GEA.add({"Function", function(a, b) return a > b end, {"Value", id["1er_module"]}, {"Value", id["2nd_module"]}}, ... Pour VariableCache, il faudra faire en 2 lignes : 1 première règle qui met la valeur du 1er module dans la variable en cache, et la seconde règle pour la comparaison entre le 2nd module et la variable en cache. Mais si ça fonctionne avec les "Value" imbriqués, c'est le plus simple. Modifié le 20 juin 2022 par Lazer Lien vers le commentaire Partager sur d’autres sites More sharing options...
jojo Posté(e) le 20 juin 2022 Signaler Partager Posté(e) le 20 juin 2022 merci, je vais essayer et dirai quoi. Ceci dit, je souhaite finaliser mon idée initiale car je risque d'avoir besoins de cela plus tard. J'ai donc une question très basique : Comment mettre à jour la valeur (ici la température) d'un module AUTRE que celui où tourne le QA. J'ai bien trouvé ceci self:updateProperty("value", value) mais ça ne fonctionne que pour le module lui-même (self:). Je souhaiterais remplacer self: par l'id d'un module ... Basique non ? (et comme mon copain Google n'a pas voulu me donner la réponse, je la pose ici) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Lazer Posté(e) le 20 juin 2022 Signaler Partager Posté(e) le 20 juin 2022 Et bien justement en appelant la fonction updateProperty. N'oublie pas que toutes les fonctions des QuickApps sont automatiquement exportées, donc on peut les appeler de partout. C'est très pratique et très simple au final. En LUA : fibaro.call(id, "updateProperty", "value", 123) Et on peut modifier ainsi les autres propriétés que "value", par exemple "power", "energy", "batteryLevel", etc... Note que hub.call() c'est le nouveau nom officiel à utiliser depuis le dernier firmware stable, même si Fibaro a annoncé qu'ils allaient conserver la rétro-compatibilité avec toutes les fonctions fibaro.* Via l'API : /api/callAction?deviceID=123&name=updateProperty&arg1=value&arg2=123 1 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés