diff --git a/atom.xml b/atom.xml index dcf7f26ad6..80c6155732 100644 --- a/atom.xml +++ b/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Home Assistant]]> - 2016-02-12T05:31:22+00:00 + 2016-02-12T07:34:02+00:00 https://home-assistant.io/ @@ -13,6 +13,191 @@ Octopress + + <![CDATA[Classifying the Internet of Things]]> + + 2016-02-12T06:31:00+00:00 + https://home-assistant.io/blog/2016/02/12/classifying-the-internet-of-things + 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:

+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ClassifierDescription
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.
+

+ +

State

+ +

How state is communicated can be broken down into 5 categories. They are not mutually exclusive - a device state can be available both via the cloud and local connectivity.

+ +

No state available

+

These are devices that do not have the capabilities to make their state available. They only allow to be controlled. For example, devices with infrared remote controls like TVs and ACs. You can press the turn on button on the remote but can only assume that your command was received and executed successfully. The device might not be powered or something is blocking the infrared receiver.

+ +

Home automation will have to approach such devices based on the assumption that it’s commands are received correctly: using optimistic updates. This means that after sending a command it will update the state of the device as if the command was received successfully.

+ +

Advantages:

+ +
    +
  • None
  • +
+ +

Disadvantages:

+ +
    +
  • Home automation will assume the wrong state if the the command is not received correctly or if the device is controlled in any other way outside of the home automation system.
  • +
+ +

Polling the cloud

+

These are devices that will only report their state to their own cloud backend. The cloud backend will allow reading the state but will not notify when a new state has arrived. This requires the home automation to check frequently if the state has been updated.

+ +

Advantages:

+ +
    +
  • Able to control devices while at home or away.
  • +
  • Cloud has access to more computing power to mine the device data to suggest optimizations to the user.
  • +
+ +

Disadvantages:

+ +
    +
  • It doesn’t work if the internet is down or the company stops support.
  • +
  • You are no longer in control about who has access to your data.
  • +
+ +

Cloud pushing new state

+

All off the previous section applies to this one. On top of that the cloud will now notify the home automation when a new state has arrived. This means that as soon as the cloud knows, the home automation knows.

+ +

Advantages:

+ +
    +
  • New state known as soon as available in the cloud.
  • +
+ +

Polling the local device

+

These devices will offer an API that is locally accessible. The home automation will have to frequently check if the state has been updated.

+ +

Advantages:

+ +
    +
  • Does not depend on the internet
  • +
+ +

Disadvantages:

+ +
    +
  • To be pollable, a device needs to be always online which requires the device to be connected to a power source.
  • +
+ +

Local device pushing new state

+

The best of the best. These devices will send out a notice when they get to a new state. These devices usually use a home automation protocol to pass it’s message to a hub that will do the heavy lifting of managing and notifying subscribers

+ +

Advantages:

+ +
    +
  • Near instant delivery of new states.
  • +
  • Able to get a long battery life by going into deep sleep between state updates.
  • +
+ +

Disadvantages:

+ +
    +
  • If it does not also support polling, home automation will not be made aware of the state after booting up until it changes.
  • +
  • If using deep sleep and wifi, will suffer a delay when waking up because connecting to WiFi and receiving an IP takes time.
  • +
+ +

Control

+ +

Controlling a device can, just like state, be done through cloud and/or local connectivity. But the more important part of control is knowing if your command was a success and the new state of the device.

+ +

No control available

+

These devices are not able to be controlled. They will only offer state.

+ +

Poll State after sending command

+

These devices will require the state to be polled after sending a command to see if a command was successfull.

+ +

Advantages:

+ +
    +
  • The state will be known right after the command was issued.
  • +
+ +

Disadvantages:

+ +
    +
  • It can take time before the state gets updated. How often do we poll and how long do we wait till we consider the command failed? Also, a state may change because of other factors. Difficult to determine if the updated state is because of our command.
  • +
+ +

Device pushes state update

+

These devices will not return a new state as a result of the command but instead will push a new state right away. The downside of this approach is that we have to assume that a state update coming in within a certain period of time after a command is related to the command.

+ +

Command returns new state

+

The very best. These devices will answer the command with the new state after executing the command.

+ +

Classifying Home Assistant

+

Home Assistant tries to offer the best experience possible via its APIs. There are different ways of interacting with Home Assistant but all are local.

+ +
    +
  • State polling is available via the REST API
  • +
  • There is a stream API that will push new states as soon as they arrive to subscribers. This is how the frontend is able to always stay in sync.
  • +
  • Calling a service on Home Assistant will return all states that changed while the service was executing. This sadly does not always include the new state of devices that push their new state, as they might arrive after the service has finished.
  • +
+]]>
+
+ <![CDATA[Smarter SmartThings with MQTT and Home Assistant]]> @@ -1593,187 +1778,6 @@ Glances web server started on http://0.0.0.0:61208/

Glances has a couple of optional dependencies which are extenting the range of provided information. This means that it would be possible to get details about the RAID system, HDD temperature, IP addresses, sensors, etc., please create a Pull request with your additions or a Feature request if you want see more details in your Home Assistant frontend.

-]]> -
- - - <![CDATA[Home Assistant meets IFTTT]]> - - 2015-09-13T16:28:00+00:00 - https://home-assistant.io/blog/2015/09/13/home-assistant-meets-ifttt - Today we announce the release of Home Assistant v0.7.2 which includes brand new support by @sfam to integrate with IFTTT. IFTTT stands for If This, Then That and is a webservice that integrates with almost every possible webservice out there. Adding Home Assistant to this mix means Home Assistant can connect with all via IFTTT.

- -

