
Apple has proven me wrong about HomeKit - tambourine_man
https://www.theverge.com/2017/8/3/16083996/internet-of-shit-wrong-about-homekit
======
seanalltogether
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.

~~~
verelo
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.

~~~
fishywang
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).

~~~
vorg
> 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!

~~~
fishywang
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.

------
bgentry
I'm confused. Despite this line in the article:

 _At WWDC in May, Apple quietly announced that it planned to relax some of
those restrictions. The biggest change was the introduction of software-based
authentication. In other words, you won’t have to replace your stuff to make
it Apple-compatible going forward, and you’ll get HomeKit’s lauded security
thrown in for free — provided the device maker actually goes in and implements
it._

The linked HomeKit FAQ says that software authentication is only for non-
commercial devices, and that commercial/shipping products are still required
to use the hardware authentication chip. So Apple's own docs clearly refute
the notion that non-HomeKit hardware can receive a software update to become
HomeKit compatible.

Ikea Tradfri is an exception here. They plan to add HomeKit support via a
software update, but they do in fact already ship their hardware with an MFI
HomeKit authentication chip.

It is possible to add a software authenticated device to a HomeKit network,
though you get warned when doing so. This is not new (though official support
for it is). But it still sounds like commercial products can't just add
HomeKit compatibility via software without breaking Apple's terms.

~~~
givinguflac
I'm pretty sure they just haven't updated the FAQ because all this stuff is
coming with fall updates and is not live yet.

~~~
bgentry
I don't think there was ever a mention of non-hardware authentication in the
FAQ in the past (or even an FAQ at all). There was also never a public PDF of
HAP until this year's WWDC, and the link to that PDF also explicitly states
that it is for non-commercial products:

[https://developer.apple.com/homekit/specification/](https://developer.apple.com/homekit/specification/)

Edit: also confirmed this in the WWDC video at 28:20
[https://developer.apple.com/videos/play/wwdc2017/705/?time=1...](https://developer.apple.com/videos/play/wwdc2017/705/?time=1694)

 _And let 's say you come up with a really cool prototype? And now, you want
to develop a HomeKit accessory for commercial sale. You need to join the Apple
MFi Program. You need to join the Apple MFi Program and go through self-
certification before you can begin your manufacturing or sale of your
accessories. And this is really exciting._

------
leeoniya
works well if you're living the iLife in Apple's walled garden. and here i am
hoping for [https://www.openhab.org/](https://www.openhab.org/) to become
bigger and better. i want automation without vendor lock-in (hardware or
software), and without relying on closed-source and third-party services for
the pleasure.

i was doing some research recently about having wifi-connected smoke alarm/CO
listening device that can recognize [1] off-the-shelf alarm beeps (which are
standardized) and send me an SMS & email. this turned out to be surprisingly
difficult to achieve. ideally, i could hook up a microphone to a BeagleBoard
of Raspberry Pi, run some daemon that monitors audio, does beep recognition
and lets me hook into notifications.

instead, there are proprietary listening devices (ok, fine) that all work by
sending notifications via third-party service (not fine) to some android or
iphone app (not fine).

[1]
[https://github.com/benjaminchodroff/alarmBeepDetect](https://github.com/benjaminchodroff/alarmBeepDetect)

~~~
windlep
I was originally considering openhab, but then I discovered Home-Assistant
([https://home-assistant.io/](https://home-assistant.io/)) and I've been
hooked since. It ticks off a bunch of check-boxes that made it a great home
OSS solution:

Pro's

\- No internet required, can run entirely on a Rasberry Pi

\- Integrates with most everything thanks to the huge component library
([https://home-assistant.io/components/](https://home-
assistant.io/components/))

\- Easy to write your own Python component to integrate with new stuff

\- Can use existing SmartThings/etc hubs or Z-wave usb stick to talk to most
anything

\- Fairly easy to write automations

\- Well written Python 3 code-base that's fairly easy to read and see what's
going on yourself

Con's

\- Definitely more for the DIY tinkerer

\- Need to write YAML for the automations, though a new GUI makes this easier
for many cases

Setting up an SMS to me when a motion sensor tripped was pretty easy, my
automation was:

    
    
        - alias: Alerting on bedroom motion
               initial_state: False
               trigger:
                 platform: numeric_state
                 entity_id: sensor.bedroom_burglar
                 above: 0
               action:
                 - service: notify.aws_sns
                   data: 
                     message: "Bedroom alarm sensor has been tripped!"
                     target: HassAlert
    
    

I've had it running for over a year now, and it's been quite nice.

~~~
xdissent
Home-assistant also has a great homebridge plugin ([https://github.com/home-
assistant/homebridge-homeassistant](https://github.com/home-
assistant/homebridge-homeassistant)) to easily bridge devices to HomeKit. I
got home-assistant talking to zwave and zigbee with a Linear HUSBZB-1 stick
(new version does both) and finally threw my wink hub in the garbage. Even
through Home app -> homebridge -> home-assistant, everything is super fast and
100% local, unlike most of the commercial hubs.

------
givinguflac
HomeKit has been great for us at home. It was a saving grace for Hue because
even their revamped software is god awful. Personally I'll take security over
openness any day. Not saying you can't have both, just not today with current
offerings by anyone.

------
moflome
FWIW, I'm working on an Arduino/Particle port [1] of the HAP protocol, trying
to emulate the Home client using 32-bit C/C++ crypto libraries from the OSS
WolfSSL [2]. The folks from Apple Home have been supportive, although their
spec needs some help [3]...

[1] [https://github.com/moflo/homekit-accessory-
emulator](https://github.com/moflo/homekit-accessory-emulator) [2]
[https://github.com/wolfSSL/wolfssl](https://github.com/wolfSSL/wolfssl) [3]
[https://developer.apple.com/homekit/](https://developer.apple.com/homekit/)

------
minimaxir
HomeKit is _amazing_ with Hue lights, with easy control, dimming, and color
changing from the Control Center. With Siri, changing the lights works very
reliably, which was not the case with the original non-HomeKit Hue lights.

Disclosure: Ex-Apple employee, but had no interaction with HomeKit.

------
ancorevard
Thanks to HomeKit, my dumb window AC units are now smart. Based on several
HomeKit temperatures and humidity sensors in my home, they now turn on and off
as desired.

~~~
jrullman
I've been wanting to do the same thing! Mind sharing which sensors/devices you
used to accomplish this?

~~~
ancorevard
I have two HomeKit temperature sensors, and a humidity sensor from the Ecobee
thermostat I have (we have central heater, but not central AC).

But you can just pick up a standalone sensor like:
[https://www.apple.com/shop/product/HL232LL/A/ihome-
control-i...](https://www.apple.com/shop/product/HL232LL/A/ihome-control-
iss50-5-in-1-smart-monitor)

For the two dumb window AC units, I plugged them into a HomeKit smart plug
like: [https://www.apple.com/shop/product/HKEH2VC/A/elgato-eve-
ener...](https://www.apple.com/shop/product/HKEH2VC/A/elgato-eve-energy) With
that plug you also get actual energy use and cost in real-time/historical as
well.

Since they are all HomeKit all that sensor and state data is shared with all
other HomeKit devices. So I created a HomeKit Automation that triggers the
start of the window A/C units when temp triggers a certain threshold and
during a certain time of day. Similar trigger to turn the AC off.

I found this HomeKit app to offer much more fine grained automation rules:
[https://itunes.apple.com/us/app/home-smart-home-
automation/i...](https://itunes.apple.com/us/app/home-smart-home-
automation/id995994352)

------
unfamiliar
Can I implement the HomeKit protocol for my own Raspberry Pi gadget?

~~~
Rjevski
Yes. Check out Homebridge - it's already been done for you.

------
IBM
Apple got the fundamentals correct from the beginning and I've always been
mystified by the hot takes claiming it was a failure.

It's designed with security in mind, so your HomeKit fridge isn't going to
take part in a DDOS attack [1], and it doesn't require an internet connection.
Some people viewed this as the same ol' Apple focused on devices while the
world moves on to cloud services, but it turns out that's a big advantage too
[2].

[1] [https://arstechnica.com/information-
technology/2016/10/doubl...](https://arstechnica.com/information-
technology/2016/10/double-dip-internet-of-things-botnet-attack-felt-across-
the-internet/)

[2] [http://www.businessinsider.com/nest-thermostats-go-
down-2016...](http://www.businessinsider.com/nest-thermostats-go-down-2016-7)

~~~
Bartweiss
I'm not really convinced they got the fundamentals correct in the beginning,
though. From a designer's perspective, the hardware requirement alone is a
fatal error - it's a totally unacceptable level of initial lock-in and
expense. Fixing that actually looks like a major change to the merits of the
device.

~~~
freehunter
A lot of IoT stuff is complete junk, though. People make complaints about
Apple products being overpriced but the expectation is reverse of reality.
This is what it costs for a quality product. Sure you can make things cheaper,
but you have to cut somewhere. Is having your living room lights being part of
a botnet worth saving 10% off the purchase price?

Just because item 1 is cheaper than item 2 doesn't mean item 2 is overpriced.

~~~
dpkonofa
This is exactly what I hate about all the internet arguments about Apple in
general. When an anti-fanboi screams that they can get the exact same computer
for $1000 cheaper because of the "Apple tax", I abandon the conversation
completely because they've clearly either never used an Apple device or
they're completely ignoring the fact that their $1000 cheaper device has cut
corners somewhere whether that's in build materials, features (like the
keyboard backlight or display), or just general quality of experience. Things
aren't just more expensive because Apple wants them to be more expensive.
They'd be forced to shut down shop by all the competitors that could undercut
them. Instead, they're one of the most valuable companies in the world because
people that actually do spend the extra money agree that it's not just an
"Apple tax" but a higher-quality product.

~~~
akie
I agree with your general sentiment, but please let's not be naive about
Apple's business practices - last time I checked (2 years ago?) Apple's
company wide profit margin was about 30 - 40%. So yes, Apple's products are
superior and you definitely get something in return for the higher price, but
the Apple Tax itself is definitely real.

~~~
chipotle_coyote
While that's true, I've also read years and years of stories about how
virtually every PC maker _other_ than Apple is dancing on a razor's edge due
to paper-thin margins. Dozens of manufacturers in the last two decades have
gone under, been bought out or left the market; PC laptops used to be (and may
still be, in some cases) crapped up with bloatware and festooned with stickers
because each sticker you have to peel off and each bit of software you don't
want is necessary extra revenue; the survivors like HP and Dell seem to bring
in more profit through enterprise-level service contracts than hardware. And
in the smartphone business, there have been quarters where Apple and Samsung
together are making _more than 100% of the profits_ because everyone else lost
money.

...so, it at least seems _plausible_ to me that Apple may be setting the
prices for their PCs and "post-PC" products more correctly than most of their
competitors. Even if that's true, the Apple Tax could still be a thing -- but
the premium may be magnified by the "lose money on every unit and make it up
in volume" tactic so many PC makers seem to have had through the 2000s.

------
dingo_bat
If the article is accurate in stating that homekit devices do not require an
internet connection to work, that's big. That's what iot should be, IMO. There
should be zero dependence on any hardware out of my house, except electricity
of course.

------
Animats
All your house are belong to us. - Apple.

Being tied to a cloud service is unacceptable. Cloud services only have lives
of a few years before they disappear or change incompatibly. Houses need 20 to
50 years of support.

~~~
gaius
It's like everyone forgot [http://uk.businessinsider.com/googles-nest-closing-
smart-hom...](http://uk.businessinsider.com/googles-nest-closing-smart-home-
company-revolv-bricking-devices-2016-4?op=1)

------
miguelrochefort
I don't understand why IoT and home automation has to be so complicated. Why
don't we just make devices consume/expose some semantic description of the
state of the world, and call it a day?

Below is an example using RDF, SPARQL, and some made-up ontologies.

Here's my kitchen light.

    
    
        @prefix rdf:       <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
        @prefix lightBulb: <http://example.org/models/lightbulb/> .
    
        <http://example.org/people/9876543210> _:me
        <http://example.org/things/0123456789> _:kitchen-light
    
        _:kitchen-light rdf:type <http://example.org/models/lightbulb>
        _:kitchen-light lightBulb:hasOwner _:me .
        _:kitchen-light lightBulb:hasName "Kitchen light" .
    

Let's turn it on.

    
    
        _:kitchen-light lightBulb:isOn true .
    

Which of my lights are turned on?

    
    
        SELECT ?light ?name
        {
            ?light rdf:type <http://example.org/models/lightbulb> .
            ?light lightBulb:hasOwner _:me .
            ?light lightBulb:isOn ?isOn .
            ?light lightBulb:hasName ?name
        }

~~~
Eridrus
Now make it work remotely in NATed environments.

And make it work for low power/battery driven electronics which don't have the
power budget for WiFi.

Oh and they don't have a whole lot of RAM and CPU cycles to spare, so pulling
in an XML library isn't really the option of choice.

And how should authentication work, including initial setup?

It's a lot more complicated when you drill into the details. You might be
willing to accept a bunch of trade-offs, but that will limit this to a niche
product.

~~~
salgernon
> You might be willing to accept a bunch of trade-offs, but that will limit
> this to a niche product

Several years ago I was helping a guy that had a home automation product with
a scriptable interface. This was when X10 was prevalent.

He was very proud of it and described all the behaviors he'd coded in loving
detail. But one stuck out in my mind: "When I get into bed, the lights go
out!" "But", I said, "what if you wanted to read in bed?" He glared at me:
"The Bed is for SLEEPING."

These systems need to work for us, and not require us to bend to what they're
capable of.

~~~
ocdtrekkie
This is why I ended up writing my home automation software. I want it to do
what I want, what makes my life easier. Not what makes a better product.

