Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
MQTT et jeedom: mise en cache valeur température > 4 mins
#1
Bonjour, 
tout d'abord un grand merci pour le routeur.  J'ai réalisé le montage tout frais de ce weekend.
juste à temps pour le retour du soleil. Smile 
ça fonctionne plutôt bien dans l'ensemble et le fait d'avoir le code est un grand plus.
Quel plaisir d'arrêter d'envoyer gratuitement à EDF Wink


Au niveau de mon setup : 
  • J'utilise principalement la sortie triac en mode découpe sinus vers mon chauffe eau pour le moment. 
    J'ai mis 2 SSR pour utilisation future.
  • J'ai un jeedom avec sonde de température au niveau du chauffe eau en zwave
  • J'envoie la valeur via MQTT au routeur.


Le pb c'est que tant que la valeur de la sonde zwave ne change pas elle n'est pas ®envoyée par jeedom via MQTT.  
et le watchdog MQTT niveau routeur ne semble gérer qu'une durée de ~4 minutes avant de passer la valeur de température comme invalide. 

Quand la valeur de temp est considérée invalide, si elle est activée sur le triac: alors le triac est forcé à off quoi qu'il arrive.

Et ce même si on est dans la tranche horaire d'une action qui n'utilise pas la température (en mode sinus sur seuil Pw sans se baser sur la temp par exemple) 
Le pb se produit aussi si on fait marche forcée manuelle à ON, le triac passe à OFF après ~4 minutes si il n'a pas eu de nouvelle valeur de la temp.
et il repassera à ON dès qu'il aura reçu une nouvelle valeur par MQTT, pour 4 Minutes.. 


Pour commencer j'ai contourné plus ou moins en forçant jeedom à réenvoyer toutes les 5 minutes(mais on ne peut pas descendre plus bas) 
Le triac s'activait donc pendant ~4m puis restait off pendant 45s-60s , pour repassait à ON quand il reçoit à nouveau une valeur au bout de 5 minutes. 


Pour améliorer ce contournement j'ai augmenté la valeur de départ du watchdog de 5 à 12  
(en étant très large: jeedom renvoyant maintenant toutes les 5 minutes , même si jamais il y a une maj qui se perd, ça doit pouvoir tenir ~11 minutes sans valeur maintenant au lieu de ~4 minutes, donc 1 perte de 1 event est même tolérée.)


Code :
diff --git a/MQTT.ino b/MQTT.ino
index 153d48f..6d5f594 100644
--- a/MQTT.ino
+++ b/MQTT.ino
@@ -109,7 +109,7 @@ void callback(char *topic, byte *payload, unsigned int length) {
   for (int canal = 0; canal < 4; canal++) {
     if (String(topic) == TopicT[canal] && Source_Temp[canal] == "tempMqtt") {
       temperature[canal] = ValJson("temperature", message);
-      TemperatureValide[canal] = 5;
+      TemperatureValide[canal] = 12;

ça l'air de faire le job pour le moment. 


Idéalement le mieux serait aussi que dans le cas du forçage à ON manuel ou que si l'on est dans la tranche horaire d'une action qui n'utilise pas la température, 
le fait que la température soit manquante ou invalide n'impacte pas ces actions.


A noter aussi que jeedom par défaut envoie la valeur dans la clé "value" et non pas temperature

J'ai du modifier manuellement dans le code comme suit 
      temperature[canal] = ValJson("value", message);

Rajouter la possibilité de configurer dans l'interface le nom de la clé où aller chercher dans le json serait un plus Smile
Sinon je remergerai mes modifs à chaque version , ça n'est pas très long à faire non plus.

Merci.
Répondre


Messages dans ce sujet
MQTT et jeedom: mise en cache valeur température > 4 mins - par tim - 04-11-2024, 05:22 PM

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)