M-Bus Water Meter Reading Discrepancies

There are three water meters in the house:

  • One on the incoming Cold water supply
  • One on the cold water supply to the bottom of the hot water cylinder, which measures the Hot water consumption (and needs to be subtracted from the incoming cold meter reading to leave the cold water usage)
  • One on the separate cold water supply to the potential-future-rainwater-harvesting pipework
    • This third one is actually fed from the incoming mains supply outside the house but might in future be connected to a rainwater harvesting system
    • Within the house, the pipework connected to this meter feeds the toilets, the washing machine and the outside taps (i.e. all the appliances which are permitted to be fed with harvested rainwater)

These meters are in addition to the water company’s ‘revenue’ meter and could be considered excessive, but:

  • The water company’s meter is about 600 metres away from the house so there’s a lot of underground pipework that could potentially leak (and which runs through fields which get ploughed) and it’s good to be able to cross-check the meter readings in case any leaks develop
  • It’s useful to be able to compare the Hot water usage with the Cold water usage – and to see how much of the water usage could potentially be displaced by rainwater harvesting
    • This is especially pertinent as I firm-up the specification for the Outbuildings, to be constructed as part of “Phase 2” of the building work, and compare the cost of a rainwater harvesting system with the potential savings

The three internal meters have M-Bus readers fitted and are automatically read every minute – along with all the other M-Bus readers in the house. (Reading so often is completely over-the-top for Water meters, but not for e.g. Electricity meters, and it’s easiest just to read all the meters on every read-cycle than to mess about reading different meters at different intervals.) Then, every month, I manually record the monthly meter readings (as reported by M-Bus) into a spreadsheet to look at a summary-level view and monitor trends in usage.

Over the past couple of months I’ve noticed the ‘rainwater’ meter showing much higher readings than before, which seemed odd. On the 1st of May, the usage was up a bit; on the 1st of June the usage was up a lot – roughly 10 x the usage in February, for example. Initially I suspected a leak but on checking further it was clear the meter reading wasn’t changing unless there was obvious water usage.

Then I realised what was happening: it’s not that the meter is now reporting ‘high‘ – it’s that the meter has previously been reporting ‘low‘. The dials on the meter are showing 114 m3 but the M-Bus adaptor is reporting 85 m3. Plotting a graph of the meter readings over time (that I don’t normally do) makes it clear that something went wrong around the end of April 2022 that got fixed around the middle of April 2024.

‘Rainwater’ Water Meter readings, early 2022 through to mid 2024

I know what I did to ‘fix’ it – I’d been checking the details of the meter to be able to match it in the new building and removed and re-fitted the M-Bus adaptor. I don’t know what I did to ‘break’ it – but given that some readings were still coming through I presume the adaptor was knocked slightly out of position. (If it had stopped reading completely I would have spotted it.)

The meters are Itron Aquadis models with Cyble M-Bus adaptors that slide into some slots on the front of the meters – but they don’t clip into place hence they’re reliant on friction (or gravity) holding them in position, and they can get knocked.

Now the problem is that the internal registers on the M-Bus adaptor don’t match the dials on the meter and there are no buttons or display on the M-Bus adaptor to make any adjustments – so it’s a case of using the Cyble M-Bus software that I originally used to set the M-Bus IDs to re-set the reading from the dials.

This was easy enough – once I’d worked out the Cyble M-Bus software needs to run as Administrator. Changing the reading is as simple as clicking on the digits and entering the new reading.

Screenshot of Cyble MBus v1.4 software

I’d forgotten these adaptors have the option to report against a Leakage threshold value; what’s not clear is how the detection of a ‘leak’ gets reported – there no obvious ‘leakage’ field in the XML data record that comes back to the M-Bus reader.

New Technical Article: NIBE Heat Pump Monitoring via myUplink API

NIBE are in the process of closing down the old NIBE Uplink API used by their F-series heat pumps. Customers are being invited to migrate to the newer myUplink API service instead, which has always been used by the S-series heat pumps.

Both APIs are broadly comparable, but different. In particular, they both require OAuth2 API Authentication which can be problematic for people not familiar with it. (The myUplink API adds a further, simpler ‘flavour’ of OAuth2 which holds the prospect of being easier to use – but also risks adding confusion.)

I have adapted the earlier Technical Article on calling the NIBE Uplink API from Python scripts into a new Technical Article: NIBE Heat Pump Monitoring via myUplink API (also from Python scripts).