-
Notifications
You must be signed in to change notification settings - Fork 336
Add support for HW5103 HMUs
#481
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
|
@chrizzzp Feel free to give this one a try. |
thanks, I gave it a try and looks quite nice. A few comments:
Otherwise nice work on cleaning this up so far! Thx! |
No, all "Source"-related definitions don't work on my system. I guess these values are relevant only for geothermal heat pumps? |
The first is the current electrical power consumption truncated to whole kW. |
@chrizzzp Thanks for checking! Exactly what I thought. |
As @chrizzzp said, one is in Watt, the other in kW.
That's expected, because I reuse existing value templates that still use
Not an issue on my end. Make sure you're running the lastest |
Thanks, indeed, I had an older mqtt-hassio.cfg. Updating that solved the "value" suffix issue.
How to do that? I get the following erroor for CurrentPowerConsumption: |
|
Hi @burmistrzak I seem to have a similar but slightly different setup to you guys on this thread but I definitely have HMU HW 5103 so your PRs are of keen interest to me thank you. I have an aroTHERM+ 5kW (HMU00) + what Vaillant tells me is 1st gen VRC 720F (no version) (BASV0) + 3-zone circuit box VR_71 + control unit VWZIO + sensoNET (NETX2) running on Raspi + HA + ebusd addin showing info as: address 00: master #1 I’m still using JonesPD’s config rep but wondering two things 1) would your most recent config csv rep work with my setup and 2) I’d be interested in helping to debug/discover my config file setup if that would help your efforts? Was a bit green on the coding / ebusd operation etc but coming up to speed now. |
I cloned the csvgen branch onto HA and pointed config at the typespec directoryu via ebusd addin and restarted. Both 15 and 76 didn’t load config files. @kgeree you have similar HA setup any advice? |
@kgeree The |
@GuyHarg 👋
|
@GuyHarg Should be a quick fix. Run inside |
Thx do I need to symlink 08.hmu.csv to 08.hmu.hw5103.csv as well, or is it more a case of trying to combine those files for my system to fix all the hmu data points showing up in MQTT explorer under homeassistant? In MQTT explorer under ebusd/hmu there are a few unknowns as well. |
|
@GuyHarg Should be a quick fix. Run inside Ran the first cmd still no basv file loaded. I was previously picking up 15.basv.csv is that interchangeable with basv0? The command will be effective even when I run the app via HA ebusd addin yes? Also a problem I have is trying to wrap my head around the whole system/data flow - I guess everyone has the same when they start? Is there a good reading area to get up to speed? Or really john30 wikis etc? |
@GuyHarg No, For best results, delete the |
@GuyHarg Yes,
Not entirely sure what you’re asking about. Do you mean where’s the MQTT data coming from? |
|
Hello @burmistrzak , I tried using your csvgen branch but 08.hmu.hw5103.csv is not picked up, any idea what might be wrong? |
@TheEragon Thanks for testing! |
|
Unfortunately, yes, and yes :( |
|
@TheEragon Can you tell me a bit more about your setup (versions, etc.)? Any errors in logs? |
|
I'm running ebusd addon in Home assistant, with you testing branch I get the following output There are no errors in the log and config files are picked up without a problem |
|
I think the @burmistrzak |
@TheEragon Both registers are polled at slightly different points in time, but
Interesting, I was under the impression that trailing zeros are stripped during config scan… @TheEragon Also, I assume your system is a aroTHERM plus & uniTOWER plus package as well? |
Yes, that's correct. |
@TheEragon We almost have the same HMU revision… However, my configuration is picked up correctly… 🤔 |
|
@kgeree What‘s the resolution (kW vs. W) of current power consumption (under Energy Information > System View > Main System) in your myVaillant app? |
It's kWh both in myVaillant app and in the Unitower live monitor. |
In the app: when the compressor is idle it will display 0.0 kW or does it display the standby consumption (< 20 Watt)? As your hmu firmware is <9.x.x (SW:0607) I suspect it will show 0.0 kW. |
It is 0.0kwh in the app an on the Unitower as well. |
Indeed, PowerConsumptionHMU shows the power consumption in W now. |
|
Anyone could found "Buildig Circuit Brine Pressure" from Live monitor? I'd be interested in that value. Any hint how can we find it? In the menu its under Live monitor, right after the Building Circuit pressure. But I assume its only for monobloc systems. |
@kgeree Excellent! We now have better integration than Vaillant themselves. 😉 |
@kgeree It's likely also part of the somewhat problematic
IMHO, a more worthwhile and safer option is decoding the |
|
Just to add some more pieces to the EBUS puzzle: while tracking the VR921 EBUS traffic I noticed the gateway reads diagnostic values also from a slightly different hmu address section (b509 29): Interestingly, these registers correspond to compressor inlet and outlet temperatures, respectively, which can also be read from the already known b509 540200 registers and give exactly the same values encoded as EXP (4 bytes): I checked other registers from the b509 540200 region, many of them also exist as b509 29 registers, some don't. I wonder why these different register blocks exist and why Vaillant reads diagnostic data from both of them? So far I could log only the two examples of compressor temperature which are read from the b509 29 addresses. |
|
@chrizzzp Huh, very interesting find! AFAICT, it’s not uncommon for the same feature/function to be represented by multiple registers. I‘ve seen this myself with the VR940f and setting Until we get hands on diagnostics software, maybe booking the remote diagnostics/optimization service will yield some more registers? |
|
Concerning decoding the b516 (energy statistics) registers I think we've made some significant progress. But we might need some help in how to make the reading efficient (avoiding endless message definitions in the CSV). Maybe you can help? |
@chrizzzp AFAIK, we‘ll have to define every single register at least once. There’s likely no way around it… 😅 |
|
Hi chaps where is this development left Im wondering if it will help with some VR_71 data that I'm struggling to get my system to produce? |
Hi @chrizzzp I’m running HA Core 2025.6.0 on a Pi5 logging data to influxDB and using Grafana to visualise. My setup is Vaillant aroTHERM+ 5kW monobloc ASHP heating and cooling the house via Zehnder Q450 MVHR. DHW is 2x Sunamp thermal stores Uniq HW 12+ I-VT for the main house and Uniq HW 6+ I-VT for a basement rental apartment. The Vaillant setup is: 08: Heat mgmt ID HMU00 HW 5103 MF Vaillant SW 0607 Both TSs can call for charge from the ASHP via connection to VR_71 with the main TS on DHW circuit and the basement TS on DHW Circuit 3. Both can also be charged via internal immersion heaters, to which I’ve had to add HomeKit activated devices to enable control of immersion charging remotely and via automations. The TS units are very much unintelligent slaves as they are a few years old now. To read the basement TS SOC the entity ebusd_vr_71_sensordata1_s4 logs as a temperature reading but it goes offline a lot. As does the .26 scan entity ebusd_scan_26_sw and almost all the ebusd scan data. I’m not a software guy and have both admired and struggled to understand the efforts you guys have made in this and the other PRs. My VRC 720f is gen 1 and I’m not getting much help from Vaillant. I’d very much like to refine my config files for my system and hopefully set it to regularly poll the small amount of data I need. Probably need to start with an upgraded appreciation of the elements I have and what is redundant. Appreciate any pointers to help me get myself up to speed.
Took a look at the b516 work but not sure if it was helpful for me. |
|
@GuyHarg Anyway, as I understand one of your problems is sensor S4 going offline. Do you have more sensors connected to the VR71? Do they all go offline? When offline, can S4 be read using the sensor/actor check of the VRC720f (or is it also shown offline there?)? I'm just trying to figure out if it's a general Ebus problem or just a flaky Ebus signal arriving at the Ebus adapter. Are only VR71 entities affected? Do you use a wired connection to the ebus adapter or wireless? The VR71 will not deliver too many data apart from the temperature sensors (and mixer data, if present). More important would probably be to have the VRC720f heat circuit data (and maybe some from the HMU). This PR might be interesting for you then. Maybe you should define which data you want to poll and then it would be clearer which configs you need. |
|
@chrizzzp thanks yeah I have 7.25kWp PV and a 14kWp FoxESS LFP battery w/ 5kW inverter just installed in May and working great so far. About to install a Modbus adapter and connect my HA to FoxESS cloud. I'm running HA Core 2025.6.0 on a Pi5 logging data to influxDB and visualising with Grafana. I have ebusd w/ updated firmware connected over WiFi which seems to have been working fine for over a year of install. I'm running the jonesPD config files and the HA ebusd add-on. This PR and the basv3 PR have been of most interest to me but I haven't done much for four months as been tied up with other stuff. Now ready and keen to troubleshoot and develop my ebusd data and system. Would love to be able to control the basement SunAmp charging via VR_71 because My Vaillant app lets me control main SunAmp but not circuit 3 basement SunAmp. I suspect Vaillant don't care to add this functionality to My Vaillant app because not many guys have my setup and my VRC720f is gen 1 ie old. I've asked them to add control functionality and apparently "it's in the dev pipe list" which I don't believe for a second. So to control the basement SunAmp I have to operate the VRC720f manually which is in my utility room ie not that handy! I'll put together a list of data I get now and data I'd like. Wondering if I should try the cfg files from #481 and #482 or start from jonesPD and go from there? |
If your basement SunAmp is connected as External DHW circuit though the VR_71 then this should work. I basically discarded the Vaillant App because you get so much more data via Ebusd than in the App. And also adjusting regulator settings e.g. via MQTT works nicely and is much more customizable than in the App.
The repo from @jonesPD is probably the most complete one (up to 2024), but was set up for ebusd 24.x (works also with 25.x). |
|
Thx @chrizzzp I've made a chunk of progress with GPT today defn think basv which ebusd is reading for my setup is not correct but basv2→ ctlv2 might be gen 2 or 3 so probably have to fiddle around somewhere in the middle. |
|
@GuyHarg Try renaming 15.ctlv2.csv to 15.basv0.csv. |
| @inherit(r_3) | ||
| @ext(0x16) | ||
| model YieldHwc { | ||
| value: energy; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
sure this is energy and not energy4 as in the main hmu.tsp?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Well, datatype UIN (not ULG) is sufficient here. Never saw any 4-byte values.
ebusctl hex 08b51a0405ff3216
0aff0826b3080000000000
(result for this example should be 2227 kW/h)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ok, but I'm sure this is energy4 then as well, since the answer is long enough anyway
| @ext(0x1f) | ||
| model SupplyTempWeighted { | ||
| @unit("°C") | ||
| @divisor(10) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
sure this is right and not without divisor as in the main hmu.tsp?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not really sure how this value is calculated (and what it's good for), but if it's a supply temperature than it is indeed without divisor.
| @ext(0x25) | ||
| model CompressorModulation { | ||
| @unit("%") | ||
| value: D2C; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
sure this is D2C and not D1B as in the main hmu.tsp?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, D2C is correct. I'm not sure why it was originally established as D1B. Maybe older models?
| @unit("kWh") | ||
| value: energy; | ||
| } | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
overall this seems to be a reduced version of the main hmu.tsp, so it might make more sense to add conditions to that. or maybe share the common part in another file instead of duplicating and having to maintain both
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Well, I generally agree. However, it seems not so straightforward as some definitions of the main hmu.tsp don't work for more recent heat pump models any longer. Unfortunately there is no systematic analysis of this (I can provide examples). I think @burmistrzak intention for this PR was to create a (possibly) more universal base for as many current HMUs as possible (based on HW=5103), and then use conditions invoke more specific parts. Unfortunately, the work has stalled since some month.
BTW: with the latest HMUX0 heat pump models it is apparent that many of the message definitions from this PR won't work (see #522 (comment)).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i have the HW=5103 model and ebusd seems to use the default csvs from the cdn (https://github.com/eBUS/ebus.github.io/blob/main/next/de/vaillant/08.hmu.csv). It seems that many values are missing though. This csv, which is linked as latest (https://github.com/john30/ebusd-configuration/blob/1755c158f641a0eeaf7ce9754b137eb226a532db/ebusd-2.1.x/de/vaillant/08.hmu.csv) seems to be completely different. Im new to ebusd and honestly I don't understand what version to use. Can someone enlighten me please?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The second link in your post is not the latest. It's on the old repo and not maintained anymore (see explanations here https://github.com/john30/ebusd-configuration). Especially the german version is very incomplete. However, the csv in your first link (recent repo) is the latest in the "development" branch 'next'), but not all definitions work for all units.
The present PR is an effort to validate the hmu messages for units based on HW=1503 and add newly discovered ones.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, I understand. Thank you. For better understanding, should I use the PR version for now, or will this be available as CSV soon?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't know. Usually PRs take a while before fully reviewed and approved. You can the CSV yourself and see which one works best for you.
…s in preparation of #481 merge


Follow-up for #472 to ensure changes stay in their own branch.
Please see the original PR for FAQ.