1er Script avec weewx

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: 1er Script avec weewx

Message 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.
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
salinois
Messages : 330
Inscription : 08 févr. 2024, 19:10

Re: 1er Script avec weewx

Message par salinois »

et je peux ajouter un print tempdevice , dans le script ?
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: 1er Script avec weewx

Message par Keros »

C'est quoi tempdevice ?

...

C'est une variable contenant du texte.

...

Donc oui, tu peux l'afficher dans les logs ;)
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
salinois
Messages : 330
Inscription : 08 févr. 2024, 19:10

Re: 1er Script avec weewx

Message 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
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: 1er Script avec weewx

Message 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 !!
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
salinois
Messages : 330
Inscription : 08 févr. 2024, 19:10

Re: 1er Script avec weewx

Message 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
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: 1er Script avec weewx

Message 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.
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
salinois
Messages : 330
Inscription : 08 févr. 2024, 19:10

Re: 1er Script avec weewx

Message par salinois »

donc je dois deplacer :

Code : Tout sélectionner

print("tempdevice= " .. tempdevice)
ailleurs
Flying Domotic
Messages : 772
Inscription : 10 mars 2020, 15:26

Re: 1er Script avec weewx

Message par Flying Domotic »

Attention, les nombres flottants sont écrits avec des virgules comme séparateurs, alors que Domoticz attend plutôt un point.
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: 1er Script avec weewx

Message 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.
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
Répondre