Page 1 sur 1

[LUA] Omport depuis Thingspeak

Publié : 25 juil. 2016, 17:25
par totof60
Mon premier script largement inspiré de ceux de papoo, un grand merci à lui.

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 commandArray

N'hesitez pas à corriger ou modifier le code ; c'est mon premier !

Re: LUA: import depuis Thingspeak

Publié : 01 août 2016, 22:05
par papoo
;)

Re: LUA: import depuis Thingspeak

Publié : 12 oct. 2016, 07:27
par totof60
180 vues et un seul commentaire !

Je vais donc preciser pourquoi j'en suis arrivé a avoir besoin de ce script.

Avant de me lancer dans domoticz j'ai commencé par la realisation d'une petite station meteo connectée.

Les infos de cette station sont envoyées sur thingspeak.

Cette petite station a tellement plut a un de mes amis que j'en ai realisé une deuxième en récupérant les infos de température extérieur sur ma sonde extérieure .

Maintenant avec domoticz j'aurai pu intégrer directement les infos , mais la station de mon pote n'aurait plus les infos de température extérieure !

Donc récupération des infos via thingspeak pour les transmettre a mon domoticz .

Et voila !

Re: LUA: import depuis Thingspeak

Publié : 12 oct. 2016, 07:31
par totof60

Re: LUA: import depuis Thingspeak

Publié : 23 nov. 2016, 11:15
par S1eepy
Salut totof, merci pour ton script, je vais le tester.
PAr contre, j'ai une sonde DHT22, et pour le moment les valeurs qu'elle retourne sont vraiment fantaisistes par rapport à la réalité.
Tu arrives à avoir des valeurs cohérentes avec cette sonde?

a+

Re: LUA: import depuis Thingspeak

Publié : 21 mars 2018, 20:02
par marcus_54
Bonsoir,

J’essaie d'utiliser ce script :)
Je l'ai modifié et je l'ai sauvegardé dans "scripts/lua"
J'ai créé un dispositif virtuel Thingspeak.

Pour les 7 autres champs de Thingspeak, il faut faire 7 autres scripts ?

Merci