Pluviométre Davis + FGBS222 = Fiable+précis?

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 <\>.
benp
Messages : 98
Inscription : 29 oct. 2017, 09:35

Pluviométre Davis + FGBS222 = Fiable+précis?

Message par benp »

Bonjour,

Après avoir testé pas mal de solutions:
  • Oregon PCR800: pas si mal (mais dure 1 à 2 ans seulement) mais n'est plus fabriqué.
  • Popp Z-Rain: pas fiable du tout à 80€ avec des valeurs parfois très fausses. https://www.domoticz.com/forum/viewtopi ... 2&start=20
  • TFA 30.3233.01 +RFXcom : pas beaucoup mieux mais pour beaucoup moins cher (27€)
J'ai cherché d'autres modèles mais aucun ne semble fiable et précis:
  • Netatmo
  • Autre pluviomètre RFXcom
Je me suis résolu à construire une solution non clé en main: Pluviométre Davis + FGBS222
J'avais initialement prévu un montage sur pile à base d'ESP32+deep sleep (FireBeetle DFR0478=10µA en veille) mais je peux finalement me relier au secteur->12v donc c'est plus simple avec un FGBS222
C'est au départ ce post sur un forum Jeedom qui m'a donné l'idée du montage.

Le pluviométre Davis est prévu pour être intégré dans une station Davis Vantage mais je tente de l'interfacer avec domoticz avec un FGBS222

Les fournitures:
  • Pluviomètre Davis 6464M (149€ chez météo shopping)
  • FGBS222 (j'ai déja une clé zwave)
  • Embase RJ11 (ref 08565 chez gotronic)
  • Platine RJ11 (ref 37546 chez gotronic BOB-14021 chez sparkfun)
Les deux derniers elements sont optionnels si on coupe le RJ11 du pluviomètre.

Connections:
  • Souder les fils bleu et jaunes du FGBS222 aux bornes 4&5 de l'embase RJ11 (peu importe le sens, c'est un capteur reed)
  • Alimenter en 9V à 30V par fil bleu(masse) et rouge (bloc secteur 12V pour moi)
A faire dans domoticz:
  • Inclure capteur FGBS222
  • Configurer le capteur:
    20-Input 1-mode de fonctionnement:Entrée alarme normalement ouverte (NO)
    150-Sensibilité de l'entrée 1: 1 soit 10ms
    152-Délai d'annulation alarme entrée: 0
  • Renommer "Instance 1: Switch" en "Davis-switch"
Dans le programme ci-dessous, tout devrait être compréhensible pour ceux qui sont habitués aux dzvents, sauf les lignes 7&8: c'est une astuce (lien en commentaire du programme) qui permet de récupérer le compteur de précipitations totales nécessaire à updateRain.

Code : Tout sélectionner

return {
   on = {
      devices = {'Davis-switch'},
      timer = {'every 1 minutes'}
    },
   execute = function(domoticz, item2)
        local f_rainValTable = domoticz.utils.stringSplit(domoticz.devices('Davis-pluvio').sValue,';')
    	local r1 = f_rainValTable[2] -- source:https://www.domoticz.com/forum/viewtopic.php?p=299823#p299823
       
        --local r1= domoticz.devices('Davis-pluvio').rain
        local rr1=domoticz.devices('Davis-pluvio').rainRate
        local time1=domoticz.devices('Davis-switch').lastUpdate.secondsAgo
        local rr2=3600*0.2/ time1 -- mm/h

        if (item2.isDevice and domoticz.devices('Davis-switch').state=='On') then
            r1=r1+0.2
            domoticz.devices('Davis-pluvio').updateRain(100*rr2, r1)
        end
        
        if (item2.isTimer) then
            if (rr2<rr1) then
                domoticz.devices('Davis-pluvio').updateRain(100*rr2, r1)
            end
            if (domoticz.devices('Davis-switch').lastUpdate.secondsAgo>3600) then
                domoticz.devices('Davis-pluvio').updateRain(0, r1)
            end
        end
   end
}
Pour l'instant, le montage fonctionne bien sur table depuis plusieurs jours (le changement de jour se passait mal avant l'astuce des lignes 7&8).
Je vais l'installer à l'extérieur+cablage vers l'intérieur du FGBS222 et comparer avec un pluviométre manuel (comme déjà fait ici avec le Zrain) pour voir la précision/fiabilité.
J'ai vu sur ce forum jeedom qu'il faut une résistance de tirage sur le FBGS222 mais j'ai l'impression que c'est pas nécessaire. Qu'en pensez vous?
Dernière modification par benp le 13 sept. 2023, 09:34, modifié 2 fois.
Domoticz 2021.1/ Plugin Zigate 5.1.006/ Zigate Firmware 3.1e
benp
Messages : 98
Inscription : 29 oct. 2017, 09:35

Re: Pluviométre Davis + FGBS222 = Fiable+précis?

Message par benp »

Edit: j'ai supprimé

Code : Tout sélectionner

and rr1>0

en ligne 25 pour que la valeur du pluviomètre soit actualisée régulièrement. Sinon, domoticz considère qu'il n'y a pas de valeur (au lieu de 0) et ne trace pas de barre ni de courbe. C'est un problème aussi visible sur le popp zrain.

J'ai plusieurs comportements bizarres:
dz-switch2.JPG
dz-switch2.JPG (15.26 Kio) Consulté 1389 fois
L'image ci-dessus est le log de Davis-Switch.
Le 2023-05-19 13:11:33 j'ai un Off sans avoir eu de On
A noter aussi, à 2023-05-19 13:38:29, le Off est enregistré avant le On dans la même seconde.
Pour 2023-05-19 13:11:33, Davis-pluvio (mon pluviomètre virtuel) n'enregistre pas d'impulsion (normal car mon algorithme ne prend en compte que les fronts montants).
Remarque: Le capteur reed est sur On=0V quand l'auget est basculé le temps de sa vidange et sur Off=10.29V en repos: le pluviomètre Davis est particulier car mono-auget.
rainfall-last-week.png
rainfall-last-week.png (54.3 Kio) Consulté 1389 fois
rainfall-last-3-days(2).png
rainfall-last-3-days(2).png (53.93 Kio) Consulté 1389 fois
Autre comportement étrange: ci-dessus, le thursday 18 May, la mise à jour du graphique est correcte sur Rainfall last week(0.2mm apparait bien) mais pas sur Rainfall last 3 days (0.2 mm devrait apparaitre mais il y a toujours 0).

J'ai l'impression qu'il y a à la fois des bugs pluviomètre domoticz et un manque de vitesse du système pour prendre en compte tous les changements d'états. Qu'en pensez vous?
Je vais ajouter la résistance de pullup évoquée plus haut pour voir si la situation s'améliore...
Domoticz 2021.1/ Plugin Zigate 5.1.006/ Zigate Firmware 3.1e
benp
Messages : 98
Inscription : 29 oct. 2017, 09:35

Re: Pluviométre Davis + FGBS222 = Fiable+précis?

Message par benp »

J'ai testé le capteur reed sur un arduino UNO.
Avec de l'eau le contact est fermé de 119ms à 141ms. En actionnant le capteur à la main(tape sur l'auget), on peut descendre à 23ms.
Le paramètre 150 Input 1 sensivity par défaut à 10=100 ms est un peu limite (au moins pour actionner à la main). Je l'ai mis à 1=10ms(edit du premier post pour mettre à jour).

Voila le code Arduino si ça peut servir à d'autres:

Code : Tout sélectionner

long t,tOld;
bool aOld=true;
bool a;
void setup() {
  Serial.begin(115200);
  pinMode(2,INPUT_PULLUP);
  t=millis();
}

void loop() {
  a=digitalRead(2);
  if (a<aOld) {
   tOld=millis();
   Serial.print("x");
  }
  if (a>aOld) {
    t=millis();
    Serial.println(t-tOld);
  }
  aOld=a;
}
Je teste si ça va mieux.
En passant, j'ai identifié un autre problème: en débranchant, rebranchant le 12V du montage, le FBGS222 passe de Off à On puis de On à Off au débranchement/rebranchement suivant. Mon script dzvents incremente le compteur de 0.2mm. Je regarde si mon script peut contourner ça.
Domoticz 2021.1/ Plugin Zigate 5.1.006/ Zigate Firmware 3.1e
benp
Messages : 98
Inscription : 29 oct. 2017, 09:35

Re: Pluviométre Davis + FGBS222 = Fiable+précis?

Message par benp »

Nouvelle mise à jour du code pour mieux filtrer les erreurs:
Le compteur du pluviomètre est incrémenté au front descendant et non plus au front montant.
C'est un peu plus compliqué à coder car le last update du switch devient le front montant quelques millisecondes plus tôt et non le front descendant du basculement précédent. J'ai donc du utiliser les historiques pour avoir le temps entre deux fronts descendants.
Le nouveau code permet de filtrer les mises sous tension du FGBS222 avec changement d'état.

Code : Tout sélectionner

