Page 12 sur 20
Re: LUA: vigilance météoFrance V2
Publié : 05 juil. 2019, 23:29
par alpin38
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
@+
Re: LUA: vigilance météoFrance V2
Publié : 10 avr. 2020, 00:21
par fableo
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:
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 '"); -- '"'
la ligne en question est:
Suis je le seul à rencontrer ce problème ?
Merci.
Bonjour,
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
Publié : 12 avr. 2020, 01:17
par balajol
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
Re: LUA: vigilance météoFrance V2
Publié : 12 juin 2020, 22:52
par Euton
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
Re: LUA: vigilance météoFrance V2
Publié : 13 juin 2020, 06:37
par denis_brasseur
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 ?
Re: LUA: vigilance météoFrance V2
Publié : 13 juin 2020, 11:01
par papoo
vais regarder
Re: LUA: vigilance météoFrance V2
Publié : 13 juin 2020, 14:49
par papoo
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
}
Re: DZvents: vigilance météoFrance V2
Publié : 13 juin 2020, 19:14
par denis_brasseur
Voici dans le xml les résulats de mon département :
Le code s'éxécute et remonte bien le niveau de vigilance.
dzVents: Info: Vigilance météo France v2.0: vigilance 2 pour le département 26
ne remonte pas la valeur risque
Re: DZvents: vigilance météoFrance V2
Publié : 13 juin 2020, 21:37
par papoo
c'est corrigé, à vouloir absolument afficher plusieurs risques, j'en avais oublié de tester quand il n'y en a qu'un. désolé
Re: DZvents: vigilance météoFrance V2
Publié : 14 juin 2020, 07:37
par denis_brasseur
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
<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>