New Homebridge Plug-in via MakerAPI

First of all, thank you very much for your efforts creating this.

I transferred over from tonesto7's plugin (had no issues there) and am running Homebridge on a Synology DiskStation via Docker.

After completing a fresh install of everything (nothing transferred over), I found that most of my devices, with a few exceptions, have default labels (ex: temperature sensor, contact sensor). With around 40 devices, this is a bummer. Any one else have this issue? Is this normal?

@mbaran: I just published the fix, sorry for the delay

Yes you can. The latest version will try to active the newer MakerAPI stream feature, but it will fallback to using the websocket if that feature is not available.

Sorry for the troubles. In Hubitat, due you maintain the "Device Name" field or the "Device Label" field?

1 Like

I actually maintain both. I use the Device Label to differentiate devices (ex: Door Front) and use the Device Name to keep track of the model used (ex: Dome Door/Window Sensor Pro).

I've been adding and removing devices via the Hubitat Homebridge MakerAPI application and now imported devices correctly show up. Not sure what happened between last night and today, Homebridge log files don't show anything of note that I can pick out.

Hi Dan, I noticed all the devices from Hubitat are showing up as Not Responding on my Home App dashboards today. Homebridge is running and the log shows no obvious issues when restarted. If I toggle a device from HE, I see the correct log entry on homebrigde. On the Home app, it correctly shows my 3 hubs, 2 appleTVs (one controller and one secondary), and Homebridge. Not sure what to try next troubleshooting this.

This is, as far as I know, an ongoing iOS13 issue. I use an iPad as a home hub, which shows "connected" but I will get No Response quite frequently when remote.

I haven't been able to pinpoint the issue, but if you look around the homebridge GitHub, reddit /r/homebridge, etc it seems to be related to iOS13 and not getting better.

Curious if others in this thread can share what they're seeing as well. Definitely know it's not plugin related, as I use a Ring plugin to homebridge and it too goes No Response when I am away from home.

I have that every once in a while too. I have two home hubs, one AppleTV and one iPad. Sometimes I have the feeling (no evidence) that the updates get slower over time and I reboot both of my hubs which makes it seem to be better for a while. I have debugged the hell out of that one and I donā€™t see any requests from iOS to Homebridge at the time of ā€œno responseā€ which makes it look like that there is something on the iOS end.

All my HE devices have shown No Response in red since a few days ago now. What do you suggest doing next to get them back working please?

My experience has been that homekit is fairly buggy at both the hub level and the iPhone/iPad level. This is unfortunate, since it's my preferred dashboard. Right now, I'm running your homebridge plugin with one AppleTV as the hub. Previously I ran the old homebridge plugin, and had tried having two AppleTVs, and had also tried using an iPad hub. FWIW, here's my experience:

  • Having more than one hub seems to reduce reliability.
  • iPad hubs seem less reliable than AppleTV hubs.
  • Sometimes AppleTVs just have to be rebooted. Either homekit will break entirely, or weird things will happen like homekit presence will go crazy thinking I'm leaving the house and coming back 30 times a minute. A reboot fixes it.
  • A lot of homebridge plugins don't have good error handling, and end up causing homebridge to become unresponsive. I've ended up uninstalling all but your hubitat plugin.
  • On the iPhone side, the Home app can get out of sync with the AppleTV hub too. And it doesn't have pull-to-refresh. So you can have two iPhone next to each other and one will show the correct states and be responsive, while the other will show incorrect states and not work at all. The only fix seems to be to force-quit and restart the Home app on the buggy iPhone.
  • This is NOT the case with all HomeKit apps. For example, I've tried the Eve app. Sometimes it will show correct state while the Home app shows incorrect state. It also has pull-to-refresh.

Hope this helps anyone trying to get it working. In many ways, the iOS 13 homekit has gotten really nice, but I hope Apple puts some work into reliability soon.

I've been using an iPad as the bridge exclusively since iOS12 and have never had an issue until I hit iOS 13. Here's to hoping it gets resolved without me needing to go buy an AppleTV.

I have two Apple TV's and my setup is working very well...every once in a long while things go strange and I need to restart the hombridge instance.

I have also recently discovered the amazing plugin "Homebridge to Google Smart Home" (GitHub - oznu/homebridge-gsh: Allow Google Assistant to control your Homebridge accessories.) which is working so well that I uninstalled the built in Google Home app on my Hubitat hub. Unlike the Hubitat App it supports locks and thermostats. You can even set a passcode for locks so nobody can unlock a door without it or accidentally. So far these amazing plugins have made my setup the best I have had since getting into home automation.

1 Like

