Page 4 sur 8

Re: 1er Script avec weewx

Publié : 10 févr. 2024, 22:34
par Keros
La réponse est dans le code :
salinois a écrit : 10 févr. 2024, 22:18

Code : Tout sélectionner

tempdevice = room_device_idx..'|0|'..temperature..';'..humidity..';0;'..pressure..';0'
Les trois données de température / humidité / pression sont envoyées dans un seul dispositif.

Re: 1er Script avec weewx

Publié : 10 févr. 2024, 23:04
par salinois
et je peux ajouter un print tempdevice , dans le script ?

Re: 1er Script avec weewx

Publié : 10 févr. 2024, 23:06
par Keros
C'est quoi tempdevice ?

...

C'est une variable contenant du texte.

...

Donc oui, tu peux l'afficher dans les logs ;)

Re: 1er Script avec weewx

Publié : 10 févr. 2024, 23:37
par salinois
voilà je l'ai fait

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 = {['UpdateDevice'] = tempdevice }
end
print (tempdevice)
et voilà la log !!!!!

2024-02-10 23:34:00.048 Status: LUA:

bon, c'est tout for today, talk to you tomorow

salinois

Re: 1er Script avec weewx

Publié : 10 févr. 2024, 23:50
par Keros
Petit conseil : pour éviter d'avoir un log "vide", je fais mes print de la forme

Code : Tout sélectionner

print("tempdevice= " .. tempdevice)
Ainsi une variable vide s'afficherait :
2024-02-10 23:34:00.048 Status: LUA: tempdevice=
:arrow: La variable tempdevice est vide. Il faut que tu remontes dans le script pour comprendre pourquoi elle n'est pas remplie. La condition ne serait pas satisfaite ? Pourquoi ?


PS : J'ai peut-être été vite en écrivant
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 !!

Re: 1er Script avec weewx

Publié : 11 févr. 2024, 12:25
par salinois
bonjour,

voilà c'est fait et le resultat est:
2024-02-10 23:41:00.484 Status: LUA: tempdevice=
donc vide, pourtant il y a bien les bonne valeurs dans le fichier xml..

Code : Tout sélectionner

<weewx>
     <data realtime="temp">20,4<!--Temperature Bureau--></data>
     <data realtime="hum">50<!--Humidite Bureau--></data>
     <data realtime="barometer">997,8<!--Barometre--></data>
</weewx>
salinois

Re: 1er Script avec weewx

Publié : 11 févr. 2024, 13:07
par Keros
Il y a donc quelque chose qui ne fonctionne pas.

As toi de regarder ce que le script récupère comme donnée lorsqu'il analyse le fichier xml. Là où on faisait un print ("temperature"), il faut aller plus loin pour connaitre les valeurs des variables.

Re: 1er Script avec weewx

Publié : 11 févr. 2024, 13:19
par salinois
donc je dois deplacer :

Code : Tout sélectionner

print("tempdevice= " .. tempdevice)
ailleurs

Re: 1er Script avec weewx

Publié : 11 févr. 2024, 14:07
par Flying Domotic
Attention, les nombres flottants sont écrits avec des virgules comme séparateurs, alors que Domoticz attend plutôt un point.

Re: 1er Script avec weewx

Publié : 11 févr. 2024, 14:17
par Keros
@salinois, le print de tempdevice doit rester après que la variable ait été calculée.
Là, on souhaite connaitre les valeurs des variables permettant de calculer tempdevice.

La formule de "calcul" de tempdevice est :

Code : Tout sélectionner

tempdevice = 'room_device_idx..|0|'..temperature..';'..humidity..';0;'..pressure..';0'
Il y a 4 variables :
  • room_device_idx
  • temperature
  • humidity
  • pressure
En sachant qu'au-dessus, il y a la condition :

Code : Tout sélectionner

if not ( humidity == nil or temperature == nil or pressure == nil ) then
Si une des trois variables humidity, temperature ou pressure est nulle, alors le calcul de tempdevice n'est pas fait.