Ebus integration?

Anything. Here is an example from HA.

pck_power_metering:

 (...)

  template:
    - sensor:
      - name: "Total Electric Power"
        state: "{{ ((states('sensor.shelly_3em_phase_1_power')|float + states('sensor.shelly_3em_phase_2_power')|float + states('sensor.shelly_3em_phase_3_power')|float)) |round(2) }}"
        device_class: power
        unit_of_measurement: "W"

Conversion to float is needed to execute math operation since sensors return string.

Note it’s from the package, so you have to intend it properly depending on your case.

- platform: template
  sensors:
      total_gas:
          friendly_name: "Total Gas"
          state: "{{ ((states('sensor.ebusd_bai_prenergysumhc1')|float + states('sensor.ebusd_bai_prenergysumhwc1')|float)) |round(2) }}"
          device_class: gas
          unit_of_measurement: "m³"

but show me errors in check config:

Invalid config for [sensor.template]: [state] is an invalid option for [sensor.template]. Check: sensor.template->sensors->total_gas->state. (See ?, line ?).

Hi @andrej33, I am trying to connect an ebus adapter to the main board of a Geotherm as well, but when a power it on, the heatpump-menu goes into installation mode. When I disconnect, it works as normal. As it is Friday 4PM and mid-winter, this may not be the best time for me to experiment with the installation menu :slight_smile:

Do you recall if yours went into install mode as well, when you connected the eBus adapter?

No installation menu should be activated. At least in my case. And also, the main heatpump menu should not behave strange…

Did you check the pin on ebus adapter? What adapter do you use?

Yes, I found that surprising - I may try again.

I bought it from nodo shop pre-assembled, which should be just http://otgw.tclcode.com/

I connected the boiler side to the GeoTherm - I did find it odd the board on the heatpump has a + and - marked on the BUS connector. According to Google, this should not matter?

As far as I know and according to my experience adapter polarization (±) doesn’t matter, just use the pin for ebus on board.
But, as I see you don’t have ebus adapter3?

Duh. It appears I bought the wrong thing :frowning:

You need to provide the appropriate sensor template options in the HA.
Try “value_template:” instead of “state”

I have this in sensors.yaml:

- platform: template
  sensors:
    gas_consumption_sum_all:
      unique_id: gas_consumption_sum_all
      friendly_name: "Gas consumption"
      unit_of_measurement: 'm³' 
      value_template: "{{(((states('sensor.ebusd_bai_prenergysumhwc1').split(';')[0]|int) + (states('sensor.ebusd_bai_prenergysumhc1').split(';')[0]|int))/1000000)| round(2)}}"

and it works for me

for me this get error:

Invalid config for [sensor.template]: invalid template (TemplateSyntaxError: unexpected '}', expected ')') for dictionary value @ data['sensors']['gas_consumption_sum_all']['value_template']. Got "{{(((states('sensor.zuzycie_gazu_ogrzewanie_m3').split(';')[0]|int) + (states('sensor.zuzycie_gazu_ciepla_woda_m3').split(';')[0]|int))/1000000)| round(3}}". (See ?, line ?).

It depends on where you write code, in configuration.yaml or in separate file included to configuration.yaml

In separate file inluce in configuration.yaml

Sorry, missed this. But in case you still want it…
The box is shown at 50% transparency to see ‘inside’.
The gas sensor is mounted upside down on the lid.
Every side has holes in it, to allow gasses to flow in and be detected.
Ultimately I never used the gas detector integrated with the ebus board, but John made the pin available for it. I checked it and it does work.
Custom software will need to do the polling of that i/o pin, as the ebus adapter can’t push changes on that line out.
And it’s not integrated with the ebusd sotware either, so you’ll have to do http GET’s to read the pin status.
This was done quite some time ago, not too happy with the way I did it, but it’s a start, you can use it if you want. I’ll try to send them via PM to you.

1 Like

Hello, can you please help me to get my WiFi eBusd adapter 3 integrated into HA and advise what you did to get yours running? It seems that I am missing a step to get the entities and their respective data configured and integrated into HA.
Your support and fresh experience from a successful integration are very much appreciated!
Thanks for your guidance!

I’m only marginally ahead of you.

Do you have ebusd running and picking up messages? If so, you’ll need to set up an MQTT broker (i’m running Eclipse Mosquitto in a container) and configure ebusd to publish the messages to the broker. You can then use e.g. MQTT explorer to see what messages are published.

Once this is working, get HA to connect to the MQTT broker by installing the MQTT integration. Edit configuration.yaml to add the sensors you’re after. There is quite a bit of info if you scroll up, but these two now work for me:

mqtt:
  sensor:
    - name: "HP Hot Water Temp"
      state_topic: "ebusd/ehp/HwcTemp"
      unit_of_measurement: "°C"
      unique_id: "ebusd_hwc_temp"
      value_template: >
        {% set v = (value|default('Unknown;fault')).split(';') %}
        {{ v[0]  if v[1] == 'ok' else v[1] }}
    - name: "HP Status"
      state_topic: "ebusd/ehp/HeatPumpStatus"
      unique_id: "ebusd_status"

I switched to MQTT auto-discovery and it works great for most values. However, all the pressure-related values are missing from HA, but do show up in mqtt:

$ mqtt sub --topic ebusd/ehp/HcPress
{
     "press": {"value": 1.654},
     "sensor": {"value": "ok"}}

Where do I start to troubleshoot this?

What kind of adapter do you have?
What did you do to enable the adapter sending heat pump sensor MQTT messages beyond its standard status messages?

I have this adapter: EBUS to WiFi adapter module by Daniel Kucera's store

I didn’t do much except start the standard ebusd image in a container. Below the relevant parts of the docker-compose file:

  mosquitto:
    image: eclipse-mosquitto
    ports:
      - 1883:1883
      - 9001:9001
    volumes:
     - ./mosquitto:/mosquitto
     - ./mosquitto/data:/mosquitto/data
     - ./mosquitto/log:/mosquitto/log
    restart: unless-stopped
  ebusd:
    environment:
     EBUSD_DEVICE: "192.XXX.X.XXX:3333"
     EBUSD_LATENCY: 20
     EBUSD_SCANCONFIG: ""
     EBUSD_MQTTHOST: boss.thuis.local
     EBUSD_MQTTPORT: 1883
     EBUSD_MQTTCLIENTID: "ebusd"
     EBUSD_MQTTUSER: "xxxx"
     EBUSD_MQTTPASS: "xxxx"
     EBUSD_MQTTTOPIC: "ebusd"
     EBUSD_MQTTGLOBAL: "ebusd/global/"
     EBUSD_MQTTINT: "/etc/ebusd/mqtt-hassio.cfg"
     EBUSD_MQTTJSON: ""
    image: "john30/ebusd"
    ports:
      - ":8888/tcp"
    restart: unless-stopped

I don’t get my eBUS Adapter 3 to collect and share the heat pump data onto MQTT.

Hi all,

I have a Bulex HP setup with MiPro Sense and MiLink v3.

MiPro Sense is exactly the same as VRC720 and MiLink v3 is basically the same hardware with VR920 from Vaillant.

I am now waiting to buy an eBUS Adapter to use this integration.

My question is, when I change a setting through ebusd, does it also reflected to the thermostat, i.e. MiPro Sense, or is the setting go directly to the HP? In that case, the integration would compete with the thermostat, i.e. both will eventually override each other’s last configuration.

Regards.

@bilalhp there is no comms from the HP to the thermostat. The HP takes all the decisions, the thermostat just gives an input AFAIK. Maybe it helps to think through an actual example where you expect a conflict.