From ce3dfe503b9cf33b20472ffd3ebd635fc2d8302d Mon Sep 17 00:00:00 2001 From: Travis CI Date: Sun, 20 Nov 2016 00:07:41 +0000 Subject: [PATCH] Site updated at 2016-11-20 00:07:41 UTC --- atom.xml | 106 +++--- blog/2014/12/18/website-launched/index.html | 12 +- .../index.html | 12 +- .../index.html | 12 +- .../index.html | 12 +- blog/2015/01/13/nest-in-da-house/index.html | 12 +- blog/2015/01/24/release-notes/index.html | 12 +- .../2015/02/08/looking-at-the-past/index.html | 12 +- blog/2015/02/24/streaming-updates/index.html | 12 +- .../index.html | 12 +- blog/2015/03/08/new-logo/index.html | 12 +- blog/2015/03/11/release-notes/index.html | 12 +- blog/2015/03/22/release-notes/index.html | 12 +- blog/2015/04/25/release-notes/index.html | 12 +- .../05/09/utc-time-zone-awareness/index.html | 12 +- blog/2015/05/14/release-notes/index.html | 12 +- blog/2015/06/10/release-notes/index.html | 12 +- .../index.html | 12 +- .../index.html | 12 +- .../index.html | 12 +- .../index.html | 12 +- .../index.html | 12 +- .../index.html | 12 +- .../13/home-assistant-meets-ifttt/index.html | 12 +- .../index.html | 12 +- .../alarm-sonos-and-itunes-support/index.html | 12 +- .../index.html | 12 +- .../index.html | 12 +- .../index.html | 12 +- .../index.html | 12 +- .../index.html | 12 +- .../11/22/survey-november-2015/index.html | 12 +- .../12/05/community-highlights/index.html | 12 +- .../index.html | 12 +- .../12/07/influxdb-and-grafana/index.html | 12 +- .../index.html | 12 +- .../index.html | 12 +- .../index.html | 12 +- .../index.html | 12 +- .../index.html | 12 +- .../01/19/perfect-home-automation/index.html | 12 +- .../index.html | 12 +- .../index.html | 12 +- .../index.html | 12 +- .../index.html | 12 +- .../multi-room-audio-with-snapcast/index.html | 12 +- .../02/20/community-highlights/index.html | 12 +- .../index.html | 12 +- .../index.html | 12 +- .../index.html | 12 +- .../index.html | 12 +- blog/2016/04/07/static-website/index.html | 12 +- .../index.html | 12 +- .../04/17/updated-documentation/index.html | 12 +- .../04/19/to-infinity-and-beyond/index.html | 12 +- .../index.html | 12 +- .../index.html | 12 +- .../05/06/open-iot-summit-talk/index.html | 12 +- .../empowering-scripts-and-alexa/index.html | 12 +- .../index.html | 12 +- blog/2016/05/18/why-we-use-polymer/index.html | 12 +- blog/2016/05/21/release-020/index.html | 12 +- .../index.html | 12 +- .../index.html | 12 +- .../06/01/community-highlights/index.html | 12 +- .../08/super-fast-web-enocean-lirc/index.html | 12 +- .../home-assistant-at-pycon-2016/index.html | 12 +- .../index.html | 12 +- .../usb-webcams-and-home-assistant/index.html | 12 +- .../index.html | 12 +- .../index.html | 12 +- .../sqlalchemy-knx-join-simplisafe/index.html | 12 +- .../19/visualizing-your-iot-data/index.html | 12 +- .../index.html | 12 +- .../esp8266-and-micropython-part1/index.html | 12 +- .../index.html | 12 +- .../03/laundry-automation-update/index.html | 12 +- .../index.html | 12 +- .../index.html | 12 +- blog/2016/08/16/we-have-apps-now/index.html | 12 +- .../index.html | 12 +- .../index.html | 12 +- .../esp8266-and-micropython-part2/index.html | 12 +- .../notify-group-reload-api-pihole/index.html | 12 +- .../async-sleepiq-emoncms-stocks/index.html | 12 +- .../01/we-have-raspberry-image-now/index.html | 12 +- blog/2016/10/02/hacktoberfest/index.html | 8 +- .../08/hassbian-rest-digital-ocean/index.html | 12 +- .../index.html | 12 +- .../10/25/explaining-the-updater/index.html | 12 +- .../hacktoberfest-influxdb-weather/index.html | 12 +- .../index.html | 286 ++++++++++++++ blog/archives/index.html | 44 ++- blog/categories/community/atom.xml | 2 +- blog/categories/community/index.html | 12 +- blog/categories/device-tracking/atom.xml | 2 +- blog/categories/device-tracking/index.html | 12 +- blog/categories/esp8266/atom.xml | 2 +- blog/categories/esp8266/index.html | 12 +- blog/categories/how-to/atom.xml | 2 +- blog/categories/how-to/index.html | 12 +- blog/categories/ibeacons/atom.xml | 2 +- blog/categories/ibeacons/index.html | 12 +- blog/categories/internet-of-things/atom.xml | 2 +- blog/categories/internet-of-things/index.html | 12 +- blog/categories/iot-data/atom.xml | 2 +- blog/categories/iot-data/index.html | 12 +- blog/categories/micropython/atom.xml | 2 +- blog/categories/micropython/index.html | 12 +- blog/categories/mqtt/atom.xml | 2 +- blog/categories/mqtt/index.html | 12 +- blog/categories/organisation/atom.xml | 2 +- blog/categories/organisation/index.html | 12 +- blog/categories/owntracks/atom.xml | 2 +- blog/categories/owntracks/index.html | 12 +- blog/categories/presence-detection/atom.xml | 2 +- blog/categories/presence-detection/index.html | 12 +- .../public-service-announcement/atom.xml | 2 +- .../public-service-announcement/index.html | 12 +- blog/categories/release-notes/atom.xml | 240 ++++-------- blog/categories/release-notes/index.html | 44 ++- blog/categories/survey/atom.xml | 2 +- blog/categories/survey/index.html | 12 +- blog/categories/talks/atom.xml | 2 +- blog/categories/talks/index.html | 12 +- blog/categories/technology/atom.xml | 2 +- blog/categories/technology/index.html | 12 +- blog/categories/user-stories/atom.xml | 2 +- blog/categories/user-stories/index.html | 12 +- blog/categories/video/atom.xml | 2 +- blog/categories/video/index.html | 12 +- blog/categories/website/atom.xml | 2 +- blog/categories/website/index.html | 12 +- blog/index.html | 321 ++++------------ blog/posts/10/index.html | 252 +++++++++++++ blog/posts/2/index.html | 335 ++++++++++++----- blog/posts/3/index.html | 172 +++++---- blog/posts/4/index.html | 131 ++++--- blog/posts/5/index.html | 130 +++---- blog/posts/6/index.html | 126 ++++--- blog/posts/7/index.html | 109 +++--- blog/posts/8/index.html | 144 ++++--- blog/posts/9/index.html | 124 ++++-- components/apcupsd/index.html | 3 + components/binary_sensor.netatmo/index.html | 2 + components/bloomsky/index.html | 3 + components/calendar.google/index.html | 294 +++++++++++++++ components/calendar/index.html | 152 ++++++++ .../device_tracker.actiontec/index.html | 6 + components/device_tracker.aruba/index.html | 6 + components/device_tracker.asuswrt/index.html | 6 + .../device_tracker.automatic/index.html | 6 + components/device_tracker.bbox/index.html | 6 + .../index.html | 6 + .../index.html | 6 + .../device_tracker.bt_home_hub_5/index.html | 6 + .../device_tracker.cisco_ios/index.html | 294 +++++++++++++++ components/device_tracker.ddwrt/index.html | 6 + components/device_tracker.fritz/index.html | 6 + components/device_tracker.icloud/index.html | 6 + components/device_tracker.locative/index.html | 6 + components/device_tracker.luci/index.html | 6 + components/device_tracker.mqtt/index.html | 6 + components/device_tracker.netgear/index.html | 6 + .../device_tracker.nmap_tracker/index.html | 6 + .../device_tracker.owntracks/index.html | 6 + components/device_tracker.snmp/index.html | 6 + components/device_tracker.swisscom/index.html | 255 +++++++++++++ components/device_tracker.thomson/index.html | 6 + components/device_tracker.tomato/index.html | 6 + components/device_tracker.tplink/index.html | 6 + components/device_tracker.ubus/index.html | 6 + components/device_tracker.unifi/index.html | 6 + .../device_tracker.volvooncall/index.html | 6 + components/device_tracker/index.html | 6 + components/digital_ocean/index.html | 3 + components/ecobee/index.html | 3 + components/emulated_hue/index.html | 3 + components/enocean/index.html | 3 + components/ffmpeg/index.html | 3 + components/homematic/index.html | 3 + components/http/index.html | 1 + components/index.html | 266 ++++++++++--- components/insteon_hub/index.html | 3 + components/isy994/index.html | 3 + components/joaoapps_join/index.html | 3 + components/light.blinksticklight/index.html | 3 + components/light.enocean/index.html | 3 + components/light.flux_led/index.html | 19 + components/light.homematic/index.html | 3 + components/light.hue/index.html | 3 + components/light.hyperion/index.html | 3 + components/light.insteon_hub/index.html | 3 + components/light.isy994/index.html | 3 + components/light.lifx/index.html | 3 + components/light.limitlessled/index.html | 3 + components/light.litejet/index.html | 3 + components/light.mqtt/index.html | 3 + components/light.mqtt_json/index.html | 3 + components/light.mqtt_template/index.html | 337 +++++++++++++++++ components/light.mysensors/index.html | 3 + components/light.osramlightify/index.html | 3 + components/light.qwikswitch/index.html | 3 + components/light.rfxtrx/index.html | 3 + components/light.scsgate/index.html | 3 + components/light.tellstick/index.html | 3 + components/light.vera/index.html | 3 + components/light.wemo/index.html | 3 + components/light.wink/index.html | 3 + components/light.x10/index.html | 3 + components/light.yeelight/index.html | 3 + components/light.zigbee/index.html | 3 + components/light.zwave/index.html | 3 + components/light/index.html | 34 ++ components/litejet/index.html | 3 + components/mochad/index.html | 3 + components/modbus/index.html | 3 + components/mqtt/index.html | 29 ++ components/mysensors/index.html | 3 + components/neato/index.html | 285 ++++++++++++++ components/nest/index.html | 3 + components/netatmo/index.html | 3 + components/nuimo_controller/index.html | 3 + components/octoprint/index.html | 3 + components/pilight/index.html | 3 + components/qwikswitch/index.html | 3 + components/rfxtrx/index.html | 3 + components/scsgate/index.html | 3 + components/sensor.apcupsd/index.html | 9 + components/sensor.api_stream/index.html | 317 ++++++++++++++++ components/sensor.arest/index.html | 9 + components/sensor.arwn/index.html | 9 + components/sensor.bbox/index.html | 9 + components/sensor.bloomsky/index.html | 9 + components/sensor.broadlink/index.html | 355 ++++++++++++++++++ components/sensor.command_line/index.html | 9 + .../sensor.dte_energy_bridge/index.html | 3 + components/sensor.dweet/index.html | 9 + components/sensor.efergy/index.html | 3 + components/sensor.eliqonline/index.html | 3 + components/sensor.emoncms/index.html | 9 + components/sensor.enocean/index.html | 9 + components/sensor.envisalink/index.html | 9 + components/sensor.gpsd/index.html | 9 + components/sensor.haveibeenpwned/index.html | 9 + components/sensor.homematic/index.html | 9 + components/sensor.http/index.html | 9 + components/sensor.imap/index.html | 9 + .../sensor.imap_email_content/index.html | 9 + components/sensor.influxdb/index.html | 9 + components/sensor.isy994/index.html | 9 + components/sensor.loop_energy/index.html | 3 + components/sensor.mfi/index.html | 9 + components/sensor.mhz19/index.html | 9 + components/sensor.min_max/index.html | 9 + components/sensor.modbus/index.html | 9 + components/sensor.moldindicator/index.html | 9 + components/sensor.mqtt/index.html | 9 + components/sensor.mqtt_room/index.html | 6 + components/sensor.mysensors/index.html | 9 + components/sensor.neato/index.html | 321 ++++++++++++++++ components/sensor.nest/index.html | 9 + components/sensor.neurio_energy/index.html | 3 + components/sensor.octoprint/index.html | 9 + components/sensor.ohmconnect/index.html | 3 + components/sensor.onewire/index.html | 9 + components/sensor.pilight/index.html | 9 + components/sensor.pvoutput/index.html | 199 ++++++++++ components/sensor.random/index.html | 9 + components/sensor.rest/index.html | 9 + components/sensor.rfxtrx/index.html | 9 + components/sensor.scrape/index.html | 9 + components/sensor.sleepiq/index.html | 9 + components/sensor.statistics/index.html | 9 + components/sensor.synologydsm/index.html | 20 +- components/sensor.tcp/index.html | 9 + components/sensor.tellduslive/index.html | 9 + components/sensor.tellstick/index.html | 9 + components/sensor.temper/index.html | 9 + components/sensor.template/index.html | 9 + components/sensor.thinkingcleaner/index.html | 9 + components/sensor.time_date/index.html | 3 + components/sensor.vera/index.html | 9 + components/sensor.verisure/index.html | 9 + components/sensor.wink/index.html | 9 + components/sensor.worldclock/index.html | 3 + components/sensor.wunderground/index.html | 91 +++-- components/sensor.zigbee/index.html | 9 + components/sensor.zoneminder/index.html | 9 + components/sensor.zwave/index.html | 9 + components/sensor/index.html | 12 + components/sleepiq/index.html | 3 + components/switch.neato/index.html | 34 +- components/switch.wake_on_lan/index.html | 4 +- components/tellduslive/index.html | 3 + components/tellstick/index.html | 3 + components/vera/index.html | 3 + components/verisure/index.html | 3 + components/wemo/index.html | 3 + components/wink/index.html | 3 + components/zwave/index.html | 3 + developers/credits/index.html | 19 +- getting-started/z-wave/index.html | 2 + images/supported_brands/broadlink.png | Bin 0 -> 19070 bytes images/supported_brands/cisco.png | Bin 0 -> 22153 bytes images/supported_brands/google_calendar.png | Bin 0 -> 19639 bytes images/supported_brands/pvoutput.png | Bin 0 -> 8035 bytes images/supported_brands/swisscom.png | Bin 0 -> 53260 bytes index.html | 16 +- sitemap.xml | 67 +++- topics/templating/index.html | 1 + 311 files changed, 6273 insertions(+), 1830 deletions(-) create mode 100644 blog/2016/11/19/calendar-wink-thermostats-cisco-ios/index.html create mode 100644 blog/posts/10/index.html create mode 100644 components/calendar.google/index.html create mode 100644 components/calendar/index.html create mode 100644 components/device_tracker.cisco_ios/index.html create mode 100644 components/device_tracker.swisscom/index.html create mode 100644 components/light.mqtt_template/index.html create mode 100644 components/neato/index.html create mode 100644 components/sensor.api_stream/index.html create mode 100644 components/sensor.broadlink/index.html create mode 100644 components/sensor.neato/index.html create mode 100644 components/sensor.pvoutput/index.html create mode 100644 images/supported_brands/broadlink.png create mode 100644 images/supported_brands/cisco.png create mode 100644 images/supported_brands/google_calendar.png create mode 100644 images/supported_brands/pvoutput.png create mode 100644 images/supported_brands/swisscom.png diff --git a/atom.xml b/atom.xml index 44aba88ea2..3c1b32456d 100644 --- a/atom.xml +++ b/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Home Assistant]]> - 2016-11-19T23:39:26+00:00 + 2016-11-20T00:05:39+00:00 https://home-assistant.io/ @@ -13,6 +13,51 @@ Octopress + + <![CDATA[0.33: New Calendar component, Wink thermostats and Cisco IOS]]> + + 2016-11-19T03:04:05+00:00 + https://home-assistant.io/blog/2016/11/19/calendar--wink-thermostats--cisco-ios + For this release we put a lot of focus on finishing our async upgrade and fix a bunch of bugs in the process.

+ +

But a new release wouldn’t be awesome if it didn’t had some new goodies and this release is no different. This release includes a new calendar component by @mnestor. It comes now with Google Calendar support, which should allow you to automate things based on your calendar events!

+ +

Changes

+ + + +

Breaking changes

+ +
    +
  • We have included a fix that impacts how we generate entity ids. This only impacts devices with accented characters. Instead of being stripped out, they are now replaced with the non-accented version. So now Tèst Mörê will become test_more instead of tst_mr.
  • +
  • Command line switches will now use the specified object ID for their entity ID instead of basing it off the name.
  • +
+ +]]>
+
+ <![CDATA[0.32: Hacktoberfest, InfluxDB sensor, Error reporting, and Weather]]> @@ -2180,65 +2225,6 @@ SQLite version 3.11.0 2016-02-15 17:29:24

