The core of home automation is knowing what’s going on. The faster we know about a state change, the better we can serve the user. If you want to have your lights to turn on when you arrive at home, it doesn’t help if it only knows about it after you’ve already opened the door and manually (!!) turned on the light.
Each smart device consists of the ‘normal’ device and the piece that makes it ‘smart’: the connectivity. The connectivity part of a device can consists of either control, state or both.
State describes what a device is up to right now. For example, a light can be on with a red color and a medium brightness.
Control is about controlling the smart device by sending commands via an API. These commands can vary from configuring how a device works till mimicking how a user would interact with a device. A media player can allow skipping to the next track and a sensor could allow to configure its sensitivity or polling interval.
The Home Assistant APIs are setup to be as convenient as possible. However, a network is always as weak as it’s weakest link. In our case these are the integrations. Take for example controlling a light that does not report state. The only state Home Assistant can report on after sending a command is the assumed state: what do we expect the state of the light to be if the command worked.
We want our users to get the best home automation experience out there and this starts with making sure they have devices that work well with Home Assistant. That’s why we will start applying the following classifiers to our integrations:
Classifier | Description | |
---|---|---|
Assumed State | We are unable to get the state of the device. Best we can do is to assume the state based on our last command. | |
Cloud Polling | Integration of this device happens via the cloud and requires an active internet connection. Polling the state means that an update might be noticed later. | |
Cloud Push | Integration of this device happens via the cloud and requires an active internet connection. Home Assistant will be notified as soon as a new state is available. | |
Local Polling | Offers direct communication with device. Polling the state means that an update might be noticed later. | |
Local Push | Offers direct communication with device. Home Assistant will be notified as soon as a new state is available. |
The background to how we got to these classifiers can be read after the break.
Read on →