home-assistant / core

:house_with_garden: Open source home automation that puts local control and privacy first.
https://www.home-assistant.io
Apache License 2.0
74.21k stars 31.16k forks source link

Problem with HomeKit Device truncating Radiator serial numbers and being unable to uniquely identify devices. #132291

Open drcjb opened 7 hours ago

drcjb commented 7 hours ago

The problem

I have been successfully using HA with the HomeKit Device to control 5 radiators which use the Muller Intuitiv wifi control system, this has worked really well with HA via the HomeKit Device integration. Last week I decided to add 3 more radiators to my heating system, mainly to get temperature readings from throughout our home. The first radiator I tried to add did not seem to work properly so I investigated and found that the new radiator had a serial number (this is used by HA to create a unique id) 00:00:00:00:02:01:0f:de, the other radiator in the lounge has a sn of 00:00:00:00:02:01:0f:db, so the two numbers differ only by the last chacter. HA displays the device sn as Serial number: mrdb0f0102 for the later so the digit pairs are reversed and the sn for the other radiator is Serial number: mrde0f0102. So HA has the full serial numbers, however when HA does the integration (and I have done it several times is uses 02010FD as the unique code for both radiators! It does add a "_2" to the radiator I am trying to add to my network but the radiator seems to have a mind of its own, something keeps setting it to 19degC heat mode when I try to force it to 14degC. I have no automations for this radiator!

Please could someone look at this truncation issue, I'm sure if the two serial numbers where really unique everything would work properly. All my remaining radiators have serial numbers that are unique even with the missing last character. See photo of adding all radiators from scratch.

2024-12-04_19-22-14 radiator integration

All of the radiator names in the above screen shot have the last character or their serial number missing.

I turned on debug mode fro the HomeKit Device integrtion before reinstalling the radiators and found this in the log:

`Logger: aiohomekit.utils Source: /usr/local/lib/python3.12/site-packages/aiohomekit/utils.py:45 First occurred: 19:12:27 (1 occurrences) Last logged: 19:12:27

Failure running background task: Task-82892 Traceback (most recent call last): File "/usr/local/lib/python3.12/site-packages/aiohomekit/utils.py", line 40, in _handle_task_result task.result() File "/usr/local/lib/python3.12/site-packages/aiohomekit/controller/ip/connection.py", line 653, in _reconnect return await self._connect_once() ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/aiohomekit/controller/ip/connection.py", line 761, in _connect_once request, expected = state_machine.send(response) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/aiohomekit/protocol/init.py", line 596, in get_session_keys handle_state_step(response_tlv, TLV.M4) File "/usr/local/lib/python3.12/site-packages/aiohomekit/protocol/init.py", line 90, in handle_state_step error_handler(tlv_dict[TLV.kTLVType_Error], f"step {expected_state}") File "/usr/local/lib/python3.12/site-packages/aiohomekit/protocol/init.py", line 64, in error_handler raise AuthenticationError(stage) aiohomekit.exceptions.AuthenticationError: step bytearray(b'\x04')`

I hope this is all clear?

Many thanks - Colin

What version of Home Assistant Core has the issue?

2024.11.3

What was the last working version of Home Assistant Core?

2024.11.3

What type of installation are you running?

Home Assistant OS

Integration causing the issue

HomeKit Device

Link to integration documentation on our website

https://www.home-assistant.io/integrations/homekit_controller/

Diagnostics information

home-assistant.log

Example YAML snippet

No response

Anything in the logs that might be useful for us?

See above.

Additional information

No response

home-assistant[bot] commented 7 hours ago

Hey there @jc2k, @bdraco, mind taking a look at this issue as it has been labeled with an integration (homekit_controller) you are listed as a code owner for? Thanks!

Code owner commands Code owners of `homekit_controller` can trigger bot actions by commenting: - `@home-assistant close` Closes the issue. - `@home-assistant rename Awesome new title` Renames the issue. - `@home-assistant reopen` Reopen the issue. - `@home-assistant unassign homekit_controller` Removes the current integration label and assignees on the issue, add the integration domain after the command. - `@home-assistant add-label needs-more-information` Add a label (needs-more-information, problem in dependency, problem in custom component) to the issue. - `@home-assistant remove-label needs-more-information` Remove a label (needs-more-information, problem in dependency, problem in custom component) on the issue.

(message by CodeOwnersMention)


homekit_controller documentation homekit_controller source (message by IssueLinks)

Jc2k commented 7 hours ago

Can you attach the diagnostic download for a couple of devices. Thanks.

bdraco commented 7 hours ago

https://www.home-assistant.io/docs/configuration/troubleshooting/#download-diagnostics

drcjb commented 6 hours ago

Sent by mail.

drcjb commented 3 hours ago

Just out of curiosity I had a look in the .JSON file I sent and noticed that for each radiator there is the following:

            "format": "string",
            "value": "**REDACTED**",
            "description": "Serial Number",

Is there any way I can find out what te REDACTED serial number is?

Many thanks - Colin