Not yet. I am on wacation now but from monday I start play again with that topic. Now I know that I need to check configuration file if I send command to topics with w at beggining. (Writtable topics) Then I need to setup sync command to accept ebus also as mastet.
After some reading I have been able to integrate my Exacontrol e7c thermostat and Bulex Themacondens heater (bai) using the MQTT climate entity. As it took some effort I thought to share it:
climate:
name: Centrale verwarming
availability_topic: "ebusd/global/signal"
payload_available: "true"
payload_not_available: "false"
max_temp: 30
min_temp: 10
temp_step: 0.5
precision: 0.5
# Current temperature
current_temperature_topic: "ebusd/e7c/DisplayedRoomTemp"
current_temperature_template: "{{value_json['temp'].value}}"
# Set temperature
temperature_state_topic: "ebusd/e7c/HeatingTemp1"
temperature_state_template: "{{value_json['temp'].value}}"
temperature_command_topic: "ebusd/e7c/DesiredTemperature"
# action
action_topic: "ebusd/bai/SetMode"
action_template: >
{%- if is_state('climate.centrale_verwarming', 'off') -%}
{{ "off" }}
{%- elif value_json['disablehc'].value == 0 -%}
{{ "heating" }}
{%- else -%}
{{ "idle" }}
{%- endif -%}
# modes
modes:
- "heat"
- "off"
mode_state_topic: "ebusd/e7c/HeatingEnable"
mode_state_template: >-
{% set values = { 'on':'heat', 'off':'off'} %}
{% set state = value_json["onoff"].value %}
{{ values[state] if state in values.keys() else 'off' }}
mode_command_topic: "ebusd/e7c/HeatingEnable/set"
mode_command_template: >-
{% set values = { 'heat':'on', 'off':'off'} %}
{{ values[value] if value in values.keys() else 'off' }}
# presets
preset_modes:
- "programma"
- "vakantie"
preset_mode_command_topic: "ebusd/e7c/DesiredPreset"
preset_mode_state_topic: "ebusd/e7c/DesiredPreset"
MQTT climate is not ideal as setting the temperature uses different MQTT topics. For a moment I though it would be easier to write a custom component for all the logic, but I solved it by using two automations that subscribe to DesiredPreset/DesiredTemperature, and do the necessary things.
I’m quite happy with how it works now. I also try not to bang the ebus too much, so I have not changed pollinterval. In fact, I don’t really rely on polling but let the automations fetch an update only when necessary (although I then do a /get ?1 to enable automatic polling for the future just in case). I also have a force update automation that runs when the climate entity turns on, or changes to unknown.
I only rely on polling when physically interacting with the device. As far as I understand, because of the default caching, it takes maximum 300 seconds for the HA climate to be updated, which I can live with.
@ilmc888
Could you talk us through how you got the ebus to WiFi adapter from Daniel Kucera working?
I have tried to get it up and running with my Vaillant system but it completely messes up my system. It even seems to break the link between my thermostats and my heat pump (where they seem to be unable to communicate)
I had a mini project, designing a case + integrating a gas detector connected to the EBUSD. I have it printed, it works, incl. internal gas detector fitting. If you like you can have the STL’s for this…