Most of the graphs are pretty ugly. So, further beautification will be needed. If you have created a nice report including some amazing graphs then the Home Assistant community would be grateful for sharing them in our forum.

-]]> -
- - - <![CDATA[0.24: SQLAlchemy, KNX, Join by Joaoapps, and SimpliSafe.]]> - - 2016-07-16T12:00:00+00:00 - https://home-assistant.io/blog/2016/07/16/sqlalchemy-knx-join-simplisafe - It’s time for Home Assistant 0.24 and it’s full of new integration for your Home. It contains some structural changes to our history which requires action from your end, so please keep reading.

- -

MapQuest discontinued their free and direct tile access by Monday, July 11, 2016. With CARTO we found a very cool and suitable solution. They allow us to use their tile for the map. Thank you, CARTO.

- -

Roy Hooper did an amazing job migrating the history support from being tied to SQLite to use the ORM SQLAlchemy instead. This means that you can now use any SQL backend for the history. So besides SQLite you can now databases like MySQL or PostgreSQL. However, this does require that you install SQLAlchemy and run a command to migrate your existing history over. We tried to make the process as seamless as possible by introducing a new command line script:

- -
$ pip3 install SQLAlchemy
-$ hass --script db_migrator --config /path/to/config
-
-
- -

You can omit the --config option if you use the default configuration directory. Run the script with --help to get more options.

- -

- - - -

Hotfix 0.24.1 - July 21

- -

Quick hot fix after we found a bug in the migrator where it wouldn’t work with a database in a non-standard location. Thanks to @n8henrie and @AlucardZero.

- -

Breaking changes

- -
    -
  • Migrating existing databases (see above).
  • -
  • The APCUPSd Sensor was updated. This will need that you modify your configuration.yaml file.
  • -
  • Entity IDs of Verisure locks will change. This is a one time change but should improve readability.
  • -
