HKLS Troubleshooting on OS 26.4

A plugin to integration Indigo devices into HomeKit (and Siri)
onlyjaymoo
Posts: 24
Joined: Fri Nov 25, 2011 4:07 pm

HKLS Troubleshooting on OS 26.4

Post by onlyjaymoo »

Opening a new thread to see if I'm trying the right things:

My HKLS hasn't been working since my Indigo server (2025.1) updated to macOS 26.4 and my HomeKit hubs (AppleTV, HomePod Minis) all upgraded to 26.4 as well.

Prior to that, I had been using the betas and also wrote the thread on the workaround for tvOS 26.4 betas to switch to using 26.3 HomePod minis in case there was some kind of regression bug that cause tvOS 26.4 beta to break HKLS.

I found through troubleshooting that mDNS had stopped advertising HomeKitLink Bridge. When I restart the HKLS plugin, the advertisement comes back. But when I go to the Home app, something causes mDNS to issue a Rmv and the advertisement goes away.

I wrote GlennNZ directly and he said that everything on his end is working with OS 26.4 and 26.5 beta, so I thought maybe I have a corrupted HKLS bridge somehow. So I've already done the following:

1) remove the existing Bridge from the Home
2) Reset Accessory/Bridge on the Plugin
3) try to re-add the Accessory using the new QR code generated

-- when I try to add the Accessory, at some point in that process after I click "Add to Home", there is an Rmv that kills the advertisement on mDNS (is that because the plugin died?)

After doing that a couple of times, I decided to:

4) add a new Bridge
5) transfer the accessories from the old Bridge to the new Bridge
6) delete the old Bridge
7) restart everything and see the new Bridge advertised

... again, when I add the Bridge Accessory to Home, there is an Rmv that kills the advertisement

8) I tried creating a new Bridge when no accessories, with the plan to only add one device to it
9) I unchecked the "publish device" checkbox on one simple light switch and saved on the old bridge, but that didn't cause it to be visible/addable to the new bridge, so I'm unsure on how to achieve my plan in #8
10) I got stuck here with anything new to try....

Here's the screenshot of the mDNS advertisement showing up and then the Rmv being issued. I'm not sure what is causing it, but it is consistently happening now with everything I've tried above. The plugin re/starts and the mDNS advertisement shows up, and then when I go to Home to add the Bridge Accessory via the QR code, during the adding process the Rmv causes the advertisement to go away and I have to restart the plugin for it to show up again. Note, the "Add to Home" never successfully completes.

Here's the screenshot of that:
Screenshot 2026-04-03 at 9.16.53 PM.png
Screenshot 2026-04-03 at 9.16.53 PM.png (299.65 KiB) Viewed 252 times
User avatar
GlennNZ
Posts: 1873
Joined: Sun Dec 07, 2014 3:33 pm
Location: Central Coast, Australia

HKLS Troubleshooting on OS 26.4

Post by GlennNZ »

Okay.

In your message you mention is the plugin Crashing? And plugin restarts? Shouldn’t restart?

Edit:
Re-reading your messages and this thread - you mention in passing that the plugin restarts?? (after the QR code and adding the bridge)
It should not do that.
That would cause the rmv.
I would be guessing that the issue here is the restarting - and finding the why would be the best fix!
————-

Possible the bridge is - which is why the remove appears - also possible that is normal behaviour because adding bridge is different and may change advetisement (I’m guessing - that is deep in library)

But if plugin is crashed hat should be logged.

Post the plugin Menu - logging for Forum posting output

(you copy all your old devices across if one of those now failing and bringing down the bridge would happen here)

And

Not quite following the - uncheck a publish device - that will remove it from the bridge.
Okay - And then you are trying to add to new bridge? Odd it’s not available then….

I would turn off the current bridges (click the disable indigo communication checkbox bottom left of the device screen)
Create a new bridge.
Add it to Home App. (Ignore the add remove as above)
Does it app and complete adding?
You can go into the Home App Settings and see Hubs - and see if there.
Add a device to it (one you haven’t used)
And see if it shows up…



Sent from my iPad using Tapatalk
onlyjaymoo
Posts: 24
Joined: Fri Nov 25, 2011 4:07 pm

Re: HKLS Troubleshooting on OS 26.4

Post by onlyjaymoo »

OK, I'll take it a step at a time as to not add noise:

As suggested, I disabled the current Bridge (by unchecking the communicate with Indigo box), and created a new, empty Bridge (no devices activated on it).
I enabled DEBUG logging and this was the output:

Apr 4, 2026 at 4:53:26 PM
HomeKitLink Siri ============================================================================== Bridges ==============================================================================

