[LUA-DzVents] Données Météo avec API Openweathermap

Vous avez créé un script LUA dont vous êtes fier, un .sh génial, un programme Python hors du commun, un Tuto, c'est ici que vous pouvez les partager.
denis_brasseur
Messages : 898
Inscription : 24 déc. 2018, 17:05
Localisation : (26)

Re: [LUA] Données Météo avec API Openweathermap

Message 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é 4497 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
Pi3 + DD PiDrive - RFXtrx433 - AEON Labs ZW090
garycooper
Messages : 453
Inscription : 07 août 2017, 23:58

Re: [LUA] Données Météo avec API Openweathermap

Message par garycooper »

Merci denis_brasseur, la première ligne fonctionne à merveille !
pierrotori
Messages : 821
Inscription : 29 févr. 2016, 12:11

Re: [LUA] Données Météo avec API Openweathermap

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

Re: [LUA] Données Météo avec API Openweathermap

Message 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 ;)
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
pierrotori
Messages : 821
Inscription : 29 févr. 2016, 12:11

Re: [LUA] Données Météo avec API Openweathermap

Message par pierrotori »

un grand merci, ca marche
Bribel
Messages : 8
Inscription : 13 juin 2019, 21:29

Re: [LUA] Données Météo avec API Openweathermap

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

Re: [LUA] Données Météo avec API Openweathermap

Message 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 ?
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
Bribel
Messages : 8
Inscription : 13 juin 2019, 21:29

Re: [LUA] Données Météo avec API Openweathermap

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

Re: [LUA] Données Météo avec API Openweathermap

Message 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 ?
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
Bribel
Messages : 8
Inscription : 13 juin 2019, 21:29

Re: [LUA] Données Météo avec API Openweathermap

Message 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)
Dernière modification par Bribel le 24 nov. 2020, 22:03, modifié 1 fois.
Répondre