Het is fijn om inzicht te krijgen in gas en licht verbruik en/of teruglevering van energie. Wat er nog wel ontbreekt in de meterkast is het inzicht in waterverbruik. De gasmeter is aangesloten op de slimme meter maar de watermeter nog niet. Tijd voor een Wateruitlezer dongle!
zie ook update 23-04-2022 voor de laatste stand van zaken.
De ideale wereld
Hoe ziet de ideale wereld er dan uit? Nou wellicht zo:
- gas, water, licht gegevens worden gecombineerd in 1 module
- deze gegevens kunnen via esphome, dsmr-api worden verzonden en inzichtelijk gemaakt worden
- relatief makkelijk aan te sluiten
- geschikt voor veel type watermeters
Oplossingen
Ruwweg zijn er twee oplossingsrichtingen, namelijk:
- via nabijheidsmeting met een sensor die reageert op metaal (hall sensor)
- optisch: via weerkaatsing van licht (led + ontvanger)
Kijkende naar de ervaringen van andere lijkt het er op dat de optische variant (2) minder betrouwbaar is dan de nabijheidsmeting variant (1). Daarom gekozen om aan de slag te gaan met de eerste variant.
Een nabijheids/inductieve sensor reageert op de nabijheid van metaal. De sensor is gevoelig voor metaal en geeft een signaal af zodra dit gebeurt. Veel watermeters hebben een klein wieltje die per omwenteling 1 of 10 liters registreert. Deze is vaak uitgerust met een stukje metaal. Door het metaal op het wieltje kan de sensor bij elke omwenteling het verbruik registreren.
Technische uitdagingen
Allereerst ben ik de zoektocht gestart naar een juiste sensor. Aangezien het plan is om de sensor samen te laten werken met de p1-dongle en in die module de maximale spanning 5 Volt heb ik vooral gekeken naar 5 Volt sensors.
De sensor die goed verkrijgbaar is en geschikt voor deze klus is de TL-W5MB1. Deze sensor werkt op 5Volt, meet tot 5 mm afstand en heeft een NO (normaly open) uitgang. NO sensor dat wil zeggen zonder detectie staat er geen signaal op de uitgang
Op 1 en 3 komt de voeding te staan van 5V. Op 4 staat het uitgangssignaal van 5 Volt.
5 Volt is te veel voor de esp module. We hebben liever maximaal 3.3Volt omdat of de esp direct stuk is of vrij snel.
Scenario 1 : spanningsdeler
Om de 5 Volt terug te brengen naar 3.3Volt is er eerst voor een spanningsdeler gekozen zoals hieronder.
Na enkele testen bij mijzelf maar ook bij enthousiaste gebruikers bleek dat deze opzet verschillende resultaten gaf. Of soms miste er tikken of soms zelfs te veel, ondanks debounce filter. De sensor met lang snoer is met de spanningsdeler direct gekoppeld aan de gpio van de esp … wellicht toch niet zo’n goed idee.
Scenario 2 : opto coupler
De opto coupler heb ik al vaker in mijn handen gehad en zorgt voor een galvanische scheiding van sensor en esp. Daar word ik al blij van… waarom heb ik hier niet direct voor gekozen 😉 Simpel weg omdat het meer ruimte in neemt en kostbaarder is. Maar eigenlijk weegt dit niet op tegen de galvanische scheiding.
De gpio van de esp wordt in de INPUT_PULLUP modus gezet. Hierdoor is er geen extra pullup weerstand nodig. Op de gpio is onbelast hoog en wordt door de opto coupler naar 0 getrokken zodra de sensor een signaal op pikt. Dat is eens per omwenteling.
Ervaringen met deze opzet zijn erg goed. Stabiele metingen … en daar gaat het om:-)
UPDATE 23-04-2022
Er zijn diverse waterlezers actief en diverse gebruikers hebben hun feedback geleverd. Meest voorkomende terugkoppeling was dat de waterlezer soms enkele liters miste.
Jos E. heeft enkele aanpassingen getest en kwam met een alternatief om een schmitt trigger circuit te gebruiken in combinatie met een andere sensor op een hogere voltage. Samen met de ESP32 C3 testen zijn ook onderstaande aanpassingen in het waterlezer circuit getest.
- een nieuwe NPN/PNP 6 – 36 Volt nabijheidssensor bv TL-W5MC1 of LJ12A3-4-Z/BX
- een SX1308 step-up / buck converter die de 5Volt naar 6.6Volt converteert
- een H11L1 optocoupler met digitale schmitt trigger output (bekende van de P1 bridge)
nieuwe schema’s zien er zo uit:
De twee jumpers (JP1 + JP2) zorgen er voor dat zowel NPN als PNP sensoren gebruikt kunnen worden. De SX1308 zorgt voor een spanning van 6.6V bij een voeding van 5V. Dat is meer dan genoeg voor de 6 – 36V sensor.
Het signaal van de sensor wordt aangeboden aan de LED van de optocoupler en via een digitale schmitt trigger uitgang aan de ESP doorgegeven. Dit zorgt voor een stabieler signaal naar de ESP.
Er ook voor gekozen om dit circuit buiten de dongles om een klein printje op te nemen. Dit printje komt tussen de dongle en sensor in.
Hieronder de het printje (afmeting: 20mm x 12mm).
Bovenstaande aanpassingen hebben een tijdje proefgedraaid in combinatie met een ESP32 C3. Na enkele dagen kwam de aflezing op de liter nauwkeurig overeen.
Software
Net kwam de debounce al even langs. Dit wordt oplost in de software door (stoor) metingen weg te filteren. Een normale watermeter kan ca 1.5 – 2.5m3 per uur leveren. Dat is 1500 – 2500 liter water in 3600 seconden. Maximaal heeft het wieltje 2.4 – 1.4 seconde nodig voor 1 omwenteling. Signalen die sneller dan 1.4 seconden na elkaar komen worden als stoorsignaal gezien.
Een interrupt routine zorgt voor het tellen van de pulsen. Bij elke puls wordt deze routine aangeroepen en wordt de teller met 1 verhoogd.
Daarnaast is er nog een optie ingebouwd om aan te geven hoeveel liter 1 omwenteling is. Daarnaast kan er nog een correctiefactor worden losgelaten.
Omdat we pulsen tellen dient er een beginstand opgeven te worden. De tellerstand wordt eens per 10 minuten, bij elke reboot en per m3 opgeslagen. Dit om te voorkomen dat bij stroomuitval de tellerstand verloren gaat.
Bovenstaande aanpak kan worden geïmplementeerd in DSMR-API en ESPHome oplossing.
Plaatjes
Het is niet toegestaan om in de watermeter te boren, te lijmen, etc. Deze meter is namelijk van eigendom van waterleidingmaatschappij.
Voor de Elster v200 is een 3d houder beschikbaar. Daar zit de sensor ingeklemd waardoor deze niet meer kan verschuiven. Staat strak en erg functioneel.
Voor de andere meters kan klittenband worden gebruikt om de sensor “vast te maken”.
Interesse?
Wil je ook een dongle met watermeter optie? Het kan nu… er zijn drie varianten, namelijk:
- P1 Dongle met Watermeter sensor DSMR-API
- Waterlezer Dongle DSMR-API
- Waterlezer Dongle ESPHome.
3d print houder voor de Elster v200 komt natuurlijk opensource beschikbaar. Aanschaffen kan ook … via deze site.
zie shop : P1 Dongle + Waterlezer
Werkt lekker stabiel en goed support!
Perfect dat deze oplossing bestaat, precies wat ik zocht!
En een erg informatieve en handige website.
leuk om je enthousiasme te lezen. Dank voor de complimenten en veel plezier met de dongle.
Ik maak gebruik van een nabijheidsmeter van smartgateways op een Sensus watermeter. Ik heb echter flink last van teveel verbruik. Lijkt wel alsof deze.soms hangt en dan meer telt.san dat er.daadwerklijk op de teller staat. Werkt jouw nabijheidsmeter beter/anders of is degene die werkt met licht beter.
Dag Peter, Ik ken die oplossing niet helemaal maar weet dat er veel oplossingen zijn met een 5Volt sensor zonder signaal filtering. De oplossing van Smartstuff is met een 6-32V sensor omdat uit testen blijkt dat deze beter functioneert (geen tot zeer weinig missende en spook tellingen). Daarnaast zit er nog een signaalverbetering tussen om de hoeveelheid storingen te minimaliseren. Het meten met een nabijheidssensor of optische sensor is helaas nooit 100% maar komt in de laatste testen hier wel dicht tegenaan. Wil je het zelf uittesten dan stuur ik je een set toe…
Hoi Martijn,
Uitgaande van je verhaal wil ik het graag uitesten. Ik bestel een set en als deze niet werkt wilmik deze dan graag weer terugsturen.
Hoi Martijn,
Kun je een link delen naar het 3d model van de houder voor op de water meter? Ik kon hem niet vinden op je site en ook niet op thingiverse.
Alvast dank.
Deze is te vinden in de shop bij de beugel: https://smart-stuff.nl/product/elster-v200-watersensor-beugel/
Of gaat het om een andere beugel?
Ah, ik heb er overheen gelezen. Dat is inderdaad de beugel waar het om gaat.
Dank je!
Hoi,
Ik heb deze oplossing nu in huis, maar de sensor pikt geen signaal op van mijn Elster V200 meter. Hij zit perfect passend in het houdertje, maar ook als ik hem los op de meter leg of daaroverheen beweeg registreert de sensor niets. Als ik een stukje metaal langs de sensor haal registreert hij dat wel.
Enig idee wat hier aan de hand kan zijn?
Ik lees op internet wel van mensen die die ronde meter hebben en daar dan een stukje af schuren om hem dichter op de meter te kunnen zetten, maar hoopte dat dat met deze oplossing niet nodig was.