[DzVents] Alerte Pollens avec sélection des risques à surveiller

Vous avez créé un script LUA dont vous êtes fier, un .sh génial, un programme Python hors du commun, un Tuto, c'est ici que vous pouvez les partager.
papoo
Messages : 2029
Inscription : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: [DZVents] Alerte Pollens avec sélection des risques à surveiller

Message par papoo »

Bonsoir
Pourrais tu me dire sur quelle version de domoticz / dzvents ton systeme fonctionne?
Pourrais tu éventuellement poster ton script modifié ?
As tu essayé de commenter la ligne 52? chez moi c'est celle la

Code : Tout sélectionner

level    =   domoticz.LOG_DEBUG,
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github
psy501
Messages : 48
Inscription : 02 mai 2019, 16:20

Re: [DZVents] Alerte Pollens avec sélection des risques à surveiller

Message par psy501 »

J ai la dernière version beta de domoticz version 4.10665

Mon Script modifié est celui la:




Mais je crois avoir trouvé mon erreur :-( j 'ai crée un evenement lua et non dzevents (erreur de débutant)
Reste à patiente 6heures
Merci




--[[ alertePollens.lua for [ domoticzVents >= 2.4 ]

author/auteur = papoo
update/mise à jour = 29/04/2019
creation = 03/04/2019
https://pon.fr/dzvents-alerte-pollens
https://github.com/papo-o/domoticz_scri ... ollens.lua
viewtopic.php?f=17&t=8392
--]]
--------------------------------------------
------------ Variables à éditer ------------
--------------------------------------------
local departement = 67
local alerte_url = 'https://www.pollens.fr/risks/thea/counties/' -- url
local alert_device = 21 --'Pollens' -- nom ou idx du device alerte, nil si inutilisé

local risques = { -- Commentez (en ajoutant -- devant) ou décommentez (en enlevant -- devant) les risques que vous souhaitez surveiller.
-- "Tilleul",
-- "Ambroisies",
-- "Olivier",
-- "Plantain",
"Noisetier",
-- "Aulne",
-- "Armoise",
-- "Châtaignier",
-- "Urticacées",
-- "Oseille",
"Graminées",
-- "Chêne",
-- "Platane",
"Bouleau",
-- "Charme",
-- "Peuplier",
-- "Frêne",
-- "Saule",
-- "Cyprès",
}
--------------------------------------------
----------- Fin variables à éditer ---------
--------------------------------------------
local scriptName = 'Alerte Pollens'
local scriptVersion = '1.1'


return {
active = true,
on = { timer = { 'every 6 hours' },
httpResponses = { "Pollens_Trigger" } -- Trigger the handle Json part
},

logging = {
-- level = domoticz.LOG_DEBUG, -- Seulement un niveau peut être actif; commenter les autres
level = domoticz.LOG_INFO, -- Only one level can be active; comment others
-- level = domoticz.LOG_ERROR,
-- level = domoticz.LOG_MODULE_EXEC_INFO,
marker = scriptName..' v'..scriptVersion },

data = { alertePollens = {initial = {} }, -- Keep a copy of last json just in case
},
execute = function(domoticz, item)

local function logWrite(str,level) -- Support function for shorthand debug log statements
domoticz.log(tostring(str),level or domoticz.LOG_DEBUG)
end

if (item.isTimer) then
domoticz.openURL({
url = alerte_url..departement,
callback = 'Pollens_Trigger'
})
end

if (item.isHTTPResponse and item.ok) then
-- we know it is json but dzVents cannot detect this
-- convert to Lua
local json = domoticz.utils.fromJSON(item.data)
-- json is now a Lua table
if #item.data > 0 then
domoticz.data.alertePollens = domoticz.utils.fromJSON(item.data)
rt = domoticz.utils.fromJSON(item.data)
else
domoticz.log("Problem with response from Pollens (no data) using data from earlier run",domoticz.LOG_ERROR)
rt = domoticz.data.alertePollens -- json empty. Get last valid from domoticz.data
if #rt < 1 then -- No valid data in domoticz.data either
domoticz.log("No previous data. are Pollens url ok?",domoticz.LOG_ERROR)
return false
end
end

local niveau1, niveau2, niveau3, niveau4, niveau5, text = '', '', '', '', '', ''

local riskLevel = rt.riskLevel
logWrite('alerte de niveau '..riskLevel)

for k, risque in pairs(risques) do
for k, pollens in pairs(rt.risks) do
if pollens.pollenName == risque and pollens.level == 5 then niveau5 = niveau5.. " ".. pollens.pollenName.."," end
if pollens.pollenName == risque and pollens.level == 4 then niveau4 = niveau4.. " ".. pollens.pollenName.."," end
if pollens.pollenName == risque and pollens.level == 3 then niveau3 = niveau3.. " ".. pollens.pollenName.."," end
if pollens.pollenName == risque and pollens.level == 2 then niveau2 = niveau2.. " ".. pollens.pollenName.."," end
if pollens.pollenName == risque and pollens.level == 1 then niveau1 = niveau1.. " ".. pollens.pollenName.."," end
end
end

if niveau5 ~= '' then text, riskLevel = niveau5, 4
elseif niveau4 ~= '' then text, riskLevel = niveau4, 3
elseif niveau3 ~= '' then text, riskLevel = niveau3, 2
elseif niveau2 ~= '' or niveau1 ~= '' then text, riskLevel = niveau2..niveau1, 1
--elseif niveau2 ~= '' then text, riskLevel = niveau2, 1
--elseif niveau1 ~= '' then text, riskLevel = niveau1, 1
else text, riskLevel = "Aucune Alerte", 0
end

text = string.gsub (text, ",$", "")
logWrite(text)

if alert_device ~= nil then
domoticz.devices(alert_device).updateAlertSensor(riskLevel, text)
end
logWrite("Alerte de niveau "..riskLevel.." pour les pollens de : "..text, domoticz.LOG_INFO)

end
end
}
psy501
Messages : 48
Inscription : 02 mai 2019, 16:20

Re: [DZVents] Alerte Pollens avec sélection des risques à surveiller

Message par psy501 »

Peux tu m'en dire plus sur les 2 fonctions ? Laquelle utilisé pour les alertes ? Info ?

level = domoticz.LOG_DEBUG,
level = domoticz.LOG_INFO, ?
level = domoticz.LOG_ERROR,
level = domoticz.LOG_MODULE_EXEC_INFO ?

Merci
papoo
Messages : 2029
Inscription : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: [DZVents] Alerte Pollens avec sélection des risques à surveiller

Message par papoo »

Tu peux catégoriser les informations que tu souhaites voir dans tes logs
A des fins de développement je mets pour ma part l’ensemble des infos en level_debug et j’inhibe les logs une fois le développement terminé
Si certains utilisateurs veulent n’afficher que certaines informations ils peuvent changer le level de ces infos pour continuer de les afficher dans les logs
Donc tu mets en mode level debug
Tu regardes les infos les plus pertinentes à afficher
Tu modifie le script à chaque appel de la fonction logWrite. Tu passes de DEBUG à INFO celles que tu veux et tu commentes level_DEBUG en début de script et decommente level_INFO ou le niveau que tu as choisi
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github
psy501
Messages : 48
Inscription : 02 mai 2019, 16:20

Re: [DZVents] Alerte Pollens avec sélection des risques à surveiller

Message par psy501 »

OK merci pour tes conseils

Envoyé de mon ONEPLUS A3003 en utilisant Tapatalk

Wolfen38
Messages : 1983
Inscription : 19 oct. 2017, 14:49

Re: [DZVents] Alerte Pollens avec sélection des risques à surveiller

Message par Wolfen38 »

Salut,

Le script tourne bien, mais je n'ai pas le niveau d'alerte.

C'est normal ou j'ai raté quelque chose ?
papoo
Messages : 2029
Inscription : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: [DZVents] Alerte Pollens avec sélection des risques à surveiller

Message par papoo »

Pour la première notification il faut attendre 6 heures
Tu utilises quelle version du script? Quelle version de dzvents ?
Le script remonte des infos dans les logs ?
Quel type d’infos?
As tu correctement renseigner le nom de ton device alert ainsi que les pollens à surveiller dans le script ?eventuellement remplace le nom du device alert par son idx et pose ton script modifié stp
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github
Wolfen38
Messages : 1983
Inscription : 19 oct. 2017, 14:49

Re: [DZVents] Alerte Pollens avec sélection des risques à surveiller

Message par Wolfen38 »

Ce n'est pas la dernière version, j'avais récupéré juste avant la sélection des risques, c'est la version 1.01

Pour la version de dzvent, je ne sais pas où la trouver.

Pour les logs, ceux de ce matin 6h n'y sont plus, je regarderai à midi quand le script se lancera.

Ca fontionne bien dans l'ensemble, hier j'étais en risque platane et je suis passé en graminé, par contre je n'ai pas d'info sur le niveau de risque, faible, moyen, élevé....

Je ne sais pas comment ce niveau doit apparaître, un texte ? L'icone qui change de couleur ?

PS : je viens de mettre ta dernière version, je vais voir ce que ca donne.
papoo
Messages : 2029
Inscription : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: [DZVents] Alerte Pollens avec sélection des risques à surveiller

Message par papoo »

à des fins de debug remplace

Code : Tout sélectionner

'every 6 hours'
par

Code : Tout sélectionner

'every minute'
et remplace la ligne

Code : Tout sélectionner

-- level    =   domoticz.LOG_DEBUG,                                           -- Seulement un niveau peut être actif; commenter les autres
par

Code : Tout sélectionner

 level    =   domoticz.LOG_DEBUG,                                           -- Seulement un niveau peut être actif; commenter les autres
pour trouver ta version de dzvents, cela ce passe au meme endroit que pour la version de domoticz
Réglages > à propos
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github
Wolfen38
Messages : 1983
Inscription : 19 oct. 2017, 14:49

Re: [DZVents] Alerte Pollens avec sélection des risques à surveiller

Message par Wolfen38 »

Merci, alors pour dzvent, c'est la dzVents Version: 2.4.17.

Je laisse tourner comme ca pour le moment, et a la prochaine execution je te mettrais le log.

Merci pour ton aide.
Répondre