Apr 4, 2026 at 4:53:48 PM
HomeKitLink Siri Set Logging to DEBUG
HomeKitLink Siri Debug (plugin.py:deviceStartComm:516): HKLS Test Bridge: Starting homeKitBridgeDevice Device 194912807
HomeKitLink Siri Debug (plugin.py:deviceStartComm:520): checkid = 186124 and self.deviceBridgeNumber = []
HomeKitLink Siri Debug (plugin.py:deviceStartComm:536): Starting HKLS Test Bridge HomeKitLink Bridge with Unique Bridge ID 186124
HomeKitLink Siri Debug (plugin.py:create_deviceList_internal:777): create Device List Internal called
HomeKitLink Siri Debug (plugin.py:startsingleBridge:1315): Attempting to start a single Bridge: Bridge HKLS Test Bridge and ID 186124
HomeKitLink Siri Debug (plugin.py:startsingleBridge:1322): Next Port available:51826
HomeKitLink Siri Debug (plugin.py:startsingleBridge:1326):
mDNS: Starting Driver listen_address=self.HAPServeripaddress=None && advertised_address=self.HAPAdvertised_ipaddress=None
HomeKitLink Siri Debug (plugin.py:startsingleBridge:1333): Sets of Ports Currently in Use: {51826}
HomeKitLink Siri Debug (plugin.py:get_bridge_multiple:883): get_bridge_multiple called and self.device_list_internal length 0
HomeKitLink Siri Debug (plugin.py:startsingleBridge:1340): Bridge 186124 Setup and Running.
HomeKitLink Siri Starting accessory HomeKitLink Bridge 186124 with advertised addresses ['192.168.1.3'] with port 51826.

Apr 4, 2026 at 4:58:31 PM
HomeKitLink Siri ============================================================================== Bridges ==============================================================================
HomeKitLink Siri Bridge 186124 :


The output of the mDNS advertising was as follows:

unifi:~ jaymoo$ dns-sd -B _hap._tcp
Browsing for _hap._tcp
DATE: ---Sat 04 Apr 2026---
16:55:14.533 ...STARTING...
Timestamp A/R Flags if Domain Service Type Instance Name
16:55:14.534 Add 3 6 local. _hap._tcp. Thermostat
16:55:14.534 Add 3 6 local. _hap._tcp. LG webOS TV B98A
16:55:14.534 Add 3 6 local. _hap._tcp. HomePodSensor 916360
16:55:14.534 Add 3 6 local. _hap._tcp. HomePodSensor 95350
16:55:14.534 Add 3 6 local. _hap._tcp. MSL120-1b04
16:55:14.534 Add 3 6 local. _hap._tcp. Wemo Plug 901
16:55:14.534 Add 3 6 local. _hap._tcp. MSL120-2142
16:55:14.534 Add 2 1 local. _hap._tcp. HomeKitLink Bridge 186124 3BF073
16:56:11.621 Rmv 0 1 local. _hap._tcp. HomeKitLink Bridge 186124 3BF073


That is the totality of the output from the DEBUG setting in the Event Log. Is there another flag I need to enable to show more information?
As you can see by the timestamps, the bonjour advertisement existed until the Rmv. When the Rmv event occurred, there was no additional logging that happened in the Event Log. Indigo still thinks the Plugin is working (shown as operational) but no longer advertised in bonjour.

I noticed today that the Rmv will come out within a couple of minutes of starting the Plugin, even if I don't try to add the Bridge.

Ready to try more debugging steps!
User avatar
GlennNZ
Posts: 1873
Joined: Sun Dec 07, 2014 3:33 pm
Location: Central Coast, Australia

HKLS Troubleshooting on OS 26.4

Post by GlennNZ »

Thanks

Post the output from the Plugin menu - Go to Plugin, select HLKS - see Menu - logging for Forum posting. Start here.

Put the post in code blocks - so can be read more easily

Glenn
User avatar
GlennNZ
Posts: 1873
Joined: Sun Dec 07, 2014 3:33 pm
Location: Central Coast, Australia

HKLS Troubleshooting on OS 26.4

Post by GlennNZ »

Plus

Given issue is mdns and no plugin crashes or restarts.(?)

Probably need to turn on HomeKit library debugging - the verbose one - but also check all the other boxes and restart plugin.

Check the file log - and attach here (will be large) use a file attachment - zip it first.

Hopefully should log something about rmv dDNS - may even be obvious


Sent from my iPhone using Tapatalk
onlyjaymoo
Posts: 24
Joined: Fri Nov 25, 2011 4:07 pm

Re: HKLS Troubleshooting on OS 26.4

Post by onlyjaymoo »

Finally found what you were referring to, I apologize for not asking for additional clarification. Here is the "Support Information for Forum Posting" output:

Code: Select all

Apr 4, 2026 at 5:48:20 PM
   HomeKitLink Siri Debug          (plugin.py:logging_issues:4258): Log any issues called...
   HomeKitLink Siri                ==============================================================================================================================================================================================
   HomeKitLink Siri                ==================================================================================== Logging info follows ====================================================================================
   HomeKitLink Siri                ==============================================================================================================================================================================================
   HomeKitLink Siri                ================================================ Initializing New Plugin Session =================================================
   HomeKitLink Siri                Plugin name:                   HomeKitLink Siri
   HomeKitLink Siri                Plugin version:                0.6.75
   HomeKitLink Siri                Plugin ID:                     com.GlennNZ.indigoplugin.HomeKitLink-Siri
   HomeKitLink Siri                Plugin Path:                   /Library/Application Support/Perceptive Automation/Indigo 2025.1/Plugins/HomeKitLink-Siri.indigoPlugin/Contents/Server Plugin
   HomeKitLink Siri                Indigo version:                2025.1.0
   HomeKitLink Siri                Silicon version:               arm64
   HomeKitLink Siri                Python version:                3.11.6 (v3.11.6:8b6ee5ba3b, Oct  2 2023, 11:18:21) [Clang 13.0.0 (clang-1300.0.29.30)]
   HomeKitLink Siri                Python Directory:              /Library/Frameworks/Python.framework/Versions/3.11
   HomeKitLink Siri                FFmpeg :                       /Library/Application Support/Perceptive Automation/Indigo 2025.1/Plugins/HomeKitLink-Siri.indigoPlugin/Contents/Packages/homekitlink_ffmpeg/ffmpeg_binaries/arm/ffmpeg
   HomeKitLink Siri                
   HomeKitLink Siri                ================================================== Contents of Library Install: ==================================================
   HomeKitLink Siri                Contents of 'pip-install-log-success.txt':
