Aller au contenu

Steven

Membres confirmés
  • Compteur de contenus

    4 434
  • Inscription

  • Dernière visite

  • Jours gagnés

    201

Tout ce qui a été posté par Steven

  1. Steven

    Support Gea

    Ouch, on aurait du créer un alias pour NotStarted Heuuu tu es sûr pour la date ? c'est pas plutôt : {"Dates","28/10/2019","31/12/2019"}
  2. Steven

    Support Gea

    Il n'y a que moi qui ne voit pas l'image du debug ?
  3. Steven

    Support Gea

    Or accepte une suite d'option et non pas un tableau. Il va falloir, malheureusement, trouver une autre manière de faire
  4. Steven

    Support Gea

    Oui c'est bien pour cela qu'il faudrait tester pour savoir ce que je dois modifier dans la prochaine version. Envoyé de mon SM-G935F en utilisant Tapatalk
  5. Steven

    Support Gea

    Apparemment oui mais j'ai toujours pas eu le temps de vérifier. Si tu peux me le confirmer ce serait super. La V6 prend en compte le format de date FR/EN, j'ai du donc changer pas mal de chose. Envoyé de mon SM-G935F en utilisant Tapatalk
  6. Steven

    Support Gea

    Quelqu'un a remonté le problème avec les dates. Il faudrait mentionner l'année. Je n'ai pas encore eu le temps de vérifier. Envoyé de mon SM-G935F en utilisant Tapatalk
  7. Steven

    Support Gea

    Tiens nous au courant de ton test et on te pond un code compatible GEA.
  8. Steven

    Support Gea

    Je te confirme, c'est ce que j'ai fait. Envoyé de mon SM-G935F en utilisant Tapatalk
  9. Steven

    Support Gea

    Je confirme le problème local num1 = tonumber(string.match(value4, "[0-9.]+")) local num2 = tonumber(string.match(result, "[0-9.]+")) Ce code me permet de savoir si c'est une valeur numérique mais j'ai omis de contrôler la valeur négative . Bon, on va dire que c'est la faute @pepite
  10. Steven

    Support Gea

    Imaginons que GEA tourne toutes les 30 secondes en partant de 00h00:00 00h00:00 : 1er tour de GEA --- rien à faire 00h00:01 : Ta 3ème ligne va allumer la lumière sur détection ... il y aura donc 29 secondes avant le prochain tour. 00h00:30 : Ne va rien faire car la lampe est allumée depuis 29s et non pas 30 -- cf ta 2ème ligne 00h01:00 : La lampe est allumée depuis plus de 30s GEA va redémarrer le compteur de 3*60 --> cf ta 2ème ligne 00h04:30 : GEA va éteindre la lampe. Ca c'est le pire scénario car ton détecteur déclenche l'allumage JUSTE après le passage de GEA. Mais si dans ton cas il se déclenche plus ou moins 10 secondes après, tu auras donc bien 4mn et 20s. Tu peux déjà gagner quelques secondes en mettant 0 à la place de 30 sur ta 2ème ligne afin que GEA n'attende pas que ta lampe soit allumée plus de 30s. Voici donc l'explication de ce mystère.
  11. Steven

    Support Gea

    Je regarderais ça dès que j'aurais accès à un ordinateur. Envoyé de mon SM-G935F en utilisant Tapatalk
  12. Steven

    Support Gea

    Par contre je préfère prévenir. Le script httprequest est une pure ébauche que j'ai commencé il y a longtemps. Le GET fonctionne bien mais le POST et le PUT n'ont jamais été testé. Dans ton cas, tu utilises le GET donc pas de soucis [emoji6] Envoyé de mon SM-G935F en utilisant Tapatalk
  13. Steven

    Support Gea

    GEA.add(true, 30, "", {"httprequest", "http://192.168.1.188/Notification?msg="..urlencode("raquette télégramme").. "&lum=15&type=PAC&txt=notif&flash=1"}) Envoyé de mon SM-G935F en utilisant Tapatalk
  14. Steven

    Support Gea

    Il faut mettre des + à la place des espaces Bonjour+Madame Au lieu de Bonjour Madame Envoyé de mon SM-G935F en utilisant Tapatalk
  15. Steven

    Support Gea

    Ce n'est pas l'urlencode de GEA. Cette fonction existe dans le LUA de la HC2.
  16. Steven

    Support Gea

    Dans ce cas, tu devrais essayer de faire ainsi GEA.add(true, 30, "", {"httprequest", "http://192.168.1.188/Notification?msg="..urlencode("raquette télégramme")})
  17. Steven

    Support Gea

    Bon allez, je me lance : Tu crées un scène qui DOIT s'appeler httprequest cette scène est un plugin à GEA 6.x (Il est souhaitable de vérifier que la variable global GEA_Plugins existe bien) : --[[ %% properties %% events %% globals --]] -- ========================================================== -- -- Ligne a ajouter pour rendre votre scénarion compatible GEA -- ========================================================== -- if not tools then tools={version="2.00",addstyle="",isdebug=false,log=function(a,b,c)a=tools.tostring(a)for d,e in string.gmatch(a,"(#spaces(%d+)#)")do local f=""for g=1,e do f=f.."."end;a=string.gsub(a,d,"<span style=\"color:black;"..tools.addstyle.."\">"..f.."</span>")end;if tools.isdebug or c then fibaro:debug("<span style=\"color:"..(b or"white")..";"..tools.addstyle.."\">"..a.."</span>")end end,error=function(a,b)tools.log(a,b or"red",true)end,warning=function(a,b)tools.log(a,b or"orange",true)end,info=function(a,b)tools.log(a,b or"white",true)end,debug=function(a,b)tools.log(a,b or"gray",false)end,tostring=function(h)if type(h)=="boolean"then if h then return"true"else return"false"end elseif type(h)=="table"then if json then return json.encode(h)else return"table found"end else return tostring(h)end end,split=function(i,j)local j,k=j or":",{}local l=string.format("([^%s]+)",j)i:gsub(l,function(m)k[#k+1]=m end)return k end,trim=function(n)return n:gsub("^%s*(.-)%s*$","%1")end,deep_print=function(o)for g,p in pairs(o)do if type(p)=="table"then deep_print(p)else print(g,p)end end end,iif=function(q,r,s)if q then return r else return s end end,cut=function(t,u)u=u or 10;if u<t:len()then return t:sub(1,u-3).."..."end;return t end,isNumber=function(v)if type(v)=="number"then return true end;if type(v)=="string"then return type(tonumber(v))=="number"end;return false end,getStringTime=function(w)if w then return os.date("%H:%M:%S")end;return os.date("%H:%M")end,toTime=function(x)local y,z=string.match(x,"(%d+):(%d+)")local A=os.date("*t")local B=os.time{year=A.year,month=A.month,day=A.day,hour=y,min=z,sec=0}if B<os.time()then B=os.time{year=A.year,month=A.month,day=A.day+1,hour=y,min=z,sec=0}end;return B end,getStringDate=function()return os.date("%d/%m/%Y")end,isNil=function(C)return type(C)=="nil"end,isNotNil=function(C)return not tools.isNil(C)end}end if not GEAPlugin then GEAPlugin={}GEAPlugin.version=6.00;local a=fibaro:args()if a then for b,c in ipairs(a)do for d,e in pairs(c)do GEAPlugin[d]=e end end else fibaro:debug("nothing to do")fibaro:abort()end;GEAPlugin.retour=function(f)if GEAPlugin.geamode=="action"then return end;fibaro:startScene(GEAPlugin.geaid,{{gealine=GEAPlugin.gealine},{result=f}})end end -- ========================================================== -- -- Votre code ici -- les paramètres sont utilisable ainsi -- Exemple : {"http", "url", "method", "content"} -- local url = GEAPlugin.param1 -- local method = GEAPlugin.param2 -- ... -- ========================================================== -- -- Code du scenario -- tools.isdebug = true local httpClient = net.HTTPClient() local http = { getHeaders = function(self, user, pwd, content) local headers = {} local c = content or 'application/json' headers['Content-Type'] = c if (user and user ~= "") then headers["Authorization"] = 'Basic '..user..":"..password end if (pwd) and pwd ~= ""then headers["Authorization"] = 'Basic '..password end return headers end, manageReturn = function(self, resp) local response = "OK" print("resp : ", json.encode(resp)) if (type(resp) == "table" and resp.data) then response = tools.trim(json.encode(resp.data)) else response = resp.data end print(response) --GEAPlugin.retour(response) end, getOptions = function(self, m, u, p, c, d) local opt = { method = m, success = function(response) self:manageReturn(response) end, error = function(err) tools.error(' error = ' .. err) end, --GEAPlugin.retour('error = ' .. err) end, ["options"] = {} } local h = self:getHeaders(u, p, c) if (h) then opt.options["headers"] = h end if (d) then opt.options["data"] = d end return opt end, get = function(self, url, user, pwd) print(url, user, pwd) httpClient:request(url, { success = function(response) self:manageReturn(response) end, error = function(err) tools.error(' error = ' .. err) end, options = { method = 'GET' }, }) end, post = function(self, url, user, pwd, content, datas) httpClient:request(url, self:getOptions('POST', user, pwd, content, datas)) end, call = function(self, method, url, user, pwd, content, datas) if (method == "GET") then print("GET") self:get(url, user, pwd) end if (method == "POST") then self:post(url, user, pwd, content, datas) end end, } --GEAPlugin = {} local url = GEAPlugin.param1 or "http://www.perdu.com" local method = GEAPlugin.param2 or "GET" local content = GEAPlugin.param3 local datas = GEAPlugin.param4 local user = GEAPlugin.param5 local pwd = GEAPlugin.param6 http:call(method, url, user, pw , content, datas) tools.debug(method .. " : " .. url) Dans ton GEA tu ajoute simplement cela : GEA.add(true, 30, "", {"httprequest", "http://192.168.1.188/Notification?msg=Bonjour et madamme&lum=15&type=PAC&txt=notif&flash=1"}) Bien évidement, tu modifieras la conditions (true) par celle/ceux que tu as besoin.
  18. Steven

    Support Gea

    Je veux pas vous déranger mais cela n'a pas grand chose à voir avec GEA ou je me trompe ? Envoyé de mon SM-G935F en utilisant Tapatalk
  19. Steven

    Support Gea

    Que tout cela ne sert à rien : function urlencode(str) if (str) then str = string.gsub (str, "\n", "\r\n") str = string.gsub (str, "([^%w ])", function (c) return string.format ("%%%02X", string.byte(c)) end) str = string.gsub (str, " ", "+") end return str end
  20. Steven

    Support Gea

    Mais heuuuuu, il a quoi ton ID 699 ... Il est parti en vacances ?
  21. Steven

    Support Gea

    Quand je pense que la function urlencode() existe en natif sur la HC2
  22. Steven

    Support Gea

    @Did Depuis la 4.55 il y a des soucis de création des variables globales de GEA. C'est corrigé dans la future version qui est en test chez @pepite mais ce dernier m'a remonté des soucis. Je n'arrive pas trouver le temps de debuger tout cela malheureusement. Pourrais-tu me fournir tes lignes GEA.add(...) qui sont instantanée "-1" et que correspondent au module 699. Ta variable globale GEA_Plugins contient un "0" qui ne me plait pas trop, pourrais-tu le mettre à nul pour tester. Merci d'avance
  23. Steven

    Support Gea

    @Did ce que l'on a besoin c'est de ton 2ème et 3ème GEA.add(...) En effet, on a le log, on a le code GEA mais on a pas celui qui a provoqué tout cela. A mon avis, tu as un ID qui a changé. Je dis cela, mais je ne dis rien
  24. Steven

    Support Gea

    -- On éteins la lumière après 3mn -- Not Start = on ne fait rien pour l'instant. Cette ligne dors. local exctinction = GEA.add({"Time", "Sunset", "Sunrise"}, 3*60, "", { {"turnOff",id["LampeExterieur"]}, {"NotStart"} }) -- Sur détection de mouvement, on allumer et on démarre la tache précédente. -- A chaque détection, on redémarre le compteur de la tache précédente GEA.add({{"Time", "Sunset", "Sunrise"}, {id["DetecteurMVT"]}, {"TurnOff",id["LampeExterieur"]}}, -1, "", { {"TurnOn", id["LampeExterieur"]}, {"RestartTask", exctinction } }) Ce qui est en gras devrais suffir :-)
  25. Steven

    Support Gea

    Oui mais il faudrait que je retrouve tout cela car il y a un ordre très précis des lignes. A la maison j'ai cela mais il semble que cela ne fonctionne pas chez toi GEA.add({id["DETECT_JARDIN"], {"Value", id["COIN_MANGER"], 0},{"Time", "Sunset+30", "Sunrise"}}, -1, "", {"turnOn", id["COIN_MANGER"], 5*60}, "Allumage jardin sur détection") Mon détecteur n'allume la lumière pendant 5mn uniquement si elle n'est pas déjà allumée.
×
×
  • Créer...