Aller au contenu

Envoyer Une Valeur Vers Thingspeak Depuis Une Scène


jjacques68

Messages recommandés

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 !

 

Lien vers le commentaire
Partager sur d’autres sites

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 ?

Lien vers le commentaire
Partager sur d’autres sites

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 !!!

Lien vers le commentaire
Partager sur d’autres sites

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
Lien vers le commentaire
Partager sur d’autres sites

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...

Lien vers le commentaire
Partager sur d’autres sites

  • 7 mois après...

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://..............")

 

  • Upvote 2
Lien vers le commentaire
Partager sur d’autres sites

salut

 

voila j'ai fini par trouver  :P

 

--[[
%% 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)

 

  • Upvote 2
Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

@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)

 

 

 

 

Lien vers le commentaire
Partager sur d’autres sites

@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 :P

 

adaptez le en fonction de vos besoins.

 

Soon.

 

 

Lien vers le commentaire
Partager sur d’autres sites

@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
Et
Value remonte si on ou off ou ouverte ou fermée .....



Envoyé de mon iPhone en utilisant Tapatalk
Lien vers le commentaire
Partager sur d’autres sites

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é par 971jmd
Lien vers le commentaire
Partager sur d’autres sites

désolé:13: 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
})

 

 

  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...