jorderic Posté(e) le 18 mars 2015 Signaler Posté(e) le 18 mars 2015 @pepite: j'ai mis à jour en 5.32 et la tadam, ce code foncitionne: GEA.add({"Value+", id["CO2_SALON"], 900}, 30*60, "", {{"Global", "Karotz", "Le taux de CO2 est trop élevé il faut aérer"}, {"VirtualDevice", id["VD_KAROTZ"],"1"}}) Me reste plus qu'à trouver pour mettre les leds du lapin rouge!! Merci à tous
Fredric Posté(e) le 19 mars 2015 Signaler Posté(e) le 19 mars 2015 (modifié) bonjour à toute et à tous, j'ai un souci avec le JEUDI, j'ai bien mis à jour en 5.32 et les autres lignes qui ne comportent ALL fonctionnent. voici une ligne de code qui fonctionne pas. GEA.add(true, 30, "", {{"Scenario", 70},{"Time", "09:25", "09:26"},{"Days", "Monday","Tuesday","Wednesday","Thursday"}}) le debug me dit: [ Toujours ] !CANCEL! CheckTimes : Aujourd'hui Thursday n'est pas inclus dans (ID:38) [scenario,70] [Time,09:25,9:26] [Days,Monday,Tuesday,Wednesday,Thursday] toutes les lignes qui comportent Thursday me retourne ce message et ne fonctionnent pas. avez vous une idée du problème ? Modifié le 19 mars 2015 par Fredric
Sebbrunie1 Posté(e) le 19 mars 2015 Signaler Posté(e) le 19 mars 2015 Bonjour, je suis étonnée car mes icones dans les VD ne se change pas lorsque cette action s'execute: GEA.add({{"Global", "Moisdujour", "03"}}, 24*60*2*30, "" , {{"Global", "Saison1", "Printemps"}, {"CurrentIcon", 274, 1056}}) Merci d'avance Sébastien
Did Posté(e) le 19 mars 2015 Signaler Posté(e) le 19 mars 2015 @Fredric, C'est carfmann qui avait soulevé le problème avec le jeudi et cela venait dans les lignes de GEA d'un "Thursdays" avec un "s" en trop: J'ai trouvé! if (string.find(jours, "Lu") or string.find(jours, "Mo")) then days = days .. "Monday" end if (string.find(jours, "Ma") or string.find(jours, "Tu")) then days = days .. "Tuesday" end if (string.find(jours, "Me") or string.find(jours, "We")) then days = days .. "Wednesday" end if (string.find(jours, "Je") or string.find(jours, "Th")) then days = days .. "Thurdays" end if (string.find(jours, "Ve") or string.find(jours, "Fr")) then days = days .. "Friday" end if (string.find(jours, "Sa") or string.find(jours, "Sa")) then days = days .. "Saturday" end if (string.find(jours, "Di") or string.find(jours, "Su")) then days = days .. "Sunday" end point commun entre mon test à 1h24 du mat et celui de ce soir... ... allez regarder bien... ... ... ... ... nous sommes Jeudi ... ... ... et le jeudi en Anglais? ... ... thursday et non pas thurdays je suppose que personne n'a testé le Jeudi??? Le problème a été corrigé par sebcbien avec une version Github en 5.32 (dans sa signature).
Did Posté(e) le 19 mars 2015 Signaler Posté(e) le 19 mars 2015 Version que je n'arrive pas à récupérer, je ne peux pas faire le copier/coller car beaucoup trop long et ça rame. Existe-t'il un fichier txt de la v5.32?
Fredric Posté(e) le 19 mars 2015 Signaler Posté(e) le 19 mars 2015 merci, @Did, mais justement, je précise que j'ai mis àjour en 5.32 par le lien de @Sebcbien et que le problème est présent.
Fredric Posté(e) le 19 mars 2015 Signaler Posté(e) le 19 mars 2015 if (string.find(jours, "Lu") or string.find(jours, "Mo")) then days = days .. "Monday" end if (string.find(jours, "Ma") or string.find(jours, "Tu")) then days = days .. "Tuesday" end if (string.find(jours, "Me") or string.find(jours, "We")) then days = days .. "Wednesday" end if (string.find(jours, "Je") or string.find(jours, "Th")) then days = days .. "thursday" end if (string.find(jours, "Ve") or string.find(jours, "Fr")) then days = days .. "Friday" end if (string.find(jours, "Sa") or string.find(jours, "Sa")) then days = days .. "Saturday" end if (string.find(jours, "Di") or string.find(jours, "Su")) then days = days .. "Sunday" end il y a pas une importance que le premiere lettre soit en majuscule, parce que dans le 5.32, elle est en mini "thursday"
HANSOLO Posté(e) le 19 mars 2015 Signaler Posté(e) le 19 mars 2015 il y a des chances... A l'origine c'était Thurday avec le T en majuscule et le s qui manquait
Fredric Posté(e) le 19 mars 2015 Signaler Posté(e) le 19 mars 2015 j'ai modifier, mais cela fonctionne quand même pas ...
Steven Posté(e) le 19 mars 2015 Auteur Signaler Posté(e) le 19 mars 2015 @Fredric C'est quoi cette syntaxe bizarre :-) Voici la bonne syntaxe : GEA.add(true, 30, "", {{"Scenario", 70},{"Time", "09:25", "09:26"},{"Days", "Monday,Tuesday,Wednesday,Thursday"}}) Les jours sont tous dans entre les mêmes guillemets.
Did Posté(e) le 19 mars 2015 Signaler Posté(e) le 19 mars 2015 Ah pardon Fredric, j'avais déjà oublier le début de ton message (il ne faut pas faire plusieurs chose en même temps). J'avais bien vu le "s" en trop à la fin mais pas l'autre au milieu donc j'ai modifié direct dans le GEA et l'alarme fonctionne bien le jeudi.
Fredric Posté(e) le 19 mars 2015 Signaler Posté(e) le 19 mars 2015 oh, purée, le copier/collé est mon ennemi!! devine d'ou ça vient, je transfert Scheduler vers GEA désolé, je passé dessus depuis ce matin,sans même le voir!! Merci @Steven , comme d'hab , on va pouvoir te béatifier tellement que tu es un saint pour nous est donc, pas d'importance avec le "t"en majuscule ou pas... 1
pepite Posté(e) le 19 mars 2015 Signaler Posté(e) le 19 mars 2015 devancé par steven, j'allais lui dire ;-) @sebbrunie : heuuu la bonne question, sur des ID ? as tu essaye en ecrivant le code lua dans le bouton du VD ?
Fredric Posté(e) le 19 mars 2015 Signaler Posté(e) le 19 mars 2015 forcement, ça fonctionne beaucoup mieux comme ça
Sebbrunie1 Posté(e) le 19 mars 2015 Signaler Posté(e) le 19 mars 2015 ben j'en ai d'autre et ca marche, mais dès que je le fais sur GEA, ca marche pas.... Il n'y a pas de "" àmettre sur les chiffres?
pepite Posté(e) le 19 mars 2015 Signaler Posté(e) le 19 mars 2015 @sebbrunie je crois que Stven avait ecrit dans les pages précedentes que CurrentIcon lui causait des soucis, mais ca concernait la version 5.00 de GEA. Je t'avoue que je n'ai aps trop suivi ou surtout je ne me souviens pas lol des suites de ce sujet hihi Essaie avec des guillemets peut-etre, tu as quoi dans le debug concernant cette ligne ? ta syntaxe a l'air correcte ;-)
Steven Posté(e) le 19 mars 2015 Auteur Signaler Posté(e) le 19 mars 2015 @Steven Salut, En remplaçant "GEA.match" par "string.match", mes règles avec les variables globales se sont mises à fonctionner bizarrement. ... En faisant ces modifications dans le code GEA, je n'est plus de dysfonctionnement. Qu'en penses tu ? J'avais fait mon analyse au plus simple et au moins consommateur de temps .. je l'avoue. Tu as 100% raison et j'approuve ta modification ... comme d'habitude d'ailleurs.
atalata Posté(e) le 19 mars 2015 Signaler Posté(e) le 19 mars 2015 Bonjour Steven Tout d'abord félicitation pour le code, je viens d'acquérir une box HC2 depuis qqs jours , je décrouvre donc LUA ! J'ai rajouté ces deux lignes de code dans ton script: elseif (type(id) == "table" and string.lower(id[1]) == "property+") then return "Property [" .. id[2].."|"..id[3].. "] > " ..id[4], GEA.getRoom(tonumber(id[2])) elseif (type(id) == "table" and string.lower(id[1]) == "property-") then return "Property [" .. id[2].."|"..id[3].. "] < " ..id[4], GEA.getRoom(tonumber(id[2])) car j'ai besoin de savoir si une prise consomme moins de x watts depuis une certaine durée pour pouvoir déclencher une action, et le seul moyen que j'ai trouvé est de tester la property power de la prise (dans mon cas mon lave linge consomme même arrêté ! bon 0.5W mais ca serait bête de pas profiter de la domotique pour couper la prise entièrement dans ce cas là . Ca serait cool que ce soit intégré à une prochaine version pour que je n'ai pas à le remettre à chaque fois à la main. Par avance merci
Steven Posté(e) le 19 mars 2015 Auteur Signaler Posté(e) le 19 mars 2015 Bonjour, je suis étonnée car mes icones dans les VD ne se change pas lorsque cette action s'execute: GEA.add({{"Global", "Moisdujour", "03"}}, 24*60*2*30, "" , {{"Global", "Saison1", "Printemps"}, {"CurrentIcon", 274, 1056}}) Merci d'avance Sébastien Le code de GEA est celui-ci : fibaro:call(<ID>, "setProperty", "currentIcon", tostring(<ICON>) ) donc on s'enfiche des guillemets englobant le 1056. Pepite à raison mais j'avais corrigé cela il y a quelque version en arrière. Par contre ... il faut être 100% sà»r du numéro de l'icone (il a pus changer lors d'une mise à jour) et du VD.
Steven Posté(e) le 19 mars 2015 Auteur Signaler Posté(e) le 19 mars 2015 (modifié) Bonjour Steven Tout d'abord félicitation pour le code, je viens d'acquérir une box HC2 depuis qqs jours , je décrouvre donc LUA ! J'ai rajouté ces deux lignes de code dans ton script: elseif (type(id) == "table" and string.lower(id[1]) == "property+") then return "Property [" .. id[2].."|"..id[3].. "] > " ..id[4], GEA.getRoom(tonumber(id[2])) elseif (type(id) == "table" and string.lower(id[1]) == "property-") then return "Property [" .. id[2].."|"..id[3].. "] < " ..id[4], GEA.getRoom(tonumber(id[2])) car j'ai besoin de savoir si une prise consomme moins de x watts depuis une certaine durée pour pouvoir déclencher une action, et le seul moyen que j'ai trouvé est de tester la property power de la prise (dans mon cas mon lave linge consomme même arrêté ! bon 0.5W mais ca serait bête de pas profiter de la domotique pour couper la prise entièrement dans ce cas là . Ca serait cool que ce soit intégré à une prochaine version pour que je n'ai pas à le remettre à chaque fois à la main. Par avance merci Dans ton cas, j'aurais utilisé le GEA.add ({"Sensor+", ...}, .........) ou GEA.add ({"Sensor-", ...}, .........) Je ne peux plus modifier GEA pour l'instant* mais libre à toi de modifier la version GitHub disponible ICI. * GEA étant devenu une usine à gaz et à pétrole ... et à charbon, je suis entrain de tester une nouvelle façon d'écrire le code pour une plus grand maintenabilité. Edit : suppression de la fin du message qui n'avait juste rien à voir et résultait d'un coller malheureux. Modifié le 19 mars 2015 par Steven
Bugsissimo Posté(e) le 19 mars 2015 Signaler Posté(e) le 19 mars 2015 @atalata Comme dit Steven une ligne du style: GEA.add({"Sensor-", id["LAVE_LINGE"], 10}, 10*60, "", {{"turnOff", id["LAVE_LINGE"]}, {"Repeat"}}) devrait fonctionner si il consomme moins de 10W pendant 10mn. C'est ce que j'utilise pour vérifier le fonctionnement de mon chauffe-eau.
Steven Posté(e) le 19 mars 2015 Auteur Signaler Posté(e) le 19 mars 2015 J'ai pire ... j'ai donc gagné Si le lave-linge consomme moins de 1.0W (éteint), je coupe la prise. Variable = OFF Si sa consommation est supérieure à 3.0W (en fonctionnement), Variable = RUNNING Si sa consommation est entre 1.0 et 2.5 et que la variable = RUNNING alors Variable = Waiting ... Il ne consomme plus donc est terminé Si la variable est Waiting plus de 30mn alors je rappel qu'il faut ce bouger les fesses. -- === Lave-Linge == -- GEA.add({"Global", "Lave-Linge", "WAITING"}, 30*60, "Le lave-linge est arrêté depuis #duration#", {{"Global", "Karotz", "Le lave-linge est arrêté depuis #durationfull#"},{"VirtualDevice", id["OPENKAROTZ"],"1"},{"Repeat"}}) GEA.add({"Sensor-", id["LAVE_LINGE"], 1.5}, 2*60, "", {{"turnOff"}, {"Global", "Lave-Linge", "OFF"}}) GEA.add({"Sensor+", id["LAVE_LINGE"], 3}, 2*60, "", {{"Global", "Lave-Linge", "RUNNING"}}) GEA.add({{"Sensor+", id["LAVE_LINGE"], 1},{"Sensor-", id["LAVE_LINGE"], 2.5}, {"Global", "Lave-Linge", "RUNNING"}}, 5*60, "", {{"Global", "Lave-Linge", "WAITING"}})
Steven Posté(e) le 19 mars 2015 Auteur Signaler Posté(e) le 19 mars 2015 J'ai oublié de préciser Sensor va vérifier la propriété valueSensor (si tu es en 3.x) ou power (si tu es en 4.x) Si Sensor n'est pas clair pour toi ET que tu es en 4.x, tu peux remplacer GEA.add( {"Sensor-", .....}) par GEA.add( {"Power-", .....}) mais c'est exactement la même chose pour GEA.
Shyrka973 Posté(e) le 19 mars 2015 Signaler Posté(e) le 19 mars 2015 Bonjour à tous, J'ai ajouté ces quelques fonctions à GEA: StopScenario, EnableScenario et DisableScenario. Voici le code à insérer dans la fonction "GEA.sendActions": elseif (type(entry[GEA.keys["PARAMS"]][i]) == "table" and string.lower(entry[GEA.keys["PARAMS"]][i][1]) == "stopscenario" and #entry[GEA.keys["PARAMS"]][i] > 1) then if (fibaro:countScenes(entry[GEA.keys["PARAMS"]][i][2])) then fibaro:killScene(entry[GEA.keys["PARAMS"]][i][2]) GEA.log("sendActions", entry, "!ACTION! : Stop Scene " .. entry[GEA.keys["PARAMS"]][i][2], true) else GEA.log("sendActions", entry, "!ACTION! : No Stop Scene " .. entry[GEA.keys["PARAMS"]][i][2], true) end elseif (type(entry[GEA.keys["PARAMS"]][i]) == "table" and string.lower(entry[GEA.keys["PARAMS"]][i][1]) == "enablescenario" and #entry[GEA.keys["PARAMS"]][i] > 1) then fibaro:setSceneEnabled(entry[GEA.keys["PARAMS"]][i][2], true) GEA.log("sendActions", entry, "!ACTION! : Scene enabled " .. entry[GEA.keys["PARAMS"]][i][2], true) elseif (type(entry[GEA.keys["PARAMS"]][i]) == "table" and string.lower(entry[GEA.keys["PARAMS"]][i][1]) == "disablescenario" and #entry[GEA.keys["PARAMS"]][i] > 1) then fibaro:setSceneEnabled(entry[GEA.keys["PARAMS"]][i][2], false) GEA.log("sendActions", entry, "!ACTION! : Scene disabled " .. entry[GEA.keys["PARAMS"]][i][2], true) Et ceci à mettre en fin de script GEA: -- {"StopScenario", <id>} -- {"StopScenario", 2} -- Arrête le scénario avec l'identifiant 2 // Stop the scene XXX-- {"EnableScenario", <id>} -- {"EnableScenario", 2} -- Active le scénario avec l'identifiant 2 // Enable the scene XXX -- {"DisableScenario", <id>} -- {"DisableScenario", 2} -- Désactive le scénario avec l'identifiant 2 // Disable the scene XXX 1
Steven Posté(e) le 19 mars 2015 Auteur Signaler Posté(e) le 19 mars 2015 @Shyrka973Je suis entrain de reécrire GEA pour simplifier justement ce type de maintenance/évolution.L'idée est de faire un tableau regroupant les fonctions afin de ne pas/plus aller changer les IF dans le code. Le tableau serait décrit ainsi : _stopscenario = { "name" = function(id) return "StopScene! : " ..id[2], "" end, "action" = function(id, entry) if (fibaro:countScenes(entry[GEA.keys["PARAMS"]][i][2])) then fibaro:killScene(entry[GEA.keys["PARAMS"]][i][2]) return true else return false end end }, _enablescenario = { "name" = function(id) return "EnableScene! : " ..id[2], "" end, "action" = function(id, entry) fibaro:setSceneEnabled(entry[GEA.keys["PARAMS"]][i][2], true) return true end } _disablescenario= { "name" = function(id) return "DisableScene! : " ..id[2], "" end, "action" = function(id, entry) fibaro:setSceneEnabled(entry[GEA.keys["PARAMS"]][i][2], false) return true end } Si tu fais GEA.add({"StopScenario", 2}, ......) GEA va automatiquement cherché _stopscenario["name"] pour afficher dans le debug et _stopscenario["action"] lorsqu'il doit lancé une action (sendAction). Ainsi, il suffit juste d'ajouter une entrée de ce tableau on on a plus besoin de modifier le code inbuvable du dessous. Il y donc ceci (exemple avec {"Global", variable, valeur}) _global["condition"] qui correspond à GEA.isActivate() .. retour vrai ou faux si la variable globale a la bonne valeur _global["name"] qui correspond à GEA.getName() ... retour le nom affiché dans le debug _global["action"] qui correspond à GEA.sendActions() ... effectue l'action souhaitée setGlobal() dans ce cas. Que penses-tu de cette idée ? 2
Messages recommandés