jjacques68 Posté(e) le 22 septembre 2016 Signaler Posté(e) le 22 septembre 2016 bonjour, J'essaye en vain d'envoyer une valeur à ThingSpeak via une scène et j'y arrive pas... (je peux le faire marcher très bien depuis un VD) Mais pour une scène, je trouve pas la bonne syntaxe : Voici ce que je fais : local TS = net.HTTPClient() TS:request("http://api.thingspeak.com/update", { options = {method = 'POST', headers = {['api_key'] = "xxxxxxxxx&field1=1"},}, success = function(response) fibaro:debug("ok") end, error = function(reponse) fibaro:debug("Error: " ..response) end }) Quelqu’un à une idée ? Merciii !
jojo Posté(e) le 22 septembre 2016 Signaler Posté(e) le 22 septembre 2016 je suis loin d'être un pro des appels http, et encore mois dans les scènes. Mais àla lecture de ta syntaxe elle est parfaitement similaire àce que je fait pour un GET. La seule différence est que je n'ai pas de "headers". Est-ce làqu'il y aurait une erreur ?
jjacques68 Posté(e) le 22 septembre 2016 Auteur Signaler Posté(e) le 22 septembre 2016 ben je sais pas trop, j'ai essayer plein de combinaisons, d'après la doc des api de ThinkSpeak... Dans leur doc, ils disent : POST https://api.thingspeak.com/update api_key=XXXXXXXXXXXXXXXX field1=73 mais j' n'arrive pas à trouver la syntaxe pour ça !!!
Moicphil Posté(e) le 23 septembre 2016 Signaler Posté(e) le 23 septembre 2016 Salut Peut tu essayer avec ca ? thingspeak = Net.FHttp('api.thingspeak.com') local field_nb = 1 local number = 1 payload = 'key=VOTREAPKEY&field'.. field_nb .. '='..number" response, status, errorCode = thingspeak:POST('/update', payload) if tonumber(status) == 200 then break; end
pepite Posté(e) le 23 septembre 2016 Signaler Posté(e) le 23 septembre 2016 Salut, je pense comme Moicphil, àmon avis depuis une scene c'est FHttp, et depuis le VD "HTTP"
jojo Posté(e) le 23 septembre 2016 Signaler Posté(e) le 23 septembre 2016 moi, j'ai HTTP dans mes scènes, et ça fonctionne.
jjacques68 Posté(e) le 23 septembre 2016 Auteur Signaler Posté(e) le 23 septembre 2016 bonjour, merci pour vos réponse, mais non cela ne marche pas : [DEBUG] 16:59:40: line 1: attempt to index global 'Net' (a nil value) mais c'est à cause du net.HTTP (ou FHHTP). Dans une scène c'est pas bon... jamais réussi à le faire fonctionner...
jojo Posté(e) le 23 septembre 2016 Signaler Posté(e) le 23 septembre 2016 as-tu essayé avec net et Net ? C'est cases sensitive
jjacques68 Posté(e) le 23 septembre 2016 Auteur Signaler Posté(e) le 23 septembre 2016 toujours même résultat
Moicphil Posté(e) le 23 septembre 2016 Signaler Posté(e) le 23 septembre 2016 Ca doit marcher dans une scène, d'ailleurs plusieurs VD sur ce forum fonctionnent avec une scène dédiée gérant les requêtes. Par exemple, ce script de @krikroff > http://www.domotique-fibaro.fr/index.php/topic/6362-hc2-waze-calculator/
jjacques68 Posté(e) le 23 septembre 2016 Auteur Signaler Posté(e) le 23 septembre 2016 ben suis désolé mais marche pas... Mais c'est pas la première fois que je galère avec les net.http !! y a pas un tuto qui explique comment ça fonctionne ???
971jmd Posté(e) le 23 mai 2017 Signaler Posté(e) le 23 mai 2017 salut a tous est-ce que quelqu'un est arrivée a faire fonctionne le script dans une scène ?
jjacques68 Posté(e) le 23 mai 2017 Auteur Signaler Posté(e) le 23 mai 2017 Nan, toujours pas, si tu trouves la solution, merci de la poster
pepite Posté(e) le 24 mai 2017 Signaler Posté(e) le 24 mai 2017 Bonjour, Avez-vous tenté cela ? cela fonctionne dans énormément de scènes partagées sur le forum par les experts. local client = net.HTTPClient() client:request("http://..............") 2
971jmd Posté(e) le 27 mai 2017 Signaler Posté(e) le 27 mai 2017 salut voila j'ai fini par trouver --[[ %% properties 107 power %% events %% globals --]] thingspeak = Net.FHttp('api.thingspeak.com') local field1 = fibaro:getValue(107, "power") payload = "key=xxxxxxxxxxxxxxx&field2="..field1 response, status, errorCode = thingspeak:POST('/update', payload) fibaro:debug(status) 2
yoim Posté(e) le 4 juin 2017 Signaler Posté(e) le 4 juin 2017 @971jmd Marche pas chez moi. Ton power c'est comme value ? J'ai ca comme erreur : [DEBUG] 23:05:56: line 8: attempt to index global 'Net' (a nil value) --[[ %% properties 11 power %% events %% globals --]] thingspeak = Net.FHttp('api.thingspeak.com') local field1 = fibaro:getValue(11, "power") payload = "key=APINUMBER&field1="..field1 response, status, errorCode = thingspeak:POST('/update', payload) fibaro:debug(status)
yoim Posté(e) le 4 juin 2017 Signaler Posté(e) le 4 juin 2017 @jjacques68 Solution testé et validé. Merci @pepite pour le debut de code. --[[ %% autostart %% properties %% weather %% events %% globals --]] local source = fibaro:getSourceTrigger() local delay = 300 -- in seconds -- 5 mn function Run() local Hour = os.date("%H:%M") fibaro:debug("Hour : " ..Hour) local Maintenant = os.date("*t") local heure = Maintenant['hour'] fibaro:debug("Heure var num " .. heure); local client = net.HTTPClient() local TempExt = tonumber(fibaro:getValue(242, "value")); local EauPiscine = tonumber(fibaro:getValue(241, "value")); local EauSpa = tonumber(fibaro:getValue(239, "value")); -- Temp Salon local plop = tonumber(fibaro:getValue(247, "value")); local plop2 = tonumber(fibaro:getValue(11, "value")); local total = ((plop + plop2) / 2 ) -- Temp etage local plop3 = tonumber(fibaro:getValue(62, "value")); local plop4 = tonumber(fibaro:getValue(170, "value")); local total1 = ((plop3 + plop4) / 2 ) -- Temp Bureau YO local Yo = tonumber(fibaro:getValue(280, "value")); -- Temp SDB local SDB = tonumber(fibaro:getValue(208, "value")); local loop = 1 if loop == 1 or heure >= 0 then client:request("https://api.thingspeak.com/update?api_key=APINUMBER&field1=" .. TempExt.. "&field2=" .. EauPiscine.. "&field3=" .. EauSpa.. "&field4=" .. total.. "&field5=" .. total1.. "&field6=" .. Yo.. "&field7=" .. SDB ) fibaro:debug("Send Temperature") end setTimeout(Run, delay*1000) end -- Main Loop if source["type"] == "autostart" or source["type"] == "other" then Run() end J'ai du code qui sert a rien comme loop ... ou heure >=0 Je ferais le menage du code plus tard adaptez le en fonction de vos besoins. Soon.
971jmd Posté(e) le 4 juin 2017 Signaler Posté(e) le 4 juin 2017 @971jmd Marche pas chez moi. Ton power c'est comme value ? J'ai ca comme erreur : [DEBUG] 23:05:56: line 8: attempt to index global 'Net' (a nil value) --[[%% properties11 power%% events%% globals--]]thingspeak = Net.FHttp('api.thingspeak.com')local field1 = fibaro:getValue(11, "power") payload = "key=APINUMBER&field1="..field1response, status, errorCode = thingspeak:POST('/update', payload)fibaro:debug(status) Non power et value c'est deux valeurs différentes Power remonte la consommation EtValue remonte si on ou off ou ouverte ou fermée .....Envoyé de mon iPhone en utilisant Tapatalk
yoim Posté(e) le 5 juin 2017 Signaler Posté(e) le 5 juin 2017 Ok merci @971jmd Par contre avec ton code j'ai toujours cette erreur : [DEBUG] 09:55:07: line 8: attempt to index global 'Net' (a nil value) Ca fonctionne chez toi ?
pepite Posté(e) le 5 juin 2017 Signaler Posté(e) le 5 juin 2017 @yoil, normal pour l erreur si tu mets dans une scene. Net.fhttp ne fonctionne que dans un VD Net.httpclient dans une scene et supporte le httpsEnvoyé de mon Nexus 5X en utilisant Tapatalk
yoim Posté(e) le 6 juin 2017 Signaler Posté(e) le 6 juin 2017 ok pour l'envoie des données, je fais une scene qui active mon bouton toute les 5 mn ? @pepite
pepite Posté(e) le 6 juin 2017 Signaler Posté(e) le 6 juin 2017 Salut @yoim, Si tu fais une scène avec le code fonctionnel de @971jmd ca ne tourne pas chez toi ? https://www.domotique-fibaro.fr/topic/9049-envoyer-une-valeur-vers-thingspeak-depuis-une-scã¨ne/?do=findComment&comment=162767
971jmd Posté(e) le 6 juin 2017 Signaler Posté(e) le 6 juin 2017 (modifié) salut fait attention au &field1 : key=xxxxxxxxxxxxxxx&field1="..conso --[[ %% properties 107 power %% events %% globals --]] thingspeak = Net.FHttp('api.thingspeak.com') local conso = fibaro:getValue(107, "power") payload = "key=xxxxxxxxxxxxxxx&field1="..conso response, status, errorCode = thingspeak:POST('/update', payload) fibaro:debug(status) Modifié le 6 juin 2017 par 971jmd
971jmd Posté(e) le 6 juin 2017 Signaler Posté(e) le 6 juin 2017 désolé mai j'ai pas coller le bon code --[[ %% properties 547 power %% events %% globals --]] local field1 = fibaro:getValue(547, "power") -- http requete local http = net.HTTPClient() http:request("https://api.thingspeak.com/update?api_key=WZ97TDW1FEYN617N&field2="..field1, {options = { method = 'GET' }, success = function(response) fibaro:debug("OK") end, error = function(err) fibaro:debug("Error: " ..err) end }) 1
Messages recommandés