Collecting cryptography==41.0.7 (from -r /Library/Application Support/Perceptive Automation/Indigo 2025.1/Plugins/HomeKitLink-Siri.indigoPlugin/Contents/Server Plugin/requirements.txt (line 1))
  Using cached cryptography-41.0.7-cp37-abi3-macosx_10_12_universal2.whl.metadata (5.2 kB)
Collecting homekitlink_ffmpeg (from -r /Library/Application Support/Perceptive Automation/Indigo 2025.1/Plugins/HomeKitLink-Siri.indigoPlugin/Contents/Server Plugin/requirements.txt (line 2))
  Using cached homekitlink_ffmpeg-0.0.25-py3-none-any.whl.metadata (2.8 kB)
Collecting orjson==3.8.10 (from -r /Library/Application Support/Perceptive Automation/Indigo 2025.1/Plugins/HomeKitLink-Siri.indigoPlugin/Contents/Server Plugin/requirements.txt (line 3))
  Downloading orjson-3.8.10-cp311-cp311-macosx_11_0_x86_64.macosx_11_0_arm64.macosx_11_0_universal2.whl.metadata (47 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 47.8/47.8 kB 3.8 MB/s eta 0:00:00
Collecting async_timeout==4.0.3 (from -r /Library/Application Support/Perceptive Automation/Indigo 2025.1/Plugins/HomeKitLink-Siri.indigoPlugin/Contents/Server Plugin/requirements.txt (line 4))
  Using cached async_timeout-4.0.3-py3-none-any.whl.metadata (4.2 kB)
Collecting aiofiles==23.2.1 (from -r /Library/Application Support/Perceptive Automation/Indigo 2025.1/Plugins/HomeKitLink-Siri.indigoPlugin/Contents/Server Plugin/requirements.txt (line 5))
  Using cached aiofiles-23.2.1-py3-none-any.whl.metadata (9.7 kB)
Collecting tlv8==0.10.0 (from -r /Library/Application Support/Perceptive Automation/Indigo 2025.1/Plugins/HomeKitLink-Siri.indigoPlugin/Contents/Server Plugin/requirements.txt (line 6))
  Using cached tlv8-0.10.0-py3-none-any.whl
Collecting base36==0.1.1 (from -r /Library/Application Support/Perceptive Automation/Indigo 2025.1/Plugins/HomeKitLink-Siri.indigoPlugin/Contents/Server Plugin/requirements.txt (line 7))
  Downloading base36-0.1.1-py2.py3-none-any.whl.metadata (2.0 kB)
Collecting pyqrcode==1.2.1 (from -r /Library/Application Support/Perceptive Automation/Indigo 2025.1/Plugins/HomeKitLink-Siri.indigoPlugin/Contents/Server Plugin/requirements.txt (line 8))
  Using cached PyQRCode-1.2.1-py3-none-any.whl
Collecting slugify==0.0.1 (from -r /Library/Application Support/Perceptive Automation/Indigo 2025.1/Plugins/HomeKitLink-Siri.indigoPlugin/Contents/Server Plugin/requirements.txt (line 9))
  Using cached slugify-0.0.1-py3-none-any.whl
Collecting pypng==0.20220715.0 (from -r /Library/Application Support/Perceptive Automation/Indigo 2025.1/Plugins/HomeKitLink-Siri.indigoPlugin/Contents/Server Plugin/requirements.txt (line 10))
  Downloading pypng-0.20220715.0-py3-none-any.whl.metadata (13 kB)
Collecting h11==0.14.0 (from -r /Library/Application Support/Perceptive Automation/Indigo 2025.1/Plugins/HomeKitLink-Siri.indigoPlugin/Contents/Server Plugin/requirements.txt (line 11))
  Downloading h11-0.14.0-py3-none-any.whl.metadata (8.2 kB)
Collecting zeroconf==0.131.0 (from -r /Library/Application Support/Perceptive Automation/Indigo 2025.1/Plugins/HomeKitLink-Siri.indigoPlugin/Contents/Server Plugin/requirements.txt (line 12))
  Using cached zeroconf-0.131.0-cp311-cp311-macosx_14_0_arm64.whl
Collecting chacha20poly1305-reuseable==0.12.0 (from -r /Library/Application Support/Perceptive Automation/Indigo 2025.1/Plugins/HomeKitLink-Siri.indigoPlugin/Contents/Server Plugin/requirements.txt (line 13))
  Using cached chacha20poly1305_reuseable-0.12.0-cp311-cp311-macosx_14_0_arm64.whl
Collecting cffi>=1.12 (from cryptography==41.0.7->-r /Library/Application Support/Perceptive Automation/Indigo 2025.1/Plugins/HomeKitLink-Siri.indigoPlugin/Contents/Server Plugin/requirements.txt (line 1))
  Downloading cffi-2.0.0-cp311-cp311-macosx_11_0_arm64.whl.metadata (2.6 kB)
Collecting ifaddr>=0.1.7 (from zeroconf==0.131.0->-r /Library/Application Support/Perceptive Automation/Indigo 2025.1/Plugins/HomeKitLink-Siri.indigoPlugin/Contents/Server Plugin/requirements.txt (line 12))
  Downloading ifaddr-0.2.0-py3-none-any.whl.metadata (4.9 kB)
Collecting pycparser (from cffi>=1.12->cryptography==41.0.7->-r /Library/Application Support/Perceptive Automation/Indigo 2025.1/Plugins/HomeKitLink-Siri.indigoPlugin/Contents/Server Plugin/requirements.txt (line 1))
  Downloading pycparser-2.23-py3-none-any.whl.metadata (993 bytes)
Using cached cryptography-41.0.7-cp37-abi3-macosx_10_12_universal2.whl (5.3 MB)
Using cached orjson-3.8.10-cp311-cp311-macosx_11_0_x86_64.macosx_11_0_arm64.macosx_11_0_universal2.whl (237 kB)
Using cached async_timeout-4.0.3-py3-none-any.whl (5.7 kB)
Using cached aiofiles-23.2.1-py3-none-any.whl (15 kB)
Using cached base36-0.1.1-py2.py3-none-any.whl (3.5 kB)
Using cached pypng-0.20220715.0-py3-none-any.whl (58 kB)
Using cached h11-0.14.0-py3-none-any.whl (58 kB)
Using cached homekitlink_ffmpeg-0.0.25-py3-none-any.whl (45.1 MB)
Downloading cffi-2.0.0-cp311-cp311-macosx_11_0_arm64.whl (180 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 180.6/180.6 kB 14.1 MB/s eta 0:00:00
Using cached ifaddr-0.2.0-py3-none-any.whl (12 kB)
Downloading pycparser-2.23-py3-none-any.whl (118 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 118.1/118.1 kB 14.4 MB/s eta 0:00:00
Installing collected packages: tlv8, slugify, pyqrcode, pypng, ifaddr, base36, zeroconf, pycparser, orjson, homekitlink_ffmpeg, h11, async_timeout, aiofiles, cffi, cryptography, chacha20poly1305-reuseable
Successfully installed aiofiles-23.2.1 async_timeout-4.0.3 base36-0.1.1 cffi-2.0.0 chacha20poly1305-reuseable-0.12.0 cryptography-41.0.7 h11-0.14.0 homekitlink_ffmpeg-0.0.25 ifaddr-0.2.0 orjson-3.8.10 pycparser-2.23 pypng-0.20220715.0 pyqrcode-1.2.1 slugify-0.0.1 tlv8-0.10.0 zeroconf-0.131.0
   HomeKitLink Siri                ==============================================================================================================================================================================================
   HomeKitLink Siri                ================================================ Xcode Command Line Tools Check: =================================================
   HomeKitLink Siri                ✅ Xcode Command Line Tools are needed.  Checking that they are Installed
   HomeKitLink Siri                ✅ Xcode Command Line Tools are installed at: /Applications/Xcode.app/Contents/Developer
   HomeKitLink Siri                ==============================================================================================================================================================================================
   HomeKitLink Siri                ==============================================================================================================================================================================================
   HomeKitLink Siri                🔍🔍🔍 Checking Library dependencies, downloading and/or compiling in tempdirectory, without installing. 🔍🔍🔍
   HomeKitLink Siri                ✅ All dependencies listed in 'requirements.txt' are available for installation.
   HomeKitLink Siri                📝 Output:
Collecting cryptography==41.0.7 (from -r /Library/Application Support/Perceptive Automation/Indigo 2025.1/Plugins/HomeKitLink-Siri.indigoPlugin/Contents/Server Plugin/requirements.txt (line 1))
  Using cached cryptography-41.0.7-cp37-abi3-macosx_10_12_universal2.whl.metadata (5.2 kB)
Collecting homekitlink_ffmpeg (from -r /Library/Application Support/Perceptive Automation/Indigo 2025.1/Plugins/HomeKitLink-Siri.indigoPlugin/Contents/Server Plugin/requirements.txt (line 2))
  Downloading homekitlink_ffmpeg-0.0.30-py3-none-any.whl.metadata (2.9 kB)
Collecting orjson==3.8.10 (from -r /Library/Application Support/Perceptive Automation/Indigo 2025.1/Plugins/HomeKitLink-Siri.indigoPlugin/Contents/Server Plugin/requirements.txt (line 3))
  Using cached orjson-3.8.10-cp311-cp311-macosx_11_0_x86_64.macosx_11_0_arm64.macosx_11_0_universal2.whl.metadata (47 kB)
Collecting async_timeout==4.0.3 (from -r /Library/Application Support/Perceptive Automation/Indigo 2025.1/Plugins/HomeKitLink-Siri.indigoPlugin/Contents/Server Plugin/requirements.txt (line 4))
  Using cached async_timeout-4.0.3-py3-none-any.whl.metadata (4.2 kB)
Collecting aiofiles==23.2.1 (from -r /Library/Application Support/Perceptive Automation/Indigo 2025.1/Plugins/HomeKitLink-Siri.indigoPlugin/Contents/Server Plugin/requirements.txt (line 5))
  Using cached aiofiles-23.2.1-py3-none-any.whl.metadata (9.7 kB)
Collecting tlv8==0.10.0 (from -r /Library/Application Support/Perceptive Automation/Indigo 2025.1/Plugins/HomeKitLink-Siri.indigoPlugin/Contents/Server Plugin/requirements.txt (line 6))
  Using cached tlv8-0.10.0-py3-none-any.whl
Collecting base36==0.1.1 (from -r /Library/Application Support/Perceptive Automation/Indigo 2025.1/Plugins/HomeKitLink-Siri.indigoPlugin/Contents/Server Plugin/requirements.txt (line 7))
  Using cached base36-0.1.1-py2.py3-none-any.whl.metadata (2.0 kB)
Collecting pyqrcode==1.2.1 (from -r /Library/Application Support/Perceptive Automation/Indigo 2025.1/Plugins/HomeKitLink-Siri.indigoPlugin/Contents/Server Plugin/requirements.txt (line 8))
  Using cached PyQRCode-1.2.1-py3-none-any.whl
Collecting slugify==0.0.1 (from -r /Library/Application Support/Perceptive Automation/Indigo 2025.1/Plugins/HomeKitLink-Siri.indigoPlugin/Contents/Server Plugin/requirements.txt (line 9))
  Using cached slugify-0.0.1-py3-none-any.whl
Collecting pypng==0.20220715.0 (from -r /Library/Application Support/Perceptive Automation/Indigo 2025.1/Plugins/HomeKitLink-Siri.indigoPlugin/Contents/Server Plugin/requirements.txt (line 10))
  Using cached pypng-0.20220715.0-py3-none-any.whl.metadata (13 kB)
Collecting h11==0.14.0 (from -r /Library/Application Support/Perceptive Automation/Indigo 2025.1/Plugins/HomeKitLink-Siri.indigoPlugin/Contents/Server Plugin/requirements.txt (line 11))
  Using cached h11-0.14.0-py3-none-any.whl.metadata (8.2 kB)
Collecting zeroconf==0.131.0 (from -r /Library/Application Support/Perceptive Automation/Indigo 2025.1/Plugins/HomeKitLink-Siri.indigoPlugin/Contents/Server Plugin/requirements.txt (line 12))
  Using cached zeroconf-0.131.0-cp311-cp311-macosx_14_0_arm64.whl
Collecting chacha20poly1305-reuseable==0.12.0 (from -r /Library/Application Support/Perceptive Automation/Indigo 2025.1/Plugins/HomeKitLink-Siri.indigoPlugin/Contents/Server Plugin/requirements.txt (line 13))
  Using cached chacha20poly1305_reuseable-0.12.0-cp311-cp311-macosx_14_0_arm64.whl
Collecting cffi>=1.12 (from cryptography==41.0.7->-r /Library/Application Support/Perceptive Automation/Indigo 2025.1/Plugins/HomeKitLink-Siri.indigoPlugin/Contents/Server Plugin/requirements.txt (line 1))
  Using cached cffi-2.0.0-cp311-cp311-macosx_11_0_arm64.whl.metadata (2.6 kB)
Collecting ifaddr>=0.1.7 (from zeroconf==0.131.0->-r /Library/Application Support/Perceptive Automation/Indigo 2025.1/Plugins/HomeKitLink-Siri.indigoPlugin/Contents/Server Plugin/requirements.txt (line 12))
  Using cached ifaddr-0.2.0-py3-none-any.whl.metadata (4.9 kB)
Collecting pycparser (from cffi>=1.12->cryptography==41.0.7->-r /Library/Application Support/Perceptive Automation/Indigo 2025.1/Plugins/HomeKitLink-Siri.indigoPlugin/Contents/Server Plugin/requirements.txt (line 1))
  Downloading pycparser-3.0-py3-none-any.whl.metadata (8.2 kB)
Using cached cryptography-41.0.7-cp37-abi3-macosx_10_12_universal2.whl (5.3 MB)
Using cached orjson-3.8.10-cp311-cp311-macosx_11_0_x86_64.macosx_11_0_arm64.macosx_11_0_universal2.whl (237 kB)
Using cached async_timeout-4.0.3-py3-none-any.whl (5.7 kB)
Using cached aiofiles-23.2.1-py3-none-any.whl (15 kB)
Using cached base36-0.1.1-py2.py3-none-any.whl (3.5 kB)
Using cached pypng-0.20220715.0-py3-none-any.whl (58 kB)
Using cached h11-0.14.0-py3-none-any.whl (58 kB)
Downloading homekitlink_ffmpeg-0.0.30-py3-none-any.whl (90.3 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 90.3/90.3 MB 10.7 MB/s eta 0:00:00
Using cached cffi-2.0.0-cp311-cp311-macosx_11_0_arm64.whl (180 kB)
Using cached ifaddr-0.2.0-py3-none-any.whl (12 kB)
Downloading pycparser-3.0-py3-none-any.whl (48 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 48.2/48.2 kB 6.5 MB/s eta 0:00:00
Installing collected packages: tlv8, slugify, pyqrcode, pypng, ifaddr, base36, zeroconf, pycparser, orjson, homekitlink_ffmpeg, h11, async_timeout, aiofiles, cffi, cryptography, chacha20poly1305-reuseable
Successfully installed aiofiles-23.2.1 async_timeout-4.0.3 base36-0.1.1 cffi-2.0.0 chacha20poly1305-reuseable-0.12.0 cryptography-41.0.7 h11-0.14.0 homekitlink_ffmpeg-0.0.30 ifaddr-0.2.0 orjson-3.8.10 pycparser-3.0 pypng-0.20220715.0 pyqrcode-1.2.1 slugify-0.0.1 tlv8-0.10.0 zeroconf-0.131.0

   HomeKitLink Siri                ==============================================================================================================================================================================================
   HomeKitLink Siri                ======================================================= Advanced Settings: =======================================================
   HomeKitLink Siri                Selected IP version: IPVersion.All
   HomeKitLink Siri                Select interfaces: InterfaceChoice.All
   HomeKitLink Siri                HKLS Advertised Ip address: None
   HomeKitLink Siri                HKLS Server Ipaddress: None
   HomeKitLink Siri                HKLS Advertised Ipaddress and HKLS Server Ipaddress are None, which is acceptable. The server will decide the best option.
   HomeKitLink Siri Debug          (plugin.py:Menu_show_runningids:4445): Show Running Ids called...
   HomeKitLink Siri                ==============================================================================================================================================================================================
   HomeKitLink Siri                ========================================================================= Device Bridges enabled and up and Running ==========================================================================
   HomeKitLink Siri                ==============================================================================================================================================================================================
   HomeKitLink Siri                Bridge: 99                  : Indigo Id: 288611025            Name: dimmer - hallway                                   DeviceName:                                          Type:                     
   HomeKitLink Siri                ==============================================================================================================================================================================================
I find the Bridge 99 output interesting, not sure if that's indicative of anything but it was a very early bridge (years ago) that I thought was removed a long time ago. It doesn't exist anymore on the Indigo Devices list.

I'm also attaching the plugin.log file. I could not upload the zipped file, but it was only 157KB so it was under the max filesize.

I turned the logging to the highest level after looking at the first results after checking all the boxes. On the second restart after that I noticed a lot of "no route to host" messages on what looked like IPv6 addresses. Could those failures be the cause of the eventual Rmv? Do I need to set IPv4 only on the plugin?

I waited until the Rmv came out in the mDNS trace before I captured the log in case there was some event in there when the Rmv happened.
My internal network does not use IPv6 and my ISP does not support IPv6.
Attachments
plugin.log
(157.13 KiB) Downloaded 25 times
User avatar
GlennNZ
Posts: 1873
Joined: Sun Dec 07, 2014 3:33 pm
Location: Central Coast, Australia

HKLS Troubleshooting on OS 26.4

Post by GlennNZ »

Yeah -

Force - change to Ivp.iv4only
Won’t do any harm

There is a log line - which suggests IVP6Only has been selected?

Not sure that is an option I give - and not completely sure where it has come from.

At very least will quiet the log a bit.
Do that.
Restart.
And check dns again.
Update the log - and if could timestamp when mdns rmv that would be great.


Sent from my iPad using Tapatalk
User avatar
GlennNZ
Posts: 1873
Joined: Sun Dec 07, 2014 3:33 pm
Location: Central Coast, Australia

HKLS Troubleshooting on OS 26.4

Post by GlennNZ »

See below:

Key observations

dns-sd output - see the 6 versus 1 difference. Thats the kicker here.
(missed it before)

1. Interface 1 vs 6 Every other HAP device is on interface 6 (your main LAN interface). The HomeKitLink bridge is only on interface 1 — which is the loopback (lo0) interface. This matches exactly what we saw in the log — all the [Errno 65] No route to host errors on the real network interfaces, and only ::1 (loopback) succeeding.

2. The Rmv after ~57 seconds The SRV/A records in HAP have a 120 second TTL. The Rmv at ~57 seconds is happening at roughly half the TTL — this is exactly when mDNS is supposed to send a re-announcement to refresh the cache. Since the bridge can only reach loopback, the re-announcement fails to reach the mDNS multicast group on interface 1, the TTL countdown isn't reset, and the record expires and is removed.

What to try

The fix is to restrict zeroconf to IPv4 only and explicitly bind to 192.168.1.3. In the plugin's Advanced Settings, try:

IP Version: V4Only (instead of All)
Advertised IP address: 192.168.1.3
Server IP address: 192.168.1.3
This bypasses all the failing IPv6 sockets entirely and forces mDNS to use your working IPv4 interface directly. The log already shows the plugin supports these settings:


Sent from my iPad using Tapatalk
onlyjaymoo
Posts: 24
Joined: Fri Nov 25, 2011 4:07 pm

Re: HKLS Troubleshooting on OS 26.4

Post by onlyjaymoo »

OK, I see what you're seeing -- and thank you for the information on the mDNS "keep alive" timeout, that makes a lot of sense. So it is basically "auto-removing" itself because it's not receiving the keep-alive after 120s.

I changed to IPv4Only, and added 192.168.1.3 to both the advertisement field and the server IP field.

However, after saving and restarting, it didn't seem to make any difference, it is still trying to use IPv6. I even stop/start Indigo to see if that would make a difference.

I also explicitly turned off IPv6 on the Ethernet interface (using: networksetup -setv6off "Ethernet") just in case it was using some kind of auto-detection to determine if it should use IPv6. Here are the timestamps of the most recent attempts:

Code: Select all

Browsing for _hap._tcp
DATE: ---Sat 04 Apr 2026---
21:55:54.713  ...STARTING...
Timestamp     A/R    Flags  if Domain               Service Type         Instance Name
21:55:54.714  Add        3   6 local.               _hap._tcp.           HomePodSensor 95350
21:55:54.714  Add        3   6 local.               _hap._tcp.           Thermostat
21:55:54.714  Add        3   6 local.               _hap._tcp.           HomePodSensor 916360
21:55:54.714  Add        3   6 local.               _hap._tcp.           MSL120-1b04
21:55:54.714  Add        3   6 local.               _hap._tcp.           Wemo Plug 901
21:55:54.714  Add        2   6 local.               _hap._tcp.           MSL120-2142

21:56:03.078  Add        2   1 local.               _hap._tcp.           HomeKitLink Bridge 186124 3BF073
21:58:13.998  Rmv        0   1 local.               _hap._tcp.           HomeKitLink Bridge 186124 3BF073
Attached is the latest plugin.log, truncated to when the 21:56 HKLS restart happened after changing the settings above.

*Note: Despite the settings, I see that IPVersion.V6Only is still being used when zeroconf.new_socket is emitting its debug message.
Attachments
plugin.log
(92.5 KiB) Downloaded 16 times
User avatar
GlennNZ
Posts: 1873
Joined: Sun Dec 07, 2014 3:33 pm
Location: Central Coast, Australia

Re: HKLS Troubleshooting on OS 26.4

Post by GlennNZ »

The "does not support multicast, it is expected in WSL" message is not a WSL (Windows Subsystem for Linux) issue — it's a misleading log message from the zeroconf library. The real cause is that your Mac's network interface doesn't have multicast routing configured, which can happen when:

The network interface has restrictive firewall rules blocking mDNS (UDP port 5353)
The interface doesn't have a multicast route in the routing table
On macOS, this can also happen after network stack changes (VPN software, Little Snitch, etc.)
Fixes to Try

1. Verify your settings were actually saved — based on the log showing User prefs dialog cancelled at 21:56:43, your V4Only / IP address changes may not have been saved. Save them and do a full plugin restart.

2. In HKLS Plugin Config, set:

IP Version: V4Only
Advertised IP Address: 192.168.1.3
Server IP Address: 192.168.1.3
3. Check for multicast routing on your Mac:

netstat -rn | grep "224\|239\|ff0"
You should see a multicast route. If not:

sudo route add -net 224.0.0.0/4 192.168.1.3

4. Check if mDNS port is blocked:

sudo /usr/libexec/ApplicationFirewall/socketfilterfw --listapps | grep -i python

5. Verify mDNSResponder isn't conflicting — on macOS, port 5353 is owned by mDNSResponder. You can check if another service is already bound:

sudo lsof -i UDP:5353

6. Re-enable IPv6 on Ethernet — disabling IPv6 may have caused routing table issues:


networksetup -setv6automatic Ethernet
Then restart the plugin.

The core issue is that multicast UDP packets on port 5353 are not leaving 192.168.1.3, so HomeKit devices on your LAN never receive the keep-alive re-announcements. The bridge becomes visible momentarily (via the loopback reflection) but disappears when the 120-second TTL expires.


Sent from my iPad using Tapatalk
onlyjaymoo
Posts: 24
Joined: Fri Nov 25, 2011 4:07 pm

Re: HKLS Troubleshooting on OS 26.4

Post by onlyjaymoo »

Also, just so you can see I have the settings in place, attached is the screenshot of the configuration.
Screenshot 2026-04-04 at 10.47.28 PM.png
Screenshot 2026-04-04 at 10.47.28 PM.png (114.44 KiB) Viewed 210 times
User avatar
GlennNZ
Posts: 1873
Joined: Sun Dec 07, 2014 3:33 pm
Location: Central Coast, Australia

HKLS Troubleshooting on OS 26.4

Post by GlennNZ »

See my above post

But need to restart plugin for these settings to take effect


Sent from my iPhone using Tapatalk
onlyjaymoo
Posts: 24
Joined: Fri Nov 25, 2011 4:07 pm

Re: HKLS Troubleshooting on OS 26.4

Post by onlyjaymoo »

0) re-enabled IPv6 automatic on Ethernet

Starting at 22:57...

1a) Went to the Configure interface, reselected IPv4Only, and confirmed the IP addresses and clicked Save
1b) Initiated a restart of HomeKit
1c) Noticed that mDNS is no longer advertising HKLS even at restart

2) did as above

3) netstat -rn | grep "224\|239\|ff0"

Code: Select all

224.0.0/4          link#6             UmCS                  en0      !
224.0.0/4          link#19            UmCSI               utun4       
224.0.0.251        1:0:5e:0:0:fb      UHmLWI                en0       
239.255.255.250    1:0:5e:7f:ff:fa    UHmLWI                en0       
ff00::/8                                ::1                                     UmCI                  lo0       
ff00::/8                                link#6                                  UmCI                  en0       
ff00::/8                                link#12                                 UmCI                  en1       
ff00::/8                                fe80::a601:f832:68d5:2b1c%utun0         UmCI                utun0       
ff00::/8                                fe80::ae04:a80a:5f2d:8117%utun1         UmCI                utun1       
ff00::/8                                fe80::452d:fc27:3ab5:9fc%utun2          UmCI                utun2       
ff00::/8                                fe80::ce81:b1c:bd2c:69e%utun3           UmCI                utun3       
ff00::/8                                fe80::1698:77ff:fe4d:9cd6%utun4         UmCI                utun4       
ff00::/8                                link#20                                 UmCI                 llw0       
ff01::%lo0/32                           ::1                                     UmCI                  lo0       
ff01::%en0/32                           link#6                                  UmCI                  en0       
ff01::%en1/32                           link#12                                 UmCI                  en1       
ff01::%utun0/32                         fe80::a601:f832:68d5:2b1c%utun0         UmCI                utun0       
ff01::%utun1/32                         fe80::ae04:a80a:5f2d:8117%utun1         UmCI                utun1       
ff01::%utun2/32                         fe80::452d:fc27:3ab5:9fc%utun2          UmCI                utun2       
ff01::%utun3/32                         fe80::ce81:b1c:bd2c:69e%utun3           UmCI                utun3       
ff01::%utun4/32                         fe80::1698:77ff:fe4d:9cd6%utun4         UmCI                utun4       
ff02::%lo0/32                           ::1                                     UmCI                  lo0       
ff02::%en0/32                           link#6                                  UmCI                  en0       
ff02::%en1/32                           link#12                                 UmCI                  en1       
ff02::%utun0/32                         fe80::a601:f832:68d5:2b1c%utun0         UmCI                utun0       
ff02::%utun1/32                         fe80::ae04:a80a:5f2d:8117%utun1         UmCI                utun1       
ff02::%utun2/32                         fe80::452d:fc27:3ab5:9fc%utun2          UmCI                utun2       
ff02::%utun3/32                         fe80::ce81:b1c:bd2c:69e%utun3           UmCI                utun3       
ff02::%utun4/32                         fe80::1698:77ff:fe4d:9cd6%utun4         UmCI                utun4    

unifi:~ jaymoo$ sudo route add -net 224.0.0.0/4 192.168.1.3
Password:
route: writing to routing socket: File exists
add net 224.0.0.0: gateway 192.168.1.3: File exists

4. sudo /usr/libexec/ApplicationFirewall/socketfilterfw --listapps | grep -i python

Code: Select all

2 : /usr/bin/python3 
10 : org.python.python 
5. sudo lsof -i UDP:5353

Code: Select all

COMMAND    PID           USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
mDNSRespo  602 _mdnsresponder    6u  IPv4 0x94caba6f52f870ce      0t0  UDP *:mdns
mDNSRespo  602 _mdnsresponder    7u  IPv6 0xdca0ab46bf818143      0t0  UDP *:mdns
UniFi\x20  947         jaymoo   26u  IPv4 0xdc6710b1f8791fff      0t0  UDP *:mdns
UniFi\x20  947         jaymoo   28u  IPv6 0x4b650fce51653464      0t0  UDP *:mdns
UniFi\x20  947         jaymoo   29u  IPv6 0xf6e1de40d6c8d7b5      0t0  UDP *:mdns
UniFi\x20  947         jaymoo   30u  IPv6 0x91c170666bcaa268      0t0  UDP *:mdns
UniFi\x20  947         jaymoo   31u  IPv6 0x57b5a812de06f672      0t0  UDP *:mdns
UniFi\x20  947         jaymoo   32u  IPv4 0xdaac893645cac98a      0t0  UDP *:mdns
UniFi\x20  947         jaymoo   34u  IPv6 0xa74f52a7de8f7860      0t0  UDP *:mdns
UniFi\x20  947         jaymoo   35u  IPv6 0xd6ca74400b04efd1      0t0  UDP *:mdns
IndigoPlu 2647         jaymoo   14u  IPv4 0x4fbabf1c63e22799      0t0  UDP *:mdns
6. Did so as indicated in step #0

