Hallo everyone, I am a college student studying information technology in my first year. Recently, I have been interested in the IoT home automation field, as a bignner I’m a total noob in this area. I wanna learn more about it so that I can be prepared for next semester.
After learning about open source home automation platforms like OpenHAB and Homeassistant, I was surprised by the capabilities and flexibility of these platforms, but there were a few questions that bumped in to my head.
As far as I know, there are many IoT smart home platforms in the market, such as Alexa and Google Home. If a third-party smart home hardware wants to join their ecosystem, they have need to get their certificate like Works with Alexa in order to make it work, and connecting to their central control devices (such as smart speakers).
However, as a software, OpenHAB can connect any devices from any vendor. How does that even possiable? Does these smart devices require some coding on the hardware side? Or does this hardware also need to be certified by Openhab?
If not,does that means that openhab can connect to any kind of smart hardware directly via an interface protocol without signing an agreement with them?
And if Openhab wants to interconnect with other platforms such as Homekit, does it need to sign a commercial cooperation agreement to make it work?
Your questions are really about everything non-openHAB. How does it talk to commercial product XX? Usually the makers have adhered to a common standard, or have published the details or API.
Likewise for services, like weather or Homekit. There is most usually a published interface being used.
Sometimes someone has reverse-engineered the device details. Is that allowed? Ask the maker. It’s difficult for them to prohibit owners using devices as they see fit.
First of all, that’s not really true. It can connect to any device from any vendor that:
- has a documented and published application programming interface (API)
- someone has reverse engineered their proprietary API and published their findings online
- the device is based on commodity hardware (e.g. ESP8266) and can have it’s firmware replaced with an open source firmware.
Given the above, it’s pretty straight forward. We follow the API to interact with the device. In your “Works with Alexa” example, the coin is flipped. Instead of working with the vendor’s API, Alexa and Google require the device makers to work with Alexa and Google’s APIs.
openHAB doesn’t have that luxury. Instead we have to code to the device maker’s APIs.
No, we have no certification program.
If it’s a published and/or well know protocol then yes. Most of the stuff that openHAB can connect to locally uses a well known technology/protocol (Zwave, Zigbee, MQTT, etc.). Stuff that openHAB connects to through a cloud based API, often the user has to create a developer account to get authorization to access their API.
Usually not. Often that sort of integration is done via a mutually supported protocol (e.g. MQTT) or by interacting between the two using their respective well known APIs. However, there are a few cases where integration did require the openHAB foundation to sign up for and establish a trust relationship with third parties. For example, Google Assistant integration through the myopenhab.org service required the openHAB Foundation to set up an account with Google and set up a trust relationship (OAuth2) between the myopenhab.org servers and their API. That makes it so we as users don’t have to go through that process ourselves.
I believe that HomeKit uses Apple’s API but I don’t think we had to ask permission to use that API.