HomeKitty is an almost complete rewrite of HomeyKit and serves the same purpose: expose your Homey devices to HomeKit so you can control them using iOS, Siri and Shortcuts.
You need at least version 2.0.0 of HomeKitty. Right now, those versions are available as test (see below).
You should be able to run it next to HomeyKit without getting in the way. See follow-up post for installation instructions.
Please be aware: HomeKitty is still very much in development, and its behaviour can change at any time. I can only test with a very limited amount of devices, and am reliant on community users to test it fully with their apps. There can be incompatibilities between HomeKitty and HomeyKit.
Please read this before creating a diagnostics report or posting an issue report on Github!
It’s very common for iOS to have issues that are not related to HomeKitty, and can therefore not fixed by me.
Sometimes this is iOS just lying to you. I see this issue all the time, and changing the device on iOS usually works just fine. It typically can take some time after starting Homey and/or HomeKitty before iOS will show the proper state of devices. This is also one of the reasons why Apple has tried (and failed) to introduce a new HomeKit architecture, because the current architecture can be very unstable.
Another reason for this can be misbehaving Home hubs, like an Apple TV or HomePod. If you have any of these devices, reboot them or toggle the switch where they are allowed to act as Home Hub.
Also, make sure that your Homey has a fixed IP-address. Because this can’t be configured in Homey itself, it has to be configured in your internet router. Look for “DHCP” or “DHCP leases”.
This doesn’t happen very often (I get notified when it happens, and it doesn’t happen a lot), but the most common reason is when you have two Homey’s in the same network and both are using the same HomeKit identifier. An identifier has to be unique in the network, so when this happens, change the identifier from the app settings (after first turning off HomeKitty on the other Homey). Do be aware that changing the identifier is basically a reset, so you will have to start over with the HomeKit configuration for the new Homey.
iOS losing devices or places them back in the Default Room
After Homey reboots/restarts, HomeKitty will try to wait for all devices of all your apps to be created before it starts communicating with iOS. However, if apps take a really long time before creating their devices, HomeKitty might “miss” these devices and they are added to HomeKit after communication with iOS has already started. Such devices are considered to be “new” by iOS (a major flaw in the HomeKit protocol) and will be placed in the default room.
To make HomeKitty wait longer, starting with v2.2.0, there’s a configuration option to delay the start of HomeKitty by a fixed amount of time. If you have this issue, it’s recommended to set this option to about 10 or 15 minutes, just to make sure that all devices have been created before HomeKitty starts.
Unable to add HomeKitty to iOS
Make sure that both Homey and your iDevice(s) are on the same network segment (in other words: if your Homey is part of a separate VLAN/IoT/guest network, there’s a good chance it won’t be found).
You can file an issue report here: Issues · robertklep/name.klep.homekitty · GitHub
(also if you notice that HomeKitty does something differently from HomeyKit, and you think this is a regression)
- v2.2.11 — Fixed issue with tv’s being mapped twice
- v2.2.10 — Added (partial) support for televisions
- v2.2.9 — Fixed issue with Bold locks using
onoffthe wrong way around
- v2.2.8 — Added support for
- v2.2.7 — Fixed issue with v2.2.6
- v2.2.6 — (unreleased) fix low battery status
- v2.2.5 — Use
alarm_batteryfor low battery status
- v2.2.4 — Added optional tamper state for other types of sensors
- v2.2.3 — Added optional tamper state for water leak sensors
- v2.2.2 — Added support for battery levels (
other) and updated
homey-apito latest version
- v2.2.1 — Added support for devices of class
button(e.g. Heimdall Alarm switch)
- v2.2.0 — Added option to delay start of HomeKit bridge after Homey reboot
- v2.1.0 — Fixed issue introduced by rc88 firmware
- v2.0.1 — Home alarm state fixes
- v2.0.0 — Compatibility with HP2023 and
- v1.4.2 — Upgraded to latest
- v1.4.1 — Sort device list
- v1.4.0 — Debounce changes to dim/brightness for light devices
- v1.3.2 — Bugfix
- v1.3.1 — Support onoff capability for sensor devices
- v1.3.0 — This version should handle app crashes/restarts much better: devices belonging to such apps should retain their room assignments, automations, etc, once the app is back up again.
- v1.2.10 — Work around issue in Web API related to (un)exposing devices to HomeKit
- v1.2.9 — Hopefully fixed issues with state-only window coverings implementation
- v1.2.8 — Updated to latest version of
homey-apiand allow contact sensors with “other” device class
- v1.2.7 — Support for Eufy doorbell devices
- v1.2.6 — Fixed issue with virtual devices losing their configuration
- v1.2.5 — Fixed more issues with positionless window coverings
- v1.2.1 — Fixed issue with positionless window coverings
- v1.2.0 — Rewritten/restyled app settings, bugfixes, additional device support
- v1.1.0 — Rewritten mapping logic and streamlined app settings page some more
- v1.0.5 — Improved app settings
- v1.0.4 — Bugfixes
- v1.0.3 — Bugfixes
- v1.0.2 — Bugfixes, more device support, and Flow Starter device
- v1.0.1 — Bugfixes
- v1.0.0 — Initial (test) release
In no particular order:
Reach a stable version
- Implement various virtual devices:
a Virtual Switch device to trigger HomeKit automations from Homey
- a Virtual Service, basically a virtual device. See below for more info.
- More/better device support.
The Flow Starter device can be used to create a HomeKit button to trigger flows. It’s a regular Homey “button” device with the “Button Pressed” action card.
By renaming the device in HomeKit (you can rename it on Homey too, but that will not change its name in HomeKit) you can get Siri to trigger on any name you like.
Because of limitations in HomeKit, this device actually appears as a switch (on/off) which, when turned on, will turn itself off after 300ms.
This is still an experimental feature, so it might be subject to change.
HomeKit supports a long list of Services (somewhat equivalant to Homey device classes).
These services have required (and possibly optional) Characteristics (somewhat equivalent to Homey device capabilities).
With a Virtual Service device you can create a HomeKit device based on a service, and set the characteristics of that service from Homey flows. Basically the same as the Virtual Devices app for Homey, but for HomeKit.
HomeyKit is now 5 years old. During that time, it has had various “main developers”, the last one being myself (@robertklep).
It’s a relatively complex app because it has to deal as good as it can with incompatibilities between Homey devices and HomeKit devices. This complexity means there’s a lot of unstructured “special case handling” in the code, which makes it difficult to maintain.
For the upgrade of HomeyKit to SDKv3 I initially planned to also do a cleanup of the code, but ran into issues with outdated external dependencies. Updating these dependencies meant an upgrade would be backward incompatible, breaking the HomeKit setup for all HomeyKit users once they upgraded to the new version.
So I decided it was best to do a complete rewrite and release it as a separate app, HomeKitty. This also means that HomeyKit will, as of now, drop into maintenance mode, meaning that I will probably do one or two new releases (including an upgrade to SDKv3) but no more. Once HomeKitty is published as a stable v1.0.0 in the app store, I will ask Athom to hide HomeyKit from the store (meaning that new users will not be able to find it in the store anymore).
Donations are very welcome! You can make donations through Paypal.