Zigbee integration of Danfoss Icon2 Main Controller

Hi,

I have just added one of our Danfoss Icon2 Main Controller to HA with Zigbee/ZHA.
It has identified most of the controls and sensors as expected, but some isn’t working as expected.
“HVAC Action” it can’t figure out how to handle, and the “Temperature”-sensor is a “little” lower than the actual temperature in the house. :slight_smile:

Could it be because the device isn’t identified correct? Danfoss Icon are some years old, but the “Icon2” is released last summer (to my knowledge).
Anyone having any idea how to solve this problem?

Br,
Anders

Submit a device support request to the ZHA Device Handlers (a.k.a. ZHA-quirks) repo if an issue for that device not already exist, see here → https://www.home-assistant.io/integrations/zha#how-to-add-support-for-new-and-unsupported-devices

Thank you for the link - didn’t notice that part of the ZHA ( might need to find some glasses… :smiley: )

Finally I got back to this issue.
I have now tried to do some debugging, and are now having some more log-entries.

What I’m missing is the state of the floor heating of it’s on or not.
It doesn’t seems like HA / ZHA can read the right info from the heating system.
I have found the following in the log:

2024-04-07 19:24:26.134 DEBUG (MainThread) [bellows.ezsp.protocol] Application frame received incomingMessageHandler: [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=513, sourceEndpoint=4, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_RETRY|APS_OPTION_ENABLE_ROUTE_DISCOVERY: 320>, groupId=0, sequence=195), 148, -63, 0xf190, 255, 255, b'\x0cF\x12.\n\x10A0\x01']
2024-04-07 19:24:26.134 DEBUG (MainThread) [bellows.ezsp.protocol] Frame contains trailing data: b'\x02'
2024-04-07 19:24:26.134 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=513, sourceEndpoint=4, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_RETRY|APS_OPTION_ENABLE_ROUTE_DISCOVERY: 320>, groupId=0, sequence=195), 148, -63, 0xf190, 255, 255, b'\x0cF\x12.\n\x10A0\x01']
2024-04-07 19:24:26.134 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(timestamp=datetime.datetime(2024, 4, 7, 19, 24, 26, 134386, tzinfo=datetime.timezone.utc), src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0xF190), src_ep=4, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=195, profile_id=260, cluster_id=513, data=Serialized[b'\x0cF\x12.\n\x10A0\x01'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=148, rssi=-63)
2024-04-07 19:24:26.134 DEBUG (MainThread) [zigpy.zcl] [0xF190:4:0x0201] Received ZCL frame: b'\x0cF\x12.\n\x10A0\x01'
2024-04-07 19:24:26.135 DEBUG (MainThread) [zigpy.zcl] [0xF190:4:0x0201] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl<0x0C>(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=True, direction=<Direction.Server_to_Client: 1>, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True), manufacturer=4678, tsn=46, command_id=10, *direction=<Direction.Server_to_Client: 1>)
2024-04-07 19:24:26.135 DEBUG (MainThread) [zigpy.zcl] [0xF190:4:0x0201] Decoded ZCL frame: Thermostat:Report_Attributes(attribute_reports=[Attribute(attrid=0x4110, value=TypeValue(type=enum8, value=<enum8.undefined_0x01: 1>))])
2024-04-07 19:24:26.135 DEBUG (MainThread) [zigpy.zcl] [0xF190:4:0x0201] Received command 0x0A (TSN 46): Report_Attributes(attribute_reports=[Attribute(attrid=0x4110, value=TypeValue(type=enum8, value=<enum8.undefined_0x01: 1>))])
2024-04-07 19:24:26.135 DEBUG (MainThread) [zigpy.zcl] [0xF190:4:0x0201] Attribute report received: 0x4110=<enum8.undefined_0x01: 1>
2024-04-07 19:24:26.135 DEBUG (MainThread) [homeassistant.components.zha.core.cluster_handlers] [0xF190:4:0x0201]: Attribute report 'Thermostat'[16656] = enum8.undefined_0x01
2024-04-07 19:24:26.136 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.danfoss_icon2_thermostat_4: Attribute '16656' = enum8.undefined_0x01 update
2024-04-07 19:24:26.137 DEBUG (MainThread) [zigpy.zcl] [0xF190:4:0x0201] Sending reply header: ZCLHeader(frame_control=FrameControl<0x10>(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=False, direction=<Direction.Client_to_Server: 0>, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=46, command_id=<GeneralCommand.Default_Response: 11>, *direction=<Direction.Client_to_Server: 0>)
2024-04-07 19:24:26.137 DEBUG (MainThread) [zigpy.zcl] [0xF190:4:0x0201] Sending reply: Default_Response(command_id=10, status=<Status.SUCCESS: 0>)
2024-04-07 19:24:26.137 DEBUG (MainThread) [bellows.zigbee.application] Sending packet ZigbeePacket(timestamp=datetime.datetime(2024, 4, 7, 19, 24, 26, 137527, tzinfo=datetime.timezone.utc), src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), src_ep=4, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0xF190), dst_ep=4, source_route=None, extended_timeout=False, tsn=46, profile_id=260, cluster_id=513, data=Serialized[b'\x10.\x0b\n\x00'], tx_options=<TransmitOptions.ACK: 1>, radius=0, non_member_radius=0, lqi=None, rssi=None)
2024-04-07 19:24:26.137 DEBUG (MainThread) [bellows.ezsp.protocol] Send command sendUnicast: (<EmberOutgoingMessageType.OUTGOING_DIRECT: 0>, 0xf190, EmberApsFrame(profileId=260, clusterId=513, sourceEndpoint=4, destinationEndpoint=4, options=<EmberApsOption.APS_OPTION_RETRY|APS_OPTION_ENABLE_ROUTE_DISCOVERY: 320>, groupId=0, sequence=46), 248, b'\x10.\x0b\n\x00')

Can anyone help me on from here. Should some quirking be done, or is there something there should be reported as “missing functionality”? I would of cause prefer to have it solved correctly, and also so other can make use of the solution, and not only me. I do expect other than me are using this product. :slight_smile:

I’ve just purchased and installed the Icon 2 system, and was able to link it to HA through Z2M. For the most part it works well. For each room I have in the Icon, I now have Climate Controls. I also have extra sensors that have been exposed. The only issue I’ve run into is that the only HVAC action is heat, while my icon is setup for cooling as well.

Hello. How did you manage to integrate the Icon2 Controller? I, indeed, successfully integrated I2 Controller into z2m (it appears on the z2m UI). However, when I try to create a frontend tile using the provided climate entities, it says “unknown”. Anyone has an idea what the problem is?

Gents, How did you add the controller, how do you get the controller into join mode for zigbee?

Regards, Fantic.

WWell I found a Github entry that was helpfull. The OK button on the Icon2 MC puts the controller into Zigbee joining mode. just FYI:
“On the Icon2 controller the right (OK) button works as a Zigbee pairing button.
If the left button is pressed so the light goes from Blinking-Steady-Blinking, the device is removed from network, so no factory reset needed. This needs to be done for endpoints to be updated (if sensors have been added after the ZB pairing).”

Hello,

is anybody of you using ICON2 master unit together with one or more slave units?

Hello, I am considering Icon2 system for my house and would like to ask few questions of how it works with HA.

  1. Is it possible to use it in local mode only with zigbee integration without the need to connect it to internet?
  2. Is the integration working without major issues?
  3. Was anyone able to get the cooling mode working with HA
  4. Would you recommend this system as a whole?

Thank you