return {
   on = {
      devices = {'Davis-switch'},
      timer = {'every 5 minutes'}
    },
    data = {
        pluvioHist = { history = true, maxItems = 10}
    },
   execute = function(domoticz, item2)
        local f_rainValTable = domoticz.utils.stringSplit(domoticz.devices('Davis-pluvio').sValue,';')
    	local r1 = f_rainValTable[2] -- source:https://www.domoticz.com/forum/viewtopic.php?p=299823#p299823
    	
        local rr1=domoticz.devices('Davis-pluvio').rainRate --old rainrate
        local time1=domoticz.devices('Davis-switch').lastUpdate.secondsAgo
        local rr2=3600*0.2/ time1 -- new rainrate mm/h

        if (item2.isDevice) then
            domoticz.data.pluvioHist.add(domoticz.devices('Davis-switch').state)
            local pl2=domoticz.data.pluvioHist.get(2)
            local pl3=domoticz.data.pluvioHist.get(3)
            if (domoticz.devices('Davis-switch').state=='Off') then
                if (pl2.data=='On' and pl2.time.secondsAgo<10 and pl3.data=='Off') then
                    time1=pl3.time.secondsAgo-pl2.time.secondsAgo
                    rr2=3600*0.2/ time1
                    r1=r1+0.2
                    domoticz.devices('Davis-pluvio').updateRain(100*rr2, r1)
                end
            end
        end
        
        if (item2.isTimer) then
            if (domoticz.devices('Davis-switch').state=='On' and time1>20) then
                domoticz.devices('Davis-switch').switchOff()
            end
            if (domoticz.devices('Davis-switch').state=='Off') then
                if (rr2<rr1) then
                    domoticz.devices('Davis-pluvio').updateRain(100*rr2, r1)
                end
                if (domoticz.devices('Davis-switch').lastUpdate.secondsAgo>3600) then
                    domoticz.devices('Davis-pluvio').updateRain(0, r1)
                end
            end
        end
   end
}
J'ai testé ce code avec un relai commuté par arduino, branché sur le FGBS222: fermeture du relais pendant 100ms tous les 10s.
Aucune impulsion n'est perdue pour 1600 fermetures de relais soit 320mm de pluie.
Je vais (enfin!!!) pouvoir installer ce pluviomètre en extérieur!
Domoticz 2021.1/ Plugin Zigate 5.1.006/ Zigate Firmware 3.1e
benp
Messages : 98
Inscription : 29 oct. 2017, 09:35

Re: Pluviométre Davis + FGBS222 = Fiable+précis?

Message par benp »

Il s'est passé un peu de temps avant la pluie, mais enfin, elle est arrivée cette semaine: il a plu mercredi et jeudi
Pluviométre Domoticz Davis: 16 mm
Pluviométre Domoticz TFA: 6.6mm
Pluviométre manuel à grande ouverture: 15 mm
Voir les capture domoticz ci-dessous
TFA-20230624.JPG
TFA-20230624.JPG (60.78 Kio) Consulté 1245 fois
Davis-20230624.JPG
Davis-20230624.JPG (56.6 Kio) Consulté 1245 fois
On peut dire que les mesure du pluviomètre Davis sont bien meilleures que celle du pluviomètre TFA: ce dernier m'a toujours produit des données très divergentes par rapport au pluviomètre manuel!
Domoticz 2021.1/ Plugin Zigate 5.1.006/ Zigate Firmware 3.1e
benp
Messages : 98
Inscription : 29 oct. 2017, 09:35

Re: Pluviométre Davis + FGBS222 = Fiable+précis?

Message par benp »

Voila une photo de la partie connexion électrique. J'ai posé ça sur mon compteur linky car c'est là où s'arrête le fil de 12m RJ11 du pluviomètre DAVIS. Comme ça fonctionne, il va falloir que je mette tout ça dans un boitier électrique pour que ça dure...
IMG_20230613_193521.jpg
IMG_20230613_193521.jpg (273.09 Kio) Consulté 1193 fois
Gros fil noir=RJ11
Platine rouge=platine RJ11
Boitier blanc=FGBS222
Fils Orange/noir torsadés=vers prise d'un bloc secteur 12V
A gauche: connection par wago
Domoticz 2021.1/ Plugin Zigate 5.1.006/ Zigate Firmware 3.1e
benp
Messages : 98
Inscription : 29 oct. 2017, 09:35

Re: Pluviométre Davis + FGBS222 = Fiable+précis?

Message par benp »

Quelques photos des pluviomètres.
Le pluviomètre manuel a été acheté sur le bon coin donc pas de référence. Il fait Ø22cm soit 380 cm²
IMG_20230705_173418bd.jpg
IMG_20230705_173418bd.jpg (77.3 Kio) Consulté 1061 fois
Le pluviomètre Davis est fixé en bout de toit. Surface 214 cm²
_MG_4906bd.jpg
_MG_4906bd.jpg (85.32 Kio) Consulté 1061 fois
Le pluviométre TFA est aussi fixé en bout de toit. La surface est plus petite, il faudrait que je sorte l'echelle pour mesurer...
_MG_4904bd.jpg
_MG_4904bd.jpg (73.85 Kio) Consulté 1061 fois
Domoticz 2021.1/ Plugin Zigate 5.1.006/ Zigate Firmware 3.1e
benp
Messages : 98
Inscription : 29 oct. 2017, 09:35

Re: Pluviométre Davis + FGBS222 = Fiable+précis?

Message par benp »

J'ai fait une update de l’électronique avec un ESP32 programmé avec l'IDE Arduino.
Voir ici:
https://www.domoticz.com/forum/viewtopic.php?p=316397
Avantages de la migration:
  • L'esp32 est moins cher que le zwave
  • J'ai peur pour l'avenir du zwave dans domoticz (pas encore réussi à faire la migration depuis OZW avec le tutoriel domoticz)
  • Les données du pluviomètre sont reçues dans le désordre en zwave/domoticz: il faut un code qui interprète
  • Seulement deux dispositifs virtuels à créer dans domoticz, le reste est géré en http/json api
Inconvénients:
  • Le code arduino est plus long et doit gérer le processeur multicoeur (mais je suis plus à l'aise avec).
Domoticz 2021.1/ Plugin Zigate 5.1.006/ Zigate Firmware 3.1e
Répondre