Page 3 sur 8
Re: 1er Script avec weewx
Publié : 10 févr. 2024, 21:14
par Keros
Donc ton script s'exécute (1) et il n'y a pas d'erreur (2). C'est déjà ça !!
Maintenant la question : est-ce qu'il fait quelque chose ?
Re: 1er Script avec weewx
Publié : 10 févr. 2024, 21:29
par salinois
et oui
je ne sais pas comment @domcars0 » 22 févr. 2017, 18:45 a fait fonctionné
mais ça avance , je ne sais pas si c'est dans le bon sens

Re: 1er Script avec weewx
Publié : 10 févr. 2024, 21:42
par salinois
je pense peut-etre que c'est dans cette partie que ça se joue ...
Code : Tout sélectionner
local filename = "/var/www/html/weewx/domoticz.xml"
local line , tempdevice = ''
local temperature,humidity,pressure = 0
-- local windcomp = 'N'
for line in io.lines(filename) do
if string.find(line,"\"temp\"") then
temperature=tonumber(string.match(line, "%-?%d+.?%d*"))
elseif string.find(line,"\"hum\"") then
humidity=tonumber(string.match(line, "%d+"))
elseif string.find(line,"\"barometer\"") then
pressure=tonumber(string.match(line, "%d+"))
end
Re: 1er Script avec weewx
Publié : 10 févr. 2024, 21:53
par salinois
donc , j'y ai ajouté un autre print ici:
Code : Tout sélectionner
for line in io.lines(filename) do
print ("temperature")
if string.find(line,"\"temp\"") then
temperature=tonumber(string.match(line, "%-?%d+.?%d*"))
elseif string.find(line,"\"hum\"") then
humidity=tonumber(string.match(line, "%d+"))
elseif string.find(line,"\"barometer\"") then
pressure=tonumber(string.match(line, "%d+"))
end
et ça affiche 5 fois le print Temperature
2024-02-10 21:49:00.281 Status: LUA: temperature
2024-02-10 21:49:00.281 Status: LUA: temperature
2024-02-10 21:49:00.281 Status: LUA: temperature
2024-02-10 21:49:00.281 Status: LUA: temperature
2024-02-10 21:49:00.281 Status: LUA: temperature
2024-02-10 21:49:00.282 Status: LUA: coucou
2024-02-10 21:49:00.282 Status: LUA: bonjour
Re: 1er Script avec weewx
Publié : 10 févr. 2024, 22:00
par Keros
Tu as mis ton print ("temperature") dans une boucle for : à chaque ligne du fichier filename = "/var/www/html/weewx/domoticz.xml", il va te mettre "temperature" dans les logs. Le fichier aurait 5 lignes avec des infos.
Cette boucle recherche les valeurs dans les lignes du fichier et les enregistre dans des variables.
Ce serait ces variables qu'il serait intéressant de mettre dans les logs pour voir ce qu'elles contiennent.
Tu peux également vérifier que le fichier /var/www/html/weewx/domoticz.xml contient bien les infos que tu souhaites récupérer. Si tu peux copier ici son contenu, ce sera peut-être plus simple pour t'aider.
Re: 1er Script avec weewx
Publié : 10 févr. 2024, 22:06
par salinois
oui oui, j'ai compté dans la boucle et changer les print pour voir ça correspond avec ce que tu as dit.
voilà le contenu du fichier xml à cet emplacement: /var/www/html/weewx/domoticz.xml
Code : Tout sélectionner
<weewx>
<data realtime="temp">21,5<!--Temperature Bureau--></data>
<data realtime="hum">50<!--Humidite Bureau--></data>
<data realtime="barometer">991,7<!--Barometre--></data>
</weewx>
Re: 1er Script avec weewx
Publié : 10 févr. 2024, 22:13
par Keros
Donc ton script récupère les données dans ses variables. Première étape faite !!
Deuxième étape : envoyer ces valeurs dans les dispositifs. C'est là qu'il faut bien renseigner les numéros de dispositifs dans la partie -- Config au début du script et activer les fonctions pour les infos soient poussées dans les dispositifs.
Re: 1er Script avec weewx
Publié : 10 févr. 2024, 22:18
par salinois
une remarque,
c'est normal qu'il y ait plusieurs "commandArray" et un seul return commandArray ?
j'ai modifié du coup ici:
room_device_idx
Code : Tout sélectionner
if not ( humidity == nil or temperature == nil or pressure == nil ) then
tempdevice = room_device_idx..'|0|'..temperature..';'..humidity..';0;'..pressure..';0'
commandArray [2] = {['UpdateDevice'] = tempdevice }
Re: 1er Script avec weewx
Publié : 10 févr. 2024, 22:21
par Keros
Oui, dans le script on "ajoute" les infos dans les commandArray (tu remarqueras qu'ils ont tous un nom différent) et c'est le return commandArray qui "exécutera" tous les commandArray et arrêtera le script.
Re: 1er Script avec weewx
Publié : 10 févr. 2024, 22:31
par salinois
Keros a écrit : 10 févr. 2024, 22:13
Donc ton script récupère les données dans ses variables. Première étape faite !!
Deuxième étape : envoyer ces valeurs dans les dispositifs. C'est là qu'il faut bien renseigner les numéros de dispositifs dans la partie -- Config au début du script et activer les fonctions pour les infos soient poussées dans les dispositifs.
Donc, est-ce qu'il faut 3 dispositifs pour Temp, Hum et Barometre ?