Page 9 sur 11

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

Publié : 25 août 2023, 17:19
par Keros
Ce n'est pas ça qu'il faut enlver mais les --[[ jusqu'au ]]-- qui englobe la partie, ce qui désactive tous le code qu'il y a entre les deux balises.

Et concernant ta question de départ, il me semble que le script n'affiche rien dans le log hormis la ligne 'Réception de WeatherVisualCrossing'

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

Publié : 26 août 2023, 09:23
par Doudy
Keros a écrit : 25 août 2023, 17:19 Ce n'est pas ça qu'il faut enlver mais les --[[ jusqu'au ]]-- qui englobe la partie, ce qui désactive tous le code qu'il y a entre les deux balises.
Il me semble que c'est ce que j'ai testé après avoir envoyé mon message précédent. J'ai enlevé les --[[ et les ]]-- afin d'activer les IDX 700, 701 et 702

Code : Tout sélectionner

    
    -- Meteo
    {idx = 700,  cde = function (dz, idx, v)
        local txt = v.current.weather[1].description..' ('..v.current.weather[1].main..' - '..v.current.weather[1].id..')'
        dz.devices(idx).updateText(txt)
    end },
  
   -- Moon
    {idx = 701,  cde = function (dz, idx, v)
        -- local dt  = os.date("%a %d %b à %X", v.daily[1].dt) -- UTC
        local moonrise  = os.date("%Hh%M", v.daily[1].moonrise) -- UTC
        local moonset   = os.date("%Hh%M", v.daily[1].moonset) -- UTC
        local p = v.daily[1].moon_phase*100 -- 0 and 1 are 'new moon', 0.25 is 'first quarter moon', 0.5 is 'full moon' and 0.75 is 'last quarter moon'.
        if p==0 or p==100 then phase = "Nouvelle Lune ?"
        elseif p<25     then phase = "Premier Croissant ?"
        elseif p==25    then phase = "Premier Quartier ?"
        elseif p<50     then phase = "Gibeuse Croissante ?"
        elseif p==50    then phase = "Pleine Lune  ?"
        elseif p<75     then phase = "Gibeuse Décroissante  ?"
        elseif p==75    then phase = "Dernier Quartier  ?"
        elseif p<100    then phase = "Dernier Croissant  ?"
        end
        -- luminosity
        p = 2*p 
        if p>100 then p = 200-p end
        local txt = "Lever à "..moonrise.."\nCoucher à  "..moonset.."\nPhase : "..phase.."  ("..p.."%)"
        dz.devices(idx).updateText(txt)
    end },
    

    -- Moon Phase (%)
    {idx = 702,  cde = function (dz, idx, v)
        dz.devices(idx).updatePercentage(v.daily[1].moon_phase*100)
    end },
    
Lorsque je fait cela, j'ai les messages suivants :
Pour IDX 700 :

Code : Tout sélectionner

2023-08-25 13:36:11.642 Error: dzVents: Error: (3.1.8) -- weather.visualcrossing v1.21: An error occurred when calling event handler WeatherVirtualCrossing
2023-08-25 13:36:11.642 Error: dzVents: Error: (3.1.8) -- weather.visualcrossing v1.21: ...oticz/scripts/dzVents/scripts/WeatherVirtualCrossing.lua:186: attempt to index a nil value (field 'current') 
Pour IDX 701 :

Code : Tout sélectionner

2023-08-25 13:38:12.619 Error: dzVents: Error: (3.1.8) -- weather.visualcrossing v1.21: An error occurred when calling event handler WeatherVirtualCrossing
2023-08-25 13:38:12.620 Error: dzVents: Error: (3.1.8) -- weather.visualcrossing v1.21: ...oticz/scripts/dzVents/scripts/WeatherVirtualCrossing.lua:193: attempt to index a nil value (field 'daily') 
Pour IDX 702 :

Code : Tout sélectionner

2023-08-25 13:39:12.244 Error: dzVents: Error: (3.1.8) -- weather.visualcrossing v1.21: An error occurred when calling event handler WeatherVirtualCrossing
2023-08-25 13:39:12.244 Error: dzVents: Error: (3.1.8) -- weather.visualcrossing v1.21: ...oticz/scripts/dzVents/scripts/WeatherVirtualCrossing.lua:215: attempt to index a nil value (field 'daily') 
Keros a écrit : 25 août 2023, 17:19 Et concernant ta question de départ, il me semble que le script n'affiche rien dans le log hormis la ligne 'Réception de WeatherVisualCrossing'
Il me semble que dans le log après 'Réception de WeatherVisualCrossing' il doit y avoir les valeurs de "Alerts" (chez moi IDX 703)
Capture.PNG
Mais je ne vois pas où et comment il va chercher les données !
;) :(

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

Publié : 27 août 2023, 16:31
par Keros
Si tu désactives des portions de code par ce que tu as des erreurs, c'est normal qui les widgets ne soient pas mis à jour :lol:

Les erreurs indiquent que le script n'arrive pas à trouver les infos "field" dans les données Json qu'il récupère. Ouvre le Json dans un navigateur et essaye de retrouver les infos. Si tu as besoin de comprendre comment récupérer les données dans un Json, tu peux regarder mon Tuto sur OpenWeatherMap (lien dans ma signature) : le principe est le même.
En comprenant le principe, tu pourras même te faire tes propres widgets avec les infos que tu souhaites.

Concernant les alertes, c'est pour remplir un widget de type Alerte ; pas pour être mis dans les logs de DomoticZ.
Maintenant, tu peux très bien customizer le code pour mettre des infos dans les logs.

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

Publié : 28 août 2023, 10:47
par Doudy
Keros a écrit : 27 août 2023, 16:31 Les erreurs indiquent que le script n'arrive pas à trouver les infos "field" dans les données Json qu'il récupère. Ouvre le Json dans un navigateur et essaye de retrouver les infos.
Il me semble avoir trouvé :

Code : Tout sélectionner

    -- Meteo
    {idx = 700,  cde = function (dz, idx, v)
	local txt = v.currentConditions.conditions
        dz.devices(idx).updateText(txt)
    end },
En effet, les fields utilisés dans le script sont encore ceux de "OpenWeatherMap"

Je regarde pour mon 701 et 702
;)

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

Publié : 28 août 2023, 22:04
par Keros
Malheureusement, c'est le risque en récupérant des scripts complets :?

C'est la raison pour laquelle j'ai limité mon tuto sur OpenWeatherMap a expliqué comment récupérer les infos. Je savais que si je mettais un script complet, il aurait fallu faire ce type de SAD (Service Après Diffusion).

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

Publié : 30 oct. 2023, 08:36
par patoche
Salut,

Pour DOUdy et Maiden91

Pour info avec ma version domoticz 4.97, les capteurs ne se mettaient pas à jour.
J'ai remplacé les dz par domoticz. Et pour le capteur Baromètre, la parametre domoticz.HUM_COMPUTE n'est pas reconnu. Je l'ai forcé à dry et depuis le capteur se met à jour.

domoticz.devices(idx).updateTempHumBaro(v.currentConditions.temp, v.currentConditions.humidity, domoticz.HUM_DRY, v.currentConditions.pressure, baro)

me reste encore le vent la pluie et la lune non fonctionnel.

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

Publié : 31 oct. 2023, 07:40
par Doudy
👍

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

Publié : 08 nov. 2023, 17:56
par patoche
Bonjour

Pour la Lune j'ai du remplacer Vdaily par Vdays et remplacer moon_phase par moonphase pour la mise à jour des 2 capteurs. Par contre je suis un peu sceptique sur les valeurs retournées

Code : Tout sélectionner

-- Moon
    {idx = 'Phase Lune',  cde = function (domoticz, idx, v)
      --  local dt  = os.date("%a %d %b à %X", v.daily[1].dt) -- UTC
      local moonrise  = os.date("%Hh%M", v.days[1].moonrise) -- UTC
     local moonset   = os.date("%Hh%M", v.days[1].moonset) -- UTC
      local p = v.days[1].moonphase*100 -- 0 and 1 are 'new moon', 0.25 is 'first quarter moon', 0.5 is 'full moon' and 0.75 is 'last quarter moon'.
        --local p = 0
		if p==0 or p==100 then phase = "Nouvelle Lune ?"
        elseif p<25     then phase = "Premier Croissant ?"
        elseif p==25    then phase = "Premier Quartier ?"
        elseif p<50     then phase = "Gibeuse Croissante ?"
        elseif p==50    then phase = "Pleine Lune  ?"
        elseif p<75     then phase = "Gibeuse Décroissante  ?"
        elseif p==75    then phase = "Dernier Quartier  ?"
        elseif p<100    then phase = "Dernier Croissant  ?"
        end
        -- luminosity
        p = 2*p 
        if p>100 then p = 200-p end
		local txt = "Lever à "..moonrise.."\nCoucher à  "..moonset.."\nPhase : "..phase.."  ("..p.."%)"
        domoticz.devices(idx).updateText(txt)
    end }, 
   -- Moon Phase (%)
    {idx = 'Lune',  cde = function (domoticz, idx, v)
        domoticz.devices(idx).updatePercentage(v.days[1].moonphase*100)
    end },

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

Publié : 08 nov. 2023, 18:23
par patoche
Pour la pluie j'ai cette ligne qui bloque
023-11-08 18:20:03.944 Status: dzVents: Error (2.4.6): -- weather.visualcrossing v1.21: ...oticz/scripts/dzVents/scripts/weathervisualcrossing2.lua:172: attempt to index global 'domoticz' (a nil value)

Code : Tout sélectionner

 172     local f_rainValTable = domoticz.utils.stringSplit(domoticz.devices(idx).sValue,';')

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

Publié : 09 nov. 2023, 09:28
par Doudy
J'ai le même genre de soucis avec :

Code : Tout sélectionner

2023-11-08 22:45:07.147 Error: dzVents: Error: (3.1.8) -- WeatherVisualCrossing.lua v1.21: ...oticz/scripts/dzVents/scripts/WeatherVirtualCrossing.lua:54: attempt to index a nil value (field '?')
2023-11-08 23:00:27.718 Error: dzVents: Error: (3.1.8) -- WeatherVisualCrossing.lua v1.21: An error occurred when calling event handler WeatherVirtualCrossing
2023-11-08 23:00:27.718 Error: dzVents: Error: (3.1.8) -- WeatherVisualCrossing.lua v1.21: ...oticz/scripts/dzVents/scripts/WeatherVirtualCrossing.lua:72: attempt to index a nil value (field '?')
2023-11-08 23:15:04.691 Error: dzVents: Error: (3.1.8) -- WeatherVisualCrossing.lua v1.21: An error occurred when calling event handler WeatherVirtualCrossing 
;)