Page 11 sur 11

Re: [DzVents] Données Météo Weather Visual Crossing

Publié : 11 déc. 2023, 17:30
par MAidEN91
J'ai activé le mode debug de DzVent mais cela ne m'aide pas beaucoup plus,

On voit bien les widgets qui se mettent a jour et j'ai toujours l'erreur concernant le Barometre.

Code : Tout sélectionner

2023-12-11 17:25:13.788 Status: dzVents: Debug: - HTTPResponse: OWMcallback
2023-12-11 17:25:13.831 Status: dzVents: Info: Handling httpResponse-events for: "OWMcallback"
2023-12-11 17:25:13.846 Status: dzVents: reception de weathervisualcrossing
2023-12-11 17:25:13.860 Status: EventSystem: Script event triggered: /home/pi/domoticz/dzVents/runtime/dzVents.lua
2023-12-11 17:25:13.848 Error: dzVents: Error: (2.5.3) -- weather.visualcrossing v1.1: No status provided. Temperature + humidity not set
2023-12-11 17:25:14.008 Status: dzVents: Debug: Dumping domoticz data to /home/pi/domoticz/scripts/dzVents/domoticzData.lua
2023-12-11 17:25:14.202 Status: dzVents: Debug: dzVents version: 2.5.3
2023-12-11 17:25:14.203 Status: dzVents: Debug: Event triggers:
2023-12-11 17:25:14.203 Status: dzVents: Debug: - Device: UV
2023-12-11 17:25:14.359 Status: dzVents: Debug: Dumping domoticz data to /home/pi/domoticz/scripts/dzVents/domoticzData.lua
2023-12-11 17:25:14.741 Status: dzVents: Debug: dzVents version: 2.5.3
2023-12-11 17:25:14.741 Status: dzVents: Debug: Event triggers:
2023-12-11 17:25:14.741 Status: dzVents: Debug: - Device: Visibilite
2023-12-11 17:25:14.741 Status: dzVents: Debug: - Device: Pluie
2023-12-11 17:25:14.741 Status: dzVents: Debug: - Device: Soleil
2023-12-11 17:25:14.741 Status: dzVents: Debug: - Device: Couverture nuageuse
2023-12-11 17:25:14.742 Status: dzVents: Debug: - Device: Vent
Quand je lance l'url avec l'api à la main sur mon navigateur j'obtiens bien toutes les infos :
{"queryCost":1,"latitude":48.4469,"longitude":2.18148,"resolvedAddress":"xxxxxx, France","address":"xxxxxx","timezone":"Europe/Paris","tzoffset":1.0,"description":"Similar temperatures continuing with no rain expected.","days":[{"datetime":"2023-12-11","datetimeEpoch":1702249200,"tempmax":11.7,"tempmin":10.2,"temp":10.8,"feelslikemax":11.7,"feelslikemin":10.2,"feelslike":10.8,"dew":10.0,"humidity":94.5,"precip":0.2,"precipprob":77.4,"precipcover":8.33,"preciptype":["rain"],"snow":0.0,"snowdepth":0.0,"windgust":20.5,"windspeed":8.6,"winddir":202.7,"pressure":1010.5,"cloudcover":100.0,"visibility":23.7,"solarradiation":10.9,"solarenergy":0.4,"uvindex":1.0,"severerisk":10.0,"sunrise":"08:32:37","sunriseEpoch":1702279957,"sunset":"16:56:06","sunsetEpoch":1702310166,"moonphase":0.95,"conditions":"Rain, Overcast","description":"Cloudy skies throughout the day with late afternoon rain.","icon":"rain","stations":null,"source":"fcst"}],"stations":{"AU951":{"distance":18969.0,"latitude":48.599,"longitude":2.064,"useCount":0,"id":"AU951","name":"F5POE Forges-les-bains FR","quality":0,"contribution":0.0},"LFPN":{"distance":34043.0,"latitude":48.75,"longitude":2.12,"useCount":0,"id":"LFPN","name":"LFPN","quality":50,"contribution":0.0},"D5083":{"distance":21439.0,"latitude":48.4,"longitude":1.9,"useCount":0,"id":"D5083","name":"DW5083 Sainville FR","quality":0,"contribution":0.0},"D3623":{"distance":28213.0,"latitude":48.693,"longitude":2.273,"useCount":0,"id":"D3623","name":"DW3623 Longjumeau FR","quality":0,"contribution":0.0}},"currentConditions":{"datetime":"16:15:00","datetimeEpoch":1702307700,"temp":11.0,"feelslike":11.0,"humidity":86.3,"dew":8.8,"precip":0.0,"precipprob":0.0,"snow":0.0,"snowdepth":0.0,"preciptype":null,"windgust":5.3,"windspeed":3.4,"winddir":225.0,"pressure":1010.0,"visibility":10.0,"cloudcover":100.0,"solarradiation":71.0,"solarenergy":0.3,"uvindex":1.0,"conditions":"Overcast","icon":"cloudy","stations":["AU951","LFPN","D5083","D3623"],"source":"obs","sunrise":"08:32:37","sunriseEpoch":1702279957,"sunset":"16:56:06","sunsetEpoch":1702310166,"moonphase":0.95}}
dans mon widget il y a bien 5 infos attendues (temp, humidité, baromètre, prevision, point de rosée)

