Getting analogue water meter readings into EnergyID

— 3 minute read

I still have an analogue water meter and was tired of entering the readings manually into EnergyID every month.

I've been using EnergyID for a while now and it's a great way to track our energy consumption. Thanks to an integration with our digital meters, I can get the gas and electricity readings into EnergyID automatically. But since I still have an analogue water meter, I need to enter the readings manually.

Homewizard watermeter permalink

I've bought a second-hand Homewizard water meter to be able to send the meter readings to my Home Assistant instance.

Homewizard water meter
You install the correct adapter and then insert the Homewizard water meter.

Home Assistant permalink

Getting the meter in Home Assistant is easy as it is detected automatically.

I ran into a problem here because the total consumption was somehow stuck on another value than the actual consumption. Resetting the meter did not help.

Using a Helper (Settings > Helpers > Create Helper > Template > Template a sensor) I was able to create a helper that fixes that by adding a number until the total consumption was correct.

Template sensor

Webhook permalink

Inside EnergyID I activated the Incoming Webhook app and created a new webhook.

I then created a new rest command in Home Assistant to send the data to EnergyID.

I had to use {{ utcnow() }} to get the current date and time in the correct format as the timezone needs to be included. The payload data comes from the templated sensor. The remoteId is a unique id you can choose yourself.

rest_command:
  EnergyID:
    url: https://hooks.energyid.eu/services/WebhookIn/xxx/xxxx
    method: POST
    content_type: 'application/json'
    payload: '{"remoteId": "Drinkwater","remoteName": "Drinkwater (webhook)","metric": "drinkingWaterImport","metricKind": "total","unit": "m³","data": [["{{ utcnow() }}", {{ states.sensor.meterstand_water.state }}]]}'

I then added an automation to trigger this rest command every day at 00:00.

- id: '1738772892634'
  alias: Send water meter reading to EnergyID
  description: Triggered at 00:00 every day.
  triggers:
    - trigger: time
      at: 00:00:00
  conditions: []
  actions:
    - action: rest_command.EnergyID
      metadata: {}
      data: {}
  mode: single

The water meter readings now appear automatically in EnergyID. I saved a whopping 2 minutes every month!

Webhook water meter in EnergyID
Captain, it's a webhook!