-
Compteur de contenus
4 434 -
Inscription
-
Dernière visite
-
Jours gagnés
201
Tout ce qui a été posté par Steven
-
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"}
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Il n'y a que moi qui ne voit pas l'image du debug ?
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Or accepte une suite d'option et non pas un tableau. Il va falloir, malheureusement, trouver une autre manière de faire
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
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
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
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
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
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
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Tiens nous au courant de ton test et on te pond un code compatible GEA.
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Je te confirme, c'est ce que j'ai fait. Envoyé de mon SM-G935F en utilisant Tapatalk
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
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
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
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.
- 12 330 réponses
-
- 1
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Je regarderais ça dès que j'aurais accès à un ordinateur. Envoyé de mon SM-G935F en utilisant Tapatalk
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
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
- 12 330 réponses
-
- 1
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
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
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Il faut mettre des + à la place des espaces Bonjour+Madame Au lieu de Bonjour Madame Envoyé de mon SM-G935F en utilisant Tapatalk
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Ce n'est pas l'urlencode de GEA. Cette fonction existe dans le LUA de la HC2.
- 12 330 réponses
-
- 1
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
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")})
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
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.
- 12 330 réponses
-
- 2
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
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
- 12 330 réponses
-
- 2
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
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
- 12 330 réponses
-
- 2
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Mais heuuuuu, il a quoi ton ID 699 ... Il est parti en vacances ?
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Quand je pense que la function urlencode() existe en natif sur la HC2
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
@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
- 12 330 réponses
-
- 1
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
@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
- 12 330 réponses
-
- 1
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
-- 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 :-)
- 12 330 réponses
-
- 2
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
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.
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :