Vaillant eBUS hardware adapter (ebusd software) Thread

I’m currently just using a very simple python script that pulls data from ebusd and posts to emoncms. Not currently using Home Assistant (have Loxone). I should probably set it up with cron or as a service, but currently it just has a wait and i run using nohup. Have two scripts actually:

  • One pulls heat/energy meter data from pasivliving hub + outside-temp/target flow temp from ebusd (this is for heatpump app)
  • The other one pulls all the more details ebusd info (compressor, integral etc etc) from ebusd which I then graph in emoncms and have been using to look at the before/after behaviour of the arotherm energy integral bug.

Until recently I used the same setup as @Zarch via cron & Home Assistant. I moved away from that since the proper logging would depend on Home Assistant so now I have Node-RED + ebusd running on an emonPi and everything gets sent to the local MQTT broker on there and distributed into emoncms. Nore-RED also does the ebus polling with some values being polled regularly all the time while others are only polled when the compressor is active. It’s also a bit of a mess but I don’t have to worry about losing data when I tinker with my HA config. Data from emoncms (including the ebus data) is polled now by HA using the emoncms sensor integration.

I just has a closer look at what I was using. I was using master from few months back and then I’d pulled in and overridden 08.hmu.csv from one of the open PR’s. It looks like the PR in question has now been merged in though, so I’ve just reverted to master and all looks great.

Have another go with master and let me know how you get on.

1 Like

Oops, EnergyIntegral got lost in the merge it seems, so I’ve givem up and moved to jonesPD/ebusd-configuration :slight_smile:

1 Like

At one point it got renamed Integral - maybe that’s still there?

So that explains how you claimed previously it “worked automatically” — it did not, you’ve been using one of the PRs I helped craft :sweat_smile:

Glad to hear it’s working well … until jt got merged and something got screwed up.

(This is clearly fiddly, brittle stuff. It’s fine to just have your local copy that is guaranteed to never change once it’s working well for you: that removes the risk of upstream breakage!)

2 Likes

@Andre_K @dfeist So do you publish to the emon topic direct from node red or script so that EmonCMS creates the input? I have got tests doing that running, just need to put everything together in script (or use node red).
Thanks to all for all the pointers as to how to do this integration without HA, and to @wimleers for all the hard work on the csvs.
As @glyn.hudson suggested, perhaps we should add an easy to follow guide in the documentation?

1 Like

For me it looks like this. I have flows for every ebus topic I’m interested in. As an example:

image

The initial node listens to the desired topic:

image

The function node extracts the value from the payload (slightly different for different measured parameters)

image

The MQTT out doe then sends it to the emon topic to be picked up by emoncms:

image

I then have polling flows with different intervals for different values I want to extract, here for example every 30s polling for integral, flow and return temp:

image

This just sends a regular /get to the topics that should be updated

image.

My /etc/default/ebusd line is:

EBUSD_OPTS="–device=ens:/dev/ttyACM0 --scanconfig --configpath=/home/pi/ebusd_config/ --pollinterval=1 --accesslevel=* --mqtthost=localhost --mqttport=1883 --mqttuser=emonpi --mqttpass=emonpimqtt2016 --mqttint=/etc/ebusd/mqtt-hassio.cfg --mqttjson

The ebus adapter v5 is plugged into the emonpi.

Those are basically the building blocks I used. There are some more additional things like polling specific values more often when the compressor is active (based on my own power measurements using a Shelly) or updating the desired flow temperature as soon as the reported outside temperature changes.

image

I’d be happy to contribute to a wiki/howto document.

1 Like

Well, it still all worked with HEAD, just a lot of “hmu” fields were missing. Pretty sure integral wasn’t renamed, did take a while to look for it.

Great contribution: thanks!

Did ebusd break my hot water runs?

I have been running an older version of ebusd for about a year.
Coupled with occasional updates of Jones config files.

But this week, when exploring the integral stuff with @dfeist I decided to upgrade everything.

I upgraded the core ebusd to 23.3

I then upgraded Jones config files to the latest version.

This was Tuesday evening. Before Tuesday and for months, my hot water runs have been rock solid.

But from Wednesday AM onwards they started going screwy.

Wobbles in the middle of runs. Not always defrosts. This one was 6.8C outside.

So yesterday evening I stopped the ebusd service and last nights run was much better.
I will observe over the next few days with ebusd off.

But it looks quite clear that the current ebusd/jones files is causing me some trouble with DHW.
Too much of a coincidence that the day i upgrade things go wrong and the day I turn it back off things go back to normal.

My only theory is that there’s too much polling from the ebusd to the Arotherm controller? Ie, it’s too busy now? Don’t know, just guessing.

Just wanted to make you guys aware.

Yes that’s too much polling. Do you have any manual regularly occurring polls set up?

I did put some manual ebusctl reads in a cron. But even when I took those out and just ran it standard out of the box, it still caused issues.

EBUSD_OPTS="--scanconfig=full --configpath=/home/mick/jones/ebusd-configuration/ebusd-2.1.x/en -d ens:/dev/ttyAMA0 --latency=60 --loglevel=debug --mqtthost=carbone.lan --mqttport=1883 --mqttint=/etc/ebusd/mqtt-hassio.cfg --mqttjson --mqttvar=filter-direction=r|u|^w"

Interesting. I’ll check my exact config when I’m back home but this points to a config issue for me. Which csv exactly are you using?

Zero issue here, even if I poll every 10 seconds! I’m on the latest version of the jonesPD config but am still running ebusd version. 23.2.23.2.

Could this be related Implement VWZ Live Monitor readings & Test Menu by kjoglum · Pull Request #316 · john30/ebusd-configuration · GitHub (or maybe they are just seeing more detailed info they hadn’t seen before?)

Also, isn’t it more likely to be the “reworked eBUS protocol engine” in ebusd 23.3, than config files which just define the translation?

This is me last night:

The main difference in the merges of the csv you linked and the version I am using is that for many parameters a specific query command seems to be defined to actively read a parameter

This is my local version:

r,WaterThroughput,2B03FFFF,UIN,l/h,Current heating water flow rate (liter/hour),

vs what I found in the repo:

w,ReadDeliveryFlow,Read T.016,2B03FFFF,m,HEX:3,
r,DeliveryFlow,2B03FFFF,IGN:2,UIN,l/h,Current heating water flow rate (liter/hour),

Would this make a difference? I saw a number of those matching w/r lines and wondered what use they are given that for me I can query all those parameters without the specific w line in the csv.

Just to add, it’s not only a problem with DHW, but heating also.

Check out this trace from Thursday with ebusd running

I should not be getting those cycles / stop / start at 4C outside.

Here’s yesterday with ebus switched off.

Much better. The drop at 9:30pm is just going to setback.

1 Like

I updated to latest version of ebusd yesterday evening and I also pulled the latest vesion of the JonesPD ebusd-configuration fork at the same time. I am still polling every 10 seconds but have not observed any issues so far.

My use of the ebusd does not include home assistant and I poll data either via i) ebusctl command ii) HTTP/JSON interface. Also, I only read, I am not currently writing anything.

This is today

1 Like

Interesting, thanks Dan.

Maybe it’s the HA / mqtt integration? :man_shrugging:

Some comments around putting the whole thing into read only mode too.

I posted it as an issue on the main ebusd github

I assume you physically disconnected the ebusd board? Try reconnecting the board, but disabling everything (home assistant, mqtt, polling scripts etc) and see if you have any issues? Then gradually renable things and see what the cause is…