Homekit Devices unavailable after Home Assistant was updated - Homekit Controller

Hi everyone,
I’m running Home Assistant 0.103.6 in Hassio HassOS V3.7.

I have 2 Homekit devices that I add during the onboarding process using Homekit Controller.

  • Leviton Homekit Dimmer
  • iHome iSP6X SmartPlug

Both device are connected to my Wifi router and configured with reserved IP addresses in the router.

Those devices has been working great from Home Assistant 0.100.2 to 0.103.5.

After my update of Home Assistant to 0.103.6 this morning they were unavailable.

Log data was showing strange messages pointing to an invalid ip address.
Log sample:

2020-01-11 21:55:24 INFO (Thread-4) [pyhap.hap_server] Got connection with ('192.168.100.101', 49409).
2020-01-11 21:55:24 DEBUG (Thread-5) [pyhap.hap_server] Request POST from address '('192.168.100.101', 49409)' for path '/pair-verify'.
2020-01-11 21:55:24 DEBUG (Thread-5) [pyhap.hap_server] Pair verify [1/2].
2020-01-11 21:55:24 INFO (Thread-5) [pyhap.hap_server] 192.168.100.101 - "POST /pair-verify HTTP/1.1" 200 -
2020-01-11 21:55:24 DEBUG (Thread-5) [pyhap.hap_server] Request POST from address '('192.168.100.101', 49409)' for path '/pair-verify'.
2020-01-11 21:55:24 DEBUG (Thread-5) [pyhap.hap_server] Pair verify [2/2]
2020-01-11 21:55:24 DEBUG (Thread-5) [pyhap.hap_server] Pair verify with client '('192.168.100.101', 49409)' completed. Switching to encrypted transport.
2020-01-11 21:55:24 INFO (Thread-5) [pyhap.hap_server] 192.168.100.101 - "POST /pair-verify HTTP/1.1" 200 -
2020-01-11 21:55:24 DEBUG (Thread-5) [pyhap.hap_server] Request GET from address '('192.168.100.101', 49409)' for path '/accessories'.
2020-01-11 21:55:24 INFO (Thread-5) [pyhap.hap_server] 192.168.100.101 - "GET /accessories HTTP/1.1" 200 -
2020-01-11 21:55:24 DEBUG (SyncWorker_0) [pyhap.accessory_driver] Starting accessory.

The devices respond to PING command with the correct address.
They are display in my router ‘attached devices list’ correctly.

I’m trying to understand how to get the device responsive again and why the log show invalid Ip addresses for an accessory.

This is my first Topic since I started using HA last year and I really like it.


Thanks

Hi again everyone,

After looking for hours, I found a solution right after posting this Topic.

The file core.config_entries contain the ip addresses of the homekit devices.

I found in the file the DHCP Ip Addresses save during onboarding process for my device before the router contains any reserve Ip Adresses.

If you manually change the Ip Address in the file for the value used by the devices, the devices will start getting updated again in Home Assistant.

How to do it:
Always backup / snapshot your Home Assistant before testing any procedure

  1. Maybe it’s better to stop Home Assistant before proceeding further. But it works for me when HA was running.
  2. With Samba open the file core.config_entries in the storage folder : config\.storage\core.config_entries
  3. Find the devices that are group under "domain": "homekit_controller"
  4. Locate the Ip address just above the domain,
  5. Change the Ip address by the correct value
  6. Go to the next device and repeat the step 4.
  7. Save the file
  8. Restart / start HA.
    Be careful to not remove any quote in the file.

Sample of the data that need to be edited in the file core.config_entries

            {
                "connection_class": "local_poll",
                "data": {
                    "AccessoryIP": "192.168.100.15", #replace "192.168.100.101"
                    "AccessoryLTPK": "[REDACTED]",
                    "AccessoryPairingID": "[REDACTED]",
                    "AccessoryPort": 80,
                    "Connection": "IP",
                    "iOSDeviceLTPK": "[REDACTED]",
                    "iOSDeviceLTSK": "[REDACTED]",
                    "iOSPairingId": "[REDACTED]"
                },
                "domain": "homekit_controller",
                "entry_id": "[REDACTED]",
                "options": {},
                "source": "zeroconf",
                "system_options": {
                    "disable_new_entities": false
                },
                "title": "iHome SmartPlug-",
                "version": 1
            },

Note : The addresses display above are fake one used for example.

Thanks

2 Likes

I just changed the IP address of my Ecobee thermostat and was trying to figure out how to change it in home assistant.

It didn’t show up at first, but after about 5 minutes it was automatically detected by home assistant, and I didn’t have to change any settings at all.

Using home-assistant version 2024.4.0, frontend (web UI) 20240403.1 in docker.