Exporter des données vers le site ThingSpeak

Bonjour,
un petit script LUA me permettant d’exporter les données de certains de mes compteurs (via domoticz) sur le site https://thingspeak.com/ afin de tester ce service.
Bien sur avant de mettre en place ce script, il faut s’inscrire, récupérer le numéro d’api WRITE lié au channel créé (que l’on peu décider de rendre public ou non)
ensuite nommer et activer les « fields » et noter la correspondance field/compteur
ensuite personnalisez le script avec votre clé API WRITE et lister vos devices avec le field associé dans le tableau les_devices
Sauvegarder le fichier, en le nommant script_time_SE_QUE_VOUS_VOULEZ.lua, dans le répertoire dédié aux scripts lua

thingspeak

Le script est lu toutes les minutes mais n’exporte les données que toutes les 4 minutes, valeur que vous pouvez bien sur modifier

--[[script_time_export_ThingSpeak.lua
auteur : papoo
version : 1.10
date : 18/05/2016
Principe : 
exporter les données de compteurs, Températures, etc.. sur le site thingspeak.com
limite de "field" par "channel" = 8 
Le script est lu toutes les minutes mais n'exporte les données que toutes les 4 minutes (temps modifiable ligne 40)
]]--

-- ============================================================================
-- Variables 
local debugging = false  -- true ou false

local url = '192.168.1.24:8080'   -- user:pass@ip:port de domoticz
local url_thingspeak = 'https://api.thingspeak.com/' 
local API_key = 'NNNNNNNNNNNNNNNN' -- API Write KEY ThingSpeak


local les_devices = {}; -- pas plus de 8 devices
-- 1er compteur : name ="nom du device 1", field=field ThingSpeak associé
les_devices[1] = {name="Compteur Eau Froide", field=1}
-- 2eme compteur : name ="nom du device 2", field=field ThingSpeak associé
les_devices[2] = {name="Compteur Eau Chaude", field=2}
-- 3eme compteur : name ="nom du device 3", field=field ThingSpeak associé
les_devices[3] = {name="Compteur Gaz", field=3}
les_devices[4] = {name="Compteur Prises", field=4}
les_devices[5] = {name="Compteur Lumières", field=5}
les_devices[6] = {name="Compteur Technique", field=6}
les_devices[7] = {name="DJU", field=7}


local fields =""
-- ============================================================================
commandArray = {}
function voir_les_logs (s)
    if (debugging) then 
        print (s);
    end
end

now=os.date("*t")
if now.min % 4 == 0 then  -- export des données toutes les 4 minutes
print('Export_ThingSpeak.lua')
			voir_les_logs("--- --- --- Export vers ThingSpeak  : "..now.hour.. ":" ..now.min,debugging);
    for i,d in ipairs(les_devices) do
    v=otherdevices[d.name]                        -- v is the value attached to device d
			voir_les_logs(d.name.." = "..(v or "nil"),debugging);
			voir_les_logs("--- --- --- Heure actuelle : ".. now.hour .. ":" ..now.min,debugging);
		 if v==nil or v=="" or v=="Open" then                  -- multi valued ?
        v=otherdevices_svalues[d.name] or ""
       voir_les_logs("--- --- --- ".. d.name .." = ".. v .." & field".. d.field ,debugging);
		 end
		fields = fields .. '&field'.. d.field .. '=' .. v	
		 voir_les_logs("--- --- --- " .. fields ,debugging);
	
	end
		 voir_les_logs("--- --- --- ".. url_thingspeak ..'update?key=' .. API_key .. fields ,debugging);
	commandArray[1]={['OpenURL']=url_thingspeak ..'update?key=' .. API_key .. fields }	
	
end -- if now
-- ============================================================================
return commandArray

Vérifiez ensuite les premiers résultats sur le site

Laisser un commentaire