Je sèche un peu et ne sais plus trop quoi vérifer...

Re: [DzVents] Données Météo Weather Visual Crossing

Publié : 11 déc. 2023, 19:11
par Keros
Je t'ai indiqué mes petits guides dans ma présentation ? Il y en a un concernant le débogage. Tu verras que je n'y parle pas du tout du mode debug.


Ok donc l'appel Json est correct : le problème doit certainement venir de la récupération des infos dans le Json.
J'ai expliqué comment on récupère des données dans un Json dans mon tuto sur OpenWeatherMap.
L'idée est d'écrire les variables dans les logs pour comprendre ce qu'elles ont comme données et vérifier qu'on récupère les infos au bon endroit dans le Json.

Re: [DzVents] Données Météo Weather Visual Crossing

Publié : 11 déc. 2023, 22:48
par MAidEN91
J'ai réussi a avancer en suivant les principes de debug :)

J'arrive bien a sortir certains paramètres avec des print :

Code : Tout sélectionner

	print('données baro temp/hum/conditions/pressure/point de rosée')
	print(v.currentConditions.temp)		
	print(v.currentConditions.humidity)
	print(v.currentConditions.pressure)
renvoi :

Code : Tout sélectionner

2023-12-11 22:30:14.731 Status: dzVents: données baro temp/hum/pressure
2023-12-11 22:30:14.731 Status: dzVents: 9.9
2023-12-11 22:30:14.731 Status: dzVents: 91.9
2023-12-11 22:30:14.731 Status: dzVents: 1010.0
Par contre la correspondance se fait pas bien avec mon widget, le problème vient de la valeur "domoticz.HUM_COMPUTE " comme l'avait indiqué Patrice, celle ci n'est pas interprétée par mon domoticz.

Je l'ai remplacé comme indiqué par "domoticz.HUM_DRY"
dz.devices(idx).updateTempHumBaro(v.currentConditions.temp,v.currentConditions.humidity,domoticz.HUM_DRY,v.currentConditions.pressure,baro)
end },
qui me génère cette erreur correspondant a cette ligne :

Code : Tout sélectionner

2023-12-12 00:10:06.865 Error: dzVents: Error: (2.5.3) -- weather.visualcrossing v1.1: An error occurred when calling event handler weathervisualcrossing
2023-12-12 00:10:06.865 Error: dzVents: Error: (2.5.3) -- weather.visualcrossing v1.1: ...moticz/scripts/dzVents/scripts/weathervisualcrossing.lua:60: attempt to index a nil value (global 'domoticz')
A présent je sèche un peu...

Question subsidiaire ; j'ai renseigné le script avec le nom de ma ville uniquement mais dans la requête JSON il y a 3 villes qui remontent (et donc plusieurs fois certains champs type temp, hum...) je ne vois pas bien d'où ca peux venir, je me retrouve avec 2 données différentes j'aimerais bien n'en avoir qu'une :?

Re: [DzVents] Données Météo Weather Visual Crossing

Publié : 12 déc. 2023, 08:07
par denis_brasseur
MAidEN91 a écrit : 11 déc. 2023, 22:48
Je l'ai remplacé comme indiqué par "domoticz.HUM_DRY"
dz.devices(idx).updateTempHumBaro(v.currentConditions.temp,v.currentConditions.humidity,domoticz.HUM_DRY,v.currentConditions.pressure,baro)
end },
qui me génère cette erreur correspondant a cette ligne :

