I’m in the process of ordering an Axioma Qalcosonic E4 DN25 heat meter for my 12kW Vaillant aroTHERM Plus heat pump and want to get the data directly into Home Assistant without needing an emonPi or emonBase.
My current setup:
Home Assistant Green (HA OS)
myPyllant integration for Vaillant data
Shelly Pro EM already measuring electrical input to the HP
Shelly temperature sensors on flow/return and UFH manifold
ESPHome already in use (running a BLE Bluetooth proxy)
MQTT broker running in HA
What I want:
Heat output in kW (live) and kWh (daily) from the E4
Feed into HA sensors for COP calculation and dashboard display
Ideally fully local, no cloud
What I’ve considered:
OEM M-Bus to USB adapter plugged into HA Green’s USB port — but unclear if this works without emonPi
ESP32 + M-Bus transceiver board as a WiFi bridge via ESPHome — seen this mentioned but described as complex
Pi Zero 2W running emonSD as a bridge — works but adds another device
Questions:
Has anyone connected the OEM M-Bus USB adapter directly to HA Green (no emonPi) and got it working?
Is there a straightforward ESPHome M-Bus config that works with the Axioma E4?
Is there a simpler solution I’m missing entirely?
Happy to share more about my setup. Thanks in advance!
Hi Brian, thanks for the quick response and the links.
I’ve had a look through the emonHub interfacers documentation and it’s starting to make more sense. I can see there’s a config example for the Qalcosonic E3 — I’m buying the E4 (DN25 QP3.5). Is the emonHub config the same for the E4, or does it need a different meter type setting?
I’m thinking the simplest route for me would be:
Pi Zero 2W running emonSD
OEM M-Bus to USB converter
emonHub reading the meter and publishing to MQTT
My existing HA MQTT broker picking it up directly
A few questions before I order anything:
Is the Pi Zero 2W powerful enough to run emonSD reliably for just this one task?
Does emonHub publish directly to MQTT out of the box, or does it need additional configuration to do that?
Is there a straightforward step-by-step guide for setting this up from scratch on a Pi Zero 2W that doesn’t assume too much prior knowledge?
My Home Assistant is running on a Home Assistant Green so I can’t run emonSD on that directly.
I’ve done a bit more research and found an existing thread on the OEM community where someone set up an Axioma Qalcosonic E4 with emonHub. Glyn confirmed that for the E4 the correct emonHub config uses type = standard rather than type = qalcosonic_e3 as shown in the docs.
I’m going to go with the Pi OS Lite + emonHub route as you suggested rather than emonSD. I have a spare Raspberry Pi 4 8GB which I’ll use for this.
A few follow up questions:
Is there a recommended step by step guide for installing emonHub on a fresh Pi OS Lite install? I’m reasonably comfortable with Raspberry Pi but don’t want to assume too much.
For the MQTT output — can you point me to the correct config section to add so emonHub publishes to my existing HA MQTT broker rather than a local one? I can see in the thread that MQTT is configured in emonhub.conf but I want to make sure I point it at the right host/port.
One thing I noticed in the thread — there’s a one-time step to set the meter address using a script. Is this still required with a fresh E4 out of the box, or does it default to address 1 automatically?
Thanks again — really appreciate the patience with a non-expert!
This is the emonhub config for reading from Axioma, and most other MBUS heat meters. The E4 and E3 are identical, the only difference is the brass vs composite body of the flow meter.
The PiZero should be plenty powerful enough. Using emonSD make the setup plug and play. But installing emonhub yourself on a bare Raspbian lite image will result in a more streamline system, e.g without Emoncms or MYSQL, but there will be more setup work.
ill be looking to do the same with a e4 heat meter. I have home assistant running on its on dell nuc proxmox vm. Have a spare rasperry pi around as well - is there a modbus to wifi connector i could use to get the heat meter into home assistant? i’ve a shelly em50 pro for the electricity usage and that will integrate easy enough
The default M-Bus primary address on the E4 meters is the last two or three digits of the serial number.
001
002
003
…
250
251
252
You can also set primary address 254 on the readout code (this is the Spartacus address - every meter will respond to the Spartacus address) if you only have ONE wired M-Bus device attached. That will work regardless of the primary address that has been set.
Primary address 254 is the “quick hack” that can bite you in the bum later when you forget that it ONLY works when ONE M-Bus device is connected.
Probably the most robust method is to use secondary addressing, run an M-Bus wildcard search by secondary address, and auto-create the meters that you find. That way “address 12345678” is always the address printed on the meter in a multi-meter setup; rather than needing to remember to set the first meter as 001 and the second one as 002 and the third as 003 etc and then remember that primary address 001 is meter 12345678 and primary address 002 is meter 99999999 etc.
Primary addressing (where you set an address on the meter from 000 to 250 then use this to read the meter) and Secondary addressing (where you just use the secondary address of the meter which is an 8 digit value generally factory set as equal to the serial number of the meter)
Primary 254 is a special address that ALL meters will respond to. You can’t have more than one meter respond at the same time so this can only be used when there is just one meter on the M-Bus network.
Secondary addressing is the industry standard these days. You can safely connect a number of meters up to the same network then address it using the serial number printed on the front. All modern meter support wildcard searching so you can “search the bus” for all meters present and then begin reading them out. You don’t have to worry* about two meters having the same address as you do with primary addressing.
*Each manufacturer can have from 00000000 to FFFFFFFF as serial numbers. The combination of manufacturer flag ID (https://www.dlms.com/flag-id/) and serial is globally unique. It is IMPOSSIBLE to have two meters from the same manufacturer code with the same secondary. It is very unlikely to have to meters from different manufacturers with the same secondary.
This is the bit I was trying, ineloquently, to get at. When you have an unknown number of meters on the M-Bus network and you ask them to identify themselves, there is a way for them to - reliably -all reply and the messages don’t all get mixed up and cause a conflict.
So if I set up x number of E4 meters on an M-Bus network and asked you to tell me the total number I have and give the secondary addresses for each, that can be done?