[App][Pro] HomeKitty 😸 (aka HomeyKit 3.0)

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.

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.

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

  • 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.

17 Likes

HomeKitty Installation Instructions

The easiest way of adding HomeKitty to iOS is by using the pairing code (see below): open your iDevice’s camera and show it the code. It will ask to add the HomeKitty accessory to either an existing home, or to create a new home for it (during testing I would suggest creating a “test home”).

If that doesn’t work:

  • Make sure Homey and your iDevice are on the same local network (they don’t necessarily have to use the same WiFi network, but they need to be on the same local LAN segment)
  • Open the Home app on your iDevice
  • Select the + symbol (top right) and choose “Add Accessory”
  • At this point you can also show it the pairing code; if it still doesn’t work, choose “More options…”
  • If HomeKitty is shown on the next screen, you can choose it here. If not, select “My Accessory Isn’t Shown Here”
  • Choose “Enter code…”
  • Enter the HomeKitty pairing code: 1337-8055

If iOS is still unable to find the HomeKitty bridge, the only option left is to try various resets/reboots:

  • put your iDevice’s in Flight Mode for about 10 seconds
  • reboot Homey
  • reboot iDevice

Pairing code

4 Likes

Hi, is there a difference between this one and the experimental Homekit connection already that’s been build in the Homey?

Yes, the experimental implementation is (much) more limited in which types of devices it supports, and it also doesn’t support selecting which devices you don’t want to expose to HomeKit.

That’s exactly what I was looking for. Exposing only selected devices. Great work Robert, and I’m installing as speak :wink:

Do you recommend to install the old version too as this Homekitty is only for testing?

I wouldn’t run both versions at the same time, Homekitty will be replacing Homeykit anyways so if you’re just starting Homey-Homekit integration I’d suggest to do it with Homekitty.
One thing, in the current test version there is an error where the device selection isn’t loaded correctly after an app restart but that’s already fixed in the next version.

I just pushed v1.0.2 to the app store, once it’s certified I will probably release it as the first stable version.

@Ryan I would suggest waiting for v1.0.2 to appear in the app store (hopefully today or tomorrow as test), it should be stable enough to use. Both apps are incompatible with each other so if you use the old HomeyKit and configure HomeKit with it, you have to start over once you move to HomeKitty.

2 Likes

Already been working with Homekitty as you both suggested. Would be a disaster to start all over again when moving to kitty :wink:

I noticed just one thing. I just bought the Fibaro door sensor 2. And in Homey closed is closed when it sensors the magnet. But in HomeKit closed is open when touching the magnet. Can’t fix this, can this be a fault of homekitty?

I looked in Homey and there was already an update waiting for me. But it was 1.0.3 not 1.0.2

That’s a HomeKitty fault, fixed in the next test release (v1.0.4).

1 Like

Looking forward to dig into this new version/app👍

Long time ago I actually abandoned the Homey->HomeKit integration when I by mistaken happened to sync all my Homey devices to HomeKit and basically made HomeKit a big mess.

Do you know of a way to easily remove all current Homey devices from HomeKit in one go?

Find the bridge accessory that belongs to Homey and remove it from HomeKit:

  • press the circle with three dots in the right top corner, choose “Home Settings”
  • scroll down and select “Home Hubs & Bridges”
  • select the Homey bridge
  • scroll down and choose “Remove Bridge from Home”

Hi,

i tested the new Homekitty App yesterday. I got a problem with my Philio Roller Shutters.
In the HomeyKit App they work without any problems. the HomeKitty doesn’t recognize them.

Is there any chance to integrate them ?

many thanks

If you post an issue on Github I will look at it, no need to also post your question here :slight_smile:

Hi Robert,

Just replaced HomeyKit with HomeKitty. Great work, but I noticed something odd. All devices with the question ‘What is plugged in?’ appear twice in Homekit.
I suspect that both ‘virtualClass’ and ‘class’ are exposed to Homekit.
It is not a big deal though, everything works, so no need for an extra update.

You’re right, when a device has both a class and a virtual class, it’s added twice. This issue (and some other ones) is already solved in the Github version but I’m waiting for a bit more feedback before I will publish it to the app store :slight_smile:

And the Aqara door sensor isn’t registering open or closed in HomeKity.

1 Like

Please report issues here: Issues · robertklep/name.klep.homekitty · GitHub

Love the new device overview in the app settings much clearer!

2 Likes