Itron Water Meter Cyble M-Bus Adaptors for the Outbuildings

For various reasons it proved difficult to set up the Cyble M-Bus adaptors for the two Itron water meters in the Outbuildings. (There are already three nearly-identical water meters with Cyble M-Bus adaptors in the House, which are working perfectly.)

The first challenge was sourcing the Cyble M-Bus reader heads. The original plan was for the building contractor’s plumber to source these along with the Itron Aquadis+ water meters (which is what happened last time, for the units in the House) but while the plumber had no issue obtaining the meters they struggled with the Cyble units and we all agreed I would source those myself, since I knew which specific ones I needed (and I assumed they would be easy enough to get hold of). The Cyble Pulse-Output reader heads are readily available but for some reason the M-Bus variants are more difficult to source. The best supplier for these in the UK seems to be MWA Technology, who list them on their website as Itron Cyble M-Bus For Aquadis and Woltex but MWA are not geared up to dealing with individual customers and while they were helpful they said they’d have to get their finance team to set me up with an Account – which sounded like a lot of work for both them and me. They suggested various distributors, some of which I’ve used before, but those just pointed me back at MWA. In the end I was successful in sourcing two of the Cyble M-Bus readers from metermarket.co.uk who happened to have a few in stock, though these days they specialise in Electricity meters rather than Water meters.

The second challenge was getting these to report meter readings via M-Bus. I knew I’d have to set the M-Bus addresses for each adaptor and I’d forgotten that these are supplied set to Primary Address 0 (for some reason I remembered them defaulting to Primary Address 1) and I wasn’t sure whether the RS-232 connection to the Relay PW20 M-Bus interface needed any sort of adaptor cable or not.

The PW20 is fitted with a Female DE-91 connector and the USB-to-RS-232 lead (with an FTDI interface chip) has a Male DE-9 connector – so that should all work fine but they both have fixing nuts which clash, preventing the plug from being inserted.

A minor annoyance – the electrical connectors will mate directly – except both sides have the nuts fitted

The nuts are rigidly fixed into the connector on the lead – and they secure the connector to the front of the PW20 (with further nuts inside the case which would be hard to re-attach.) Creative use of two Gender Change adaptors with the locknuts removed seems to work OK. (Ordinarily I use a different FTDI cable with a replacement DE-9 head, which has locking screws rather than locking nuts.)

After trying various cabling options and checking the default Primary Address I was able to program a unique Primary Address (and the meter serial number and initial meter reading) using the Actaris Cyble M-Bus Configuration Tool (CMCT) software. The devices then responded to the normal M-Bus polling code – but with ‘short’ responses, missing any meter readings. Comparing these responses to the ones from the ‘good’ meters in the House, the <Status>10</Status> is the only material difference in the <SlaveInformation> record (the meters in the House report <Status>00</Status>).

$ mbus-serial-request-data -b 2400 /dev/ttyUSB0 6
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>

    <SlaveInformation>
        <Id>22001387</Id>
        <Manufacturer>ACW</Manufacturer>
        <Version>20</Version>
        <ProductName>Itron CYBLE M-Bus 1.4</ProductName>
        <Medium>Water</Medium>
        <AccessNumber>20</AccessNumber>
        <Status>10</Status>
        <Signature>0000</Signature>
    </SlaveInformation>

    <DataRecord id="0">
        <Function>Manufacturer specific</Function>
        <Value>00 22 00 13 87 CF EA 03 07 01 12 03 0B</Value>
        <Timestamp>2026-01-24T13:02:29Z</Timestamp>
    </DataRecord>

</MBusData>

Initially I wondered whether the meters needed to ‘see’ a certain amount of water usage in order for a reading to be reported, but even running a couple of hundred litres through one of them didn’t change the response.

There aren’t many functions available in the CMCT software, but one of those is Reset alarms and running that did the trick, with the XML response changing to the expected:

$ mbus-serial-request-data -b 2400 /dev/ttyUSB0 6
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>

    <SlaveInformation>
        <Id>22001387</Id>
        <Manufacturer>ACW</Manufacturer>
        <Version>20</Version>
        <ProductName>Itron CYBLE M-Bus 1.4</ProductName>
        <Medium>Water</Medium>
        <AccessNumber>40</AccessNumber>
        <Status>00</Status>
        <Signature>0000</Signature>
    </SlaveInformation>

    <DataRecord id="0">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Fabrication number</Unit>
        <Value>22001387</Value>
        <Timestamp>2026-01-25T15:08:47Z</Timestamp>
    </DataRecord>

    <DataRecord id="1">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>cust. ID</Unit>
        <Value>0Z        </Value>
        <Timestamp>2026-01-25T15:08:47Z</Timestamp>
    </DataRecord>

    <DataRecord id="2">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Time Point (time &amp; date)</Unit>
        <Value>2026-01-25T15:07:00</Value>
        <Timestamp>2026-01-25T15:08:47Z</Timestamp>
    </DataRecord>

    <DataRecord id="3">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>bat. time</Unit>
        <Value>4010</Value>
        <Timestamp>2026-01-25T15:08:47Z</Timestamp>
    </DataRecord>

    <DataRecord id="4">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Volume (m m^3)</Unit>
        <Value>3515</Value>
        <Timestamp>2026-01-25T15:08:47Z</Timestamp>
    </DataRecord>

    <DataRecord id="5">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Volume (m m^3)</Unit>
        <Value>0</Value>
        <Timestamp>2026-01-25T15:08:47Z</Timestamp>
    </DataRecord>

    <DataRecord id="6">
        <Function>Instantaneous value</Function>
        <StorageNumber>1</StorageNumber>
        <Unit>Volume (m m^3)</Unit>
        <Value>0</Value>
        <Timestamp>2026-01-25T15:08:47Z</Timestamp>
    </DataRecord>

    <DataRecord id="7">
        <Function>Manufacturer specific</Function>
        <Value>1F 02 00</Value>
        <Timestamp>2026-01-25T15:08:47Z</Timestamp>
    </DataRecord>

</MBusData>

Another thing to note is that by default, the Volume Index in CMCT was formatted as NNNNNNN.N m3 whereas the physical display on the meter shows NNNNN.NNN m3 – and they need to match in order for the readings to be accurate. While it’s not possible to add three decimal places with 7 leading digits (i.e. NNNNNNN.NNN) it is possible to delete two of the leading digits in order to add three decimal places.

Finally, after having had issues with the Cyble reader heads getting dislodged in the past (resulting in them missing some updates from the meters) I wanted to pay more attention to fixing them more securely. I rather expected the new units to come with fixing screws, but they didn’t – but the one screw I had for the meters in the House fitted fine. That’s an M4 x 25mm Cheese Head machine screw, made of Nylon. Note it’s necessary to destructively ‘unscrew’ a plastic piece covering the brass insert that the screw engages with. On the newer meters this projects roughly 5mm above the surface and prevents the Cyble adaptor being fitted until it is removed, whereas on the older meters it’s recessed below the surface and only prevents the screw from being inserted. The removal of this plastic piece is cryptically shown at W2 ‘B’ in the Installation Instructions (attached below).

  1. Sometimes mistakenly called a DB-9 – but the ‘B’-size connector shell is generally only used with 25-pin connectors ↩︎

Tesla PowerWall Backup Gateway Grid Outage Detection – UPS Still Required

The Tesla PowerWall 3 solar PV inverter and battery storage system provides the ability to automatically disconnect from the grid and power the site from its batteries in the event of a grid outage – including topping up the batteries from solar generation during the outage. The component that handles this is the Backup Gateway 2 which is installed next to the meter, in the outdoor GRP cabinet.

The installation engineer was very positive about the performance of the switch-over from Grid supply to Battery supply, based on their experience testing this by manually triggering a switch-over while the grid connection was still live, with no flickering of lights or resetting of appliances. The official Tesla specifications (which I’m struggling to find to reference here) are much less optimistic and note it can take a few seconds to switch in a real-world power outage scenario – especially when there’s a brown-out rather than a clean break in the supply. Clearly that’s long enough for most appliances to reset.

It’s typical to have a couple of short-duration power outages every year – perhaps as a consequence of the overhead 11kV supply and the way that is connected to the rest of the grid. When the grid power went away for a second or two the other day the Backup Gateway did not react (at all? – there was certainly no message to say it had gone off-grid) and the network switch and router in the Outbuildings lost power for long enough to reset. The equivalent devices in the House are already protected by an Uninterruptible Power Supply (UPS) so stayed online.

That prompted me to add a UPS to the networking equipment in the Outbuildings – something I was planning to do anyway, but I had decided to wait for some real-world experience first (in case the Backup Gateway did react quickly enough after all).

I’ve had good experience with second-hand APC UPS equipment over many years and the smallest and cheapest APC model I could find on eBay was the Back-UPS CS BK350EI which runs from a single 12V 7Ah lead-acid battery (very widely used as backup batteries for alarm systems so readily available and competitively priced). While this UPS is only rated for 210W and won’t run for more than a few minutes at full load it seems perfect for covering a few seconds of outage while the Backup Gateway kicks in, powering the Outbuildings’ network router and network switch (including the CCTV cameras and Wireless Access Points supplied via PoE from that switch).

While a rack-mount UPS would have been nice, those tend to be much more expensive and – importantly – the smaller rack-mount models need much more expensive batteries.

APC Back-UPS CS (BK350EI) located in the network rack in the Outbuildings Plant Room

The UPS was only £17.99 without a battery (including free shipping) and a new Yucel 12V 7Ah battery was only £15.49 from a local electrical wholesaler that specialises in alarm system equipment and hence has a pretty quick stock turnover for those. (The same battery would have been £27.49 from Screwfix/Toolstation, with more risk of getting one that has been in stock for months.)

The APC BK350EI UPS has three IEC 60320 Type F socket outlets (in fact the photo on that Wikipedia page is of an almost identical UPS) – plus another socket that is only surge-protected, not also battery-backed. It was supplied with two Type E to C13 cables which are ideally suited to powering devices like the UniFi network switch which has a C14 plug connector. In order to power devices which demand a standard UK BS 1363 socket (e.g. because they use a power adaptor integrated into a BS 1363 plug) it’s necessary to use an extension lead with a Type E socket. While re-wirable Type E sockets are available (and I’ve used a good quality one successfully before – and struggled with poor quality ones) it’s generally better to cut the C13 connector off the end of a pre-made Type E to C13 cable and wire that to something like a 3-way socket outlet adaptor.

These small APC UPS devices don’t support the ‘SMART’ monitoring network cards which the larger models (aimed more at business deployments) do, but they still provide an option for USB connectivity via a non-standard cable (APC AP9827) with an RJ50 (like an RJ45 but 10-way) plug at the UPS end and a USB Type A connector at the other end. Genuine APC cables are very expensive but much cheaper equivalents are available via eBay. While an 8-way RJ45 plug will physically fit into a 10-way RJ50 socket and only 4 pins are actually wired, those include pins 1 and 10 so it does need to be a 10-way plug.