[LUA] Omport depuis Thingspeak

Vous avez créé un script LUA dont vous êtes fier, un .sh génial, un programme Python hors du commun, un Tuto, c'est ici que vous pouvez les partager.
totof60
Messages : 373
Inscription : 29 avr. 2016, 09:31

[LUA] Omport depuis Thingspeak

Message 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 !
Domoticz V2022.2
sous Buster, Homebridge,RfLink
Raspberry pi3, Google home mini
plein de truc wifi !! de l'esp-01 jusque le nodemcu en passant par le wemos et même du DIY
papoo
Messages : 2029
Inscription : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: LUA: import depuis Thingspeak

Message par papoo »

;)
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github
totof60
Messages : 373
Inscription : 29 avr. 2016, 09:31

Re: LUA: import depuis Thingspeak

Message 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 !
Domoticz V2022.2
sous Buster, Homebridge,RfLink
Raspberry pi3, Google home mini
plein de truc wifi !! de l'esp-01 jusque le nodemcu en passant par le wemos et même du DIY
totof60
Messages : 373
Inscription : 29 avr. 2016, 09:31

Re: LUA: import depuis Thingspeak

Message par totof60 »

Domoticz V2022.2
sous Buster, Homebridge,RfLink
Raspberry pi3, Google home mini
plein de truc wifi !! de l'esp-01 jusque le nodemcu en passant par le wemos et même du DIY
S1eepy
Messages : 21
Inscription : 03 juil. 2016, 13:24

Re: LUA: import depuis Thingspeak

Message 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+
marcus_54
Messages : 425
Inscription : 28 févr. 2018, 12:15

Re: LUA: import depuis Thingspeak

Message 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
Domoticz 2024.7
Domoticz sur RPI 4B+ : MQTT; MQTTMapper; Zigbee; RFlink DIY 433; Téléinfo; DS18B20; Capteur; compteur eau wmbusmeter, NanoLeaf...
Répondre