-- Right now, based on these settings, I can't get the mDNS to show up anymore. I will try to see what combination of things gets at least the initial advertisement to come up after restart.
onlyjaymoo
Posts: 24
Joined: Fri Nov 25, 2011 4:07 pm

Re: HKLS Troubleshooting on OS 26.4

Post by onlyjaymoo »

So, despite me resetting everything back to default (IPVersions All, blank for both IP address fields), I can no longer see the initial advertisement.

Looking at the latest logs (attached), it seems that the setting for the plugin is indeed IPVersions All, but zeroconf is using v6only for some reason.

Also looking at the interfaces report, 192.168.1.3 does support multicast.
Attachments
plugin.log
(156.35 KiB) Downloaded 23 times
onlyjaymoo
Posts: 24
Joined: Fri Nov 25, 2011 4:07 pm

Re: HKLS Troubleshooting on OS 26.4

Post by onlyjaymoo »

The log reset (it's midnight here), so I decided to do a complete reboot of the Mac with all of the forced settings in place (v4Only, IP address in both fields)

It looks like the changes took, based on what's in the logs. And it's clean (I don't see any errors).

BUT, the advertisement is not showing up... even the initial mDNS that we used to get before doesn't show up anymore.

Perhaps that has been the issue all along, but that's where we are at the moment. Here is the fresh log:
Attachments
plugin 2.log
(21.79 KiB) Downloaded 31 times
Post Reply

Return to “HomeKitLink Siri”