Zigbee herman converter - Danfoss Icon Floor Heating

yes either this or that. since there is only one app rj45 socket. if you have an Danfoss Ally module, then there is some API connection that somebody made it

Okay, so not possible to integrate the Danfoss gateway itself, so it gets all devices connected to that?

Yes either this or that. if you have the Ally gateway then you should look into this:

1 Like

Pretty need, just what i seeked for. Thanks a lot - works like a charm.
Have a pleasant evening

Looks very good.

I have a Danfoss Icon system with RF Sensors and some with Infrared. I use the App module, but it is really Limited what you can do. My floor heating is in concrete so I do know that it is Limited what you should do when it comes to setting up schedules etc.

But integrating it directly with Home Assistant - what’s not to like!??!!

Do you have a few screenshots from your UI of how the controller or the Room controller card looks like?

Just to confirm once again, I need to buy the Danfoss ZigBee module and then remove the App Module. But I assume I can do the same based on rules from Home Assistant as if I used the App module.

I created the Zigbee converter in order to be completely off cloud solution, but you can use with the App module with the above mentioned repo(As I remember it relies on cloud polling). About the z2m integration:
There are some updates I am planning to do during the summer. Fixing the state not only showing heat but heat or off, and setting the allowed max temperature back to the factory values.
Here are some pics.:

2 Likes

But if I remove the App module and buy the Danfoss Zigbee Module - then I would be able to connect that with Zigbee2MQTT right and poll all the information from my Thermostats?

1 Like

Yes, it will. that is the point :slight_smile:

1 Like

Hi. Nice job.
I have any problems :slight_smile:
1. Some thermostats disconnect.
This takes about 20 seconds: Link
And this occurs every 18 hours and 10 seconds: Link
After disconnection setpoint_change_source_lx change from externally to manual. https://prnt.sc/vMxNNRyUGafG

2. Scheduler. Danfoss controller has algorithms (scenario) depending on the heating inertions (Slow, medium, fast)
To make them work properly, sheduller tasks must be transferred to the controller and setpoint_change_source_lx must have: "schedule".
3. I have error in log:
https://prnt.sc/Ya73z0UnXNFx
Could it be because connected only l1, l2, l3, l4 channels, and other is free?
4. Thermostat with IR ( 088U1082) works normally?
Maybe there are some ideas

Hi. Nice job.
I have any problems :slight_smile:
1. Some thermostats disconnect.
This takes about 20 seconds: Link
I don’t really know why those this happens, I have no issues with connectivity. Occasionally I have the issue that I am getting -273.3333 Celsius, but I received the latest OTA file from Danfoss, I will check if that will solves it.
And this occurs every 18 hours and 10 seconds: Link
After disconnection setpoint_change_source_lx change from externally to manual. https://prnt.sc/vMxNNRyUGafG
Same as above I have no idea. If you want to have an investigation, reach out to me on github.
2. Scheduler. Danfoss controller has algorithms (scenario) depending on the heating inertions (Slow, medium, fast)
To make them work properly, sheduller tasks must be transferred to the controller and setpoint_change_source_lx must have: "schedule".
I meant to do this, but it is hard to implement, due to the limitation on z2m. Again if you wanna help me, we can figure out together.
3. I have error in log:
https://prnt.sc/Ya73z0UnXNFx
Could it be because connected only l1, l2, l3, l4 channels, and other is free?
it would be wise to see what MQTT messages you get, so enable the debug logging on the Matt component
4. Thermostat with IR ( 088U1082) works normally?
I don’t have thermostat with IR, and some of the endpoint not implemented, regarding to that.
Maybe there are some ideas

1 Like

I have an easy dummy question: I want to upgrade my Danfoss Master Controller to the ICON model with a Zigbee module. I already have HA temperature sensors in all rooms. For cost-saving reasons, I would avoid buying Danfoss thermostats for each room. Can I use my existing HA sensors to pilot the Danfoss Control directly through Home Assistant automation ? Thanks for your answer.

Hi @SwissLB, I think it is not possible in a plug an play way. If you want to do this way, you need to customise the repo from Z2M and somehow parse your temp values into Z2M to fake some thermostat. So in a long run I think it is not feasible.

1 Like

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.