De meterstanden van stroom en gas kan ik eenvoudig naar Domoticz halen door Eneco’s Toon thermostaat te koppelen aan Domoticz. Het volgende idee was: Hoe kan ik de watermeter uitlezen in Domoticz? Als je onderstaande stappen volgt is dat eenvoudig te doen. Kosten? Een euro of 2 en een half uurtje vrije tijd!
Benodigdheden
Voorbereiding
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.
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!
Sensor in Domoticz
Uiteraard wil je in Domoticz zien hoeveel water je dagelijks verbruikt. Hiervoor moeten we een RFXMeter sensor aanmaken. Dit doe je door middel van JSON:
1 |
http://192.168.2.152:8080/json.htm?type=createvirtualsensor&idx=29&sensorname=Water&sensortype=113 |
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)”. Je krijgt nu een melding in de browser te zien dat de sensor aangemaakt is en welk idx de sensor heeft gekregen. Het idx-nummer hebben we bij de volgende stap nodig:
1 |
http://192.168.2.152:8080/json.htm?type=setused&idx=178&name=RFXMeter&switchtype=2&used=true |
Mijn sensor had idx 178 gekregen, maar dit moet je dus aanpassen naar de waarde die je bij de vorige stap hebt gezien. Als het allemaal goed gegaan is krijg je onderstaande sensor (uiteraard met 0 liter) te zien onder Utility-tabblad:
Python script
Download hier het Python script en pak het uit met een extractor als WinRar. Met dit Python script lees je de GPIO uit en schrijf je iedere verbruikte liter water via JSON naar Domoticz. Je huidige stand van de watermeter kun je invullen regel 9 bij “Counter”. Op regel 12 vul je het IP adres en het poort nummer van je Raspberry Pi in en op regel 14 het idx-nummer van de zojuist aangemaakte RFXMeter sensor. Indien je de sensor op GPIO 21 (pin 40) hebt aangesloten dan hoef je verder niets meer aan te passen in het Python script. Mocht je een andere GPIO gebruiken dan moet je overal waar “40” staat de waarde vervangen door de door jou gebruikte pin. Plaats het script in de folder /home/pi/domoticz/scripts/
.
Meterstand
De meterstand wordt bijgehouden in het bestand meterstand.txt. Hierdoor blijft de meterstand behouden bij een herstart van de Raspberry Pi (zonder dit bestand zou de meterstand telkens op 0 springen). Mocht de meterstand in Domoticz een keer, om wat voor reden dan ook, niet meer juist zijn dan kun je het bestand meterstand.txt aanpassen naar de juiste waarde. Bij de eerstvolgende update van de sensor is dit in Domoticz zichtbaar.
Crontab
Om het script automatisch te laten draaien gaan we een cronjob aanmaken in de crontab. Open de crontab met onderstaand commando:
1 |
sudo crontab -e |
Nu de crontab van de root-user geopend is voeg je onderstaande regel toen:
1 |
@reboot /usr/bin/python /home/pi/domoticz/scripts/watermeter.py >/var/log/cronlog.log 2>&1 |
Sluit de crontab met “CTRL X” en bevestig dat je de wijziging wilt opslaan. Vanaf nu wordt het script automatisch na iedere reboot gestart. Om te controleren of het script daadwerkelijk gestart is kun je onderstaand commando ingeven:
1 |
grep cron /var/log/syslog |
In het overzicht wat je te zien krijgt moet de regel staan die je toegevoegd hebt aan de crontab. Mocht dat niet het geval zijn, dan kun je het script eventueel handmatig start, om te zien of het goed draait:
1 |
sudo python /home/pi/domoticz/scripts/watermeter.py |
Vanaf nu kun je het waterverbruik in Domoticz monitoren!
Bron: pgangorp