Export données vers emoncms.org
-
astrometeo974
- Messages : 35
- Inscription : 17 févr. 2017, 11:08
Export données vers emoncms.org
Bonjour
J'ai mis en œuvre le script de Papoo qui marche à la perfection, mais a cette occasion
je me suis aperçu que la remontée d'info de ma sonde d'humidité était erronée, confère
les traces ci après.
Onglet dispositifs
Idx / Matériel / ID / Unit / Nom / Type / Sous-type / Donnée
219 / RFLINK / 010A / 10 / Temp WS2300 /Temp / LaCrosse TX3/ 18.6 C
220 / RFLINK / 010A / 1 / Hum WS2300 /Humidity/ LaCrosse TX3 /Humidity 65 %
Etat des valeurs
Idx/ Name /Current state /Last updated / sValues
219 /Temp WS2300/ 18.7 / 2017-06-04 17:20:23 / 18.7
220/ Hum WS2300 /3 / 2017-06-04 17:20:23/ 3
Log du script de Papoo
2017-06-04 17:26:00.478 LUA: --- --- --- Export vers emoncms : 17:26
2017-06-04 17:26:00.478 LUA: Temp WS2300 = 18.5
2017-06-04 17:26:00.478 LUA: Sonde Solaire = 209
2017-06-04 17:26:00.479 LUA: Hum WS2300 = 3
2017-06-04 17:26:00.479 LUA: OWL CM180 = 692.000;2868027.000
Le widget Hum WS2300 correspond à celui de la page dispositifs (65%) , contrairement aux valeurs passées (3)
alors que tout est ok pour les autres capteurs.
Si quelqu'un à une idée ou une piste je suis preneur.
Merci par avance pour l'aide.
Astrometeo974
J'ai mis en œuvre le script de Papoo qui marche à la perfection, mais a cette occasion
je me suis aperçu que la remontée d'info de ma sonde d'humidité était erronée, confère
les traces ci après.
Onglet dispositifs
Idx / Matériel / ID / Unit / Nom / Type / Sous-type / Donnée
219 / RFLINK / 010A / 10 / Temp WS2300 /Temp / LaCrosse TX3/ 18.6 C
220 / RFLINK / 010A / 1 / Hum WS2300 /Humidity/ LaCrosse TX3 /Humidity 65 %
Etat des valeurs
Idx/ Name /Current state /Last updated / sValues
219 /Temp WS2300/ 18.7 / 2017-06-04 17:20:23 / 18.7
220/ Hum WS2300 /3 / 2017-06-04 17:20:23/ 3
Log du script de Papoo
2017-06-04 17:26:00.478 LUA: --- --- --- Export vers emoncms : 17:26
2017-06-04 17:26:00.478 LUA: Temp WS2300 = 18.5
2017-06-04 17:26:00.478 LUA: Sonde Solaire = 209
2017-06-04 17:26:00.479 LUA: Hum WS2300 = 3
2017-06-04 17:26:00.479 LUA: OWL CM180 = 692.000;2868027.000
Le widget Hum WS2300 correspond à celui de la page dispositifs (65%) , contrairement aux valeurs passées (3)
alors que tout est ok pour les autres capteurs.
Si quelqu'un à une idée ou une piste je suis preneur.
Merci par avance pour l'aide.
Astrometeo974
Re: Export données vers emoncms.org
j'ai mis le script à jour viewtopic.php?f=17&t=2017&p=18007#p18007
essai et dis moi si cela fonctionne mieux
essai et dis moi si cela fonctionne mieux
-
astrometeo974
- Messages : 35
- Inscription : 17 févr. 2017, 11:08
Re: Export données vers emoncms.org
Bonjour et merci pour la réponse
A priori le script modifié bug à la ligne 79
2017-06-06 11:10:00.125 Error: EventSystem: in Export_Graphiques_2: [string "--[[script_time_export_emoncms.lua..."]:79: attempt to concatenate a nil value
Mais ce qui me chagrine le plus est la valeur de l'état courant de l'humidité (Hum WS2300) alors que sa valeur est de
220 RFLINK 010A 1 Hum WS2300 Humidity LaCrosse TX3 Humidity 85 %
217 Sonde Solaire 126.5 2017-06-06 11:21:42 126.5
219 Temp WS2300 16.6 2017-06-06 11:20:49 16.6
220 Hum WS2300 3 2017-06-06 11:20:49 3
221 Oregon Temp 18.9 2017-06-06 11:21:42 18.9
223 Pluie WS2300 0;306.7 2017-06-06 11:14:24 0;306.7
Pour info,
Ne serai ce pas la présentation de la valeur données (Humidity 85 %) qui planterai au lieu de (85%) tout simplement.
Merci par avance.
A priori le script modifié bug à la ligne 79
2017-06-06 11:10:00.125 Error: EventSystem: in Export_Graphiques_2: [string "--[[script_time_export_emoncms.lua..."]:79: attempt to concatenate a nil value
Mais ce qui me chagrine le plus est la valeur de l'état courant de l'humidité (Hum WS2300) alors que sa valeur est de
220 RFLINK 010A 1 Hum WS2300 Humidity LaCrosse TX3 Humidity 85 %
217 Sonde Solaire 126.5 2017-06-06 11:21:42 126.5
219 Temp WS2300 16.6 2017-06-06 11:20:49 16.6
220 Hum WS2300 3 2017-06-06 11:20:49 3
221 Oregon Temp 18.9 2017-06-06 11:21:42 18.9
223 Pluie WS2300 0;306.7 2017-06-06 11:14:24 0;306.7
Pour info,
Ne serai ce pas la présentation de la valeur données (Humidity 85 %) qui planterai au lieu de (85%) tout simplement.
Merci par avance.
Re: Export données vers emoncms.org
reprend le script je viens de mettre la version 2 dans le premier post
il te faut maintenant declarer le "canal" de la valeur que tu souhaite remonter
en clair si tu as un device qui remonte température et humidité et que tu souhaite remonter l'humidité il te faudra déclarer le canal 2 pour l'humidité
exemple :
il te faut maintenant declarer le "canal" de la valeur que tu souhaite remonter
en clair si tu as un device qui remonte température et humidité et que tu souhaite remonter l'humidité il te faudra déclarer le canal 2 pour l'humidité
exemple :
Code : Tout sélectionner
les_devices[8] = {device="Temperature exterieure", nom="Humidité", canal=2}-
astrometeo974
- Messages : 35
- Inscription : 17 févr. 2017, 11:08
Re: Export données vers emoncms.org
Merci
En prenant le device de LaCrosseV2 je récupère bien les données (3) les deux premières ok (Temp et Hum) mais la troisième (1) ???
et c'est celle là que je retrouvais dans mon device Hum WS2300.
2017-06-07 18:48:00.474 LUA: =========== export emoncms (v2.01) ===========
2017-06-07 18:48:00.474 LUA: --- --- --- Export vers emoncms : 18:48
2017-06-07 18:48:00.474 LUA: --- --- --- Temp WS2300 = 25.6
2017-06-07 18:48:00.474 LUA: --- --- --- canal = nil
2017-06-07 18:48:00.474 LUA: --- --- --- Sonde Solaire = 588.5
2017-06-07 18:48:00.474 LUA: --- --- --- canal = nil
2017-06-07 18:48:00.475 LUA: --- --- --- LaCrosseV2 = 25.6;40;1
2017-06-07 18:48:00.475 LUA: --- --- --- canal = 2
2017-06-07 18:48:00.475 LUA: --- --- --- valeurs multiples dans LaCrosseV2 = 25.6;40;1
2017-06-07 18:48:00.475 LUA: --- --- --- Nb de point virgule = 2
2017-06-07 18:48:00.475 Error: EventSystem: in Export_Graphiques: [string "--[[script_time_export_emoncms.lua..."]:91: attempt to call global 'split' (a nil value)
Sinon tj erreur en ligne 91
local valeurs = split(v,";")
Cordialement
Astrometeo974
En prenant le device de LaCrosseV2 je récupère bien les données (3) les deux premières ok (Temp et Hum) mais la troisième (1) ???
et c'est celle là que je retrouvais dans mon device Hum WS2300.
2017-06-07 18:48:00.474 LUA: =========== export emoncms (v2.01) ===========
2017-06-07 18:48:00.474 LUA: --- --- --- Export vers emoncms : 18:48
2017-06-07 18:48:00.474 LUA: --- --- --- Temp WS2300 = 25.6
2017-06-07 18:48:00.474 LUA: --- --- --- canal = nil
2017-06-07 18:48:00.474 LUA: --- --- --- Sonde Solaire = 588.5
2017-06-07 18:48:00.474 LUA: --- --- --- canal = nil
2017-06-07 18:48:00.475 LUA: --- --- --- LaCrosseV2 = 25.6;40;1
2017-06-07 18:48:00.475 LUA: --- --- --- canal = 2
2017-06-07 18:48:00.475 LUA: --- --- --- valeurs multiples dans LaCrosseV2 = 25.6;40;1
2017-06-07 18:48:00.475 LUA: --- --- --- Nb de point virgule = 2
2017-06-07 18:48:00.475 Error: EventSystem: in Export_Graphiques: [string "--[[script_time_export_emoncms.lua..."]:91: attempt to call global 'split' (a nil value)
Sinon tj erreur en ligne 91
local valeurs = split(v,";")
Cordialement
Astrometeo974
Re: Export données vers emoncms.org
tu as apparemment commenté une variable (local script=) qui est donc introuvable
post ton script personnalisé stp (en utilisant le bouton Code) afin que je puisse voir ou se situe exactement le pb
post ton script personnalisé stp (en utilisant le bouton Code) afin que je puisse voir ou se situe exactement le pb
-
astrometeo974
- Messages : 35
- Inscription : 17 févr. 2017, 11:08
Re: Export données vers emoncms.org
Ci Joint le script:
Cordialement
Code : Tout sélectionner
--[[script_time_export_emoncms.lua
auteur : papoo
maj : 23/04/2017
date : 18/05/2016
Principe :
exporter les données de compteurs, Températures, etc.. sur le site https://emoncms.org/
Le script est lu toutes les minutes mais n'exporte les données que toutes les 2 minutes
http://easydomoticz.com/forum/viewtopic.php?f=17&t=2017
]]--
--------------------------------------------
------------ Variables à éditer ------------
--------------------------------------------
local nom_script = "export emoncms"
local version = "2.01"
local debugging = true -- true pour voir les logs dans la console log Dz ou false pour ne pas les voir
local url_emoncms = 'http://emoncms.org/api/'
local api_emoncms = 'api_emoncms' -- créer une variable de type chaîne contenant votre code API Write KEY emoncms de 32 caractères
local les_devices = {}; -- pas plus de 11 devices
-- si vous souhaitez remonter les valeurs d'un device qui en comporte plusieurs (ex: température et hygrometrie extérieure)
--renseigner le nom de la valeur à remonter (à partir de la deuxieme valeur) ainsi que le numero d'ordre dans canal (voir exemples ci dessous les_devices[9] et les_devices[17] )
les_devices[1] = {device="Temp WS2300", nom="", canal=""} -- 1er compteur
les_devices[2] = {device="Sonde Solaire", nom="", canal=""} -- 2eme compteur
les_devices[3] = {device="LaCrosseV2", nom="Humidity", canal="2"}-- 3eme compteur
les_devices[4] = {device="OWL CM180", nom="", canal=""}-- 4eme compteur
--les_devices[5] = {device="Compteur Lumières", nom="", canal=""}
--les_devices[6] = {device="Compteur Technique", nom="", canal=""}
--les_devices[7] = {device="DJU", nom="", canal=""}
--les_devices[8] = {device="Temperature exterieure", nom="", canal=""}
--les_devices[8] = {device="Temperature exterieure", nom="Humidité", canal=2}
--les_devices[9] = {device="Temperature Salon", nom="", canal=""}
--les_devices[10] = {device="Couloir 1er étage", nom="", canal=""}
--les_devices[11] = {device="Point de givrage", nom="", canal=""}
--les_devices[12] = {device="Point de rosée", nom="", canal=""}
--les_devices[13] = {device="Temp départ chauffage", nom="", canal=""}
--les_devices[14] = {device="Temp retour chauffage", nom="", canal=""}
--les_devices[16] = {device="Temp Parents", nom="", canal=""}
--les_devices[17] = {device="anémometre", nom="direction", canal=2}
local fields =""
--------------------------------------------
----------- Fin variables à éditer ---------
--------------------------------------------
--------------------------------------------
---------------- Fonctions -----------------
--------------------------------------------
commandArray = {}
function voir_les_logs (s)
if (debugging) then
print ("<font color='#f3031d'>".. s .."</font>");
end
end
function sans_accent(str)
if (str) then
str = string.gsub (str,"Ç", "C")
str = string.gsub (str,"ç", "c")
str = string.gsub (str,"[-èéêë']+", "e")
str = string.gsub (str,"[-ÈÉÊË']+", "E")
str = string.gsub (str,"[-àáâãäå']+", "a")
str = string.gsub (str,"[-@ÀÁÂÃÄÅ']+", "A")
str = string.gsub (str,"[-ìíîï']+", "i")
str = string.gsub (str,"[-ÌÍÎÏ']+", "I")
str = string.gsub (str,"[-ðòóôõö']+", "o")
str = string.gsub (str,"[-ÒÓÔÕÖ']+", "O")
str = string.gsub (str,"[-ùúûü']+", "u")
str = string.gsub (str,"[-ÙÚÛÜ']+", "U")
str = string.gsub (str,"[-ýÿ']+", "y")
str = string.gsub (str,"Ý", "Y")
end
return (str)
end
function urlencode(str)
if (str) then
str = string.gsub (str, "\n", "\r\n")
str = string.gsub (str, "([^%w ])",
function (c) return string.format ("%%%02X", string.byte(c)) end)
str = string.gsub (str, " ", "+")
end
return str
end
--------------------------------------------
-------------- Fin Fonctions ---------------
--------------------------------------------
commandArray = {}
time=os.date("*t")
if time.min % 2 == 0 then -- export des données toutes les 2 minutes
voir_les_logs("=========== ".. nom_script .." (v".. version ..") ===========",debugging)
voir_les_logs("--- --- --- Export vers emoncms : "..time.hour.. ":" ..time.min,debugging)
local API_key = uservariables[api_emoncms]
for i,d in ipairs(les_devices) do
v=otherdevices[d.device]
c=tonumber(d.canal)
voir_les_logs("--- --- --- ".. sans_accent(d.device) .." = "..(v or "nil"),debugging)
voir_les_logs("--- --- --- canal = "..(c or "nil"),debugging)
if v~= nil then v,nbCommas=string.gsub(v,";",";") end-- verification de la presence d'un ou plusieurs point virgule => valeurs multiples
if nbCommas > 1 and c ~= nil then
voir_les_logs("--- --- --- valeurs multiples dans ".. sans_accent(d.device) .." = ".. v,debugging)
voir_les_logs("--- --- --- Nb de point virgule = "..(nbCommas or "nil"),debugging)
local valeurs = split(v,";")
voir_les_logs("--- --- --- valeur 1 = "..(valeurs[1] or "nil"),debugging)
voir_les_logs("--- --- --- valeur 2 = "..(valeurs[2] or "nil"),debugging)
voir_les_logs("--- --- --- valeur 3 = "..(valeurs[3] or "nil"),debugging)
voir_les_logs("--- --- --- valeur 4 = "..(valeurs[4] or "nil"),debugging)
fields = fields .. '{'.. d.nom .. ':' .. valeurs[c] .. '},'
else
fields = fields .. '{'.. d.device .. ':' .. v .. '},'
end
end
fields = string.gsub (fields, ",$", "") -- suppression de la derniere virgule
fields = urlencode(sans_accent(fields)) -- suppression des caractères accentués
voir_les_logs("--- --- --- ".. url_emoncms ..'post?apikey=' .. API_key .. '&json=' .. fields ,debugging)
commandArray[1]={['OpenURL']=url_emoncms ..'post?apikey=' .. API_key .. '&json=' .. fields }
os.execute('curl -m5 "'..url_emoncms ..'post?apikey=' .. API_key .. '&json=' .. fields)
voir_les_logs("========= Fin ".. nom_script .." (v".. version ..") =========",debugging)
end -- if time
-- ============================================================================
return commandArray -
astrometeo974
- Messages : 35
- Inscription : 17 févr. 2017, 11:08
Re: Export données vers emoncms.org
Juste une question les fonctions split et join sont elle en natif dans DZ.papoo a écrit :tu as apparemment commenté une variable (local script=) qui est donc introuvable
post ton script personnalisé stp (en utilisant le bouton Code) afin que je puisse voir ou se situe exactement le pb
Je ne suis pas un grand programmeur, mais je me suis posé la question.
Re: Export données vers emoncms.org
as tu créé la variable utilisateur contenant l"api emoncms?
-
astrometeo974
- Messages : 35
- Inscription : 17 févr. 2017, 11:08
Re: Export données vers emoncms.org
Ouipapoo a écrit :as tu créé la variable utilisateur contenant l"api emoncms?
5 api_emoncms Chaîne xxxxxxxxxxxxxxxxxxxxxxxxxxxx 2017-06-07 20:58:58
ça plante sur la fonction split pour virer les points virgules de la valeur de la variable v, comme
si l'on ne trouvait pas split en fonction globale??