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: