Page 2 sur 5

Re: [LUA] Quantité de précipitation avec OpenWeatherMap

Publié : 18 janv. 2021, 13:03
par Keros
Je n'avais pas vu, mais je pense qu'il serait mieux que tu retires les morceaux de code qui ne correspondent pas à la récupération des quantités de précipitation. Ces éléments ne seront pas perdu puisqu'ils sont déjà dans le forum ;)

Re: [LUA] Quantité de précipitation avec OpenWeatherMap

Publié : 18 janv. 2021, 13:13
par Vianncy
Effectivement, tu as raison. Je ne voulais pas tout mettre au début, puis j'ai pensé que ça aiderait les gens à mieux comprendre de mettre le code entier. Au final, j'ai plus l'impression d'avoir embrouillé certaines personnes qu'autre chose. Désolé! :oops:
Finalement, j'ai supprimé ce qui ne concerne pas le sujet du topic et garder que ce qui concerne nos quantités de précipitation. En espérant que ce soit plus clair pour tout le monde. ;)

Re: [LUA] Quantité de précipitation avec OpenWeatherMap

Publié : 18 janv. 2021, 16:28
par Doudy
Après test dans ton "Le code en entier:" il me semble qu'il manque :

Code : Tout sélectionner

local time              = os.date("*t")       -- Si vous souhaitez exécuté ce script toutes les X min
local start_hour        = '06:00'             -- Si vous souhaitez exécuté ce script tous les jours à 6h
local actual_hour       = os.date("%H:%M")
C'est pour "actual_hour"
;)

Re: [LUA] Quantité de précipitation avec OpenWeatherMap

Publié : 18 janv. 2021, 16:40
par Doudy
Par contre avec Daksky, j'ai ceci :
Image
Avec OWM, j'ai ceci :
Image

2h : 0.0mm <--> 14%
4h : 0.0 mm <--> 10%
12 h : 1.07 mm <--> 49%
24 h : 3.8 mm <--> 22%

Darksky mise à jour : 2021-01-18 16:30:10
OWM mise à jour : 2021-01-18 16:30:04

Re: [LUA] Quantité de précipitation avec OpenWeatherMap

Publié : 18 janv. 2021, 16:43
par Vianncy
Doudy a écrit : 18 janv. 2021, 16:28 Après test dans ton "Le code en entier:" il me semble qu'il manque :

Code : Tout sélectionner

local time              = os.date("*t")       -- Si vous souhaitez exécuté ce script toutes les X min
local start_hour        = '06:00'             -- Si vous souhaitez exécuté ce script tous les jours à 6h
local actual_hour       = os.date("%H:%M")
C'est pour "actual_hour"
;)
Effectivement. J'ai pas pu tester ce midi après avoir enlevé le 'en-trop'. C'est rajouté, merci. ;)

Re: [LUA] Quantité de précipitation avec OpenWeatherMap

Publié : 18 janv. 2021, 17:18
par Vianncy
Doudy a écrit : 18 janv. 2021, 16:40 Par contre avec Daksky, j'ai ceci :
Image
Avec OWM, j'ai ceci :
Image

2h : 0.0mm <--> 14%
4h : 0.0 mm <--> 10%
12 h : 1.07 mm <--> 49%
24 h : 3.8 mm <--> 22%

Darksky mise à jour : 2021-01-18 16:30:10
OWM mise à jour : 2021-01-18 16:30:04
Merci de ton retour. ;)
Je ne connais Daksky que de nom, je ne l'ai jamais utilisé. Que récupères-tu dans ces valeurs en pourcentage ? Les probabilités de pluie ?

Re: [LUA] Quantité de précipitation avec OpenWeatherMap

Publié : 18 janv. 2021, 18:33
par Keros
Oula, ne commencez pas à comparer les services météos :mrgreen:

Re: [LUA] Quantité de précipitation avec OpenWeatherMap

Publié : 19 janv. 2021, 22:12
par garycooper
Juste une question, peut-on calculer la quantité de précipitation (pluie et neige) sans créer les capteurs 1h, 2h, 4h et 6h ? A y réfléchir, cela me semble plutôt superflu et j'aurai juste voulu avoir les prévisions de précipitation pluie et neige dans 12h.
du coup, j'ai créé 2 capteurs déclarés comme ça :
local douzeHeurespluieDeviceIdx = 31
local douzeHeuresneigeDeviceIdx = 32
mais le code que j'ai mis

Code : Tout sélectionner

    for i=1, 12 do --On parcourt les 12 prochaines heures.
        if (jsonValeur.hourly[i].rain) then  --Pluie prévue ?
            somme = somme + jsonValeur.hourly[i].rain["1h"] --Si oui, on additionne la quantité annoncée à cette heure à la somme des quantités. Sinon, on ne fait rien.
        end 
        if (jsonValeur.hourly[i].snow) then  --Neige prévue ?
            somme =  somme + jsonValeur.hourly[1].snow["1h"] --Même principe.
        end

        if (i == 2) then 
            quantiteDeuxHeures = somme
        elseif (i == 4) then
            quantiteQuatresHeures = somme
        
        elseif (i == 6) then
            quantiteSixHeures = somme
        
        elseif (i == 12) then
            quantiteDouzeHeures = somme
        end
        
    end
    
    commandArray[douzeHeurespluieDeviceIdx]  = { ['UpdateDevice'] = douzeHeurespluieDeviceIdx..'|1|0;'..quantiteDouzeHeures }
    commandArray[douzeHeuresneigeDeviceIdx]  = { ['UpdateDevice'] = douzeHeuresneigeDeviceIdx..'|1|0;'..quantiteDouzeHeures }

me remonte
Error: EventSystem: in /home/pi/domoticz/scripts/lua/script_time_test.lua: /home/pi/domoticz/scripts/lua/script_time_test.lua:172: attempt to concatenate a nil value (global 'quantiteDouzeHeures')

Re: [LUA] Quantité de précipitation avec OpenWeatherMap

Publié : 19 janv. 2021, 22:20
par garycooper
Je m'auto-réponds. J'avais oublié la ligne

Code : Tout sélectionner

     local somme = 0 -- Somme des quantité. Peut être placée en en-tête.
Ca fonctionne (à priori). Je vais tester quelques jours

Re: [LUA] Quantité de précipitation avec OpenWeatherMap

Publié : 19 janv. 2021, 22:36
par Vianncy
Pour faire ce que tu veux, tu peux aussi supprimer les variables de quantités pour les heures que tu ne veux pas et supprimer les if qui deviennent inutile (dans ton cas, tu peux conserver que ce qui concerne les 12h).
Autre point, tel que j'ai la mis, la somme regroupe pluie+neige. Si tu veux avoir séparément pluie et neige, il faut créer que tu ais une variable de somme pour la pluie et une pour la neige. Pareil pour les variables de quantités, une pour la pluie et la neige (à mettre ensuite dans ta fonction commandArray). ;)

Je ne sais pas si je suis très clair.. Si t'as des questions, n'hésite pas.