I’m still new to smart hardware and I’ve been trying to catch up on what protocols the different devices use. I’ve seen quite a few wifi light bulbs for example saying “Compatible with Alexa/Google home”. What does it mean? What protocol they use and would it be supported out of the box by some of the HA integrations? More particularly, are all wifi device which says “Compatible with Alexa/Google home” gonna be supported by some HA integration out of the box?
Generally speaking, there is no direct correlation between the “Compatible with…” labeling and compatibility with home assistant. That said, a whole lot of these devices can work with HA, regardless if they use wifi (IP protocols), or zwave/zigbee “hubs” to communicate with the internet. Usually IF it can be done, somebody has already done it and shared the info/scripts/configs needed to get it to work with HA.
Bottom line, no matter what stickers it has, you best check with the docs and/or community to verify something will work with homeassistant before you purchase. Further, some of these devices are very difficult or impossible to get to work with HA without using their respective cloud services. Since you’re using HA, I assume cloud independence is important to you. If so, take a step further and verify the devices you intend to purchase can talk to HA in a fully localized way.
Got it! I was just wondering if all the wifi devices that are “Compatible with Alexa” for example comply to the same protocol and that would mean that this guarantees that it will be compatible with HA as well (if there is an integration that understands this common protocol).
Do you know how this compatibility is implemented then? How are they discovered and accessed by Alexa/Google home?
Ooh, that is a very big subject! Suffice it to say, you plug in a device, give it unfettered access to the 'net, it finds it’s server (amazon, google, whatever), and you use your phone app to talk to that server and configure it. Exactly how, p’s/q’s… they’re all very different from each other, and that’s too big to discuss, and it is esoteric unless you develop iot devices really (we can say though, they generally use TCP/IP+SSL to talk to the server).
Often times when someone takes one of these devices and makes it compatible with HA (we’re talking fully local here), they had to reverse engineer the API that the device uses to talk to the cloud, then implement a way to fool the device in to talking locally instead. Rarely do ‘good’ devices like this have their API’s released for public use (ie, manufacturer intends or even encourages the device to be hacked for local control). In that case a developer can do the same cloud-free functionality without all the RE homework (Rain Machine for example has a public API, Rachio does not, but you’ll see both working with HA… the Rachio dudes still depend on the cloud, Rain Machine dudes can be 100% local).
So keep in mind, that there are often ways to ‘integrate’ these devices with HA that require use of that cloud server. Think of it like this… the device is still a cloud connected device, but HA is taking the place of your phone app to communicate with the cloud. This isn’t ‘pure local’ HA, by any means. So it’s important when researching “ha compatible stuff”, that you include “cloud free” in that process if it matters to you.
As a follow up on this, the good news is Amazon, Apple, Google, etc… seem to have agreed to come up with a universal standard. So some day in the future, what you are talking about may become a reality (one standard protocol that they all use to talk to each other). Until that happens though, “Compatibility with…” could mean 100,000,000 different things technically.
Thank you truglodite for clarifying!