[DzVents] Vigilance MétéoFrance V2
Re: LUA: vigilance météoFrance V2
Slt Papoo
je pense avoir trouver l'origine de mon probleme , je pense qu'il viens de la
local rid = assert(io.popen("/usr/bin/curl -m5 http://vigilance.meteofrance.com/data/NXFR33_LFPW_.xml"))
mon domoticz tourne sur mon nas (TS251) et je n'ai pas curl apparement , donc si un proqnap sais comment faire , je suis preneur de la solution
@+
je pense avoir trouver l'origine de mon probleme , je pense qu'il viens de la
local rid = assert(io.popen("/usr/bin/curl -m5 http://vigilance.meteofrance.com/data/NXFR33_LFPW_.xml"))
mon domoticz tourne sur mon nas (TS251) et je n'ai pas curl apparement , donc si un proqnap sais comment faire , je suis preneur de la solution
@+
Re: LUA: vigilance météoFrance V2
Bonjour,dokho a écrit : 12 oct. 2018, 11:52 Bonjour,
Je viens de mettre à jour vers la version V2 de ce script et j'ai une erreur dans les logs:la ligne en question est:Code : Tout sélectionner
Error: EventSystem: in /home/domoticz/domoticz/scripts/lua/script_time_vigilance_meteo.lua: ...icz/domoticz/scripts/lua/script_time_vigilance_meteo.lua:82: ')' expected near '"); -- '"'Suis je le seul à rencontrer ce problème ?Code : Tout sélectionner
value = string.gsub(value, "\"", """); -- '"' -> """
Merci.
je viens d'installer le script et j'ai exactement le même message que Dokho. J'ai converti le fichier en UTF8-BOM mais ca ne régle pas le pbl.
J'ai réglé le problème en modifiant comme suit:
ligne 82 = value = string.gsub(value, "\"", "\""); -- '"' -> """
ligne 99 = value = string.gsub(value, "\"", "\"");
A toute fin utile.
Re: LUA: vigilance météoFrance V2
Bonjour,
Merci Fableo (etPapoo bien entendu )
J'avais l'erreur:
Error: EventSystem: in script_time_vigilance_meteofrance_V2_20180303lua: [string "--[[ ..."]:82: ')' expected near '"); -- '"'
La Modification des deux lignes 82 et 99 m'ont permis de faire tourner le script sans erreur.
Cdt
Bertrand
Merci Fableo (etPapoo bien entendu )
J'avais l'erreur:
Error: EventSystem: in script_time_vigilance_meteofrance_V2_20180303lua: [string "--[[ ..."]:82: ')' expected near '"); -- '"'
La Modification des deux lignes 82 et 99 m'ont permis de faire tourner le script sans erreur.
Cdt
Bertrand
2024.6 PC Windows10 ; 2ème DEBIAN 10;DANFOSS LC13, Topp; Senseurs univ FIBARO FGBS001, Flood Sensor, ZMNHBD1 Flush 2 Relays ; FIBARO FGS222-FGS212;RFXCOM-RFXtrx433 USB 433.92MHz , Prises Phénix, Prises et Eclairage DI-O, SOMFY RTS,Sonoff ..
Re: LUA: vigilance météoFrance V2
Bonsoir,
Sauf erreur de ma part le script « script_time_vigilance_meteofrance_v2.lua« ne fonctionne plus correctement depuis que météo france à changer son site d’alerte météo.
Es ce que Papoo pourrait voir le problème ?
Merci d’avance
Sauf erreur de ma part le script « script_time_vigilance_meteofrance_v2.lua« ne fonctionne plus correctement depuis que météo france à changer son site d’alerte météo.
Es ce que Papoo pourrait voir le problème ?
Merci d’avance
Domoticz version : 2024.7 (build 16178)
dzVents Version: 3.1.8
Python version : 3.11.2
Raspberry Pi OS : v12 (Bookworm)
Avec Domoticz depuis 28/11/2015
dzVents Version: 3.1.8
Python version : 3.11.2
Raspberry Pi OS : v12 (Bookworm)
Avec Domoticz depuis 28/11/2015
-
denis_brasseur
- Messages : 898
- Inscription : 24 déc. 2018, 17:05
- Localisation : (26)
Re: LUA: vigilance météoFrance V2
Meme constat depuis le 4 juin, plus de remonté d'information depuis le script.
L'url http://vigilance.meteofrance.com/data/NXFR33_LFPW_.xml est toujours active, mais je suppose que le format des données à changé.
papoo, tu peux faire quelque chose ?
L'url http://vigilance.meteofrance.com/data/NXFR33_LFPW_.xml est toujours active, mais je suppose que le format des données à changé.
papoo, tu peux faire quelque chose ?
Pi3 + DD PiDrive - RFXtrx433 - AEON Labs ZW090
Re: LUA: vigilance météoFrance V2
vais regarder
Re: LUA: vigilance météoFrance V2
je l'ai passé en DZvents
Code : Tout sélectionner
--[[
vigilanceMeteoFrance.lua
author/auteur = papoo
update/mise à jour = 17/06/2020
création = 28/04/2018
Principe : Ce script a pour but de remonter les informations de vigilance de météoFrance
Les informations disponibles sont :
- couleur vigilance météo (Rouge, Orange, Jaune, Vert)
- risque associé : vent violent, pluie-inondation, orages, inondations, neige-verglas, canicule, grand-froid, avalanche, vagues-submersion
Une vigilance peut ne pas être associée à un risque. dans ce cas, affichage de la mention "vigilance météo".
URL forum : http://easydomoticz.com/forum/viewtopic.php?f=17&t=5492
URL blog : http://pon.fr/vigilance-meteofrance-v2/
URL github : https://github.com/papo-o/domoticz_scripts/blob/master/dzVents/scripts/vigilanceMeteoFrance.lua
--]]
--------------------------------------------
------------ Variables à éditer ------------
--------------------------------------------
local departement = 39 -- renseigner votre numéro de département sur 2 chiffres exemples : 01 ou 07 ou 87
local alert_device = 'Vigilance Météo' -- renseigner le nom de l'éventuel device alert vigilance météo associé (dummy - alert)
local conseil_meteo = "Conseil Météo" --'Conseil Météo' -- renseigner le nom de l'éventuel device alert Conseils Météo associé si souhaité, sinon nil
local commentaire_meteo = "Commentaire Météo" --'Commentaire Météo' -- renseigner le nom de l'éventuel device alert Commentaire Météo associé si souhaité, sinon nil
local display_conseils = true -- true pour voir les conseils sans condition, false seulement en cas de vigilance dans le département sélectionné
local display_commentaire = true -- true pour voir les commentaires sans condition, false seulement en cas de vigilance dans le département sélectionné
--------------------------------------------
----------- Fin variables à éditer ---------
--------------------------------------------
local scriptName = 'Vigilance météo France'
local scriptVersion = '2.05'
local response = "vigilance_meteoFrance"
return {
active = true,
on = { timer = { "every minute"},
httpResponses = { response } },
logging = { level = domoticz.LOG_DEBUG,
-- level = domoticz.LOG_INFO, -- Seulement un niveau peut être actif; commenter les autres
-- level = domoticz.LOG_ERROR, -- Only one level can be active; comment others
-- level = domoticz.LOG_MODULE_EXEC_INFO,
marker = scriptName..' v'..scriptVersion },
execute = function(dz, item)
local devAlert = dz.devices(alert_device)
local function logWrite(str,level)
dz.log(tostring(str),level or dz.LOG_DEBUG)
end
local function seuilAlerte(level)
if level == 0 or level == nil then return dz.ALERTLEVEL_GREY end
if level == 1 then return dz.ALERTLEVEL_GREEN end
if level == 2 then return dz.ALERTLEVEL_YELLOW end
if level == 3 then return dz.ALERTLEVEL_ORANGE end
if level == 4 then return dz.ALERTLEVEL_RED end
end
local function risqueTxt(nombre)
if nombre == 1 then return "vent violent"
elseif nombre == 2 then return "pluie-inondation"
elseif nombre == 3 then return "orages"
elseif nombre == 4 then return "inondations"
elseif nombre == 5 then return "neige-verglas"
elseif nombre == 6 then return "canicule"
elseif nombre == 7 then return "grand-froid"
elseif nombre == 8 then return "avalanche"
elseif nombre == 9 then return "vagues-submersion"
else return "Vigilance Météo" end
end
local function EnumClear(Text) -- replace the last character
a=string.len(Text)
b=string.sub(Text,a,a)
if b=="," or b==" " then Text=string.sub(Text,1,a-1) end
a=string.len(Text)
b=string.sub(Text,a,a)
if b=="," or b==" " then Text=string.sub(Text,1,a-1) end
return Text
end
if (item.isHTTPResponse and item.trigger == response) then
local abr = dz.utils.fromXML(item.data,"erreurXML")
local dv = abr.CV.DV
local textAlert = ""
local vigilanceColor = ""
local conseil = ""
local commentaire = ""
for i, departements in ipairs(dv) do
for _, result in pairs(departements) do
--logWrite(result.dep)
--logWrite(result.coul)
if tonumber(result.dep) == departement then
logWrite("departement : "..result.dep)
logWrite("Couleur vigilance : "..result.coul)
vigilanceColor = tonumber(result.coul)
if dv[i].risque then
risques = dv[i].risque
for _, risque in pairs(risques) do
for _, risqueDep in pairs(risque) do
--print_r(risqueDep)
if risqueDep.val and (type(risqueDep) == "table") then
logWrite(risqueDep.val)
logWrite(risqueTxt(tonumber(risqueDep.val)))
textAlert = textAlert .. risqueTxt(tonumber(risqueDep.val)) .. ", "
else
logWrite(risqueDep)
textAlert = risqueTxt(tonumber(risqueDep))
end
end
end
end
end
end
end
text = EnumClear(textAlert)
if text == '' then text = 'Aucune vigilance' end
logWrite("------ vigilance ".. vigilanceColor .. " " .. text .. " pour le département " .. departement,dz.LOG_INFO)
if alert_device ~= nil then
if devAlert.color ~= vigilanceColor or devAlert.lastUpdate.minutesAgo > 1440 then
devAlert.updateAlertSensor(seuilAlerte(vigilanceColor), text)
elseif devAlert.text ~= text then
devAlert.updateAlertSensor(seuilAlerte(vigilanceColor), text)
end
end
-- ====================================================================================================================
-- Conseil météo (merci denis_brasseur )
-- ====================================================================================================================
if conseil_meteo ~= nil then
local vconseil = abr.CV.EV.VCONSEIL
if vconseil and (type(vconseil) == "table") then
for i, result in pairs(vconseil) do
if vconseil[i].texte then
conseil = vconseil[i].texte
end
end
else conseil = 'Aucun conseil disponible'
end
if (conseil ~= nil and vigilanceColor > 1) or (conseil ~= nil and display_conseils == true) then -- Mise à our du devise texte conseil météo si il existe
if dz.devices(conseil_meteo).text ~= conseil then dz.devices(conseil_meteo).updateAlertSensor(seuilAlerte(vigilanceColor), conseil) end
elseif (conseil == nil) or (conseil ~= nil and display_conseils == false) then -- Mise à jour du devise texte conseil météo si il existe même s'il n'y a pas de conseil disponible
if dz.devices(conseil_meteo).text ~= 'Aucun conseil disponible' then dz.devices(conseil_meteo).updateAlertSensor(seuilAlerte(vigilanceColor), 'Aucun conseil disponible') end
end
end
-- ====================================================================================================================
-- Commentaire météo (merci denis_brasseur )
-- ====================================================================================================================
if commentaire_meteo ~= nil then
local vcommentaire = abr.CV.EV.VCOMMENTAIRE
if vcommentaire and (type(vcommentaire) == "table") then
for i, result in pairs(vcommentaire) do
if vcommentaire[i].texte then
commentaire = vcommentaire[i].texte
end
end
else commentaire = 'Aucun commentaire disponible'
end
if (commentaire ~= nil and vigilanceColor > 1) or (commentaire ~= nil and display_commentaire == true) then -- Mise à jour du devise texte commentaire météo si il existe
if dz.devices(commentaire_meteo).text ~= commentaire then dz.devices(commentaire_meteo).updateAlertSensor(seuilAlerte(vigilanceColor), commentaire) end
elseif (commentaire == nil) or (commentaire ~= nil and display_commentaire == false) then -- Mise à jour du devise texte commentaire météo si il existe même s'il n'y a pas de commentaire disponible
if dz.devices(commentaire_meteo).text ~= 'Aucun commentaire disponible' then dz.devices(commentaire_meteo).updateAlertSensor(seuilAlerte(vigilanceColor), 'Aucun commentaire disponible') end
end
end
-- ====================================================================================================================
-- ====================================================================================================================
else
local url = "http://vigilance2019.meteofrance.com/data/NXFR33_LFPW_.xml"
dz.openURL({
url = url,
method = "GET",
callback = response})
end
end
}
Dernière modification par papoo le 17 juin 2020, 22:30, modifié 5 fois.
-
denis_brasseur
- Messages : 898
- Inscription : 24 déc. 2018, 17:05
- Localisation : (26)
Re: DZvents: vigilance météoFrance V2
Voici dans le xml les résulats de mon département :
Le code s'éxécute et remonte bien le niveau de vigilance.
ne remonte pas la valeur risque
Code : Tout sélectionner
<DV dep="26" coul="2">
<risque val="3"/>
</DV>dzVents: Info: Vigilance météo France v2.0: vigilance 2 pour le département 26
Code : Tout sélectionner
if dv[i].risque then Pi3 + DD PiDrive - RFXtrx433 - AEON Labs ZW090
Re: DZvents: vigilance météoFrance V2
c'est corrigé, à vouloir absolument afficher plusieurs risques, j'en avais oublié de tester quand il n'y en a qu'un. désolé
-
denis_brasseur
- Messages : 898
- Inscription : 24 déc. 2018, 17:05
- Localisation : (26)
Re: DZvents: vigilance météoFrance V2
Ca fonctionne, merci papoo 
J'ai ajouté l'affichage de Conseil Météo et Commentaire Météo comme dans le script précédent
J'ai ajouté l'affichage de Conseil Météo et Commentaire Météo comme dans le script précédent
<EV dateinsert="20200614060000" dateprevue="20200615060000" daterun="20200614060000" echeance="24" noversion="1" producteur="DP" typeprev="1" crueint="99,2A,2B,22,74">
<VCONSEIL texte="Crues/Orange- Renseignez-vous avant d'entreprendre vos déplacements et soyez très prudents. Respectez, en particulier, les déviations mises en place.- Ne vous engagez en aucun cas, à pied ou en voiture, sur une voie immergée.- Dans les zones habituellement inondables, mettez en sécurité vos biens susceptibles d'être endommagés et surveillez la montée des eaux."/>
<VCOMMENTAIRE texte="Crue importante sur l'Allier entre l'Alagnon et la Dore."/>
</EV>
Pi3 + DD PiDrive - RFXtrx433 - AEON Labs ZW090