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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 literal 0 HcmV?d00001 From 962c5e71d0c3b47ce79cd756e1ea8884f46a84b0 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Sun, 29 Jan 2017 16:02:36 +0100 Subject: [PATCH 19/67] Add logo --- source/_components/light.avion.markdown | 10 ++++++---- source/images/supported_brands/avi-on.png | Bin 0 -> 6112 bytes 2 files changed, 6 insertions(+), 4 deletions(-) create mode 100644 source/images/supported_brands/avi-on.png diff --git a/source/_components/light.avion.markdown b/source/_components/light.avion.markdown index 34e882699e6..6fbcab8a579 100644 --- a/source/_components/light.avion.markdown +++ b/source/_components/light.avion.markdown @@ -1,7 +1,7 @@ --- layout: page -title: "Avion" -description: "Instructions on how to setup GE Avion Bluetooth dimmers within Home Assistant." +title: "Avi-on" +description: "Instructions on how to setup GE Avi-on Bluetooth dimmers within Home Assistant." date: 2017-01-17 23:17 sidebar: true comments: false @@ -9,11 +9,13 @@ sharing: true footer: true ha_category: Light ha_iot_class: "Assumed State" -featured: false +logo: avi-on.png ha_release: 0.37 --- -Support for the Avion Bluetooth dimmer switch [Avi-On](http://avi-on.com/). To enable these lights, add the following lines to your `configuration.yaml` file: +Support for the Avi-on Bluetooth dimmer switch [Avi-On](http://avi-on.com/). + +To enable these lights, add the following lines to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry diff --git a/source/images/supported_brands/avi-on.png b/source/images/supported_brands/avi-on.png new file mode 100644 index 0000000000000000000000000000000000000000..c1c65f77e6da3eb777a5653ce256a3b555bf7341 GIT binary patch literal 6112 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 HScm@yF8F9` literal 0 HcmV?d00001 From 255bb84c172f9c6e621f728206543a784e9d84fe Mon Sep 17 00:00:00 2001 From: andrey-git Date: Sun, 29 Jan 2017 18:16:42 +0200 Subject: [PATCH 20/67] Mention that the new customize format is for 0.37+ only --- source/getting-started/customizing-devices.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/getting-started/customizing-devices.markdown b/source/getting-started/customizing-devices.markdown index 5821f766f74..10a7326e192 100644 --- a/source/getting-started/customizing-devices.markdown +++ b/source/getting-started/customizing-devices.markdown @@ -11,6 +11,8 @@ footer: true By default, all of your devices will be visible and have a default icon determined by their domain. You can customize the look and feel of your front page by altering some of these parameters. This can be done by overriding attributes of specific entities. +This format works for version 0.37+. For pre-0.37 use [Older format](https://home-assistant.io/getting-started/customizing-devices/#older_format) + `customize` consists of a list of attribute customization blocks ```yaml From ab062985a0ca7f65b74fe513aed912fd809d6b40 Mon Sep 17 00:00:00 2001 From: Teemu R Date: Sun, 29 Jan 2017 20:26:23 +0100 Subject: [PATCH 21/67] Update switch.flux.markdown (#1840) * Update switch.flux.markdown Add disable_brightness_adjust doc. * Update switch.flux.markdown defaults to false. --- source/_components/switch.flux.markdown | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/source/_components/switch.flux.markdown b/source/_components/switch.flux.markdown index efb8b1371e3..e90b4b59f97 100644 --- a/source/_components/switch.flux.markdown +++ b/source/_components/switch.flux.markdown @@ -36,6 +36,7 @@ switch: sunset_colortemp: 3000 stop_colortemp: 1900 brightness: 200 + disable_brightness_adjust: True mode: xy ``` @@ -48,6 +49,7 @@ Configuration variables: - **start_colortemp** (*Optional*): The color temperature at the start. Defaults to `4000`. - **sunset_colortemp** (*Optional*): The sun set color temperature. Defaults to `3000`. - **stop_colortemp** (*Optional*): The color temperature at the end. Defaults to `1900`. -- **brightness** (*Optional*): The brightness of the lights. Calculated with `RGB_to_xy` by default. Setting to -1 disables brightness updates. +- **brightness** (*Optional*): The brightness of the lights. Calculated with `RGB_to_xy` by default. +- **disable_brightness_adjust** (*Optional*): If true, brightness will not be adjusted besides color temperature. Defaults to False. - **mode** (*Optional*): Select how color temperature is passed to lights. Valid values are `xy` and `mired`. Defaults to `xy`. From b58f1fc712bc7fd4d3d95d7849b57c4b924499ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Bidoul=20=28ACSONE=29?= Date: Mon, 30 Jan 2017 08:36:13 +0100 Subject: [PATCH 22/67] fix import in custom components documentation (#1909) --- source/developers/component_generic_discovery.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/developers/component_generic_discovery.markdown b/source/developers/component_generic_discovery.markdown index d8f92304c99..7fc39adf8e6 100644 --- a/source/developers/component_generic_discovery.markdown +++ b/source/developers/component_generic_discovery.markdown @@ -59,7 +59,7 @@ def setup(hass, config): Add your custom device specific code to the `setup_platform` method in `light/myflashyhub.py` and `switch/myflashyhub`. ```python -import homeassistant.components.myflashyhub as myflashyhub +import custom_components.myflashyhub as myflashyhub # 'switch' will receive discovery_info={'optional': 'arguments'} # as passed in above. 'light' will receive discovery_info=None From fa956322e12f1ab9a8fe542c3ba8d88ceff9e528 Mon Sep 17 00:00:00 2001 From: Colin O'Dell Date: Mon, 30 Jan 2017 02:50:06 -0500 Subject: [PATCH 23/67] Fix typo (#1919) Should be `PyPI`, not `PiPl` --- source/developers/development.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/developers/development.markdown b/source/developers/development.markdown index e763b8a54f8..771709054e1 100644 --- a/source/developers/development.markdown +++ b/source/developers/development.markdown @@ -29,4 +29,4 @@ When contributing Home Assistant code: - [TravisCl](https://travis-ci.org/) When contributing 3rd Party code to be used by Home Assistant: - - [Publishing your own PiPl package](https://jeffknupp.com/blog/2013/08/16/open-sourcing-a-python-project-the-right-way/) \ No newline at end of file + - [Publishing your own PyPI package](https://jeffknupp.com/blog/2013/08/16/open-sourcing-a-python-project-the-right-way/) From 291f81bb5f0037195f9f977cd81cc5deb3d33ad5 Mon Sep 17 00:00:00 2001 From: andrey-git Date: Mon, 30 Jan 2017 14:48:18 +0200 Subject: [PATCH 24/67] Anchor typo (#1920) --- source/getting-started/customizing-devices.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/getting-started/customizing-devices.markdown b/source/getting-started/customizing-devices.markdown index 10a7326e192..e17083c63bb 100644 --- a/source/getting-started/customizing-devices.markdown +++ b/source/getting-started/customizing-devices.markdown @@ -11,7 +11,7 @@ footer: true By default, all of your devices will be visible and have a default icon determined by their domain. You can customize the look and feel of your front page by altering some of these parameters. This can be done by overriding attributes of specific entities. -This format works for version 0.37+. For pre-0.37 use [Older format](https://home-assistant.io/getting-started/customizing-devices/#older_format) +This format works for version 0.37+. For pre-0.37 use [Older format](https://home-assistant.io/getting-started/customizing-devices/#older-format) `customize` consists of a list of attribute customization blocks From 0a92420ac08122f97777675f681d42aad7950204 Mon Sep 17 00:00:00 2001 From: William Scanlon Date: Mon, 30 Jan 2017 08:05:53 -0500 Subject: [PATCH 25/67] Update lock.wink.markdown Add note about key code binary sensors. --- source/_components/lock.wink.markdown | 3 +++ 1 file changed, 3 insertions(+) diff --git a/source/_components/lock.wink.markdown b/source/_components/lock.wink.markdown index 24dce87b856..0c253f3f2d7 100644 --- a/source/_components/lock.wink.markdown +++ b/source/_components/lock.wink.markdown @@ -24,3 +24,6 @@ The requirement is that you have setup [Wink](/components/wink/). - Schlage - Generic Z-wave +

+If supported by your lock, a binary sensor will be created for each user key code you have defined. These key codes will turn on when the code is entered and automatically turn off after a few seconds. +

From 7fd0b7ef892f68171008604fd2a6dcec146b6834 Mon Sep 17 00:00:00 2001 From: ashev Date: Mon, 30 Jan 2017 15:34:01 +0200 Subject: [PATCH 26/67] Better to use extra brackets in template (#1918) Current explanation is unclear. Had a problem when trying to convert pressure in mb to pressure in mm according to example: {{ states.sensor.pws_pressure_mb.state | float * 0.720064 | round(0) }}. Problem gone after correction of template to: {{ ( states.sensor.pws_pressure_mb.state | float * 0.720064 ) | round(0) }} --- source/_topics/templating.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_topics/templating.markdown b/source/_topics/templating.markdown index af1f5f4f52c..7b71cabebc9 100644 --- a/source/_topics/templating.markdown +++ b/source/_topics/templating.markdown @@ -123,7 +123,7 @@ Print out a list of all the sensor states. {{ states.sensor.temperature | float + 1 }} -{{ states.sensor.temperature | float * 10 | round(2) }} +{{ (states.sensor.temperature | float * 10) | round(2) }} {% if states('sensor.temperature') | float > 20 %} It is warm! From b4a694cb4d9b695d03112d29b19449e15a0d3068 Mon Sep 17 00:00:00 2001 From: David Date: Mon, 30 Jan 2017 15:01:01 +0100 Subject: [PATCH 27/67] Update automation-action.markdown (#1833) Added further explanation on how to use conditions in actions, and added to the example. --- source/getting-started/automation-action.markdown | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/source/getting-started/automation-action.markdown b/source/getting-started/automation-action.markdown index dda01b43073..cea9bc896c8 100644 --- a/source/getting-started/automation-action.markdown +++ b/source/getting-started/automation-action.markdown @@ -49,7 +49,7 @@ automation 2: ``` -Conditions can also be part of an action: +Conditions can also be part of an action. You can combine multiple service calls and conditions in a single action, and they will be processed in the order you put them in. If the result of a condition is false, the action will stop there so any service calls after that condition will not be executed. ```yaml automation: @@ -59,6 +59,9 @@ automation: entity_id: sensor.mini_despacho to: 'ON' action: + - service: notify.notify + data: + message: Testing conditional actions - condition: or conditions: - condition: template From 360af885c1217111fed7798340b9832ab5c99a1e Mon Sep 17 00:00:00 2001 From: NotoriousBDG Date: Mon, 30 Jan 2017 09:03:26 -0500 Subject: [PATCH 28/67] Add note about emulated_hue on port 80 as non-root (#1814) Added a note to the troubleshooting section showing hot to setup emulated_hue on port 80 when running as a non-root user. --- source/_components/emulated_hue.markdown | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/source/_components/emulated_hue.markdown b/source/_components/emulated_hue.markdown index 1c82a36da79..fdf4b9f05df 100644 --- a/source/_components/emulated_hue.markdown +++ b/source/_components/emulated_hue.markdown @@ -103,6 +103,11 @@ You can verify that the `emulated_hue` component has been loaded and is respondi - `http://:8300/description.xml` - This URL should return a descriptor file in the form of an XML file. - `http://:8300/api/pi/lights` - This will return a list of devices, lights, scenes, groups, etc.. that `emulated_hue` is exposing to Alexa. +An additional step is required to run Home Assistant as non-root user and use port 80 when using the AiO script. Execute the following command to allow `emulated_hue` to use port 80 as non-root user. + +```bash +sudo setcap 'cap_net_bind_service=+ep' /srv/homeassistant/homeassistant_venv/bin/python3 +``` ### {% linkable_title License %} From 24b5f8e9371f66d4f6d5d35aaa59963c024b3cb6 Mon Sep 17 00:00:00 2001 From: bbrendon Date: Mon, 30 Jan 2017 06:06:17 -0800 Subject: [PATCH 29/67] Update sensor.command_line.markdown (#1914) --- source/_components/sensor.command_line.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/source/_components/sensor.command_line.markdown b/source/_components/sensor.command_line.markdown index a87f844a1ab..99aed807615 100644 --- a/source/_components/sensor.command_line.markdown +++ b/source/_components/sensor.command_line.markdown @@ -31,6 +31,7 @@ Configuration variables: - **name** (*Optional*): Name of the command sensor. - **unit_of_measurement** (*Optional*): Defines the unit of measurement of the sensor, if any. - **value_template** (*Optional*): Defines a [template](/topics/templating/) to extract a value from the payload. +- **scan_interval** (*Optional*): Defines number of seconds for polling interval ## {% linkable_title Examples %} From 35a6b3d7edc0958889fdaea4ba31ac326368fadb Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Mon, 30 Jan 2017 19:10:32 +0100 Subject: [PATCH 30/67] Update image_processing.markdown --- source/_components/image_processing.markdown | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/source/_components/image_processing.markdown b/source/_components/image_processing.markdown index 07d11d01069..7bd4c48b188 100644 --- a/source/_components/image_processing.markdown +++ b/source/_components/image_processing.markdown @@ -10,10 +10,14 @@ footer: true ha_release: 0.36 --- -Image processing enables Home Assistant to process images from [cameras][/components/#camera]. Only camera entities are supported as sources. +Image processing enables Home Assistant to process images from [cameras](/components/#camera). Only camera entities are supported as sources. For interval control, use `scan_interval` in platform. +

+If you are running Home Assistant over SSL or from within a container, you will have to setup a base url inside the [http component](/components/http/). +

+ ## {% linkable_title ALPR %} Alpr entities attribute have a vehicle counter `vehicles` and all found plates as `plates`. From ba09360ce47c766ea32e50698a65e69b9c536728 Mon Sep 17 00:00:00 2001 From: Fredrik Lindqvist Date: Mon, 30 Jan 2017 22:27:25 +0100 Subject: [PATCH 31/67] Update switch.mqtt.markdown (#1923) Fix `mosquitto_pub` example to work with example code. --- source/_components/switch.mqtt.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/switch.mqtt.markdown b/source/_components/switch.mqtt.markdown index 14a1f7e6ba8..8b23698d480 100644 --- a/source/_components/switch.mqtt.markdown +++ b/source/_components/switch.mqtt.markdown @@ -71,5 +71,5 @@ switch: For a check you can use the command line tools `mosquitto_pub` shipped with `mosquitto` to send MQTT messages. This allows you to operate your switch manually: ```bash -$ mosquitto_pub -h 127.0.0.1 -t home/bedroom/switch1set -m "ON" +$ mosquitto_pub -h 127.0.0.1 -t home/bedroom/switch1 -m "ON" ``` From f521095942dcd9e0fd4a69b54c9664f0a35ba09b Mon Sep 17 00:00:00 2001 From: Jonathan Baginski Date: Mon, 30 Jan 2017 21:02:17 -0500 Subject: [PATCH 32/67] Update installation-raspberry-pi-all-in-one.markdown one-liner requires sudo to properly issue chown pip command --- .../installation-raspberry-pi-all-in-one.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/getting-started/installation-raspberry-pi-all-in-one.markdown b/source/getting-started/installation-raspberry-pi-all-in-one.markdown index b26a97cacfb..1a4cd7caa8e 100644 --- a/source/getting-started/installation-raspberry-pi-all-in-one.markdown +++ b/source/getting-started/installation-raspberry-pi-all-in-one.markdown @@ -19,7 +19,7 @@ Note that as of 2016-11-30 SSH is disabled by default in the official Raspbian i * Run the following command ```bash -$ wget -Nnv https://raw.githubusercontent.com/home-assistant/fabric-home-assistant/master/hass_rpi_installer.sh && chown pi:pi hass_rpi_installer.sh && bash hass_rpi_installer.sh +$ wget -Nnv https://raw.githubusercontent.com/home-assistant/fabric-home-assistant/master/hass_rpi_installer.sh && sudo chown pi:pi hass_rpi_installer.sh && bash hass_rpi_installer.sh ```

Note this command is one-line and not run as sudo. From d5d8b9725da9ff73b52bd77a8314a1fe6edaed8e Mon Sep 17 00:00:00 2001 From: Carlo Costanzo Date: Tue, 31 Jan 2017 04:39:38 -0500 Subject: [PATCH 33/67] added some of the new options to the example (#1905) * added some of the new options to the example added in so that it was clearer that true/false were the values to use. * TOOK out the examples added in (true/false) to show options. --- source/_components/light.hue.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/_components/light.hue.markdown b/source/_components/light.hue.markdown index 4bb561e0514..fd6e1c16db6 100644 --- a/source/_components/light.hue.markdown +++ b/source/_components/light.hue.markdown @@ -32,10 +32,10 @@ light: Configuration variables: - **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. +- **allow_unreachable** (*Optional*): (true/false) 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. +- **allow_in_emulated_hue** (*Optional*): (true/false) Enable this to block all Hue entities from being added to the `emulated_hue` component. +- **allow_hue_groups** (*Optional*): (true/false) Enable this to stop Home Assistant from importing the groups defined on the Hue bridge. ### {% linkable_title Using Hue Groups in Home Assistant %} From f006544cb63a5a0335bf54bd37ee69be1ca46474 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Pobo=C5=99il?= Date: Tue, 31 Jan 2017 10:46:05 +0100 Subject: [PATCH 34/67] Fixed menu to contain also iOS. (#1851) * Fixed menu to contain also iOS. Because article it also about iOS. * Changed URL in link. * Renamed android page to mobile. * Added redirect_from for mobile page from old path. * Fixed formatting in mobile page. --- Gemfile | 1 + Gemfile.lock | 3 +++ _config.yml | 1 + source/_includes/asides/getting_started_navigation.html | 2 +- source/getting-started/{android.markdown => mobile.markdown} | 5 +++-- 5 files changed, 9 insertions(+), 3 deletions(-) rename source/getting-started/{android.markdown => mobile.markdown} (93%) diff --git a/Gemfile b/Gemfile index 7c767a72f86..a1d627a356a 100644 --- a/Gemfile +++ b/Gemfile @@ -20,6 +20,7 @@ end group :jekyll_plugins do gem 'jekyll-paginate' + gem 'jekyll-redirect-from' gem 'jekyll-sitemap' gem 'jekyll-time-to-read' gem 'octopress', '~> 3.0' diff --git a/Gemfile.lock b/Gemfile.lock index a3056e867c4..a64797568a6 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -27,6 +27,8 @@ GEM rouge (~> 1.7) safe_yaml (~> 1.0) jekyll-paginate (1.1.0) + jekyll-redirect-from (0.11.0) + jekyll (>= 2.0) jekyll-sass-converter (1.3.0) sass (~> 3.2) jekyll-sitemap (0.11.0) @@ -118,6 +120,7 @@ DEPENDENCIES haml (~> 4.0) jekyll (~> 3.0) jekyll-paginate + jekyll-redirect-from jekyll-sitemap jekyll-time-to-read octopress (~> 3.0) diff --git a/_config.yml b/_config.yml index 1b7ab55bebb..545f65d9f55 100644 --- a/_config.yml +++ b/_config.yml @@ -49,6 +49,7 @@ kramdown: highlighter: rouge gems: + - jekyll-redirect-from - jekyll-time-to-read - octopress-filters - octopress-include-tag diff --git a/source/_includes/asides/getting_started_navigation.html b/source/_includes/asides/getting_started_navigation.html index abb7fb41210..e1be992d947 100644 --- a/source/_includes/asides/getting_started_navigation.html +++ b/source/_includes/asides/getting_started_navigation.html @@ -67,7 +67,7 @@

  • {% active_link {{site_root}}/topics/ Advanced Topics %}
  • {% active_link {{site_root}}/details/ Details %}
  • -
  • {% active_link /getting-started/android/ Add to Android Homescreen %}
  • +
  • {% active_link /getting-started/mobile/ Add to Android/iOS Homescreen %}
  • {% active_link /getting-started/browsers/ Browser Compatibility List %}
  • diff --git a/source/getting-started/android.markdown b/source/getting-started/mobile.markdown similarity index 93% rename from source/getting-started/android.markdown rename to source/getting-started/mobile.markdown index 2ef656adf82..8654bc3f755 100644 --- a/source/getting-started/android.markdown +++ b/source/getting-started/mobile.markdown @@ -7,11 +7,12 @@ sidebar: true comments: false sharing: true footer: true +redirect_from: /getting-started/android/ --- Home Assistant is not available on the Play Store or App Store. Instead, Home Assistant leverages the new W3C [manifest.json](https://w3c.github.io/manifest/) support, allowing mobile devices to add the "web app" to your homescreen as if it was native. -On Android: +# On Android: 1. Open Chrome 2. Navigate to your Home Assistant instance @@ -23,7 +24,7 @@ On Android:

    -On iOS: +# On iOS: 1. Open Safari 2. Navigate to your Home Assistant instance From 102a67d23f4f18c827c8af9ffbb8028902ac55a4 Mon Sep 17 00:00:00 2001 From: andrey-git Date: Tue, 31 Jan 2017 17:17:48 +0200 Subject: [PATCH 35/67] Update zwave customize format (#1922) Add a link to generic "Customizing devices and services". --- source/getting-started/z-wave.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/getting-started/z-wave.markdown b/source/getting-started/z-wave.markdown index b2d7fcc8965..3b657fd31f8 100644 --- a/source/getting-started/z-wave.markdown +++ b/source/getting-started/z-wave.markdown @@ -76,7 +76,7 @@ Configuration variables: - **config_path** (*Optional*): The path to the Python OpenZWave configuration files. Defaults to the folder `config` in your Python OpenZWave install directory. - **autoheal** (*Optional*): Allows disabling auto Z-Wave heal at midnight. Defaults to True. - **polling_interval** (*Optional*): The time period in milliseconds between polls of a nodes value. Be careful about using polling values below 30000 (30 seconds) as polling can flood the zwave network and cause problems. -- **customize** (*Optional*): This attribute contains node-specific override values: +- **customize** (*Optional*): This attribute contains node-specific override values. See [Customizing devices and services](https://home-assistant.io/getting-started/customizing-devices/) for format: - **polling_intensity** (*Optional*): Enables polling of a value and sets the frequency of polling (0=none, 1=every time through the list, 2=every other time, etc). If not specified then your device will not be polled. - **ignored** (*Optional*): Ignore this entitiy completely. It won't be shown in the Web Interface and no events are generated for it. - **refresh_value** (*Optional*): Enable refreshing of the node value. Only the light component uses this. Defaults to False. From 0a03ef64facd2284e2e95c89b0612425e9542e4f Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Tue, 31 Jan 2017 18:49:17 +0100 Subject: [PATCH 36/67] Make titles linkable --- source/getting-started/mobile.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/getting-started/mobile.markdown b/source/getting-started/mobile.markdown index 8654bc3f755..8f3657f838c 100644 --- a/source/getting-started/mobile.markdown +++ b/source/getting-started/mobile.markdown @@ -12,7 +12,7 @@ redirect_from: /getting-started/android/ Home Assistant is not available on the Play Store or App Store. Instead, Home Assistant leverages the new W3C [manifest.json](https://w3c.github.io/manifest/) support, allowing mobile devices to add the "web app" to your homescreen as if it was native. -# On Android: +### {% linkable_title Android %} 1. Open Chrome 2. Navigate to your Home Assistant instance @@ -24,7 +24,7 @@ Home Assistant is not available on the Play Store or App Store. Instead, Home As

    -# On iOS: +### {% linkable_title iOS %} 1. Open Safari 2. Navigate to your Home Assistant instance From e02c2b398f7577101d6f23c03b2ca8a686393947 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Tue, 31 Jan 2017 22:52:30 +0100 Subject: [PATCH 37/67] Add podcasts --- source/help/index.markdown | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/source/help/index.markdown b/source/help/index.markdown index db8470ed9aa..aca835fd48b 100644 --- a/source/help/index.markdown +++ b/source/help/index.markdown @@ -39,6 +39,13 @@ Have you found an issue in your Home Assistant installation? Please report it. R Looking for [talking points](/help/talking-points/) or [trivia](/help/trivia)? +### {% linkable_title Media coverage %} + +- [Episode #11](https://pythonbytes.fm/episodes/show/11/django-2.0-is-dropping-python-2-entirely-pipenv-for-profile-functionality-and-pythonic-home-automation) at minute 15:20 by [Python Bytes](https://pythonbytes.fm/) - January 2017 +- [Weekend Project: Setting up Home Assistant on your PC or Mac](http://www.automatedhome.co.uk/software/weekend-project-setting-up-home-assistant-on-your-pc-or-mac.html) by [automated home](http://www.automatedhome.co.uk/) - April 2016 +- [Episode 105 - DIY Home Automation Roundup](https://www.hometech.fm/shows/105) by [HomeTech.fm](https://www.hometech.fm/) - April 2016 +- [5 open source home automation tools](https://opensource.com/life/16/3/5-open-source-home-automation-tools) by [opensource.com](https://opensource.com) - March 2016 + ### {% linkable_title Site Search %} There is not currently a site search for Home-Assistant.io but it's in the works. For now, you can use this [Google link](https://cse.google.com/cse/publicurl?cx=005053695590750500199:dtrfi8yigbi) which will narrow your search to this specific site. From e3eed32e5b09f93329c61d37759a5a40fd593a1a Mon Sep 17 00:00:00 2001 From: Teemu R Date: Wed, 1 Feb 2017 06:18:39 +0100 Subject: [PATCH 38/67] Update light.yeelight.markdown (#1757) * Update light.yeelight.markdown * Update light.yeelight.markdown document configuration variables, document music mode. * Update light.yeelight.markdown fix naming of use_music_mode --- source/_components/light.yeelight.markdown | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/source/_components/light.yeelight.markdown b/source/_components/light.yeelight.markdown index deaf332af8a..05b662c839a 100644 --- a/source/_components/light.yeelight.markdown +++ b/source/_components/light.yeelight.markdown @@ -14,6 +14,8 @@ ha_release: 0.32 The `yeelight` light platform allows you to control your Yeelight Wifi bulbs with Home Assistant. +### {% linkable_title Example configuration %} + To enable those lights, add the following lines to your `configuration.yaml` file: ```yaml @@ -22,16 +24,26 @@ light: - platform: yeelight devices: 192.168.1.25: - name: Front Door - 192.168.1.13: name: Living Room + transition: 1000 + use_music_mode: True (defaults to False) + save_on_change: False (defaults to True) + 192.168.1.13: + name: Front Door ``` Configuration variables: - **ip** (*Required*): IP(s) of your wifi bulbs - **name** (*Optional*): A friendly name for the device. +- **transition** (*Optional*, default 350): Smooth transitions over time (in ms). +- **use_music_mode** (*Optional*, default False): Enable music mode. +- **save_on_change** (*Optional*, default True): Saves the bulb state when changed from Home Assistant. +#### {% linkable_title Music mode %} +Per default the bulb limits the amount of requests per minute to 60, a limitation which can be bypassed by enabling the music mode. In music mode the bulb is commanded to connect back to a socket provided by the component and it tries to keep the connection open, which may not be wanted in all use-cases. + +### {% linkable_title Initial setup %}

    Before trying to control your light through Home Assistant, you have to setup your bulb using Yeelight app. ( [Android](https://play.google.com/store/apps/details?id=com.yeelight.cherry&hl=fr), [IOS](https://itunes.apple.com/us/app/yeelight/id977125608?mt=8) ). In the bulb property, you have to enable "Developer Mode" Developer mode may only be available with the latest firmware installed on your bulb. Firmware can be updated in the application after connecting the bulb. @@ -39,7 +51,7 @@ Determine your bulb ip (using router, software, ping ...)

    -Tests are only made with a YLDP03YL model. Because it's the only hardware developer owns. If you have bugs with another kind of model, you could open an issue on [Home Assistant Github](https://github.com/home-assistant/home-assistant) +This component is tested to work with models YLDP01YL and YLDP03YL. If you have a different model and it is working please let us know.

    From 73fdbd6b7cb53538f8f2044976ce4e28fbb09fbd Mon Sep 17 00:00:00 2001 From: Daniel Wiberg Date: Wed, 1 Feb 2017 12:51:44 +0100 Subject: [PATCH 39/67] Add dependency libsqlite3-dev. (#1929) Add dependency libsqlite3-dev as bundle fails without it. --- source/_ecosystem/hadashboard/installation.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/source/_ecosystem/hadashboard/installation.markdown b/source/_ecosystem/hadashboard/installation.markdown index 622f895d707..ecce1549c1b 100755 --- a/source/_ecosystem/hadashboard/installation.markdown +++ b/source/_ecosystem/hadashboard/installation.markdown @@ -109,6 +109,7 @@ Note: Prereqs will vary across different machines. So far users have reported re - ruby-dev - `sudo apt-get install ruby-dev` - node-js - `sudo apt-get install nodejs` +- libsqlite3-dev - `sudo apt-get install libsqlite3-dev` - execjs gem - `gem install execjs` You will need to research what works on your particular architecture and also bear in mind that version numbers may change over time. From 64e83f228ac3ff40b3bc045be60a6e6f3ba47ab1 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Wed, 1 Feb 2017 17:43:33 +0100 Subject: [PATCH 40/67] Remove old stuff --- source/_components/camera.mjpeg.markdown | 2 -- 1 file changed, 2 deletions(-) diff --git a/source/_components/camera.mjpeg.markdown b/source/_components/camera.mjpeg.markdown index c36a907e367..7e3dbdad55d 100644 --- a/source/_components/camera.mjpeg.markdown +++ b/source/_components/camera.mjpeg.markdown @@ -15,8 +15,6 @@ ha_release: pre 0.7 The `mjpeg` camera platform allows you to integrate IP cameras which are capable to stream their video with MJPEG into Home Assistant. -Home Assistant will serve the images via its server, making it possible to view your IP camera's while outside of your network. The endpoint is `/api/camera_proxy/camera.[name]?time=[timestamp]`. - To enable this camera in your installation, add the following to your `configuration.yaml` file: ```yaml From c5ed25660364d210bf2eac329c5caa8c76eefc2c Mon Sep 17 00:00:00 2001 From: Jonathan Baginski Date: Wed, 1 Feb 2017 13:08:08 -0500 Subject: [PATCH 41/67] Update installation-raspberry-pi-all-in-one.markdown replaced wget with curl due to new Raspbian image issue. --- .../installation-raspberry-pi-all-in-one.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/getting-started/installation-raspberry-pi-all-in-one.markdown b/source/getting-started/installation-raspberry-pi-all-in-one.markdown index 1a4cd7caa8e..0f5ec4ca1ff 100644 --- a/source/getting-started/installation-raspberry-pi-all-in-one.markdown +++ b/source/getting-started/installation-raspberry-pi-all-in-one.markdown @@ -19,7 +19,7 @@ Note that as of 2016-11-30 SSH is disabled by default in the official Raspbian i * Run the following command ```bash -$ wget -Nnv https://raw.githubusercontent.com/home-assistant/fabric-home-assistant/master/hass_rpi_installer.sh && sudo chown pi:pi hass_rpi_installer.sh && bash hass_rpi_installer.sh +$ curl -O https://raw.githubusercontent.com/home-assistant/fabric-home-assistant/master/hass_rpi_installer.sh && sudo chown pi:pi hass_rpi_installer.sh && bash hass_rpi_installer.sh ```

    Note this command is one-line and not run as sudo. From 7ae5a7e80a9ad0b55f77598c39f4af7b30a5cd3e Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Wed, 1 Feb 2017 21:29:30 -0800 Subject: [PATCH 42/67] Release 0.37.1 --- _config.yml | 6 +++--- .../2017-01-28-face-coffee-wink.markdown | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/_config.yml b/_config.yml index 545f65d9f55..02db5419bab 100644 --- a/_config.yml +++ b/_config.yml @@ -132,9 +132,9 @@ social: # Home Assistant release details current_major_version: 0 current_minor_version: 37 -current_patch_version: 0 -date_released: 2017-01-29 +current_patch_version: 1 +date_released: 2017-02-02 # Either # or the anchor link to latest release notes in the blog post. # Must be prefixed with a # and have double quotes around it. -patch_version_notes: "" +patch_version_notes: "#release-0371---february-2" diff --git a/source/_posts/2017-01-28-face-coffee-wink.markdown b/source/_posts/2017-01-28-face-coffee-wink.markdown index 4e8decf66aa..0f0f5db2e70 100644 --- a/source/_posts/2017-01-28-face-coffee-wink.markdown +++ b/source/_posts/2017-01-28-face-coffee-wink.markdown @@ -129,6 +129,21 @@ 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 Release 0.37.1 - February 2 %} + +- Do not reject alphanumeric IDs for PiLight ([@DavidLP]) +- Fix broken Hue discovery ([@DanielHiversen]) +- Fix Amcrest ([@tchellomello]) +- Fix Telldus Live dim level error on startup ([@molobrakos]) +- Fix Sonos group coordinators ([@pvizeli]) +- UPC Connect: Parse XML outside event loop ([@pvizeli]) +- Fix Netatmo SSL issue with VPN url ([@jabesq]) +- Homematic: Fix bug with UNREACH device state/restore and variables not updating ([@pvizeli]) +- Sonos: Prevent duplicate entries in favorite list ([@pvizeli]) +- Fix Schlage Connect deadbolt integration via Z-Wave ([@turbokongen]) +- Prevent infinite loop in crossconfigured mqtt event streams ([@aequitas]) +- Fix Hue lightgroups failing on startup ([@tboyce1]) + ### {% linkable_title Breaking changes %} - 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. @@ -145,6 +160,9 @@ Bugfix: [@balloob], [@fabaff], [@freol35241], [@pvizeli], [@Danielhiversen], [@t ### {% linkable_title Reporting Issues %} Experiencing issues introduced by this release? Please report them in our [issue tracker](https://github.com/home-assistant/home-assistant/issues). Make sure to fill in all fields of the issue template. +[@DavidLP]: https://github.com/DavidLP +[@molobrakos]: https://github.com/molobrakos +[@tboyce1]: https://github.com/tboyce1 [@MrMep]: https://github.com/MrMep [@joopert]: https://github.com/joopert [@armills]: https://github.com/armills From 5574cf840ae1d9350030a5cefbd33320837ffc04 Mon Sep 17 00:00:00 2001 From: bbrendon Date: Wed, 1 Feb 2017 23:56:30 -0800 Subject: [PATCH 43/67] details about nmap process being called (#1937) --- source/_components/device_tracker.nmap_tracker.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/_components/device_tracker.nmap_tracker.markdown b/source/_components/device_tracker.nmap_tracker.markdown index e3f981f2fa2..f406a8a25b4 100644 --- a/source/_components/device_tracker.nmap_tracker.markdown +++ b/source/_components/device_tracker.nmap_tracker.markdown @@ -60,6 +60,8 @@ device_tracker: - 10.0.0.2 - 10.0.0.15 ``` +In the above example, Nmap will be call with the process: +`nmap -oX - 192.168.1.1/24 10.0.0.2 10.0.0.15 -F --host-timeout 5s` An example of how the Nmap scanner can be customized: From e7cc2120d60217cb6bbf5f7c9111cfb3b0a3e41e Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Thu, 2 Feb 2017 09:09:17 +0100 Subject: [PATCH 44/67] Add redirect --- source/developers/website.markdown | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/source/developers/website.markdown b/source/developers/website.markdown index 46f2d601f2c..e392118ddca 100644 --- a/source/developers/website.markdown +++ b/source/developers/website.markdown @@ -63,6 +63,12 @@ Content...Written in markdown. There are [pre-definied variables](https://jekyllrb.com/docs/variables/) available but usually, it's not necessary to use them when writing documentation. +A couple of points to remember: + +- Document the needed steps to retrieve API keys or access token for the third party service or device if needed. +- Keep the configuration sample minimal by only adding the `Required` options. Full configuration details with further explanations should go into a seperate section. +- The description of all the configuration variables should contains information about the used defaults. + ### {% linkable_title Embedding Code %} You can use the default markdown syntax to generate syntax highlighted code. For inline code wrap your code in \`. For multi-line, syntax wrap your code as shown below. @@ -94,6 +100,16 @@ The direct usage of HTML is supported but not recommended. The note boxes are an

    ``` +### {% linkable_title Redirects %} +If you rename or move an existing platform or component, create the redirect. Add the old location of the page to the header of the new one. + +```test +--- +... +redirect_from: /getting-started/android/ +--- +``` + ### {% linkable_title Images, icons, and logos %} The images which are displayed on the pages are stored in various directories according to their purpose. From f72701dba68b49bb3fc66831765619510044032b Mon Sep 17 00:00:00 2001 From: Oliv3rDog Date: Thu, 2 Feb 2017 06:13:32 -0200 Subject: [PATCH 45/67] Update switch.broadlink.markdown (#1935) --- source/_components/switch.broadlink.markdown | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/source/_components/switch.broadlink.markdown b/source/_components/switch.broadlink.markdown index 903676f11d2..62508e1daa2 100644 --- a/source/_components/switch.broadlink.markdown +++ b/source/_components/switch.broadlink.markdown @@ -60,28 +60,28 @@ switch 2: timeout: 15 switches: # Will work on most Phillips tvs: - tv: - friendly_name: "Phillips Tv" + tv_phillips: + friendly_name: "Phillips Tv Power" command_on: 'JgAcAB0dHB44HhweGx4cHR06HB0cHhwdHB8bHhwADQUAAAAAAAAAAAAAAAA=' command_off: 'JgAaABweOR4bHhwdHB4dHRw6HhsdHR0dOTocAA0FAAAAAAAAAAAAAAAAAAA=' # Will work on most LG tvs tv_lg: - friendly_name: "LG Tv" + friendly_name: "LG Tv Power" command_on: 'JgBYAAABIJISExETETcSEhISEhQQFBETETcROBESEjcRNhM1EjcTNRMTERISNxEUERMSExE2EjYSNhM2EhIROBE3ETcREhITEgAFGwABH0oSAAwzAAEfShEADQU=' command_off: 'JgBYAAABIJISExETETcSEhISEhQQFBETETcROBESEjcRNhM1EjcTNRMTERISNxEUERMSExE2EjYSNhM2EhIROBE3ETcREhITEgAFGwABH0oSAAwzAAEfShEADQU=' - tv_lg_HDMI1_HDMI2: - friendly_name: "LG Tv" + tv_lg_hdmi1_hdmi2: + friendly_name: "LG Tv HDMI12" command_on: 'JgBIAAABIZMRExITEjYSExMRERURExEUEDkRNxEUEjYSNhM3ETcSNxITETgSNhI2ExMQExE4ETYSNxIUERMSExE4ETcRFBETEQANBQ==' command_off: 'JgBQAAABJJMSEhISETgSEhITEBMSEhMSETcSNxMREjcSNxI3EjcSOBETERITNhM2EhITERM2EzcRNxI3ExISEhI3EjcRExETEgAFLQABJEoRAA0FAAAAAAAAAAA=' - tv_lg_HDMI3: - friendly_name: "LG Tv" + tv_lg_hdmi3: + friendly_name: "LG Tv HDMI3" command_on: 'JgBIAAABIZMSFBISETgRExEUERQQFBETEjcTNhMSETgRNxE3EjcROBM2ERMSFBE4ERMSNxM2EjUSFBE2ETgRExM2ExITEhATEwANBQ==' - tv_lg_AV1_AV2: - friendly_name: "LG Tv" + tv_lg_av1_av2: + friendly_name: "LG Tv AV12" command_on: 'JgBIAAABIpQPFBITETgSEw8UEhQSEhEVDzgSOBAUETgQOQ84EjgRNxITETgSExA5EDgREhI3EhMROBMSEDkQFBETEjYTEhE4EQANBQ==' command_off: 'JgBIAAABH5YPFBETETgUERAUEBURFBATETgROBEUETcSNxE4ETcSOBISEBUQFREUEjUSFBA5ETcRNxE4ETkQOBAUEjcRFRAUEQANBQ==' From 53c3ff3fdc80cd3bc52c3719f01110c0d20f327e Mon Sep 17 00:00:00 2001 From: Felix Fischer Date: Thu, 2 Feb 2017 09:25:08 +0100 Subject: [PATCH 46/67] explain value extraction via template (#1891) * explain value extraction via template Getting values from a JSON variable via `state_format` did not work for me, but using `value_template` worked. I added some explanation on how to use it. * wrap template with {% raw %}...{% endraw %} --- source/_components/mqtt.markdown | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/source/_components/mqtt.markdown b/source/_components/mqtt.markdown index e829e5da5fb..1a0e649b816 100644 --- a/source/_components/mqtt.markdown +++ b/source/_components/mqtt.markdown @@ -279,6 +279,13 @@ switch: platform: mqtt state_format: 'json:somekey[0].value' ``` +It is also possible to extract JSON values by using a value template: + +```yaml +switch: + platform: mqtt + value_template: '{% raw %}{{ value_json.somekey[0].value }}{% endraw %}' +``` More information about the full JSONPath syntax can be found [here][JSONPath syntax]. From ebecd9fce648cf856592fa09af08f6a53923d603 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Thu, 2 Feb 2017 12:05:43 +0100 Subject: [PATCH 47/67] Make titles linkable --- source/developers/websocket_api.markdown | 78 ++++++++++++------------ 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/source/developers/websocket_api.markdown b/source/developers/websocket_api.markdown index faf8bb93455..023008d507a 100644 --- a/source/developers/websocket_api.markdown +++ b/source/developers/websocket_api.markdown @@ -13,7 +13,7 @@ Home Assistant contains a websocket API. This API can be used to stream informat - [JavaScript](https://github.com/home-assistant/home-assistant-js-websocket) - powers the frontend -# Server states +# {% linkable_title Server states %} 1. Client connects 2. Authentication phase starts @@ -31,20 +31,20 @@ Home Assistant contains a websocket API. This API can be used to stream informat During the command phase, the client attaches a unique identifier to each message. The server will add this identifier to each message so that the client can link each message to it's origin. -# Message format +# {% linkable_title Message format %} Each API message is a JSON serialized object containing a `type` key. After the authentication phase messages also must contain an `id`, an integer that contains the number of interactions. Example of an auth message: -```json5 +```json { "type": "auth", "api_password": "supersecret" } ``` -```json5 +```json { "id" 5, "type":"event", @@ -57,13 +57,13 @@ Example of an auth message: } ``` -# Authentication phase +# {% linkable_title Authentication phase %} When a client connects to the server, the server will test if the client is authenticated. Authentication will not be necessary if no api_password is set or if the user fulfills one of the other criteria for authentication (trusted network, password in url/header). If no authentication is needed, the authentication phase will complete and the server will send an `auth_ok` message. -```json5 +```json { "type": "auth_ok" } @@ -71,7 +71,7 @@ If no authentication is needed, the authentication phase will complete and the s If authentication is necessary, the server sends out `auth_required`. -```json5 +```json { "type": "auth_required" } @@ -79,7 +79,7 @@ If authentication is necessary, the server sends out `auth_required`. This means that the next message from the client should be an auth message: -```json5 +```json { "type": "auth", "api_password": "supersecret" @@ -88,7 +88,7 @@ This means that the next message from the client should be an auth message: If the client supplies valid authentication, the authentication phase will complete by the server sending the `auth_ok` message: -```json5 +```json { "type": "auth_ok" } @@ -96,18 +96,18 @@ If the client supplies valid authentication, the authentication phase will compl If the data is incorrect, the server will reply with `auth_invalid` message and disconnect the session. -```json5 +```json { "type": "auth_invalid", "message": "Invalid password" } ``` -# Command phase +# {% linkable_title Command phase %} During this phase the client can give commands to the server. The server will respond to each command with a `result` message indicating when the command is done and if it was successful. -```json5 +```json { "id": 6. "type": "result", @@ -117,11 +117,11 @@ During this phase the client can give commands to the server. The server will re } ``` -## Subscribe to events +## {% linkable_title Subscribe to events %} The command `subscribe_events` will subscribe your client to the event bus. You can either listen to all events or to a specific event type. If you want to listen to multiple event types, you will have to send multiple `subscribe_events` commands. -```json5 +```json { "id": 18, "type": "subscribe_events", @@ -132,7 +132,7 @@ The command `subscribe_events` will subscribe your client to the event bus. You The server will respond with a result message to indicate that the subscription is active. -```json5 +```json { "id": 18, "type": "result", @@ -143,7 +143,7 @@ The server will respond with a result message to indicate that the subscription For each event that matches, the server will send a message of type `event`. The `id` in the message will point at the original `id` of the `listen_event` command. -```json5 +```json { "id": 18, "type":"event", @@ -190,11 +190,11 @@ For each event that matches, the server will send a message of type `event`. The } ``` -## Unsubscribing from events +## {% linkable_title Unsubscribing from events %} You can unsubscribe from previously created subscription events. Pass the id of the original subscription command as value to the subscription field. -```json5 +```json { "id": 19, "type": "unsubscribe_events", @@ -204,7 +204,7 @@ You can unsubscribe from previously created subscription events. Pass the id of The server will respond with a result message to indicate that unsubscribing was successful. -```json5 +```json { "id": 19, "type": "result", @@ -214,7 +214,7 @@ The server will respond with a result message to indicate that unsubscribing was ``` -## Calling a service +## {% linkable_title Calling a service %} This will call a service in Home Assistant. Right now there is no return value. The client can listen to `state_changed` events if it is interested in changed entities as a result of a service call. @@ -233,7 +233,7 @@ This will call a service in Home Assistant. Right now there is no return value. The server will indicate with a message indicating that the service is done executing. -```json5 +```json { "id": 24, "type": "result", @@ -242,11 +242,11 @@ The server will indicate with a message indicating that the service is done exec } ``` -## Fetching states +## {% linkable_title Fetching states %} This will get a dump of all the current states in Home Assistant. -```json5 +```json { "id": 19, "type": "get_states" @@ -255,20 +255,20 @@ This will get a dump of all the current states in Home Assistant. The server will respond with a result message containing the states. -```json5 +```json { "id": 19, "type": "result", "success": true, - "result": [ … ] + "result": [ ... ] } ``` -## Fetching config +## {% linkable_title Fetching config %} This will get a dump of the current config in Home Assistant. -```json5 +```json { "id": 19, "type": "get_config" @@ -277,20 +277,20 @@ This will get a dump of the current config in Home Assistant. The server will respond with a result message containing the config. -```json5 +```json { "id": 19, "type": "result", "success": true, - "result": { … } + "result": { ... } } ``` -## Fetching services +## {% linkable_title Fetching services %} This will get a dump of the current services in Home Assistant. -```json5 +```json { "id": 19, "type": "get_config" @@ -299,20 +299,20 @@ This will get a dump of the current services in Home Assistant. The server will respond with a result message containing the services. -```json5 +```json { "id": 19, "type": "result", "success": true, - "result": { … } + "result": { ... } } ``` -## Fetching panels +## {% linkable_title Fetching panels %} This will get a dump of the current registered panels in Home Assistant. -```json5 +```json { "id": 19, "type": "get_panels" @@ -321,16 +321,16 @@ This will get a dump of the current registered panels in Home Assistant. The server will respond with a result message containing the current registered panels. -```json5 +```json { "id": 19, "type": "result", "success": true, - "result": [ … ] + "result": [ ... ] } ``` -# Error handling +# {% linkable_title Error handling %} If an error occurs, the `success` key in the `result` message will be set to `false`. It will contain an `error` key containing an object with two keys: `code` and `message`. @@ -340,7 +340,7 @@ If an error occurs, the `success` key in the `result` message will be set to `fa | 2 | Received message is not in expected format (voluptuous validation error). | 3 | Requested item cannot be found -```json5 +```json { "id": 12, "type":"result", From eb8293732d5d316680de695bd6001d456d27b59e Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Thu, 2 Feb 2017 23:17:22 +0100 Subject: [PATCH 48/67] Remove hint to fork since that is very insecure. --- source/_components/ffmpeg.markdown | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/source/_components/ffmpeg.markdown b/source/_components/ffmpeg.markdown index 26767905fd1..db663d96988 100644 --- a/source/_components/ffmpeg.markdown +++ b/source/_components/ffmpeg.markdown @@ -30,14 +30,16 @@ Configuration variables: ### {% linkable_title Raspbian Debian Jessie Lite Installations %} To get the binary on Raspbian Debian Jessie Lite on a RPi you need to perform the following: + +```bash +$ sudo echo "deb http://ftp.debian.org/debian jessie-backports main" >> /etc/apt/sources.list +$ sudo apt-get update +$ sudo apt-get -t jessie-backports install ffmpeg ``` -$ sudo apt-get install libav-tools -``` -This will get a forked version of ffmpeg called avconv, once this is installed you need to use the following in the configuration: ``` ffmpeg: - ffmpeg_bin: /usr/bin/avconv + ffmpeg_bin: /usr/bin/ffmpeg ``` ### {% linkable_title Troubleshooting %} From 554113dbbe48f6068c3a9080f76623a687cf27cb Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Thu, 2 Feb 2017 23:18:52 +0100 Subject: [PATCH 49/67] Update ffmpeg.markdown --- source/_components/ffmpeg.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/ffmpeg.markdown b/source/_components/ffmpeg.markdown index db663d96988..eb48e451421 100644 --- a/source/_components/ffmpeg.markdown +++ b/source/_components/ffmpeg.markdown @@ -36,7 +36,7 @@ $ sudo echo "deb http://ftp.debian.org/debian jessie-backports main" >> /etc/apt $ sudo apt-get update $ sudo apt-get -t jessie-backports install ffmpeg ``` - +We can use now following in the configuration: ``` ffmpeg: ffmpeg_bin: /usr/bin/ffmpeg From b5b5a20c4b4edabd42608620b907d2680c500b1f Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Thu, 2 Feb 2017 12:13:51 +0100 Subject: [PATCH 50/67] Add endpoint --- source/developers/websocket_api.markdown | 26 +++++++++++++----------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/source/developers/websocket_api.markdown b/source/developers/websocket_api.markdown index 023008d507a..e7a1d974ef2 100644 --- a/source/developers/websocket_api.markdown +++ b/source/developers/websocket_api.markdown @@ -9,11 +9,13 @@ sharing: true footer: true --- -Home Assistant contains a websocket API. This API can be used to stream information from the Home Assistant server to any client that implements websockets. Implementations in different languages: +Home Assistant contains a websocket API. This API can be used to stream information from a Home Assistant instance to any client that implements websockets. Implementations in different languages: - [JavaScript](https://github.com/home-assistant/home-assistant-js-websocket) - powers the frontend -# {% linkable_title Server states %} +Connect your websocket implementation to `ws://localhost:8123/api/websocket`. + +## {% linkable_title Server states %} 1. Client connects 2. Authentication phase starts @@ -31,7 +33,7 @@ Home Assistant contains a websocket API. This API can be used to stream informat During the command phase, the client attaches a unique identifier to each message. The server will add this identifier to each message so that the client can link each message to it's origin. -# {% linkable_title Message format %} +## {% linkable_title Message format %} Each API message is a JSON serialized object containing a `type` key. After the authentication phase messages also must contain an `id`, an integer that contains the number of interactions. @@ -57,7 +59,7 @@ Example of an auth message: } ``` -# {% linkable_title Authentication phase %} +## {% linkable_title Authentication phase %} When a client connects to the server, the server will test if the client is authenticated. Authentication will not be necessary if no api_password is set or if the user fulfills one of the other criteria for authentication (trusted network, password in url/header). @@ -103,7 +105,7 @@ If the data is incorrect, the server will reply with `auth_invalid` message and } ``` -# {% linkable_title Command phase %} +## {% linkable_title Command phase %} During this phase the client can give commands to the server. The server will respond to each command with a `result` message indicating when the command is done and if it was successful. @@ -190,7 +192,7 @@ For each event that matches, the server will send a message of type `event`. The } ``` -## {% linkable_title Unsubscribing from events %} +### {% linkable_title Unsubscribing from events %} You can unsubscribe from previously created subscription events. Pass the id of the original subscription command as value to the subscription field. @@ -214,7 +216,7 @@ The server will respond with a result message to indicate that unsubscribing was ``` -## {% linkable_title Calling a service %} +### {% linkable_title Calling a service %} This will call a service in Home Assistant. Right now there is no return value. The client can listen to `state_changed` events if it is interested in changed entities as a result of a service call. @@ -242,7 +244,7 @@ The server will indicate with a message indicating that the service is done exec } ``` -## {% linkable_title Fetching states %} +### {% linkable_title Fetching states %} This will get a dump of all the current states in Home Assistant. @@ -264,7 +266,7 @@ The server will respond with a result message containing the states. } ``` -## {% linkable_title Fetching config %} +### {% linkable_title Fetching config %} This will get a dump of the current config in Home Assistant. @@ -286,7 +288,7 @@ The server will respond with a result message containing the config. } ``` -## {% linkable_title Fetching services %} +### {% linkable_title Fetching services %} This will get a dump of the current services in Home Assistant. @@ -308,7 +310,7 @@ The server will respond with a result message containing the services. } ``` -## {% linkable_title Fetching panels %} +### {% linkable_title Fetching panels %} This will get a dump of the current registered panels in Home Assistant. @@ -330,7 +332,7 @@ The server will respond with a result message containing the current registered } ``` -# {% linkable_title Error handling %} +## {% linkable_title Error handling %} If an error occurs, the `success` key in the `result` message will be set to `false`. It will contain an `error` key containing an object with two keys: `code` and `message`. From 60ea564631c93b3e53ce1b132ee077a87999f583 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Thu, 2 Feb 2017 23:49:32 +0100 Subject: [PATCH 51/67] Fix link --- 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 0f0f5db2e70..1c808e0616b 100644 --- a/source/_posts/2017-01-28-face-coffee-wink.markdown +++ b/source/_posts/2017-01-28-face-coffee-wink.markdown @@ -229,7 +229,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [@mKeRix]: https://github.com/mKeRix [@fakezeta]: https://github.com/fakezeta -[amcrest]: https://home-assistant.io/components/binary_sensor.arest/ +[amcrest]: https://home-assistant.io/components/binary_sensor.amcrest/ [discord]: https://home-assistant.io/components/notify.discord/ [tado]: https://home-assistant.io/components/device_tracker.tado/ [sky]: https://home-assistant.io/components/device_tracker.sky_hub/ From bbb5d023f0ecb1c15bba2b5a971e48e876cfb110 Mon Sep 17 00:00:00 2001 From: miniconfig Date: Fri, 3 Feb 2017 02:06:43 -0500 Subject: [PATCH 52/67] Add ha_release to Website Update directions (#1948) Added an explanation of how to specify ha_release for a new component. --- source/developers/website.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/developers/website.markdown b/source/developers/website.markdown index e392118ddca..158d04f28c2 100644 --- a/source/developers/website.markdown +++ b/source/developers/website.markdown @@ -53,6 +53,7 @@ sidebar: true comments: false sharing: true footer: true +ha_release: "0.38" --- Content...Written in markdown. @@ -68,6 +69,7 @@ A couple of points to remember: - Document the needed steps to retrieve API keys or access token for the third party service or device if needed. - Keep the configuration sample minimal by only adding the `Required` options. Full configuration details with further explanations should go into a seperate section. - The description of all the configuration variables should contains information about the used defaults. +- If you're adding a new component, for the `ha_release` part of the header, just increment off the current release. If the current release is 0.37, make ha_release 0.38. ### {% linkable_title Embedding Code %} From 32f8077260fab7307d4d861914323fed8373d8a3 Mon Sep 17 00:00:00 2001 From: Matt Cahill Date: Fri, 3 Feb 2017 21:06:26 +1300 Subject: [PATCH 53/67] proposed change for issue #1939 (#1940) * proposed change for issue #1939 changed link target to point to correct location of libcec in system site-packages included latest default location for the virtual env in a Raspberry Pi All-In-One installation * update to reflect differing locations of libcec --- source/_components/hdmi_cec.markdown | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/source/_components/hdmi_cec.markdown b/source/_components/hdmi_cec.markdown index e586904bc00..48bca5f1a8d 100644 --- a/source/_components/hdmi_cec.markdown +++ b/source/_components/hdmi_cec.markdown @@ -27,16 +27,23 @@ The computer running Home Assistant must support CEC, and of course be connected #### {% linkable_title Symlinking into virtual environment %} -Create a symlink to the `cec` installation. +Create a symlink to the `cec` installation. Keep in mind different installation methods will result in different locations of cec. ```bash -$ ln -s /usr/local/lib/python3.4/dist-packages/cec /path/to/your/venv/lib/python3.4/site-packages +$ ln -s /path/to/your/installation/of/cec /path/to/your/venv/lib/python3.4/site-packages +``` +##### {% linkable_title Symlinking examples: %} + +For the default virtual environment of a [HASSbian Image for Raspberry Pi](/getting-started/installation-raspberry-pi-image/) the command would be as follows. + +```bash +$ ln -s /usr/local/lib/python3.4/dist-packages/cec /srv/homeassistant/lib/python3.4/site-packages ``` For the default virtual environment of a [Raspberry Pi All-In-One installation](/getting-started/installation-raspberry-pi-all-in-one/) the command would be as follows. ```bash -$ ln -s /usr/local/lib/python3.4/dist-packages/cec /srv/hass/hass_venv/lib/python3.4/site-packages +$ ln -s /usr/local/lib/python3.4/site-packages/cec /srv/homeassistant/homeassistant_venv/lib/python3.4/site-packages ```

    If after symlinking and adding `hdmi_cec:` to your configuration you are getting the following error in your logs, From d937a979dc09b38a955d2ef51278006fdeab7b29 Mon Sep 17 00:00:00 2001 From: miniconfig Date: Fri, 3 Feb 2017 03:48:45 -0500 Subject: [PATCH 54/67] Grammatical Correction to website.markdown (#1946) Made a minor correction to the grammar on the developers/website page. --- source/developers/website.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/developers/website.markdown b/source/developers/website.markdown index 158d04f28c2..b407ff48e0f 100644 --- a/source/developers/website.markdown +++ b/source/developers/website.markdown @@ -69,7 +69,7 @@ A couple of points to remember: - Document the needed steps to retrieve API keys or access token for the third party service or device if needed. - Keep the configuration sample minimal by only adding the `Required` options. Full configuration details with further explanations should go into a seperate section. - The description of all the configuration variables should contains information about the used defaults. -- If you're adding a new component, for the `ha_release` part of the header, just increment off the current release. If the current release is 0.37, make ha_release 0.38. +- If you're adding a new component, for the `ha_release` part of the header, just increment off the current release. If the current release is 0.37, make `ha_release` 0.38. ### {% linkable_title Embedding Code %} From cc2b8813eb25d492f3e20619875c933224ec58f2 Mon Sep 17 00:00:00 2001 From: System Tester Date: Sat, 4 Feb 2017 18:56:42 +1000 Subject: [PATCH 55/67] Update installation-virtualenv.markdown (#1959) Added missing git package --- source/getting-started/installation-virtualenv.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/getting-started/installation-virtualenv.markdown b/source/getting-started/installation-virtualenv.markdown index e176aba0c0f..c8596abe41e 100644 --- a/source/getting-started/installation-virtualenv.markdown +++ b/source/getting-started/installation-virtualenv.markdown @@ -110,7 +110,7 @@ If you want to use Z-Wave devices, you will need to install `python-openzwave` i Install the dependencies as normal (Note: you will need to do this as your normal user, since `homeassistant` isn't a sudoer). ```bash -$ sudo apt-get install cython3 libudev-dev python3-sphinx python3-setuptools +$ sudo apt-get install cython3 libudev-dev python3-sphinx python3-setuptools git ``` Then, activate your virtualenv (steps 3 and 5 above) and upgrade cython. From bfefe86783b9068a9d86af1860789fb05cf71431 Mon Sep 17 00:00:00 2001 From: pavanagrawal123 Date: Sat, 4 Feb 2017 02:58:48 -0600 Subject: [PATCH 56/67] Update Documentation (#1953) Few grammar fixes. --- source/_components/microsoft_face.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/_components/microsoft_face.markdown b/source/_components/microsoft_face.markdown index ae15f4f330f..6dba0b942a4 100644 --- a/source/_components/microsoft_face.markdown +++ b/source/_components/microsoft_face.markdown @@ -12,9 +12,9 @@ ha_category: Hub ha_release: "0.37" --- -The `microsoft_face` component platform is the main component for Microsoft Azure Cognitive service [Face](https://www.microsoft.com/cognitive-services/en-us/face-api). All data are in a own private instance in the Azure cloud. +The `microsoft_face` component platform is the main component for Microsoft Azure Cognitive service [Face](https://www.microsoft.com/cognitive-services/en-us/face-api). All data is stored in a private instance on Azure Cloud. -You need an API key which is free but requires a [Azure registration](https://azure.microsoft.com/de-de/free/) with your microsoft ID. The free resource (*F0*) is limit to 30k requests in a month and 20 per minute. If you don't want use a the Azure cloud, you can also get a API key with registration on [cognitive-services](https://www.microsoft.com/cognitive-services/en-us/subscriptions) but they need to recreate all 90 days. +You need an API key which is free but requires a [Azure registration](https://azure.microsoft.com/de-de/free/) with your Microsoft Account. The free resource (*F0*) is limit to 30k requests in a month and 20 per minute. If you don't want use a the Azure cloud, you can also get a API key with registration on [cognitive-services](https://www.microsoft.com/cognitive-services/en-us/subscriptions). However, all keys on cognitive services must be recreated every 90 days. To enable the Microsoft Face component, add the following lines to your `configuration.yaml`: From df2bbc3bdf9f222ef439f9ca5dff72066aa0c083 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Sat, 4 Feb 2017 10:06:30 +0100 Subject: [PATCH 57/67] babyphone blogpost (#1945) * babyphone blogpost * update ffmpeg config * add automation * fix yaml * address comments * finish * add sozial --- source/_posts/2017-02-04-babyphone.markdown | 144 ++++++++++++++++++ .../images/blog/2017-02-babyphone/social.png | Bin 0 -> 184497 bytes 2 files changed, 144 insertions(+) create mode 100644 source/_posts/2017-02-04-babyphone.markdown create mode 100644 source/images/blog/2017-02-babyphone/social.png diff --git a/source/_posts/2017-02-04-babyphone.markdown b/source/_posts/2017-02-04-babyphone.markdown new file mode 100644 index 00000000000..14c98139fe3 --- /dev/null +++ b/source/_posts/2017-02-04-babyphone.markdown @@ -0,0 +1,144 @@ +--- +layout: post +title: "Smart Baby Monitor" +description: "How to build your own smart baby monitor" +date: 2017-02-04 00:00:00 +0100 +date_formatted: "February 4, 2017" +author: Pascal Vizeli +comments: true +categories: How-To Babyphone +og_image: /images/blog/2017-02-babyphone/social.png +--- + +One of the hardest part of being a parent is keeping a constant eye on the baby to make sure that baby is doing well. Thus, it is not surprising that baby monitors are one of the fastest growing baby product category. However, many of the baby monitors available in the market are rather dumb and expect the parents to keep looking at the video stream or listen to the audio. This how-to will help you create a smart baby monitor on a budget and integrate it with Home-Assitant. Instead of relying on the poor quality baby monitor speakers, we use our existing speakers (e.g., Sonos). We can also send notifications (with pictures) to avoid constant monitoring of the feed. + +Obviously, you can use the setup as a general purpose surveillance system to monitor noise in the whole house. + + + +### {% linkable_title Setup %} + +We need an IP-camera that can capture sound in the baby's room. It is also possible to use a Raspberry Pi with a microphone and send the audio to our Home-Assistant with `ffmpeg -f alsa -i hw:1,0 -vn -f rtp rtp://236.0.0.1:2000` over multicast. We can set `input` option on Home-Assistant side to `rtp://236.0.0.1:2000` in same network. + +Next, we attach a ffmpeg noise binary sensor to our IP-camera. The sensor has an output `option` that allows us to send the output to icecast2 server for playing over speakers integrated with Home-Assistant (e.g., Sonos). We can use the binary sensor in our automation. You can ignore the icecast2 setup if you don't want to play the audio after the noise sensor trigger. + +

    +We change the platform name for binary sensor in 0.38 from `ffmpeg` to `ffmpeg_noise`. Also all service going to component and was rename from `binary_sensor.ffmpeg_xy` to `ffmpeg.xy`. +

    + +On Raspbian Jessie, you can setup [ffmpeg](/components/ffmpeg) and install a [icecast2](http://icecast.org/) server using: +```bash +$ sudo echo "deb http://ftp.debian.org/debian jessie-backports main" >> /etc/apt/sources.list +$ sudo apt-get update +$ sudo apt-get -t jessie-backports install ffmpeg +$ sudo apt-get install icecast2 +``` + +We setup a icecast mount point for our babyphone and update `/etc/icecast2/icecast.xml`: +``` + + /babyphone.mp3 + Babyphone + + stream_user + stream_pw + +``` + +Now we can add the noise sensor to Home-Assistant. We can lower the sensitivity of the sensor (so that you are not inundated with notifications for every cough of the baby) to 2 seconds using the `duration` option. The sensor should wait 60 seconds before restoring and it prevent us that a wine break will triggering a new alarm. + +We can optimize the audio stream for human voice by using a highpass filter with 300Hz and a lowpass filter with 2500Hz. This filters out all non-human sounds such as background noise. We can even add a volume amplifier if the microphone volume is too low (you can remove it from `extra_arguments`). For icecast2 we convert the audio stream to mp3 with samplerate of 16000 (which is the minimum for Sonos speakers). We use `peak` to set the threshold for noise detection, where 0 dB is very loud and -100 dB is low. + +```yaml +binary_sensor: + - platform: ffmpeg_noise + input: rtsp://user:pw@my_input/video + extra_arguments: -filter:a highpass=f=300,lowpass=f=2500,volume=volume=2 -codec:a libmp3lame -ar 16000 + output: -f mp3 icecast://stream_user:stream_pw@127.0.0.1:8000/babyphone.mp3 + initial_state: false + duration: 2 + reset: 60 + peak: -32 +``` + +We use the option `initial_state` to prevent the ffmpeg process from starting with Home-Assistant and only start it when needed. We use an `input_boolean` to control the state of ffmpeg services using the following automation. + +```yaml +input_boolean: + babyphone: + name: babyphone + initial: off + +automation: + - alias: 'Babyphone on' + trigger: + platform: state + entity_id: input_boolean.babyphone + from: 'off' + to: 'on' + action: + service: ffmpeg.start + entity_id: binary_sensor.ffmpeg_noise + + - alias: 'Babyphone off' + trigger: + platform: state + entity_id: input_boolean.babyphone + from: 'on' + to: 'off' + action: + service: ffmpeg.stop + entity_id: binary_sensor.ffmpeg_noise +``` + +### {% linkable_title Trigger a alarm %} + +Now we can make a lot stuff. Here is a simple example of an automation what should be possible with Sonos speakers. + +```yaml +automation: + - alias: 'Babyphone alarm on' + trigger: + platform: state + entity_id: binary_sensor.ffmpeg_noise + from: 'off' + to: 'on' + action: + - service: media_player.sonos_snapshot + entity_id: media_player.bedroom + - service: media_player.sonos_unjoin + entity_id: media_player.bedroom + - service: media_player.volume_set + entity_id: media_player.bedroom + data: + volume_level: 0.4 + - service: media_player.play_media + entity_id: media_player.bedroom + data: + media_content_type: 'music' + media_content_id: http://my_ip_icecast:8000/babyphone.mp3 + - service: light.turn_on: + entity_id: + - light.floor + - light.bedroom + data: + brightness: 150 + + - alias: 'Babyphone alarm off' + trigger: + platform: state + entity_id: binary_sensor.ffmpeg_noise + from: 'on' + to: 'off' + action: + - service: media_player.sonos_restore + entity_id: media_player.bedroom + - service: light.turn_off: + entity_id: + - light.floor + - light.bedroom +``` + +### {% linkable_title Thanks %} + +Special thanks to [arsaboo](https://github.com/arsaboo) for assistance in writing this blogpost. diff --git a/source/images/blog/2017-02-babyphone/social.png b/source/images/blog/2017-02-babyphone/social.png new file mode 100644 index 0000000000000000000000000000000000000000..c0273ba47e709d4fd021b67931b173bd7c19f884 GIT binary patch literal 184497 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%0AN_q(s&hr|k`)GDo{K*u6 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
    +~1WeFP0|7ZjBVki~(t8zRg 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 I?~H@~A8oiHhX4Qo literal 0 HcmV?d00001 From 4768b542e24de8a4abb29d94091f5ea8c805ce80 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Sat, 4 Feb 2017 10:12:47 +0100 Subject: [PATCH 58/67] Minor changes --- source/_posts/2017-02-04-babyphone.markdown | 34 +++++++++++---------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/source/_posts/2017-02-04-babyphone.markdown b/source/_posts/2017-02-04-babyphone.markdown index 14c98139fe3..9d58c64c263 100644 --- a/source/_posts/2017-02-04-babyphone.markdown +++ b/source/_posts/2017-02-04-babyphone.markdown @@ -6,11 +6,11 @@ date: 2017-02-04 00:00:00 +0100 date_formatted: "February 4, 2017" author: Pascal Vizeli comments: true -categories: How-To Babyphone +categories: How-To og_image: /images/blog/2017-02-babyphone/social.png --- -One of the hardest part of being a parent is keeping a constant eye on the baby to make sure that baby is doing well. Thus, it is not surprising that baby monitors are one of the fastest growing baby product category. However, many of the baby monitors available in the market are rather dumb and expect the parents to keep looking at the video stream or listen to the audio. This how-to will help you create a smart baby monitor on a budget and integrate it with Home-Assitant. Instead of relying on the poor quality baby monitor speakers, we use our existing speakers (e.g., Sonos). We can also send notifications (with pictures) to avoid constant monitoring of the feed. +One of the hardest part of being a parent is keeping a constant eye on the baby to make sure that baby is doing well. Thus, it is not surprising that baby monitors are one of the fastest growing baby product category. However, many of the baby monitors available on the market are rather dumb and expect the parents to keep looking at the video stream or listen to the audio. This how-to will help you create a smart baby monitor on a budget and integrate it with Home Assitant. Instead of relying on the poor quality baby monitor speakers, we use our existing speakers (eg. Sonos). We can also send notifications (with pictures) to avoid constant monitoring of the feed. Obviously, you can use the setup as a general purpose surveillance system to monitor noise in the whole house. @@ -18,15 +18,16 @@ Obviously, you can use the setup as a general purpose surveillance system to mon ### {% linkable_title Setup %} -We need an IP-camera that can capture sound in the baby's room. It is also possible to use a Raspberry Pi with a microphone and send the audio to our Home-Assistant with `ffmpeg -f alsa -i hw:1,0 -vn -f rtp rtp://236.0.0.1:2000` over multicast. We can set `input` option on Home-Assistant side to `rtp://236.0.0.1:2000` in same network. +We need an IP camera that can capture sound in the baby's room. It is also possible to use a Raspberry Pi with a microphone and send the audio to Home Assistant with `ffmpeg -f alsa -i hw:1,0 -vn -f rtp rtp://236.0.0.1:2000` over multicast. We can set the `input` option on the Home Assistant side to `rtp://236.0.0.1:2000` in same network. -Next, we attach a ffmpeg noise binary sensor to our IP-camera. The sensor has an output `option` that allows us to send the output to icecast2 server for playing over speakers integrated with Home-Assistant (e.g., Sonos). We can use the binary sensor in our automation. You can ignore the icecast2 setup if you don't want to play the audio after the noise sensor trigger. +Next, we attach a FFmpeg noise binary sensor to our IP camera. The sensor has an output `option` that allows us to send the output to an [icecast2](http://icecast.org/) server for playing over speakers integrated with Home Assistant (eg. Sonos). We can use the binary sensor in our automation. You can ignore the icecast2 setup if you don't want to play the audio after the noise sensor trigger.

    We change the platform name for binary sensor in 0.38 from `ffmpeg` to `ffmpeg_noise`. Also all service going to component and was rename from `binary_sensor.ffmpeg_xy` to `ffmpeg.xy`.

    -On Raspbian Jessie, you can setup [ffmpeg](/components/ffmpeg) and install a [icecast2](http://icecast.org/) server using: +On Raspbian Jessie, you can setup [FFmpeg](/components/ffmpeg) and install a [icecast2](http://icecast.org/) server using: + ```bash $ sudo echo "deb http://ftp.debian.org/debian jessie-backports main" >> /etc/apt/sources.list $ sudo apt-get update @@ -35,6 +36,7 @@ $ sudo apt-get install icecast2 ``` We setup a icecast mount point for our babyphone and update `/etc/icecast2/icecast.xml`: + ``` /babyphone.mp3 @@ -45,23 +47,23 @@ We setup a icecast mount point for our babyphone and update `/etc/icecast2/iceca ``` -Now we can add the noise sensor to Home-Assistant. We can lower the sensitivity of the sensor (so that you are not inundated with notifications for every cough of the baby) to 2 seconds using the `duration` option. The sensor should wait 60 seconds before restoring and it prevent us that a wine break will triggering a new alarm. +Now we can add the noise sensor to Home Assistant. We can lower the sensitivity of the sensor (so that you are not inundated with notifications for every cough of the baby) to 2 seconds using the `duration` option. The sensor should wait 60 seconds before restoring and it prevent us that a wine break will triggering a new alarm. -We can optimize the audio stream for human voice by using a highpass filter with 300Hz and a lowpass filter with 2500Hz. This filters out all non-human sounds such as background noise. We can even add a volume amplifier if the microphone volume is too low (you can remove it from `extra_arguments`). For icecast2 we convert the audio stream to mp3 with samplerate of 16000 (which is the minimum for Sonos speakers). We use `peak` to set the threshold for noise detection, where 0 dB is very loud and -100 dB is low. +We can optimize the audio stream for human voice by using a highpass filter with 300 Hz and a lowpass filter with 2500 Hz. This filters out all non-human sounds such as background noise. We can even add a volume amplifier if the microphone volume is too low (you can remove it from `extra_arguments`). For icecast2 we convert the audio stream to mp3 with samplerate of 16000 (which is the minimum for Sonos speakers). We use `peak` to set the threshold for noise detection, where 0 dB is very loud and -100 dB is low. ```yaml binary_sensor: - - platform: ffmpeg_noise - input: rtsp://user:pw@my_input/video - extra_arguments: -filter:a highpass=f=300,lowpass=f=2500,volume=volume=2 -codec:a libmp3lame -ar 16000 - output: -f mp3 icecast://stream_user:stream_pw@127.0.0.1:8000/babyphone.mp3 - initial_state: false - duration: 2 - reset: 60 - peak: -32 + - platform: ffmpeg_noise + input: rtsp://user:pw@my_input/video + extra_arguments: -filter:a highpass=f=300,lowpass=f=2500,volume=volume=2 -codec:a libmp3lame -ar 16000 + output: -f mp3 icecast://stream_user:stream_pw@127.0.0.1:8000/babyphone.mp3 + initial_state: false + duration: 2 + reset: 60 + peak: -32 ``` -We use the option `initial_state` to prevent the ffmpeg process from starting with Home-Assistant and only start it when needed. We use an `input_boolean` to control the state of ffmpeg services using the following automation. +We use the option `initial_state` to prevent the FFmpeg process from starting with Home Assistant and only start it when needed. We use an `input_boolean` to control the state of FFmpeg services using the following automation. ```yaml input_boolean: From 6f494ee6b0de19a38c3926931b9900a5d5a0799c Mon Sep 17 00:00:00 2001 From: kentcalero Date: Sat, 4 Feb 2017 07:18:24 -0500 Subject: [PATCH 59/67] update microsoft_face.markdown for grammar (#1958) --- source/_components/microsoft_face.markdown | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/source/_components/microsoft_face.markdown b/source/_components/microsoft_face.markdown index 6dba0b942a4..7296a6f426f 100644 --- a/source/_components/microsoft_face.markdown +++ b/source/_components/microsoft_face.markdown @@ -1,7 +1,7 @@ --- layout: page title: "Microsoft Face" -description: "Instructions how to integrate Microsoft Face component into Home Assistant." +description: "Instructions on how to integrate Microsoft Face component into Home Assistant." date: 2017-01-25 00:00 sidebar: true comments: false @@ -12,9 +12,9 @@ ha_category: Hub ha_release: "0.37" --- -The `microsoft_face` component platform is the main component for Microsoft Azure Cognitive service [Face](https://www.microsoft.com/cognitive-services/en-us/face-api). All data is stored in a private instance on Azure Cloud. +The `microsoft_face` component platform is the main component for Microsoft Azure Cognitive service [Face](https://www.microsoft.com/cognitive-services/en-us/face-api). All data are stored in your own private instance in the Azure cloud. -You need an API key which is free but requires a [Azure registration](https://azure.microsoft.com/de-de/free/) with your Microsoft Account. The free resource (*F0*) is limit to 30k requests in a month and 20 per minute. If you don't want use a the Azure cloud, you can also get a API key with registration on [cognitive-services](https://www.microsoft.com/cognitive-services/en-us/subscriptions). However, all keys on cognitive services must be recreated every 90 days. +You need an API key which is free but requires a [Azure registration](https://azure.microsoft.com/de-de/free/) using your microsoft ID. The free resource (*F0*) is limited to 20 requests per minute and 30k requests in a month. If you don't want to use the Azure cloud, you can also get an API key by registering with [cognitive-services](https://www.microsoft.com/cognitive-services/en-us/subscriptions). However, all keys on cognitive services must be recreated every 90 days. To enable the Microsoft Face component, add the following lines to your `configuration.yaml`: @@ -31,9 +31,9 @@ Configuration variables: ### {% linkable_title Person and Groups %} -For most of the services you need to set up a group or a person. This limits the processing and detection to elements provided by group. Home Assistent creates for all group a entity and allow you to show the state, person and IDs directly on the frontend. +For most services, you need to set up a group or a person. This limits the processing and detection to elements provided by the group. Home Assistent creates an entty for all groups and allows you to show the state, person and IDs directly on the frontend. -For managing this feature, you have the following services. They can be called with the Frontend, a script, or the REST API. +The following services are available for managing this feature. They can be called via the Frontend, a script, or the REST API. - *microsoft_face.create_group* - *microsoft_face.delete_group* @@ -74,7 +74,7 @@ $ curl -v -X POST "https://westus.api.cognitive.microsoft.com/face/v1.0/persongr -H "Content-Type: application/octet-stream" --data "@/tmp/image.jpg" ``` -After we done with changes on a group, we need train this group to make our AI fit to handle the new data. +After we're done with changes on a group, we need train this group to teach the AI how to handle the new data. - *microsoft_face.train_group* From 38f7c12f5126fff5cd0f57264655e0a435594a72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Arnauts?= Date: Sat, 4 Feb 2017 13:19:09 +0100 Subject: [PATCH 60/67] Update microsoft_face.markdown (#1960) Curl needs `--data-binary` to reliably upload binary data. --- source/_components/microsoft_face.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/_components/microsoft_face.markdown b/source/_components/microsoft_face.markdown index 7296a6f426f..02f001252cc 100644 --- a/source/_components/microsoft_face.markdown +++ b/source/_components/microsoft_face.markdown @@ -66,12 +66,12 @@ data: camera_entity: camera.door ``` -For the local image we need `curl`. The person ID is present in group entity as attribute. +For the local image we need `curl`. The `{personId}` is present in group entity as attribute. ```bash $ curl -v -X POST "https://westus.api.cognitive.microsoft.com/face/v1.0/persongroups/{GroupName}/persons/{personId}/persistedFaces" \ -H "Ocp-Apim-Subscription-Key: YOUR_API_KEY" \ - -H "Content-Type: application/octet-stream" --data "@/tmp/image.jpg" + -H "Content-Type: application/octet-stream" --data-binary "@/tmp/image.jpg" ``` After we're done with changes on a group, we need train this group to teach the AI how to handle the new data. From b5de2d5471e68edc3a15496734fa2d9a5a5b6c2e Mon Sep 17 00:00:00 2001 From: Alok Saboo Date: Sat, 4 Feb 2017 12:19:28 -0500 Subject: [PATCH 61/67] Incorrect closing quote (#1961) --- source/_cookbook/sonos_say.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_cookbook/sonos_say.markdown b/source/_cookbook/sonos_say.markdown index 643e86469d5..ac2673f486f 100644 --- a/source/_cookbook/sonos_say.markdown +++ b/source/_cookbook/sonos_say.markdown @@ -45,5 +45,5 @@ service: script.sonos_say data: sonos_entity: media_player.kitchen volume: 0.3 - message: 'Your husband comming home!" + message: 'Your husband comming home!' ``` From 095bbebd20f22b0cbf97396ce27d4864a5aee561 Mon Sep 17 00:00:00 2001 From: Fredrik Lindqvist Date: Sat, 4 Feb 2017 20:02:39 +0100 Subject: [PATCH 62/67] Hassbian 1.1 Toy-box. Blog post and updates to getting-started-image (#1957) * Update installation-raspberry-pi-image.markdown Update to reflect changes done in the new base-image and included hassbian-scripts. * Create 2017-02-03-hassbian-toybox.markdown Release blogpost. * Update installation-raspberry-pi-image.markdown Added more information about the hassbian-scripts. * Update 2017-02-03-hassbian-toybox.markdown Add in @arsaboo 's suggestions. Thanks :cookie: * Update 2017-02-03-hassbian-toybox.markdown Fix typos and standardized use of terms. Thanks @fabaff for the feedback. * Update installation-raspberry-pi-image.markdown Fix typos and standardized use of terms. --- .../2017-02-03-hassbian-toybox.markdown | 62 +++++++++++++++++++ .../installation-raspberry-pi-image.markdown | 31 ++++++---- 2 files changed, 80 insertions(+), 13 deletions(-) create mode 100644 source/_posts/2017-02-03-hassbian-toybox.markdown diff --git a/source/_posts/2017-02-03-hassbian-toybox.markdown b/source/_posts/2017-02-03-hassbian-toybox.markdown new file mode 100644 index 00000000000..36b2ae35388 --- /dev/null +++ b/source/_posts/2017-02-03-hassbian-toybox.markdown @@ -0,0 +1,62 @@ +--- +layout: post +title: "HASSbian 1.1 - The Toy-box" +description: "New release of the HASSbian Raspberry Pi Image for Home Assistant" +date: 2017-02-04 05:00:00 -0400 +date_formatted: "February 4, 2017" +author: Fredrik Lindqvist +comments: true +categories: Technology +--- + +Tonight I'm happy to announce a new release of the our Raspberry Pi image, **HASSbian 1.1 - The Toy-box.** +Why Toy-box you wonder? Because it encompass the changes pretty well. + +Changes from previous image are big and small but lets start with the interesting things. + +### {% linkable_title Hassbian-scripts %} +A set of script written to add extra functionality to your Raspberry Pi installation. +This scripts are run as the `pi` user and installs a set of tools or packages. +Currently includes: + - Install Libcec. Adds local [HDMI CEC support][cec]. + - Install Mossquitto. Installs the latest Mosquitto package and client tools from the Mosquitto projects official repository. Now includes websocket support. + - Install OpenZWave. Installs OpenZWave and prepares for using a USB or GPIO ZWave controller. + - Install Samba. Installs the Samba packages and shares your configuration over smb to be available to edit on any computer without the need for separate file transfer software. This share is unsecured and it's usage is not recommended if your installation is publicly available. + +All of these scripts are available in the directory `/home/pi/hassbian-scripts/`. This directory is actually a cloned git repository that's cloned on first boot and can be updated to the latest release with ease after. +To update the hassbian-scripts directory execute the following command as the `pi` user. +```bash +$ cd hassbian-scripts +$ git pull +``` +To use any of the hassbian-scripts, execute the following command as the `pi` user. Here we use the libcec script as an example. +```bash +$ sudo ./hassbian-scripts/install_libcec.sh +``` + +For more information about these scripts have a look a the [hassbian-scripts repository][hassbian-repo]. + +### {% linkable_title Spring cleaning %} +With this image there also quite a bit of cleaning of the base system and the script that generates our Raspberry Pi image. + - Update pi-gen. Our build script has been upgraded to follow the Raspbian image closer. This image is basically a Raspbian lite image with Home Assistant, dependencies and a small set of changes to the base system. + - Removed Mosquitto. Not as bad as it sounds since it's installation has been move to one of our new hassbian-scripts. + - Added rng-tools. Let's your HASSbian installation use the hardware support in the Raspberry Pi for entropy generation. + - Added avahi-daemon package. Your Raspberry Pi should now be available at [hassbian.local][hassbian-avahi]. + - Added htop. User friendly interactive process monitor. + - Added tmux. A great terminal multiplexer that makes working with the command line over ssh. + - Added the `homeassistant` user to the `dialout` group. Simplifies use of hardware such as ZWave USB controllers that requires this permission. + + ### {% linkable_title On the horizon %} + There's of course more on the horizon and there's even more plans and wishes for how this image will function in the future. + On the close horizon from [@Landrash][landrash-github] there a few more script in the works and for tellstick, emulated_hue and for controlling Home Assistant. + + To follow discussions about the development of the HASSbian image or to contribute join the [HASSbian gitter chat][hassbian-gitter]. + + To get started with the new image, check out the installation instructions in the [getting started section][gs-image]. + +[cec]: /components/hdmi_cec/ +[hassbian-repo]: https://github.com/home-assistant/hassbian-scripts +[hassbian-avahi]: hassbian.local +[hassbian-gitter]: https://gitter.im/home-assistant/hassbian +[landarsh-github]: https://github.com/Landrash +[gs-image]: /getting-started/installation-raspberry-pi-image/ diff --git a/source/getting-started/installation-raspberry-pi-image.markdown b/source/getting-started/installation-raspberry-pi-image.markdown index 5103b8be82f..a1c96f5dc29 100644 --- a/source/getting-started/installation-raspberry-pi-image.markdown +++ b/source/getting-started/installation-raspberry-pi-image.markdown @@ -9,7 +9,7 @@ sharing: true footer: true --- -The easiest way to install Home Assistant on your Raspberry Pi is by using HASSbian: a Raspberry Pi image with Home Assistant built-in. The image will install the latest version of Home Assistant on initial boot (~5 minutes). +The easiest way to install Home Assistant on your Raspberry Pi is by using HASSbian: a Raspberry Pi image with Home Assistant built-in. The image will install the latest version of Home Assistant on initial boot (~10 minutes). 1. [Download the latest image][image-download] 2. Flash the image to an SD card: @@ -26,13 +26,25 @@ Home Assistant will now be available by navigating with a browser to `http://ip- The following extras are included on the image: - GPIO pins are ready to use. - - Mosquitto MQTT broker is installed (not activated by default). - Bluetooth is ready to use (supported models only, no Bluetooth LE). + - Hassbian-scripts. A set of script written to add extra functionality to your Raspberry Pi installation. + Currently includes: + - Install Libcec. Adds local [HDMI CEC support][cec]. + - Install Mossquitto. Installs the latest Mosquitto package and client tools from the Mosquitto projects offical repository. Now includes websocket support. + - Install OpenZWave. Installs OpenZWave and prepares for using a USB or GPIO ZWave controller. + - Install Samba. Installs the Samba packages and shares you configuration over smb to be available to edit on any computer without the need for separate file transfer software. This share is unsecured and it's usage is not recommended if your installation is publicly available. + +All of these scripts are available in the directory `/home/pi/hassbian-scripts/`. This directory is actually a cloned git repository that's clone on first boot and can be updated to the latest release with ease after. +To update the hassbian-scripts directory execute the following command as the `pi` user. +```bash +$ cd hassbian-scripts +$ git pull +``` +For more information about these scripts have a look at the [hassbian-scripts repository][hassbian-repo]. Some extra tips: - Check out the list of [Raspberry Pi hardware specific components][pi-components]. - - Z-Wave support can be installed by following the [Getting started instructions for Z-Wave][install-zwave]. - Run `sudo raspi-config` to change the locale, timezone and keyboard layout. ### {% linkable_title Technical Details %} @@ -160,14 +172,6 @@ $ sudo apt-get upgrade Press `Y` to confirm that you would like to continue. -### {% linkable_title USB device permissions %} -When using some USB devices users have to give dialout permission to the user `homeassistant` and restart. - -```shell -$ sudo usermod -a -G dialout homeassistant -$ sudo reboot -``` - ### {% linkable_title Troubleshooting %} If you run into any issues, please see [the troubleshooting page](/getting-started/troubleshooting/). It contains solutions to many of the more commonly encountered issues. @@ -179,14 +183,15 @@ In addition to this site, check out these sources for additional help: - [GitHub Page](https://github.com/home-assistant/home-assistant/issues) for issue reporting. ### [Next step: Configuring Home Assistant »](/getting-started/configuration/) - [image-download]: https://github.com/home-assistant/pi-gen/releases [flash-linux]: https://www.raspberrypi.org/documentation/installation/installing-images/linux.md [flash-macos]: https://www.raspberrypi.org/documentation/installation/installing-images/mac.md [flash-windows]: https://www.raspberrypi.org/documentation/installation/installing-images/windows.md +[cec]: /components/hdmi_cec/ [pi-components]: /getting-started/installation-raspberry-pi/#raspberry-pi-hardware-specific-components +[hassbian-repo]: https://github.com/home-assistant/hassbian-scripts [ssh-putty]: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html [stop-homeassistant]: /getting-started/installation-raspberry-pi-image/#startstoprestart-home-assistant-on-hassbian [configuring-homeassistant]: /getting-started/configuration/ [bash-windows]: https://msdn.microsoft.com/en-us/commandline/wsl/about -[install-zwave]: /getting-started/z-wave/ + From 5384a360a8a1ca124fb6b501ee4c8dc4755381eb Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Sat, 4 Feb 2017 20:15:18 +0100 Subject: [PATCH 63/67] Fix link --- source/developers/frontend_creating_custom_panels.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/developers/frontend_creating_custom_panels.markdown b/source/developers/frontend_creating_custom_panels.markdown index 2cb06255c1e..db384d833e0 100644 --- a/source/developers/frontend_creating_custom_panels.markdown +++ b/source/developers/frontend_creating_custom_panels.markdown @@ -73,4 +73,4 @@ panel_custom: url_path: hello ``` -For more examples, see the [Custom panel Examples](/cookbook#custom-panel-examples) on our examples page. +For more possibilities, see the [Custom panel section](/cookbook/#user-interface) on our Examples page. From bff9d4926d150b3d0b6f946fdd05bb3eeb465547 Mon Sep 17 00:00:00 2001 From: Fredrik Lindqvist Date: Sat, 4 Feb 2017 20:17:56 +0100 Subject: [PATCH 64/67] Update 2017-02-03-hassbian-toybox.markdown Fix misses by by noticed by @rytilahti --- source/_posts/2017-02-03-hassbian-toybox.markdown | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/source/_posts/2017-02-03-hassbian-toybox.markdown b/source/_posts/2017-02-03-hassbian-toybox.markdown index 36b2ae35388..19a0b75e5cc 100644 --- a/source/_posts/2017-02-03-hassbian-toybox.markdown +++ b/source/_posts/2017-02-03-hassbian-toybox.markdown @@ -43,20 +43,20 @@ With this image there also quite a bit of cleaning of the base system and the sc - Added rng-tools. Let's your HASSbian installation use the hardware support in the Raspberry Pi for entropy generation. - Added avahi-daemon package. Your Raspberry Pi should now be available at [hassbian.local][hassbian-avahi]. - Added htop. User friendly interactive process monitor. - - Added tmux. A great terminal multiplexer that makes working with the command line over ssh. + - Added tmux. A great terminal multiplexer that makes working with the command line over ssh easier. - Added the `homeassistant` user to the `dialout` group. Simplifies use of hardware such as ZWave USB controllers that requires this permission. - ### {% linkable_title On the horizon %} - There's of course more on the horizon and there's even more plans and wishes for how this image will function in the future. - On the close horizon from [@Landrash][landrash-github] there a few more script in the works and for tellstick, emulated_hue and for controlling Home Assistant. +### {% linkable_title On the horizon %} +There's of course more on the horizon and there's even more plans and wishes for how this image will function in the future. +On the close horizon from [@Landrash][landrash-github] there a few more script in the works and for tellstick, emulated_hue and for controlling Home Assistant. - To follow discussions about the development of the HASSbian image or to contribute join the [HASSbian gitter chat][hassbian-gitter]. +To follow discussions about the development of the HASSbian image or to contribute join the [HASSbian gitter chat][hassbian-gitter]. - To get started with the new image, check out the installation instructions in the [getting started section][gs-image]. +To get started with the new image, check out the installation instructions in the [getting started section][gs-image]. [cec]: /components/hdmi_cec/ [hassbian-repo]: https://github.com/home-assistant/hassbian-scripts [hassbian-avahi]: hassbian.local [hassbian-gitter]: https://gitter.im/home-assistant/hassbian -[landarsh-github]: https://github.com/Landrash +[landrash-github]: https://github.com/Landrash [gs-image]: /getting-started/installation-raspberry-pi-image/ From 369acfc13b36b24167b9e2a67ed7c4e51d3d4846 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Sat, 4 Feb 2017 23:21:15 +0100 Subject: [PATCH 65/67] Update sonos_say.markdown --- source/_cookbook/sonos_say.markdown | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/_cookbook/sonos_say.markdown b/source/_cookbook/sonos_say.markdown index ac2673f486f..c9ef5551830 100644 --- a/source/_cookbook/sonos_say.markdown +++ b/source/_cookbook/sonos_say.markdown @@ -33,7 +33,7 @@ script: data_template: entity_id: {% raw %}{{ sonos_entity }}{% endraw %} message: {% raw %}{{ message }}{% endraw %} - - delay: '00:00:05' + - delay: '{{ delay }}' - service: media_player.sonos_restore data_template: entity_id: {% raw %}{{ sonos_entity }}{% endraw %} @@ -46,4 +46,5 @@ data: sonos_entity: media_player.kitchen volume: 0.3 message: 'Your husband comming home!' + delay: '00:00:05' ``` From b8d1ec99fceec40e349c7c6fbdbe6ace8f999921 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Sat, 4 Feb 2017 23:30:17 +0100 Subject: [PATCH 66/67] change raw --- source/_cookbook/sonos_say.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_cookbook/sonos_say.markdown b/source/_cookbook/sonos_say.markdown index c9ef5551830..9efe5e50085 100644 --- a/source/_cookbook/sonos_say.markdown +++ b/source/_cookbook/sonos_say.markdown @@ -33,7 +33,7 @@ script: data_template: entity_id: {% raw %}{{ sonos_entity }}{% endraw %} message: {% raw %}{{ message }}{% endraw %} - - delay: '{{ delay }}' + - delay: {% raw %}{{ delay }}{% endraw %} - service: media_player.sonos_restore data_template: entity_id: {% raw %}{{ sonos_entity }}{% endraw %} From de374b280dbea52288edf993732acf8143fa2460 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 4 Feb 2017 20:47:05 -0800 Subject: [PATCH 67/67] Streamline getting started installation (#1968) --- sass/custom/_paulus.scss | 119 ++++---- .../asides/getting_started_navigation.html | 18 +- source/_includes/custom/welcome.html | 7 +- source/components/index.html | 4 +- .../getting-started-alternatives.markdown | 29 ++ .../hassbian-common-tasks.markdown | 129 ++++++++ .../hassbian-customization.markdown | 22 ++ .../hassbian-installation.markdown | 50 +++ .../hassbian-integrations.markdown | 100 ++++++ .../hassbian-upgrading.markdown | 29 ++ source/getting-started/hassbian.markdown | 22 ++ source/getting-started/index.markdown | 67 ++-- .../installation-python.markdown | 54 ++++ .../installation-raspberry-pi-image.markdown | 197 ------------ .../installation-raspberry-pi.markdown | 85 +----- source/getting-started/updating.markdown | 4 +- source/images/supported_brands/python.svg | 288 ++++++++++++++++++ 17 files changed, 824 insertions(+), 400 deletions(-) create mode 100644 source/getting-started/getting-started-alternatives.markdown create mode 100644 source/getting-started/hassbian-common-tasks.markdown create mode 100644 source/getting-started/hassbian-customization.markdown create mode 100644 source/getting-started/hassbian-installation.markdown create mode 100644 source/getting-started/hassbian-integrations.markdown create mode 100644 source/getting-started/hassbian-upgrading.markdown create mode 100644 source/getting-started/hassbian.markdown create mode 100644 source/getting-started/installation-python.markdown delete mode 100644 source/getting-started/installation-raspberry-pi-image.markdown create mode 100644 source/images/supported_brands/python.svg diff --git a/sass/custom/_paulus.scss b/sass/custom/_paulus.scss index 80c157622e0..b89b6026c6d 100644 --- a/sass/custom/_paulus.scss +++ b/sass/custom/_paulus.scss @@ -15,22 +15,6 @@ display: inline-block; font-weight: 500; } - - .front-install { - border: none; - font-size: 1em; - background-color: #333; - margin-bottom: 16px; - display: inline-block; - padding: 8px; - color: #DDD; - - div:before { - content: '$'; - color: #c82829; - margin-right: 6px; - } - } } .material-card { @@ -320,56 +304,6 @@ p.note { -moz-transition-property: -moz-transform, opacity; transition-property: transform, opacity; } - - #componentContainer { - a { - display: inline-block; - width: 202px; - height: 142px; - background-color: #fefefe; - margin-right: 4px; - margin-bottom: 8px; - border-radius: 2px; - box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2); - padding: 8px; - text-align: center; - text-decoration: none; - - .img-container { - height: 50px; - margin: 8px 0; - font: 0/0 a; - - &:before { /* create a full-height inline block pseudo=element */ - content: ' '; - display: inline-block; - vertical-align: middle; /* vertical alignment of the inline element */ - height: 100%; - } - - img { - max-width: 100%; - max-height: 50px; - box-shadow: none; - border: none; - vertical-align: middle; - } - } - - .title { - text-decoration: none; - font-size: 18px; - color: #000; - line-height: 1.3em; - height: 2.6em; - } - - .category { - font-size: 14px; - color: #AAA; - } - } - } } @media only screen and (max-width: $lap-end) { @@ -422,6 +356,55 @@ p.note { } } +.hass-option-cards { + .option-card { + display: inline-block; + width: 202px; + height: 142px; + background-color: #fefefe; + margin-right: 4px; + margin-bottom: 8px; + border-radius: 2px; + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2); + padding: 8px; + text-align: center; + text-decoration: none; + + .img-container { + height: 50px; + margin: 8px 0; + font: 0/0 a; + + &:before { /* create a full-height inline block pseudo=element */ + content: ' '; + display: inline-block; + vertical-align: middle; /* vertical alignment of the inline element */ + height: 100%; + } + + img { + max-width: 100%; + max-height: 50px; + box-shadow: none; + border: none; + vertical-align: middle; + } + } + + .title { + text-decoration: none; + font-size: 18px; + color: #000; + line-height: 1.3em; + height: 2.6em; + } + + .category { + font-size: 14px; + color: #AAA; + } + } +} .aside-module { .section { @@ -481,3 +464,7 @@ twitterwidget { margin-left: auto; margin-right: auto; } + +.text-center { + text-align: center; +} diff --git a/source/_includes/asides/getting_started_navigation.html b/source/_includes/asides/getting_started_navigation.html index e1be992d947..d4301761659 100644 --- a/source/_includes/asides/getting_started_navigation.html +++ b/source/_includes/asides/getting_started_navigation.html @@ -7,17 +7,21 @@
  • {% active_link /getting-started/ Installation %}
      -
    • {% active_link /getting-started/installation-raspberry-pi/ Raspberry Pi %}
    • -
    • {% active_link /getting-started/installation-raspberry-pi-all-in-one/ Raspberry Pi All-In-One Installer %}
    • -
    • {% active_link /getting-started/installation-raspberry-pi-image/ Raspberry Pi Image %}
    • -
    • {% active_link /getting-started/installation-docker/ Docker %}
    • -
    • {% active_link /getting-started/installation-vagrant/ Vagrant %}
    • -
    • {% active_link /getting-started/installation-synology/ Synology NAS %}
    • -
    • {% active_link /getting-started/installation-virtualenv/ Virtualenv Linux %}
    • +
    • {% active_link /getting-started/installation-python/ Python %}
    • {% active_link /getting-started/updating/ Updating %}
    • {% active_link /getting-started/troubleshooting/ Troubleshooting %}
  • +
  • + {% active_link /getting-started/hassbian/ Hassbian %} +
      +
    • {% active_link /getting-started/hassbian-installation/ Installation %}
    • +
    • {% active_link /getting-started/hassbian-customization/ Customization %}
    • +
    • {% active_link /getting-started/hassbian-common-tasks/ Common tasks %}
    • +
    • {% active_link /getting-started/hassbian-integrations/ Integrations %}
    • +
    • {% active_link /getting-started/hassbian-upgrading/ Upgrading %}
    • +
    +
  • {% active_link /getting-started/configuration/ Configuration %}