Code : Tout sélectionner

2023-12-12 00:10:06.865 Error: dzVents: Error: (2.5.3) -- weather.visualcrossing v1.1: An error occurred when calling event handler weathervisualcrossing
2023-12-12 00:10:06.865 Error: dzVents: Error: (2.5.3) -- weather.visualcrossing v1.1: ...moticz/scripts/dzVents/scripts/weathervisualcrossing.lua:60: attempt to index a nil value (global 'domoticz')
A présent je sèche un peu...
La réponse est dans les logs, ligne 60 de ton script :
.lua:60: attempt to index a nil value (global 'domoticz')
{idx = 'Barometre', cde = function (dz, idx, v)
.................................................................................
dz.devices(idx).updateTempHumBaro(v.currentConditions.temp,v.currentConditions.humidity,domoticz.HUM_DRY,v.currentConditions.pressure,baro)
end},
Attention aux copier/coller hâtif, il faut souvent adapter le code, et pour cela, le comprendre d'abord

Re: [DzVents] Données Météo Weather Visual Crossing

Publié : 12 déc. 2023, 10:13
par patoche
La ligne qui fonctionne pour mon cas.

Code : Tout sélectionner

 {idx = 'Barometre', cde = function (domoticz, idx, v)

Code : Tout sélectionner

domoticz.devices(idx).updateTempHumBaro(v.currentConditions.temp, v.currentConditions.humidity, domoticz.HUM_DRY, v.currentConditions.pressure, baro)
Ca fonctionne aussi peut être avec dz au lieu de domoticz, à tester

Code : Tout sélectionner

 {idx = 'Barometre', cde = function (dz, idx, v)
dz.devices(idx).updateTempHumBaro(v.currentConditions.temp, v.currentConditions.humidity, dz.HUM_DRY, v.currentConditions.pressure, baro)

Re: [DzVents] Données Météo Weather Visual Crossing

Publié : 12 déc. 2023, 10:31
par Flying Domotic
patoche a écrit : 12 déc. 2023, 10:13 Ça fonctionne aussi peut être avec dz au lieu de domoticz, à tester
Il est possible de nommer l'instance de Domoticz pour dzVent comme on veut. Ça peut être Domoticz, dz ou xxxx, au choix.

L'endroit où on voit comment l'instance s'appelle pour le script en cours (et seulement pour lui) est la déclaration de la fonction dans la ligne (en début de script)

Code : Tout sélectionner

execute = function([mettre ici le nom donné à l'instance Domoticz pour ce script], [mettre ici le nom donné à l'item pour ce script])=...
Si on souhaite l’appeler domoticz, alors utiliser

Code : Tout sélectionner

execute = function(domoticz, item)=...
Si on préfère dz, alors utiliser

Code : Tout sélectionner

execute = function(dz, item)=...
Et si on veux trucmuch, alors

Code : Tout sélectionner

execute = function(trucmuch, item)=...
Attention, si on le modifie dans cette ligne, alors il faut le modifier partout ailleurs dans le script courant.

Par contre, quand on ne sait pas trop comment il a été nommé par l'auteur d'un script, alors aller voir cette ligne, et utiliser ensuite ce nom dans le reste du script, y compris pour vos ajouts/modifs.

Re: [DzVents] Données Météo Weather Visual Crossing

Publié : 12 déc. 2023, 12:31
par patoche
Merci pour ces précisions

Re: [DzVents] Données Météo Weather Visual Crossing

Publié : 12 déc. 2023, 22:55
par MAidEN91
Hello,

Merci à tous pour vos retours, après correction j'ai fait la modif en passant domoticz en dz ici => dz.HUM_DRY

Et la tout fonctionne bien sur mon baromètre :D

Re: [DzVents] Données Météo Weather Visual Crossing

Publié : 12 déc. 2023, 23:00
par Keros
Voilà, bravo :)

Cela t'a pris du temps, mais maintenant, tu as une idée du fonctionnement du script et tu vas pouvoir aller plus loin : que ce soit avec ce script-là en ajoutant d'autres infos ou d'autres scripts qui auraient besoin de récupérer une info dans un Json.