From 91c8dde14e601c4a679443af1710d5dabf63d6b5 Mon Sep 17 00:00:00 2001
From: Paulus Schoutsen
Date: Sat, 28 Jan 2017 15:50:34 -0800
Subject: [PATCH 01/67] Remove unnecessary regenerate statements
---
source/_ecosystem/appdaemon/api.markdown | 1 -
source/_ecosystem/appdaemon/configuration.markdown | 1 -
source/_ecosystem/appdaemon/example_apps.markdown | 1 -
source/_ecosystem/appdaemon/installation.markdown | 1 -
source/_ecosystem/appdaemon/operation.markdown | 1 -
source/_ecosystem/appdaemon/reboot.markdown | 1 -
source/_ecosystem/appdaemon/running.markdown | 1 -
source/_ecosystem/appdaemon/tutorial.markdown | 1 -
source/_ecosystem/appdaemon/updating.markdown | 1 -
source/_ecosystem/appdaemon/windows.markdown | 1 -
source/_posts/2016-10-24-explaining-the-updater.markdown | 1 +
.../_posts/2017-01-03-control-my-christmas-tree-stats.markdown | 1 +
source/_posts/2017-01-21-home-assistant-governance.markdown | 1 +
source/index.html | 1 +
14 files changed, 4 insertions(+), 10 deletions(-)
diff --git a/source/_ecosystem/appdaemon/api.markdown b/source/_ecosystem/appdaemon/api.markdown
index af1b241f1ec..891ef1dec87 100755
--- a/source/_ecosystem/appdaemon/api.markdown
+++ b/source/_ecosystem/appdaemon/api.markdown
@@ -7,7 +7,6 @@ sidebar: true
comments: false
sharing: true
footer: true
-regenerate: true
hide_github_edit: true
---
diff --git a/source/_ecosystem/appdaemon/configuration.markdown b/source/_ecosystem/appdaemon/configuration.markdown
index 27aac6fd82e..ec955aff622 100644
--- a/source/_ecosystem/appdaemon/configuration.markdown
+++ b/source/_ecosystem/appdaemon/configuration.markdown
@@ -7,7 +7,6 @@ sidebar: true
comments: false
sharing: true
footer: true
-regenerate: true
hide_github_edit: true
---
diff --git a/source/_ecosystem/appdaemon/example_apps.markdown b/source/_ecosystem/appdaemon/example_apps.markdown
index 6f42885fec9..2d7b659ad79 100644
--- a/source/_ecosystem/appdaemon/example_apps.markdown
+++ b/source/_ecosystem/appdaemon/example_apps.markdown
@@ -7,7 +7,6 @@ sidebar: true
comments: false
sharing: true
footer: true
-regenerate: true
hide_github_edit: true
---
diff --git a/source/_ecosystem/appdaemon/installation.markdown b/source/_ecosystem/appdaemon/installation.markdown
index 14f46148441..6eb9f1f16c5 100644
--- a/source/_ecosystem/appdaemon/installation.markdown
+++ b/source/_ecosystem/appdaemon/installation.markdown
@@ -7,7 +7,6 @@ sidebar: true
comments: false
sharing: true
footer: true
-regenerate: true
hide_github_edit: true
---
diff --git a/source/_ecosystem/appdaemon/operation.markdown b/source/_ecosystem/appdaemon/operation.markdown
index 499bca70ef3..9f643719a61 100644
--- a/source/_ecosystem/appdaemon/operation.markdown
+++ b/source/_ecosystem/appdaemon/operation.markdown
@@ -7,7 +7,6 @@ sidebar: true
comments: false
sharing: true
footer: true
-regenerate: true
hide_github_edit: true
---
diff --git a/source/_ecosystem/appdaemon/reboot.markdown b/source/_ecosystem/appdaemon/reboot.markdown
index 4cac399650b..96d7b9552b8 100644
--- a/source/_ecosystem/appdaemon/reboot.markdown
+++ b/source/_ecosystem/appdaemon/reboot.markdown
@@ -7,7 +7,6 @@ sidebar: true
comments: false
sharing: true
footer: true
-regenerate: true
hide_github_edit: true
---
diff --git a/source/_ecosystem/appdaemon/running.markdown b/source/_ecosystem/appdaemon/running.markdown
index f447a73895d..78e5cf3976e 100755
--- a/source/_ecosystem/appdaemon/running.markdown
+++ b/source/_ecosystem/appdaemon/running.markdown
@@ -7,7 +7,6 @@ sidebar: true
comments: false
sharing: true
footer: true
-regenerate: true
hide_github_edit: true
---
diff --git a/source/_ecosystem/appdaemon/tutorial.markdown b/source/_ecosystem/appdaemon/tutorial.markdown
index fe9f6ee8718..bec655b9074 100755
--- a/source/_ecosystem/appdaemon/tutorial.markdown
+++ b/source/_ecosystem/appdaemon/tutorial.markdown
@@ -7,7 +7,6 @@ sidebar: true
comments: false
sharing: true
footer: true
-regenerate: true
hide_github_edit: true
---
diff --git a/source/_ecosystem/appdaemon/updating.markdown b/source/_ecosystem/appdaemon/updating.markdown
index 28229fb6ece..20a5ebef141 100644
--- a/source/_ecosystem/appdaemon/updating.markdown
+++ b/source/_ecosystem/appdaemon/updating.markdown
@@ -7,7 +7,6 @@ sidebar: true
comments: false
sharing: true
footer: true
-regenerate: true
hide_github_edit: true
---
diff --git a/source/_ecosystem/appdaemon/windows.markdown b/source/_ecosystem/appdaemon/windows.markdown
index 3ec32879838..360bf975a12 100755
--- a/source/_ecosystem/appdaemon/windows.markdown
+++ b/source/_ecosystem/appdaemon/windows.markdown
@@ -7,7 +7,6 @@ sidebar: true
comments: false
sharing: true
footer: true
-regenerate: true
hide_github_edit: true
---
diff --git a/source/_posts/2016-10-24-explaining-the-updater.markdown b/source/_posts/2016-10-24-explaining-the-updater.markdown
index 20245ce6639..fd920bd0d31 100644
--- a/source/_posts/2016-10-24-explaining-the-updater.markdown
+++ b/source/_posts/2016-10-24-explaining-the-updater.markdown
@@ -12,6 +12,7 @@ categories: Organisation
On Saturday, we released [Home Assistant 0.31][0.31] which includes an improved updater component that checks for new versions using the Home Assistant servers. We wanted to update the community on its rollout and answer some questions that have come up. As part of the update check anonymous information about your operating system and Python version is submitted to Home Assistant servers unless you have opted out.
+
## {% linkable_title Why we changed the updater %}
This change was driven by two important factors.
diff --git a/source/_posts/2017-01-03-control-my-christmas-tree-stats.markdown b/source/_posts/2017-01-03-control-my-christmas-tree-stats.markdown
index 8303520eedd..d96dc5b8aef 100644
--- a/source/_posts/2017-01-03-control-my-christmas-tree-stats.markdown
+++ b/source/_posts/2017-01-03-control-my-christmas-tree-stats.markdown
@@ -24,6 +24,7 @@ I added three devices to the Home Assistant instance - a Wemo Insight, Sonoff Sw
The Christmas tree in action.
+
During the time by tree was set up, I had 7,366 visitors from 88 countries connect to my Home Assistant instance. This generated an estimated 100,000 clicks on the switches in my Home Assistant instance - thanks in part to some folks who posted up with macros for 6-8 hour stretches.
diff --git a/source/_posts/2017-01-21-home-assistant-governance.markdown b/source/_posts/2017-01-21-home-assistant-governance.markdown
index 97b4155ff53..4c8df71e76a 100644
--- a/source/_posts/2017-01-21-home-assistant-governance.markdown
+++ b/source/_posts/2017-01-21-home-assistant-governance.markdown
@@ -22,6 +22,7 @@ The Home Assistant project and community has seen enormous growth in the last th
Starting today we are announcing a few initiatives to help protect our users, contributors and community members.
+
## {% linkable_title Code of Conduct %}
More people are getting to know and love Home Assistant every day and our community keeps growing. Our community consists of people from all over the world with different backgrounds and we want Home Assistant to be a place where everyone can feel at home. To help with this we're introducing a Code of Conduct. The Code of Conduct describes what type of behavior is unacceptable, how we will enforce it and where to report incidents.
diff --git a/source/index.html b/source/index.html
index 01e8cc0acd5..94c7b1c5bf8 100644
--- a/source/index.html
+++ b/source/index.html
@@ -6,6 +6,7 @@ show_title: false
sidebar: false
hero_unit: true
is_homepage: true
+regenerate: true
hide_github_edit: true
description: Open-source home automation platform running on Python 3. Track and control all devices at home and automate control. Installation in less than a minute.
hide_github_edit: true
From bfeae23ac12885244e5d64fae09f46ebd3f6e8a9 Mon Sep 17 00:00:00 2001
From: Fabian Affolter
Date: Sun, 29 Jan 2017 00:50:56 +0100
Subject: [PATCH 02/67] Add customization section
---
source/_posts/2017-01-28-face-coffee-wink.markdown | 3 +++
1 file changed, 3 insertions(+)
diff --git a/source/_posts/2017-01-28-face-coffee-wink.markdown b/source/_posts/2017-01-28-face-coffee-wink.markdown
index 9a6939ba7c6..658880fc674 100644
--- a/source/_posts/2017-01-28-face-coffee-wink.markdown
+++ b/source/_posts/2017-01-28-face-coffee-wink.markdown
@@ -28,6 +28,9 @@ After a security audit by Stephen O'Conner, he found that our source for randoml
Although the old method is not insecure, the new method is a lot more secure. Upgrading to the latest version is encouraged.
+### {% linkable_title New customization options %}
+[@Andrey-git] has added some great new options to the customize functionality. It is now possible to specify customizations as a wildcard for entities or for a specific domain.
+
### {% linkable_title Major Wink and HDMI CEC improvements %}
[@w1ll1am23] did an amazing job fixing a ton of bugs and issues with the Wink integration. Biggest improvement is that it now is able to automatically refresh the authentication tokens. This means that if you have your email address and password in your `configuration.yaml` file, no `client_id` and `client_secret` are needed, and token which was generated with the generator located in the [Wink][wink] documentation.
From afa143b4155aaa39cce851101dd12bfb04a2549e Mon Sep 17 00:00:00 2001
From: Fabian Affolter
Date: Sun, 29 Jan 2017 00:54:37 +0100
Subject: [PATCH 03/67] Fix title
---
source/_posts/2017-01-28-face-coffee-wink.markdown | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source/_posts/2017-01-28-face-coffee-wink.markdown b/source/_posts/2017-01-28-face-coffee-wink.markdown
index 658880fc674..d5fc2183c62 100644
--- a/source/_posts/2017-01-28-face-coffee-wink.markdown
+++ b/source/_posts/2017-01-28-face-coffee-wink.markdown
@@ -17,7 +17,7 @@ No stats, no numbers, and alike this time. Ok, just one number: 0.37. We are bac
### {% linkable_title Governance %}
As announced, the new [Governance][gov] requires for developers to sign the CLA. [Code of Conduct][coc], [Contributor License Agreement][cla], and proper [Licensing][license] will to protect all involved parties in the Home Assistant eco-system from users and community members to contributors.
-### Face recognition using the Microsoft Face API %}
+### {% linkable_title Face recognition using the Microsoft Face API %}
[@pvizeli] has been on a roll with the image processing integrations. This time it's the [Microsoft Face API][face]. This means that now it will be possible to train the API with the people you want to recognize and send images from your camera to the API as another source of automation.
Want to play a personalized tune when someone enters the house? It is now possible 😎
From 9f33cf0e23073c86760de7971a2de5c02fc313e3 Mon Sep 17 00:00:00 2001
From: Paulus Schoutsen
Date: Sat, 28 Jan 2017 16:01:23 -0800
Subject: [PATCH 04/67] Fix bullet points
---
.../2017-01-28-face-coffee-wink.markdown | 162 +++++++++---------
1 file changed, 81 insertions(+), 81 deletions(-)
diff --git a/source/_posts/2017-01-28-face-coffee-wink.markdown b/source/_posts/2017-01-28-face-coffee-wink.markdown
index d5fc2183c62..056987f94a4 100644
--- a/source/_posts/2017-01-28-face-coffee-wink.markdown
+++ b/source/_posts/2017-01-28-face-coffee-wink.markdown
@@ -1,6 +1,6 @@
---
layout: post
-title: "0.37: Face, Coffee, Wink"
+title: "0.37: Face detection, Coffee, Wink"
description: "Governance, Face recognition, improved camera security, and a coffee maker"
date: 2017-01-28 08:04:05 +0000
date_formatted: "January 28, 2017"
@@ -16,7 +16,7 @@ No stats, no numbers, and alike this time. Ok, just one number: 0.37. We are bac
### {% linkable_title Governance %}
As announced, the new [Governance][gov] requires for developers to sign the CLA. [Code of Conduct][coc], [Contributor License Agreement][cla], and proper [Licensing][license] will to protect all involved parties in the Home Assistant eco-system from users and community members to contributors.
-
+
### {% linkable_title Face recognition using the Microsoft Face API %}
[@pvizeli] has been on a roll with the image processing integrations. This time it's the [Microsoft Face API][face]. This means that now it will be possible to train the API with the people you want to recognize and send images from your camera to the API as another source of automation.
@@ -44,88 +44,88 @@ Thanks to [@konikvranik] the [HDMI CEC][cec] integration got a huge update with
### {% linkable_title All changes %}
#### {% linkable_title New platforms/components %}
-Netatmo: [Netatmo][netatmo] Presence support ([@gieljnssns])
-Sensor: [Amcrest][amcrest] camera sensors ([@tchellomello])
-Notify: New [Discord][discord] notification component ([@Deinara])
-Device tracker: [Tado][tado] device tracker support ([@jmvermeulen])
-Sensor: Add [Skybeacon][skybeacon] BLE temperature/humidity sensor ([@anpetrov])
-New [Zabbix][zabbix] component ([@Whytey])
-Media player: New platform [Anthemav][anthem] Media player ([@nugget])
-Light: Add support for [Avion][avion] Bluetooth dimmer switches ([@mjg59])
-Binary sensor: [Beaglebone Black][bb-bin] binary sensor ([@MatoKafkac])
-Light: [Piglow][piglow] support ([@xarnze])
-[Face][face] recognition for automation ([@pvizeli])
-Sensor: New [Washington State DOT][wsdot] sensor ([@partofthething])
-Support for Wemo CoffeeMaker devices ([@stu-gott])
-Device tracker: [Sky hub][sky] support ([@alexmogavero])
-Support for [Lutron][lutron] RadioRA 2 ([@thecynic])
-TTS: Amazon [Polly TTS][polly] platform ([@robbiet480])
-Device tracker: Support for [Linksys][linksys] Access Points ([@lukas-hetzenecker])
-Notify: Make calls with [Twilio][twilio] ([@fakezeta])
+- Netatmo: [Netatmo][netatmo] Presence support ([@gieljnssns])
+- Sensor: [Amcrest][amcrest] camera sensors ([@tchellomello])
+- Notify: New [Discord][discord] notification component ([@Deinara])
+- Device tracker: [Tado][tado] device tracker support ([@jmvermeulen])
+- Sensor: Add [Skybeacon][skybeacon] BLE temperature/humidity sensor ([@anpetrov])
+- New [Zabbix][zabbix] component ([@Whytey])
+- Media player: New platform [Anthemav][anthem] Media player ([@nugget])
+- Light: Add support for [Avion][avion] Bluetooth dimmer switches ([@mjg59])
+- Binary sensor: [Beaglebone Black][bb-bin] binary sensor ([@MatoKafkac])
+- Light: [Piglow][piglow] support ([@xarnze])
+- [Face][face] recognition for automation ([@pvizeli])
+- Sensor: New [Washington State DOT][wsdot] sensor ([@partofthething])
+- Support for Wemo CoffeeMaker devices ([@stu-gott])
+- Device tracker: [Sky hub][sky] support ([@alexmogavero])
+- Support for [Lutron][lutron] RadioRA 2 ([@thecynic])
+- TTS: Amazon [Polly TTS][polly] platform ([@robbiet480])
+- Device tracker: Support for [Linksys][linksys] Access Points ([@lukas-hetzenecker])
+- Notify: Make calls with [Twilio][twilio] ([@fakezeta])
#### Improvements %}
-Script: Fix script release ([@balloob])
-Camera - Amcrest: Add support for direct MJPEG streams from Amcrest cameras ([@colinodell])
-Sensor - Miflora: Removing throttle decorator ([@freol35241])
-Notify - Lannouncer: Fix `get_service` method ([@mKeRix])
-Sensor - WAQI: Add station parameter to waqi sensor ([@whhsw])
-Sensor - USPS: Absolute path to save cookie used by USPS sensor ([@tchellomello])
-Nest: Fix python-nest release number ([@Danielhiversen])
-Keyboard remote: Improve support ([@MrMep])
-Device tracker - VolvoOnCall: Fix timedelta ([@pvizeli])
-Climate - eq3btsmart: Expose away attribute ([@rytilahti])
-Remote: Reserve a test port for broken API to fix race ([@armills])
-Climate - Ecobee: Made target temperature sensitive to auto mode ([@Duoxilian])
-Configuration: Fix load_yaml default value ([@balloob])
-Notify - Facebook: Fix encoding error ([@Danielhiversen])
-Emulated_hue: Add `upnp_bind_multicast` option, default type to Google, and persist emulated hue IDs ([@hoopty], [@balloob])
-Docker: Install phantomjs in Docker container ([@jnewland])
-Media player - MPD: Add listing and selection of available MPD playlists ([@partofthething])
-Media player - Denon AVR: Denon improvements ([@glance-])
-Light - x10.py: Improved x10 state monitoring ([@martst])
-Sensor - DSMR: TCP, reconnecting and V4 CRC support ([@aequitas])
-Media player - Yamaha.py: Fix Yamaha doing I/O in event loop ([@balloob])
-Device tracker UPC: Make upc more robust ([@pvizeli])
-Climate - Generic thermostat: Update ([@MrMep])
-Device tracker - Xiaomi.py: Xiaomi Mi Router token refresh ([@RiRomain])
-Camera - MJPEG: Support still image for thumbmail ([@pvizeli])
-Sensor - ZAMG: Updated valid station id list ([@HerrHofrat])
-Light - ISY994: Not overwrite `state_attributes` ([@rmkraus])[emul-hue]
-Light - Zwave: Use only supported features for devices ([@turbokongen])
-Media player - Kodi: Support for volume stepping ([@armills])
-Media player- roku: Use `is_screensaver`, update IDLE state, and use device name ([@robbiet480], [@xhostplus])
-Switch - HDMI CEC: Support for devices and commands ([@konikvranik])
-Lock - Zwave: Improvements to Zwave lock platform ([@turbokongen])
-TTS: Invalidate broken file cache entries ([@stu-gott])
-Light - Hue: Improvements ([@robbiet480])
-TTS - YandexTTS: Added speed and emotion to Yandex TTS ([@lupin-de-mid])
-Light - tellstick.py: Tellstick light fix ([@stefan-jonasson])
-Switch - insteon_local.py: only check for devices when not defined in config ([@wardcraigj])
-Notify - Twitter: Allow direct messaging to user ([@fabaff])
-Fan - MQTT: Dont set a speed when fan turns on ([@robbiet480])
-Config: Allow easier customization of whole domain, entity lists, globs ([@andrey-git])
-Sensor - Homematic: Update device support ([@danielperna84])
-Binary sensor - ISS: Add location to attributes and option to show position on the map ([@fabaff])
-Media player - Kodi: Add SSL configuration option ([@ecksun])
-Sensor - WAQI: Add missing particle value ([@fabaff])
-Wink: Support for python-wink 1.0.0 ([@w1ll1am23])
-Binary sensor - RPi GPIO: Add a small sleep before reading the sensor ([@snagytx])
-Sensor - USPS: Add name to configuration ([@happyleavesaoc])
-Sensor - Miflora: Remove throttle decorator from miflora platform ([@freol35241])
-Device tracker - asuswrt.py: Add IPv6 support when parsing neighbors ([@leppa])
-iOS: Discover notify.ios when iOS component loads ([@robbiet480])
-Homematic: Add MAX shutter contact class ([@jannau])
-Sensor - Darksky: Added forecast support ([@nordlead2005])
-Switch - Pilight: Implement echo config option ([@janLo])
-Core: Support customize in packages ([@kellerza])
-Switch - Flux: Allow disabling setting the brightness ([@rytilahti])
-Media player - Sonos: Add `is_coordinator`, set coordinator after join/unjoin, and no emtpy image ([@pvizeli], [@andrey-git], [@robbiet480])
-Climate: Hold mode ([@Duoxilian])
-Switch - TPlink: No longer doing I/O in event bus ([@balloob])
-Light - Insteon local: Improve Insteon configuration ([@wardcraigj])
-Emulated Hue: Emulated Hue "host-ip" fails to bind when running in docker without `--net=host` ([@jeremydk])
-Climate - EQ3 BT smart: Add reporting for availability ([@rytilahti])
+- Script: Fix script release ([@balloob])
+- Camera - Amcrest: Add support for direct MJPEG streams from Amcrest cameras ([@colinodell])
+- Sensor - Miflora: Removing throttle decorator ([@freol35241])
+- Notify - Lannouncer: Fix `get_service` method ([@mKeRix])
+- Sensor - WAQI: Add station parameter to waqi sensor ([@whhsw])
+- Sensor - USPS: Absolute path to save cookie used by USPS sensor ([@tchellomello])
+- Nest: Fix python-nest release number ([@Danielhiversen])
+- Keyboard remote: Improve support ([@MrMep])
+- Device tracker - VolvoOnCall: Fix timedelta ([@pvizeli])
+- Climate - eq3btsmart: Expose away attribute ([@rytilahti])
+- Remote: Reserve a test port for broken API to fix race ([@armills])
+- Climate - Ecobee: Made target temperature sensitive to auto mode ([@Duoxilian])
+- Configuration: Fix load_yaml default value ([@balloob])
+- Notify - Facebook: Fix encoding error ([@Danielhiversen])
+- Emulated_hue: Add `upnp_bind_multicast` option, default type to Google, and persist emulated hue IDs ([@hoopty], [@balloob])
+- Docker: Install phantomjs in Docker container ([@jnewland])
+- Media player - MPD: Add listing and selection of available MPD playlists ([@partofthething])
+- Media player - Denon AVR: Denon improvements ([@glance-])
+- Light - x10.py: Improved x10 state monitoring ([@martst])
+- Sensor - DSMR: TCP, reconnecting and V4 CRC support ([@aequitas])
+- Media player - Yamaha.py: Fix Yamaha doing I/O in event loop ([@balloob])
+- Device tracker UPC: Make upc more robust ([@pvizeli])
+- Climate - Generic thermostat: Update ([@MrMep])
+- Device tracker - Xiaomi.py: Xiaomi Mi Router token refresh ([@RiRomain])
+- Camera - MJPEG: Support still image for thumbmail ([@pvizeli])
+- Sensor - ZAMG: Updated valid station id list ([@HerrHofrat])
+- Light - ISY994: Not overwrite `state_attributes` ([@rmkraus])[emul-hue]
+- Light - Zwave: Use only supported features for devices ([@turbokongen])
+- Media player - Kodi: Support for volume stepping ([@armills])
+- Media player- roku: Use `is_screensaver`, update IDLE state, and use device name ([@robbiet480], [@xhostplus])
+- Switch - HDMI CEC: Support for devices and commands ([@konikvranik])
+- Lock - Zwave: Improvements to Zwave lock platform ([@turbokongen])
+- TTS: Invalidate broken file cache entries ([@stu-gott])
+- Light - Hue: Improvements ([@robbiet480])
+- TTS - YandexTTS: Added speed and emotion to Yandex TTS ([@lupin-de-mid])
+- Light - tellstick.py: Tellstick light fix ([@stefan-jonasson])
+- Switch - insteon_local.py: only check for devices when not defined in config ([@wardcraigj])
+- Notify - Twitter: Allow direct messaging to user ([@fabaff])
+- Fan - MQTT: Dont set a speed when fan turns on ([@robbiet480])
+- Config: Allow easier customization of whole domain, entity lists, globs ([@andrey-git])
+- Sensor - Homematic: Update device support ([@danielperna84])
+- Binary sensor - ISS: Add location to attributes and option to show position on the map ([@fabaff])
+- Media player - Kodi: Add SSL configuration option ([@ecksun])
+- Sensor - WAQI: Add missing particle value ([@fabaff])
+- Wink: Support for python-wink 1.0.0 ([@w1ll1am23])
+- Binary sensor - RPi GPIO: Add a small sleep before reading the sensor ([@snagytx])
+- Sensor - USPS: Add name to configuration ([@happyleavesaoc])
+- Sensor - Miflora: Remove throttle decorator from miflora platform ([@freol35241])
+- Device tracker - asuswrt.py: Add IPv6 support when parsing neighbors ([@leppa])
+- iOS: Discover notify.ios when iOS component loads ([@robbiet480])
+- Homematic: Add MAX shutter contact class ([@jannau])
+- Sensor - Darksky: Added forecast support ([@nordlead2005])
+- Switch - Pilight: Implement echo config option ([@janLo])
+- Core: Support customize in packages ([@kellerza])
+- Switch - Flux: Allow disabling setting the brightness ([@rytilahti])
+- Media player - Sonos: Add `is_coordinator`, set coordinator after join/unjoin, and no emtpy image ([@pvizeli], [@andrey-git], [@robbiet480])
+- Climate: Hold mode ([@Duoxilian])
+- Switch - TPlink: No longer doing I/O in event bus ([@balloob])
+- Light - Insteon local: Improve Insteon configuration ([@wardcraigj])
+- Emulated Hue: Emulated Hue "host-ip" fails to bind when running in docker without `--net=host` ([@jeremydk])
+- Climate - EQ3 BT smart: Add reporting for availability ([@rytilahti])
Bugfix: [@balloob], [@fabaff], [@freol35241], [@pvizeli], [@Danielhiversen], [@tdickman], [@armills], [@rytilahti], [@R1chardTM], [@asbach], [@happyleavesaoc], [@robbiet480], [@colinodell], [@joopert], [@dale3h], [@pavoni], [@jaharkes], [@MartinHjelmare], [@mezz64], [@jabesq], and you if you are missing in this list.
From 57af31a15630687a919bcf4567ee345f0739a6a3 Mon Sep 17 00:00:00 2001
From: Fabian Affolter
Date: Sun, 29 Jan 2017 01:04:40 +0100
Subject: [PATCH 05/67] Fix title
---
source/_posts/2017-01-28-face-coffee-wink.markdown | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source/_posts/2017-01-28-face-coffee-wink.markdown b/source/_posts/2017-01-28-face-coffee-wink.markdown
index 056987f94a4..b666c5a3763 100644
--- a/source/_posts/2017-01-28-face-coffee-wink.markdown
+++ b/source/_posts/2017-01-28-face-coffee-wink.markdown
@@ -63,7 +63,7 @@ Thanks to [@konikvranik] the [HDMI CEC][cec] integration got a huge update with
- Device tracker: Support for [Linksys][linksys] Access Points ([@lukas-hetzenecker])
- Notify: Make calls with [Twilio][twilio] ([@fakezeta])
-#### Improvements %}
+#### {% linkable_title Improvements %}
- Script: Fix script release ([@balloob])
- Camera - Amcrest: Add support for direct MJPEG streams from Amcrest cameras ([@colinodell])
From 9e6453689a8094da591f34fce52484460753cc48 Mon Sep 17 00:00:00 2001
From: Paulus Schoutsen
Date: Sat, 28 Jan 2017 16:32:03 -0800
Subject: [PATCH 06/67] Fix image
---
source/_posts/2017-01-28-face-coffee-wink.markdown | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source/_posts/2017-01-28-face-coffee-wink.markdown b/source/_posts/2017-01-28-face-coffee-wink.markdown
index b666c5a3763..caca3f85569 100644
--- a/source/_posts/2017-01-28-face-coffee-wink.markdown
+++ b/source/_posts/2017-01-28-face-coffee-wink.markdown
@@ -8,7 +8,7 @@ author: Fabian Affolter et al.
author_twitter: fabaff
comments: true
categories: Release-Notes
-og_image: /images/blog/2016-01-0.37/social.png
+og_image: /images/blog/2017-01-0.37/social.png
---
From 1fb47207ae3edd510deb177962757adf542b2524 Mon Sep 17 00:00:00 2001
From: Alok Saboo
Date: Sat, 28 Jan 2017 19:37:09 -0500
Subject: [PATCH 07/67] Added missing backticks (#1902)
---
source/_components/microsoft_face.markdown | 1 +
1 file changed, 1 insertion(+)
diff --git a/source/_components/microsoft_face.markdown b/source/_components/microsoft_face.markdown
index 5e3d0961fcf..ae15f4f330f 100644
--- a/source/_components/microsoft_face.markdown
+++ b/source/_components/microsoft_face.markdown
@@ -82,3 +82,4 @@ After we done with changes on a group, we need train this group to make our AI f
service: microsoft_face.train_group
data:
group: family
+```
From b6a35afb9da803657b2dfba588299a039d68a9c2 Mon Sep 17 00:00:00 2001
From: Matt N
Date: Sat, 28 Jan 2017 16:37:47 -0800
Subject: [PATCH 08/67] Fix link and typos in hadashboard/reboot.markdown
(#1900)
---
source/_ecosystem/hadashboard/reboot.markdown | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/source/_ecosystem/hadashboard/reboot.markdown b/source/_ecosystem/hadashboard/reboot.markdown
index 17ca88d8af0..0d87ef28725 100755
--- a/source/_ecosystem/hadashboard/reboot.markdown
+++ b/source/_ecosystem/hadashboard/reboot.markdown
@@ -9,8 +9,8 @@ sharing: true
footer: true
---
-To run Dashing and `hapush` at reboot, I have provided sample init scripts in the `./init` directory. These have been tested on a Raspberry PI - your mileage may vary on other systems.
+To run Dashing and `hapush` at reboot, I have provided sample init scripts in the `./init` directory. These have been tested on a Raspberry Pi - your mileage may vary on other systems.
-Instructions for automaticaly starting a docker install can be found (here)[https://docs.docker.com/engine/admin/host_integration/].
+Instructions for automatically starting a docker install can be found [here](https://docs.docker.com/engine/admin/host_integration/).
For docker you may also want to use docker-compose - there is a sample compose file in the `./init` directory.
From 6f93baba7fe3bf6164af9397c4a385750801e367 Mon Sep 17 00:00:00 2001
From: Robbie Trencheny
Date: Sat, 28 Jan 2017 16:48:52 -0800
Subject: [PATCH 09/67] Fix wording on emulated_hue breaking change
---
source/_posts/2017-01-28-face-coffee-wink.markdown | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source/_posts/2017-01-28-face-coffee-wink.markdown b/source/_posts/2017-01-28-face-coffee-wink.markdown
index caca3f85569..4e8decf66aa 100644
--- a/source/_posts/2017-01-28-face-coffee-wink.markdown
+++ b/source/_posts/2017-01-28-face-coffee-wink.markdown
@@ -130,7 +130,7 @@ Thanks to [@konikvranik] the [HDMI CEC][cec] integration got a huge update with
Bugfix: [@balloob], [@fabaff], [@freol35241], [@pvizeli], [@Danielhiversen], [@tdickman], [@armills], [@rytilahti], [@R1chardTM], [@asbach], [@happyleavesaoc], [@robbiet480], [@colinodell], [@joopert], [@dale3h], [@pavoni], [@jaharkes], [@MartinHjelmare], [@mezz64], [@jabesq], and you if you are missing in this list.
### {% linkable_title Breaking changes %}
-- A **major** breaking change in the [`emulated_hue`][emul-hue] component means that without changing a configuration value before starting up the newer Home Assistant version you will lose all devices that Alexa has discovered and will need to re-add them as well as create new groups. Find out about the [details](emul_hue).
+- A **major** breaking change in the [`emulated_hue`][emul-hue] component means that unless you set `type: alexa` before starting up the newer Home Assistant version you will lose all devices that Alexa has discovered and will need to re-add them as well as create new groups.
- The platform of the [ISS][iss] integration was change to `binary_sensor`. Please check the platform documentation.
- The [Roku][roku] media uses now a new format for the entity IDs.
- [OpenALPR][openalpr] is no longer a component. It's now a platform for [Image processing][image].
From c7c6c2e558cbc438230efe75748fcc8f8f0f9f77 Mon Sep 17 00:00:00 2001
From: Robbie Trencheny
Date: Sat, 28 Jan 2017 16:53:48 -0800
Subject: [PATCH 10/67] Update Hue docs to note the new parameters
---
source/_components/light.hue.markdown | 2 ++
1 file changed, 2 insertions(+)
diff --git a/source/_components/light.hue.markdown b/source/_components/light.hue.markdown
index b33fe179100..b13b1a0c7a3 100644
--- a/source/_components/light.hue.markdown
+++ b/source/_components/light.hue.markdown
@@ -34,6 +34,8 @@ Configuration variables:
- **host** (*Required*): IP address of the device, eg. 192.168.1.10.
- **allow_unreachable** (*Optional*): This will allow unreachable bulbs to report their state correctly. By default *name* from the device is used.
- **filename** (*Optional*): Make this unique if specifying multiple Hue hubs.
+- **allow_in_emulated_hue** (*Optional*): Enable this to block all Hue entities from being added to the `emulated_hue` component.
+- **allow_hue_groups** (*Optional*): Enable this to stop Home Assistant from importing the groups defined on the Hue bridge.
### {% linkable_title Using Hue Groups in Home Assistant %}
From 3e064877aa8eadcb4af103bce4d85b130cb22f98 Mon Sep 17 00:00:00 2001
From: Robbie Trencheny
Date: Sat, 28 Jan 2017 16:55:10 -0800
Subject: [PATCH 11/67] Host is now optional on Hue
---
source/_components/light.hue.markdown | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source/_components/light.hue.markdown b/source/_components/light.hue.markdown
index b13b1a0c7a3..4bb561e0514 100644
--- a/source/_components/light.hue.markdown
+++ b/source/_components/light.hue.markdown
@@ -31,7 +31,7 @@ light:
Configuration variables:
-- **host** (*Required*): IP address of the device, eg. 192.168.1.10.
+- **host** (*Optional*): IP address of the device, eg. 192.168.1.10. Required if not using the `discovery` component to discover Hue bridges.
- **allow_unreachable** (*Optional*): This will allow unreachable bulbs to report their state correctly. By default *name* from the device is used.
- **filename** (*Optional*): Make this unique if specifying multiple Hue hubs.
- **allow_in_emulated_hue** (*Optional*): Enable this to block all Hue entities from being added to the `emulated_hue` component.
From c414c6f45fa4c0adb44b95d440ccd187d0162c29 Mon Sep 17 00:00:00 2001
From: andrey-git
Date: Sun, 29 Jan 2017 08:41:32 +0200
Subject: [PATCH 12/67] Fix ha_category to be like in openalr
---
.../image_processing.microsoft_face_identify.markdown | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source/_components/image_processing.microsoft_face_identify.markdown b/source/_components/image_processing.microsoft_face_identify.markdown
index 805c8c2a813..9265a9e26b4 100644
--- a/source/_components/image_processing.microsoft_face_identify.markdown
+++ b/source/_components/image_processing.microsoft_face_identify.markdown
@@ -8,7 +8,7 @@ comments: false
sharing: true
footer: true
logo: microsoft.png
-ha_category: Image_Processing
+ha_category: Image Processing
featured: false
ha_release: 0.37
---
From 3c301bf8e588000ec332ede7d0fe5f0ce0870760 Mon Sep 17 00:00:00 2001
From: Matt N
Date: Sun, 29 Jan 2017 00:23:46 -0800
Subject: [PATCH 13/67] Fix typos and grammar in media_player.vlc.markdown
(#1894)
---
source/_components/media_player.vlc.markdown | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/source/_components/media_player.vlc.markdown b/source/_components/media_player.vlc.markdown
index f3bd0064399..21ed9cdf248 100644
--- a/source/_components/media_player.vlc.markdown
+++ b/source/_components/media_player.vlc.markdown
@@ -29,13 +29,13 @@ Configuration variables:
- **name** (*Optional*): The name to use in the frontend.
- **arguments** (*Optional*): Additional arguments to be passed to VLC.
-Only "music" media type is supported for now.
+Only the "music" media type is supported for now.
This service will control a background VLC instance, therefore you cannot use this to control a VLC instance launched on your desktop, unlike the Kodi media player for example.
## {% linkable_title Full configuration %}
-A full configuration for VLC could llok like the one below:
+A full configuration for VLC could look like the one below:
```yaml
# Example configuration.yaml entry
@@ -47,7 +47,7 @@ media_player:
##### {% linkable_title Additional configuration on macOS %}
-On macOS phython-vlc won’t find the VLC plugin directory unless you add this to the user’s `.bash_profile` that is running Home Assistant:
+On macOS `python-vlc` won’t find the VLC plugin directory unless you add this to the user’s `.bash_profile` that is running Home Assistant:
```bash
export VLC_PLUGIN_PATH=$VLC_PLUGIN_PATH:/Applications/VLC.app/Contents/MacOS/plugins
@@ -55,7 +55,7 @@ export VLC_PLUGIN_PATH=$VLC_PLUGIN_PATH:/Applications/VLC.app/Contents/MacOS/plu
##### {% linkable_title Additional configuration for Rasperry Pi %}
-You need to add `homeassistant` user to `audio` group:
+You need to add the `homeassistant` user to the `audio` group:
```bash
sudo usermod -a -G audio homeassistant
From d9987a1d7dacd5dea0471d1e40e6d859b4f32910 Mon Sep 17 00:00:00 2001
From: Alok Saboo
Date: Sun, 29 Jan 2017 03:24:36 -0500
Subject: [PATCH 14/67] Added default option (#1903)
---
source/_components/emulated_hue.markdown | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source/_components/emulated_hue.markdown b/source/_components/emulated_hue.markdown
index 8c622ce7cc8..1c82a36da79 100644
--- a/source/_components/emulated_hue.markdown
+++ b/source/_components/emulated_hue.markdown
@@ -39,7 +39,7 @@ emulated_hue:
Configuration variables:
-- **type** (*Optional*): The type of assistant who we are emulated for. Either `alexa` or `google_home`.
+- **type** (*Optional*): The type of assistant who we are emulated for. Either `alexa` or `google_home`, defaults to `alexa`.
- **host_ip** (*Optional*): The IP address that your Home Assistant installation is running on. If you do not specify this option, the component will attempt to determine the IP address on its own.
- **listen_port** (*Optional*): The port the Hue bridge API web server will run on. If not specified, this defaults to 8300. This can be any free port on your system.
- **upnp_bind_multicast** (*Optional*): Whether or not to bind the UPNP (SSDP) listener to the multicast address (239.255.255.250) or instead to the (unicast) host_ip address specified above (or automatically determined). The default is true, which will work for most situations. In special circumstances, like running in a FreeBSD or FreeNAS jail, you may need to disable this.
From d8b38f6289feef21a1d95f1abf7eb2f3cc5ceefa Mon Sep 17 00:00:00 2001
From: Fabian Affolter
Date: Sun, 29 Jan 2017 13:32:40 +0100
Subject: [PATCH 15/67] Remove duplicate
---
source/_components/media_player.plex.markdown | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source/_components/media_player.plex.markdown b/source/_components/media_player.plex.markdown
index f22c20ba4d4..8ac957ebcf7 100644
--- a/source/_components/media_player.plex.markdown
+++ b/source/_components/media_player.plex.markdown
@@ -15,7 +15,7 @@ ha_iot_class: "Local Polling"
---
-The `plex` platform allows you to connect a [Plex Media Server](https://plex.tv) to Home Assistant. It will allow you to control media playback and see the current playing item. The preferred way to setup the Plex platform is by enabling the the [the discovery component](/components/discovery/) and requires GDM to be enabled.
+The `plex` platform allows you to connect a [Plex Media Server](https://plex.tv) to Home Assistant. It will allow you to control media playback and see the current playing item. The preferred way to setup the Plex platform is by enabling the [the discovery component](/components/discovery/) and requires GDM to be enabled.
If local authentication is enabled or multiple users are defined, Home Assistant requires an authentication token to be entered in the frontend. Press "CONFIGURE" to do it.
From 57c2c4fdc4e48178208a957bfda3e67d2c98441a Mon Sep 17 00:00:00 2001
From: Fabian Affolter
Date: Sun, 29 Jan 2017 13:33:16 +0100
Subject: [PATCH 16/67] Add inital Lutron docs
---
source/_components/lutron.markdown | 17 +++++++++++++++++
source/images/supported_brands/lutron.png | Bin 0 -> 7969 bytes
2 files changed, 17 insertions(+)
create mode 100644 source/_components/lutron.markdown
create mode 100644 source/images/supported_brands/lutron.png
diff --git a/source/_components/lutron.markdown b/source/_components/lutron.markdown
new file mode 100644
index 00000000000..944364e0824
--- /dev/null
+++ b/source/_components/lutron.markdown
@@ -0,0 +1,17 @@
+---
+layout: page
+title: "Lutron"
+description: "Instructions how to use Lutron devices with Home Assistant."
+date: 2017-01-28 13:00
+sidebar: true
+comments: false
+sharing: true
+footer: true
+logo: lutron.png
+ha_category: Hub
+featured: False
+ha_release: 0.37
+---
+
+The `lutron` component is the base for all [Lutron](http://www.lutron.com/) in Home Assistant. The preferred way to setup the `lutron` component is by enabling the [the discovery component](/components/discovery/).
+
diff --git a/source/images/supported_brands/lutron.png b/source/images/supported_brands/lutron.png
new file mode 100644
index 0000000000000000000000000000000000000000..c62feb80d47c71bddbf6e7537d447908729019cd
GIT binary patch
literal 7969
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
lD*s>pR|Fnob`H1&0X1cEle(jV34i
Date: Sun, 29 Jan 2017 15:46:29 +0100
Subject: [PATCH 17/67] Documentation for linksys_ap device tracker (#1600)
* Documentation for linksys_ap device tracker
* Update device_tracker.linksys_ap.markdown
* Update device_tracker.linksys_ap.markdown
* Update device_tracker.linksys_ap.markdown
---
.../device_tracker.linksys_ap.markdown | 49 +++++++++++++++++++
1 file changed, 49 insertions(+)
create mode 100644 source/_components/device_tracker.linksys_ap.markdown
diff --git a/source/_components/device_tracker.linksys_ap.markdown b/source/_components/device_tracker.linksys_ap.markdown
new file mode 100644
index 00000000000..8f3e2a4716a
--- /dev/null
+++ b/source/_components/device_tracker.linksys_ap.markdown
@@ -0,0 +1,49 @@
+---
+layout: page
+title: "Linksys Access Points"
+description: "Instructions how to integrate Linksys Access Points into Home Assistant."
+date: 2016-12-16 01:40
+sidebar: true
+comments: false
+sharing: true
+footer: true
+ha_category: Presence Detection
+featured: false
+ha_release: 0.37
+---
+
+The `linksys_ap` platform offers presence detection by looking at connected devices to a Linksys based access point.
+It was tested with a LAPAC1750 AC1750 Dual Band Access Point.
+
+To use a Linksys Access Point in your installation, add the following to your `configuration.yaml` file:
+
+```yaml
+# Example configuration.yaml entry
+device_tracker:
+ - platform: linksys_ap
+ host: 192.168.1.1
+ username: admin
+ password: password
+```
+
+Configuration variables:
+
+- **host** (*Required*): The hostname or IP address of your access point, eg. `192.168.1.1`.
+- **username** (*Required*: The username of an user with administrative privileges (read-only is sufficient).
+- **password** (*Required*): The password for your given admin account.
+- **verify_ssl** (*Optional*): Verify SSL certificate for https request. Defaults to true.
+
+Example for all configuration options:
+```yaml
+# Example configuration.yaml entry
+device_tracker:
+ - platform: linksys_ap
+ host: 192.168.1.1
+ username: admin
+ password: password
+ verify_ssl: true
+ scan_interval: 6
+ consider_home: 12
+```
+
+See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked.
From 8c9ae5f19a8d896d7259b98da82595b6986c6176 Mon Sep 17 00:00:00 2001
From: Fabian Affolter
Date: Sun, 29 Jan 2017 15:57:13 +0100
Subject: [PATCH 18/67] Add logo
---
.../device_tracker.linksys_ap.markdown | 2 +-
source/images/supported_brands/linksys.png | Bin 0 -> 75740 bytes
2 files changed, 1 insertion(+), 1 deletion(-)
create mode 100644 source/images/supported_brands/linksys.png
diff --git a/source/_components/device_tracker.linksys_ap.markdown b/source/_components/device_tracker.linksys_ap.markdown
index 8f3e2a4716a..b9821eb5227 100644
--- a/source/_components/device_tracker.linksys_ap.markdown
+++ b/source/_components/device_tracker.linksys_ap.markdown
@@ -8,7 +8,7 @@ comments: false
sharing: true
footer: true
ha_category: Presence Detection
-featured: false
+logo: linksys.png
ha_release: 0.37
---
diff --git a/source/images/supported_brands/linksys.png b/source/images/supported_brands/linksys.png
new file mode 100644
index 0000000000000000000000000000000000000000..fe7aa78c65413c5fb728a076d3d6f4ff7b5d3cd2
GIT binary patch
literal 75740
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