Page 6 sur 11

Re: [DzVents] Données Météo Weather Visual Crossing

Publié : 04 juin 2023, 17:01
par Keros
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.

Re: [DzVents] Données Météo Weather Visual Crossing

Publié : 05 juin 2023, 01:24
par Loky31200
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?
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).

Moi aussi je gère mon arrosage avec cela et je pense avoir perdu un peu de précision dans la bataille mais le principe marche quand même :)
Il faut un peu raffiner en fonction des % quand même.

Re: [DzVents] Données Météo Weather Visual Crossing

Publié : 08 juin 2023, 14:51
par BernardC
Bonjour,
j'ai testé pour ma part, les résultats sont cohérents avec les donnés JSON...
il faut voir vos données JSON avec la requête :
https://weather.visualcrossing.com/Visu ... ine/<votre localitée>?unitGroup=metric&maxDistance=20000&include=days%2Ccurrent%2Chours&key=<votre clé API>&contentType=json
ou sans l'option 20km de distance:
https://weather.visualcrossing.com/Visu ... ine/<votre localitée>?&include=days%2Ccurrent%2Chours&key=<votre clé API>&contentType=json
en utilisant le navigateur firefox en développant tout et filtrant avec "precipprob" c'est très facile de voir la cohérence des résultats.
je pense que l'option des 20km peut poser des soucis suivant la position géographique des stations avec la localité choisie, j'ai fait une MAJ du script sans l'option.
Il est intéressant aussi de se connecter à https://www.visualcrossing.com/weather/ ... -services#
pour les probabilités en ajustant les paramètres pour les stations.

Re: [DzVents] Données Météo Weather Visual Crossing

Publié : 09 juin 2023, 19:13
par BernardC
@Loky31200

Bonjour,
Mon script fait la probabilité pour une période, 5H=> on a la probabilité de pluie la plus élevée pour la période de 5H00, et non la probabilité de l'heure H+5, exemple il est 10H, ce n'est la probabilité pour 15H qui est retournée.

J'ai vu dans script de viewtopic.php?p=58822#p58822 de papoo pour lequel il semble que c'est la 2eme option qui est utilisée. Si c'est cette option que vous utilisez, l'utilisation de la probabilité est différente.

Re: [DzVents] Données Météo Weather Visual Crossing

Publié : 19 juin 2023, 19:28
par Loky31200
Merci pour la réponse très claire :)

Du coup si je modifie la fonction comme suivant :

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 )
end
Cela donnera bien la proba de pluie de l'heure considérée non?

Re: [DzVents] Données Météo Weather Visual Crossing

Publié : 20 juin 2023, 09:40
par BernardC
Citation supprimée

Bonjour,
Oui, mais il faut Un test pour le changement de jour:

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
    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

end

Re: [DzVents] Données Météo Weather Visual Crossing

Publié : 20 juin 2023, 18:14
par Loky31200
Cool merci :)

J'avais codé ca :

Code : Tout sélectionner

 h=Heure + duree
    if h > 24 then J =2 H = h-24 
    else
        H=h 
    end
Mais je vais prendre ce que tu m'as indiqué dans ton message même si je comprends toujours pas le "H=H+1 -- heure de debut + 1 pour index" :)

Re: [DzVents] Données Météo Weather Visual Crossing

Publié : 21 juin 2023, 12:14
par BernardC
Bonjour,
pour accéder aux probabilités d'aujourd'hui à 0H00 il faut mettre: v.days[1].hours[1].precipprob et non v.days[0].hours[0].precipprob. le premier index est 1.

je joins le script pour les prévisions vent sur le même principe que la pluie :

Code : 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 
end
l'appel de la fonction:

Code : 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 },  

Re: [DzVents] Données Météo Weather Visual Crossing

Publié : 26 juin 2023, 16:03
par Loky31200
Génial!!!

Merci encore!!!

Du coup j'ai fait la même pour la prévision des températures dans les heures suivantes :

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
--================================================================================
avec un appel:

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 },
Merci encore pour les exemples :)

Re: [DzVents] Données Météo Weather Visual Crossing

Publié : 08 juil. 2023, 07:38
par denis_brasseur
Attention, ceux qui comme moi ont copié le code récemment,, en l'absence du paramètre unitGroup, les données du json sont au format us au lieu de métric

Code : Tout sélectionner

-- MAJ le8/6/2023  enlevé "unitGroup=metric&maxDistance=20000" de la requête
Ce qui signifie températures en fahrenheit et longueurs et distances en miles.