HomeKitty (AKA HomeyKit 3.0)
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.
Attention Homey Pro 2023 users!
You need at least version 2.0.0 of HomeKitty. Right now, those versions are available as test (see below).
Current version
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.
COMMON ISSUES
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.
-
âNo Responseâ
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â.
-
App crashes
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).
Still having issues?
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)
Changelog
- v2.3.5 â Hopefully fix issues with thermostat temperature units
- v2.3.4 â Set Homekit target temperature limits to match Homeyâs
- v2.3.3 â Also allow âotherâ device class to be considered for window coverings
- v2.3.2 â Fixed issue with temperature units for thermostats
- v2.3.1 â Tilt support for window coverings
- v2.3.0 â Donât expose hidden/maintenance capabilities to iOS
- v2.2.18 â Work around
button.remove_node
capabilities that get added to Matter devices - v2.2.17 â Bugfix for v2.2.16
- v2.2.16 â Added support for
heatpump
device class - v2.2.13 â Correctly set temperature display units for thermostat and heatercooler
- v2.2.12 â Allow outlets/sockets to be dimmable
- 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
onoff
the wrong way around - v2.2.8 â Added support for
onoff
locks (Bold) - v2.2.7 â Fixed issue with v2.2.6
- v2.2.6 â (unreleased) fix low battery status
- v2.2.5 â Use
alarm_battery
for 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 (
sensor
andother
) and updatedhomey-api
to latest version - v2.2.1 â Added support for devices of class
sensor
and capabilitybutton
(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
homey-api@3
- v1.4.2 â Upgraded to latest
homey-api
- 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-api
and 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
Further plans
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.
Flow Starteráľáľáľáľ device
(since v1.0.2)
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.
Virtual Service device
(unreleased)
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.
Why a rewrite?
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
Donations are very welcome! You can make donations through Paypal.