It is now possible to disable your irregation system if it is going to be cloudy tomorrow or tweet if your smoke alarm goes off.

- -

- -

- -

Head over to the setup instructions to get started with IFTTT. Click the read more button for some example recipes.

- - - -

In each of the following examples, make sure to replace the XXX in the url with your correct host address and api password.

- -

Turn off irregation system when not needed

- -

- -

- -

Maker channel setup:

- - - - - - - - - - - - - - - - - - - - - - - - - - -
FieldValue
URLhttp://xxx.xxx.xxx.xxx:8123/api/services/switch/turn_off?api_password=xxxxxxxx
METHODPOST
CONTENT TYPEapplication/json
BODY{ “entity_id”: “switch.irrigation” }
- -

Tweet when important events happen

- -

- -

- -

This will tweet a message when an MQTT message is received that the smoke alarm has been triggered. Setup Maker channel with event name HA_FIRE_ALARM and Twitter channel to tweet the message in value1.

- -
-
# Configuration.yaml entry
-automation:
-- alias: Post a tweet when fire alarm is triggered
-  trigger:
-    platform: mqtt
-    mqtt_topic: home/alarm/fire
-    mqtt_payload: 'on'
-
-  action:
-    service: ifttt.trigger
-    data: {"event":"HA_FIRE_ALARM", "value1":"The fire alarm just triggered!"}
-
-
-
- -

Turn on lights when I get home

- -

- -

- -

Maker channel setup:

- - - - - - - - - - - - - - - - - - - - - - - - - - -
FieldValue
URLhttp://xxx.xxx.xxx.xxx:8123/api/services/light/turn_on?api_password=xxxxxxxx
METHODPOST
CONTENT TYPEapplication/json
BODY{ “entity_id”: “light.kitchen” }
- -

Flash lights when a new PR comes in for Home Assistant

- -

- -

- -

Maker channel setup:

- - - - - - - - - - - - - - - - - - - - - - - - - - -
FieldValue
URLhttp://xxx.xxx.xxx.xxx:8123/api/services/light/turn_on?api_password=xxxxxxxx
METHODPOST
CONTENT TYPEapplication/json
BODY{ “entity_id”: “group.all_lights”, “flash”:”yes” }
- -

Fire events when pressing the DO button

- -

- -

- -

Maker channel setup:

- - - - - - - - - - - - - - - - - - - - - - -
FieldValue
URLhttp://xxx.xxx.xxx.xxx:8123/api/events/do_button_pressed?api_password=xxxxxxxx
METHODPOST
CONTENT TYPEapplication/json
]]>
diff --git a/blog/2014/12/18/website-launched/index.html b/blog/2014/12/18/website-launched/index.html index 91d7495f85..3f13bb3158 100644 --- a/blog/2014/12/18/website-launched/index.html +++ b/blog/2014/12/18/website-launched/index.html @@ -203,6 +203,12 @@ diff --git a/blog/2014/12/26/home-control-home-automation-and-the-smart-home/index.html b/blog/2014/12/26/home-control-home-automation-and-the-smart-home/index.html index e188f1c83d..925e58062e 100644 --- a/blog/2014/12/26/home-control-home-automation-and-the-smart-home/index.html +++ b/blog/2014/12/26/home-control-home-automation-and-the-smart-home/index.html @@ -258,6 +258,12 @@ This article will try to explain how they all relate.

