Evenement ZWave - contournement par variable de class

Bonjour,

Dans le plugin boilerThermostat, je prend en compte les evenements de changement de consigne qui interviennent sur les vanne thermostatique pour mettre a jour la consigne dans le plugin et agir en conséquence.

Dans le cas de vanne thermostatique ZWave, les evenements sont assez etrange, par exemple si la consigne actuel est 20. Si je change sur la vanne et que je met 18, je vais bien recevoir un evenement qui va m’indiquer que la consigne de la vanne est 18 et j’ai en plus une information qui me dit que c’est une mise a jour de la consigne (car le « collectDate » de la commande d’info de consigne est égale au « valueDate »). Ca c’est parfait.

Par contre si je change la consigne depuis jeedom, le comportement est très différent. Par exemple, si la consigne actuel est 20. Je change la consigne via jeedom et je met 18. Je reçois deux événement dans la même seconde qui me disent :
1 - la consigne est 18 et c’est un changement (car valueDate = collectDate)
2 - la consigne est 20 et c’est un changement (car valueDate = collectDate)
L’ordre de ces deux événement peuvent changer.

Comment exclure l’événement incorrect? (voir les deux car a priori au moment de ces événement, la vanne n’a pas encore réellement changer et elle changera vraiment a son prochain réveil).

Ça me pose de gros souci car le plugin set la valeur de consigne des vannes en fonction de la consigne défini sur l’équipement du plugin et inversement. Quand les consignes sont cohérentes, pas de souci mais les « faux » événement font que ça boucle

Si on ne peut pas filtre ces événements, est il possible de gérer une variable de l’instance de la class afin de garder un « historique » des valeurs de consigne de la vanne et ainsi pouvoir identifier un événement réelle. Attention, il ne faut pas stocker ces valeur en base car il faut un grande réactivité sur la lecture et la maj des valeurs (du fait que deux evenements peuvent se produire dans la même seconde dans le cas d’une maj de consigne de la vanne via jeedom).

Enfin si ce n’est pas possible, quel solution vous semble envisageable? (au pire une variable static dans la classe équipement pourrait être utiliser?)

Merci
A+

Je m’auto réponds pour proposer une autre solution qui me semble la seul viable, l’utilisation d’un démon?
Ça me parait un peu lourd mais je ne vois pas comment géré ça autrement?

Bon ce sujet n’attire pas les foule :frowning: c’est que je dois être le seul a avoir ce pbm, ce qui voudrais dire que ce n’est pas vraiment un problème et que je m’y prend mal?

Mon problème est de stocker des informations pour un equipements (ou tous mes equipements) et de pouvoir y accceder le plus rapidement possible (cad ne pas les lires dans un fichier et ne pas interroger les valeurs en base)

L’autre solution qui me simplifierais grandement la tache serait de corriger l’anomalie dans le plugin zwave. Comment faire faire cette correction? (je serais tous de même intéressé par une solution pour géré des états d’equipements sans aller les rechercher dans la bases).

Nota : je ne veux (ou du moins je trouve assez inelegant) gérer une info par equipement pour y stocker l’état. Cette info serait visible des utilisateurs, mais ça aurait l’avantage d’utiliser le cache jeedom (ce cache se base sur quoi un fichier dans le temp ?)

A+

J’ai finalement decouvert les fonctions setCache et getCache sur les equipement (qui doivent avoir leur equivalant sur les commandes d’ailleurs) et ca réponds a mon besoin.

A+

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.