Le but est de recuperer des données depuis le site Thingspeak.
En premier on créera un dispositifs virtuel selon ses besoins , par exemple un capteur température et on en notera son idx.
Si vous êtes encore là c'est que vous avez déjà un compte Thingspeak et donc je ne m’étendrais pas la dessus.
Dans le script au niveau des variables à éditer on indiquera le numéro du channel et le field que l'on veut importer.
Le channel de Thingspeak doit être "public", sinon il faudra aussi insérer la clé API Write ( pas implémenter totalement dans le script )
Code : Tout sélectionner
--[[ script_time_import_Thingspeak.lua
auteur : totof60
version : 1.00
date : 25/07/2016
Principe :
importer les données de compteurs, Températures, etc.. depuis le site thingspeak.com
script lachement pompé sur le travail de Pappoo, merci à lui !
]]--
-- ============================================================================
-- Variables
local thingspeak_idx = 28 -- idx du capteur temperature
local url_thingspeak = 'https://api.thingspeak.com/'
local API_key = 'XXXXXXXXXXXXXXXX' -- API Write KEY ThingSpeak
local channel = '80503' -- channel Thingspeak
local field = '1' -- field Thingspeak
-- ============================================================================
function os.capture(cmd)
local f = assert(io.popen(cmd, 'r'))
local s = assert(f:read('*a'))
f:close()
return s
end
commandArray = {}
now=os.date("*t")
-- Toutes 10 minutes
if now.min % 10 == 0 then
-- Path to curl
local curl = '/usr/bin/curl'
local cmd = curl .. " https://api.thingspeak.com/channels/" ..channel.."/fields/"..field..'/last.txt'
local fields = os.capture(cmd);
-- Update device idx with nValue and sValue
commandArray['UpdateDevice'] = thingspeak_idx .. '|0| ' .. fields
end
return commandArrayN'hesitez pas à corriger ou modifier le code ; c'est mon premier !