I've been contracting with a major iot company for a couple years and their new product for the past year has been working on becoming homekit compatible. I can't say so far that I've been impressed with how things work on the Apple side. The concept of device vs service has been creating confusion for both our custom app as well as how devices are displayed in the Home app.
The review process is very cumbersome as well, the company I work for wants users using the Home app, but apple requires we create a homekit compliant app to certify the hardware. I don't understand why Apple can't certify the products with their own Home app.
Lastly there is no way to make our hub present itself for remote connections in Homekit, despite Apple requiring us to use chips certified to their standard. The user has to have an ipad or apple tv in the house to act as a gateway. This is a confusing concept to explain to users if they've been using our protocol for the last 2 years and now want to migrate to Homekit.
This! I made my entire house HomeKit, only to rip it all out and replace it with SmartThings. An expensive mistake but HomeKit is terrible; slow, expensive, limited functionality and compatibility and a massive lack of devices that connect to it.
I never tried HomeKit (not really in Apple's ecosystem), but I do like SmartThings. I won't say I "love" SmartThings, there are many things I can complain about it, but the bottom line is SmartThings provided a very powerful platform, you can write Groovy code to achieve most of the goals you have, even though the process of writing such code might be painful (for example, their web IDE is, let's just say, not the best). You can even add incompatible devices into SmartThings (for example I added my MyQ garage door control into SmartThings with customized device handler).
> you can write Groovy code to achieve most of the goals you have, even though the process of writing such code might be painful
Perhaps SmartThings needs to provide another scripting language besides Apache Groovy, one that's pleasurable to write, not painful. Gradle 3.0 added Kotlin, which works seamlessly with the IntelliJ IDE -- SmartThings could do the same!
It's not the problem with Groovy language itself. I think Groovy is good enough (and simple enough) for SmartThings' use case. It's just that you have to do things in SmartThings' web IDE (of course you can use some local IDE/editor and then copy paste to the web IDE in the end), and also work with SmartThings' APIs. The web IDE and the API documents are kind of hit or miss.
The review process is very cumbersome as well, the company I work for wants users using the Home app, but apple requires we create a homekit compliant app to certify the hardware. I don't understand why Apple can't certify the products with their own Home app.
Lastly there is no way to make our hub present itself for remote connections in Homekit, despite Apple requiring us to use chips certified to their standard. The user has to have an ipad or apple tv in the house to act as a gateway. This is a confusing concept to explain to users if they've been using our protocol for the last 2 years and now want to migrate to Homekit.