Waterflowmeter in Domoticz (dzVents)

In een eerder artikel hebben hebben we uitgelegd hoe je een watermeter kunt uitlezen en het verbruik in Domoticz weer kunt geven. Het verbruik kun je per uur, dag, week, maand of jaar inzien. Maar wat nu als je het verbruik real-time wilt zien? Bijvoorbeeld als je de tuin aan het beregenen bent? Uiteraard heeft Ehoco hier een oplossing voor: de waterflowmeter!

Allereerst moet je jouw watermeter kunnen uitlezen in Domoticz met het LUA-script of Python-script.

De volgende stap is om een virtuele sensor aan te maken. Ga naar Setup -> Hardware en kies bij Type voor Dummy. Je mag zeg een herkenbare naam kiezen:

Zodra de Dummy Hardware toegevoegd is kunnen de virtuele sensoren gaan aanmaken. Klik hiervoor op Create Virtual Sensors (in het donkerblauw).

Maak nu de virtuele sensor aan van het type “Waterflow” en geef “Waterflow” als naam van de sensor:

Waterflowmeter in Domoticz

 

Waterflowmeter script

De laatste stap is het script. Ga naar Setup > More Options > Events en kies voor een dzVents event. Kopieer onderstaand script naar Domoticz. Op regel vijf zet je de naam van je watermeter neer. Op regel 18 zet je de naam van jouw waterflow-meter neer. Activeer het event en sla het op.


 

Vanaf nu zal de waterflowmeter in Domoticz weergegeven worden, in onderstaand voorbeeld is het verbruik 12 liter per minuut.

Waterflowmeter in Domoticz