I hear your frustration. I had many support calls with Level 3 support in Apple and they couldn't sort out the instability. I have and Apple TV and it wouldn't stay in sync for more than a few hours and then just drop off, remote access was impossible. Lots of people are having similar problems, I had read in some random thread that if you have a legacy account you can change to an @icloud.com account. I did that, signed out of appletv, and phones and its been rock solid since then. I have 2 apple tvs now and 2 phones sharing not a problem

What plugins do you have installed in Homebridge?

Only the homebridge UI plugin and the Hubitat makerAPI plugin. I removed a dummy switch plugin with no change.

I went ahead and removed the bridge from Homekit, but now when I try to add it back, I am not able. I add accessory and scan the QR code but it never connects. Im suspecting there is an issue with Avahi or the IGMP proxy forwarding multicast between my vlans. Its all very strange because its been working fine for months until a few days ago.

I think certain combinations donā€™t work as well as others. Iā€™ve always had stable results under Danā€™s MakerAPI version of the Homebridge plugin. I did have the issue with syncing after the iOS13 release (was fine on the beta version), but after updates Dan made, that went away.

One thing that seems fairly common is that not everyoneā€™s Apple TV 4K works well all the time. I knew this from the beginning when I was researching a used one. I could find lots of complaints where people had to reboot their Apple TV 4K after a few days to get their automations going again, but couldnā€™t find anyone using a non-4K version with the same complaint. Since I was primarily buying for HomeKit automations, I decided to buy the non-4K too, and it has worked out very well. I run the beta software on it, and that has never caused performance issues.

I run three plugins:
ā€¢ Hubitat
ā€¢ A Nest plugin (so I can turn lights on when my Nest Protects detect an emergency)
ā€¢ Lightify so I can use OSRAM lights, but keep them off my HE Zigbee network.

Itā€™s stable, but the OSRAM plugin is new to my system, so I donā€™t have a lot of time under my belt with that one.

1 Like

If you donā€™t completely reinstall, Iā€™ve had issues where I had to change the PIN number in the config.json get it to start. But be warned that you will completely have to set everything up again if you change that number.

I have to sometimes had to trash the config (? Do I have that name right?) and persist directories too. Again, you have to set up from scratch if you trash those.

Also, make sure you are not running two Ethernet interfaces. That seems to be a common issue too.

Removing the bridge from HomeKit will cause issues if you want to add it again. The easiest way to do it cleanly is

  1. Remove the bridge from HomeKit
  2. Stop Homebridge
  3. Delete the files in ~/.homebridge/persist and ~/.homebridge/accessories
  4. Start homebridge
  5. Add the bridge back to HomeKit
2 Likes

@dan.t Thank you very much for this excellent plugin - been using it for months and its very useful. Is it possible to set the temperature range for a particular thermostat? I am using a thermostat to manually control a freezer - where I need to keep the temperature around 26-28 F. I have a temperature sensor reporting the temperature that I have mapped to a virtual thermostat.
My setup :

  1. WiFi thermostat setup as temperature sensor in HE flowing through makerapi to homebridge
  2. A Virtual thermostat in HE
  3. An app that is keeps the virtual thermostat in sync with wifi temp sensor

I am seeing 2 issues:

  1. The temperature reported by the thermostat on iPhone never goes below 32 although the temperature reported in HE virtual thermostat is correct and reflects the sensor. However in the iPhone the temp sensor shows the correct temp (26)

  2. The minimum thermostat range is set to 50

Would it be possible to change the range for just one device not all thermostats? There is this plugin that seems to do it but looks like a lot of work to set it up for HE will probably need something in the middle to translate

You can just do set points in HomeKit using the Eve app. It will do way more with automations than the Apple HomeKit app does. The only thing you cannot do is compare one temp sensor with another like you can with devices that are directly integrated with HE. If that were possible, I would take my Xiaomi temp sensor off HE and put it on the Xiaomi Aqara gateway, because it still occasionally drops. Less now that I moved one of my TrƄdfri repeaters, but still does.

This one I can fix.

Whit this one I have a "problem"..... iOS by default gives the range 50-100 for thermostats and I am not in favor of changing that..... I had a conversation about that with another user who wanted it to be the other way around, make the range smaller and not larger:

There are always these edge cases that can break so many other things. I can't sit here an argue on one hand that making the range smaller makes no sense while a few weeks later making the range even bigger :slight_smile:

Not the way the code is structured right now... It would create quite a mess in there

Maybe I am wrong but in your specific case do I understand it correctly that you set temperature manually on the freezer? If so, why do you use a virtual thermostat and not a virtual temperature sensor? Does something actually act on you setting the temperature on the virtual thermostat?