idomotique Posté(e) le 5 février 2021 Signaler Posté(e) le 5 février 2021 (modifié) Bonjour à tous, Dernièrement j'ai eu pas mal de soucis avec le capteur de pluie Z-Rain de POPP sur la HC3. En effet il y a un bug de communication entre le capteur et la centrale qui fait que l'indication de niveau de pluie est erronée. Problème Ce capteur possède 3 valeurs dans la HC3: La première valeur est utilisé pour la commande de début de pluie ou de forte pluie (qui n'est pas utilisé par défaut) que nous verrons plus tard. La 2ème est le niveau de pluie en mm/h et la 3ème est la quantité totale de pluie que le capteur à enregistré. Pour commencer je me suis intéressé à la 2ème valeur qui indique le niveau de pluie et qui pour moi logiquement va démarrer mes scènes lorsqu'il pleut trop fort. Voila ce que j'ai remarqué Lorsque la pluie commence la bascule va s'incliner une fois. On obtient alors la valeur suivante: Jusque la tout va bien, la pluie continue et le capteur augmente à 7mm/h ce qui me parait tout à fait correct: C'est la que ça se gâte. tout à coup la valeur augmente subitement à 194.5 mm/h. ce qui me parait légèrement trop: J'observe également que la valeur de la quantité totale à également changée: Voila j'imagine que comme moi à ce point vous avez fait le liens entre la quantité d'eau totale et le niveau de pluie. En effet dés que la valeur de la quantité d'eau totale est modifiée, elle écrase la valeur du niveau de pluie. ce qui est assez problématique. Voila un exemple un peu plus complet pour comprendre le phénomène: De plus un autre effet dérangeant est que cette même valeur repasse systématiquement à 0 après avoir été écrasée. Solution Il y a probablement plusieurs solutions à cela mais personnellement j'en vois 2 utilisables. Solution 1: En écrivant un petit code en LUA et en ignorant les valeurs plus grandes que 255 ce qui est la limite du capteur de niveau il est possible de ne garder que les valeurs " juste". Cela pose cependant 2 problèmes. Le premier est qu'il faut corriger la valeur du capteur d'eau totale pour la faire commencer à 255. vous pouvez le faire en modifiant le paramètre 1 du capteur ou si vous avez envie de vous amuser en faisant aller la bascule jusqu'à atteindre ce niveau. le 2ème est que cette valeur est régulièrement remise à 0 sans raison ce qui nécessite de mettre un timer de 2 minutes qui ignore également la valeur après une valeur supérieur à 255 avec le risque de perdre des données. Bref pour ces différentes raison je ne suis pas convaincu par cette solution. Solution 2: Voila la solution que je privilège Pour commencer nous allons ajouter les paramètres pour ce capteur étant donné que par défaut il ne sont pas visible. commencer par ajouter 7 paramètres avec les valeurs par défaut: Sauvegardez le tout et appuyez une fois sur le bouton TX du capteur pour le réveiller. Pour cette solution nous allons utiliser les commandes du capteur - début pluie - fin pluie - début forte pluie - fin forte pluie Pour cela nous devons faire en sorte que ces commandes arrivent à la box. Nous allons donc activer les associations entre les groupe 2,3 et la box de la manière suivante: il vous demande à chaque fois de réveiller le capteur, vous pouvez cliquer sur passez nous le ferons plus tard. Vous devriez maintenant avoir accès aux différents paramètres du capteur. Nous allons donc définir les valeurs pour ces paramètres: Compteur total d'eau: pas nécessaire de modifier Commande de début de pluie. Je vous propose de mettre une valeur à : 1 Commande de fin de pluie. Je vous propose de mettre une valeur à : 0 Multiplicateur de niveau de pluie. la c'est à vous de choisir ce paramètre ne sert qu'à l'affichage de la quantité d'eau totale. Valeur limite pour déterminer la forte pluie. à vous de déterminer. pour ma part une valeur de 20mm/h me parait intéressante pour commencer, je la modifierais peut être par la suite. Commande de début de forte pluie. Je vous propose de mettre une valeur à : 11 Commande de fin de forte pluie. Je vous propose de mettre une valeur à : 10 Une fois que vous avez réglé ces paramètres réveillez votre capteur en appuyant sur le bouton TX. Voila il ne vous reste plus qu'à créer vos scènes en fonction de la première valeur de votre capteur. voici un petit code pour tester: Trigger { conditions = { { id = 916, isTrigger = true, operator = "anyValue", property = "value", type = "device" } }, operator = "any" } Code local commandePluieID = 916 fibaro.trace("Pluie","Pluie: " .. fibaro.getValue(commandePluieID, "value") .. " / quantité: " .. fibaro.getValue(commandePluieID+1, "value") .. " / total: " .. fibaro.getValue(commandePluieID+2, "value")) Indiquez dans les 2 bloc l'id de votre capteur voila le résultat: Dés le premier basculement -> après 3 basculement dans un délais assez court -> après 5 minute sans basculement -> On voit la que le capteur de pluie est déjà à 0. Cela démontre le problème de la première solution. après 8 minutes sans basculement -> On voit que nous avons reçu la commande 0 puis 10 ce qui indique fin de pluie et fin de Forte pluie. Malheureusement lorsque la forte pluie est détectée il faut attendre la fin complète de la pluie pour que la commande de fin de forte pluie soit renvoyée. Voila, j'espère que cela pourra aider certains d'entre vous. N'hésitez pas à commenter ou à poser des questions. SPAM (liens commerciaux) supprimé Modifié le 5 février 2021 par Lazer 2
Messages recommandés