Page 5 sur 17
Re: [LUA] Données Météo avec API Openweathermap
Publié : 30 sept. 2020, 05:37
par denis_brasseur
garycooper a écrit : 29 sept. 2020, 15:40
Bonjour à tous, je n'arrive pas à rapatrier les infos dans un capteur type "temperature+humidite+baromètre".
Pour le capteur qui me pose problème, j'ai rentré les infos suivantes :
Code : Tout sélectionner
-- 1) MAJ du capteur station météo
commandArray[statmetDeviceIdx] = { ['UpdateDevice'] = statmetDeviceIdx..';'..temp..';'..humidity..';'..pressionAtm }
log('MAJ capteur station meteo '..statmetDeviceIdx..' : '..temp..' °C |'..humidity..' % |'..pressionAtm..' hPa')
J'ai essayé de plusieurs façons, mais impossible d'avoir le capteur renseigné, et encore moins d'avoir une icône dans le capteur … (je n'ai pas compris où mettre l'info du BAR_FO)
Peut etre peux tu t'inspirer ou utiliser la commande en json
Traduction de l’ API/JSON de Domoticz

- Capture.PNG (34.59 Kio) Consulté 4494 fois
J'ai également souvenir d'une syntaxe comme celle ci pour un device Temperature/humidity/barometer, avec statut d'humidité et météo à zéro pour commencer, je n'ai pas retrouvé ma source
Code : Tout sélectionner
commandArray[statmetDeviceIdx] = {['UpdateDevice'] = statmetDeviceIdx..'|0|'..temp..';'..humidity..';0;'..pressionAtm..';0'}}
ou bien
Code : Tout sélectionner
commandArray[statmetDeviceIdx] = {['UpdateDevice'] = statmetDeviceIdx..';'..temp..';'..humidity..';0;'..pressionAtm..';0'}}
Chez moi, la valeur de ce type de device ressemble à ceci
0/12.90;87;0;1014;1
Re: [LUA] Données Météo avec API Openweathermap
Publié : 30 sept. 2020, 07:55
par garycooper
Merci denis_brasseur, la première ligne fonctionne à merveille !
Re: [LUA] Données Météo avec API Openweathermap
Publié : 05 nov. 2020, 20:43
par pierrotori
quand le json openwheater ramène un champ date dt : 1604653200
Comment vous faite pour le convertir en ISO-8601 ?, c'est à dire yyy/mm/dd o uHH:MM ?
Re: [LUA] Données Météo avec API Openweathermap
Publié : 05 nov. 2020, 21:38
par Keros
J'avais donné cet exemple dans la première page :
heure_prevision = (os.date("%x à %X", time_prevision))
Une petite recherche "lua time" dans Gogole et tu trouveras ce
site avec les différentes possibilités pour convertir ta date

Re: [LUA] Données Météo avec API Openweathermap
Publié : 05 nov. 2020, 21:47
par pierrotori
un grand merci, ca marche
Re: [LUA] Données Météo avec API Openweathermap
Publié : 24 nov. 2020, 11:03
par Bribel
Bonjour et merci pour tous les tutos sur Domoticz. Ça m'a permis d'avancer.
Mais là je galère depuis un moment en essayant de remplacer Darsky par Openweathermap.
J'ai copié le script de Keros , remplacer les valeurs par les miennes mais je n'arrive pas à obtenir les infos.
NB Si je tape les infos dans mon navigateur ça fonctionne.
Même en gardant les coordonnées du script et en ajoutant mon API j'obtiens :
"2020-11-24 10:44:00.235 Error: EventSystem: in script_time_OWM.lua: [string "..."]:35: attempt to index a nil value (global 'jsonValeur')"
Qu'est-ce que je fais mal ?
PS : à l'instar de nombreuses personnes en passant par l'API Domoticz le retour est "OpenWeatherMap: Error getting http data!" et ce depuis deux semaines.
Cordiales salutations à tous.
Merci d'avance .
Re: [LUA] Données Météo avec API Openweathermap
Publié : 24 nov. 2020, 12:40
par Keros
Bonjour Bridel et bienvenue sur le forum
Tu as bien activer la ligne (enlever les --) correspondant à ton système d'exploitation ?
Code : Tout sélectionner
--Sélectionner le chemin vers votre fichier JSON.lua en enlevant les dé commentant la ligne pour votre système d'exploitation
--json = (loadfile "/home/votrenomutilisé/domoticz/scripts/lua/JSON.lua")() -- For Linux
--json = (loadfile "/home/pi/domoticz/scripts/lua/JSON.lua")() -- for PI
--json = (loadfile "/volume1/@appstore/domoticz/var/scripts/lua/JSON.lua")() -- For Syno
Si tu fais un copier coller de la ligne dans le navigateur qui exécute DomoticZ, tu as bien le Json qui s'affiche ?
Re: [LUA] Données Météo avec API Openweathermap
Publié : 24 nov. 2020, 16:08
par Bribel
Bonjour Keros,
D'abord merci de t'intéresser à mon problème.
Oui j'ai bien dé-commenté la ligne correspondant à mon OS (Linux).
Quand je passe la ligne sur mon navigateur j'obtiens bien les informations. avec cette commande
https://api.openweathermap.org/data/2.5 ... its=metric..
J'ai même essayé en rajoutant &exclude=minutely,hourly,daily pour n'avoir que current. Mais rien n'y fait. Là encore ça fonctionne sur le navigateur mais pas dans le script.
Pour info j'ai essayé de lire un device interne avec la commande config=assert(io.popen() et ça me donne les bons résultats.
Je suis un peu perdu.
Cordialement
Re: [LUA] Données Météo avec API Openweathermap
Publié : 24 nov. 2020, 19:08
par Keros
J'allais te copier la commande config=assert(io.popen() mais je l'avais déjà mise dans le tuto

et tu l'a déjà essayé
Sauf que ça ne marche pas avec le lien web
Tu exécutes le script où ? Depuis les évènements dans DomoticZ ou depuis un fichier .lua ?
Re: [LUA] Données Météo avec API Openweathermap
Publié : 24 nov. 2020, 20:46
par Bribel
Je l'exécute depuis les événements de Domoticz.
J'ai également essayé avec les valeurs directement en lieu et place des variables : pas de changement.
print(blocjson) donne Lua: (vide)