Vaillant eBUS hardware adapter (ebusd software) Thread

It should appear in the input tab. Can you make an emoncms.org account and target that? This way we’ll know whether the sender or the receiver is the problem.

I have an account; I’ll give that a try.

apart from the
api change to the write/read from https://emoncms.org/
and change the url to https://emoncms.org/

do the feeds auto load in

emoncms_history:
  api_key: my_api_key_from_emoncms.org 
  url: https://emoncms.org
  inputnode: 19
#  scan_interval: 15
  whitelist:
    - sensor.heat_pump_current_power
    - sensor.ebusd_basv_displayedoutsidetemp_tempv
    - sensor.current_consumed_power

Incoming data, whether it arrives by serial input (radio or the “emon” electricity monitor card or USB), routes via emonHub (software) to the Inputs page of emonCMS. Ethernet (& Wi-Fi) data bypasses emonHub and enters the Pi and the Input page of emonCMS directly. After passing down the processing list in the Input, a “Log to Feed” line or an implied Log to Feed (e.g. Power to kWh) sends the data to a Feed, which is actually the database where data is stored. Any data not sent to a Feed is lost forever.

There is no mechanism to create an Input, other than by sending data to the Inputs page by one of the physical routes I mentioned.

This diagram (which I’ve never found the time to fully understand) might help to show the relationships between the various function in the emonPi1/emonCMS.
https://docs.openenergymonitor.org/emonpi/technical.html#emonpi-internals

mine is a bit differentFYI

emoncms_history:
  api_key: **"put your api_key here"**
  url: https://emoncms.org
  inputnode: 1
  scan_interval: 10
  whitelist:
    - sensor.t_moy #T Moy Home
    - sensor.t_ext_vaillant #TExtVaillant
    - sensor.pac_conso #heatpump_elec
    - sensor.hp_output #Heat output in watts
    - sensor.flow #Flow temperature
    - sensor.return #Return temperature
    - sensor.flow_t_desired #Target (Room or Flow) Temperature
    - sensor.hp_pump_status #Status
    - sensor.ebusd_hmu_ebusd_hmu_setmode_releasecooling #Cooling mode non zero
    - sensor.flow_rate

read and write key is in your account details Emoncms - user view

1 Like

Due to the innacuracy of the heat output from Vaillant, i have it calculating based on the data needed. The rest of the data is sourced from the heat pump via ebusd. Might be of help to someone else.

template:
  - sensor:
      - name: "heat_power"
        unique_id: "heat_power"
        unit_of_measurement: W
        state_class: measurement
        device_class: power
        availability: |
          {{ has_value('sensor.ebusd_hmu_state01_temp1') and
             has_value('sensor.ebusd_hmu_state01_temp1_2') and
             has_value('sensor.ebusd_hmu_waterthroughput') }}
        state: >
          {% set t_flow = states('sensor.ebusd_hmu_state01_temp1') | float(0) %}
          {% set t_return = states('sensor.ebusd_hmu_state01_temp1_2') | float(0) %}
          {% set flow_rate = states('sensor.ebusd_hmu_waterthroughput') | float(0) %}
          {% set heat_power = flow_rate / 3600 * (t_flow - t_return) * 4186  %}
          {% if heat_power < 7500 %}
            {{ heat_power }}
          {% else %}
            {{ this.state }}
          {% endif %}

emoncms_history:
  api_key: MY_API_KEY
  url: https://emoncms.org
  inputnode: 1
  whitelist:
    - sensor.ebusd_hmu_state01_temp1 *#FlowT*
    - sensor.ebusd_hmu_state01_temp1_2 *#ReturnT*
    - sensor.ebusd_basv_z1roomtemp_tempv *#RoomT*
    - sensor.ebusd_basv_displayedoutsidetemp_tempv *#OutsideT*
    - sensor.ebusd_hmu_rundatacurrentconsumedpower_powerv *#Electric*
    - sensor.heat_power *#Heat*
1 Like

Yay it worked finally, thanks to all that has helped in my quest to get this working.
My task is to know what feeds people are using to get the typical display that is seen.

Then I’ll get displayed on his web portal

2 Likes

So what was the issue? Are you using the local Emoncms instance withon HA now?

You will need a number of inputs which then are recorded into feeds and are used in the app.

  • Flow temperature
  • Return temperature
  • Flow rate
  • Heat power
  • Heat energy
  • Electrical power
  • Electrical Energy
  • Outdoor temperature
  • Indoor temperature
  • DHW/CH flags if you have them

You can accumulate energy from power within the processing pipeline. Heat power can be calculated from flow temperature, return temperature and flow rate. So you can pipe flow & return temp, flow rate, electrical power, in/outdoor temp and the DHW/CH flags into emoncms inputs and then process them to the feeds you need for the app. There must be a writeup on that somewhere here.

