Zigbee herman converter - Danfoss Icon Floor Heating

Thanks David, and a huge thanks for what’s you’ve already done. Got your point, that would be financially interesting as each Danfoss thermostat cost in Switzerland 100 euro. And most of us have already HA-compatible temperature sensors in the rooms :slight_smile:

Hi @David_Nagy,

Based on this post I’ve ordered the Zigbee 088U1130 module for my Danfoss Icon. In my house I have a slave and a master, wirlessly connected. I’ve connected the Zigbee module to the APP connector on the master controller. After connecting it to Zigbee2MQTT only endpoint L1 is populated with data. Endpoints 2 to 16 show N/A.

What am I doing wrong? I was expecting that all thermosats were shown.
Please advice.

Kind Regards,
Robert

Edit: This is my output:

{
    "abs_max_heat_setpoint_limit_l1": 35,
    "abs_min_heat_setpoint_limit_l1": 5,
    "battery_l1": 91,
    "linkquality": 123,
    "local_temperature_l1": 20.85,
    "max_heat_setpoint_limit_l1": 23.5,
    "min_heat_setpoint_limit_l1": 17.5,
    "multimaster_role_l16": "master",
    "occupancy_l1": true,
    "occupied_heating_setpoint_l1": 20,
    "output_status_l1": "inactive",
    "room_status_code_l1": "no_error",
    "running_state_l1": "idle",
    "setpoint_change_source_l1": "manual",
    "system_mode_l1": "heat",
    "system_status_code_l16": "no_error",
    "system_status_water_l16": "hot_water_flow_in_pipes",
    "abs_max_heat_setpoint_limit_l10": null,
    "abs_max_heat_setpoint_limit_l11": null,
    "abs_max_heat_setpoint_limit_l12": null,
    "abs_max_heat_setpoint_limit_l13": null,
    "abs_max_heat_setpoint_limit_l14": null,
    "abs_max_heat_setpoint_limit_l15": null,
    "abs_max_heat_setpoint_limit_l2": null,
    "abs_max_heat_setpoint_limit_l3": null,
    "abs_max_heat_setpoint_limit_l4": null,
    "abs_max_heat_setpoint_limit_l5": null,
    "abs_max_heat_setpoint_limit_l6": null,
    "abs_max_heat_setpoint_limit_l7": null,
    "abs_max_heat_setpoint_limit_l8": null,
    "abs_max_heat_setpoint_limit_l9": null,
    "abs_min_heat_setpoint_limit_l10": null,
    "abs_min_heat_setpoint_limit_l11": null,
    "abs_min_heat_setpoint_limit_l12": null,
    "abs_min_heat_setpoint_limit_l13": null,
    "abs_min_heat_setpoint_limit_l14": null,
    "abs_min_heat_setpoint_limit_l15": null,
    "abs_min_heat_setpoint_limit_l2": null,
    "abs_min_heat_setpoint_limit_l3": null,
    "abs_min_heat_setpoint_limit_l4": null,
    "abs_min_heat_setpoint_limit_l5": null,
    "abs_min_heat_setpoint_limit_l6": null,
    "abs_min_heat_setpoint_limit_l7": null,
    "abs_min_heat_setpoint_limit_l8": null,
    "abs_min_heat_setpoint_limit_l9": null,
    "battery_l10": null,
    "battery_l11": null,
    "battery_l12": null,
    "battery_l13": null,
    "battery_l14": null,
    "battery_l15": null,
    "battery_l2": null,
    "battery_l3": null,
    "battery_l4": null,
    "battery_l5": null,
    "battery_l6": null,
    "battery_l7": null,
    "battery_l8": null,
    "battery_l9": null,
    "max_heat_setpoint_limit_l10": null,
    "max_heat_setpoint_limit_l11": null,
    "max_heat_setpoint_limit_l12": null,
    "max_heat_setpoint_limit_l13": null,
    "max_heat_setpoint_limit_l14": null,
    "max_heat_setpoint_limit_l15": null,
    "max_heat_setpoint_limit_l2": null,
    "max_heat_setpoint_limit_l3": null,
    "max_heat_setpoint_limit_l4": null,
    "max_heat_setpoint_limit_l5": null,
    "max_heat_setpoint_limit_l6": null,
    "max_heat_setpoint_limit_l7": null,
    "max_heat_setpoint_limit_l8": null,
    "max_heat_setpoint_limit_l9": null,
    "min_heat_setpoint_limit_l10": null,
    "min_heat_setpoint_limit_l11": null,
    "min_heat_setpoint_limit_l12": null,
    "min_heat_setpoint_limit_l13": null,
    "min_heat_setpoint_limit_l14": null,
    "min_heat_setpoint_limit_l15": null,
    "min_heat_setpoint_limit_l2": null,
    "min_heat_setpoint_limit_l3": null,
    "min_heat_setpoint_limit_l4": null,
    "min_heat_setpoint_limit_l5": null,
    "min_heat_setpoint_limit_l6": null,
    "min_heat_setpoint_limit_l7": null,
    "min_heat_setpoint_limit_l8": null,
    "min_heat_setpoint_limit_l9": null,
    "output_status_l10": null,
    "output_status_l11": null,
    "output_status_l12": null,
    "output_status_l13": null,
    "output_status_l14": null,
    "output_status_l15": null,
    "output_status_l2": null,
    "output_status_l3": null,
    "output_status_l4": null,
    "output_status_l5": null,
    "output_status_l6": null,
    "output_status_l7": null,
    "output_status_l8": null,
    "output_status_l9": null,
    "room_status_code_l10": null,
    "room_status_code_l11": null,
    "room_status_code_l12": null,
    "room_status_code_l13": null,
    "room_status_code_l14": null,
    "room_status_code_l15": null,
    "room_status_code_l2": null,
    "room_status_code_l3": null,
    "room_status_code_l4": null,
    "room_status_code_l5": null,
    "room_status_code_l6": null,
    "room_status_code_l7": null,
    "room_status_code_l8": null,
    "room_status_code_l9": null,
    "running_state_l10": null,
    "running_state_l11": null,
    "running_state_l12": null,
    "running_state_l13": null,
    "running_state_l14": null,
    "running_state_l15": null,
    "running_state_l2": null,
    "running_state_l3": null,
    "running_state_l4": null,
    "running_state_l5": null,
    "running_state_l6": null,
    "running_state_l7": null,
    "running_state_l8": null,
    "running_state_l9": null,
    "setpoint_change_source_l10": null,
    "setpoint_change_source_l11": null,
    "setpoint_change_source_l12": null,
    "setpoint_change_source_l13": null,
    "setpoint_change_source_l14": null,
    "setpoint_change_source_l15": null,
    "setpoint_change_source_l2": null,
    "setpoint_change_source_l3": null,
    "setpoint_change_source_l4": null,
    "setpoint_change_source_l5": null,
    "setpoint_change_source_l6": null,
    "setpoint_change_source_l7": null,
    "setpoint_change_source_l8": null,
    "setpoint_change_source_l9": null
}

Hi @robertwebbe, sorry for a late reply, I am super busy at work. Unfortunately I have only one regulator as master with 9 thermostat. If you would like to join and help me to debug with slave regulator, it would be welcome. I will look into to revise the code during the holiday, to see whether it can be improved. I am also planning to add support for thermostats with IR sensor.

1 Like

Thanks David, any help is very welcome!

Edit: I think I’ve found out the reason. When you have multiple controllers, every controller needs it’s own Zigbee module. So I have to buy another one.

Edit 2: Today I’ve received an e-mail from Danfoss support. At the moment there is an issue when you have multiple controllers in Master/Slave configuration when you use Zigbee modules on multiple controllers. At this moment they advise to use the 088U1101 app module because this one is working properly.

Hi @robertwebbe, do you know if the app module provides a similar way of extracting data?
maybe through REST or some other http API ?

In the past three years Danfoss Icon was working for me. But today I wanted to heat a usually cold room, but the connection to the cloud is lost, so my only option is to turn off MasterControl, and then the Normal Open TRW-s will open and I will heat every room…

It is my time to build a local only control of my heating…
The key issue is that I have 7 working IR 088U1082 room thermostats. How will they behave with the z2m control? Does anyone have any experience with them?

Hello guys,

I have the APP module being installed right now.
I have 3 Master controllers and will not have them in master/slave config.

Did any of you managed to get data through the APP module ?
I’ll give a shot when the installation will be up and running.

In the meantime, I discovered that Danfoss has what they call an Ally Gateway that communicate with the Zigbee modules. The gateway bring the local connectivity, but all the API are in the Cloud:

Thanks in advance for your feedback.

Tim

edit 1:
Discussing with a Danfoss representative, I learned that the APP modules discuss with a Cloud services. There might not be any way to get data from them locally.

Did the thermostats automatically show in HA or did you create them through config.yaml?
For some reason the z2m device no longer create any entities in HA for me …

-=edit=-
nevermind it turned out to be a power issue, replaced the powerplug and that fixed the issue.

I recently purchased an Ally and Icon Zigbee Module, only to find out that the Zibee module is only compatible with the Icon2. It is odd, as the documentation I found online shows it should work. Did you get an Ally?

The Icon2 has zigbee built in, no extra module is required, as far as I know.

The Zigbee module 088U1130 is needed for the Icon 1. Keep in mind that the Icon 1 devices are supported from ~2020.11, having OTA in their product names:

I had an old Icon from 2018 (088U1072), the zigbee module did not work with it, it showed constant red on its led.
I just bought and installed today a newer 088U1148 Icon (produced in 2023.08), and the zigbee works!

I tried it with Z2M:
image

and also with ZHA:
image

I bought also an Ally and I also tried the integration (working through the Danfoss cloud):
image

The Z2M does not show the floor temperature readings of my thermostats ( 088U1082), while ZHA shows them.

Currently I use the Ally integration, but I plan to move off from their cloud soon.

1 Like

That’s great information! Exactly what I have been looking for.

Seems I need to upgrade my Icon - I have an earlier version.

How will you control your Icon once you move off the Ally integration? Will you have full control?

When I tried the Ally-less integration, each thermostat was visible as a climate entity.

With this approach I assume the following:

  • the requested temperature is set in HA, and sent to the MC via zigbee.
  • the measured room temperature (and with ZHA the floor temperature) can be seen in HA as well.
  • the MasterControl handles the heating in the zones to reach and keep the set temperature
  • the temperature scheduling should be set in HA (see top left corner: Zigbee herman converter - Danfoss Icon Floor Heating - #14 by David_Nagy )

Can someone expert/experienced (@David_Nagy ) validate these?

(If these are correct, does it mean that with the cloud-based approach the scheduling is done in the cloud as well, the MC is responsible only for set temperature regulation?)
((Unlike Honeywell evohome, where the central controller runs the scheduling, independent of the cloud and its availability.))

Hi @kovlo and everyone else. I am happy that you are making use of the integration for the Icon.

  • the requested temperature is set in HA, and sent to the MC via zigbee.
    Correct
  • the measured room temperature (and with ZHA the floor temperature) can be seen in HA as well.
    Correct, only I have not had the time to add the floor sensor yet to z2m
  • the MasterControl handles the heating in the zones to reach and keep the set temperature
    Correct
  • the temperature scheduling should be set in HA (see top left corner: Zigbee herman converter - Danfoss Icon Floor Heating - #14 by David_Nagy )
    Correct, I did not want to add mess around with the zigbee scheduling protocol, due to it is not robust or not much custommization is avaiable. For scheduling, I used the scheduling card and integration, but it has also some flaws, so I opted in to an automation. I am using a slightly modified Heating Control blueprint This allows to use the mi max thermostat value, away value etc. Heating schedule for Danfoss icon. · GitHub

If someone want to add to z2m the floor temp value, pls go for it, I am busy at the moment, with a new born who takes all my time up.

1 Like

Hi David,
Is it possible to add support for the following Icon2 thermostats?
Danfoss Icon2™ RT, wireless, w. display 0x8040
Danfoss Icon2™ RT IR, wireless, w. display and IR and 0x8041
They should have the same cluster properties as the Icon thermostats

Thank you

Hi everybody,

first of all thank you for all your great work (especially @David_Nagy).

I just wanted to ask if anybody knew the current status for using the zigbee module with more than one master controller, since there seemed to be a problem (at least in 2022)?

I have three floors with separate controllers which are at the moment all in master mode (it was installed like this - I didn´t touch the system yet) and bought one zigbee module, which showed up immediately in z2m - great, but of course I have only access to the one controller the module is connected to.

So my question is, can I reprogramm the other controllers to slave mode and have then access with one zigbee module or is it better (or works at all) to just buy two more zigbee modules? The first one means reinstallation of all the thermostats, the seconds means 250 - 300 € more for two zigbee modules…

Or should I return the zigbee module and buy the wifi module - although I rather keep out any “cloud” services.

Thanks a lot and greetings

Bastian

Hi,
Did you do a modified custom converter for these?

Relative Humidity Cluster is only used for devices with the following ModelIdentifiers: “0x8040”, “0x8041” or “0x8042”.

The Ally integration does not report humidity for these.

No, I’m still using my Icon through Danfoss cloud using the Ally integration. I didn’t even know that the thermostats measure humidity as well.

Hi Robert,

Thanks for your contribution (also @David_Nagy :muscle: ). Have you ever received an update from Danfoss? I worked my way through this thread. And after I bought a Zigbee dongle and a 088U1130, I finaly came to this point :expressionless:

I also have a master-slave setup and only receive the first 8 thermostats. How did you solve it? Return the zigbee module and use Danfoss Ally? Just like @bastiansch I rather not use any cloud solution.

Thanx again,

Jefry

Hi Jefry,

A few months ago I informed again at Danfoss and the answer I got was that all development resources goes to the new ICON2 product. The issue will propably never fixed for the older ICON serie.

So I’ve checked if it should work flaweless in case I buy 2 new ICON2’s and guess what… They have the same issue on the new ICON2. So for now, only 1 master controller is supported. They couldn’t give me an estimate of time when they think it will be fixed.

A neighbour already went for an out of the box solution. He installed Zigbee climate sensors in the rooms and Zigbee switches at the master controllers. Now he is swithing the heater-on via the Zigbee switch in stead of the master controller. In fact, a bypass…

That is very helpfull information! I’m going to return the Zigbee Module and try to implement the Ally. In my case It’s a brand new house with build in touch thermostats in all the rooms. A bypass feels like a big waste in my case.

Your answer saved me a lot of time :slight_smile: