Watermeter in Home Assistant

Via de watermeter van HomeWizard is het mogelijk om het waterverbruik inzichtelijk te maken. Uiteraard kan via de HomeWizard integratie in Home Assistant hiermee sensors aangemaakt worden en deze gebruiken in het Energie-dashboard.

De watermeter kan aangesloten worden via USB en geeft daarmee real-time het verbruik door. Indien er alleen batterijen gebruikt worden in de watermeter wordt het verbruik slechts periodiek doorgegeven.

Installatie van de watermeter is zeer eenvoudig, het bijgeleverde frame wordt op de watermeter geschroefd en daarop komt de watermeter zelf. Via de Energy App via de Appstore of Playstore wordt de WiFi en Kalibratie ingesteld waarna de app de gegevens laat zien. Via de instellingen in deze app dient nu de locale API aangezet te worden om de watermeter in Home Assistant te kunnen gebruiken.

Home Assistant integratie

In Home Assistant wordt de ‘HomeWizard Energy’ integratie toegevoegd waarna de watermeter automatisch gevonden wordt.

De volgende sensors zijn dan binnen Home Assistant bekend:

  • Actief water verbruik
  • Totaal waterverbruik
  • Wifi SSID
  • Wifi sterkte

De sensor voor het totale waterverbruik kan nu in het Energie-dashboard gebruikt worden.

hiermee wordt het verbruik dus weergegeven in het energie-dashboad.

Tarief voor het water

Het tarief kan opgevraagd worden, in mijn geval bij Vitens. Momenteel is dat € 0,85 per m3 (=1000 liter)

Template voor meterstand

Om de meterstand automatisch bij te werken met behulp van het totale waterverbruik uit de watermeter, maak ik een template waarin ik de meterstand ten tijde van deze installatie optel bij het totale verbruik en in een aparte sensor vastleg. De meterstand is op dat moment 482.730, de template ziet er dan zo uit:

template:
  sensor:
    - name: Water Meter Reading
      unique_id: water-meter-running-total
      state_class: total_increasing
      unit_of_measurement: m³
      device_class: water
      icon: mdi:gauge
      state: >
        {{ 428.730 + states.sensor.watermeter_total_water_usage.state | float }}

Verbruik per dag

Ook wil ik een sensor in Home Assistant hebben die het verbruik per dag weergeeft. Uiteraard kan dat al weergegeven worden in het Energie-dashboard, maar ik wil dit ook in een ander dashboard kunnen gebruiken. Hiervoor moet ik dus ergens een teller hebben die om middernacht op 0 gezet wordt en gedurende de dag het verbruik toevoegt. Vervolgens moet dat verbruik dan gebruikt kunnen worden als sensor om dit in een dashboard te kunnen plaatsen. Daar gebruik ik dan een helper in HA voor, type numeriek: input_number.water_verbruik_per_dag

In Node-RED wordt de value dus elke dag op 0 gezet en vervolgens het huidige verbruik erbij gezet. Het huidige verbruik is dan het totale_verbruik momenteel minus het totale_verbruik van gisteren. Dat kan dan in Node-RED via een flow-variable.

Links een cronjob-node met 2 schedules (wellicht moet je even de cronplus palette in Node-RED toevoegen), genaamd ‘midnight‘ en ‘5mins‘:

vervolgens een switch-node met twee uitgangen, afhankelijk van de schedule-name die in de msg.payload.config.topic staat:

De current-state nodes vragen het totale waterverbruik op:

De change-node zet de inhoud van msg.payload in een variable genaamd flow.daily:

Zorg ervoor dat de flow-variabelen op storage wordt opgeslagen! zie de Node-RED tips

De 5mins cronjob zal de function-node aanroepen en deze berekend het verbruik in de flow.daily variabele die dan in de Home Assistant Helper input_number.water_verbruik_per_dag wordt gezet met behulp van een service-node.

De template voor het dagelijks verbruik is dan alsvolgt:

template:
  sensor:
    - name: Water Verbruik Per Dag
      unique_id: water-verbruik-per-dag
      unit_of_measurement: L
      device_class: water
      icon: mdi:gauge
      state: >
        {{ states.input_number.water_verbruik_per_dag.state }}
    - name: Kosten waterverbruik per dag
      unique_id: kosten-waterverbruik-per-dag
      unit_of_measurement: €
      icon: mdi:currency-eur
      state: >
        {{ states.input_number.water_verbruik_per_dag.state |float * 0.85 /1000 }}

Nu zet ik de sensors in een dashboard en kan ik tevens de huidige meterstand zien.

That’s all folks!