Homebridge Not Responding On All Accessories
See original GitHub issueExpected Behavior When opening “Home” on an iOS device, I should see the accessories respond and load.
Current Behavior I am running my homebridge off my Raspberry Pi and my Home app is showing “No Response” on all accessories. I’ve had homebridge working for about 6 months with random “No Response” happening periodically and having to reset everything. I’m running an Ipad as my Home Hub.
I have tried:
- Restart homebridge and delete Apple Home settings
- change homebridge name/username/pin and setup new Apple Home
- different Wi-Fi network for both homebridge and Ipad
- tried running homebridge from my Windows PC (Where I ran it prior to the Pi)
- reinstall homebridge on Pi, clear “accessories” & “persist” files of cached items on homebridge.
No matter what I try when I open my Home I get “No Response” on all accessories… Totally lost on what else to try. I haven’t changed version on npm, node, Raspbian, etc.
Steps to Reproduce (for bugs) See above.
Versions Homebridge: 0.4.45 NPM: 6.4.1 Node: v10.14.0 OS: Raspbian Ipad: 12.1.1
My Config, “###” blocking out info, not actually in my config.
{
"bridge": {
"name": "McChillen's Homebridge",
"username": "CC:22:3D:E3:CE:14",
"port": 51826,
"pin": "049-56-013"
},
"description": "",
"platforms": [
{
"platform": "IFTTT",
"name": "IFTTT",
"makerkey": "###",
"accessories": [
{
"name": "Open West Garage Door",
"buttons": [
{
"caption": "A1-1",
"triggerOn": "openWest",
"triggerOff": "closeWest",
"stateful": true
}
]
},
{
"name": "Open East Garage Door",
"buttons": [
{
"caption": "A2-1",
"triggerOn": "openEast",
"triggerOff": "closeEast",
"stateful": true
}
]
}
]
},
{
"platform": "Venstar",
"auth": {
"user": "###",
"pass": "###"
},
"thermostats": [
{
"name": "Home",
"uri": "https://192.168.1.29"
}
]
}
],
"accessories": []
}
Issue Analytics
- State:
- Created 5 years ago
- Comments:18
Top GitHub Comments
After a long journey, I finally found the issue and was able to fix it. The issue is IPv6 / tcp6.
Its a bug in a library homebridge uses. See here: https://github.com/nfarina/homebridge/issues/1277
You can check this easily using. If you see this, you are fine:
$ pi@raspberrypi:~ $ netstat -an | grep 51826
$ tcp 0 0 0.0.0.0:51826 0.0.0.0:* LISTEN
If you have IPv6 enabled, it will only listen on the IPv6. This also leads to erros with avahi.
First, disable IPV6 completely on your rasperrypi. I was able to achieve this by adding this too
/boot/cmdline.txt
>ipv6.disable=1
Then reboot and check with
ifconfig
that IPv6 is disabled.Then disable IPv6 on avahi settings in /etc/avahi/avahi-daemon.conf:
use-ipv6=no
Check your bonjour dns names:
sudo apt-get install avahi-utils
avahi-browse --verbose _hap._tcp
$ local
$ + wlan0 IPv4 Homebridge_LIVE-9A81 _hap._tcp
Now you have to the delete the bridge and reconfigure everything from scratch, because some devices still try to connect IPv6. From then on, my Homebridge was stable.
I experienced this recently and it was driving me insane. I followed every recovery step I could find, but to no avail. Last night I finally tracked down what it was in my case.
I could find and add my Homebridge just fine. All the accessories would show up, the HomeKit devices would query for state, I would see the result and response of the queries in the Homebridge log, but Home.app in iOS would display all accessories as “Updating” and would eventually timeout and be marked with “No Response”.
Apparently, a single plugin can block responsiveness for all accessories. When queried, one of my plugins, https://github.com/gbro115/homebridge-roomba690, would attempt to contact my Roomba to get the state. My Roomba had a dead battery and I hadn’t bothered to recharge it yet, so it was uncontactable. The plugin wasn’t written with any logic to detect the case where the target Roomba is offline and so it would never perform the requisite callback back to Homebridge. Thus, Homebridge would just sit there, waiting forever for the answer to the query and never respond back to HomeKit with any information at all. Removing the plugin or charging the Roomba brought everything back to life.
While the plugin is certainly not written correctly to handle these kinds of scenarios, I feel like it’s also a bug that Homebridge can be silently blocked (no errors, no logging to suggest what’s going on) by any single, bad actor plugin.
Relevant issue: One accessory blocks the whole homebridge https://github.com/nfarina/homebridge/issues/948