Notification sur une donnée précise

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
tocajames
Messages : 7
Inscription : 29 mai 2020, 17:06

Notification sur une donnée précise

Message 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
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: Notification sur une donnée précise

Message 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.
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
boum
Messages : 233
Inscription : 18 janv. 2019, 11:34
Localisation : France

Re: Notification sur une donnée précise

Message 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
}
?
Domoticz v2022.2 sur linux-mint / Z-Wave-JS / RFXCom / Zigbee2MQTT
tocajames
Messages : 7
Inscription : 29 mai 2020, 17:06

Re: Notification sur une donnée précise

Message 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
tocajames
Messages : 7
Inscription : 29 mai 2020, 17:06

Re: Notification sur une donnée précise

Message 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
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: Notification sur une donnée précise

Message par Keros »

Je viens de tester le script de Boum en l'adaptant à ma config et il fonctionne :roll:

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?])
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
tocajames
Messages : 7
Inscription : 29 mai 2020, 17:06

Re: Notification sur une donnée précise

Message 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
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: Notification sur une donnée précise

Message 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) ?
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
tocajames
Messages : 7
Inscription : 29 mai 2020, 17:06

Re: Notification sur une donnée précise

Message 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 ...
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: Notification sur une donnée précise

Message 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.
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
Répondre