Re: [DzVents] Données Météo Weather Visual Crossing
Publié : 04 juin 2023, 17:01
C'est peut-être normal. Un moyen de vérifier serait de générer le json et regarder les données qu'il y a dedans.
Reprenez le contrôle de votre domotique
https://easydomoticz.com/forum/
J'ai l'impression que les probas sur cette sont plus "généreuses" (je trouve les % très élevé à comparé de Dark)et surtout elles sont souvent égales sur une tranche horaire ( typiquement quelques heures).gawel3164 a écrit : 04 juin 2023, 16:48 Merci beaucoup pour cet excellent script !!! ça m'enlève une sacrée épine du pied!
Par contre, il y a effectivement un problème sur les probabilités de pluie. Avec Darksky je gérais mon arrosage automatique en fonction des probabilités de pluie et j'avais donc besoin des proba à 1h, 5h, 12h et 24h. J'ai donc modifié le script de BernardC afin de retrouver ces 4 probabilités et aujourd'hui, les quatre affichent 47.6%. Etrange non?
Code : Tout sélectionner
local function lectProb(duree,v)
-- duree--durée en H de la probabilité
-- V données JSON
local Time = require('Time')
local now = Time()
local Heure = now.hour+1 -- heure de debut + 1 pour index
local J = 1 --init jour
local Prob,ResulProb =0,0
H=Heure + duree
Prob= v.days[J].hours[H].precipprob
ResulProb = Prob
return (ResulProb )
endCode : Tout sélectionner
local function lectProb(duree,v)
-- duree--durée en H de la probabilité
-- V données JSON
local Time = require('Time')
local now = Time()
local Heure = now.hour
local J = 1 --init jour
local Prob = 0
H = Heure + duree
if H > 23 then
J = math.floor(H/24)+1
H = math.fmod(H,24)
end
H=H+1 -- heure de debut + 1 pour index
Prob= v.days[J].hours[H].precipprob
return (Prob )
end
endCode : Tout sélectionner
h=Heure + duree
if h > 24 then J =2 H = h-24
else
H=h
endCode : Tout sélectionner
local function lectProbVent(duree,v,dz)
-- duree--durée en H de la probabilité
-- V données JSON
local Time = require('Time')
local now = Time()
local Heure = now.hour
local J = 1 --init jour
local Rafale,Vent =0,0
local degrees= 0
if H > 23 then
J = math.floor(H/24)+1
H = math.fmod(H,24)
end
H=H+1 -- heure de debut + 1 pour index
Rafale= v.days[J].hours[H].windgust
Vent= v.days[J].hours[H].windspeed
degrees = degrees + v.days[J].hours[H].winddir
local quad = 'N'
local quadrants = {"NNE","NE","ENE","E","ESE","SE","SSE","S","SSW","SW","WSW","W","WNW","NW","NNW"}
if degrees <= 348.75 and degrees > 11.25 then quad = quadrants[tonumber(math.floor((degrees - 11.25) / 22.5)+1)] end
return degrees, quad, Vent/3.6, Rafale/3.6
endCode : Tout sélectionner
--Proba Vent dans 5H ajout d'un capteur virtuel "Vent" sans températeures le 9/06/2023 lectProb(Nbre H proba vent,JSON,domoticz)
{idx = 'Proba Vent dans 5H', cde = function (dz, idx, v) dz.devices(idx).updateWind(lectProbVent(5,v,dz)) end },
Code : Tout sélectionner
--======================Températures MAJ le 26/6/2023==============================
local function lectTemp(duree,v)
local Time = require('Time')
local now = Time()
local Heure = now.hour+1 -- heure de debut + 1 pour index
local J = 1 --init jour
H=Heure + duree
if H > 23 then
J = math.floor(H/24)+1
H = math.fmod(H,24)
end
Temp= v.days[J].hours[H].temp
return (Temp)
end
--================================================================================
Code : Tout sélectionner
--Température
--Temp dans 1 H ajout d'un capteur virtuel Tempdans 1H lectTemp(Nbre H de projection pluie,JSON)
{idx = 'Temp dans 1H', cde = function (dz, idx, v) dz.devices(idx).updateTemperature(lectTemp(1,v)) end },Code : Tout sélectionner
-- MAJ le8/6/2023 enlevé "unitGroup=metric&maxDistance=20000" de la requête