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
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 :lol: et tu l'a déjà essayé :mrgreen:

Sauf que ça ne marche pas avec le lien web :roll:

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)