diff --git a/blog/2015/01/04/hey-pushbullet-nice-talking-to-you/index.html b/blog/2015/01/04/hey-pushbullet-nice-talking-to-you/index.html index 75d40d12ea..be85714b42 100644 --- a/blog/2015/01/04/hey-pushbullet-nice-talking-to-you/index.html +++ b/blog/2015/01/04/hey-pushbullet-nice-talking-to-you/index.html @@ -242,6 +242,12 @@ api_key=ABCDEFGHJKLMNOPQRSTUVXYZ diff --git a/blog/2015/01/11/bootstrapping-your-setup-with-discovery/index.html b/blog/2015/01/11/bootstrapping-your-setup-with-discovery/index.html index a8f24f56af..38f2357038 100644 --- a/blog/2015/01/11/bootstrapping-your-setup-with-discovery/index.html +++ b/blog/2015/01/11/bootstrapping-your-setup-with-discovery/index.html @@ -217,6 +217,12 @@ diff --git a/blog/2015/01/13/nest-in-da-house/index.html b/blog/2015/01/13/nest-in-da-house/index.html index 0e28eb91cb..63b053138d 100644 --- a/blog/2015/01/13/nest-in-da-house/index.html +++ b/blog/2015/01/13/nest-in-da-house/index.html @@ -220,6 +220,12 @@ password=YOUR_PASSWORD diff --git a/blog/2015/01/24/release-notes/index.html b/blog/2015/01/24/release-notes/index.html index 12dd08638e..46f482ddda 100644 --- a/blog/2015/01/24/release-notes/index.html +++ b/blog/2015/01/24/release-notes/index.html @@ -226,6 +226,12 @@ Home Assistant now supports --open-ui and --demo-mode diff --git a/blog/2015/02/08/looking-at-the-past/index.html b/blog/2015/02/08/looking-at-the-past/index.html index a7d8ff60c4..47d437ed60 100644 --- a/blog/2015/02/08/looking-at-the-past/index.html +++ b/blog/2015/02/08/looking-at-the-past/index.html @@ -234,6 +234,12 @@ Events are saved in a local database. Google Graphs is used to draw the graph. D diff --git a/blog/2015/02/24/streaming-updates/index.html b/blog/2015/02/24/streaming-updates/index.html index acbaffac27..b0dcd98438 100644 --- a/blog/2015/02/24/streaming-updates/index.html +++ b/blog/2015/02/24/streaming-updates/index.html @@ -219,6 +219,12 @@ diff --git a/blog/2015/03/01/home-assistant-migrating-to-yaml/index.html b/blog/2015/03/01/home-assistant-migrating-to-yaml/index.html index 76976ad146..fcf7bdcef9 100644 --- a/blog/2015/03/01/home-assistant-migrating-to-yaml/index.html +++ b/blog/2015/03/01/home-assistant-migrating-to-yaml/index.html @@ -209,6 +209,12 @@ diff --git a/blog/2015/03/08/new-logo/index.html b/blog/2015/03/08/new-logo/index.html index 3dab4ebba8..91d581a19b 100644 --- a/blog/2015/03/08/new-logo/index.html +++ b/blog/2015/03/08/new-logo/index.html @@ -210,6 +210,12 @@ The old logo, the new detailed logo and the new simple logo. diff --git a/blog/2015/03/11/release-notes/index.html b/blog/2015/03/11/release-notes/index.html index 59890ea9fd..8e9f82718b 100644 --- a/blog/2015/03/11/release-notes/index.html +++ b/blog/2015/03/11/release-notes/index.html @@ -249,6 +249,12 @@ An initial version of voice control for Home Assistant has landed. The current i diff --git a/blog/2015/03/22/release-notes/index.html b/blog/2015/03/22/release-notes/index.html index ef37a95f68..a54bca4163 100644 --- a/blog/2015/03/22/release-notes/index.html +++ b/blog/2015/03/22/release-notes/index.html @@ -286,6 +286,12 @@ I (Paulus) have contributed a scene component. A user can create scenes that cap diff --git a/blog/2015/04/25/release-notes/index.html b/blog/2015/04/25/release-notes/index.html index 292e8427c0..4a4f6bb70c 100644 --- a/blog/2015/04/25/release-notes/index.html +++ b/blog/2015/04/25/release-notes/index.html @@ -297,6 +297,12 @@ diff --git a/blog/2015/05/09/utc-time-zone-awareness/index.html b/blog/2015/05/09/utc-time-zone-awareness/index.html index e34197270e..befaa7de03 100644 --- a/blog/2015/05/09/utc-time-zone-awareness/index.html +++ b/blog/2015/05/09/utc-time-zone-awareness/index.html @@ -232,6 +232,12 @@ diff --git a/blog/2015/05/14/release-notes/index.html b/blog/2015/05/14/release-notes/index.html index 61e186c5e6..d11bafb999 100644 --- a/blog/2015/05/14/release-notes/index.html +++ b/blog/2015/05/14/release-notes/index.html @@ -324,6 +324,12 @@ Before diving into the newly supported devices and services, I want to highlight diff --git a/blog/2015/06/10/release-notes/index.html b/blog/2015/06/10/release-notes/index.html index fd0ebb40eb..e581338d79 100644 --- a/blog/2015/06/10/release-notes/index.html +++ b/blog/2015/06/10/release-notes/index.html @@ -377,6 +377,12 @@ This switch platform allows you to control your motion detection setting on your diff --git a/blog/2015/07/11/ip-cameras-arduino-kodi-efergy-support/index.html b/blog/2015/07/11/ip-cameras-arduino-kodi-efergy-support/index.html index 72c3c7f987..4206fd05aa 100644 --- a/blog/2015/07/11/ip-cameras-arduino-kodi-efergy-support/index.html +++ b/blog/2015/07/11/ip-cameras-arduino-kodi-efergy-support/index.html @@ -329,6 +329,12 @@ Fabian has added support for Forecast.io to g diff --git a/blog/2015/08/09/mqtt-raspberry-pi-squeezebox-asuswrt-support/index.html b/blog/2015/08/09/mqtt-raspberry-pi-squeezebox-asuswrt-support/index.html index f5b78f1f95..33d4a3d5ed 100644 --- a/blog/2015/08/09/mqtt-raspberry-pi-squeezebox-asuswrt-support/index.html +++ b/blog/2015/08/09/mqtt-raspberry-pi-squeezebox-asuswrt-support/index.html @@ -318,6 +318,12 @@ Support for Temper temperature sensors has been contributed by +
  • + Classifying the Internet of Things +
  • + + +
  • Smarter SmartThings with MQTT and Home Assistant
  • @@ -341,12 +347,6 @@ Support for Temper temperature sensors has been contributed by - 0.10: Amazon Echo, iCloud, Dweet.io, Twitch and templating support! - - - diff --git a/blog/2015/08/17/verisure-and-modern-tp-link-router-support/index.html b/blog/2015/08/17/verisure-and-modern-tp-link-router-support/index.html index 7f78e46862..6e42b8cfe1 100644 --- a/blog/2015/08/17/verisure-and-modern-tp-link-router-support/index.html +++ b/blog/2015/08/17/verisure-and-modern-tp-link-router-support/index.html @@ -228,6 +228,12 @@ diff --git a/blog/2015/08/26/laundry-automation-with-moteino-mqtt-and-home-assistant/index.html b/blog/2015/08/26/laundry-automation-with-moteino-mqtt-and-home-assistant/index.html index 800ac77c03..d8d74a18e7 100644 --- a/blog/2015/08/26/laundry-automation-with-moteino-mqtt-and-home-assistant/index.html +++ b/blog/2015/08/26/laundry-automation-with-moteino-mqtt-and-home-assistant/index.html @@ -337,6 +337,12 @@ diff --git a/blog/2015/08/31/version-7-revamped-ui-and-improved-distribution/index.html b/blog/2015/08/31/version-7-revamped-ui-and-improved-distribution/index.html index a40ad6dd29..f7e391f61f 100644 --- a/blog/2015/08/31/version-7-revamped-ui-and-improved-distribution/index.html +++ b/blog/2015/08/31/version-7-revamped-ui-and-improved-distribution/index.html @@ -315,6 +315,12 @@ diff --git a/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant/index.html b/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant/index.html index 6c46cf229b..ff6673cde9 100644 --- a/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant/index.html +++ b/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant/index.html @@ -518,6 +518,12 @@ PubSubClient client(ethClient); diff --git a/blog/2015/09/13/home-assistant-meets-ifttt/index.html b/blog/2015/09/13/home-assistant-meets-ifttt/index.html index c725540b53..87cd726fa6 100644 --- a/blog/2015/09/13/home-assistant-meets-ifttt/index.html +++ b/blog/2015/09/13/home-assistant-meets-ifttt/index.html @@ -377,6 +377,12 @@ diff --git a/blog/2015/09/18/monitoring-with-glances-and-home-assistant/index.html b/blog/2015/09/18/monitoring-with-glances-and-home-assistant/index.html index ab0d666ac7..92df53fc32 100644 --- a/blog/2015/09/18/monitoring-with-glances-and-home-assistant/index.html +++ b/blog/2015/09/18/monitoring-with-glances-and-home-assistant/index.html @@ -278,6 +278,12 @@ Glances web server started on http://0.0.0.0:61208/ diff --git a/blog/2015/09/19/alarm-sonos-and-itunes-support/index.html b/blog/2015/09/19/alarm-sonos-and-itunes-support/index.html index 17700dae6d..6b71cdae28 100644 --- a/blog/2015/09/19/alarm-sonos-and-itunes-support/index.html +++ b/blog/2015/09/19/alarm-sonos-and-itunes-support/index.html @@ -257,6 +257,12 @@ Automation has gotten a lot of love. It now supports conditions, multiple trigge diff --git a/blog/2015/10/05/home-assistant-goes-geo-with-owntracks/index.html b/blog/2015/10/05/home-assistant-goes-geo-with-owntracks/index.html index a6280e5137..6f6539ae35 100644 --- a/blog/2015/10/05/home-assistant-goes-geo-with-owntracks/index.html +++ b/blog/2015/10/05/home-assistant-goes-geo-with-owntracks/index.html @@ -233,6 +233,12 @@ Map in Home Assistant showing two people and three zones (home, school, work) diff --git a/blog/2015/10/11/measure-temperature-with-esp8266-and-report-to-mqtt/index.html b/blog/2015/10/11/measure-temperature-with-esp8266-and-report-to-mqtt/index.html index cb6ba0c881..09f752ca16 100644 --- a/blog/2015/10/11/measure-temperature-with-esp8266-and-report-to-mqtt/index.html +++ b/blog/2015/10/11/measure-temperature-with-esp8266-and-report-to-mqtt/index.html @@ -564,6 +564,12 @@ Adafruit_HDC1000 hdc = Adafruit_HDC1000(); diff --git a/blog/2015/10/11/rfxtrx-blinkstick-and-snmp-support/index.html b/blog/2015/10/11/rfxtrx-blinkstick-and-snmp-support/index.html index 3d2cdf213b..0df34b6dea 100644 --- a/blog/2015/10/11/rfxtrx-blinkstick-and-snmp-support/index.html +++ b/blog/2015/10/11/rfxtrx-blinkstick-and-snmp-support/index.html @@ -222,6 +222,12 @@ diff --git a/blog/2015/10/26/firetv-and-radiotherm-now-supported/index.html b/blog/2015/10/26/firetv-and-radiotherm-now-supported/index.html index adffe4ebfc..d665c1498a 100644 --- a/blog/2015/10/26/firetv-and-radiotherm-now-supported/index.html +++ b/blog/2015/10/26/firetv-and-radiotherm-now-supported/index.html @@ -244,6 +244,12 @@ This makes more sense as most people run Home Assistant as a daemon

    diff --git a/blog/2015/11/16/zwave-switches-lights-and-honeywell-thermostats-now-supported/index.html b/blog/2015/11/16/zwave-switches-lights-and-honeywell-thermostats-now-supported/index.html index fd6abdf9fd..9b30c5d867 100644 --- a/blog/2015/11/16/zwave-switches-lights-and-honeywell-thermostats-now-supported/index.html +++ b/blog/2015/11/16/zwave-switches-lights-and-honeywell-thermostats-now-supported/index.html @@ -240,6 +240,12 @@ diff --git a/blog/2015/11/22/survey-november-2015/index.html b/blog/2015/11/22/survey-november-2015/index.html index 9c6eebd152..deba6534aa 100644 --- a/blog/2015/11/22/survey-november-2015/index.html +++ b/blog/2015/11/22/survey-november-2015/index.html @@ -280,6 +280,12 @@ diff --git a/blog/2015/12/05/community-highlights/index.html b/blog/2015/12/05/community-highlights/index.html index 5617e54c57..6e247f5444 100644 --- a/blog/2015/12/05/community-highlights/index.html +++ b/blog/2015/12/05/community-highlights/index.html @@ -213,6 +213,12 @@ diff --git a/blog/2015/12/06/locks-rollershutters-binary-sensors-and-influxdb-support/index.html b/blog/2015/12/06/locks-rollershutters-binary-sensors-and-influxdb-support/index.html index dcfd49715d..232d4d762d 100644 --- a/blog/2015/12/06/locks-rollershutters-binary-sensors-and-influxdb-support/index.html +++ b/blog/2015/12/06/locks-rollershutters-binary-sensors-and-influxdb-support/index.html @@ -222,6 +222,12 @@ diff --git a/blog/2015/12/07/influxdb-and-grafana/index.html b/blog/2015/12/07/influxdb-and-grafana/index.html index 1c94056c42..9030d8f998 100644 --- a/blog/2015/12/07/influxdb-and-grafana/index.html +++ b/blog/2015/12/07/influxdb-and-grafana/index.html @@ -313,6 +313,12 @@ $ sudo systemctl status grafana-server diff --git a/blog/2015/12/10/activating-tasker-tasks-from-home-assistant-using-command-line-switches/index.html b/blog/2015/12/10/activating-tasker-tasks-from-home-assistant-using-command-line-switches/index.html index bba69c27b3..78cd708866 100644 --- a/blog/2015/12/10/activating-tasker-tasks-from-home-assistant-using-command-line-switches/index.html +++ b/blog/2015/12/10/activating-tasker-tasks-from-home-assistant-using-command-line-switches/index.html @@ -263,6 +263,12 @@ requests.get(' +
  • + Classifying the Internet of Things +
  • + + +
  • Smarter SmartThings with MQTT and Home Assistant
  • @@ -286,12 +292,6 @@ requests.get(' - 0.10: Amazon Echo, iCloud, Dweet.io, Twitch and templating support! - - - diff --git a/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/index.html b/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/index.html index 5df1f79f52..22e79f3274 100644 --- a/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/index.html +++ b/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/index.html @@ -235,6 +235,12 @@ Philips Hue FAQ entries regarding 3rd party light bulbs. diff --git a/blog/2015/12/13/setup-encryption-using-lets-encrypt/index.html b/blog/2015/12/13/setup-encryption-using-lets-encrypt/index.html index 1e51ec5ac1..ba977d5acb 100644 --- a/blog/2015/12/13/setup-encryption-using-lets-encrypt/index.html +++ b/blog/2015/12/13/setup-encryption-using-lets-encrypt/index.html @@ -300,6 +300,12 @@ sudo docker run -it --rm -p 443:443 -p 80:80 --name letsencrypt \ diff --git a/blog/2015/12/22/amazon-echo-icloud-and-templates/index.html b/blog/2015/12/22/amazon-echo-icloud-and-templates/index.html index 5e0f8dd4a9..27ffb73f56 100644 --- a/blog/2015/12/22/amazon-echo-icloud-and-templates/index.html +++ b/blog/2015/12/22/amazon-echo-icloud-and-templates/index.html @@ -256,6 +256,12 @@ diff --git a/blog/2016/01/17/extended-support-for-diy-solutions/index.html b/blog/2016/01/17/extended-support-for-diy-solutions/index.html index 06d0d67023..65874e5101 100644 --- a/blog/2016/01/17/extended-support-for-diy-solutions/index.html +++ b/blog/2016/01/17/extended-support-for-diy-solutions/index.html @@ -236,6 +236,12 @@ diff --git a/blog/2016/01/19/perfect-home-automation/index.html b/blog/2016/01/19/perfect-home-automation/index.html index 190616fbf2..3d8e35a61e 100644 --- a/blog/2016/01/19/perfect-home-automation/index.html +++ b/blog/2016/01/19/perfect-home-automation/index.html @@ -240,6 +240,12 @@ diff --git a/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/index.html b/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/index.html index c2887c5f73..3368bcb871 100644 --- a/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/index.html +++ b/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/index.html @@ -242,6 +242,12 @@ Example of the new views in the frontend. Learn mor diff --git a/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/index.html b/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/index.html index 71ca11fb71..c3d321fae0 100644 --- a/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/index.html +++ b/blog/2016/02/09/smarter-smart-things-with-mqtt-and-home-assistant/index.html @@ -429,6 +429,12 @@ Z-Wave light bulb | diff --git a/blog/2016/02/12/classifying-the-internet-of-things/index.html b/blog/2016/02/12/classifying-the-internet-of-things/index.html new file mode 100644 index 0000000000..dafc101334 --- /dev/null +++ b/blog/2016/02/12/classifying-the-internet-of-things/index.html @@ -0,0 +1,462 @@ + + + + + + + + + + Classifying the Internet of Things - Home Assistant + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + +
    +
    + +
    + + +
    + +
    + +

    Classifying the Internet of Things

    + + + +
    + + + seven minutes reading time + + + + + + Comments + +
    + +
    + + +

    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:

    + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ClassifierDescription
    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.
    +

    + +

    State

    + +

    How state is communicated can be broken down into 5 categories. They are not mutually exclusive - a device state can be available both via the cloud and local connectivity.

    + +

    No state available

    +

    These are devices that do not have the capabilities to make their state available. They only allow to be controlled. For example, devices with infrared remote controls like TVs and ACs. You can press the turn on button on the remote but can only assume that your command was received and executed successfully. The device might not be powered or something is blocking the infrared receiver.

    + +

    Home automation will have to approach such devices based on the assumption that it’s commands are received correctly: using optimistic updates. This means that after sending a command it will update the state of the device as if the command was received successfully.

    + +

    Advantages:

    + +
      +
    • None
    • +
    + +

    Disadvantages:

    + +
      +
    • Home automation will assume the wrong state if the the command is not received correctly or if the device is controlled in any other way outside of the home automation system.
    • +
    + +

    Polling the cloud

    +

    These are devices that will only report their state to their own cloud backend. The cloud backend will allow reading the state but will not notify when a new state has arrived. This requires the home automation to check frequently if the state has been updated.

    + +

    Advantages:

    + +
      +
    • Able to control devices while at home or away.
    • +
    • Cloud has access to more computing power to mine the device data to suggest optimizations to the user.
    • +
    + +

    Disadvantages:

    + +
      +
    • It doesn’t work if the internet is down or the company stops support.
    • +
    • You are no longer in control about who has access to your data.
    • +
    + +

    Cloud pushing new state

    +

    All off the previous section applies to this one. On top of that the cloud will now notify the home automation when a new state has arrived. This means that as soon as the cloud knows, the home automation knows.

    + +

    Advantages:

    + +
      +
    • New state known as soon as available in the cloud.
    • +
    + +

    Polling the local device

    +

    These devices will offer an API that is locally accessible. The home automation will have to frequently check if the state has been updated.

    + +

    Advantages:

    + +
      +
    • Does not depend on the internet
    • +
    + +

    Disadvantages:

    + +
      +
    • To be pollable, a device needs to be always online which requires the device to be connected to a power source.
    • +
    + +

    Local device pushing new state

    +

    The best of the best. These devices will send out a notice when they get to a new state. These devices usually use a home automation protocol to pass it’s message to a hub that will do the heavy lifting of managing and notifying subscribers

    + +

    Advantages:

    + +
      +
    • Near instant delivery of new states.
    • +
    • Able to get a long battery life by going into deep sleep between state updates.
    • +
    + +

    Disadvantages:

    + +
      +
    • If it does not also support polling, home automation will not be made aware of the state after booting up until it changes.
    • +
    • If using deep sleep and wifi, will suffer a delay when waking up because connecting to WiFi and receiving an IP takes time.
    • +
    + +

    Control

    + +

    Controlling a device can, just like state, be done through cloud and/or local connectivity. But the more important part of control is knowing if your command was a success and the new state of the device.

    + +

    No control available

    +

    These devices are not able to be controlled. They will only offer state.

    + +

    Poll State after sending command

    +

    These devices will require the state to be polled after sending a command to see if a command was successfull.

    + +

    Advantages:

    + +
      +
    • The state will be known right after the command was issued.
    • +
    + +

    Disadvantages:

    + +
      +
    • It can take time before the state gets updated. How often do we poll and how long do we wait till we consider the command failed? Also, a state may change because of other factors. Difficult to determine if the updated state is because of our command.
    • +
    + +

    Device pushes state update

    +

    These devices will not return a new state as a result of the command but instead will push a new state right away. The downside of this approach is that we have to assume that a state update coming in within a certain period of time after a command is related to the command.

    + +

    Command returns new state

    +

    The very best. These devices will answer the command with the new state after executing the command.

    + +

    Classifying Home Assistant

    +

    Home Assistant tries to offer the best experience possible via its APIs. There are different ways of interacting with Home Assistant but all are local.

    + +
      +
    • State polling is available via the REST API
    • +
    • There is a stream API that will push new states as soon as they arrive to subscribers. This is how the frontend is able to always stay in sync.
    • +
    • Calling a service on Home Assistant will return all states that changed while the service was executing. This sadly does not always include the new state of devices that push their new state, as they might arrive after the service has finished.
    • +
    +
    + + +
    +

    Comments

    +
    +
    + + +
    + + + + +
    +
    + + + + + + + + + + \ No newline at end of file diff --git a/blog/archives/index.html b/blog/archives/index.html index afe5955537..5e756d1824 100644 --- a/blog/archives/index.html +++ b/blog/archives/index.html @@ -122,6 +122,38 @@

    2016

    + + + +
    @@ -1547,6 +1579,12 @@ diff --git a/blog/categories/architecture/atom.xml b/blog/categories/architecture/atom.xml index 93e35d03b0..b0796c7959 100644 --- a/blog/categories/architecture/atom.xml +++ b/blog/categories/architecture/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: Architecture | Home Assistant]]> - 2016-02-12T05:31:22+00:00 + 2016-02-12T07:34:02+00:00 https://home-assistant.io/ @@ -13,6 +13,191 @@ Octopress + + <![CDATA[Classifying the Internet of Things]]> + + 2016-02-12T06:31:00+00:00 + https://home-assistant.io/blog/2016/02/12/classifying-the-internet-of-things + 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:

    + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ClassifierDescription
    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.
    +

    + +

    State

    + +

    How state is communicated can be broken down into 5 categories. They are not mutually exclusive - a device state can be available both via the cloud and local connectivity.

    + +

    No state available

    +

    These are devices that do not have the capabilities to make their state available. They only allow to be controlled. For example, devices with infrared remote controls like TVs and ACs. You can press the turn on button on the remote but can only assume that your command was received and executed successfully. The device might not be powered or something is blocking the infrared receiver.

    + +

    Home automation will have to approach such devices based on the assumption that it’s commands are received correctly: using optimistic updates. This means that after sending a command it will update the state of the device as if the command was received successfully.

    + +

    Advantages:

    + +
      +
    • None
    • +
    + +

    Disadvantages:

    + +
      +
    • Home automation will assume the wrong state if the the command is not received correctly or if the device is controlled in any other way outside of the home automation system.
    • +
    + +

    Polling the cloud

    +

    These are devices that will only report their state to their own cloud backend. The cloud backend will allow reading the state but will not notify when a new state has arrived. This requires the home automation to check frequently if the state has been updated.

    + +

    Advantages:

    + +
      +
    • Able to control devices while at home or away.
    • +
    • Cloud has access to more computing power to mine the device data to suggest optimizations to the user.
    • +
    + +

    Disadvantages:

    + +
      +
    • It doesn’t work if the internet is down or the company stops support.
    • +
    • You are no longer in control about who has access to your data.
    • +
    + +

    Cloud pushing new state

    +

    All off the previous section applies to this one. On top of that the cloud will now notify the home automation when a new state has arrived. This means that as soon as the cloud knows, the home automation knows.

    + +

    Advantages:

    + +
      +
    • New state known as soon as available in the cloud.
    • +
    + +

    Polling the local device

    +

    These devices will offer an API that is locally accessible. The home automation will have to frequently check if the state has been updated.

    + +

    Advantages:

    + +
      +
    • Does not depend on the internet
    • +
    + +

    Disadvantages:

    + +
      +
    • To be pollable, a device needs to be always online which requires the device to be connected to a power source.
    • +
    + +

    Local device pushing new state

    +

    The best of the best. These devices will send out a notice when they get to a new state. These devices usually use a home automation protocol to pass it’s message to a hub that will do the heavy lifting of managing and notifying subscribers

    + +

    Advantages:

    + +
      +
    • Near instant delivery of new states.
    • +
    • Able to get a long battery life by going into deep sleep between state updates.
    • +
    + +

    Disadvantages:

    + +
      +
    • If it does not also support polling, home automation will not be made aware of the state after booting up until it changes.
    • +
    • If using deep sleep and wifi, will suffer a delay when waking up because connecting to WiFi and receiving an IP takes time.
    • +
    + +

    Control

    + +

    Controlling a device can, just like state, be done through cloud and/or local connectivity. But the more important part of control is knowing if your command was a success and the new state of the device.

    + +

    No control available

    +

    These devices are not able to be controlled. They will only offer state.

    + +

    Poll State after sending command

    +

    These devices will require the state to be polled after sending a command to see if a command was successfull.

    + +

    Advantages:

    + +
      +
    • The state will be known right after the command was issued.
    • +
    + +

    Disadvantages:

    + +
      +
    • It can take time before the state gets updated. How often do we poll and how long do we wait till we consider the command failed? Also, a state may change because of other factors. Difficult to determine if the updated state is because of our command.
    • +
    + +

    Device pushes state update

    +

    These devices will not return a new state as a result of the command but instead will push a new state right away. The downside of this approach is that we have to assume that a state update coming in within a certain period of time after a command is related to the command.

    + +

    Command returns new state

    +

    The very best. These devices will answer the command with the new state after executing the command.

    + +

    Classifying Home Assistant

    +

    Home Assistant tries to offer the best experience possible via its APIs. There are different ways of interacting with Home Assistant but all are local.

    + +
      +
    • State polling is available via the REST API
    • +
    • There is a stream API that will push new states as soon as they arrive to subscribers. This is how the frontend is able to always stay in sync.
    • +
    • Calling a service on Home Assistant will return all states that changed while the service was executing. This sadly does not always include the new state of devices that push their new state, as they might arrive after the service has finished.
    • +
    +]]>
    +
    + <![CDATA[Perfect Home Automation]]> diff --git a/blog/categories/architecture/index.html b/blog/categories/architecture/index.html index 3b36aca02d..349874e876 100644 --- a/blog/categories/architecture/index.html +++ b/blog/categories/architecture/index.html @@ -122,6 +122,38 @@

    2016

    + + + +
    @@ -254,6 +286,12 @@ diff --git a/blog/categories/branding/atom.xml b/blog/categories/branding/atom.xml index e5d608e4bd..d50b849487 100644 --- a/blog/categories/branding/atom.xml +++ b/blog/categories/branding/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: Branding | Home Assistant]]> - 2016-02-12T05:31:22+00:00 + 2016-02-12T07:34:02+00:00 https://home-assistant.io/ diff --git a/blog/categories/branding/index.html b/blog/categories/branding/index.html index e8cdad2137..0562cdefba 100644 --- a/blog/categories/branding/index.html +++ b/blog/categories/branding/index.html @@ -254,6 +254,12 @@ diff --git a/blog/categories/community/atom.xml b/blog/categories/community/atom.xml index fa33bd0aa9..0048fbe69f 100644 --- a/blog/categories/community/atom.xml +++ b/blog/categories/community/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: Community | Home Assistant]]> - 2016-02-12T05:31:22+00:00 + 2016-02-12T07:34:02+00:00 https://home-assistant.io/ diff --git a/blog/categories/community/index.html b/blog/categories/community/index.html index 85c05ddfe3..ea559a01a3 100644 --- a/blog/categories/community/index.html +++ b/blog/categories/community/index.html @@ -219,6 +219,12 @@ diff --git a/blog/categories/esp8266/atom.xml b/blog/categories/esp8266/atom.xml index 8f2a60a3ad..b493a83757 100644 --- a/blog/categories/esp8266/atom.xml +++ b/blog/categories/esp8266/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: ESP8266 | Home Assistant]]> - 2016-02-12T05:31:22+00:00 + 2016-02-12T07:34:02+00:00 https://home-assistant.io/ diff --git a/blog/categories/esp8266/index.html b/blog/categories/esp8266/index.html index 325f562514..2aa2ef011b 100644 --- a/blog/categories/esp8266/index.html +++ b/blog/categories/esp8266/index.html @@ -223,6 +223,12 @@ diff --git a/blog/categories/how-to/atom.xml b/blog/categories/how-to/atom.xml index 81974a43b4..3cc427f247 100644 --- a/blog/categories/how-to/atom.xml +++ b/blog/categories/how-to/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: How-To | Home Assistant]]> - 2016-02-12T05:31:22+00:00 + 2016-02-12T07:34:02+00:00 https://home-assistant.io/ diff --git a/blog/categories/how-to/index.html b/blog/categories/how-to/index.html index bc1e0f9dd8..75a65ccdd5 100644 --- a/blog/categories/how-to/index.html +++ b/blog/categories/how-to/index.html @@ -456,6 +456,12 @@ diff --git a/blog/categories/mqtt/atom.xml b/blog/categories/mqtt/atom.xml index 17e699ad75..208b5420c7 100644 --- a/blog/categories/mqtt/atom.xml +++ b/blog/categories/mqtt/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: MQTT | Home Assistant]]> - 2016-02-12T05:31:22+00:00 + 2016-02-12T07:34:02+00:00 https://home-assistant.io/ diff --git a/blog/categories/mqtt/index.html b/blog/categories/mqtt/index.html index 18c0cec8f9..92f3a9cfd2 100644 --- a/blog/categories/mqtt/index.html +++ b/blog/categories/mqtt/index.html @@ -294,6 +294,12 @@ diff --git a/blog/categories/public-service-announcement/atom.xml b/blog/categories/public-service-announcement/atom.xml index 7b0e59b384..ce616b19f6 100644 --- a/blog/categories/public-service-announcement/atom.xml +++ b/blog/categories/public-service-announcement/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: Public-Service-Announcement | Home Assistant]]> - 2016-02-12T05:31:22+00:00 + 2016-02-12T07:34:02+00:00 https://home-assistant.io/ diff --git a/blog/categories/public-service-announcement/index.html b/blog/categories/public-service-announcement/index.html index 0c3c26d743..023b09513c 100644 --- a/blog/categories/public-service-announcement/index.html +++ b/blog/categories/public-service-announcement/index.html @@ -219,6 +219,12 @@ diff --git a/blog/categories/release-notes/atom.xml b/blog/categories/release-notes/atom.xml index 1ccd48f272..b6a8c93f4f 100644 --- a/blog/categories/release-notes/atom.xml +++ b/blog/categories/release-notes/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: Release-Notes | Home Assistant]]> - 2016-02-12T05:31:22+00:00 + 2016-02-12T07:34:02+00:00 https://home-assistant.io/ diff --git a/blog/categories/release-notes/index.html b/blog/categories/release-notes/index.html index 6a54a2c501..b365e195be 100644 --- a/blog/categories/release-notes/index.html +++ b/blog/categories/release-notes/index.html @@ -1056,6 +1056,12 @@ diff --git a/blog/categories/survey/atom.xml b/blog/categories/survey/atom.xml index 4f206012dd..923bca60a3 100644 --- a/blog/categories/survey/atom.xml +++ b/blog/categories/survey/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: Survey | Home Assistant]]> - 2016-02-12T05:31:22+00:00 + 2016-02-12T07:34:02+00:00 https://home-assistant.io/ diff --git a/blog/categories/survey/index.html b/blog/categories/survey/index.html index b5f251602c..002546de98 100644 --- a/blog/categories/survey/index.html +++ b/blog/categories/survey/index.html @@ -219,6 +219,12 @@ diff --git a/blog/categories/user-stories/atom.xml b/blog/categories/user-stories/atom.xml index 9e39b63dca..1a5eb6dc18 100644 --- a/blog/categories/user-stories/atom.xml +++ b/blog/categories/user-stories/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: User-Stories | Home Assistant]]> - 2016-02-12T05:31:22+00:00 + 2016-02-12T07:34:02+00:00 https://home-assistant.io/ diff --git a/blog/categories/user-stories/index.html b/blog/categories/user-stories/index.html index 1e2914ed42..fa351376f0 100644 --- a/blog/categories/user-stories/index.html +++ b/blog/categories/user-stories/index.html @@ -219,6 +219,12 @@ diff --git a/blog/index.html b/blog/index.html index 0d1e0fd84d..fdb761ca48 100644 --- a/blog/index.html +++ b/blog/index.html @@ -102,6 +102,109 @@ +
    +
    + +

    + Classifying the Internet of Things +

    + + + +
    + + + seven minutes reading time + + + + + + Comments + +
    + +
    + + +
    +

    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:

    + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ClassifierDescription
    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 → + +
    +
    +
    +
    -
    -
    - -
    -
    - -

    - 0.9: Rollershutters, locks, binary sensors and InfluxDB -

    - - - -
    - - - less than one minute reading time - - - - - - Comments - -
    - -
    - - -
    -

    It’s been a few weeks but we managed to polish a nice new release of Home Assistant for y’all!

    - -

    - - - -

    To update, run pip3 install --upgrade homeassistant.

    - -

    - -

    - - -

    diff --git a/blog/posts/2/index.html b/blog/posts/2/index.html index 023ae5ba90..0d4524972d 100644 --- a/blog/posts/2/index.html +++ b/blog/posts/2/index.html @@ -102,6 +102,67 @@ +
    +
    + +

    + 0.9: Rollershutters, locks, binary sensors and InfluxDB +

    + + + +
    + + + less than one minute reading time + + + + + + Comments + +
    + +
    + + +
    +

    It’s been a few weeks but we managed to polish a nice new release of Home Assistant for y’all!

    + +

    + + + +

    To update, run pip3 install --upgrade homeassistant.

    + +

    + +

    + + + +
    +
    +
    +
    @@ -647,60 +708,6 @@ Inspried by a fea

    -
    -
    - -

    - Home Assistant meets IFTTT -

    - - - -
    - - - two minutes reading time - - - - - - Comments - -
    - -
    - - -
    -

    Today we announce the release of Home Assistant v0.7.2 which includes brand new support by @sfam to integrate with IFTTT. IFTTT stands for If This, Then That and is a webservice that integrates with almost every possible webservice out there. Adding Home Assistant to this mix means Home Assistant can connect with all via IFTTT.

    - -

    It is now possible to disable your irregation system if it is going to be cloudy tomorrow or tweet if your smoke alarm goes off.

    - -

    - -

    - -

    Head over to the setup instructions to get started with IFTTT. Click the read more button for some example recipes.

    - - - - Read on → - -
    -
    -
    -