Page 1 sur 2

DzVent detecter le changement d'etat d'un device

Publié : 02 août 2017, 13:10
par landaisbenj
Bonjour.

Je cherche un attribut Dz qui me permette d'indiquer a mon script si mon switch "a changé d'etat" sans pour autant prendre en compte le update.

J'ai un ping sur un équipement réseau. Si mon ping est OK j'ai un interrupteur TEST a ON si il est NOK j'ai mon interrupteur TEST à OFF. Le problème c'est que cet interrupteur se met a jour toutes les 2 minutes. Il peut donc passer de On a On à On pendant tout le temps que le ping repond.

Du coup si je veux faire une notif sur ON je reçois une notif toute les 2 minutes. Car la notif se fait pas sur le changement d'etat mais sur l'update du device...

Donc je voudrais le scripter, mais je n'y connais pas grand chose et je ne comprend pas trop comment utiliser changeddevice...

Je voudrais faire quelque chose du style
"Si l'interrupteur est passé de off a on" en Dzvent mais je ne trouve pas de solution sans créer de variable "ancien etat"....
J'ai bien cherché sur le changed device mais je n'y arrive pas.

Quelle méthode ou attribut utilisez-vous?

Re: DzVent detecter le changement d'etat d'un device

Publié : 02 août 2017, 15:10
par vil1driver
Salut,

Bah dans ton script de ping..
Ne passe ton inter à On que s'il ne l'est pas déjà

Re: DzVent detecter le changement d'etat d'un device

Publié : 02 août 2017, 15:22
par landaisbenj
vil1driver a écrit :Salut,

Bah dans ton script de ping..
Ne passe ton inter à On que s'il ne l'est pas déjà
Merci c'est une très bonne idée.

Mais sincèrement je voulais vraiment savoir si c’était possible en terme d'attribut LUA de connaitre le changement d'etat...

Par exemple avec mon détecteur de mouvement je passe a ON quand je rentre a la maison et je reste a ON tout le temps que je suis a la maison.
Si je met une notification sur le ON je reçois une notification tout le temps que je suis à la maison... Je pourrais inclure un timer pour la notification mais avec un espèce de

Code : Tout sélectionner

if device.laststate != device.state
ce serait tres simple de ne faire la notif que sur le changement...

Est ce que ça veut dire que c'est impossible a faire ce que je demande ?

Re: DzVent detecter le changement d'etat d'un device

Publié : 02 août 2017, 16:10
par vil1driver
tu peux mémoriser l'état dans une variable utilisateur
et dès qu'il y a update, faire la comparaison entre l'état actuel et celui qu'indique la variable,
si les 2 sont identiques on ne fait rien
sinon on fait l'action et on mémorise le nouvel état

Re: DzVent detecter le changement d'etat d'un device

Publié : 02 août 2017, 16:17
par landaisbenj
Merci pour ta réponse. J'y pensai aussi mais du c'est pas aussi simple que ce que je pensai parceque ca me fait faire autant de variable que de device dans ce style.

Je croyais vraiment qu'un attribut existait... Tant pis je me débrouillerai autrement.

Re: DzVent detecter le changement d'etat d'un device

Publié : 02 août 2017, 16:27
par vil1driver
Je te l'accorde, ce serait une idée à suggérer
Avoir un otherdevices_lastState['device'] serait très pratique

En même temps je réponds probablement à côté car je ne connais pas dzvents..
Ça existe peut-être

Je parlais de ce qu'il est possible de faire en lua

Re: DzVent detecter le changement d'etat d'un device

Publié : 02 août 2017, 16:37
par landaisbenj
vil1driver a écrit :Je te l'accorde, ce serait une idée à suggérer
Avoir un otherdevices_lastState['device'] serait très pratique

En même temps je réponds probablement à côté car je ne connais pas dzvents..
Ça existe peut-être

Je parlais de ce qu'il est possible de faire en lua

Non mais très bien de toute façon je fais les deux en ce moment. Je n'arrive pas a décider lequel choisir car a chaque fois c'est sur l'etat du device et non sur le changement de l'etat.
Cela fait maintenant une semaine que je parcours le wiki et les exemples pour trouver toutes les methodes et attribut LUA ou Dz. Et comme depuis le debut je n'arrive pas a trouver celui la, et que je trouve ca tellement important d'avoir le changement d'etat et non le update, je trouve bizarre de ne pas le voir.

Tu sais a qui je pourrais suggérer ca ? Que ce soit en LUA ou Dzvents...

Re: DzVent detecter le changement d'etat d'un device

Publié : 02 août 2017, 16:41
par vil1driver
pour les suggestion tu peux le faire sur le forum officiel domoticz.com

sinon je dois pouvoir faire une petite fonction lua pour cela, qui automatiserait la création de variable et le check..
je reviens vers toi

Re: DzVent detecter le changement d'etat d'un device

Publié : 02 août 2017, 16:58
par landaisbenj
vil1driver a écrit :pour les suggestion tu peux le faire sur le forum officiel domoticz.com
Ok je vais y faire un tour ça mange pas de pain
sinon je dois pouvoir faire une petite fonction lua pour cela, qui automatiserait la création de variable et le check..
je reviens vers toi
Yes c’est sympas, merci. J’ai récupéré ton modules.lua il y a quelque jour, mais je n’ai pas pris le temps de le mettre en place. Il fallait d’abord que je sois à l’aise avec le LUA. Et après quand j’ai découvert le Dz je me suis rendu compte que pas mal d’attribut pouvaient améliorer la manipulation des devices et du temps.

Re: DzVent detecter le changement d'etat d'un device

Publié : 02 août 2017, 17:29
par vil1driver
bon voila j'ai mis à jour modules.lua

ça donne donc ceci à l'usage

Code : Tout sélectionner

-- script de type DEVICE

-- chargement des modules
dofile('/home/pi/domoticz/scripts/lua/modules.lua')

commandArray = {} 

if stateChange('la chambre') then
	log('chambre changement etat detecte')
end

return commandArray