Hi
Since 15 months, I’m using the VR33 Opentherm module in my new Vaillant EcotecPlus boiler. This module is connected to the OTGW module which I’m reading out from within Home Assistant.
I also bought the Ebus adapter, because I was interested in receiving more values from my Vaillant boiler
The technician connected the Ebus adapter to the two Ebus wires on the big PCB
But as you can see in the screenshot below, the web interface easi says that there is no “ebusd signal”. And I don’t have any “ebusd values” in HA
Perhaps it isn’t possible to use both interfaces: the VR33 module for OpenTherm on the X32 connector together with the Ebusd interface on the Ebus connector.

What can/should I do?

I can disconnect the wiring between the Vaillant and the ebus interface.
Can I measure if there is a voltage or a current coming from the Vaillant Ebus? AC or DC?

Screenshot1 = what the easi web interface says
Screenshot 2 = What I receive in Home assistant


download the eBusd add-on in home assistant
then in config in eBusd edit in yaml

scanconfig: true
loglevel_all: notice
mqtttopic: ebusd
mqttint: /config/ebusd/mqtt-hassio.cfg  ### https://community.openenergymonitor.org/t/vaillant-ebus-hardware-adapter-ebusd-software-thread/24176/195?u=sparky77 ###
mqttjson: true
network_device: enh:192.168.8.56:9999. ##Your ip address##
accesslevel: “*”
http: true
configpath: /config/ebusd/en or download and place this #https://github.com/jonesPD/ebusd-configuration/tree/master/ebusd-2.1.x/en ###
latency: 10
pollinterval: 5

Thanks
all up and running


2 Likes

@Herman58 Mine is DC fluctuating from 15v - 21v always changing. Keep the polarity the same - maybe change it if you get nothing

On the eBusd device, I have + on the left and the - on the right

1 Like

eBUS is combined signal and DC power. The quiescent state is ~24vDC. Signalling is by sending UART type data (Start Bit, Data bits, etc.) A zero is sent by shorting the bus via a 7v5 Zener, so the bus never gets below 8v-ish and is always capable of supplying power. One unit on the bus must supply the power, it is usually the boiler (since that is mains powered). The bus originally was polarity sensitive but most eBUS devices now have a bridge rectifier up front so they are polarity insensitive.

1 Like

@sparky77 corrected version below, as the state01 values were not granular enough

CORRECTION

template:
  - sensor:
      - name: "heat_power"
        unique_id: "heat_power"
        unit_of_measurement: W
        state_class: measurement
        device_class: power
        availability: |
          {{ has_value('sensor.ebusd_hmu_flowtemp') and
             has_value('sensor.ebusd_hmu_returntemp_temps2') and
             has_value('sensor.ebusd_hmu_waterthroughput') }}
        state: >
          {% set t_flow = states('sensor.ebusd_hmu_flowtemp') | float(0) %}
          {% set t_return = states('sensor.ebusd_hmu_returntemp_temps2') | float(0) %}
          {% set flow_rate = states('sensor.ebusd_hmu_waterthroughput') | float(0) %}
          {% set heat_power = flow_rate / 3600 * (t_flow - t_return) * 4186  %}
          {% if heat_power < 7500 %}
            {{ heat_power }}
          {% else %}
            {{ this.state }}
          {% endif %}

emoncms_history:
  api_key: MY_API_KEY
  url: https://emoncms.org
  inputnode: 1
  whitelist:
    - sensor.ebusd_hmu_flowtemp *#FlowT*
    - sensor.ebusd_hmu_returntemp_temps2 *#ReturnT*
    - sensor.ebusd_basv_z1roomtemp_tempv *#RoomT*
    - sensor.ebusd_basv_displayedoutsidetemp_tempv *#OutsideT*
    - sensor.ebusd_hmu_rundatacurrentconsumedpower_powerv *#Electric*
    - sensor.heat_power *#Heat*

Hi,
I had my first ever defrost today :partying_face:
But the heat produced was positive so wrongly displayed to emoncms…
(I’ve corrected the CSV afterwards )

How do you handle this ?
or which idendity is saying it’s defrosting so I can make the heat negative for that timeframe ? ( like I do with cooling )

It should automatically become negative as T_flow< T_return. Are you using an absolute value somewhere?

sensor.ebusd_hmu_ebusd_hmu_currentyieldpower came like this

Ah yes, you’re using yield power. I suggest calculating heat power directly from flow and return temperature and flow rate as the yield is incorrect during defrosts anyways. Have a look here:

yes, have it ready

but it’s never 0 when not running

That’s because you have a small dT error in the sensors. You can add a conditional to only be >0 if the yield power is >0.

1 Like

Thank you very much for this very interesting explanation. I even understand Uart and Zener 

I opened my Vaillant. I also removed the connector between the “Main PCB” and the “add-on VR33 module” that I’m using for Opentherm. I left the two “RT connections” on the main PCB shorted.
I powered on the Vaillant. But I could not measure any DC voltage on the Ebus adapter on the main PCB. It remains 0,0 VDC
Perhaps that I’ve to say to my Vaillant that he should activate the Ebus connection?
But I was afraid to do this at the beginning of the winter.