Aller au contenu

jojo

Membres confirmés
  • Compteur de contenus

    14 555
  • Inscription

  • Dernière visite

  • Jours gagnés

    186

Tout ce qui a été posté par jojo

  1. mais alors il ne faut pas seulement des panneaux pour produire (en journée - quand tu ne charges pas ta voiture) mais également un système de stockage (batteries, eau chaude, ... => rendement ???) pour charger ta voiture la nuit ... donc gratuit ???
  2. paramètre 164 du fgs*224 : Lock simultaneous switching of Q1 and Q2 outputs
  3. jojo

    Support Gea

    où souhaites-tu continuer la discussion puisque c'est un bug suspecté ? ici ou ?
  4. jojo

    Support Gea

    comment cela peut-il fonctionner ? d'après la doc : -- "Value" : Teste/modifie la valeur d'un module -- SYNTAXE : {"Value" , <id module>, <valeur>} -- CONDITIONS : GEA.add( {"Value" , 73, 50}, 30, "", {ACTIONS} ) -- Si la valeur du module 73 est égale à 50 \\ If value of device 73 is equal to 50
  5. jojo

    Support Gea

    ce que j'ai compris de @Lazer, c'est ceci (je ne peux pas tester) GEA.add(id["BAL"],30, "Courrier reçu")
  6. jojo

    Support Gea

    l'idée est bonne mais erreurS de { c'est ceci qu'il faut GEA.add({{"Time", "08:00", "22:00"}, {"Value-", id["temp_ext"], 20}}, 30, "Température < 20° J'ouvre les Volets", {"Open", id["Volets"]})
  7. jojo

    Support Gea

    ou bien je ne suis pas bon en Français, mais être devin, n'est-ce pas le propre des dieux ? J'ai donc mis une alarme à 18h29 , j'ai mis en commentaire toutes les autres règles GEA (pour avoir un log lisible) [04.07.2022] [18:28:18] [DEBUG] [QA_GEA_167]: ... check running #16 @480s... [04.07.2022] [18:28:19] [DEBUG] [QA_GEA_167]: @480s [Validation] #5 : ["Alarm",[254,1]] => ["TurnOn",[233]] *repeat* [04.07.2022] [18:28:19] [DEBUG] [QA_GEA_167]: @480s [Validation] #6 : ["Alarm",[254,2]] => ["TurnOff",[233]] *repeat* [04.07.2022] [18:28:48] [DEBUG] [QA_GEA_167]: ... check running #17 @510s... [04.07.2022] [18:28:48] [DEBUG] [QA_GEA_167]: @510s [Validation] #5 : ["Alarm",[254,1]] => ["TurnOn",[233]] *repeat* [04.07.2022] [18:28:48] [DEBUG] [QA_GEA_167]: @510s [Validation] #6 : ["Alarm",[254,2]] => ["TurnOff",[233]] *repeat* [04.07.2022] [18:29:18] [DEBUG] [QA_GEA_167]: ... check running #18 @540s... [04.07.2022] [18:29:18] [DEBUG] [QA_GEA_167]: @540s [Validation] #5 : ["Alarm",[254,1]] => ["TurnOn",[233]] *repeat* [04.07.2022] [18:29:18] [DEBUG] [QA_GEA_167]: @540s [Validation] #6 : ["Alarm",[254,2]] => ["TurnOff",[233]] *repeat* [04.07.2022] [18:29:48] [DEBUG] [QA_GEA_167]: ... check running #19 @570s... [04.07.2022] [18:29:48] [DEBUG] [QA_GEA_167]: @570s [Validation] #5 : ["Alarm",[254,1]] => ["TurnOn",[233]] *repeat* [04.07.2022] [18:29:48] [DEBUG] [QA_GEA_167]: @570s [Validation] #6 : ["Alarm",[254,2]] => ["TurnOff",[233]] *repeat* [04.07.2022] [18:30:18] [DEBUG] [QA_GEA_167]: GEA run since 10m - Memory used: 937.34 KB - CPU consumed: 552.18 ms ( 0.046 % ) [04.07.2022] [18:30:18] [DEBUG] [QA_GEA_167]: ... check running #20 @600s... [04.07.2022] [18:30:18] [DEBUG] [QA_GEA_167]: @600s [Validation] #5 : ["Alarm",[254,1]] => ["TurnOn",[233]] *repeat* [04.07.2022] [18:30:18] [DEBUG] [QA_GEA_167]: @600s [Validation] #6 : ["Alarm",[254,2]] => ["TurnOff",[233]] *repeat* [04.07.2022] [18:30:48] [DEBUG] [QA_GEA_167]: ... check running #21 @630s... [04.07.2022] [18:30:48] [DEBUG] [QA_GEA_167]: @630s [Validation] #5 : ["Alarm",[254,1]] => ["TurnOn",[233]] *repeat* [04.07.2022] [18:30:48] [DEBUG] [QA_GEA_167]: @630s [Validation] #6 : ["Alarm",[254,2]] => ["TurnOff",[233]] *repeat* pour rappel voici mon GEA function setEvents() -- ========================================================== -- Règles utilisateur -- ========================================================== -- IDs générés le : 01/07/22 à 19:47:16 local id = { ... --Piscine PISCINE_CHAUFFAGE = 234, PISCINE_TMP = 232, PISCINE_TMPSEUIL = 230, PISCINE_TMPLAST = 231, PISCINE_THERMOSTAT = 235, PISCINE_POMPE = 233, GEA_ALARME_PISCINE = 254, PISCINE_MODEHIVER = 213, GESTION_PISCINE = 214, PISCINE_TMPAUTH = 252, ... } ... GEA.add ({"Alarm", id["GEA_ALARME_PISCINE"], 1}, 0, "Démarrage pompe piscine", {"TurnOn", id["PISCINE_POMPE"]}) GEA.add ({"Alarm", id["GEA_ALARME_PISCINE"], 2}, 0, "Arrêt pompe piscine", {"TurnOff", id["PISCINE_POMPE"]}) ... end je ne vois de spécial dans le log
  8. jojo

    Support Gea

    c'est vraue cette partie là de la doc, il faut essayer de la comprendre avant l'apéro
  9. jojo

    Support Gea

    cela veut dire : si on est pendant 30 sec entre le sunset (d'après la doc cela devrait être Sunset) et 22h00, alors ... tu pourrais mettre (comme suggéré par @Lazer) GEA.add(id["BAL"], -1, ... Remarque 1 : il faudrait écrire Sunset (et pas sunset) La condition ici est au coucher du soleil (si le coucher du soleil est après 22h) sinon entre 22h et 22h05.
  10. tout est prêt, je dois "juste" retirer mes infos personnelles, et écrire le topic qui va bien ...
  11. sur les nouveaux modules, n'y a-t-il pas justement un paramètre pour éviter ce problème ? Et si on parle de relais de puissance pourquoi ne pas riectement mettre la AeoTec haut puissance ?
  12. du coup je suis bon pour acheter une nouvelle voiture !
  13. jojo

    Support Gea

    @Yannick voici le code d'une scène LUA qui dans son débug génère (pièce par pièce) une liste des modules et leur id. Il s'agit d'un code qui (de mémoire) a été créé par @Steven er je suppose (comme d'hab) rendu compatible avec la HC3 par @Lazer. local hidden = false --- true pour exporter les devices cachés local dead = false -- true pour exporter les devices morts local excludeType = {"com.fibaro.zwaveDevice", "weather", "HC_user", "iOS_device", "com.fibaro.voipUser"} local excludeID = {} local devicesJSon = api.get("/devices") local devices = {} local names = {} local rooms = {} function addName(name, roomname) if (type(names[name]) == "nil") then names[name] = true return name else return addName(name.."_"..roomname, roomname) end end function getRooms() local roomsJSon = api.get("/rooms") rooms[0] = "inconnu" for k, v in ipairs(roomsJSon) do rooms[v.id] = v.name end end function rename(name, roomname) local name = name:upper():gsub("[éêèë]", "E"):gsub("EE", "E"):gsub("[ûüù]", "U"):gsub("UU", "U"):gsub("[àâä]", "A"):gsub("AA", "A"):gsub("[öô]", "O"):gsub("OO", "O"):gsub("[îï]", "I"):gsub("II", "I"):gsub("%W", "_") local roomname = roomname:upper():gsub("[éêèë]", "E"):gsub("EE", "E"):gsub("[ûüù]", "U"):gsub("UU", "U"):gsub("[àâä]", "A"):gsub("AA", "A"):gsub("[öô]", "O"):gsub("OO", "O"):gsub("[îï]", "I"):gsub("II", "I"):gsub("%W", "_") return addName(name, roomname) end getRooms() for k, v in pairs(devicesJSon) do local doit = (hidden or v.visible) and (dead or not v.dead) if (doit) then for h, w in pairs(excludeType) do if (v.type == w) then doit = false end end if (doit) then for h, w in pairs(excludeID) do if (v.id == w) then doit = false end end end end if (doit) then table.insert(devices, v) end end table.sort(devices, function(a,b) return a.roomID<b.roomID end) local result = "<BR><BR>-- IDs générés le : " .. os.date("%d/%m/%y à %X") local room = -1 local lastinfo = ""; result = result .. "<BR><BR>local id = {" for k, v in ipairs(devices) do if (room ~= v.roomID) then room = v.roomID result = result .. "<BR>--"..rooms[v.roomID].."<BR>" end lastinfo = rename(v.name, rooms[v.roomID]) result = result .. lastinfo .. " = " .. v.id .. ", " end result = result .. "<BR>}" result = result .. "<BR>" result = result .. "<BR>-- usage :" result = result .. "<BR>-- fibaro:getValue(id[\""..lastinfo .."\"], \"value\")" result = result .. "<BR>-- GEA.add(id[\""..lastinfo .."\"], 30, \"\")" result = result .. "<BR>-- to add in the following QA :" result = result .. "<BR>-- GEA" print(result)
  14. jojo

    Support Gea

    je teste GEA Alarm. Les alarmes sont bien réglées comme je veux mais elles n'agissent pas comme je le souhaite. Ai-je fait une erreur dans mon code GEA ? GEA.add ({"Alarm", id["GEA_ALARME_PISCINE"], 1}, 0, "Démarrage pompe piscine", {"TurnOn", id["PISCINE_POMPE"]}) GEA.add ({"Alarm", id["GEA_ALARME_PISCINE"], 2}, 0, "Arrêt pompe piscine", {"TurnOff", id["PISCINE_POMPE"]})
  15. jojo

    Support Gea

    n'espérant pas une réponse si rapide (tu as mis un -1 dans ce topic ?), j'étais en train d'essayer de faire du reverse engineering de ce code de malade. Mais n'étant PAS DU TOUT développeur, j'avais peu d'espoir de trouver la réponse ...
  16. jojo

    Support Gea

    dans le fibaro.call, ça ne devrait pas être "setTime" au lieu de setTime (=> rajouter des ") et si on veut préciser que c'est l'heure de l'alarme # 2, que faut-il mettre ? (car dans GEA c'est possible) -- Réglage de l'heure de l'alarme n°2 sur 22h22 : GEA.add( {CONDITION}, 30, "", {"QuickApp", id["QA_ALARM"], "setTime", 2, "22:22"}) Merci (encore une fois)
  17. jojo

    Support Gea

    il y a 3 liens à mettre dans tes favoris (en plus de celui vers ce forum) tous les autres favoris sont PARFAITEMENT inutiles (allez, soyons fair-play, tu peux rajouter Google)
  18. Comme la version 7.37 de la syntaxe n'a pas encore été publiée sur la première, j'en profite pour encore la modifier un tout petit peu. Dans les modes thermostat possible j'ai rajouté Off car : testé et ça fonctionne ce mode est repris dans les exemples -- "ThermostatMode" : Teste/modifie le mode de fonctionnement d'un thermostat -- SYNTAXE : {"ThermostatMode", <id_thermostat>, "<mode>"} -- mode : Heat | Cool | Auto | Resume | Fan | Dry | Off -- CONDITIONS : GEA.add( {"ThermostatMode", 72, "Heat"}, 30, "Thermostat chaud", {ACTIONS} ) -- Vérifie si le thermostat 72 est en train de chauffer GEA.add( {"ThermostatMode", 72, "Off"} , 30, "Thermostat arrêt", {ACTIONS} ) -- Vérifie si le thermostat 72 est arrêté GEA v7.37 Syntaxe.lua
  19. jojo

    Support Gea

    dans la définition de ton tableau d'id, tu as oublié une , après ... = 177 tu as deux solutions : dans GEA, tu crées plusieurs actions (séparées par des , ) tu crées un QA "Linked Devices" Binary Sensor, c'est comme un groupe de modules que tu peux actionner en agissant que sur ce QA => essaie. P.S. prends le temps de lire la super doc de syntaxe écrite par @Lazer, tu auras pleins d'idées
  20. tout ce qui est 'report', concerne (uniquement) la remontée des infos au contrôleur principal. Pour la gestion de l'éclairage avec les détecteurs de présence et la luminosité, j'ai très rapidement abandonné l'association directe, car quand mon éclairage artificiel était allumé, la luminosité était ok, et si la lumière s'éteint juste à ce moment là, tu peux gesticuler tant que tu veux, elle ne se rallume pas => le waf en prend pour son grade ...
  21. jojo

    Support Gea

    ne ferait-on pas alors un Showroom GEA HC3 pour éviter la confusion . c'est le principe fondamental de ce forum : entraide et partage. En ce qui me concerne, je ne suis qu'en phase de préparation de ma migration (même si mon GEA fait déjà plus de 200 lignes) D'ici fin août (j'espère) il devrait être ok à 90%. Mais je peux, si tu le désires, déjà poster ce que j'ai, là où dieu me dira de le faire
  22. ok, je prépare (mais pas dans l'immédiat) un topic sur le sujet (rappelle le moi si je traine trop)
  23. jojo

    Support Gea

    c'est vrai que c'est encore mieux ! => merci
  24. jojo

    Support Gea

    La grande claaaaasse , surtout que posté à en fait j'utilise GEA comme trigger d'exécution de mon code LUA dans une QA, car tout est plus lisible ainsi. -- Pompe GEA.add ({"Time", "05:15", "05:30"}, 0, "", {"QuickApp", id["GESTION_PISCINE"], "DureePompe"}) et le code LUA : function QuickApp:DureePompe() self:debug("DureePompe") local TmpSeuil = fibaro.getValue(id["PISCINE_TMPSEUIL"],"value") local PiscineHrDebut = self:getVariable("PiscineHrDebut") self:trace("Piscine_TmpSeuil = "..TmpSeuil.."°C") self:trace("QAVariable PiscineHrDebut = "..PiscineHrDebut) PiscineHrDebut = tonumber(string.sub(PiscineHrDebut,1,string.find(PiscineHrDebut,":")-1)) self:trace("PiscineHrDebut = "..tostring(PiscineHrDebut)) if TmpSeuil < tonumber(self:getVariable("PiscineTmp0")) then PiscineHrFin = PiscineHrDebut + tonumber(self:getVariable("PiscineHrDur0")) elseif (TmpSeuil >= tonumber(self:getVariable("PiscineTmp0")) and TmpSeuil < tonumber(self:getVariable("PiscineTmp1"))) then PiscineHrFin = PiscineHrDebut + tonumber(self:getVariable("PiscineHrDur1")) elseif (TmpSeuil >= tonumber(self:getVariable("PiscineTmp1")) and TmpSeuil < tonumber(self:getVariable("PiscineTmp2"))) then PiscineHrFin = PiscineHrDebut + tonumber(self:getVariable("PiscineHrDur2")) elseif (TmpSeuil >= tonumber(self:getVariable("PiscineTmp2")) and TmpSeuil < tonumber(self:getVariable("PiscineTmp3"))) then PiscineHrFin = PiscineHrDebut + tonumber(self:getVariable("PiscineHrDur3")) elseif (TmpSeuil >= tonumber(self:getVariable("PiscineTmp3")) and TmpSeuil < tonumber(self:getVariable("PiscineTmp4"))) then PiscineHrFin = PiscineHrDebut + tonumber(self:getVariable("PiscineHrDur4")) elseif TmpSeuil >= tonumber(self:getVariable("PiscineTmp4")) then PiscineHrFin = PiscineHrDebut + tonumber(self:getVariable("PiscineHrDur5")) end if PiscineHrFin > 24 then PiscineHrFin = PiscineHrFin - 24 end PiscineHrFin = tostring(PiscineHrFin) if string.len(PiscineHrFin) == 1 then PiscineHrFin = "0"..PiscineHrFin end PiscineHrFin = PiscineHrFin .. ":00" self:trace("PiscineHrFin = "..PiscineHrFin) self:setVariable("PiscineHrFin", PiscineHrFin) self:trace("QAVariable PiscineHrFin = "..self:getVariable("PiscineHrFin")) end maintenant l'idée serait de mettre le résultat de mon LUA dans la variable du QA (idéalement, ou dans une VG) au bon format (avec ou sans " ou autre ?) et d'en récupérer la valeur avec la fonction. Mais quel code pour la fonction ?
  25. jojo

    Support Gea

    mais en fait je serai confronté à un problème similaire : configurer l'alarme sur base d'une variable (valeur calculée tous les jours à 5h30) -- Réglage de l'heure de l'alarme n°2 sur 22h22 : GEA.add( {CONDITION}, 30, "", {"QuickApp", id["QA_ALARM"], "setTime", 2, "22:22"}) (je devrais remplacer "22:00" dans ton exemple par le contenu d'une variable ...)
×
×
  • Créer...