Page 1 sur 2
Notification sur une donnée précise
Publié : 29 mai 2020, 17:24
par tocajames
Bonjour,
étant novice dans le domaine et mes recherches étant infructueuses je me tourne vers vous .
J'ai un OWL me donnant la conso instantané et la conso global sur une journée, j'essaie tant bien que mal de mettre en place une notification quand un seuil est dépassé ( 30 Kwh )
j'ai essayer de mettre en place une notification directement dans domoticz le problème c'est que ce n'est pas fonctionnel , je reçois des notifications à 3h du mat me disant que j'ai dépassé ... alors que je ne suis pas encore au seuil.
J'ai essayer de faire cela avec un script :
return
{
on =
{
devices = {'Consommation'}
},
execute = function(domoticz, device)
if domoticz.devices("Consommation").counterToday == 30 then
domoticz.email('Electricite','oh','XXX')
end
end
}
Malheureusement cela ne fonctionne pas non plus car on dirait que il ne passe pas par la valeur 30 , il passe probablement de 29.930 à 30.123 -> donc je ne reçois pas de notification.
Si je change ma variable en > alors je reçois des notification toute les 2 minutes ...
Comment puis-je résoudre ce petit problème.
Merci
Re: Notification sur une donnée précise
Publié : 29 mai 2020, 18:18
par Keros
tocajames a écrit : 29 mai 2020, 17:24
if domoticz.devices("Consommation").counterToday == 30 then
Qu'est ce qu'il se passe si l'info de conso passe de 29.99 et 30.01 ? Il n'a jamais pris la valeur.
Maintenant si tu testes avec un >=, tu recevras une notification à chaque changement au dessus de 30 : 30.01, 30.1, 30.2, etc ...
Il faudrait passer par une variable "drapeau" qui enregistre que la notification a été envoyée pour la journée. A moins qu'il y ait d'autres fonctions dans DomoticZ pour faire cela.
Une variable drapeau c'est une variable que tu passe à On lorsque tu atteins une première fois ta consigne. A ce moment là, tu envois ta notification.
Et lorsque ta consigne sera de nouveau atteinte, si la variable drapeau est à On, c'est que la notification a déjà été envoyée et donc il ne faut pas le refaire.
Évidement, il faudra remettre ta variable drapeau à Off en début de journée.
Re: Notification sur une donnée précise
Publié : 29 mai 2020, 19:18
par boum
Qqchose comme ça :
Code : Tout sélectionner
return {
on = {
devices = { 'Consommation' },
timer = { 'at 00:07' }, -- éviter heure fixe
},
data = {
dejaNotif = { initial = false },
},
execute = function(domoticz, item)
if item.isTimer then
domoticz.data.dejaNotif = false
elseif (not domoticz.data.dejaNotif) and item.counterToday > 30 then
domoticz.email('Electricite','oh','XXX')
domoticz.data.dejaNotif = true
end
end
}
?
Re: Notification sur une donnée précise
Publié : 29 mai 2020, 22:36
par tocajames
OK je vois ,
effectivement on dirait qu'il ne prends pas ma valeur définie 30 , il passe au dessus et ne "passe" pas par 30
je vais analyser ça et tester merci
Re: Notification sur une donnée précise
Publié : 30 mai 2020, 16:54
par tocajames
Non je n'y arrive pas .
voila le message qu'il me met dans les logs :
2020-05-30 16:53:24.240 Status: EventSystem: Script event triggered: /usr/local/domoticz/dzVents/runtime/dzVents.lua
2020-05-30 16:53:24.240 Error: dzVents: Error: (3.0.1) There was a problem writing the storage values
2020-05-30 16:53:24.240 Error: dzVents: Error: (3.0.1) /usr/local/domoticz/dzVents/runtime/persistence.lua:24: /usr/local/domoticz/var/scripts/dzVents/data/__data_Script #1.lua: No such file or directory
2020-05-30 16:53:26.045 Status: Notification sent (Email)
je reçois l'email toute les minutes
Re: Notification sur une donnée précise
Publié : 30 mai 2020, 17:24
par Keros
Je viens de tester le script de Boum en l'adaptant à ma config et il fonctionne
Tu as d'autres scripts DZvents qui fonctionnent ?
Mets nous tout ton script et dis nous où il est enregistré (dans domoticz ou dans un dossier [lequel?])
Re: Notification sur une donnée précise
Publié : 30 mai 2020, 21:43
par tocajames
Voici le script :
return {
on = {
devices = { 'Consommation' },
timer = { 'at 00:16' }, -- éviter heure fixe
},
data = {
dejaNotif = { initial = false },
},
execute = function(domoticz, item)
if item.isTimer then
domoticz.data.dejaNotif = false
elseif (not domoticz.data.dejaNotif) and item.counterToday > 21.250 then
domoticz.email('Electricite','Dépassement 25Kwh','
john@xxxx.com')
domoticz.data.dejaNotif = true
end
end
}
le script est directement dans domoticz il est vrais que dans le choix des script dzvents il y a plusieurs choix :
All
Minimal
Device
...
la j'ai sélectionné device
Merci
Re: Notification sur une donnée précise
Publié : 30 mai 2020, 21:56
par Keros
Tu ne m'a pas répondu :
Keros a écrit : 30 mai 2020, 17:24
Tu as d'autres scripts DZvents qui fonctionnent ?
Pour comprendre ce qui plante, il faut déboguer. Tu sais utiliser : domoticz.log('XXX', domoticz.LOG_INFO) ?
Re: Notification sur une donnée précise
Publié : 30 mai 2020, 22:31
par tocajames
je n'ai pas d'autre script en dzvents, lua oui.
j'avais mon premier en dzvents et il fonctionnait sans probleme ( sauf qu'il m'envoyait des message toute les minutes )
non je ne connais pas le domoticz.log ...
Re: Notification sur une donnée précise
Publié : 30 mai 2020, 22:37
par Keros
Je pose la question car des fois DZvents ne fonctionne pas sur certaines plateformes (par exemple Windows). Donc ça vient pas de là.
Donc, il faut passer au débogage : la ligne domoticz.log('XXX', domoticz.LOG_INFO) correspond au print('XX') en LUA. Tu vois ce que c'est ?
L'idée est d'en ajouter dans ton code pour afficher les infos utilisées afin de trouver à quel niveau se trouve l'erreur.