Aller au contenu

Steven

Membres confirmés
  • Compteur de contenus

    4 328
  • Inscription

  • Dernière visite

Réputation sur la communauté

2 274 Excellent

1 abonné

À propos de Steven

  • Rang
    Maitre Yoda du forum
  • Date de naissance 18/04/1971

Profile Information

  • Sexe :
    Homme
  • Ville :
    Valleiry, Haute-Savoie
  • Intéret :
    Domotique, Fitness et programmation
  • Box
    Home Center 2
  • Version
    4.520

Visiteurs récents du profil

3 332 visualisations du profil
  1. Steven

    Support Gea

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

    Support Gea

    Je te confirme, c'est ce que j'ai fait. Envoyé de mon SM-G935F en utilisant Tapatalk
  3. 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
  4. 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.
  5. Steven

    Support Gea

    Je regarderais ça dès que j'aurais accès à un ordinateur. Envoyé de mon SM-G935F en utilisant Tapatalk
  6. 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
  7. 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
  8. 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
  9. Steven

    Support Gea

    Ce n'est pas l'urlencode de GEA. Cette fonction existe dans le LUA de la HC2.
  10. 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")})
  11. 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.
  12. 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
  13. 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
  14. Steven

    Support Gea

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

    Support Gea

    Quand je pense que la function urlencode() existe en natif sur la HC2
×