Ebus integration?

Hello,

There is no comms from the HP to the thermostat. That’s correct.

My question is the communication between MiLink and MiPro.

MiLink should be applying the settings from the Cloud to MiPro with some commands over eBus. If this integration is using the same commands, the settings will be applied to MiPro (thermostat).

@bilalhp @DanZee so how do you wire this? I am using Protherm gas boiler and willing to use ebusd adapter. Thermostat that came with Protherm is wired using 2 cables. Can I just split those wires and connect thermostat and ebusd module side by side, and both would work? I am mostly interested in ebusd for logging the data, nit the control. Just wondering bkw would I wire it all together and if both would work side by side.

@stomko I would not expect the ebus interface to be on the same wires as the thermostat, most likely there will be seperate connectors somewhere in the internals of your boiler. I suggest to try and find a technical manual.

My ebus adapter occasionally (after a few weeks) disconnects from the wifi, and does not automatically reconnect (even after a few days). I need to disconnect/re-connect a wire on the module itself to reset it. Anyone else with this issue?

The wifi access point is a couple of meters from adapter, but in a room with quite a bit of equipment. The AP generally shows the eps-ebus connection as Excellent/Good (until it disconnects altogether obviously).

Did you set the ens: parameter in the ebusd config file?

I run ebusd using docker and have this as the environment variable

 EBUSD_DEVICE: "192.168.2.174:3333"

I do not think ebusd config is the issue though. If I check my wifi router, the adapter dissappears from the network altogether and does not reconnect.

Hi, maybe that is my issue with the integration?
I am unsure about where to search and find the ebusd config file first. Can you please help me to locate the file?
Once, I found it I would then be able to set parameters.

Depending on you system, there should be a file unter /etc/default called ebusd.
That’s the one to adapt.

I have got a EBUS adapter v5. I have mount it on top of the Raspberry Pi 4. I am able to open a ‘ebus’ webpage via a Wifi connection with SSID ‘ebus’.

I would like to work with Home Assistant OS (OS managed) and the integration ‘ebusd’. I have added the Add-on ‘SSH and Web terminal’. For this Add-on I turned on the Advanced mode.

What is the next step to get it working?

Awesome!

I guess ebusd/e7c/DesiredTemperature does not exist, and you somehow connected it to the following topics:
heatingtemp1
heatingtemp2
heatingoverridetemp

Not sure how to present tem as ebusd/e7c/DesiredTemperature.
Would you be willing to share your automations?

thanks :slight_smile:

2 Likes

Seems I don’t get notifications by e-mail… better late than sorry,

I indeed have some custom topics set by the MQTT climate entity which I pick up in automations. For instance, the temperature needs to be written to the correct topic depending on the mode of the thermostat (manual temperature, schedule, or away/holiday). I control the thermostat which controls the heater, I don’t control the heater directly.

DesiredTemperature:

alias: Exacontrol DesiredTemperature to action
description: ""
trigger:
  - platform: mqtt
    topic: ebusd/e7c/DesiredTemperature
condition: []
action:
  - data:
      topic: ebusd/e7c/HeatingScheduleEnable/get
      payload: "?1"
    action: mqtt.publish
  - if:
      - condition: state
        entity_id: switch.e7c_schedule
        state: "on"
    then:
      - data:
          topic: ebusd/e7c/HeatingOverrideTemp/set
          payload_template: "{{trigger.payload}}"
        action: mqtt.publish
      - data:
          topic: ebusd/e7c/HeatingOverrideEndTime/set
          payload_template: "{{(now() + timedelta(hours=4)).strftime('%d.%m.%Y %H:%M')}}"
        action: mqtt.publish
      - data:
          topic: ebusd/e7c/HeatingOverrideEnable/set
          payload: "on"
        action: mqtt.publish
    else:
      - data:
          topic: ebusd/e7c/HeatingTempSet/set
          payload_template: "{{trigger.payload}}"
        action: mqtt.publish
  - data:
      topic: ebusd/e7c/HeatingTemp1/get
      payload: "?1"
    action: mqtt.publish
mode: single

DesiredPreset:

alias: Exacontrol DesiredPreset to action
description: ""
trigger:
  - platform: mqtt
    topic: ebusd/e7c/DesiredPreset
condition: []
action:
  - choose:
      - conditions:
          - condition: template
            value_template: "{{ trigger.payload == 'none' }}"
        sequence:
          - data:
              topic: ebusd/e7c/HeatingScheduleEnable/set
              payload: "off"
            action: mqtt.publish
      - conditions:
          - condition: template
            value_template: "{{ trigger.payload == 'programma' }}"
        sequence:
          - data:
              topic: ebusd/e7c/HeatingScheduleEnable/set
              payload: "on"
            action: mqtt.publish
      - conditions:
          - condition: template
            value_template: "{{ trigger.payload == 'vakantie' }}"
        sequence:
          - data:
              topic: ebusd/e7c/VacationEnable/set
              payload: "on"
            action: mqtt.publish
  - data:
      topic: ebusd/e7c/HeatingTemp1/get
      payload: "?1"
    action: mqtt.publish
mode: single

When the ebus signal is lost, or home assistant is restarted I force a periodic poll for some topics:

alias: Exacontrol force update climate
description: ""
trigger:
  - platform: state
    entity_id:
      - climate.centrale_verwarming
    from: "off"
    enabled: true
  - platform: state
    entity_id:
      - climate.centrale_verwarming
    to: unknown
  - platform: homeassistant
    event: start
  - type: connected
    platform: device
    device_id: 5f76d2befa3f259166e434ee04f3119f
    entity_id: binary_sensor.ebusd_signal
    domain: binary_sensor
    for:
      hours: 0
      minutes: 0
      seconds: 5
condition: []
action:
  - data:
      topic: ebusd/e7c/HeatingEnable/get
      payload: "?1"
    action: mqtt.publish
  - data:
      topic: ebusd/e7c/HeatingTemp1/get
      payload: "?1"
    action: mqtt.publish
  - data:
      topic: ebusd/e7c/DisplayedRoomTemp/get
      payload: "?1"
    action: mqtt.publish
  - data:
      topic: ebusd/bai/SetMode/get
      payload: "?1"
    action: mqtt.publish
mode: single

On the thermostat itself you can set a temperature which then would be in effect until the next change in the schedule. A WIP was to copy that behavior in home assistant. Frankly you need some kind of decision tree for the exacontrol thermostat as the behavior depends on the setting of different topics. Exposing the week program to HA was next, but decided I can just do that on the thermostat itself.

alias: Exacontrol sync override end time
description: ""
trigger:
  - platform: state
    entity_id:
      - input_datetime.exacontrol_eindtijd
condition: []
action:
  - data:
      topic: ebusd/e7c/HeatingOverrideEndTime/set
      payload: "{{trigger.this.strftime('%H')}}"
    action: mqtt.publish
mode: single

Btw: the ebus adapter of Daniel has some firmware (and hardware) updates which might be useful. Now has a web ‘interface’ and some fixes.