Ehoco.nl

Watermeter uitlezen in Domoticz met een LUA script

Watermeter uitlezen in Domoticz met een LUA script

Een paar weken geleden heb je hier kunnen lezen hoe je de watermeter uit kunt lezen met een Python script. De watermeter kun je ook uitlezen met een LUA-script. Hoe? dat leggen we hieronder stap voor stap uit.

Benodigdheden

Voorbereiding

Het idee is vrij simpel: op de watermeter zit een draaischijfje die bij iedere liter water éénmaal rond draait. Op dat draaischijfje zit een half maantje van metaal. De inductieve NPN sensor wordt boven het draaischijfje bevestigd en iedere keer als er een rondje gedraaid is wordt er een signaal naar Domoticz gestuurd dat er één liter water verbruikt is.

 

Inductieve NPN sensor

De NPN sensor heeft 3 draden (bruin/zwart/blauw). Het beste kunt je dupont female connectors aan de 3 draden maken. Ik had zelf geen losse connectors liggen, dus heb ik maar dupont kabeltjes aan de 3 draden gesoldeerd. De blauw draad moet op een GROUND-pin (bv. pin 39) aangesloten worden, de zwarte draad op een GPIO (bv. GPIO 21 = pin 40) en de bruine draad op een 5V-pin (pin 2 of 4). Hoewel het een 6-36 Volt sensor is werkt deze prima op 5 Volt op een Raspberry Pi. Zodra de NPN sensor op de Raspberry Pi aangesloten is hou je het blauwe uiteinde tegen een stukje metaal (bv. schroevendraaier) aan.

Als je alles goed aangesloten hebt moet de led bovenop de sensor gaan branden. Indien dat het geval is hou je de sensor boven het draaischijfje met het halve maantje (van metaal). Ook nu moet de led op de sensor branden, zodra het metalen gedeelte van het draaischijfje exact onder de sensor zit. Bij mij was dat laatste niet het geval. Het bleek dat de plastic kap van de watermeter te dik was om de draaischijf te detecteren. Wat nu?? De watermeter slopen is geen oplossing, aangezien deze eigendom is van het waterbedrijf. Op goed geluk heb ik een stuk schuurpapier gepakt en ben ik het blauwe uiteinde van de sensor gaan schuren. Stukje schuren, kijken of de led nu wel gaat branden, stukje schuren, etc., net zo lang totdat de sensor het draaischijfje kan detecteren.

Zodra de NPN sensor het draaischijf goed detecteert is het tijd om de NPN sensor definitief op de watermeter de plaatsen. In eerste instantie zat ik te denken hoe ik een beugeltje ergens aan vast kon maken, maar de beste oplossing was nog veel eenvoudiger: een gaatje boren in de deksel van de watermeter, de sensor er doorheen halen en aan beide kanten vast draaien met twee moertjes. Zorg er uiteraard wel voor dat je het gaat je exact op de juiste plek in de deksel boort, dus precies boven het draaiende schijfje met een metalen halve maantje. Dit komt erg nauwkeurig!

Watermeter sensor

Eerst gaan de de Raspberry Pi updaten met onderstaande commando’s:


Mocht je Domoticz nog niet geïnstalleerd hebben kijk dan hier.

Om ervoor te zorgen dat er liters i.p.v. m3 geregistreerd worden ga je naar SETUP > SETTINGS > METERS/COUNTERS en wijzig RFXMeter/Counter Dividers : Water naar 1000. Eventueel kun je “Sensor Timout” op 10000 zetten (dit voorkomt dat je time-outs en log-errors krijg indien je bv. op vakantie bent en gedurende langere tijd geen water verbruikt).

Maak een utility (watermeter) sensor aan in Domoticz door onderstaande regel in je browser in te geven:


Uiteraard moet je het IP adres en het poort nummer aanpassen naar de waarde van jouw Raspberry Pi (handig is het om de Pi een vast IP adres te geven). IDX=29 staat voor het IDX nummer van Hardware “Dummy (Does nothing, use for virtual switches)”.

Nadat je op Enter hebt gedrukt krijg je onderstaande te zien:


Onthou het idx-nummer goed, dat heb je bij de volgende stap nodig. Geef onderstaande regel in in je browser (wijzig wel het IP-adres, de poort en de IDX-nummer):


Ga in Domoticz naar SETUP > MORE > USER VARIABLES en maak een gebruikersvariabele aan met de naam “WaterMeter” (let op de hoofdletters!), het type is “integer” en de waarde is de stand van de fysieke watermeter. Vul de waarde in liter is (171,91 m3 op de meter is dus 171910). Maak nog een gebruikersvariabele aan met de naam “WaterVerbruik” (let op de hoofdletters!), het type is “integer”en de waarde is “0”.

GPIO

De NPN-sensor heb ik op pin 21 (board 40) aangesloten, mocht je de sensor op een andere pin aangesloten hebben dan moet je daar rekening mee houden met onderstaande stappen. Open een SSH-verbinding met de Rasperrby Pi, bijvoorbeeld met PuTTY, en geef onderstaande commando’s in:


Let op! Bovenstaande commando’s gaan verloren met een reboot van de Raspberry Pi. Later zullen we de code toevoegen aan het domoticz.sh bestand in /etc/init.d

Test de GPIO pulse met het commando:


Level=0 betekent dat er geen verbinding is, Level=1 betekent dat er wel verbinding is. Je kunt een schroevendraaier gebruiken om de NPN-sensor te testen (doe dit!).

Ga in Domoticz naar SETUP > HARDWARE en voeg te hardware “Generic sysfs GPIO” toe met de naam “GPIO”. In de log moet je het volgende terugvinden: “Sysfs GPIO: Startup - polling:no interrupts:yes debounce:50msec inputs:1 outputs:0“. Mocht je dit niet in je log terugvinden herhaal dan bovenstaande stappen.

Bij SETUP > DEVICES klik je op het groene pijltje om de sensor toe te voegen, geef deze sensor “GPIO Watermeter” als naam.

Ga nu in Domoticz naar de tab SWITCHES en wijzig de GPIO Watermeter. Het switchtype moet “On/Off” worden en verander het icoontje naar “Water”.

Go to SETUP > MORE > EVENTS en maak een nieuw LUA-script aan, triggered door DEVICE. Haal alle code weg en plak dit script erin. Uiteraard moet je iIDX = 328 wijzigen naar de IDX van jouw virtuele watersensor.

Maak het script actief en klik op save. Zodra je de kraan aanzet zal je zien dat het waterverbruik geregistreerd wordt. Nog wel één probleempje: het script denk dat je al het water dat je ooit gebruikt hebt vandáág gebruikt hebt. Dit kunnen we simpel oplossen. Wacht tenminste vijf minuten. Klik op “Log” bij je virtuele Waterverbruik device. Bij de grafiek van “Day” houd je de Shift-toets ingedrukt en klik je met de linkermuisknop op de grafiek. Er wordt nu gevraagd of je de waarde wilt verwijderen. Klik op “Ok”. Nu is wel de juiste meterstand geregistreerd, maar het dag-verbruik staat weer op 0 liter.

Om ervoor te zorgen dat na een reboot van de Raspberry Pi het uitlezen van de watermeter nog steeds werk gaan we een wijziging aanbrengen in het bestand domoticz.sh:


Voeg helemaal onderaan het bestand (na “:”) onderstaande regels toe:


De GPIO is nu altijd goed ingesteld na een reboot van de Raspberry Pi.

Vanaf nu kun je het waterverbruik in Domoticz monitoren!

Mobiele versie afsluiten