How-toLUA scripts

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!

87 gedachten over “Watermeter uitlezen in Domoticz met een LUA script

  • Moet er nog iets aangepast worden indien de raspberry niet dichtbij de watermeter staat?
    Afstand is zon 5-7meter in mijn geval en ik kan de raspberry niet verplaatsen.

    Alvast bedankt.

    Beantwoorden
  • Erg duidelijk uitgelegd allemaal, dankjewel!
    Ik ben nog maar net begonnen met de Raspbarry.
    En ik dacht ik kies voor het gemak een Cyble sensor (2 draads).
    Dan hoef ik niet iets zelf in elkaar te knutselen.
    Ik moet tenslotte nog veel leren
    Maar hoe sluit ik deze nu aan?
    Moet ik deze dan op de GRN aansluiten en PIN 40?

    Alvast bedankt voor de reaktie.

    Marchel

    Beantwoorden
    • Hier idem. Ik krijg de Cyble sensor niet uitgelezen (level = 0).

      Er zit geen polariteit op de beide draden. Ga er dan vanuit dat GRN en PIN40 moeten werken, toch?

      Beantwoorden
    • Ik heb de Cyble sensor inmiddels aangesloten en alles werkt prima!
      De instructies hier heb ik helemaal kunnen volgen. De enige extra stap die ik heb genomen is:

      – Ik heb een drie-polige draad gepakt (oude USB-kabel, waar ik 1 ader uit heb getrokken.
      – Van de kabel heb ik doormiddel van een 10k Ohm en 1k Ohm weerstand een Pullup resistor gemaakt.
      – Van de drie overgebleven aders in de oude USB kabel heb ik zwart gebruikt als GND (pin39), rood op de 3.3V-pin (pin 17) en groen op pin 40. 5V is voor de Cyble niet nodig.
      – Rood is de Vin op de afbeelding. Als Pullup resistor, heb ik de 10k Ohm weerstand gebruikt, groen is de Vout, als buffer de 1k Ohm weerstand, De Cyble is de switch en tenslotte zwart als ground.
      – Verder deze handleiding stap voor stap gevolgd en nu werkt alles

      Succes!

      Pullup resistor: https://en.wikipedia.org/wiki/File:Pullup_Resistor.png

      Beantwoorden
  • Dank voor je goede uitleg.

    Ik heb wellicht een paar kleine verbetering:

    -Plaats een zener diode 3v3 tussen de zwarte draad en je pi gpio. Er komt nu 5V op je gpio die gemaakt is voor 3,3V. Te koop bij Ali. 100 diodes voor een euro.
    -Voordat ik raspi-gpio commando’s kon uitvoeren moest ik raspi-gpio installeren met het volgende commando: sudo apt-get install raspi-gpio
    -Ik kan je script niet downloaden. Er is geen link: plak dit script erin

    Beantwoorden
    • Geen script zelfde probleem hier…

      Ook weet niet hoe ik het laatste gedeelte de

      “sudo sh -c ‘echo 21 > /sys/class/gpio/export’
      sudo sh -c ‘echo in > /sys/class/gpio/gpio21/direction’
      sudo sh -c ‘echo 0 > /sys/class/gpio/gpio21/active_low’
      sudo sh -c ‘echo both > /sys/class/gpio/gpio21/edge’
      sudo sh -c ‘raspi-gpio set 21 pd’ ”

      opslaat

      Beantwoorden
  • Ik krijg een error in mijn domoticz log:
    2018-09-23 14:23:20.598 Error: EventSystem: in Watermeter: [string “commandArray = {}…”]:18: attempt to perform arithmetic on global ‘sWaterUsage’ (a nil value)

    Wat kan hier het probleem zijn?

    Beantwoorden
    • Peter Joosen

      Dag Remko,
      heb jij het probleem kunnen oplossen?
      Ik heb namelijk juist dezelfde loggings fout


      Groeten,
      Peter

      Beantwoorden
  • Via Setup > More options > User variables even de juiste variable value ingeven, dan zou de foutmelding weg moeten zijn.

    Beantwoorden
  • Peter Joosen

    Ik krijg net zoals Remko een error melding in de logging bij Domoticz:
    EventSystem: in watermeter: [string “–…”]:43: attempt to perform arithmetic on global ‘sWaterUsage’ (a nil value).
    Variable is integer en waarde is 0.
    Toch blijf ik deze fout hebben.
    Iemand een idee????

    Beantwoorden
    • Rubberduck

      Ik heb precies het zelfde probleem.
      attempt to perform arithmetic on global ‘sWaterUsage’ (a nil value)

      Beantwoorden
  • ik krijg precies de zelfde melding.
    2018-10-09 11:56:34.712 Error: EventSystem: in watermeter: [string “commandArray = {}
”]:18: attempt to perform arithmetic on global ‘sWaterUsage’ (a nil value)

    Beantwoorden
  • Even mijn reactie van 29 september bekijken, dat lost het probleem op.

    Beantwoorden
  • Beste Joost,
    zelfde foutmelding. Een waarde invullen bij user variabele WaterMeter lost het probleem niet op. Het lijkt ook wel alsof die waarde door het script meteen weer op 0 wordt gezet. Ik krijg er de vinger nog niet achter. Ik gebruik Domoticz V4.9700.

    Beantwoorden
  • Ik gebruik zelf 4.10051 beta. Als ik de waarde invul is de foutmelding direct weg weg, maar denk niet dat het aan de domoticz versie ligt. Mogelijk is er iets anders nog niet helemaal goed bij jou.

    Beantwoorden
  • IK kom er nog steeds niet uit, maar ik vind wel wat eigenaardigheden.
    Bij het stukje hierboven GPIO staat bij de commando’s een paar keer gpio21 en gpio22. Dat lijkt niet te kloppen.
    In het script staat 2x Waterverbruik (regel 15 en 48), moet dat niet Watermeter zijn?
    De punten hierboven lossen de foutmeldingen niet op overigens.

    Verder heb ik Jessie als besturingssysteem. Zou dat wat uit kunnen maken?

    Beantwoorden
  • Joost bedankt voor je snelle reactie.
    Helaas je oplossing van 29 september biedt niet de oplossing

    Beantwoorden
  • Hier ook steeds dezelfde problemen. Error: EventSystem: in Watermeter: [string “commandArray = {}…”]:18: attempt to perform arithmetic on global ‘sWaterUsage’ (a nil value)

    Waterverbruik (regel 15 en 48), moet inderdaad Watermeter zijn.

    Als ik zelf de variabele Watermeter op 1 zet dan wordt deze automatisch weer terug gezet naar 0.
    De on/off switch ziet netjes de pulsjes. De RFXmeter blijft echter op 0 staan.

    Beantwoorden
  • Waarvoor wordt dan de variabele WaterMeter aangemaakt in Domoticz? Deze wordt nergens meer in het script gebruikt. Of zit ik nu verkeerd te denken? 🙂

    Beantwoorden
  • Hoi,

    Ik heb de stappen gevolgd, maar ik loop tegen het volgende aan:
    Bij Setup > Devices op het groene pijltje geklikt, en de naam GPIO Watermeter gegeven.
    Er wordt dan echter niets aangemaakt in het tabblad ‘Switches’. deze switch lijkt me wel essentieel omdat dit de puls is van de sensor, die ook in het script wordt gebruikt om de waarde op te hogen?
    Het gaat om dit stukje uit de uitleg:

    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”.

    Wie kan me hiermee helpen? bedankt!

    Beantwoorden
  • Ik zit nog altijd met hetzelfde probleem (ook met het python script krijg ik geen goeie data door).
    Wat mij opviel bij het volgen van dit LUA-stappenplan:
    Bij het command ‘ echo 21 > /sys/class/gpio/export’ krijg ik een melding:
    ‘-bash: echo: write error: Device or resource busy’ . Lijkt me niet goed.
    Voor de rest valt mij op dat als de GPIO pulse test de standaard waarde level 1 (=verbinding) is en als ik met mijn schroevendraaier langs de sensor ga (en het lichtje erbovenop oplicht) de value verandert in o (geen verbinding). Gevoelsmatig lijkt mij dit niet te kloppen. Of juist wel?

    Beantwoorden
  • Het klopt dat de sensor een 0 (off) weer geeft wanneer hij metaal detecteert. Het is namelijk een NPN sensor. Dus off bij detectie.

    Doe eens sudo voor het commando? Waarschijnlijk werkt hij dan wel.

    Verder krijg ik ook het LUA script en het Pyton script niet werkend. Nog steeds de foutmelding: global ‘sWaterUsage’ (a nil value)

    Beantwoorden
  • pietje poppesnor

    ook hier de melding Error: EventSystem: in Waterverbruik: [string “commandArray = {} 
”]:18: attempt to perform arithmetic on global ‘sWaterUsage’ (a nil value)

    Het updaten van de variable lost het probleem inderdaad op, voor heel even. Daarna geeft ie gewoon weer de melding. Zolang die foutmelding in de log staat wordt de Waterverbruik ook niet bijgewerkt.

    Beantwoorden
  • Dank je voor de duidelijke uitleg, het script werkt bij mij prima.

    Alleen zou ik mijn waterverbruik graag door willen sturen naar influxdb, helaas gaat dat niet lukken met het updatedevice commando weet jij hoe het script aangepast kan worden zodat de waarden via een JSON commando in domoticz terecht komen?

    Beantwoorden
  • Sommige mensen kregen onderstaande melding:

    Error: EventSystem: in Waterverbruik: [string “commandArray = {} 
”]:18: attempt to perform arithmetic on global ‘sWaterUsage’ (a nil value)

    Het script (en handleiding) is nu enigszins aangepast, waardoor deze error niet meer voor zal komen. Voor degenen die de foutmelding kregen: maak een gebruikersvariabele aan met de naam “WaterVerbruik” (let op de hoofdletters!), het type is “integer”en de waarde is “0” en maak gebruik van het nieuwe script (link vind je in het artikel).

    Beantwoorden
    • pietje poppesnor

      heb de wijzigingen doorgevoerd en zojuist geplakt. Zodra er thuis water gepakt wordt, zal ik zien of het heeft gewerkt 🙂

      Beantwoorden
    • pietje poppesnor

      jeej!!! 8 liter verbruikt. fantastisch! het werkt. dank je wel voor deze aanpassing. nu ff goed doortesten.

      Beantwoorden
  • Hoi Joost,

    Op een of andere manier zit ik in een loop bij het downloaden van je script. Ik pak de RAR uit en daar zit een ZIP in die weer een RAR bevat en ga zo maar door.

    Zou je het script mij kunnen toe mailen?

    Beantwoorden
    • Hoi Toppe,

      Het script is gewoon te downloaden en uit te pakken. Mocht het niet lukken probeer dan eens een andere browser (bv. Chrome) of een andere programma om het uit te pakken (bv. WinRar).

      Beantwoorden
  • Rubberduck

    Beste Joost,

    Met het nieuwe lua script werkt het wel.
    Superbedankt.
    En ga vooral door met je tutorials.

    Beantwoorden
  • Top het werkt!

    Er moeten dus 2 variabelen aangemaakt worden?
    1: WaterMeter met de huidige stand van de watermeter
    2: WaterVerbruik

    Dat staat boven in de tekst nog niet.
    Heel erg bedankt!

    Beantwoorden
    • Hoi Jo,

      Ja, je moet inderdaad 2 variabelen aanmaken, zoals in het artikel vermeld staat:

      “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”.”

      Beantwoorden
  • Bij mij detecteerd de PI de sensor stand niet. met raspi-gio is het altijd : level=1. Als er iets metaals tegenaankomt gaat het lampje op de sensor branden, maar er blijft staan level=1. Geen metaal ertegenaan lampje uit, maar nog steeds level=1
    Zwarte draad zit op pin 40, blauw op pin 39 en bruin op pin2

    Beantwoorden
    • Hoi Eric,

      Je sensor werkt niet omdat 5v net te weinig is. Je hebt minimaal 6v nodig. Pas ook op met de sensor direct aansluiten op de pi. Je pi krijgt nu 5v op zijn ingang terwijl dit 3,3v moet zijn. Als je een hogere voeding gaat gebruiken (bijvoorbeeld 6v) krijgt je pi ook 6v op de ingang. Maak daarom een spanningsdeler met 2 weerstanden. Ik kan wel even kijken welke weerstand waarde. Ik gebruikt heb.

      Beantwoorden
      • Blijkbaar exemplarisch dat het niet werkt ? In deze beschrijving wordt dezelfde sensor gebruikt. Ik heb nog verder gezocht en dit type LJ12A3-4-Z/BX is er ook in een 5V variant LJ12A3-4-Z/BZ-5V. Ga die denk ik maar gebruiken, scheelt weer een extra voeding.

        Beantwoorden
        • Dag Erik,

          Ik heb het zelfde probleem denk ik… Heb ook de zelfde NPN sensor al die jij hebt (LJ12A3-4-Z/BX).
          Is het jou nog gelukt met die andere sensor (LJ12A3-4-Z/BZ-5V)?

          Ruud

          Beantwoorden
  • Ik heb de hele handleiding gevolgd. Als ik de kraan openzet detecteert de sensor ook de draaiing. De trigger komt alleen niet aan in Domoticz. De GPIO WaterMeter staat ook uit in Domoticz. Het lijkt erop dat de trigger niet aankomt. Iemand een idee wat er fout is. Ik heb de juiste IDX gebruikt.

    Beantwoorden
  • Hallo,
    Bedankt voor de goede uitleg en het script. Ik loop alleen tegen enkele problemen aan.
    -eerst probleem is dat ik het dag verbruik niet naar 0 kan krijgen ook niet door 10 min te wachten en op het grafiek te klikken met de shit-toets ingedrukt. Maar dit probleem zal morgen waarschijnlijk wel opgelost zijn. Dan begint hij vast vanaf 0 Liter.
    -IK heb een meter met 3 cijfers achter de komma. En elke puls is bij mij dus ook 1 liter en de script hierboven werkt met 10 Liter per puls. (voor zover ik kan zien)
    – En ik heb nog een error in het Lua script alles werkt verder wel allen blijf ik de volgende error houden.:[string “commandArray = {}…”]:37: attempt to index global ‘devicechanged’ (a nil value)
    (ik heb uw laatste Lua script gebruikt.)

    Weet iemand hoe ik dit kan oplossen.. Bedankt alvast.

    Beantwoorden
  • Dag Joost,

    Duidelijk handleiding en heb deze stap voor stap gevolgd. Alleen krijg ik geen data van de watermeter. Sensors lampje brand wel zodra het wieltje loopt.

    In het lot staat de volgende foutmelding:
    2019-01-31 21:58:00.272 Error: EventSystem: in WaterMeter_LUA: [string “commandArray = {}
”]:37: attempt to index global ‘devicechanged’ (a nil value)

    Enig idee?

    Ruud

    Beantwoorden
  • Joost,

    Na wat gexperimenteer en opnieuw installeren draait de watermeter nu zonder problemen.
    Ik heb alles draaien op een slave domoticz in mijn meterkast die als alles goed gaat ook stads warmwater etc gaat meten.
    De hoofdserver staat op een plek met beter ontvangst voor kaku modules.

    Mijn vraag, ik heb op de slave als een p-1 meter Usb interface draaien die erg simpel op de hoofd domoticz server zichtbaar is te maken.
    Als ik dit zelfde probeer met de watermeter lukt dit niet.

    Heb jij een tip?

    Bob-Jan

    Beantwoorden
    • Opgelost,

      De inductieve sensor zie je wel op je masterserver, met een kleine aanpassing van het script draait het.
      Ipg te verwijzen naar de Gpio verwijs ik naar de sensor.

      Bob-Jan

      Beantwoorden
      • Hoi Bib-Jan,

        Hoe heb je dit gefixed?

        Zoals je schetst heb ik een Pi, als Domoticz slave, in de meterkast hangen.
        Gegevens van de slimmemeter die ook gekoppeld is ontvang ik zonder problemen op de master.
        De watermeter niet en is nu zichtbaar als 2 unknown on/off apparaten.

        Wat moet ik doen om de gegevens van het water ook op m’n master zichtbaar te krijgen?

        Groet, Martijn

        Beantwoorden
        • Martijn,

          Ik heb de watermeter gekoppeld aan een slave en de slave zichtbaar gemaakt op de master, zie Wiki domoticz.

          Als je dan kijkt wat je tezien krijgt van de slave op je master valt dat voor de water meter tegen. Maar gelukkig zie je de watermeter pulse wel.

          Als je nu het script (zoal beschreven op deze site) installeert en alles net zoals op de slave maakt zit je bijna goed.
          Je moet alleen niet naar de gpio verwijzen maar naar de sensor die je ziet van de slave!

          Dus ook de stand van je analoge meter invullen bij gebruikers variabelen.

          Bij mij werkt dit perfect.

          Ik heb trouwens de elektriciteitsmeter ook via de slave lopen, deze is wel direct in de master zichtbaar.

          Ik kan helaas vanaf mijn telefoon geen copy van het script maken, hopelijk lukt het je.

          Bob-Jan

          Beantwoorden
          • Hoi Bob-Jan,

            Allereerst dank voor je reactie. Heb inline gereageerd op je uitleg.
            ***
            Ik heb de watermeter gekoppeld aan een slave en de slave zichtbaar gemaakt op de master, zie Wiki domoticz.
            -Deze was de makkelijkste inderdaad en is ook gelukt 🙂

            Als je dan kijkt wat je te zien krijgt van de slave op je master valt dat voor de water meter tegen. Maar gelukkig zie je de watermeter pulse wel.

            -Ik zie 2 nieuwe schakelaars met de volgende kenmerken, welke moet ik gebruiken? Ik denk de DomoticzWaterSensor

            idx Hardware ID Unit Naam Type
            87 DomoticzWaterSensor 30E0E03 25 Unknown1 Lighting 2
            88 RFXCom 0B4BADE 9 Unknown2 Lighting 2

            Als je nu het script (zoal beschreven op deze site) installeert en alles net zoals op de slave maakt zit je bijna goed.
            Je moet alleen niet naar de gpio verwijzen maar naar de sensor die je ziet van de slave!

            -Hier begint het interessante stuk, je geeft aan het script installeert en alles net zo maakt als op de slave.
            Vanaf waar begin ik de installatie te volgen. Begin ik met het maken van de utility (watermeter) dmv de 2 http commando’s in een browser?
            Ga er vanuit dat ik ook nog de stap moet doen “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”.”.

            Volgens mij kan ik het hele GPIO stuk overslaan met de pinnetjes omdat deze er niet is.

            Qua script denk ik dat ik de net aangemaakte idx moet gebruiken en niet die van de reeds bestaande die van de slave zijn overgekomen. In het script denk ik dat ik het volgende aan moet passen in regel 37

            if (devicechanged[‘GPIO Watermeter’] == ‘Off’) then
            naar
            if (devicechanged[‘DomoticzWaterSensor’] == ‘Off’) then

            Dus ook de stand van je analoge meter invullen bij gebruikers variabelen.

            -Dit zijn de gebruikers variabele in het stukje “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).”

            Bij mij werkt dit perfect.

            Ik heb trouwens de elektriciteitsmeter ook via de slave lopen, deze is wel direct in de master zichtbaar.
            -Klopt, deze deed het helemaal vanzelf.

            Ik kan helaas vanaf mijn telefoon geen copy van het script maken, hopelijk lukt het je.

            -Zou super zijn als het je lukt om je script te delen of wat screendumpjes hebt.
            Misschien kan Joost het gebruiken om deze tutorial verder uit te breiden.

            Dank voor je hulp tot nu toe.

            Groetjes, Martijn

          • Works like a charm!!
            Uiteindelijk hÚÚl eenvoudig en zoals ik beschreef in onderstaande reactie.
            @Joost, heb er een handleiding van gemaakt. Wellicht een leuke toevoeging op het artikel.
            Laat maar weten, mail ik het aan je.

            Dank voor jullie hulp

  • pietje poppesnor

    ik heb de sensor op een rpi 3B aangesloten zoals bovenstaand schema. echter, als de sensor niet meer oplicht en dus “uit” is, blijft ie zwak branden. ik zie dan ook geen off/on state wijziging in domoticz.

    ik heb tussen de zwarte draad van de sensor en de zwarte draad naar de rpi een weerstand gesoldeerd. dit ging goed op een rpi1, maar nu dus niet. kan iemand mij vertellen waarom niet?

    Beantwoorden
    • Veel sensoren werken niet goed met 5v. Ze hebben eigenlijk 6v of meer nodig. Test eens met een losse voeding. Gebruik wel een spanningsdeler aangezien er dan ook 6v of hoger op je pi komt te staan! Dat vind ie niet leuk

      Beantwoorden
  • Hallo Joost,

    Fantastische handleiding, het is me gelukt m’n waterverbruik te registreren in Domoticz. ?

    Nog wel een paar vraagjes:

    Ik krijg het verbruik van de eerste dag niet op 0, ik start nu met een verbruik van 1228000 L, als ik de shift combinatie gebruik vraagt hij wel om de waarde te resetten maar doet het vervolgens niet.

    En ik zie dat bij de uservariabelen de waarde die ik in het begin invul bij WaterMeter nu bij WaterVerbruik staat. Klopt dit?

    mvg,
    Mark

    Beantwoorden
  • Hallo Joost,

    Goede uitleg, met wat knutselwerk heb ik een frame ontworpen voor een Itron watermeter, je kunt het er zonder schroeven op klikken . Als je in het bezit bent van een 3D-printer is het project helemaal gaaf om te doen. De censor die ik gebruik is een, “SN04-N nadering schakelaar” die het bij mij prima doet op de 5-volt van de raspberry pi. Het frame kun je vinden op: https://www.thingiverse.com/thing:3501337

    mvg,
    Koos.

    Beantwoorden
  • Hallo Joost,

    Inderdaad heldere uitleg, het is mij ook gelukt om het werkend te krijgen. Alleen zie ik dat op mijn meter bij het metalen ‘halve maantje’ staat ‘x 0,0001’. Dat betekent dus dat het niet om 1 liter per puls gaat maar om 1/10 liter per puls (1 liter is de derde positie achter de komma, 1/1000 van een m3). Waar kan ik dat corrigeren in het script of in Domoticz? Ik zie het niet bij het tabblad Meters/Counters in Settings.

    Vr. grt,
    Roel

    Beantwoorden
  • Hallo Joost,

    Kleine aanvulling: ik heb hetzelfde euvel als Mark (zie 10 maart 2019).
    “Ik krijg het verbruik van de eerste dag niet op 0, ik start nu met een verbruik van 1228000 L, als ik de shift combinatie gebruik vraagt hij wel om de waarde te resetten maar doet het vervolgens niet.

    En ik zie dat bij de uservariabelen de waarde die ik in het begin invul bij WaterMeter nu bij WaterVerbruik staat. Klopt dit?”

    Beantwoorden
  • Beste Joost,

    Ik heb op mijn Domoticz systeem ook via jouw handleiding een watermeter gebouwd, maar ik wil ook graag je watermeter.lua versie gaan gebruiken. Echter de link naar de download ( Haal alle code weg en plak dit script erin) geeft als je op dit klikt een link naar dezelfde pagina, en niet naar een mogelijkheid om te downloaden, of om ook maar het .lua script te zien.

    Zou je mij kunnen vertellen waar ik het watermeter.lua script wel kan downloaden ?

    Alvast bedankt,

    Met vriendelijke groet:

    Beantwoorden
    • Hoi Sef,

      Het downloaden van het script moet nu weer lukken!

      Beantwoorden
  • Wiecher Jan van der Werf

    Hallo Joost,
    Ik heb hetzelfde probleem als Mark (10 maart) en Roel (1 april).
    ” Ik krijg het verbruik van de eerste dag niet op 0, ik start nu met een verbruik van 1228000 L, als ik de shift combinatie gebruik vraagt hij wel om de waarde te resetten maar doet het vervolgens niet.

    En ik zie dat bij de uservariabelen de waarde die ik in het begin invul bij WaterMeter nu bij WaterVerbruik staat. Klopt dit?”
    Ik zie verder geen reactie meer. Is dit probleem opgelost? Als dat zo is zou ik de oplossing ook graag willen vernemen. B.V.D.

    Wiecher jan

    Beantwoorden
    • Hallo Wiecher, heb je 5 minuten gewacht met het verwijderen van het verbruik van 1228000, zoals in het artikel aangegeven?

      Wat betreft de 2e vraag: commandArray[‘Variable:WaterVerbruik’] = tostring(uservariables[“WaterMeter”]) ;).

      Ik adviseer je om de aangemaakte virtuele sensor te verwijderen en even opnieuw het artikel door te nemen. Hier werkt alles nog steeds prima, na 1,5 jaar.

      Beantwoorden
      • Wiecher Jan ven der Werf

        Hoi Joost,
        Bedankt voor je snelle reactie. Alles werkt naar behoren. De meter wordt geupdated s’ morgens staat hij keurig op 0 verbruik. Het probleem is dat ik de waarde op de dag dat de sensor is aangemaakt niet kan verwijderen door in de daglog met de shift linker muisknop de hoge initiele waarde te verwijderen. Er wordt wel gevraag of het ok is maar na bevestiging wordt de waarde niet verwijderd.

        Beantwoorden
  • Wiecher Jan van der Werf

    Hoi Joost,
    Op jouw advies de virtuele sensor (WaterMeter) verwijderd en opnieuw aangebracht. Hierbij heb ik de variable gelaten voor wat ze zijn. Mijn loging is nu correct. Bedankt voor je advies en de mooie tutorial.
    Groetjes Wiecher Jan.

    Beantwoorden
  • Ik heb je handleiding al 5x ingesteld maar er blijft niks binnen komen op de schakelaar.
    ik heb deze NPN sensor.
    met sudo raspi-gpio get 21 krijg ik wel contact. Ook wordt hij automatisch gevonden in domoticz.

    Beantwoorden
      • geen,
        ik krijg gewoon:
        “Sysfs GPIO: Startup – polling:no interrupts:yes debounce:50msec inputs:1 outputs:0“
        en Level=1
        hij zit op GPIO 21 = pin 40
        led gaat gewoon uit en aan op metaal
        lua script draai gewoon om de 5 minuten en blijft melden dat het verbruik nog steeds het zelfde is.
        de log van de schakelaar wordt gewoon niet geupdate.

        Beantwoorden
  • het draadje op pin 40 maakte geen contact hij werk nu 🙂

    Beantwoorden
  • Ben onlangs verhuist en de NPN sensor werkte niet meer. Waarschijnlijk een iets andere watermeter, waarbij het metalen halve maantje iets verder van de plastic kap zit. Ik gebruik nu deze 5v NPN sensor, die gelukkig weer perfect werkt!

    Beantwoorden
  • UPDATE en vraag….

    Al een paar maanden aan het proberen geweest om dit alles aan de gang te krijgen….
    Maar voor mij werkt de 6v sensor dus niet, vandaag de 5v sensor binnen gekregen en alles
    voor de 20ste keer opnieuw geconfigureerd en het werkte meteen.

    Ik heb de volgende sensor besteld: M12 4mm DC 5V NPN NO LJ12A3-4-Z/BX-5V Inductive Proximity Sensor Switch

    Deze sensor werkte niet bij mij: LJ12A3–4-Z/BX

    Wel even een vraagje over het totaal verbruik op nul zetten. In de handleiding staat het volgende;
    “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.”

    Als ik dit doe dan zegt hij “Are you sure to remove this value at ?: Date: 2019-10-05 15:00:00 Value: 943015” ik klik vervolgens op OK maar er gebeurt niks…
    Bij 1500 uur staat nu een verbruik van 943015 en bij 1600 uur een verbruik van 3 liter.

    Beantwoorden
    • Bij mij kon ik die value pas verwijderen na een paar dagen

      Beantwoorden
      • Dank voor je reactie Maarten. Ik ga het over een paar dagen nogmaals proberen…
        Vandaag wou het vooralsnog niet.

        Beantwoorden
  • Vandaag met de sensor (6V) zitten knutselen. Het blijkt dat deze geen pulsen afgeeft bij een voedingsspanning van 5V. Als je toch een 6v sensor wil gebruiken dan moet de sensor op een voedingsspanning van bv 12 v worden aangesloten. In de aansluiting naar de GPIO moet dan een zener, bv 3v3, worden gezet om te voorkomen dat de spanning op deze poort niet te hoog kan worden. Na deze aanpassing werkt het direct.

    Beantwoorden
  • Hi, PI is een paar keer down geweest waardoor e.e.a. out off sync loopt.
    Kan ik dit aanpassen door de variabele te wijzigen in SETUP > MORE > USER VARIABLES “WaterMeter”?

    Beantwoorden
  • Ik heb een watermeter sensor die via een wemos een device in domoticz aanstuurt
    Kan ik dit script dan wel gebruiken ??

    Beantwoorden
    • Geen idee of het via een wemos ook lukt, maar er zullen in het script zeker aanpassingen gedaan moeten worden. Helaas heb ik geen ervaring met het uitlezen van de watermeter via wemos.

      Beantwoorden
  • Bedankt voor deze duidelijke uitleg. In Ă©Ă©n keer werkend!

    Heb dit werkend met een flowmeter in de waterleiding i.p.v. met een naderingsschakelaar.
    Er wordt per 100 pulsen een liter bijgeteld, maar de flowmeter geeft 120 pulsen per liter water af.
    Waar kan ik deze correctie doen?

    Beantwoorden
  • Hallo
    Ik kan het Watermeter LUA versie.rar niet uitpakken.
    Ik heb al van alles geprobeerd maar het rar bestand lijkt corrupt.
    Wie kan mij helpen

    Beantwoorden
  • Is dit normaal in de log van de watermeter.
    2020-06-17 22:23:01.531 Status: EventSystem: Script event triggered: Watermeter
    2020-06-17 22:23:11.533 Status: EventSystem: Script event triggered: Watermeter
    2020-06-17 22:23:21.556 Status: EventSystem: Script event triggered: Watermeter
    2020-06-17 22:23:31.576 Status: EventSystem: Script event triggered: Watermeter
    2020-06-17 22:23:41.578 Status: EventSystem: Script event triggered: Watermeter
    dit krijg ik elke min.

    Beantwoorden
  • Hallo Joost,

    Ik heb het nooit voor elkaar gekregen om dat dagverbruik na het instellen van het script op 0 te krijgen met de optie zoals beschreven in je handleiding. Door een kapotte SD-kaart en niet extern opslaan/backuoen van de database alles opnieuw moeten instellen en wederom krijg ik het dagverbruik
    niet op nul…

    Heb jij of heeft iemand anders de oplossing?? Kun je ergens in de database een waarde weghalen?

    Ruud

    Beantwoorden
  • Bedankt voor de uitleg! Ik had het een half jaar geleden al werkend met een ander script. Toen een update van Domoticz geĂŻnstalleerd en tegelijkertijd begaf de SD kaart het. Stom geen backup van Domoticz. Anyway, weer wat tijd gevonden en nu deze tuturial gevolgd die beter werkt dan wat ik eerder had. Ik heb wel uiteindelijk 1 regel verwijderd omdat het m.i. alleen de logs volschrijft
    (if otherdevices_lastupdate[“WaterVerbruik”] == nil then
    — commandArray[‘UpdateDevice’] = ”..iIDX..’|0|’..sWaterUsage..” — wat is hier het nut van? )

    Ik heb mijn npn sensor (LJ18A3-8-Z/BX Nabijheids sensor N/O NPN 8mm) met een Tesa powerstrip op de watermeter geplakt. In 2 sec gedaan en kan later ook weer zo verwijderd worden. Zit nu al 6 maanden netjes op z’n plek. Deze sensor “kijkt” ook ver genoeg, dus er hoeft niets weggeschuurd te worden e.d. Ik heb wel een voltage divider gemaakt met weerstanden om 3.3V op de GPIO ingang te krijgen. Just in case.

    Beantwoorden
  • Nico Draak

    Hallo, bedankt voor het script en de toelichting. Het loopt bij mij als een zonnetje. Toch wel een vraag: in het log van Domoticz zie ik wel heel erg veel meldingen van de watermeter, zie hieronder. Is dit te beperken of uit te schakelen?

    2020-12-16 14:40:40.050 Status: EventSystem: Script event triggered: 0_Hal_Watermeter
    2020-12-16 14:40:48.356 Status: Sysfs GPIO: gpio21 new state = off
    2020-12-16 14:40:48.472 Status: LUA: Waterverbruik is gewijzigd naar 48.06m3
    2020-12-16 14:40:48.485 Status: EventSystem: Script event triggered: 0_Hal_Watermeter
    2020-12-16 14:40:51.469 Status: Sysfs GPIO: gpio21 new state = on
    2020-12-16 14:40:56.777 Status: Sysfs GPIO: gpio21 new state = off
    2020-12-16 14:40:56.950 Status: LUA: Waterverbruik is gewijzigd naar 48.061m3
    2020-12-16 14:40:56.964 Status: EventSystem: Script event triggered: 0_Hal_Watermeter
    2020-12-16 14:40:59.887 Status: Sysfs GPIO: gpio21 new state = on
    2020-12-16 14:41:05.247 Status: Sysfs GPIO: gpio21 new state = off
    2020-12-16 14:41:05.364 Status: LUA: Waterverbruik is gewijzigd naar 48.062m3
    2020-12-16 14:41:05.376 Status: EventSystem: Script event triggered: 0_Hal_Watermeter
    2020-12-16 14:41:08.368 Status: Sysfs GPIO: gpio21 new state = on
    2020-12-16 14:41:13.694 Status: Sysfs GPIO: gpio21 new state = off
    2020-12-16 14:41:13.813 Status: LUA: Waterverbruik is gewijzigd naar 48.063m3
    2020-12-16 14:41:13.825 Status: EventSystem: Script event triggered: 0_Hal_Watermeter
    2020-12-16 14:41:16.799 Status: Sysfs GPIO: gpio21 new state = on

    Beantwoorden
  • Hallo, ik krijg om onduidelijke reden het niet voor elkaar om ipv m3 liters te tonen. Ik volg je instructie:

    “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.”

    maar dit verandert alleen de waarde in grote (1000x groter of kleiner). De eenheid blijft m3.
    Moet ik nog ergens anders iets aanpassen?

    bedankt!

    Beantwoorden
  • Joost Peters

    Werk hier prima, veel dank voor de moeite Joost!

    Enige is dat ik ook veel spookverbruik heb, Zo 50-70 liter per uur. Het is niet zo dat ik lekkage heb, de meter loopt niet en de sensor (led) staan niet toevallig altijd aan. Zit dus ergens een probeem met een foute registratie/storing.

    Iemand een idee? Zou het interferentie kunnen zijn? Gebruik nu ader van een UTP kabel (2 meter). Sensor op 5.2 volt en goed reagerend op meter. (Via zener op pin40)

    Dank voor het meedenken!

    Joost

    Beantwoorden
  • Meneer Joost,

    Ik heb iets vreemds met u water programma. Het werkt in eerste instantie prima, maar na een paar dagen vind Domoticz het idx nummer van de rfxMeter niet meer.
    Bij de tab in Domoticz Apparaten staat hij keurig tussen en bij de kolom laats gezien doed hij ook mee.
    Maar bij instellingen, meer opties gebeurtenissen bij de 3 streepjes onder elkaar is de idx weg.
    Heeft u enig idee hoe ik dit kan oplossen. Ik heb alles gedaan zoals aangegeven in uw uitleg, en het werkte ook alleen een paar dagen, en dan is het over.

    Bij voorbaat dank,
    Dirk,

    P.s. Ik ben hier niet echt mee bekend , dus als ik iets vergeet of fout doe sorry dan daarvoor

    Beantwoorden
  • Goedenavond ik heb een vraagje ik heb inmiddels de meting aan de gang maar als ik in Domoticz de watermeter bekijk ten opzichte van bvb mijn stroom meter of een andere meter is de watermeter blokje (tegel) donkerder van kleur hoe kan ik deze helder krijgen

    Beantwoorden
  • Sensor aanmaken werkt niet meer zoals aangegeven vanaf versie Stable 2023.2

    Verschil:
    Oud
    /json.htm?type=createvirtualsensor&idx=HWIDX&sensorname=SENSORNAME&sensortype=SENSORTYPE

    Nieuw
    /json.htm?type=command&param=createvirtualsensor&idx=HWIDX&sensorname=SENSORNAME&sensortype=SENSORTYPE

    Beantwoorden
  • Wallgarden

    Dag Joost,

    Mijn ip adres van de raspberry is gewijzigd. Nu werkt de meting niet meer. Hoe kan ik dat eenvoudig corrigeren?

    Beantwoorden
    • Wallgarden

      Zal het zelf maar beantwoorden. Dat ik geen meting meer krijg is het gevolg van een apt-get update en vervolgens een apt-get ugrade. Ik heb nu kernel 6.6. De pin-nummering van de sysfs driver zijn daardoor veranderd. Gebruik sudo cat /sys/kernel/debug/gpio en je ziet dat GPIO 21 pin 533 is geworden.
      Dit zijn de wijzigingen die je moet doorvoeren:
      sudo -i
      sudo apt-get install raspi-gpio
      echo 533 > /sys/class/gpio/export
      echo in > /sys/class/gpio/gpio533/direction
      echo 0 > /sys/class/gpio/gpio533/active_low
      echo both > /sys/class/gpio/gpio533/edge
      raspi-gpio set 21 pd

      sudo raspi-gpio get 21

      __________________________________________________________________

      sudo sh -c ‘echo 533 > /sys/class/gpio/export’
      sudo sh -c ‘echo in > /sys/class/gpio/gpio533/direction’
      sudo sh -c ‘echo 0 > /sys/class/gpio/gpio533/active_low’
      sudo sh -c ‘echo both > /sys/class/gpio/gpio533/edge’
      sudo sh -c ‘raspi-gpio set 21 pd’

      Beantwoorden

Geef een reactie

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *