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