9 gedachten over “Waterflowmeter in Domoticz (dzVents)

  • 19 januari 2020 om 20:50
    Permalink

    Hallo Joost,

    Ik heb het script gebruikt in Domoticz. Wat voor soort dzVents script moet ik gebruiken? Ik kan uit verschillende soorten kiezen.

    De naam van mijn watermeter is: Water. De naam van de Waterflow meter is: Waterflow. Ik krijg echter een error in de log:

    2020-01-19 20:46:11.345 Status: dzVents: Info: Handling events for: “Water”, value: “804”
    2020-01-19 20:46:11.345 Status: dzVents: Info: —— Start internal script: Script #1: Device: “Water (Dummy )”, Index: 1066
    2020-01-19 20:46:11.346 Status: dzVents: Error (2.4.19): An error occured when calling event handler Script #1
    2020-01-19 20:46:11.346 Status: dzVents: Error (2.4.19): …domoticz/scripts/dzVents/generated_scripts/Script #1.lua:18: attempt to perform arithmetic on a nil value
    2020-01-19 20:46:11.347 Status: dzVents: Info: —— Finished Script #1

    Kun jij me hiermee helpen? Alvast bedankt

    Beantwoorden
    • 20 januari 2020 om 20:18
      Permalink

      Bij dzVents-scripts maakt het niet uit wat je kiest (in tegenstelling tot LUA-scripts).
      Heb je het script één-op-één overgenomen? Het is nl. vreemd dat je op regel 18 een foutmelding krijgt. Wellicht is het beter om de namen van je devices aan te passen, zodat ze overeenkomen met het script.

      Beantwoorden
  • 6 april 2020 om 21:12
    Permalink

    Iets klop er toch niet aan dit script. Allereerst dit:
    2020-04-06 10:25:15.552 Status: dzVents: Info: domoticz.round deprecated. Please use domoticz.utils.round.
    Dat is nog eenvoudig te verhelpen. Maar dan het volgende: op het dashboard staat de Waterflow continu op de waarde 4.98283e+09 l/min, ook als de kraan uit staat. Misschien heeft het ermee te maken dat ik de watermeter met andere hardware anders uitlees, maar dat zou eigenlijk niet moeten uitmaken…

    Ik heb al een jaar of zo een watermeter draadloos aan Domoticz hangen (via een Wemos D1 met ESP Easy). De stand wordt bijgehouden in een virtueel apparaat ‘Waterverbruik’ (een incremental counter met deelfactor 1.000 om de stand om te rekenen naar m3) geeft in mijn systeem het verbruik in kuubs redelijk nauwkeurig weer.

    Het script heb ik dus als volgt aangepast:
    Regel 3: ‘Waterverbruik’ — het device met mijn watermeter
    Regel 15: local factor = 1000 — reken de kuubs weer terug naar liters.
    Regel 22: local waterFlowValue = dz.utils.round((( waterTotal – dz.data.water.total ) * 60) / pastTime, 2) — aangepaste afronding met dz.utils.round

    In de log ziet het resultaat van het Waterflow script er als volgt uit:
    2020-04-06 10:41:05.586 Status: dzVents: Info: Handling events for: “Waterverbruik”, value: “18446744073709413642”
    2020-04-06 10:41:05.586 Status: dzVents: Info: —— Start internal script: Waterflow: Device: “Waterverbruik (VIRTUAL)”, Index: 195
    2020-04-06 10:41:05.589 Status: dzVents: Info: —— Finished Waterflow

    De waarde van Waterflow op het dashboard blijft constant op dezelfde waarde4.98283e+09 l/min dus ergens in de berekening gaat het mis. Deze waarde op het dashboard verandert niet als ik de kraan aan of uit zet.

    Ik heb geprobeerd de waarde van een aantal variabelen uit te lezen in de log met print() commando’s en zie dan:
    2020-04-06 21:11:10.234 Status: dzVents: waterFlow=
    2020-04-06 21:11:10.234 Status: dzVents: waterTotal=
    2020-04-06 21:11:10.234 Status: dzVents: 1.8446744073709e+22
    2020-04-06 21:11:10.234 Status: dzVents: waterFlowValue=
    2020-04-06 21:11:10.234 Status: dzVents: 4982833152.0

    Met andere woorden: de waarde van waterFlow is leeg en verandert niet… Enig idee?

    Beantwoorden
  • 7 april 2020 om 16:33
    Permalink

    Ik heb de waterflowmeter uiteindelijk werkend gekregen. Maar er is iets raars aan de hand: de meter lijkt alleen waarden te geven in stapjes van 12.

    – Als ik de kraan helemaal open zet, staat de flow op 12l/min.
    – Zet ik de kraan half open, dan staat de flow niet op 6l/min zoals je zou verwachten, maar afwisselend 5 seconden op 0 en 5 seconden op 12l/min.
    – Zet ik de kraan op een heel klein straaltje open, dan staat de flow afwisselen 15 keer 5 seconden op 0 en dan een keer 5 seconden op 12l/min
    – Zet ik twee kranen open, dan staat de flow op 24l/min.

    Waar die 5 seconden vandaan komt, is duidelijk: dat is de interval waarmee de Watermeter data naar Domoticz stuurt. Het betekent dat het Waterflow-script ook om de 5 seconden wordt getriggerd. Maar het is vreemd dat het script dat de flow moet meten dit op een aan/uit manier doet in stapjes van 12, in plaats van het gemiddelde te berekenen over meerdere metingen.

    Beantwoorden
    • 8 mei 2020 om 10:02
      Permalink

      Kijk eens op je watermeter. Bij mij heeft die plm 5 seconden nodig om het meetwieltje 1x rond te laten draaien. 5×12 is 60, dus dan zit je idd netjes op 12 lpm…

      Beantwoorden
      • 8 mei 2020 om 10:08
        Permalink

        Ter info, dat is bij het doorspoelen van het toilet, dus 1 waterpunt “volledig open”…

        Beantwoorden
        • 8 mei 2020 om 10:29
          Permalink

          Never mind, even een denkfout. Er moet dus een mechanisme zijn dat de waarde terugzet naar 0. Het lijkt erop dat het script (ook) wordt getriggered door een ander event dan een puls van de watermeter, waardoor er een verbruik van 0 wordt gemeten tussen 2 uitvoeringen van het script.

          Laat bij mij nog de vraag open hoe de waarde van de waterflow wordt teruggebracht naar 0 als er geen nieuwe pulsen van de watermeter komen en het script dus niet getriggered wordt…

          Beantwoorden
    • 27 september 2020 om 21:49
      Permalink

      Hoi Pierre, kun je ook toelichten wat je nog hebt moeten doen om het werkend te krijgen?

      Beantwoorden
  • 11 juni 2020 om 22:15
    Permalink

    Als de kraan opengaat staat de waarde te flippen tussen 60 en inf, wat vermoedelijk infinity is. Ik heb een flowmeter tussen de leiding zitten en moet water meter deling op 120000 zetten voor een correcte uitlezing. Iemand een hint waar ik een setting kan doen om de l/m een beetje fatsoenlijk te krijgen?

    Beantwoorden

Geef een reactie

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