- ]]>
diff --git a/blog/2014/12/18/website-launched/index.html b/blog/2014/12/18/website-launched/index.html index 9b82bfd6cb..4f86e8a571 100644 --- a/blog/2014/12/18/website-launched/index.html +++ b/blog/2014/12/18/website-launched/index.html @@ -170,6 +170,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 85ff3a355c..d8c40e02eb 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 @@ -225,6 +225,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 5fbf573337..da1fbbb68d 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 @@ -205,6 +205,12 @@ 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 0280726fd3..a3c6b89c1a 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 @@ -182,6 +182,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 53902a540e..a3c84954f7 100644 --- a/blog/2015/01/13/nest-in-da-house/index.html +++ b/blog/2015/01/13/nest-in-da-house/index.html @@ -185,6 +185,12 @@ diff --git a/blog/2015/01/24/release-notes/index.html b/blog/2015/01/24/release-notes/index.html index cea956707f..e1b7c2998c 100644 --- a/blog/2015/01/24/release-notes/index.html +++ b/blog/2015/01/24/release-notes/index.html @@ -193,6 +193,12 @@ Home Assistant now supports --open-ui and 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 c8a9dffddb..30df5faf65 100644 --- a/blog/2015/02/08/looking-at-the-past/index.html +++ b/blog/2015/02/08/looking-at-the-past/index.html @@ -201,6 +201,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 47cc2c6b94..eea4273e55 100644 --- a/blog/2015/02/24/streaming-updates/index.html +++ b/blog/2015/02/24/streaming-updates/index.html @@ -186,6 +186,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 83ee8bae4c..e4ebfc7c5d 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 @@ -176,6 +176,12 @@ diff --git a/blog/2015/03/08/new-logo/index.html b/blog/2015/03/08/new-logo/index.html index d5ed724a95..e789fe3cc9 100644 --- a/blog/2015/03/08/new-logo/index.html +++ b/blog/2015/03/08/new-logo/index.html @@ -177,6 +177,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 c19afb42d7..1bc84c37fe 100644 --- a/blog/2015/03/11/release-notes/index.html +++ b/blog/2015/03/11/release-notes/index.html @@ -210,6 +210,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 1fe291fe40..1bf39397c4 100644 --- a/blog/2015/03/22/release-notes/index.html +++ b/blog/2015/03/22/release-notes/index.html @@ -245,6 +245,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 3b4cdcd323..a7e48f3619 100644 --- a/blog/2015/04/25/release-notes/index.html +++ b/blog/2015/04/25/release-notes/index.html @@ -256,6 +256,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 0e0dab553f..63cb371f6c 100644 --- a/blog/2015/05/09/utc-time-zone-awareness/index.html +++ b/blog/2015/05/09/utc-time-zone-awareness/index.html @@ -197,6 +197,12 @@ diff --git a/blog/2015/05/14/release-notes/index.html b/blog/2015/05/14/release-notes/index.html index 3e9c6d025a..9db05549fb 100644 --- a/blog/2015/05/14/release-notes/index.html +++ b/blog/2015/05/14/release-notes/index.html @@ -277,6 +277,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 e422c750de..841f635e7d 100644 --- a/blog/2015/06/10/release-notes/index.html +++ b/blog/2015/06/10/release-notes/index.html @@ -328,6 +328,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 b90b5719be..a56323cc46 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 @@ -284,6 +284,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 3bfa4ee334..d8f19240de 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 @@ -269,6 +269,12 @@ Support for Temper temperature sensors has been contributed by +
  • + 0.33: New Calendar component, Wink thermostats and Cisco IOS +
  • + + +
  • 0.32: Hacktoberfest, InfluxDB sensor, Error reporting, and Weather
  • @@ -292,12 +298,6 @@ Support for Temper temperature sensors has been contributed by - Participating in Hacktoberfest - - - 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 b06d89413b..f8989148ef 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 @@ -193,6 +193,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 7359fa254e..b89eaf6363 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 @@ -306,6 +306,12 @@ The automation and script syntax here is using a deprecated and no longer suppor 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 6135e0ca8e..1df480188f 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 @@ -270,6 +270,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 d0f3493e80..8ce696149f 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 @@ -361,6 +361,12 @@ 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 410de4d34e..ee53694efe 100644 --- a/blog/2015/09/13/home-assistant-meets-ifttt/index.html +++ b/blog/2015/09/13/home-assistant-meets-ifttt/index.html @@ -342,6 +342,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 b4a92b6fe3..333b29dd24 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 @@ -235,6 +235,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 ca6279aded..e2575cea6d 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 @@ -220,6 +220,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 55b03cea71..9fa1b5e9c8 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 @@ -200,6 +200,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 af8bd670ba..f4419c4e57 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 @@ -409,6 +409,12 @@ Home Assistant will keep track of historical values and allow you to integrate i 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 07ad4df07b..8dbc30d839 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 @@ -189,6 +189,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 f117037f50..d08c626dc6 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 @@ -211,6 +211,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 d236121d92..be2594c4cf 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 @@ -205,6 +205,12 @@ diff --git a/blog/2015/11/22/survey-november-2015/index.html b/blog/2015/11/22/survey-november-2015/index.html index 9d3a652d84..0eb3cf0ab4 100644 --- a/blog/2015/11/22/survey-november-2015/index.html +++ b/blog/2015/11/22/survey-november-2015/index.html @@ -247,6 +247,12 @@ diff --git a/blog/2015/12/05/community-highlights/index.html b/blog/2015/12/05/community-highlights/index.html index 593d76d191..5b50fd8ae4 100644 --- a/blog/2015/12/05/community-highlights/index.html +++ b/blog/2015/12/05/community-highlights/index.html @@ -182,6 +182,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 f999d3e0c6..34a507eb3e 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 @@ -189,6 +189,12 @@ diff --git a/blog/2015/12/07/influxdb-and-grafana/index.html b/blog/2015/12/07/influxdb-and-grafana/index.html index 677aed6026..64c1937af9 100644 --- a/blog/2015/12/07/influxdb-and-grafana/index.html +++ b/blog/2015/12/07/influxdb-and-grafana/index.html @@ -264,6 +264,12 @@ name: binary_sensor 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 9c713dc694..e9033ece41 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 @@ -226,6 +226,12 @@ This is where we’ll configure our task, so select the plus icon to select an a 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 a8175c64c6..61cd1e18c9 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 @@ -202,6 +202,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 ce80459196..2862a41ad5 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 @@ -261,6 +261,12 @@ sudo docker run -it --rm -p 80:80 --name certbot \ 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 43aade0175..1ed14c916f 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 @@ -221,6 +221,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 c41d2f51c0..276a5ee44c 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 @@ -203,6 +203,12 @@ diff --git a/blog/2016/01/19/perfect-home-automation/index.html b/blog/2016/01/19/perfect-home-automation/index.html index 76fe01b6ef..67983bff54 100644 --- a/blog/2016/01/19/perfect-home-automation/index.html +++ b/blog/2016/01/19/perfect-home-automation/index.html @@ -207,6 +207,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 fc9f256cd6..eff6683a24 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 @@ -209,6 +209,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 17722ade62..769eb816cf 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 @@ -380,6 +380,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 index 8fbc7d7bc1..bbdf94de15 100644 --- a/blog/2016/02/12/classifying-the-internet-of-things/index.html +++ b/blog/2016/02/12/classifying-the-internet-of-things/index.html @@ -346,6 +346,12 @@ diff --git a/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/index.html b/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/index.html index 876641b2b0..8a99d348ae 100644 --- a/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/index.html +++ b/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/index.html @@ -212,6 +212,12 @@ diff --git a/blog/2016/02/18/multi-room-audio-with-snapcast/index.html b/blog/2016/02/18/multi-room-audio-with-snapcast/index.html index 9ce1922221..39264b274d 100644 --- a/blog/2016/02/18/multi-room-audio-with-snapcast/index.html +++ b/blog/2016/02/18/multi-room-audio-with-snapcast/index.html @@ -296,6 +296,12 @@ diff --git a/blog/2016/02/20/community-highlights/index.html b/blog/2016/02/20/community-highlights/index.html index 741526afb8..d93f05e27a 100644 --- a/blog/2016/02/20/community-highlights/index.html +++ b/blog/2016/02/20/community-highlights/index.html @@ -220,6 +220,12 @@ Hold your NFC tag against the belly of Garfield to unlock the alarm. diff --git a/blog/2016/02/27/steam-d-link-smart-plugs-and-neurio-energy-sensors/index.html b/blog/2016/02/27/steam-d-link-smart-plugs-and-neurio-energy-sensors/index.html index 71fc2e48c7..0317a2ae67 100644 --- a/blog/2016/02/27/steam-d-link-smart-plugs-and-neurio-energy-sensors/index.html +++ b/blog/2016/02/27/steam-d-link-smart-plugs-and-neurio-energy-sensors/index.html @@ -211,6 +211,12 @@ diff --git a/blog/2016/03/12/z-wave-pep257-templated-service-calls/index.html b/blog/2016/03/12/z-wave-pep257-templated-service-calls/index.html index 234fb8e0b6..a58ae989c7 100644 --- a/blog/2016/03/12/z-wave-pep257-templated-service-calls/index.html +++ b/blog/2016/03/12/z-wave-pep257-templated-service-calls/index.html @@ -215,6 +215,12 @@ player state attributes. This change affects automations, scripts and scenes. +
  • + 0.33: New Calendar component, Wink thermostats and Cisco IOS +
  • + + +
  • 0.32: Hacktoberfest, InfluxDB sensor, Error reporting, and Weather
  • @@ -238,12 +244,6 @@ player state attributes. This change affects automations, scripts and scenes. - -
  • - Participating in Hacktoberfest -
  • - - diff --git a/blog/2016/03/26/embedded-mqtt-broker-uber-yamaha-growl/index.html b/blog/2016/03/26/embedded-mqtt-broker-uber-yamaha-growl/index.html index 242ec149cb..218a1d677a 100644 --- a/blog/2016/03/26/embedded-mqtt-broker-uber-yamaha-growl/index.html +++ b/blog/2016/03/26/embedded-mqtt-broker-uber-yamaha-growl/index.html @@ -224,6 +224,12 @@ diff --git a/blog/2016/04/05/your-hub-should-be-local-and-open/index.html b/blog/2016/04/05/your-hub-should-be-local-and-open/index.html index a55682cc48..1ba3aaacfe 100644 --- a/blog/2016/04/05/your-hub-should-be-local-and-open/index.html +++ b/blog/2016/04/05/your-hub-should-be-local-and-open/index.html @@ -180,6 +180,12 @@ diff --git a/blog/2016/04/07/static-website/index.html b/blog/2016/04/07/static-website/index.html index d9611cb2cd..4bf03790a2 100644 --- a/blog/2016/04/07/static-website/index.html +++ b/blog/2016/04/07/static-website/index.html @@ -186,6 +186,12 @@ diff --git a/blog/2016/04/09/onkyo-panasonic-gtfs-and-config-validation/index.html b/blog/2016/04/09/onkyo-panasonic-gtfs-and-config-validation/index.html index d75e12360f..1270ef7e1e 100644 --- a/blog/2016/04/09/onkyo-panasonic-gtfs-and-config-validation/index.html +++ b/blog/2016/04/09/onkyo-panasonic-gtfs-and-config-validation/index.html @@ -194,6 +194,12 @@ diff --git a/blog/2016/04/17/updated-documentation/index.html b/blog/2016/04/17/updated-documentation/index.html index 0a5c4d34e5..ed8faa6f19 100644 --- a/blog/2016/04/17/updated-documentation/index.html +++ b/blog/2016/04/17/updated-documentation/index.html @@ -178,6 +178,12 @@ diff --git a/blog/2016/04/19/to-infinity-and-beyond/index.html b/blog/2016/04/19/to-infinity-and-beyond/index.html index 5be1e935ed..ea530bcc29 100644 --- a/blog/2016/04/19/to-infinity-and-beyond/index.html +++ b/blog/2016/04/19/to-infinity-and-beyond/index.html @@ -195,6 +195,12 @@ diff --git a/blog/2016/04/20/bluetooth-lg-webos-tvs-and-roombas/index.html b/blog/2016/04/20/bluetooth-lg-webos-tvs-and-roombas/index.html index ea12c25a87..15c8af650c 100644 --- a/blog/2016/04/20/bluetooth-lg-webos-tvs-and-roombas/index.html +++ b/blog/2016/04/20/bluetooth-lg-webos-tvs-and-roombas/index.html @@ -213,6 +213,12 @@ diff --git a/blog/2016/04/30/ibeacons-part-1-making-presence-detection-work-better/index.html b/blog/2016/04/30/ibeacons-part-1-making-presence-detection-work-better/index.html index f4cd07792e..c183720e32 100644 --- a/blog/2016/04/30/ibeacons-part-1-making-presence-detection-work-better/index.html +++ b/blog/2016/04/30/ibeacons-part-1-making-presence-detection-work-better/index.html @@ -300,6 +300,12 @@ For example, my wife works next door - and I couldn’t detect whether she’s a diff --git a/blog/2016/05/06/open-iot-summit-talk/index.html b/blog/2016/05/06/open-iot-summit-talk/index.html index 2d76dce5c8..5062068140 100644 --- a/blog/2016/05/06/open-iot-summit-talk/index.html +++ b/blog/2016/05/06/open-iot-summit-talk/index.html @@ -176,6 +176,12 @@ diff --git a/blog/2016/05/07/empowering-scripts-and-alexa/index.html b/blog/2016/05/07/empowering-scripts-and-alexa/index.html index f64ffd2793..00a01acee8 100644 --- a/blog/2016/05/07/empowering-scripts-and-alexa/index.html +++ b/blog/2016/05/07/empowering-scripts-and-alexa/index.html @@ -258,6 +258,12 @@ diff --git a/blog/2016/05/12/video-configuring-home-assistant/index.html b/blog/2016/05/12/video-configuring-home-assistant/index.html index d8786cbc56..8c761f54b9 100644 --- a/blog/2016/05/12/video-configuring-home-assistant/index.html +++ b/blog/2016/05/12/video-configuring-home-assistant/index.html @@ -176,6 +176,12 @@ diff --git a/blog/2016/05/18/why-we-use-polymer/index.html b/blog/2016/05/18/why-we-use-polymer/index.html index eae61a9f11..17983e865c 100644 --- a/blog/2016/05/18/why-we-use-polymer/index.html +++ b/blog/2016/05/18/why-we-use-polymer/index.html @@ -190,6 +190,12 @@ diff --git a/blog/2016/05/21/release-020/index.html b/blog/2016/05/21/release-020/index.html index 6c81a0f6ab..949c878f62 100644 --- a/blog/2016/05/21/release-020/index.html +++ b/blog/2016/05/21/release-020/index.html @@ -209,6 +209,12 @@ diff --git a/blog/2016/05/22/get-started-with-all-in-one-installer/index.html b/blog/2016/05/22/get-started-with-all-in-one-installer/index.html index ea3f1e2570..ab04c0dcaa 100644 --- a/blog/2016/05/22/get-started-with-all-in-one-installer/index.html +++ b/blog/2016/05/22/get-started-with-all-in-one-installer/index.html @@ -180,6 +180,12 @@ diff --git a/blog/2016/05/26/ibeacons-how-to-track-things-that-cant-track-themselves-part-ii/index.html b/blog/2016/05/26/ibeacons-how-to-track-things-that-cant-track-themselves-part-ii/index.html index 30ec4a5d03..f1c354ea1f 100644 --- a/blog/2016/05/26/ibeacons-how-to-track-things-that-cant-track-themselves-part-ii/index.html +++ b/blog/2016/05/26/ibeacons-how-to-track-things-that-cant-track-themselves-part-ii/index.html @@ -316,6 +316,12 @@ diff --git a/blog/2016/06/01/community-highlights/index.html b/blog/2016/06/01/community-highlights/index.html index 04adf187b7..ef9a6f6f4d 100644 --- a/blog/2016/06/01/community-highlights/index.html +++ b/blog/2016/06/01/community-highlights/index.html @@ -196,6 +196,12 @@ diff --git a/blog/2016/06/08/super-fast-web-enocean-lirc/index.html b/blog/2016/06/08/super-fast-web-enocean-lirc/index.html index ebcef5622e..89f38c62a8 100644 --- a/blog/2016/06/08/super-fast-web-enocean-lirc/index.html +++ b/blog/2016/06/08/super-fast-web-enocean-lirc/index.html @@ -230,6 +230,12 @@ diff --git a/blog/2016/06/13/home-assistant-at-pycon-2016/index.html b/blog/2016/06/13/home-assistant-at-pycon-2016/index.html index a3c2678df3..abf3fb5533 100644 --- a/blog/2016/06/13/home-assistant-at-pycon-2016/index.html +++ b/blog/2016/06/13/home-assistant-at-pycon-2016/index.html @@ -201,6 +201,12 @@ diff --git a/blog/2016/06/18/pandora-bt-home-hub-5-and-local-file-camera/index.html b/blog/2016/06/18/pandora-bt-home-hub-5-and-local-file-camera/index.html index 4d63884b33..8ff8d0fc16 100644 --- a/blog/2016/06/18/pandora-bt-home-hub-5-and-local-file-camera/index.html +++ b/blog/2016/06/18/pandora-bt-home-hub-5-and-local-file-camera/index.html @@ -223,6 +223,12 @@ diff --git a/blog/2016/06/23/usb-webcams-and-home-assistant/index.html b/blog/2016/06/23/usb-webcams-and-home-assistant/index.html index 75e7430715..d3a6380782 100644 --- a/blog/2016/06/23/usb-webcams-and-home-assistant/index.html +++ b/blog/2016/06/23/usb-webcams-and-home-assistant/index.html @@ -277,6 +277,12 @@ target_dir /tmp diff --git a/blog/2016/07/01/envisalink-homematic-hdmi-cec-and-sony-bravia-tv/index.html b/blog/2016/07/01/envisalink-homematic-hdmi-cec-and-sony-bravia-tv/index.html index 4a6c8eaf03..199cc11229 100644 --- a/blog/2016/07/01/envisalink-homematic-hdmi-cec-and-sony-bravia-tv/index.html +++ b/blog/2016/07/01/envisalink-homematic-hdmi-cec-and-sony-bravia-tv/index.html @@ -224,6 +224,12 @@ diff --git a/blog/2016/07/06/pocketchip-running-home-assistant/index.html b/blog/2016/07/06/pocketchip-running-home-assistant/index.html index 14fb3c3d93..2423bab494 100644 --- a/blog/2016/07/06/pocketchip-running-home-assistant/index.html +++ b/blog/2016/07/06/pocketchip-running-home-assistant/index.html @@ -219,6 +219,12 @@ Over a year ago I participated in the +
  • + 0.33: New Calendar component, Wink thermostats and Cisco IOS +
  • + + +
  • 0.32: Hacktoberfest, InfluxDB sensor, Error reporting, and Weather
  • @@ -242,12 +248,6 @@ Over a year ago I participated in the - Participating in Hacktoberfest - - - diff --git a/blog/2016/07/16/sqlalchemy-knx-join-simplisafe/index.html b/blog/2016/07/16/sqlalchemy-knx-join-simplisafe/index.html index 52c90d9735..1df2865dcf 100644 --- a/blog/2016/07/16/sqlalchemy-knx-join-simplisafe/index.html +++ b/blog/2016/07/16/sqlalchemy-knx-join-simplisafe/index.html @@ -219,6 +219,12 @@ diff --git a/blog/2016/07/19/visualizing-your-iot-data/index.html b/blog/2016/07/19/visualizing-your-iot-data/index.html index dcf4773e47..808522e825 100644 --- a/blog/2016/07/19/visualizing-your-iot-data/index.html +++ b/blog/2016/07/19/visualizing-your-iot-data/index.html @@ -271,6 +271,12 @@ SQLite version 3.11.0 2016-02-15 17:29:24 diff --git a/blog/2016/07/23/internet-of-things-data-exploration-with-jupyter-notebooks/index.html b/blog/2016/07/23/internet-of-things-data-exploration-with-jupyter-notebooks/index.html index 6a3a99d186..40875627f2 100644 --- a/blog/2016/07/23/internet-of-things-data-exploration-with-jupyter-notebooks/index.html +++ b/blog/2016/07/23/internet-of-things-data-exploration-with-jupyter-notebooks/index.html @@ -236,6 +236,12 @@ One of the graphs created with this tutorial. diff --git a/blog/2016/07/28/esp8266-and-micropython-part1/index.html b/blog/2016/07/28/esp8266-and-micropython-part1/index.html index 278f073515..0fb229766b 100644 --- a/blog/2016/07/28/esp8266-and-micropython-part1/index.html +++ b/blog/2016/07/28/esp8266-and-micropython-part1/index.html @@ -323,6 +323,12 @@ If a module is missing then you need to download it from the +
  • + 0.33: New Calendar component, Wink thermostats and Cisco IOS +
  • + + +
  • 0.32: Hacktoberfest, InfluxDB sensor, Error reporting, and Weather
  • @@ -346,12 +352,6 @@ If a module is missing then you need to download it from the - Participating in Hacktoberfest - - - diff --git a/blog/2016/07/30/custom-frontend-panels-jupyter-notebooks-directv/index.html b/blog/2016/07/30/custom-frontend-panels-jupyter-notebooks-directv/index.html index 4090cd46ce..34a3589e13 100644 --- a/blog/2016/07/30/custom-frontend-panels-jupyter-notebooks-directv/index.html +++ b/blog/2016/07/30/custom-frontend-panels-jupyter-notebooks-directv/index.html @@ -238,6 +238,12 @@ diff --git a/blog/2016/08/03/laundry-automation-update/index.html b/blog/2016/08/03/laundry-automation-update/index.html index 8022c9d6db..4e51cb8c13 100644 --- a/blog/2016/08/03/laundry-automation-update/index.html +++ b/blog/2016/08/03/laundry-automation-update/index.html @@ -275,6 +275,12 @@ diff --git a/blog/2016/08/07/optimizing-the-home-assistant-mobile-web-app/index.html b/blog/2016/08/07/optimizing-the-home-assistant-mobile-web-app/index.html index 397e05518c..32def4e77f 100644 --- a/blog/2016/08/07/optimizing-the-home-assistant-mobile-web-app/index.html +++ b/blog/2016/08/07/optimizing-the-home-assistant-mobile-web-app/index.html @@ -311,6 +311,12 @@ diff --git a/blog/2016/08/13/foursquare-fast-com-ffmpeg-gpsd/index.html b/blog/2016/08/13/foursquare-fast-com-ffmpeg-gpsd/index.html index 8556cfe844..76a8f40987 100644 --- a/blog/2016/08/13/foursquare-fast-com-ffmpeg-gpsd/index.html +++ b/blog/2016/08/13/foursquare-fast-com-ffmpeg-gpsd/index.html @@ -237,6 +237,12 @@ diff --git a/blog/2016/08/16/we-have-apps-now/index.html b/blog/2016/08/16/we-have-apps-now/index.html index 9361162e07..05bf4cef96 100644 --- a/blog/2016/08/16/we-have-apps-now/index.html +++ b/blog/2016/08/16/we-have-apps-now/index.html @@ -291,6 +291,12 @@ diff --git a/blog/2016/08/19/github-style-calendar-heatmap-of-device-data/index.html b/blog/2016/08/19/github-style-calendar-heatmap-of-device-data/index.html index 8f9255e307..156d291389 100644 --- a/blog/2016/08/19/github-style-calendar-heatmap-of-device-data/index.html +++ b/blog/2016/08/19/github-style-calendar-heatmap-of-device-data/index.html @@ -177,6 +177,12 @@ Heatmap diff --git a/blog/2016/08/28/notifications-hue-fake-unification/index.html b/blog/2016/08/28/notifications-hue-fake-unification/index.html index 67c47ee242..f2481f5306 100644 --- a/blog/2016/08/28/notifications-hue-fake-unification/index.html +++ b/blog/2016/08/28/notifications-hue-fake-unification/index.html @@ -372,6 +372,12 @@ diff --git a/blog/2016/08/31/esp8266-and-micropython-part2/index.html b/blog/2016/08/31/esp8266-and-micropython-part2/index.html index 73fdd8fc04..ead3c877fd 100644 --- a/blog/2016/08/31/esp8266-and-micropython-part2/index.html +++ b/blog/2016/08/31/esp8266-and-micropython-part2/index.html @@ -267,6 +267,12 @@ So, part 1 of ESP8266 diff --git a/blog/2016/09/10/notify-group-reload-api-pihole/index.html b/blog/2016/09/10/notify-group-reload-api-pihole/index.html index d7d406c99e..86913c362e 100644 --- a/blog/2016/09/10/notify-group-reload-api-pihole/index.html +++ b/blog/2016/09/10/notify-group-reload-api-pihole/index.html @@ -270,6 +270,12 @@ diff --git a/blog/2016/09/29/async-sleepiq-emoncms-stocks/index.html b/blog/2016/09/29/async-sleepiq-emoncms-stocks/index.html index a3eb03c4ec..25154b0a2e 100644 --- a/blog/2016/09/29/async-sleepiq-emoncms-stocks/index.html +++ b/blog/2016/09/29/async-sleepiq-emoncms-stocks/index.html @@ -288,6 +288,12 @@ diff --git a/blog/2016/10/01/we-have-raspberry-image-now/index.html b/blog/2016/10/01/we-have-raspberry-image-now/index.html index 387c698bf6..92aa58ecaa 100644 --- a/blog/2016/10/01/we-have-raspberry-image-now/index.html +++ b/blog/2016/10/01/we-have-raspberry-image-now/index.html @@ -188,6 +188,12 @@ diff --git a/blog/2016/10/02/hacktoberfest/index.html b/blog/2016/10/02/hacktoberfest/index.html index 83cfb83746..416f79dbc3 100644 --- a/blog/2016/10/02/hacktoberfest/index.html +++ b/blog/2016/10/02/hacktoberfest/index.html @@ -193,6 +193,12 @@ diff --git a/blog/2016/10/08/hassbian-rest-digital-ocean/index.html b/blog/2016/10/08/hassbian-rest-digital-ocean/index.html index b50829fba1..b07217a9aa 100644 --- a/blog/2016/10/08/hassbian-rest-digital-ocean/index.html +++ b/blog/2016/10/08/hassbian-rest-digital-ocean/index.html @@ -296,6 +296,12 @@ diff --git a/blog/2016/10/22/flash-briefing-updater-hacktoberfest/index.html b/blog/2016/10/22/flash-briefing-updater-hacktoberfest/index.html index 100bffff9d..7acf62ebf7 100644 --- a/blog/2016/10/22/flash-briefing-updater-hacktoberfest/index.html +++ b/blog/2016/10/22/flash-briefing-updater-hacktoberfest/index.html @@ -495,6 +495,12 @@ diff --git a/blog/2016/10/25/explaining-the-updater/index.html b/blog/2016/10/25/explaining-the-updater/index.html index 0228315138..b37fc2784e 100644 --- a/blog/2016/10/25/explaining-the-updater/index.html +++ b/blog/2016/10/25/explaining-the-updater/index.html @@ -210,6 +210,12 @@ diff --git a/blog/2016/11/05/hacktoberfest-influxdb-weather/index.html b/blog/2016/11/05/hacktoberfest-influxdb-weather/index.html index ada31db7dc..a76f1e5d27 100644 --- a/blog/2016/11/05/hacktoberfest-influxdb-weather/index.html +++ b/blog/2016/11/05/hacktoberfest-influxdb-weather/index.html @@ -290,6 +290,12 @@ diff --git a/blog/2016/11/19/calendar-wink-thermostats-cisco-ios/index.html b/blog/2016/11/19/calendar-wink-thermostats-cisco-ios/index.html new file mode 100644 index 0000000000..88a3866c9d --- /dev/null +++ b/blog/2016/11/19/calendar-wink-thermostats-cisco-ios/index.html @@ -0,0 +1,286 @@ + + + + + + + + + + 0.33: New Calendar component, Wink thermostats and Cisco IOS - Home Assistant + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + +
    +
    + +
    + + +
    + +
    + +

    0.33: New Calendar component, Wink thermostats and Cisco IOS

    + + + +
    + + + two minutes reading time + + +
      + + +
    • Release-Notes
    • + + +
    +
    + + Comments + +
    + +
    + + +

    For this release we put a lot of focus on finishing our async upgrade and fix a bunch of bugs in the process.

    + +

    But a new release wouldn’t be awesome if it didn’t had some new goodies and this release is no different. This release includes a new calendar component by @mnestor. It comes now with Google Calendar support, which should allow you to automate things based on your calendar events!

    + +

    Changes

    + + + +

    Breaking changes

    + +
      +
    • We have included a fix that impacts how we generate entity ids. This only impacts devices with accented characters. Instead of being stripped out, they are now replaced with the non-accented version. So now Tèst Mörê will become test_more instead of tst_mr.
    • +
    • Command line switches will now use the specified object ID for their entity ID instead of basing it off the name.
    • +
    +
    + + +
    +

    Comments

    +
    +
    + + +
    + + + + +
    +
    + + + + + + + \ No newline at end of file diff --git a/blog/archives/index.html b/blog/archives/index.html index c3a1e8ae23..c7017c1888 100644 --- a/blog/archives/index.html +++ b/blog/archives/index.html @@ -3026,6 +3026,38 @@ + + + + @@ -3083,6 +3115,12 @@ diff --git a/blog/categories/community/atom.xml b/blog/categories/community/atom.xml index 3cbea58846..ffe172f493 100644 --- a/blog/categories/community/atom.xml +++ b/blog/categories/community/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: Community | Home Assistant]]> - 2016-11-19T23:39:26+00:00 + 2016-11-20T00:05:39+00:00 https://home-assistant.io/ diff --git a/blog/categories/community/index.html b/blog/categories/community/index.html index a4c09d7754..1692192d2a 100644 --- a/blog/categories/community/index.html +++ b/blog/categories/community/index.html @@ -291,6 +291,12 @@ diff --git a/blog/categories/device-tracking/atom.xml b/blog/categories/device-tracking/atom.xml index c8a8a39060..8458c963e3 100644 --- a/blog/categories/device-tracking/atom.xml +++ b/blog/categories/device-tracking/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: Device-Tracking | Home Assistant]]> - 2016-11-19T23:39:26+00:00 + 2016-11-20T00:05:39+00:00 https://home-assistant.io/ diff --git a/blog/categories/device-tracking/index.html b/blog/categories/device-tracking/index.html index 0a214aee07..6137fe29bf 100644 --- a/blog/categories/device-tracking/index.html +++ b/blog/categories/device-tracking/index.html @@ -190,6 +190,12 @@ diff --git a/blog/categories/esp8266/atom.xml b/blog/categories/esp8266/atom.xml index 367611b579..3bc599e5de 100644 --- a/blog/categories/esp8266/atom.xml +++ b/blog/categories/esp8266/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: ESP8266 | Home Assistant]]> - 2016-11-19T23:39:26+00:00 + 2016-11-20T00:05:39+00:00 https://home-assistant.io/ diff --git a/blog/categories/esp8266/index.html b/blog/categories/esp8266/index.html index 50baca1480..fde82ec34e 100644 --- a/blog/categories/esp8266/index.html +++ b/blog/categories/esp8266/index.html @@ -267,6 +267,12 @@ diff --git a/blog/categories/how-to/atom.xml b/blog/categories/how-to/atom.xml index 7e55a0d8c8..fe1d73681f 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-11-19T23:39:26+00:00 + 2016-11-20T00:05:39+00:00 https://home-assistant.io/ diff --git a/blog/categories/how-to/index.html b/blog/categories/how-to/index.html index cef2630173..1dc3dc1615 100644 --- a/blog/categories/how-to/index.html +++ b/blog/categories/how-to/index.html @@ -759,6 +759,12 @@ diff --git a/blog/categories/ibeacons/atom.xml b/blog/categories/ibeacons/atom.xml index 32a192d204..ccff427901 100644 --- a/blog/categories/ibeacons/atom.xml +++ b/blog/categories/ibeacons/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: iBeacons | Home Assistant]]> - 2016-11-19T23:39:26+00:00 + 2016-11-20T00:05:39+00:00 https://home-assistant.io/ diff --git a/blog/categories/ibeacons/index.html b/blog/categories/ibeacons/index.html index c25e0c05d0..9b64e4ed37 100644 --- a/blog/categories/ibeacons/index.html +++ b/blog/categories/ibeacons/index.html @@ -226,6 +226,12 @@ diff --git a/blog/categories/internet-of-things/atom.xml b/blog/categories/internet-of-things/atom.xml index 7e5bef274b..1df32b6f95 100644 --- a/blog/categories/internet-of-things/atom.xml +++ b/blog/categories/internet-of-things/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: Internet-of-Things | Home Assistant]]> - 2016-11-19T23:39:26+00:00 + 2016-11-20T00:05:39+00:00 https://home-assistant.io/ diff --git a/blog/categories/internet-of-things/index.html b/blog/categories/internet-of-things/index.html index 977fcda55c..261f1157c2 100644 --- a/blog/categories/internet-of-things/index.html +++ b/blog/categories/internet-of-things/index.html @@ -285,6 +285,12 @@ diff --git a/blog/categories/iot-data/atom.xml b/blog/categories/iot-data/atom.xml index 8063ef1a44..8dfc65e25c 100644 --- a/blog/categories/iot-data/atom.xml +++ b/blog/categories/iot-data/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: IoT-Data | Home Assistant]]> - 2016-11-19T23:39:26+00:00 + 2016-11-20T00:05:39+00:00 https://home-assistant.io/ diff --git a/blog/categories/iot-data/index.html b/blog/categories/iot-data/index.html index dd2127d181..e7c3738df6 100644 --- a/blog/categories/iot-data/index.html +++ b/blog/categories/iot-data/index.html @@ -256,6 +256,12 @@ diff --git a/blog/categories/micropython/atom.xml b/blog/categories/micropython/atom.xml index 9829fd0a6e..730ba21dbb 100644 --- a/blog/categories/micropython/atom.xml +++ b/blog/categories/micropython/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: Micropython | Home Assistant]]> - 2016-11-19T23:39:26+00:00 + 2016-11-20T00:05:39+00:00 https://home-assistant.io/ diff --git a/blog/categories/micropython/index.html b/blog/categories/micropython/index.html index b0e0e37d21..d400ddf541 100644 --- a/blog/categories/micropython/index.html +++ b/blog/categories/micropython/index.html @@ -228,6 +228,12 @@ diff --git a/blog/categories/mqtt/atom.xml b/blog/categories/mqtt/atom.xml index e7a2b253e6..0d4817063b 100644 --- a/blog/categories/mqtt/atom.xml +++ b/blog/categories/mqtt/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: MQTT | Home Assistant]]> - 2016-11-19T23:39:26+00:00 + 2016-11-20T00:05:39+00:00 https://home-assistant.io/ diff --git a/blog/categories/mqtt/index.html b/blog/categories/mqtt/index.html index 0574f90e4b..6c8ce45192 100644 --- a/blog/categories/mqtt/index.html +++ b/blog/categories/mqtt/index.html @@ -299,6 +299,12 @@ diff --git a/blog/categories/organisation/atom.xml b/blog/categories/organisation/atom.xml index d065333a83..c138e2ebfb 100644 --- a/blog/categories/organisation/atom.xml +++ b/blog/categories/organisation/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: Organisation | Home Assistant]]> - 2016-11-19T23:39:26+00:00 + 2016-11-20T00:05:39+00:00 https://home-assistant.io/ diff --git a/blog/categories/organisation/index.html b/blog/categories/organisation/index.html index 321e541855..ed777c717f 100644 --- a/blog/categories/organisation/index.html +++ b/blog/categories/organisation/index.html @@ -253,6 +253,12 @@ diff --git a/blog/categories/owntracks/atom.xml b/blog/categories/owntracks/atom.xml index 1899680af3..d69e3c31af 100644 --- a/blog/categories/owntracks/atom.xml +++ b/blog/categories/owntracks/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: OwnTracks | Home Assistant]]> - 2016-11-19T23:39:26+00:00 + 2016-11-20T00:05:39+00:00 https://home-assistant.io/ diff --git a/blog/categories/owntracks/index.html b/blog/categories/owntracks/index.html index 3f562cdca5..d4f89bc1be 100644 --- a/blog/categories/owntracks/index.html +++ b/blog/categories/owntracks/index.html @@ -226,6 +226,12 @@ diff --git a/blog/categories/presence-detection/atom.xml b/blog/categories/presence-detection/atom.xml index 8602d13178..1d0ed9d8d0 100644 --- a/blog/categories/presence-detection/atom.xml +++ b/blog/categories/presence-detection/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: Presence-Detection | Home Assistant]]> - 2016-11-19T23:39:26+00:00 + 2016-11-20T00:05:39+00:00 https://home-assistant.io/ diff --git a/blog/categories/presence-detection/index.html b/blog/categories/presence-detection/index.html index 714f352265..24e7ecf644 100644 --- a/blog/categories/presence-detection/index.html +++ b/blog/categories/presence-detection/index.html @@ -190,6 +190,12 @@ diff --git a/blog/categories/public-service-announcement/atom.xml b/blog/categories/public-service-announcement/atom.xml index 8da0f36aed..5449a52220 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-11-19T23:39:26+00:00 + 2016-11-20T00:05:39+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 d72c2ce848..8b9071a2b2 100644 --- a/blog/categories/public-service-announcement/index.html +++ b/blog/categories/public-service-announcement/index.html @@ -186,6 +186,12 @@ diff --git a/blog/categories/release-notes/atom.xml b/blog/categories/release-notes/atom.xml index ee3d715530..9d8c070121 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-11-19T23:39:26+00:00 + 2016-11-20T00:05:39+00:00 https://home-assistant.io/ @@ -13,6 +13,88 @@ Octopress + + <![CDATA[0.33: New Calendar component, Wink thermostats and Cisco IOS]]> + + 2016-11-19T03:04:05+00:00 + https://home-assistant.io/blog/2016/11/19/calendar--wink-thermostats--cisco-ios + Changes + +- New [calendar component][google] including Google support ([@mnestor]) +- Final core upgrade for async ([@pvizeli]) +- [Neato] refactor + sensor support ([@turbokongen]) +- Device Tracker: [Swisscom Internet-Box][swisscom] now supported ([@betrisey]) +- Device Tracker - Locative: [Map support][locative] added ([@danijelst]) +- [Emulated Hue] will now sent request info as variables to scripts that get called ([@bah2830]) +- Wink: [Thermostats][wink-climate] are now supported ([@w1ll1am23]) +- Light: New [MQTT template][mqtt-template] platform for custom communication ([@Diaoul]) +- [Wake on Lan switch] can now configure a custom OFF script ([@Chris-V]) +- Device Tracker: [Cisco IOS][cisco] now supported ([@fbradyirl]) +- Sensor: Support for [PVOutput][pvoutput] snesor ([@fabaff]) +- Sensor: Show count of connected clients to the [API stream][api-stream] ([@balloob]) +- Fix platforms from doing I/O in the event loop ([@balloob], [@pvizeli], [@lwis], [@kellerza]) +- Switch - [TP Link]: Add daily consumption ([@gonzalezcalleja]) +- Templates: Add new `strptime` [template function] for parsing times ([@lwis]) +- [HTTP] component: Fix X-Forwarded-For parsing ([@mweinelt]) +- Switch - [Command Line]: Use configured object_id for entity IDs ([@n8henrie]) +- [MQTT] now supports birth and last will messages ([@bestlibre]) +- Better handling of accented characters in slugify ([@magicus]) +- Alarm Control Panel - [Envisalink]: Add new keypress service ([@jnimmo]) +- Light - [Hue]: Add service to activate scenes defined in Hue app ([@sdague]) + +### Breaking changes + + - We have included a fix that impacts how we generate entity ids. This only impacts devices with accented characters. Instead of being stripped out, they are now replaced with the non-accented version. So now `Tèst Mörê` will become `test_more` instead of `tst_mr`. + - Command line switches will now use the specified object ID for their entity ID instead of basing it off the name. + +[@bah2830]: https://github.com/bah2830 +[@balloob]: https://github.com/balloob +[@bestlibre]: https://github.com/bestlibre +[@betrisey]: https://github.com/betrisey +[@Chris-V]: https://github.com/Chris-V +[@danijelst]: https://github.com/danijelst +[@Diaoul]: https://github.com/Diaoul +[@fabaff]: https://github.com/fabaff +[@fbradyirl]: https://github.com/fbradyirl +[@gonzalezcalleja]: https://github.com/ +[@jnimmo]: https://github.com/jnimmo +[@kellerza]: https://github.com/kellerza +[@lwis]: https://github.com/lwis +[@magicus]: https://github.com/magicus +[@mnestor]: https://github.com/mnestor +[@mweinelt]: https://github.com/mweinelt +[@n8henrie]: https://github.com/n8henrie +[@pvizeli]: https://github.com/pvizeli +[@sdague]: https://github.com/sdague +[@turbokongen]: https://github.com/turbokongen +[@w1ll1am23]: https://github.com/w1ll1am23 + +[api-stream]: /components/sensor.api_stream/ +[cisco]: /components/device_tracker.cisco_ios/ +[Command Line]: /components/switch.command_line/ +[Envisalink]: /components/envisalink/ +[google]: /components/calendar.google/ +[Hue]: /components/light.hue/ +[locative]: /components/device_tracker.locative/ +[mqtt-template]: /components/light.mqtt_template/ +[mqtt-will]: /components/mqtt/ +[pvoutput]: /components/sensor.pvoutput/ +[swisscom]: /components/device_tracker.swisscom/ +[TP Link]: /components/switch.tplink/ +[wink-climate]: /components/climate.wink/ +[neato]: /components/neato/ +[Emulated Hue]: /components/emulated_hue/ +[Wake on Lan switch]: /components/switch.wake_on_lan/ +[template function]: /topics/templating/#home-assistant-template-extensions +[HTTP]: /components/http/ +[MQTT]: /components/mqtt/ +]]> + + <![CDATA[0.32: Hacktoberfest, InfluxDB sensor, Error reporting, and Weather]]> @@ -863,162 +945,6 @@ Since 0.28 [automation rules](/blog/2016/09/10/notify-group-reload-api-pihole/#r [MySensors]: /components/climate.mysensors/ [keyboard_remote]: /components/keyboard_remote [X10]: /components/light.x10/ -]]> - - - - <![CDATA[0.28: Reload automation and groups, API documentation, car tracking, Pi-Hole stats]]> - - 2016-09-10T06:00:00+00:00 - https://home-assistant.io/blog/2016/09/10/notify-group-reload-api-pihole - Reload automation rules - -This release brings you a huge improvement of the [automation] and [group] handling. Both can be reloaded without a Home Assistant restart by calling their new reload services. The automations can be controlled directly from the frontend. - -

    - -

    - -### Raspberry Pi installation guide -Singleboard computers are very popular to run Home Assistant. To support this fact, the [installation documentation][rpi] for the Raspberry Pi devices was re-written to get users started as quickly as possible. [@Landrash] took the lead with on this tasks with help from [@kellerza] and [@MartinHjelmare]. - -### Climate and cover -There are countless bugfixes included in this release which will make your experience with the `climate` and the `cover` platforms better. Two week ago was the biggest merger of implementations released that ever happened in the history of Home Assistant. Thanks to [@turbokongen], [@pvizeli], [@djbanks], [@danielperna84], and others the improvements on the code and the frontend side is continuing... - -### API documentation -The [Home Assistant API Documentation](https://dev-docs.home-assistant.io/en/dev/) is a great addition to the already exisiting user documentation. The focus is not end-users but developers who whant to get details about the code without actually browsing the code on Github. - -### Configuration validation -The validation of the configuration is still on-going. Approximatly 80 % is done. This means that we will propably talk about this topic in the next release notes again. To align the configuration of components and platforms we needed to break some. Please refer to the Breaking changes section to check if you need to update your configuration or simple check your log for configuration validation errors. Thanks to [@kellerza], [@fabaff], [@Teagan42], and [@pvizeli] for your effort! - -### All changes - - - -- Light: Added bitfield to Flux LED since we are supporting effects ([@tchellomello]) -- Device tracker: [Owntracks] waypoint import ([@pavoni]) -- Climate: A lot of bugfix ([@turbokongen], [@pvizeli], [@djbanks]) -- Notify: Improvement of the title handling ([@lwis]) -- RFXtrx: Sensor cleanup ([@turbokongen]) -- Device tracker: Fix for BLE device tracker ([@open-homeautomation]) -- Device tracker: Allow 'None' MAC addresses to be loaded from `known_devices` file ([@kellerza]) -- Cover: Bugfixes ([@turbokongen], [@danielperna84]) -- Sensor: Support for displaying details about [crypto currencies][Coinmarketcap] ([@fabaff]) -- Device tracker: Support for [automatic] to track your vehicles ([@Teagan42]) -- Devie tracker: Add exclude option to [Nmap] device tracker ([@danieljkemp]) -- Device tracker: Improved login errors for Asus device tracker ([@kellerza]) -- Sensor: Support for displaying the status of [Xbox] Live accounts ([@mKerix]) -- Notify: Adding `link_names` for sending Slack message ([@salt-lick]) -- Binary sensor: Add the occupancy sensor class ([@robbiet480]) -- Fan: Add supoort for [MQTT fans][mqtt-fan] ([@robbiet480]) -- Docs: Add Sphinx API doc generation ([@bbangert]) -- Core: Allow reloading automation without restart ([@balloob]) -- Sensor: Added scale and offset to the [Temper] sensor ([@mKerix]) -- Sensor: New support for [Trend] sensor ([@pavoni]) -- Device tracker: Keep looking for new BLE devices ([@Bart274]) -- Switch: Added device state attributes and support for legacy firmware for D-Link switches ([@LinuxChristian]) -- Sensor: Improve 1-Wire device family detection ([@Ardetus]) -- Modbus: Update to be thread safe ([@persandstrom]) -- Camera: FFMpeg is abale to get the images ([@pvizeli]) -- Core: Reload groups without restart ([@balloob]) -- Core: Fix remove listener ([@balloob]) -- Sensor: Support for monitoring your [battery] on a Linux host ([@fabaff]) -- Core: Add support for complex template structures to `data_template` ([@pvizeli]) -- `check_config`: Improve yaml fault tolerance and handle border cases ([@kellerza]) -- Core: Add additional [template] for custom date formats ([@lwis]) -- Sensor: Support for getting stats from Pi-Hole systems ([@fabaff]) -- Modbus: New `write_registers` [Modbus] service ([@persandstrom]) -- Device tracker: Fix TP-Link Archer C7 long passwords ([@snikch]) - -### Hotfix 0.28.1 - September 12 - -- Fix: Simplisafe alarm control panels accept any string for code ([@tchellomello]) -- Fix: Z-Wave would sometimes not detect all thermostats ([@turbokongen]) -- Fix: Automatic device tracker when 2 or more cars are tracked ([@teagan42]) -- Fix: Group ordering is now based on config again ([@balloob], [@kellerza]) - -### Hotfix 0.28.2 - September 13 - -- Light - pilight: Fix send RF code ([@DavidLP]) -- Recorder: Fix specifying SQLite ([@pvizeli]) -- Wink: Fix garage door detection ([@turbokongen]) -- Climate - Ecobee: Fix inverted high and low temperatures ([@turbokongen]) -- Allow changing covers using scenes ([@nvella]) -- Device tracker - Automatic: Fix polling ([@teagan42]) - -### Breaking changes - -- [OpenweatherMap] entity IDs are now like `sensor.owm_temperature`. Previously they were like `sensor.weather_temperature`. Apologies for this change, but we needed to make OpenWeatherMap more generic now that we have many weather platforms. -- Updates of configuration variables due to configuration check or alignment with other platforms. Please update your configuration entries according to the documentation: - - [OctoPrint] component - - mFi platform ([switch][mfi-switch] and [sensor][mfi-sensor]) - - NX584 Alarm Control Panel - - Mediaplayer platforms [FireTV], [Kodi] and [MPD] - - [switch][command-line-switch] and the [cover][command-line-cover] `command_line` platforms -- Custom components extending `BaseNotificationService` need to be aware that `kwargs.get(ATTR_TITLE)` will now return `None` if a title has not been set, and will need to specify `kwargs.get(ATTR_TITLE, ATTR_TITLE_DEFAULT)` if they always require a title. - -### If you need help... -...don't hesitate to use our [Forum](https://community.home-assistant.io/) or join us for a little [chat](https://gitter.im/home-assistant/home-assistant). - - -[@DavidLP]: https://github.com/DavidLP -[@nvella]: https://github.com/nvella -[@Ardetus]: https://github.com/Ardetus -[@arsaboo]: https://github.com/arsaboo -[@auchter]: https://github.com/auchter -[@balloob]: https://github.com/balloob -[@Bart274]: https://github.com/Bart274 -[@bbangert]: https://github.com/bbangert -[@danieljkemp]: https://github.com/danieljkemp -[@danielperna84]: https://github.com/danielperna84 -[@djbanks]: https://github.com/djbanks -[@fabaff]: https://github.com/fabaff -[@infamy]: https://github.com/infamy -[@jnewland]: https://github.com/jnewland -[@kellerza]: https://github.com/kellerza -[@Landrash]: https://github.com/Landrash -[@LinuxChristian]: https://github.com/LinuxChristian -[@lwis]: https://github.com/lwis -[@MartinHjelmare]: https://github.com/MartinHjelmare -[@mKerix]: https://github.com/mKerix -[@nkgilley]: https://github.com/nkgilley -[@open-homeautomation]: https://github.com/open-homeautomation -[@pavoni]: https://github.com/pavoni -[@persandstrom]: https://github.com/persandstrom -[@pvizeli]: https://github.com/pvizeli -[@robbiet480]: https://github.com/robbiet480 -[@salt-lick]: https://github.com/salt-lick -[@tchellomello]: https://github.com/tchellomello -[@Teagan42]: https://github.com/Teagan42 -[@technicalpickles]: https://github.com/technicalpickles -[@turbokongen]: https://github.com/turbokongen -[@w1ll1am23]: https://github.com/w1ll1am23 -[@snikch]: https://github.com/snikch - -[modbus]: /components/modbus/ -[rpi]: /getting-started/installation-raspberry-pi/ -[MPD]: /components/media_player.mpd/ -[Coinmarketcap]: /components/sensor.coinmarketcap -[template]: /topics/templating/ -[battery]: /components/sensor.linux_battery -[group]: /components/group/ -[automation]: /components/automation/ -[Temper]: /components/sensor.temper/ -[mqtt-fan]: /components/fan.mqtt/ -[Xbox]: /components/sensor.xbox_live/ -[Nmap]: /components/device_tracker.nmap_scanner/ -[automatic]: /components/device_tracker.automatic/ -[Owntracks]: /components/device_tracker.owntracks/ -[OpenweatherMap]: /components/sensor.openweathermap/ -[OctoPrint]: /components/octoprint/ -[mfi-switch]: /components/switch.mfi/ -[mfi-sensor]: /components/sensor.mfi/ -[FireTV]: /components/media_player.firetv/ -[Kodi]: /components/media_player.kodi/ -[command-line-switch]: /components/switch.command_line/ -[command-line-cover]: /components/cover.command_line/ ]]>
    diff --git a/blog/categories/release-notes/index.html b/blog/categories/release-notes/index.html index fe2b91f511..6d572ae517 100644 --- a/blog/categories/release-notes/index.html +++ b/blog/categories/release-notes/index.html @@ -99,6 +99,38 @@

    2016

    + + + +
    @@ -1663,6 +1695,12 @@ diff --git a/blog/categories/survey/atom.xml b/blog/categories/survey/atom.xml index 167de0484c..ecb494132b 100644 --- a/blog/categories/survey/atom.xml +++ b/blog/categories/survey/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: Survey | Home Assistant]]> - 2016-11-19T23:39:26+00:00 + 2016-11-20T00:05:39+00:00 https://home-assistant.io/ diff --git a/blog/categories/survey/index.html b/blog/categories/survey/index.html index a923464b55..04d7032fa4 100644 --- a/blog/categories/survey/index.html +++ b/blog/categories/survey/index.html @@ -186,6 +186,12 @@ diff --git a/blog/categories/talks/atom.xml b/blog/categories/talks/atom.xml index d2c512bfd0..e99debf22a 100644 --- a/blog/categories/talks/atom.xml +++ b/blog/categories/talks/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: Talks | Home Assistant]]> - 2016-11-19T23:39:26+00:00 + 2016-11-20T00:05:39+00:00 https://home-assistant.io/ diff --git a/blog/categories/talks/index.html b/blog/categories/talks/index.html index a4f58510ae..bdb093954c 100644 --- a/blog/categories/talks/index.html +++ b/blog/categories/talks/index.html @@ -188,6 +188,12 @@ diff --git a/blog/categories/technology/atom.xml b/blog/categories/technology/atom.xml index 3c8fd64af9..b7ea4433a0 100644 --- a/blog/categories/technology/atom.xml +++ b/blog/categories/technology/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: Technology | Home Assistant]]> - 2016-11-19T23:39:26+00:00 + 2016-11-20T00:05:39+00:00 https://home-assistant.io/ diff --git a/blog/categories/technology/index.html b/blog/categories/technology/index.html index 66af4ca875..5aef2c5dc2 100644 --- a/blog/categories/technology/index.html +++ b/blog/categories/technology/index.html @@ -250,6 +250,12 @@ diff --git a/blog/categories/user-stories/atom.xml b/blog/categories/user-stories/atom.xml index 0e658fea9f..797af733a8 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-11-19T23:39:26+00:00 + 2016-11-20T00:05:39+00:00 https://home-assistant.io/ diff --git a/blog/categories/user-stories/index.html b/blog/categories/user-stories/index.html index b81e5b3f28..e45375b5de 100644 --- a/blog/categories/user-stories/index.html +++ b/blog/categories/user-stories/index.html @@ -221,6 +221,12 @@ diff --git a/blog/categories/video/atom.xml b/blog/categories/video/atom.xml index 6efa95c5c2..df7ab9b45b 100644 --- a/blog/categories/video/atom.xml +++ b/blog/categories/video/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: Video | Home Assistant]]> - 2016-11-19T23:39:26+00:00 + 2016-11-20T00:05:39+00:00 https://home-assistant.io/ diff --git a/blog/categories/video/index.html b/blog/categories/video/index.html index 6238275b75..36cd4d6af1 100644 --- a/blog/categories/video/index.html +++ b/blog/categories/video/index.html @@ -389,6 +389,12 @@ diff --git a/blog/categories/website/atom.xml b/blog/categories/website/atom.xml index 197d37b39e..5540052588 100644 --- a/blog/categories/website/atom.xml +++ b/blog/categories/website/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: Website | Home Assistant]]> - 2016-11-19T23:39:26+00:00 + 2016-11-20T00:05:39+00:00 https://home-assistant.io/ diff --git a/blog/categories/website/index.html b/blog/categories/website/index.html index 42ff5fca04..2ab300d608 100644 --- a/blog/categories/website/index.html +++ b/blog/categories/website/index.html @@ -221,6 +221,12 @@ diff --git a/blog/index.html b/blog/index.html index d8496993df..89ab857fbb 100644 --- a/blog/index.html +++ b/blog/index.html @@ -79,6 +79,83 @@ +
    +
    + +

    + 0.33: New Calendar component, Wink thermostats and Cisco IOS +

    + + + +
    + + + two minutes reading time + + +
      + + +
    • Release-Notes
    • + + +
    +
    + + Comments + +
    + +
    + + +
    +

    For this release we put a lot of focus on finishing our async upgrade and fix a bunch of bugs in the process.

    + +

    But a new release wouldn’t be awesome if it didn’t had some new goodies and this release is no different. This release includes a new calendar component by @mnestor. It comes now with Google Calendar support, which should allow you to automate things based on your calendar events!

    + +

    Changes

    + + + +

    Breaking changes

    + +
      +
    • We have included a fix that impacts how we generate entity ids. This only impacts devices with accented characters. Instead of being stripped out, they are now replaced with the non-accented version. So now Tèst Mörê will become test_more instead of tst_mr.
    • +
    • Command line switches will now use the specified object ID for their entity ID instead of basing it off the name.
    • +
    + + + +
    +
    +
    +
    -
    -
    - -
    -
    - -

    - 0.27 is here to break eggs and take names: notifications, Hue fakery, safety and unification come to Home Assistant -

    - - - -
    - - - 12 minutes reading time - - -
      - - -
    • Release-Notes
    • - - -
    -
    - - Comments - -
    - -
    - - -
    -

    This week’s blog post could only be possibly described by exactly one hashtag:

    - -

    #Amazing

    - -

    or maybe#supersized

    - -

    Keep reading to see what #Amazing things we have in store for you this week 😄! And make sure you read all the way to the end, because I left a present down there for those committed few among you :)

    - -

    But first…

    - -

    Some general housekeeping

    - -

    Paulus (@balloob) is on vacation in Europe this week, so you will all have to deal with me, Robbie (@robbiet480) for this release blog post. Don’t worry, Paulus will be back to tearing apart your pull requests in no time 😈.

    - -

    Special thanks to my awesome helpers for this week’s release who are looking over my shoulder to make sure I’m crossing my t’s and dotting my i’s: @Teagan42, @infamy and @fabaff.

    - -

    For my next trick, let’s hand out some…

    - -

    Trophies

    - -

    I felt that I had to 1-up Paulus (@balloob) somehow with his 500,000 pageviews stat he shared in the 0.26 blog post, so I pushed myself and our development community as a whole super hard the last two weeks to put a lot of love into Home Assistant to bring you not just one, but six #Amazing stats for this release. As of 0.27, we have now surpassed the following milestones:

    - - - -

    In addition,

    - - - -

    Now that we have that great news out of the way, onto this week’s release which is going to keep the #Amazing gravy train rolling right along and get to the stuff you all really are here for.

    - -

    0.27

    - -

    While this release is #Amazing, we had to break a few eggs (now you understand the title reference!) to make a beautiful omelette (using home automation obviously) so some platforms and components have needed to introduce breaking changes. Please make sure to read the Breaking Changes section below.

    - -

    Hue Bridge Emulation

    -

    Thanks to @mgbowen we now have the functionality previously provided by @blocke’s ha-local-echo built right into Home Assistant! This means that for those of you with devices that either lack or have a subpar integration with Home Assistant (looking at you Amazon Echo) you can now have a better experience by having your Home Assistant pretend to be a Hue Bridge. Personally, I have used @auchter’s Haaska previously but found that it was slow to respond and sometimes failed entirely. With the new emulated_hue component, you can have local control of entities through Amazon Echo.

    - -

    Notification improvements

    -

    We have some excellent upgrades to the notification system coming to you in 0.27, courtesy of me, @robbiet480.

    - -

    HTML5 Push Notifications

    -

    This release adds support for HTML5 push notifications on Chrome/Firefox/Opera on both desktop and Android devices. This means that you can send a notification to your phone even when your Home Assistant is not open in your mobile browser. When using Chrome you can even include 2 action buttons so that you can control your Home Assistant from your phone’s lock screen, allowing you to do things like sound alarms or unlock your front door, all without leaving the notification. Thanks again to me (@robbiet480) and Paulus (@balloob) for all the hard work on this!

    - -

    - -

    - -

    Notification Groups

    -

    Using the new notify group platform allows you to cut down a lot of duplicate automation logic by combining multiple notification platforms and targets into a single notify service. Check out the docs for more info.

    - -

    target is no longer needed!

    -

    For platforms that support it, starting with the new HTML5 platform, any targets that are available will be exposed as individual services, so no more having to remember which targets to use. Please note that the existing services also still exist so you can keep using target if you wish.

    - -

    Validate configuration before restarting Home Assistant

    -

    Ever restarted Home Assistant to test a configuration change just to find out there is a validation error? Well, not anymore! @kellerza has added a command line script that will validate your configuration as if you started Home Assistant.

    - -
    $ hass --script check_config
    -
    -
    - -

    Configuration validation

    -

    This release includes a big push on making sure all platforms contain proper configuration validation. This should help in getting your configuration right. Thanks to @fabaff, @pavoni, @pvizeli, @nkgilley for all the hard work on this, you all rock!

    - -

    - -

    - -

    FFMpeg motion/noise sensing

    -

    It’s now possible to use FFMpeg to monitor a video stream and detect motion thanks to a new binary sensor platform by @pvizeli.

    - -

    Component clean up - Thermostat & HVAC -> Climate. Rollershutter & Garage Door -> Cover.

    -

    Due to our wild growth we ended up with a few components that had a lot of overlapping functionality. @turbokongen took on the hard job on merging them. Thermostat and HVAC platforms are now combined under the new Climate component. Rollershutter and Garage Door platforms are now combined under the new Cover component. You can easily upgrade by just swapping out the name. For example replace thermostat with climate. The old components have been deprecated and will be removed in the near future.

    - -

    A new fan component

    -

    Along with the new climate component, @Teagan42 and I (@robbiet480) decided we needed something simpler to just control a fan. Currently it has support for controlling Insteon fans. MQTT support will appear in 0.28.0. I tried to get it implemented before 0.27.0 but spent too long writing this blog post 😢.

    - -

    All changes

    - -

    - - - -

    Breaking changes

    -
      -
    • Ecobee3 occupancy sensors have moved from sensor platform to binary sensor platform.
    • -
    • Forecast.io entity IDs are now like sensor.forecastio_temperature. Previously they were like sensor.weather_temperature. Apologies for this change, but we needed to make Forecast.io more generic now that we have many weather platforms.
    • -
    • The Loop Energy sensor configuration format changed slightly, please reformat based on the revised documentation.
    • -
    • The configuration for the SABnzbd sensor has slightly changed. The prefix type: is no longer required for monitored variables.
    • -
    • The IMAP sensor now uses username instead of user.
    • -
    • The NZBGet sensor has had so many changes I can’t list them all. Please refer to the documentation for more info.
    • -
    - -

    Deprecations

    -
      -
    • Using the thermostat and hvac components has been deprecated. Please migrate to the new climate component. (just change the component name, the configurations are compatible)
    • -
    • Using the rollershutter and garage_door components have also been deprecated. Please migrate to the new cover component. (just change the component name, the configurations are compatible)
    • -
    - -

    Finishing up

    - -

    Thanks all for sticking with me to the end. I’ll be taking over a lot of Paulus’s (@balloob) work while he is gone, but as I said, don’t worry because he’ll be back well before 0.28.0 comes out. Hopefully you didn’t find this jovial blog post too jarring from our standard style, I just wrote a lot of this at 2am after being awake for almost 20 hours, so I’m a little loopy hahaha 😴.

    - -

    Also, thanks as always to our developer contributors, documentation contributors, but most of all our users! This would’ve just been a script that Paulus (@balloob) used to control his lights at home if we didn’t have your enthusiasm.

    - -

    Feel free to let me know what you thought of this blog post and release on Gitter or my Twitter, or even the Home Assistant Twitter. Did I mention we have a brand new Facebook page that you should absolutely Like? There’s a convenient Facebook Like and Twitter follow button right on the sidebar.

    - -

    I almost forgot about your 🎁 for reading all the way to here: a 🍪! Hope you enjoy it in good health 😄.

    - -

    Talk to you soon on Gitter and in your pull request comments!

    - -

    – Robbie

    - -

    (p.s. To those of you that scrolled directly to the bottom to get your present, just know that you didn’t earn it like the others did. 😄)

    - -

    Hotfix 0.27.1 - August 30

    - -
      -
    • Migrate APCUPSd to voluptuous (@fabaff)
    • -
    • Ecobee operation mode fix (@turbokongen)
    • -
    • update ha-ffmpeg version to 0.9 (@pvizeli)
    • -
    • Device tracker component & platform validation. No more home_range. (@kellerza)
    • -
    • Added option to use effect:random for Flux Led light bulbs (@tchellomello)
    • -
    • Use voluptuous for smtp (@pvizeli)
    • -
    • Upgrade sendgrid to 3.2.10 (@fabaff)
    • -
    • Upgrade TwitterAPI to 2.4.2 (@fabaff)
    • -
    • Fix bug in wemo discovery caused by voluptuous addition. (@pavoni)
    • -
    • Bug fix for asuswrt device_tracker. (@Danielhiversen)
    • -
    • Remove units for humidity in Wundeground sensor (@arsaboo)
    • -
    • Fix media_player descriptions and select_source (@MartinHjelmare)
    • -
    • Allow user to configure server id to perform speed test against (@Teagan42)
    • -
    • Bug fix for asuswrt device_tracker. (@Danielhiversen)
    • -
    • More Ecobee operation mode fixes (@turbokongen)
    • -
    • Map Modes to setpoint indexes (@turbokongen)
    • -
    • fix voluptuous and cover autodiscovery (@pvizeli)
    • -
    • Fixes wrong statevalue and problem with zwave setpoint (@turbokongen)
    • -
    - -

    Hotfix 0.27.2 - September 3

    -

    home-assistant

    - - - -

    home-assistant-polymer

    - - - - -

    diff --git a/blog/posts/10/index.html b/blog/posts/10/index.html new file mode 100644 index 0000000000..8e328c8740 --- /dev/null +++ b/blog/posts/10/index.html @@ -0,0 +1,252 @@ + + + + + + + + + + Home Assistant + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + +
    +
    + +
    + + + + +
    +
    + +

    + Website launched! +

    + + + +
    + + + Less than one minute reading time + + +
      + + +
    • Website
    • + + +
    +
    + + Comments + +
    + +
    + + +
    +

    I finally took the time to setup a simple website to help people getting started with Home Assistant. The process was super smooth thanks to the great tools Jekyll and Octopress and the great services GitHub Pages and CloudFlare.

    + + +
    +
    +
    + + + + + +
    + + + + +
    +
    + + + + + + + \ No newline at end of file diff --git a/blog/posts/2/index.html b/blog/posts/2/index.html index d766a0df70..92f1fa0a50 100644 --- a/blog/posts/2/index.html +++ b/blog/posts/2/index.html @@ -79,6 +79,250 @@ +
    +
    + +

    + 0.27 is here to break eggs and take names: notifications, Hue fakery, safety and unification come to Home Assistant +

    + + + +
    + + + 12 minutes reading time + + +
      + + +
    • Release-Notes
    • + + +
    +
    + + Comments + +
    + +
    + + +
    +

    This week’s blog post could only be possibly described by exactly one hashtag:

    + +

    #Amazing

    + +

    or maybe#supersized

    + +

    Keep reading to see what #Amazing things we have in store for you this week 😄! And make sure you read all the way to the end, because I left a present down there for those committed few among you :)

    + +

    But first…

    + +

    Some general housekeeping

    + +

    Paulus (@balloob) is on vacation in Europe this week, so you will all have to deal with me, Robbie (@robbiet480) for this release blog post. Don’t worry, Paulus will be back to tearing apart your pull requests in no time 😈.

    + +

    Special thanks to my awesome helpers for this week’s release who are looking over my shoulder to make sure I’m crossing my t’s and dotting my i’s: @Teagan42, @infamy and @fabaff.

    + +

    For my next trick, let’s hand out some…

    + +

    Trophies

    + +

    I felt that I had to 1-up Paulus (@balloob) somehow with his 500,000 pageviews stat he shared in the 0.26 blog post, so I pushed myself and our development community as a whole super hard the last two weeks to put a lot of love into Home Assistant to bring you not just one, but six #Amazing stats for this release. As of 0.27, we have now surpassed the following milestones:

    + + + +

    In addition,

    + + + +

    Now that we have that great news out of the way, onto this week’s release which is going to keep the #Amazing gravy train rolling right along and get to the stuff you all really are here for.

    + +

    0.27

    + +

    While this release is #Amazing, we had to break a few eggs (now you understand the title reference!) to make a beautiful omelette (using home automation obviously) so some platforms and components have needed to introduce breaking changes. Please make sure to read the Breaking Changes section below.

    + +

    Hue Bridge Emulation

    +

    Thanks to @mgbowen we now have the functionality previously provided by @blocke’s ha-local-echo built right into Home Assistant! This means that for those of you with devices that either lack or have a subpar integration with Home Assistant (looking at you Amazon Echo) you can now have a better experience by having your Home Assistant pretend to be a Hue Bridge. Personally, I have used @auchter’s Haaska previously but found that it was slow to respond and sometimes failed entirely. With the new emulated_hue component, you can have local control of entities through Amazon Echo.

    + +

    Notification improvements

    +

    We have some excellent upgrades to the notification system coming to you in 0.27, courtesy of me, @robbiet480.

    + +

    HTML5 Push Notifications

    +

    This release adds support for HTML5 push notifications on Chrome/Firefox/Opera on both desktop and Android devices. This means that you can send a notification to your phone even when your Home Assistant is not open in your mobile browser. When using Chrome you can even include 2 action buttons so that you can control your Home Assistant from your phone’s lock screen, allowing you to do things like sound alarms or unlock your front door, all without leaving the notification. Thanks again to me (@robbiet480) and Paulus (@balloob) for all the hard work on this!

    + +

    + +

    + +

    Notification Groups

    +

    Using the new notify group platform allows you to cut down a lot of duplicate automation logic by combining multiple notification platforms and targets into a single notify service. Check out the docs for more info.

    + +

    target is no longer needed!

    +

    For platforms that support it, starting with the new HTML5 platform, any targets that are available will be exposed as individual services, so no more having to remember which targets to use. Please note that the existing services also still exist so you can keep using target if you wish.

    + +

    Validate configuration before restarting Home Assistant

    +

    Ever restarted Home Assistant to test a configuration change just to find out there is a validation error? Well, not anymore! @kellerza has added a command line script that will validate your configuration as if you started Home Assistant.

    + +
    $ hass --script check_config
    +
    +
    + +

    Configuration validation

    +

    This release includes a big push on making sure all platforms contain proper configuration validation. This should help in getting your configuration right. Thanks to @fabaff, @pavoni, @pvizeli, @nkgilley for all the hard work on this, you all rock!

    + +

    + +

    + +

    FFMpeg motion/noise sensing

    +

    It’s now possible to use FFMpeg to monitor a video stream and detect motion thanks to a new binary sensor platform by @pvizeli.

    + +

    Component clean up - Thermostat & HVAC -> Climate. Rollershutter & Garage Door -> Cover.

    +

    Due to our wild growth we ended up with a few components that had a lot of overlapping functionality. @turbokongen took on the hard job on merging them. Thermostat and HVAC platforms are now combined under the new Climate component. Rollershutter and Garage Door platforms are now combined under the new Cover component. You can easily upgrade by just swapping out the name. For example replace thermostat with climate. The old components have been deprecated and will be removed in the near future.

    + +

    A new fan component

    +

    Along with the new climate component, @Teagan42 and I (@robbiet480) decided we needed something simpler to just control a fan. Currently it has support for controlling Insteon fans. MQTT support will appear in 0.28.0. I tried to get it implemented before 0.27.0 but spent too long writing this blog post 😢.

    + +

    All changes

    + +

    + + + +

    Breaking changes

    +
      +
    • Ecobee3 occupancy sensors have moved from sensor platform to binary sensor platform.
    • +
    • Forecast.io entity IDs are now like sensor.forecastio_temperature. Previously they were like sensor.weather_temperature. Apologies for this change, but we needed to make Forecast.io more generic now that we have many weather platforms.
    • +
    • The Loop Energy sensor configuration format changed slightly, please reformat based on the revised documentation.
    • +
    • The configuration for the SABnzbd sensor has slightly changed. The prefix type: is no longer required for monitored variables.
    • +
    • The IMAP sensor now uses username instead of user.
    • +
    • The NZBGet sensor has had so many changes I can’t list them all. Please refer to the documentation for more info.
    • +
    + +

    Deprecations

    +
      +
    • Using the thermostat and hvac components has been deprecated. Please migrate to the new climate component. (just change the component name, the configurations are compatible)
    • +
    • Using the rollershutter and garage_door components have also been deprecated. Please migrate to the new cover component. (just change the component name, the configurations are compatible)
    • +
    + +

    Finishing up

    + +

    Thanks all for sticking with me to the end. I’ll be taking over a lot of Paulus’s (@balloob) work while he is gone, but as I said, don’t worry because he’ll be back well before 0.28.0 comes out. Hopefully you didn’t find this jovial blog post too jarring from our standard style, I just wrote a lot of this at 2am after being awake for almost 20 hours, so I’m a little loopy hahaha 😴.

    + +

    Also, thanks as always to our developer contributors, documentation contributors, but most of all our users! This would’ve just been a script that Paulus (@balloob) used to control his lights at home if we didn’t have your enthusiasm.

    + +

    Feel free to let me know what you thought of this blog post and release on Gitter or my Twitter, or even the Home Assistant Twitter. Did I mention we have a brand new Facebook page that you should absolutely Like? There’s a convenient Facebook Like and Twitter follow button right on the sidebar.

    + +

    I almost forgot about your 🎁 for reading all the way to here: a 🍪! Hope you enjoy it in good health 😄.

    + +

    Talk to you soon on Gitter and in your pull request comments!

    + +

    – Robbie

    + +

    (p.s. To those of you that scrolled directly to the bottom to get your present, just know that you didn’t earn it like the others did. 😄)

    + +

    Hotfix 0.27.1 - August 30

    + +
      +
    • Migrate APCUPSd to voluptuous (@fabaff)
    • +
    • Ecobee operation mode fix (@turbokongen)
    • +
    • update ha-ffmpeg version to 0.9 (@pvizeli)
    • +
    • Device tracker component & platform validation. No more home_range. (@kellerza)
    • +
    • Added option to use effect:random for Flux Led light bulbs (@tchellomello)
    • +
    • Use voluptuous for smtp (@pvizeli)
    • +
    • Upgrade sendgrid to 3.2.10 (@fabaff)
    • +
    • Upgrade TwitterAPI to 2.4.2 (@fabaff)
    • +
    • Fix bug in wemo discovery caused by voluptuous addition. (@pavoni)
    • +
    • Bug fix for asuswrt device_tracker. (@Danielhiversen)
    • +
    • Remove units for humidity in Wundeground sensor (@arsaboo)
    • +
    • Fix media_player descriptions and select_source (@MartinHjelmare)
    • +
    • Allow user to configure server id to perform speed test against (@Teagan42)
    • +
    • Bug fix for asuswrt device_tracker. (@Danielhiversen)
    • +
    • More Ecobee operation mode fixes (@turbokongen)
    • +
    • Map Modes to setpoint indexes (@turbokongen)
    • +
    • fix voluptuous and cover autodiscovery (@pvizeli)
    • +
    • Fixes wrong statevalue and problem with zwave setpoint (@turbokongen)
    • +
    + +

    Hotfix 0.27.2 - September 3

    +

    home-assistant

    + + + +

    home-assistant-polymer

    + + + + + +
    +
    +
    +
    @@ -671,97 +915,6 @@ One of the graphs created with this tutorial. Read on → - -
    -
    - -
    -
    - -

    - 0.24: SQLAlchemy, KNX, Join by Joaoapps, and SimpliSafe. -

    - - - -
    - - - three minutes reading time - - -
      - - -
    • Release-Notes
    • - - -
    -
    - - Comments - -
    - -
    - - -
    -

    It’s time for Home Assistant 0.24 and it’s full of new integration for your Home. It contains some structural changes to our history which requires action from your end, so please keep reading.

    - -

    MapQuest discontinued their free and direct tile access by Monday, July 11, 2016. With CARTO we found a very cool and suitable solution. They allow us to use their tile for the map. Thank you, CARTO.

    - -

    Roy Hooper did an amazing job migrating the history support from being tied to SQLite to use the ORM SQLAlchemy instead. This means that you can now use any SQL backend for the history. So besides SQLite you can now databases like MySQL or PostgreSQL. However, this does require that you install SQLAlchemy and run a command to migrate your existing history over. We tried to make the process as seamless as possible by introducing a new command line script:

    - -
    $ pip3 install SQLAlchemy
    -$ hass --script db_migrator --config /path/to/config
    -
    -
    - -

    You can omit the --config option if you use the default configuration directory. Run the script with --help to get more options.

    - -

    - - - -

    Hotfix 0.24.1 - July 21

    - -

    Quick hot fix after we found a bug in the migrator where it wouldn’t work with a database in a non-standard location. Thanks to @n8henrie and @AlucardZero.

    - -

    Breaking changes

    - -
      -
    • Migrating existing databases (see above).
    • -
    • The APCUPSd Sensor was updated. This will need that you modify your configuration.yaml file.
    • -
    • Entity IDs of Verisure locks will change. This is a one time change but should improve readability.
    • -
    - - -

    diff --git a/blog/posts/3/index.html b/blog/posts/3/index.html index c7ee02e25a..d9d25e8cf9 100644 --- a/blog/posts/3/index.html +++ b/blog/posts/3/index.html @@ -79,6 +79,97 @@ +
    +
    + +

    + 0.24: SQLAlchemy, KNX, Join by Joaoapps, and SimpliSafe. +

    + + + +
    + + + three minutes reading time + + +
      + + +
    • Release-Notes
    • + + +
    +
    + + Comments + +
    + +
    + + +
    +

    It’s time for Home Assistant 0.24 and it’s full of new integration for your Home. It contains some structural changes to our history which requires action from your end, so please keep reading.

    + +

    MapQuest discontinued their free and direct tile access by Monday, July 11, 2016. With CARTO we found a very cool and suitable solution. They allow us to use their tile for the map. Thank you, CARTO.

    + +

    Roy Hooper did an amazing job migrating the history support from being tied to SQLite to use the ORM SQLAlchemy instead. This means that you can now use any SQL backend for the history. So besides SQLite you can now databases like MySQL or PostgreSQL. However, this does require that you install SQLAlchemy and run a command to migrate your existing history over. We tried to make the process as seamless as possible by introducing a new command line script:

    + +
    $ pip3 install SQLAlchemy
    +$ hass --script db_migrator --config /path/to/config
    +
    +
    + +

    You can omit the --config option if you use the default configuration directory. Run the script with --help to get more options.

    + +

    + + + +

    Hotfix 0.24.1 - July 21

    + +

    Quick hot fix after we found a bug in the migrator where it wouldn’t work with a database in a non-standard location. Thanks to @n8henrie and @AlucardZero.

    + +

    Breaking changes

    + +
      +
    • Migrating existing databases (see above).
    • +
    • The APCUPSd Sensor was updated. This will need that you modify your configuration.yaml file.
    • +
    • Entity IDs of Verisure locks will change. This is a one time change but should improve readability.
    • +
    + + + +
    +
    +
    +
    @@ -703,87 +794,6 @@ In the past month I was thinking about ways to integrate USB webcams into Home A - -
    -
    - -
    -
    - -

    - 0.20: Roku, Last.fm, AWS, Twilio -

    - - - -
    - - - two minutes reading time - - -
      - - -
    • Release-Notes
    • - - -
    -
    - - Comments - -
    - -
    - - -
    -

    - -

    Tons of new supported things in 0.20.

    - - - -

    Breaking changes

    - -
      -
    • Asus WRT will now default to SSH with Telnet being an option
    • -
    - -
    device_tracker:
    -  platform: asuswrt
    -  protocol: telnet
    -
    -
    - - -

    diff --git a/blog/posts/4/index.html b/blog/posts/4/index.html index 92dae4f113..cbaf64596b 100644 --- a/blog/posts/4/index.html +++ b/blog/posts/4/index.html @@ -79,6 +79,87 @@ +
    +
    + +

    + 0.20: Roku, Last.fm, AWS, Twilio +

    + + + +
    + + + two minutes reading time + + +
      + + +
    • Release-Notes
    • + + +
    +
    + + Comments + +
    + +
    + + +
    +

    + +

    Tons of new supported things in 0.20.

    + + + +

    Breaking changes

    + +
      +
    • Asus WRT will now default to SSH with Telnet being an option
    • +
    + +
    device_tracker:
    +  platform: asuswrt
    +  protocol: telnet
    +
    +
    + + + +
    +
    +
    +
    @@ -676,56 +757,6 @@

    -
    -
    - -

    - Static website -

    - - - -
    - - - 1 minute reading time - - -
      - - -
    • How-To
    • - - -
    -
    - - Comments - -
    - -
    - - -
    -

    The frontend of Home Assistant is served with the help of a local web server. If you have customized your installation you already use this functionality. The content of your folder www in your Home Assistant configuration directory (.homeassistant) is available under /local (eg. https://localhost:8123/local).

    - -

    But there is more you can do! You can not only host images for customization there but HTML files or even web applications including CSS and Javascript.

    - -

    - -

    - - - - Read on → - -
    -
    -
    - diff --git a/components/sensor.mfi/index.html b/components/sensor.mfi/index.html index c24956d981..7dc99fd817 100644 --- a/components/sensor.mfi/index.html +++ b/components/sensor.mfi/index.html @@ -148,6 +148,9 @@
  • APCUPSd Sensor
  • +
  • + API Stream Sensor +
  • ARWN Sensor
  • @@ -157,6 +160,9 @@
  • BloomSky Sensor
  • +
  • + Broadlink RM2 and A1 sensor +
  • Command line Sensor
  • @@ -214,6 +220,9 @@
  • MySensors Sensor
  • +
  • + Neato Robotics Sensor +
  • Nest Sensor
  • diff --git a/components/sensor.mhz19/index.html b/components/sensor.mhz19/index.html index 549626b695..6f80b39d5e 100644 --- a/components/sensor.mhz19/index.html +++ b/components/sensor.mhz19/index.html @@ -133,6 +133,9 @@
  • APCUPSd Sensor
  • +
  • + API Stream Sensor +
  • ARWN Sensor
  • @@ -142,6 +145,9 @@
  • BloomSky Sensor
  • +
  • + Broadlink RM2 and A1 sensor +
  • Command line Sensor
  • @@ -199,6 +205,9 @@
  • MySensors Sensor
  • +
  • + Neato Robotics Sensor +
  • Nest Sensor
  • diff --git a/components/sensor.min_max/index.html b/components/sensor.min_max/index.html index 3504e935d5..fd376b04a3 100644 --- a/components/sensor.min_max/index.html +++ b/components/sensor.min_max/index.html @@ -150,6 +150,9 @@
  • APCUPSd Sensor
  • +
  • + API Stream Sensor +
  • ARWN Sensor
  • @@ -159,6 +162,9 @@
  • BloomSky Sensor
  • +
  • + Broadlink RM2 and A1 sensor +
  • Command line Sensor
  • @@ -216,6 +222,9 @@
  • MySensors Sensor
  • +
  • + Neato Robotics Sensor +
  • Nest Sensor
  • diff --git a/components/sensor.modbus/index.html b/components/sensor.modbus/index.html index 73ffc43142..859c0675dc 100644 --- a/components/sensor.modbus/index.html +++ b/components/sensor.modbus/index.html @@ -173,6 +173,9 @@
  • APCUPSd Sensor
  • +
  • + API Stream Sensor +
  • ARWN Sensor
  • @@ -182,6 +185,9 @@
  • BloomSky Sensor
  • +
  • + Broadlink RM2 and A1 sensor +
  • Command line Sensor
  • @@ -239,6 +245,9 @@
  • MySensors Sensor
  • +
  • + Neato Robotics Sensor +
  • Nest Sensor
  • diff --git a/components/sensor.moldindicator/index.html b/components/sensor.moldindicator/index.html index 423ac4327c..09dedb8ae4 100644 --- a/components/sensor.moldindicator/index.html +++ b/components/sensor.moldindicator/index.html @@ -152,6 +152,9 @@ With the three measured temperatures (in Celsius or Fahrenheit), the calibration
  • APCUPSd Sensor
  • +
  • + API Stream Sensor +
  • ARWN Sensor
  • @@ -161,6 +164,9 @@ With the three measured temperatures (in Celsius or Fahrenheit), the calibration
  • BloomSky Sensor
  • +
  • + Broadlink RM2 and A1 sensor +
  • Command line Sensor
  • @@ -218,6 +224,9 @@ With the three measured temperatures (in Celsius or Fahrenheit), the calibration
  • MySensors Sensor
  • +
  • + Neato Robotics Sensor +
  • Nest Sensor
  • diff --git a/components/sensor.mqtt/index.html b/components/sensor.mqtt/index.html index 235326eac9..92530d1598 100644 --- a/components/sensor.mqtt/index.html +++ b/components/sensor.mqtt/index.html @@ -227,6 +227,9 @@
  • APCUPSd Sensor
  • +
  • + API Stream Sensor +
  • ARWN Sensor
  • @@ -236,6 +239,9 @@
  • BloomSky Sensor
  • +
  • + Broadlink RM2 and A1 sensor +
  • Command line Sensor
  • @@ -293,6 +299,9 @@
  • MySensors Sensor
  • +
  • + Neato Robotics Sensor +
  • Nest Sensor
  • diff --git a/components/sensor.mqtt_room/index.html b/components/sensor.mqtt_room/index.html index 3b5b6d58d2..64b9bbefa4 100644 --- a/components/sensor.mqtt_room/index.html +++ b/components/sensor.mqtt_room/index.html @@ -185,6 +185,9 @@ Instead of developing your own application, you can also use any of these alread
  • Bluetooth Tracker
  • +
  • + Cisco IOS +
  • DD-WRT
  • @@ -218,6 +221,9 @@ Instead of developing your own application, you can also use any of these alread
  • SNMP
  • +
  • + Swisscom Internet-Box +
  • TP-Link
  • diff --git a/components/sensor.mysensors/index.html b/components/sensor.mysensors/index.html index 9439c4f761..41d4622b96 100644 --- a/components/sensor.mysensors/index.html +++ b/components/sensor.mysensors/index.html @@ -350,6 +350,9 @@
  • APCUPSd Sensor
  • +
  • + API Stream Sensor +
  • ARWN Sensor
  • @@ -359,6 +362,9 @@
  • BloomSky Sensor
  • +
  • + Broadlink RM2 and A1 sensor +
  • Command line Sensor
  • @@ -416,6 +422,9 @@
  • MySensors Sensor
  • +
  • + Neato Robotics Sensor +
  • Nest Sensor
  • diff --git a/components/sensor.neato/index.html b/components/sensor.neato/index.html new file mode 100644 index 0000000000..9ce46b5147 --- /dev/null +++ b/components/sensor.neato/index.html @@ -0,0 +1,321 @@ + + + + + + + + + + Neato Robotics Sensor - Home Assistant + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + +
    +
    + +
    + + +
    + + + + +
    +

    + Neato Robotics Sensor +

    +
    +
    + + +

    The neato sensor platform allows you to watch status and battery of your Neato Botvac Connected.

    + +

    To add neato sensors to your installation, follow instructions in Neato component.

    + + +
    + + +
    + + + + +
    +
    + + + + + + \ No newline at end of file diff --git a/components/sensor.nest/index.html b/components/sensor.nest/index.html index 1b8e1f273a..ec3ba2c7ba 100644 --- a/components/sensor.nest/index.html +++ b/components/sensor.nest/index.html @@ -179,6 +179,9 @@ You must have the Nest component configured to u
  • APCUPSd Sensor
  • +
  • + API Stream Sensor +
  • ARWN Sensor
  • @@ -188,6 +191,9 @@ You must have the Nest component configured to u
  • BloomSky Sensor
  • +
  • + Broadlink RM2 and A1 sensor +
  • Command line Sensor
  • @@ -245,6 +251,9 @@ You must have the Nest component configured to u
  • MySensors Sensor
  • +
  • + Neato Robotics Sensor +
  • Nest Sensor
  • diff --git a/components/sensor.neurio_energy/index.html b/components/sensor.neurio_energy/index.html index e9c212cd0d..ac2a09946f 100644 --- a/components/sensor.neurio_energy/index.html +++ b/components/sensor.neurio_energy/index.html @@ -154,6 +154,9 @@
  • OhmConnect
  • +
  • + PVOutput Sensor +
  • diff --git a/components/sensor.octoprint/index.html b/components/sensor.octoprint/index.html index dcbf9ddc2d..8a7597d036 100644 --- a/components/sensor.octoprint/index.html +++ b/components/sensor.octoprint/index.html @@ -158,6 +158,9 @@ You must have the OctoPrint component confi
  • APCUPSd Sensor
  • +
  • + API Stream Sensor +
  • ARWN Sensor
  • @@ -167,6 +170,9 @@ You must have the OctoPrint component confi
  • BloomSky Sensor
  • +
  • + Broadlink RM2 and A1 sensor +
  • Command line Sensor
  • @@ -224,6 +230,9 @@ You must have the OctoPrint component confi
  • MySensors Sensor
  • +
  • + Neato Robotics Sensor +
  • Nest Sensor
  • diff --git a/components/sensor.ohmconnect/index.html b/components/sensor.ohmconnect/index.html index ea8c7b90a2..4d3634f7f4 100644 --- a/components/sensor.ohmconnect/index.html +++ b/components/sensor.ohmconnect/index.html @@ -155,6 +155,9 @@
  • OhmConnect
  • +
  • + PVOutput Sensor +
  • diff --git a/components/sensor.onewire/index.html b/components/sensor.onewire/index.html index b753ad7dea..6444f59807 100644 --- a/components/sensor.onewire/index.html +++ b/components/sensor.onewire/index.html @@ -147,6 +147,9 @@
  • APCUPSd Sensor
  • +
  • + API Stream Sensor +
  • ARWN Sensor
  • @@ -156,6 +159,9 @@
  • BloomSky Sensor
  • +
  • + Broadlink RM2 and A1 sensor +
  • Command line Sensor
  • @@ -213,6 +219,9 @@
  • MySensors Sensor
  • +
  • + Neato Robotics Sensor +
  • Nest Sensor
  • diff --git a/components/sensor.pilight/index.html b/components/sensor.pilight/index.html index f8e1526249..c8e0b7f190 100644 --- a/components/sensor.pilight/index.html +++ b/components/sensor.pilight/index.html @@ -178,6 +178,9 @@
  • APCUPSd Sensor
  • +
  • + API Stream Sensor +
  • ARWN Sensor
  • @@ -187,6 +190,9 @@
  • BloomSky Sensor
  • +
  • + Broadlink RM2 and A1 sensor +
  • Command line Sensor
  • @@ -244,6 +250,9 @@
  • MySensors Sensor
  • +
  • + Neato Robotics Sensor +
  • Nest Sensor
  • diff --git a/components/sensor.pvoutput/index.html b/components/sensor.pvoutput/index.html new file mode 100644 index 0000000000..49d872722c --- /dev/null +++ b/components/sensor.pvoutput/index.html @@ -0,0 +1,199 @@ + + + + + + + + + + PVOutput Sensor - Home Assistant + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + +
    +
    + +
    + + +
    + + + + +
    +

    + PVOutput Sensor +

    +
    +
    + + +

    The pvoutput sensor platform consumes informations from PVOutput which were uploaded by your solar photovoltaic (PV) system.

    + +

    To add PVOutput details to your installation, add the following to your configuration.yaml file:

    + +
    # Example configuration.yaml entry
    +sensor:
    +  - platform: pvoutput
    +    system_id: YOUR_SYSTEM_ID
    +    api_key: YOUR_API_KEY
    +    scan_interval: 120
    +
    +
    + +

    Configuration variables:

    + +
      +
    • api_key (Required): Your API key. A read-only key is fine.
    • +
    • system_id (Required): The ID of your station.
    • +
    + +

    +It’s recommended to set scan_interval: according to a value greater than 60 seconds. The service only allows 60 requests per hour but the sensor’s default is 30 seconds. +

    + + + +
    + + +
    + + + + +
    +
    + + + + + + \ No newline at end of file diff --git a/components/sensor.random/index.html b/components/sensor.random/index.html index 23cf99d553..540d0e2c68 100644 --- a/components/sensor.random/index.html +++ b/components/sensor.random/index.html @@ -137,6 +137,9 @@
  • APCUPSd Sensor
  • +
  • + API Stream Sensor +
  • ARWN Sensor
  • @@ -146,6 +149,9 @@
  • BloomSky Sensor
  • +
  • + Broadlink RM2 and A1 sensor +
  • Command line Sensor
  • @@ -203,6 +209,9 @@
  • MySensors Sensor
  • +
  • + Neato Robotics Sensor +
  • Nest Sensor
  • diff --git a/components/sensor.rest/index.html b/components/sensor.rest/index.html index a1a69ecc6a..ab1636c252 100644 --- a/components/sensor.rest/index.html +++ b/components/sensor.rest/index.html @@ -272,6 +272,9 @@ User-Agent: Home Assistant
  • APCUPSd Sensor
  • +
  • + API Stream Sensor +
  • ARWN Sensor
  • @@ -281,6 +284,9 @@ User-Agent: Home Assistant
  • BloomSky Sensor
  • +
  • + Broadlink RM2 and A1 sensor +
  • Command line Sensor
  • @@ -338,6 +344,9 @@ User-Agent: Home Assistant
  • MySensors Sensor
  • +
  • + Neato Robotics Sensor +
  • Nest Sensor
  • diff --git a/components/sensor.rfxtrx/index.html b/components/sensor.rfxtrx/index.html index be52d78331..eb4ff47f68 100644 --- a/components/sensor.rfxtrx/index.html +++ b/components/sensor.rfxtrx/index.html @@ -200,6 +200,9 @@ Then you should update your configuration to:

  • APCUPSd Sensor
  • +
  • + API Stream Sensor +
  • ARWN Sensor
  • @@ -209,6 +212,9 @@ Then you should update your configuration to:

  • BloomSky Sensor
  • +
  • + Broadlink RM2 and A1 sensor +
  • Command line Sensor
  • @@ -266,6 +272,9 @@ Then you should update your configuration to:

  • MySensors Sensor
  • +
  • + Neato Robotics Sensor +
  • Nest Sensor
  • diff --git a/components/sensor.scrape/index.html b/components/sensor.scrape/index.html index 53a5485ed4..fa6b1f4ab3 100644 --- a/components/sensor.scrape/index.html +++ b/components/sensor.scrape/index.html @@ -196,6 +196,9 @@
  • APCUPSd Sensor
  • +
  • + API Stream Sensor +
  • ARWN Sensor
  • @@ -205,6 +208,9 @@
  • BloomSky Sensor
  • +
  • + Broadlink RM2 and A1 sensor +
  • Command line Sensor
  • @@ -262,6 +268,9 @@
  • MySensors Sensor
  • +
  • + Neato Robotics Sensor +
  • Nest Sensor
  • diff --git a/components/sensor.sleepiq/index.html b/components/sensor.sleepiq/index.html index caeeb74a45..74ef950148 100644 --- a/components/sensor.sleepiq/index.html +++ b/components/sensor.sleepiq/index.html @@ -131,6 +131,9 @@
  • APCUPSd Sensor
  • +
  • + API Stream Sensor +
  • ARWN Sensor
  • @@ -140,6 +143,9 @@
  • BloomSky Sensor
  • +
  • + Broadlink RM2 and A1 sensor +
  • Command line Sensor
  • @@ -197,6 +203,9 @@
  • MySensors Sensor
  • +
  • + Neato Robotics Sensor +
  • Nest Sensor
  • diff --git a/components/sensor.statistics/index.html b/components/sensor.statistics/index.html index 61883f3f00..e080c64d85 100644 --- a/components/sensor.statistics/index.html +++ b/components/sensor.statistics/index.html @@ -145,6 +145,9 @@
  • APCUPSd Sensor
  • +
  • + API Stream Sensor +
  • ARWN Sensor
  • @@ -154,6 +157,9 @@
  • BloomSky Sensor
  • +
  • + Broadlink RM2 and A1 sensor +
  • Command line Sensor
  • @@ -211,6 +217,9 @@
  • MySensors Sensor
  • +
  • + Neato Robotics Sensor +
  • Nest Sensor
  • diff --git a/components/sensor.synologydsm/index.html b/components/sensor.synologydsm/index.html index b93890d9fa..8daa75cf84 100644 --- a/components/sensor.synologydsm/index.html +++ b/components/sensor.synologydsm/index.html @@ -90,7 +90,7 @@
    -

    This synologydsm sensor allows getting various statistics from your Synology NAS. Please note that using this sensor wakes up your Synology NAS if in hibernation mode.

    +

    This synologydms sensor allows getting various statistics from your Synology NAS.

    To use the synologydsm sensor in your installation, add the following to your configuration.yaml file:

    @@ -106,7 +106,14 @@ - network_up
    -

    Note: After booting Home Assistant it can take up to 15 minutes for the sensors to show up. This is due to the fact that sensors are created after Home Assistant has fully been initialized.

    + +

    +After booting Home Assistant it can take up to 15 minutes for the sensors to show up. This is due to the fact that sensors are created after Home Assistant has fully been initialized. +

    + +

    +This sensor will wake up your Synology NAS if it’s in hibernation mode. +

    Configuration variables:

    @@ -187,6 +194,9 @@
  • APCUPSd Sensor
  • +
  • + API Stream Sensor +
  • ARWN Sensor
  • @@ -196,6 +206,9 @@
  • BloomSky Sensor
  • +
  • + Broadlink RM2 and A1 sensor +
  • Command line Sensor
  • @@ -253,6 +266,9 @@
  • MySensors Sensor
  • +
  • + Neato Robotics Sensor +
  • Nest Sensor
  • diff --git a/components/sensor.tcp/index.html b/components/sensor.tcp/index.html index 6a95aa6726..811748a930 100644 --- a/components/sensor.tcp/index.html +++ b/components/sensor.tcp/index.html @@ -211,6 +211,9 @@ Escape character is '^]'.
  • APCUPSd Sensor
  • +
  • + API Stream Sensor +
  • ARWN Sensor
  • @@ -220,6 +223,9 @@ Escape character is '^]'.
  • BloomSky Sensor
  • +
  • + Broadlink RM2 and A1 sensor +
  • Command line Sensor
  • @@ -277,6 +283,9 @@ Escape character is '^]'.
  • MySensors Sensor
  • +
  • + Neato Robotics Sensor +
  • Nest Sensor
  • diff --git a/components/sensor.tellduslive/index.html b/components/sensor.tellduslive/index.html index 0f5ea669a0..55f36249f8 100644 --- a/components/sensor.tellduslive/index.html +++ b/components/sensor.tellduslive/index.html @@ -126,6 +126,9 @@
  • APCUPSd Sensor
  • +
  • + API Stream Sensor +
  • ARWN Sensor
  • @@ -135,6 +138,9 @@
  • BloomSky Sensor
  • +
  • + Broadlink RM2 and A1 sensor +
  • Command line Sensor
  • @@ -192,6 +198,9 @@
  • MySensors Sensor
  • +
  • + Neato Robotics Sensor +
  • Nest Sensor
  • diff --git a/components/sensor.tellstick/index.html b/components/sensor.tellstick/index.html index d5f36239de..40832e4f67 100644 --- a/components/sensor.tellstick/index.html +++ b/components/sensor.tellstick/index.html @@ -162,6 +162,9 @@
  • APCUPSd Sensor
  • +
  • + API Stream Sensor +
  • ARWN Sensor
  • @@ -171,6 +174,9 @@
  • BloomSky Sensor
  • +
  • + Broadlink RM2 and A1 sensor +
  • Command line Sensor
  • @@ -228,6 +234,9 @@
  • MySensors Sensor
  • +
  • + Neato Robotics Sensor +
  • Nest Sensor
  • diff --git a/components/sensor.temper/index.html b/components/sensor.temper/index.html index 765999389c..9fa0483b31 100644 --- a/components/sensor.temper/index.html +++ b/components/sensor.temper/index.html @@ -140,6 +140,9 @@ The calculation follows the formula scale * sens
  • APCUPSd Sensor
  • +
  • + API Stream Sensor +
  • ARWN Sensor
  • @@ -149,6 +152,9 @@ The calculation follows the formula scale * sens
  • BloomSky Sensor
  • +
  • + Broadlink RM2 and A1 sensor +
  • Command line Sensor
  • @@ -206,6 +212,9 @@ The calculation follows the formula scale * sens
  • MySensors Sensor
  • +
  • + Neato Robotics Sensor +
  • Nest Sensor
  • diff --git a/components/sensor.template/index.html b/components/sensor.template/index.html index 1c34b1eb5f..1477f34cdb 100644 --- a/components/sensor.template/index.html +++ b/components/sensor.template/index.html @@ -257,6 +257,9 @@ Please note the blank line to close the multi-line template.
  • APCUPSd Sensor
  • +
  • + API Stream Sensor +
  • ARWN Sensor
  • @@ -266,6 +269,9 @@ Please note the blank line to close the multi-line template.
  • BloomSky Sensor
  • +
  • + Broadlink RM2 and A1 sensor +
  • Command line Sensor
  • @@ -323,6 +329,9 @@ Please note the blank line to close the multi-line template.
  • MySensors Sensor
  • +
  • + Neato Robotics Sensor +
  • Nest Sensor
  • diff --git a/components/sensor.thinkingcleaner/index.html b/components/sensor.thinkingcleaner/index.html index 3d3df36b4e..a54587c8f7 100644 --- a/components/sensor.thinkingcleaner/index.html +++ b/components/sensor.thinkingcleaner/index.html @@ -138,6 +138,9 @@
  • APCUPSd Sensor
  • +
  • + API Stream Sensor +
  • ARWN Sensor
  • @@ -147,6 +150,9 @@
  • BloomSky Sensor
  • +
  • + Broadlink RM2 and A1 sensor +
  • Command line Sensor
  • @@ -204,6 +210,9 @@
  • MySensors Sensor
  • +
  • + Neato Robotics Sensor +
  • Nest Sensor
  • diff --git a/components/sensor.time_date/index.html b/components/sensor.time_date/index.html index ee6db3c5d6..279a0bf438 100644 --- a/components/sensor.time_date/index.html +++ b/components/sensor.time_date/index.html @@ -141,6 +141,9 @@

    Category Calendar

    diff --git a/components/sensor.zigbee/index.html b/components/sensor.zigbee/index.html index 353e9c7ceb..bf3e69995c 100644 --- a/components/sensor.zigbee/index.html +++ b/components/sensor.zigbee/index.html @@ -200,6 +200,9 @@
  • APCUPSd Sensor
  • +
  • + API Stream Sensor +
  • ARWN Sensor
  • @@ -209,6 +212,9 @@
  • BloomSky Sensor
  • +
  • + Broadlink RM2 and A1 sensor +
  • Command line Sensor
  • @@ -266,6 +272,9 @@
  • MySensors Sensor
  • +
  • + Neato Robotics Sensor +
  • Nest Sensor
  • diff --git a/components/sensor.zoneminder/index.html b/components/sensor.zoneminder/index.html index b597fd9511..90c2fdc435 100644 --- a/components/sensor.zoneminder/index.html +++ b/components/sensor.zoneminder/index.html @@ -140,6 +140,9 @@ You must have the ZoneMinder component con
  • APCUPSd Sensor
  • +
  • + API Stream Sensor +
  • ARWN Sensor
  • @@ -149,6 +152,9 @@ You must have the ZoneMinder component con
  • BloomSky Sensor
  • +
  • + Broadlink RM2 and A1 sensor +
  • Command line Sensor
  • @@ -206,6 +212,9 @@ You must have the ZoneMinder component con
  • MySensors Sensor
  • +
  • + Neato Robotics Sensor +
  • Nest Sensor
  • diff --git a/components/sensor.zwave/index.html b/components/sensor.zwave/index.html index f9af0ee8c6..13e31ae412 100644 --- a/components/sensor.zwave/index.html +++ b/components/sensor.zwave/index.html @@ -140,6 +140,9 @@
  • APCUPSd Sensor
  • +
  • + API Stream Sensor +
  • ARWN Sensor
  • @@ -149,6 +152,9 @@
  • BloomSky Sensor
  • +
  • + Broadlink RM2 and A1 sensor +
  • Command line Sensor
  • @@ -206,6 +212,9 @@
  • MySensors Sensor
  • +
  • + Neato Robotics Sensor +
  • Nest Sensor
  • diff --git a/components/sensor/index.html b/components/sensor/index.html index eb9375d820..49297c3661 100644 --- a/components/sensor/index.html +++ b/components/sensor/index.html @@ -115,6 +115,9 @@
  • APCUPSd Sensor
  • +
  • + API Stream Sensor +
  • ARWN Sensor
  • @@ -130,6 +133,9 @@
  • BloomSky Sensor
  • +
  • + Broadlink RM2 and A1 sensor +
  • Bureau of Meteorology (BOM) Australia
  • @@ -271,6 +277,9 @@
  • NZBGet
  • +
  • + Neato Robotics Sensor +
  • Nest Sensor
  • @@ -298,6 +307,9 @@
  • OpenWeatherMap Sensor
  • +
  • + PVOutput Sensor +
  • Particulate matter Sensor
  • diff --git a/components/sleepiq/index.html b/components/sleepiq/index.html index 5b27219aa1..2825fe74fa 100644 --- a/components/sleepiq/index.html +++ b/components/sleepiq/index.html @@ -194,6 +194,9 @@
  • MySensors
  • +
  • + Neato Robotics +
  • Nest
  • diff --git a/components/switch.neato/index.html b/components/switch.neato/index.html index 3732d0726e..f9beff4d0d 100644 --- a/components/switch.neato/index.html +++ b/components/switch.neato/index.html @@ -92,28 +92,7 @@

    The neato switch platform allows you to control your Neato Botvac Connected.

    -

    This will automatically add a switch for each Botvac Connected that you have. The switch will start a full home cleaning when turned ON and return the robot to base when turned OFF.

    - -

    To enable this switch in your installation, add the following to your configuration.yaml file:

    - -
    # Example configuration.yaml entry
    -switch:
    -  - platform: neato
    -    username: USERNAME
    -    password: PASSWORD
    -
    -
    - -

    Configuration variables:

    - -
      -
    • username (Required): Username for the Neato account.
    • -
    • password (Required): Password for the Neato account.
    • -
    - -

    -The Home Assistant Neato platform has only be tested with a Botvac Connected. There is no support for the Botvac D3 Connected and Botvac D5 Connected robots at this time. -

    +

    To add neato switch to your installation, follow instructions in Neato component.

    @@ -137,6 +116,17 @@ The Home Assistant Neato platform has only be tested with a Botvac Connected. Th
    This is a platform for the Switches component. +
    +

    Category Switch

    diff --git a/components/switch.wake_on_lan/index.html b/components/switch.wake_on_lan/index.html index 4dc856ec53..64af34a48f 100644 --- a/components/switch.wake_on_lan/index.html +++ b/components/switch.wake_on_lan/index.html @@ -93,7 +93,7 @@

    The wake_on_lan (WOL) switch platform allows you to turn on a WOL enabled computer.

    -The WOL switch can only turn on your computer and monitor the state. There is no universal way to turn off a computer remotely. +The WOL switch can only turn on your computer and monitor the state. There is no universal way to turn off a computer remotely. The turn_off variable is there to help you call a script when you have figured out how to remotely turn off your computer.

    To enable this switch in your installation, add the following to your configuration.yaml file:

    @@ -111,10 +111,10 @@ The WOL switch can only turn on your computer and monitor the state. There is no
  • mac_address (Required): MAC address to send the wake up command to.
  • name (Optional): The name of the switch. Default is ‘Wake on LAN’.
  • host (Optional): The IP address or hostname to check the state of the device (on/off).
  • +
  • turn_off (Optional): Defines an action to run when the switch is turned off.
  • - diff --git a/components/tellduslive/index.html b/components/tellduslive/index.html index 2d123d2b85..326345202e 100644 --- a/components/tellduslive/index.html +++ b/components/tellduslive/index.html @@ -204,6 +204,9 @@ API requests to certain methods are limited to one request every 10 minutes.
  • MySensors
  • +
  • + Neato Robotics +
  • Nest
  • diff --git a/components/tellstick/index.html b/components/tellstick/index.html index d253779ac2..bf8360b3e5 100644 --- a/components/tellstick/index.html +++ b/components/tellstick/index.html @@ -187,6 +187,9 @@
  • MySensors
  • +
  • + Neato Robotics +
  • Nest
  • diff --git a/components/vera/index.html b/components/vera/index.html index 17faddb2d1..7775c45064 100644 --- a/components/vera/index.html +++ b/components/vera/index.html @@ -220,6 +220,9 @@
  • MySensors
  • +
  • + Neato Robotics +
  • Nest
  • diff --git a/components/verisure/index.html b/components/verisure/index.html index e2d93d8f24..17ff25aa74 100644 --- a/components/verisure/index.html +++ b/components/verisure/index.html @@ -216,6 +216,9 @@
  • MySensors
  • +
  • + Neato Robotics +
  • Nest
  • diff --git a/components/wemo/index.html b/components/wemo/index.html index a12e941470..dba5fdbc9a 100644 --- a/components/wemo/index.html +++ b/components/wemo/index.html @@ -193,6 +193,9 @@
  • MySensors
  • +
  • + Neato Robotics +
  • Nest
  • diff --git a/components/wink/index.html b/components/wink/index.html index ab9c8f8a86..d8f460dc1a 100644 --- a/components/wink/index.html +++ b/components/wink/index.html @@ -238,6 +238,9 @@ The Wink hub can only be accessed via the cloud. This means it requires an activ
  • MySensors
  • +
  • + Neato Robotics +
  • Nest
  • diff --git a/components/zwave/index.html b/components/zwave/index.html index 44924e919b..e11804df88 100644 --- a/components/zwave/index.html +++ b/components/zwave/index.html @@ -186,6 +186,9 @@
  • MySensors
  • +
  • + Neato Robotics +
  • Nest
  • diff --git a/developers/credits/index.html b/developers/credits/index.html index b6550bf829..aca6348cb1 100644 --- a/developers/credits/index.html +++ b/developers/credits/index.html @@ -103,16 +103,6 @@

    (in alphabetical order)

    diff --git a/images/supported_brands/broadlink.png b/images/supported_brands/broadlink.png new file mode 100644 index 0000000000000000000000000000000000000000..03e131982f9b5ad9e5025fc7095dc2dbd67171d4 GIT binary patch literal 19070 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 W(N^)No?gSUuvmlbEwE;ON&f|FN4X9F literal 0 HcmV?d00001 diff --git a/images/supported_brands/google_calendar.png b/images/supported_brands/google_calendar.png new file mode 100644 index 0000000000000000000000000000000000000000..82b4e230ad8c9386729cc35a867b5fe2be7ebf74 GIT binary patch literal 19639 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 XasM0e<#+G{9sqzwI@mN?`4avG+{7`Y literal 0 HcmV?d00001 diff --git a/images/supported_brands/pvoutput.png b/images/supported_brands/pvoutput.png new file mode 100644 index 0000000000000000000000000000000000000000..32e063a7d70b6e88ffb05e484ed19a76de98dc4b GIT binary patch literal 8035 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 z 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
    diff --git a/sitemap.xml b/sitemap.xml index 350111a08e..d81bf69d6f 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1,6 +1,10 @@ +https://home-assistant.io/blog/2016/11/19/calendar-wink-thermostats-cisco-ios/ +2016-11-19T03:04:05+00:00 + + https://home-assistant.io/blog/2016/11/05/hacktoberfest-influxdb-weather/ 2016-11-05T03:04:05+00:00 @@ -715,6 +719,9 @@ https://home-assistant.io/blog/posts/9/ +https://home-assistant.io/blog/posts/10/ + + https://home-assistant.io/components/automation/ @@ -865,6 +872,9 @@ https://home-assistant.io/components/notify.nma/ +https://home-assistant.io/components/calendar.google/ + + https://home-assistant.io/components/sensor.bitcoin/ @@ -1990,6 +2000,9 @@ https://home-assistant.io/components/sensor.pilight/ +https://home-assistant.io/components/neato/ + + https://home-assistant.io/components/climate.netatmo/ @@ -2077,6 +2090,9 @@ https://home-assistant.io/components/light.yeelight/ +https://home-assistant.io/components/device_tracker.swisscom/ + + https://home-assistant.io/components/sensor.cups/ @@ -2095,6 +2111,27 @@ https://home-assistant.io/components/sensor.dovado/ +https://home-assistant.io/components/sensor.pvoutput/ + + +https://home-assistant.io/components/light.mqtt_template/ + + +https://home-assistant.io/components/device_tracker.cisco_ios/ + + +https://home-assistant.io/components/sensor.broadlink/ + + +https://home-assistant.io/components/sensor.neato/ + + +https://home-assistant.io/components/calendar/ + + +https://home-assistant.io/components/sensor.api_stream/ + + https://home-assistant.io/components/sensor.ted5000/ @@ -2312,62 +2349,62 @@ https://home-assistant.io/demo/frontend.html -2016-11-19T23:38:42+00:00 +2016-11-20T00:04:55+00:00 https://home-assistant.io/demo/index.html -2016-11-19T23:38:42+00:00 +2016-11-20T00:04:55+00:00 https://home-assistant.io/demo/panels/ha-panel-dev-event.html -2016-11-19T23:38:42+00:00 +2016-11-20T00:04:55+00:00 https://home-assistant.io/demo/panels/ha-panel-dev-info.html -2016-11-19T23:38:42+00:00 +2016-11-20T00:04:55+00:00 https://home-assistant.io/demo/panels/ha-panel-dev-service.html -2016-11-19T23:38:42+00:00 +2016-11-20T00:04:55+00:00 https://home-assistant.io/demo/panels/ha-panel-dev-state.html -2016-11-19T23:38:42+00:00 +2016-11-20T00:04:55+00:00 https://home-assistant.io/demo/panels/ha-panel-dev-template.html -2016-11-19T23:38:42+00:00 +2016-11-20T00:04:55+00:00 https://home-assistant.io/demo/panels/ha-panel-history.html -2016-11-19T23:38:42+00:00 +2016-11-20T00:04:55+00:00 https://home-assistant.io/demo/panels/ha-panel-iframe.html -2016-11-19T23:38:42+00:00 +2016-11-20T00:04:55+00:00 https://home-assistant.io/demo/panels/ha-panel-logbook.html -2016-11-19T23:38:42+00:00 +2016-11-20T00:04:55+00:00 https://home-assistant.io/demo/panels/ha-panel-map.html -2016-11-19T23:38:42+00:00 +2016-11-20T00:04:55+00:00 https://home-assistant.io/googlef4f3693c209fe788.html -2016-11-19T23:38:42+00:00 +2016-11-20T00:04:55+00:00 https://home-assistant.io/static/fonts/roboto/DESCRIPTION.en_us.html -2016-11-19T23:38:42+00:00 +2016-11-20T00:04:55+00:00 https://home-assistant.io/static/fonts/robotomono/DESCRIPTION.en_us.html -2016-11-19T23:38:42+00:00 +2016-11-20T00:04:55+00:00 https://home-assistant.io/static/mdi-demo.html -2016-11-19T23:38:42+00:00 +2016-11-20T00:04:55+00:00 diff --git a/topics/templating/index.html b/topics/templating/index.html index 9a8444282c..04ebfa56c2 100644 --- a/topics/templating/index.html +++ b/topics/templating/index.html @@ -156,6 +156,7 @@ The frontend has a template editor developer tool to help develop and debug temp
  • closest() will find the closest entity.
  • relative_time(timestamp) will format the date time as relative time vs now (ie 7 seconds)
  • float will format the output as float.
  • +
  • strptime(string, format) will parse a string to a datetime based on a format.
  • Filter round(x) will convert the input to a number and round it to x decimals.
  • Filter timestamp_local will convert an UNIX timestamp to local time/data.
  • Filter timestamp_utc will convert an UNIX timestamp to UTC time/data.