From 8eb7643a658ee8b9e45daf660dd70fcf292fce5c Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Tue, 16 Jan 2018 22:41:36 -0800 Subject: [PATCH 01/28] Update timer.markdown --- source/_components/timer.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/timer.markdown b/source/_components/timer.markdown index 505aeacdb22..b04e480aca9 100644 --- a/source/_components/timer.markdown +++ b/source/_components/timer.markdown @@ -25,7 +25,7 @@ To add a timer to your installation, add the following to your `configuration.ya ```yaml # Example configuration.yaml entry timer: - timer: + laundry: duration: '00:01:00' ``` From 978d901f71da0d83c93990d56d81e944a42dc482 Mon Sep 17 00:00:00 2001 From: DubhAd Date: Wed, 17 Jan 2018 07:01:47 +0000 Subject: [PATCH 02/28] Typo fix (#4437) Missing comma, now found and restored to its rightful place --- source/_docs/z-wave/adding.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_docs/z-wave/adding.markdown b/source/_docs/z-wave/adding.markdown index 2c1cef428ac..04c01cc9271 100644 --- a/source/_docs/z-wave/adding.markdown +++ b/source/_docs/z-wave/adding.markdown @@ -35,7 +35,7 @@ A valid network key will be a 16 byte value, defined in the zwave section of you ``` zwave: usb_path: /dev/ttyACM0 - network_key: "0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F 0x10" + network_key: "0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10" ``` Each individual value in the defined key can be anywhere from 0x00 to 0xFF. Define your own key by making changes to the above example key or for additional security try one of the two scripts mentioned below. From 6fbbb019ba5d5f1664d88d918f6d4a63cd2caba2 Mon Sep 17 00:00:00 2001 From: Collin Allen Date: Tue, 16 Jan 2018 23:04:48 -0800 Subject: [PATCH 03/28] Fix typo in index.markdown (#4435) Corrects `utlimate` to `ultimate`. --- source/getting-started/index.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/getting-started/index.markdown b/source/getting-started/index.markdown index 6b7620b2875..00af92bbd0f 100644 --- a/source/getting-started/index.markdown +++ b/source/getting-started/index.markdown @@ -9,7 +9,7 @@ sharing: true footer: true --- -The goal of this getting started guide is to install Hass.io on a Raspberry Pi 3. Hass.io is our own all in one solution that turns your Raspberry PI into the utlimate home automation hub. +The goal of this getting started guide is to install Hass.io on a Raspberry Pi 3. Hass.io is our own all in one solution that turns your Raspberry PI into the ultimate home automation hub. Follow this guide if you want to easily get started with Home Assistant, or if you have no or little Linux experience. For advanced users, check our [alternative installation methods](/docs/installation/). From 12346dba05d9ab5beef6b0923a0c1340eeaea5f9 Mon Sep 17 00:00:00 2001 From: Heiko Thiery Date: Wed, 17 Jan 2018 15:45:58 +0100 Subject: [PATCH 04/28] Lacrosse (#4430) * fix typo Signed-off-by: Heiko Thiery * add new configuration parameter documentation Signed-off-by: Heiko Thiery * fix syntax errors Signed-off-by: Heiko Thiery * :pencil2: Minor spelling changes --- source/_components/sensor.lacrosse.markdown | 22 ++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/source/_components/sensor.lacrosse.markdown b/source/_components/sensor.lacrosse.markdown index 3dc7a9f842e..c9005581f75 100644 --- a/source/_components/sensor.lacrosse.markdown +++ b/source/_components/sensor.lacrosse.markdown @@ -41,7 +41,7 @@ sensor: {% configuration %} device: - description: The serial baudrate. + description: The serial device. required: true type: string default: /dev/ttyUSB0 @@ -50,6 +50,26 @@ sensor: required: true type: int default: 57600 + led: + description: Activate or deactivate the Jeelink LED. + required: false + type: boolean + frequency: + description: Initial frequency in 5kHz steps. + required: false + type: int + datarate: + description: "Set the data rate in kbps. Special values for well-known settings are: `0`: 17.241 kbps, `1`: 9.579 kbps, `2`: 8.842 kbps." + required: false + type: int + toggle_mask: + description: "The following values can be combined bitwise: `1` = 17.241 kbps, `2` = 9.579 kbps, `4` = 8.842 kbps" + required: false + type: int + toggle_interval: + description: Enable the toggle mode and set the interval in seconds. + required: false + type: int sensors: description: A list of your sensors. required: true From a733d0417f72d9e6dad7b288b79849c08c1496c4 Mon Sep 17 00:00:00 2001 From: cogneato Date: Wed, 17 Jan 2018 07:49:13 -0700 Subject: [PATCH 05/28] Update lets_encrypt.markdown (#4442) --- source/_addons/lets_encrypt.markdown | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/source/_addons/lets_encrypt.markdown b/source/_addons/lets_encrypt.markdown index 8917e007bf4..bf6845005f6 100644 --- a/source/_addons/lets_encrypt.markdown +++ b/source/_addons/lets_encrypt.markdown @@ -16,13 +16,8 @@ You should not use this if you are also using the [DuckDNS add-on]. The DuckDNS Setup and manage a [Let's Encrypt](https://letsencrypt.org/) certificate. This will create a certificate on the first run and will auto-renew if the certificate is within 30 days of expiration. -

-This add-on uses ports 80/443 to verify the certificate request. You will need to stop all other add-ons that also use these ports. If you don't need a port (like with https you don't need port 80) you can remove this from network config. -

- ```json { - "challenge": "https", "email": "example@example.com", "domains": ["example.com", "mqtt.example.com", "hass.example.com"] } @@ -30,7 +25,6 @@ This add-on uses ports 80/443 to verify the certificate request. You will need t Configuration variables: -- **challenge** (*Optional*): Default it use 443 ('https') you can change it to 'http' for use port 80. - **email** (*Required*): Your email address for registration on Let's Encrypt. - **domains** (*Required*): A list of domains to create/renew the certificate. @@ -45,6 +39,6 @@ http: ssl_key: /ssl/privkey.pem ``` -If you use a other port as `8123` or a SSL proxy, change the port number. +If you use another port such as `8123` or a SSL proxy, change the port number. [DuckDNS add-on]: /addons/duckdns/ From fde45a109ddac3ca0ccded3bf7bfaa9d129060c4 Mon Sep 17 00:00:00 2001 From: Kane610 Date: Wed, 17 Jan 2018 19:23:43 +0100 Subject: [PATCH 06/28] Fix links to components (#4444) --- source/_components/deconz.markdown | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/source/_components/deconz.markdown b/source/_components/deconz.markdown index 8d050e7d43d..6b65b086649 100644 --- a/source/_components/deconz.markdown +++ b/source/_components/deconz.markdown @@ -31,14 +31,14 @@ deconz: #### {% linkable_title Supported Device types %} -- [Zigbee Lights](/components/light/deconz/) -- [Humidity Sensors](/components/sensor/deconz/) -- [Light Level Sensors](/components/sensor/deconz/) -- [OpenClose Detectors](/components/binary_sensor/deconz/) -- [Presence Detectors](/components/binary_sensor/deconz/) -- [Pressure Sensors](/components/sensor/deconz/) -- [Switches (Remote Controls)](/components/sensor/deconz/) -- [Temperature Sensors](/components/sensor/deconz/) +- [Zigbee Lights](/components/light.deconz/) +- [Humidity Sensors](/components/sensor.deconz/) +- [Light Level Sensors](/components/sensor.deconz/) +- [OpenClose Detectors](/components/binary_sensor.deconz/) +- [Presence Detectors](/components/binary_sensor.deconz/) +- [Pressure Sensors](/components/sensor.deconz/) +- [Switches (Remote Controls)](/components/sensor.deconz/) +- [Temperature Sensors](/components/sensor.deconz/) {% configuration %} host: From 895dc1cbdd5845a6672048e8c83011e39c31c8a8 Mon Sep 17 00:00:00 2001 From: Chris Helming Date: Thu, 18 Jan 2018 02:29:40 -0500 Subject: [PATCH 07/28] Update calendar.google.markdown (#4449) Clarified steps. --- source/_components/calendar.google.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/calendar.google.markdown b/source/_components/calendar.google.markdown index 658dae1f2bc..3442a972a04 100644 --- a/source/_components/calendar.google.markdown +++ b/source/_components/calendar.google.markdown @@ -22,7 +22,7 @@ Generate a Client ID and Client Secret on [Google Developers Console](https://co 1. Follow the wizard using the following information. 1. When it gets to the point of asking _Which API are you using?_ just click cancel. -1. Click on the tab 'OAuth consent screen'. +1. Under APIs & Services > Credentials, click on the tab 'OAuth consent screen'. 1. Set 'Product name shown to users' to anything you want. We suggest Home-Assistant. 1. Save this page. You don't have to fill out anything else there. 1. Click 'Create credentials' -> OAuth client ID. From 5d284b274cfd9f3384c4b0c9f8993e7f3b64b731 Mon Sep 17 00:00:00 2001 From: Ettienne Gous Date: Fri, 19 Jan 2018 00:18:29 +1100 Subject: [PATCH 08/28] Fix platform incorrect CaSe (#4451) Was saying platform not found with incorrect case when I used check config Lower down in the doc it shows a correct example with lower case that did work --- source/_components/sensor.bh1750.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/sensor.bh1750.markdown b/source/_components/sensor.bh1750.markdown index 754dc91f86e..8b07a844825 100644 --- a/source/_components/sensor.bh1750.markdown +++ b/source/_components/sensor.bh1750.markdown @@ -26,7 +26,7 @@ To use your BH1750 sensor in your installation, add the following to your `confi ```yaml # Example configuration.yaml entry sensor: - - platform: BH1750 + - platform: bh1750 ``` Configuration variables: From c73fce01653d82e7c0a3a5086281514e4bd5142a Mon Sep 17 00:00:00 2001 From: mukundv Date: Fri, 19 Jan 2018 00:19:51 +1100 Subject: [PATCH 09/28] Added PTV (AU) GTFS dataset link (#4452) Added a link to PTV Australia GTFS dataset. --- source/_components/sensor.gtfs.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/source/_components/sensor.gtfs.markdown b/source/_components/sensor.gtfs.markdown index 00243470ada..874617d87b6 100644 --- a/source/_components/sensor.gtfs.markdown +++ b/source/_components/sensor.gtfs.markdown @@ -24,6 +24,7 @@ Here are some examples: - [Metropolitan Transit Authority of New York City (MTA)](http://www.bart.gov/schedules/developers/gtfs) - Provides separate data feeds for subway, bus, LIRR and Metro-North of the greater New York City metropolitan region. - [GBRail.info](http://www.gbrail.info/) - Provides data feeds for most if not all rail companies in Britain. - [Official Timetable Switzerland](http://www.fahrplanfelder.ch/en/timetable-data.html) - The official timetable data for Switzerland. +- [Public Transport Victoria (Australia)](https://www.data.vic.gov.au/data/dataset/ptv-timetable-and-geographic-information-2015-gtfs) - Official PTV GTFS dataset. You need to download a GTFS ZIP file and put it into a folder named `gtfs` in your configuration directory. For ease of use, it is suggested that you rename the file to just the agency/data source name (i.e. `bart.zip` instead of `google_transit_20160328_v1.zip`). You can also unzip and place a folder in the `gtfs` folder. From 9fc7968571f104b0321749027a14fe17fa1545a5 Mon Sep 17 00:00:00 2001 From: Adam Date: Thu, 18 Jan 2018 13:13:52 -0600 Subject: [PATCH 10/28] Sharing my config to the cookbook --- .../_cookbook/configuration_yaml_by_silvrr.markdown | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 source/_cookbook/configuration_yaml_by_silvrr.markdown diff --git a/source/_cookbook/configuration_yaml_by_silvrr.markdown b/source/_cookbook/configuration_yaml_by_silvrr.markdown new file mode 100644 index 00000000000..847b4bf1c07 --- /dev/null +++ b/source/_cookbook/configuration_yaml_by_silvrr.markdown @@ -0,0 +1,12 @@ +--- +layout: page +title: "Configuration.yaml by silvrr" +description: "" +date: 2018-1-18 13:08 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Example configuration.yaml +ha_external_link: https://github.com/SilvrrGIT/HomeAssistant +--- From 670ef128437dcbf1600cf5c347d140b2d95a1f7a Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Thu, 18 Jan 2018 22:26:38 +0100 Subject: [PATCH 11/28] Update addon_communication.markdown --- source/developers/hassio/addon_communication.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/developers/hassio/addon_communication.markdown b/source/developers/hassio/addon_communication.markdown index f4c8c43d6da..e9292b484d4 100644 --- a/source/developers/hassio/addon_communication.markdown +++ b/source/developers/hassio/addon_communication.markdown @@ -22,7 +22,7 @@ Use `hassio` to speak with the internal API. An add-on can speak to the [Home Assistant API][hass-api] with our internal proxy. That makes it very easy to communicate with the API without knowing the password, port or any other information of the Home Assistant instance. Use this URL: `http://hassio/homeassistant/api` and internal communication is redirected to the right place. The next stept is to add `homeassistant_api: true` to `config.json` and read the environment variable `HASSIO_TOKEN` and use this as Home-Assistant password. -We have also a proxy for [Websocket Home Assistant API][hass-websocket]. It work like the API proxy above and use `API_TOKEN` as password. Use this URL: `http://hassio/homeassistant/websocket`. +We have also a proxy for [Websocket Home Assistant API][hass-websocket]. It work like the API proxy above and use `HASSIO_TOKEN` as password. Use this URL: `http://hassio/homeassistant/websocket`. It is also possible to speak direct to the Home Assistant instance which is named `homeassistant` over our internal network. But you need to know the configuration that is used by the running instance. From 2115f186832cc08b6e3855715055620ee5720241 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Thu, 18 Jan 2018 22:28:35 +0100 Subject: [PATCH 12/28] Update addon_communication.markdown --- source/developers/hassio/addon_communication.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/developers/hassio/addon_communication.markdown b/source/developers/hassio/addon_communication.markdown index e9292b484d4..9b4d3fbdc16 100644 --- a/source/developers/hassio/addon_communication.markdown +++ b/source/developers/hassio/addon_communication.markdown @@ -30,7 +30,7 @@ We have severals services for Hass.io inside Home Assistant to execute tasks. To ## {% linkable_title Hass.io API %} -To enables calls to the [Hass.io API][hassio-api], add `hassio_api: true` to `config.json` and read the environment variable `API_TOKEN`. Now you can use the API over the URL: `http://hassio/`. Use the `HASSIO_TOKEN` with header `X-HASSIO-KEY`. +To enables calls to the [Hass.io API][hassio-api], add `hassio_api: true` to `config.json` and read the environment variable `HASSIO_TOKEN`. Now you can use the API over the URL: `http://hassio/`. Use the `HASSIO_TOKEN` with header `X-HASSIO-KEY`. [hass-api]: https://home-assistant.io/developers/rest_api/ [hass-websocket]: https://home-assistant.io/developers/websocket_api/ From 3453399df614448aea9c88e380a8f5ec0c17e364 Mon Sep 17 00:00:00 2001 From: CV Date: Thu, 18 Jan 2018 23:45:19 +0100 Subject: [PATCH 13/28] Changed wording and init scripts (#4455) I changed the init scripts to be more reliable. hass executable supports the option --log-file. Using this is much safer and does not lead to problems with permission and overwriting old logfiles. Also I added creating the directory and ownership in the install function. To prevent log file groth I added a logrotate rule. I moved the update-rc.d command you had in your manual into the install function since you already ad it in the uninstall function. This prevents more copy&paste errors. I changed the PID file to be located in an extra directory. This way you do not have to to this hack with writing a fake PID file in the install function. Also, I read many users having problems that hass daemon is not starting (see eg. https://community.home-assistant.io/t/autostart-virtualenv-ubuntu-14-04/2120/37) without showing any errors. This is due to a missing PID file or its wrong permissions. By changing as stated and adding a test this problem should not arise any more. I changes some wording in the manual to make it more understandable. --- source/_docs/autostart/init.d.markdown | 172 ++++++++++++++++++------- 1 file changed, 126 insertions(+), 46 deletions(-) diff --git a/source/_docs/autostart/init.d.markdown b/source/_docs/autostart/init.d.markdown index 6605b6e10b9..dba77396779 100644 --- a/source/_docs/autostart/init.d.markdown +++ b/source/_docs/autostart/init.d.markdown @@ -14,7 +14,7 @@ Home Assistant can run as a daemon within init.d with the script below. ### {% linkable_title 1. Copy script %} -Copy the script at the end of this page to `/etc/init.d/hass-daemon`. +Copy either the deamon script or the Python environment scrip at the end of this page to `/etc/init.d/hass-daemon` depending on your installation. After that, set the script to be executable: @@ -26,27 +26,41 @@ $ sudo chmod +x /etc/init.d/hass-daemon Create or pick a user that the Home Assistant daemon will run under. Update script to set `RUN_AS` to the username that should be used to execute hass. -### {% linkable_title 3. Change hass executable if required. %} +### {% linkable_title 3. Change hass executable and other variables if required. %} -Some installation environments may require a change in the Home Assistant executable `hass`. Update script to set `HASS_BIN` to the appropriate `hass` executable path. +Some installation environments may require a change in the Home Assistant executable `hass`. Update script to set `HASS_BIN` to the appropriate `hass` executable path. Please also check the other variables for the appropriate value. In general the defaults should work -### {% linkable_title 4. Register the daemon with Linux %} - -```bash -$ sudo update-rc.d hass-daemon defaults -``` - -### {% linkable_title 5. Install this service %} +### {% linkable_title 4. Install this service %} ```bash $ sudo service hass-daemon install ``` +### {% linkable_title 5. Create logrotate rule %} + +This logrotate script at `/etc/logrotate.d/homeassistant` will create an outage of a few seconds every week at night. If you do not want this add `--log-rotate-days 7` to the `FLAGS` variable in the init script. + +``` +/var/log/homeassistant/home-assistant.log +{ + rotate 7 + daily + missingok + notifempty + delaycompress + compress + postrotate + invoke-rc.d hass-daemon restart > /dev/null + endscript +} + +``` + ### {% linkable_title 6. Restart Machine %} That's it. Restart your machine and Home Assistant should start automatically. -If HA does not start, check the log file output for errors at `/var/opt/homeassistant/home-assistant.log` +If HA does not start, check the log file output for errors at `/var/log/homeassistant/home-assistant.log` ### {% linkable_title Extra: Running commands before hass executes %} @@ -73,54 +87,87 @@ HASS_BIN="hass" RUN_AS="USER" PID_FILE="/var/run/hass.pid" CONFIG_DIR="/var/opt/homeassistant" -FLAGS="-v --config $CONFIG_DIR --pid-file $PID_FILE --daemon" -REDIRECT="> $CONFIG_DIR/home-assistant.log 2>&1" +LOG_DIR="/var/log/homeassistant" +LOG_FILE="$LOG_DIR/home-assistant.log" +FLAGS="-v --config $CONFIG_DIR --pid-file $PID_FILE --log-file $LOG_FILE --daemon" + start() { + if [ ! -d "$PID_DIR" ]; then + echo "It seems you did not run" + echo -e "\tservice hass-daemon install" + return 1 + fi if [ -f $PID_FILE ] && kill -0 $(cat $PID_FILE) 2> /dev/null; then echo 'Service already running' >&2 return 1 fi - echo 'Starting service…' >&2 - local CMD="$PRE_EXEC $HASS_BIN $FLAGS $REDIRECT;" - su -c "$CMD" $RUN_AS - echo 'Service started' >&2 + echo -n 'Starting service… ' >&2 + local CMD="$PRE_EXEC $HASS_BIN $FLAGS;" + su -s /bin/bash -c "$CMD" $RUN_AS + if [ $? -ne 0 ]; then + echo "Failed" >&2 + else + echo 'Done' >&2 + fi } stop() { - if [ ! -f "$PID_FILE" ] || ! kill -0 $(cat "$PID_FILE") 2> /dev/null; then + if [ ! -f "$PID_FILE" ] || ! kill -0 $(cat "$PID_FILE") 2> /dev/null; then echo 'Service not running' >&2 return 1 fi - echo 'Stopping service…' >&2 + echo -n 'Stopping service… ' >&2 kill $(cat "$PID_FILE") while ps -p $(cat "$PID_FILE") > /dev/null 2>&1; do sleep 1;done; - echo 'Service stopped' >&2 + rm -f $PID_FILE + echo 'Done' >&2 } install() { - echo "Installing Home Assistant Daemon (hass-daemon)" - echo "999999" > $PID_FILE - chown $RUN_AS $PID_FILE - mkdir -p $CONFIG_DIR - chown $RUN_AS $CONFIG_DIR + echo "Installing Home Assistant Daemon (hass-daemon)" + update-rc.d hass-daemon defaults + create_piddir + mkdir -p $CONFIG_DIR + chown $RUN_AS $CONFIG_DIR + mkdir -p $LOG_DIR + chown $RUN_AS $LOG_DIR } uninstall() { - echo -n "Are you really sure you want to uninstall this service? That cannot be undone. [yes|No] " + echo "Are you really sure you want to uninstall this service? The INIT script will" + echo -n "also be deleted! That cannot be undone. [yes|No] " local SURE read SURE if [ "$SURE" = "yes" ]; then stop - rm -fv "$PID_FILE" + remove_piddir echo "Notice: The config directory has not been removed" echo $CONFIG_DIR + echo "Notice: The log directory has not been removed" + echo $LOG_DIR update-rc.d -f hass-daemon remove rm -fv "$0" echo "Home Assistant Daemon has been removed. Home Assistant is still installed." fi } +create_piddir() { + if [ ! -d "$PID_DIR" ]; then + mkdir -p $PID_DIR + chown $RUN_AS "$PID_DIR" + fi +} + +remove_piddir() { + if [ -d "$PID_DIR" ]; then + if [ -e "$PID_FILE" ]; then + rm -fv "$PID_FILE" + fi + rmdir -fv "$PID_DIR" + fi +} + case "$1" in start) start @@ -158,60 +205,93 @@ esac # /etc/init.d Service Script for Home Assistant # Created with: https://gist.github.com/naholyr/4275302#file-new-service-sh -PRE_EXEC="cd /srv/homeassistant && python3 -m venv . && source bin/activate &&" +PRE_EXEC="cd /srv/homeassistant; python3 -m venv .; source bin/activate;" # Typically /usr/bin/hass HASS_BIN="hass" -RUN_AS="USER" -PID_FILE="/var/run/hass.pid" -CONFIG_DIR="/home/USER/.homeassistant" -FLAGS="-v --config $CONFIG_DIR --pid-file $PID_FILE --daemon" -REDIRECT="> $CONFIG_DIR/home-assistant.log 2>&1" +RUN_AS="homeassistant" +PID_DIR="/var/run/hass" +PID_FILE="$PID_DIR/hass.pid" +CONFIG_DIR="/home/$RUN_AS/.homeassistant" +LOG_DIR="/var/log/homeassistant" +LOG_FILE="$LOG_DIR/home-assistant.log" +FLAGS="-v --config $CONFIG_DIR --pid-file $PID_FILE --log-file $LOG_FILE --daemon" start() { + if [ ! -d "$PID_DIR" ]; then + echo "It seems you did not run" + echo -e "\tservice hass-daemon install" + return 1 + fi if [ -f $PID_FILE ] && kill -0 $(cat $PID_FILE) 2> /dev/null; then echo 'Service already running' >&2 return 1 fi - echo 'Starting service…' >&2 - local CMD="$PRE_EXEC $HASS_BIN $FLAGS $REDIRECT;" + echo -n 'Starting service… ' >&2 + local CMD="$PRE_EXEC $HASS_BIN $FLAGS;" su -s /bin/bash -c "$CMD" $RUN_AS - echo 'Service started' >&2 + if [ $? -ne 0 ]; then + echo "Failed" >&2 + else + echo 'Done' >&2 + fi } stop() { - if [ ! -f "$PID_FILE" ] || ! kill -0 $(cat "$PID_FILE") 2> /dev/null; then + if [ ! -f "$PID_FILE" ] || ! kill -0 $(cat "$PID_FILE") 2> /dev/null; then echo 'Service not running' >&2 return 1 fi - echo 'Stopping service…' >&2 + echo -n 'Stopping service… ' >&2 kill $(cat "$PID_FILE") while ps -p $(cat "$PID_FILE") > /dev/null 2>&1; do sleep 1;done; - echo 'Service stopped' >&2 + rm -f $PID_FILE + echo 'Done' >&2 } install() { - echo "Installing Home Assistant Daemon (hass-daemon)" - echo "999999" > $PID_FILE - chown $RUN_AS $PID_FILE - mkdir -p $CONFIG_DIR - chown $RUN_AS $CONFIG_DIR + echo "Installing Home Assistant Daemon (hass-daemon)" + update-rc.d hass-daemon defaults + create_piddir + mkdir -p $CONFIG_DIR + chown $RUN_AS $CONFIG_DIR + mkdir -p $LOG_DIR + chown $RUN_AS $LOG_DIR } uninstall() { - echo -n "Are you really sure you want to uninstall this service? That cannot be undone. [yes|No] " + echo "Are you really sure you want to uninstall this service? The INIT script will" + echo -n "also be deleted! That cannot be undone. [yes|No] " local SURE read SURE if [ "$SURE" = "yes" ]; then stop - rm -fv "$PID_FILE" + remove_piddir echo "Notice: The config directory has not been removed" echo $CONFIG_DIR + echo "Notice: The log directory has not been removed" + echo $LOG_DIR update-rc.d -f hass-daemon remove rm -fv "$0" echo "Home Assistant Daemon has been removed. Home Assistant is still installed." fi } +create_piddir() { + if [ ! -d "$PID_DIR" ]; then + mkdir -p $PID_DIR + chown $RUN_AS "$PID_DIR" + fi +} + +remove_piddir() { + if [ -d "$PID_DIR" ]; then + if [ -e "$PID_FILE" ]; then + rm -fv "$PID_FILE" + fi + rmdir -fv "$PID_DIR" + fi +} + case "$1" in start) start From 9186821adfc817faecb16098efe8ba4b7fae9726 Mon Sep 17 00:00:00 2001 From: karlkar Date: Thu, 18 Jan 2018 23:46:12 +0100 Subject: [PATCH 14/28] Fix for Botvac D3 and D5 (#4456) --- source/_components/neato.markdown | 9 --------- 1 file changed, 9 deletions(-) diff --git a/source/_components/neato.markdown b/source/_components/neato.markdown index 45bdd344e50..8c5b205e98a 100644 --- a/source/_components/neato.markdown +++ b/source/_components/neato.markdown @@ -28,15 +28,6 @@ Configuration variables: - **username** (*Required*): Username for the Neato account. - **password** (*Required*): Password for the Neato account. -The Home Assistant Neato platform has not been tested with all models of Botvac. - - | BotVac Model | Tested | - | --- | --- | - | Botvac Connected | SUCCESS | - | Botvac D3 Connected (firmware 4.0+) | PARTIALLY WORKING | - | Botvac D5 Connected (firmware 4.0+) | PARTIALLY WORKING | - | Botvac D7 Connected | SUCCESS | -

After the update to firmware 4.0 (which adds cleaning maps) there is also support for displaying the maps of the Botvac D3 Connected and Botvac D5 Connected robots. The start/stop functionality does not work. More information on how to update here: https://support.neatorobotics.com/hc/en-us/articles/115004320694-Software-Update-4-0-for-Neato-Botvac-Connected-D3-D5-

From 874e76d797f1bce1267340f29f0beead5f2d6528 Mon Sep 17 00:00:00 2001 From: ubnt-marc-khouri <35465461+ubnt-marc-khouri@users.noreply.github.com> Date: Fri, 19 Jan 2018 16:53:53 -0500 Subject: [PATCH 15/28] Documentation tweak (#4466) * Add Wink to "discovery" component docs * Views (groups with `view: yes`) cannot be nested in other views This commit documents that groups with `view: yes` cannot be used as entities within another group with `view: yes`. Several forum users have been confused by this behaviour -- and me too! :) Example posts: - https://community.home-assistant.io/t/groups-not-appearing/23593 - https://community.home-assistant.io/t/group-cards-not-showing/1052/14 - https://community.home-assistant.io/t/groups-not-shown-on-state-tab/30395/2 --- source/_components/discovery.markdown | 4 +++- source/_components/group.markdown | 8 ++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/source/_components/discovery.markdown b/source/_components/discovery.markdown index 18ac58261ce..f6629e31598 100644 --- a/source/_components/discovery.markdown +++ b/source/_components/discovery.markdown @@ -36,6 +36,7 @@ Home Assistant can discover and automatically configure [zeroconf](https://en.wi * [Samsung TVs](https://home-assistant.io/components/media_player.samsungtv/) * [Sonos speakers](https://home-assistant.io/components/media_player.sonos/) * [Telldus Live](https://home-assistant.io/components/tellduslive/) + * [Wink](https://home-assistant.io/components/wink/) * [Yamaha media player](https://home-assistant.io/components/media_player.yamaha/) * [Yeelight Sunflower bulb](https://home-assistant.io/components/light.yeelightsunflower/) @@ -79,9 +80,10 @@ Valid values for ignore are: * `samsung_tv`: Samsung TVs * `sonos`: Sonos speakers * `tellduslive`: Telldus Live + * `wink`: Wink Hub * `yamaha`: Yamaha media player * `yeelight`: Yeelight Sunflower bulb - +

Home Assistant must be on the same network as the devices for uPnP discovery to work. If running Home Assistant in a [Docker container](/docs/installation/docker/) use switch `--net=host` to put it on the host's network. diff --git a/source/_components/group.markdown b/source/_components/group.markdown index 74f07dc49bb..9a515fafc6f 100644 --- a/source/_components/group.markdown +++ b/source/_components/group.markdown @@ -22,7 +22,7 @@ By default, every group appears in the HOME tab. If you create a group `default_ group: default_view: view: yes - icon: mdi:home + icon: mdi:home entities: - group.kitchen - group.awesome_people @@ -56,7 +56,7 @@ group: Configuration variables: -- **view** (*Optional*): If yes then the entry will be shown as a view (tab) at the top. +- **view** (*Optional*): If yes then the entry will be shown as a view (tab) at the top. Groups that are set to `view: yes` cannot be used as entities in other views. - **name** (*Optional*): Name of the group. - **icon** (*Optional*): If the group is a view, this icon will show at the top in the frontend instead of the name. If the group is a view and both name and icon have been specified, the icon will appear at the top of the frontend and the name will be displayed as the mouse-over text. If it's not a view, then the icon shows when this group is used in another group. - **control** (*Optional*): Set value to `hidden`. If hidden then the group switch will be hidden. @@ -69,7 +69,7 @@ Example of groups shown as views in the frontend. If all entities in a group are switches or lights then Home Assistant adds a switch at the top of the card that turns them all on/off at once. If you want to hide this switch, set `control` to `hidden`. -You can create views (tabs) that contain other groups. +You can create views (tabs) that contain other groups (but not other groups which are marked as `view: yes`). Notice in the example below that in order to refer to the group "Living Room", you use `group.living_room` (lowercase and spaces replaced with underscores). ```yaml @@ -86,7 +86,7 @@ Notice in the example below that in order to refer to the group "Living Room", y entities: - group.living_room - group.bedroom -``` +``` ## {% linkable_title Default groups %} From 0124a62db4a2ea4a80e5985f0cf51423e16bed48 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Fri, 19 Jan 2018 23:03:56 +0100 Subject: [PATCH 16/28] Add raw --- source/_components/image_processing.seven_segments.markdown | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/_components/image_processing.seven_segments.markdown b/source/_components/image_processing.seven_segments.markdown index db0ebf4f1b7..13249bc52b1 100644 --- a/source/_components/image_processing.seven_segments.markdown +++ b/source/_components/image_processing.seven_segments.markdown @@ -93,6 +93,7 @@ image_processing: With the help of a [template sensor](/components/sensor.template/), the value can be shown as badge. +{% raw %} ```yaml sensor: - platform: template @@ -102,4 +103,4 @@ sensor: friendly_name: 'Ampere' unit_of_measurement: 'A' ``` - +{% endraw %} From 093a9a664689b709a99832042c25eb92b6f7acce Mon Sep 17 00:00:00 2001 From: Sean Dague Date: Sat, 20 Jan 2018 09:34:20 -0500 Subject: [PATCH 17/28] Update unifi docs to recommend read-only user While doing this, also update the configuration section to current configuration markup best practices, which also fixed a number of inaccuracies with the defaults by cross checking with the source code. Fixes issue home-assistant/home-assistant#11821 --- .../_components/device_tracker.unifi.markdown | 67 +++++++++++++++---- 1 file changed, 53 insertions(+), 14 deletions(-) diff --git a/source/_components/device_tracker.unifi.markdown b/source/_components/device_tracker.unifi.markdown index 5e25b7df5c3..25c5bc97c69 100644 --- a/source/_components/device_tracker.unifi.markdown +++ b/source/_components/device_tracker.unifi.markdown @@ -21,24 +21,63 @@ To use this device tracker in your installation, add the following to your `conf # Example configuration.yaml entry device_tracker: - platform: unifi - username: YOUR_ADMIN_USERNAME - password: YOUR_ADMIN_PASSWORD + username: USERNAME + password: PASSWORD ``` -Configuration variables: - -- **host** (*Optional*): The hostname or IP address of your controller. Defaults to `localhost`. -- **port** (*Optional*): The port of your controller's web interface. Defaults to `8443`. -- **username** (*Required*: The username of an user with administrative privileges, usually `admin`. -- **password** (*Required*): The password for your given admin account. -- **site_id** (*Optional*): Allows you to specify a `site_id` for device tracking. Defaults to `default`. Found in the URL of the controller (i.e. https://CONTROLLER:PORT/manage/site/SITE_ID/dashboard). -- **verify_ssl** (*Optional*): Controls if the SSL certificate running on your Unifi webserver must be trusted by a known Certificate Authority on the server running Home Assistant. Defaults to 'True' but can also be a value that points to your custom cert "path/to/custom_cert.pem". -- **detection_time** (*Optional*): The Unifi component will only return devices that have been seen by the controller in the last 180 seconds. You can adjust this threshold with this variable and accepts seconds or `00:00:00` time formats. +{% configuration %} +username: + description: A user on the controller + type: string + required: true +password: + description: The password for the account + type: string + required: true +host: + description: The hostname or IP address of your controller + default: localhost + type: string + required: false +port: + description: The port of your controller's web interface + default: 8443 + type: int + required: false +site_id: + description: for multisite installations, you can specify `site_id` to specify which is used + type: string + required: false + default: default +verify_ssl: + description: whether to do strict validation on SSL certificates of the unifi controller. This can be true/false or the path to a locally trusted certificate to use for verification (i.e. "/path/to/custom_cert.pm") + type: boolean or filename + required: false + default: true +detection_time: + description: How long since the last seen time before the device is marked away, specified in seconds. + type: int + required: optional + default: 300 +{% endconfiguration %} See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked. -

-If you decide to install the Unifi Controller on the same system as your Home Assistant, be aware there may be overlap in ports if you have the MQTT component as well. +### {% linkable_title Configuring Users %} + +The Unifi controller allows you to create multiple users on it besides +the main administrator. It is recommended that you create a limitted +user that has `read only` permissions for the unifi device tracker. + +### {% linkable_title Conflicts with MQTT %} + +The Unifi controller can either be a dedicated hardware device +(Unifi's cloud key), or as software any Linux system. If you run the +the Unifi controller on the same operating system as Home Assistant +there may be conflicts in ports if you have the MQTT component as +well. + +It is recommended that you run the Unifi controller in a dedicate +virtual machine to avoid that situation. [Related Issue](https://github.com/home-assistant/home-assistant/issues/10507) -

From 347bca1ea559d9d3934e73fb5933e59270068172 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Sat, 20 Jan 2018 16:16:57 +0100 Subject: [PATCH 18/28] :pencil2: Minor spelling, grammar & Markdown changes --- source/_components/device_tracker.unifi.markdown | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/source/_components/device_tracker.unifi.markdown b/source/_components/device_tracker.unifi.markdown index 25c5bc97c69..f2b5e2a4350 100644 --- a/source/_components/device_tracker.unifi.markdown +++ b/source/_components/device_tracker.unifi.markdown @@ -12,7 +12,6 @@ ha_category: Presence Detection ha_release: 0.14 --- - This platform allows you to detect presence by looking at devices connected to a [Ubiquiti](http://ubnt.com/) [Unifi](https://www.ubnt.com/enterprise/#unifi) controller. To use this device tracker in your installation, add the following to your `configuration.yaml` file: @@ -35,7 +34,7 @@ password: type: string required: true host: - description: The hostname or IP address of your controller + description: The hostname or IP address of your controller default: localhost type: string required: false @@ -45,12 +44,12 @@ port: type: int required: false site_id: - description: for multisite installations, you can specify `site_id` to specify which is used + description: For multisite installations, you can specify `site_id` to specify which is used type: string required: false default: default verify_ssl: - description: whether to do strict validation on SSL certificates of the unifi controller. This can be true/false or the path to a locally trusted certificate to use for verification (i.e. "/path/to/custom_cert.pm") + description: Whether to do strict validation on SSL certificates of the Unifi controller. This can be true/false or the path to a locally trusted certificate to use for verification (i.e. "/path/to/custom_cert.pm") type: boolean or filename required: false default: true @@ -66,8 +65,8 @@ See the [device tracker component page](/components/device_tracker/) for instruc ### {% linkable_title Configuring Users %} The Unifi controller allows you to create multiple users on it besides -the main administrator. It is recommended that you create a limitted -user that has `read only` permissions for the unifi device tracker. +the main administrator. It is recommended that you create a limited +user that has `read-only` permissions for the Unifi device tracker. ### {% linkable_title Conflicts with MQTT %} From 02bc68af98c6e5d6719d1df8dde91a4e8b8b0f28 Mon Sep 17 00:00:00 2001 From: DubhAd Date: Sat, 20 Jan 2018 15:18:19 +0000 Subject: [PATCH 19/28] Added note about Android being abandoned (#4473) Directing people to GPS Logger as a possible alternative on Android --- source/_components/device_tracker.owntracks_http.markdown | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/source/_components/device_tracker.owntracks_http.markdown b/source/_components/device_tracker.owntracks_http.markdown index 7e91746e55a..718be249ad3 100644 --- a/source/_components/device_tracker.owntracks_http.markdown +++ b/source/_components/device_tracker.owntracks_http.markdown @@ -15,6 +15,10 @@ ha_release: 0.55 OwnTracks is a free and open source application that allows you to track your location in Home Assistant. This is a platform that supports OwnTracks via their HTTP publishing method. +

+The Android app for OwnTracks is no longer developed or supported. Consider [GPS Logger](/components/device_tracker.gpslogger/) as an alternative. +

+ To integrate Owntracks tracking via HTTP in Home Assistant, add the following section to your `configuration.yaml` file: ```yaml From f6603f4c7152510f175d9d2fa02fdeccdb198fd9 Mon Sep 17 00:00:00 2001 From: DubhAd Date: Sat, 20 Jan 2018 15:18:33 +0000 Subject: [PATCH 20/28] Added note about abandonment of Android (#4472) Directing people to Zanzito since the OwnTracks team have officially abandoned the Android app (see ). I'll also apply a note to the HTTP version. --- source/_components/device_tracker.owntracks.markdown | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/source/_components/device_tracker.owntracks.markdown b/source/_components/device_tracker.owntracks.markdown index f23457ad8d6..0bd137c0ab7 100644 --- a/source/_components/device_tracker.owntracks.markdown +++ b/source/_components/device_tracker.owntracks.markdown @@ -14,7 +14,11 @@ ha_release: 0.7.4 --- -This platform allows you to detect presence using [Owntracks](http://owntracks.org/). OwnTracks allows users to track their location on Android and iOS phones and publish it to an MQTT broker. This platform will connect to the broker and monitor for new locations. +This platform allows you to detect presence using [Owntracks](http://owntracks.org/). OwnTracks allows users to track their location on iOS phones and publish it to an MQTT broker. This platform will connect to the broker and monitor for new locations. + +

+The Android app for OwnTracks is no longer developed or supported, Zanzito is a drop in replacement for OwnTracks MQTT. +

This component requires [the MQTT component](/components/mqtt/) to be set up and works very well together with [the zone component](/components/zone/). From 5bc9a6604d62c31f0262275046715275d4ebab3d Mon Sep 17 00:00:00 2001 From: flashoftheblades Date: Sat, 20 Jan 2018 10:26:10 -0500 Subject: [PATCH 21/28] Update variable names for away mode (#4458) The actual variables in the honeywell.py script are looking for 'away_cool_temperature' and 'away_heat_temperature'. --- source/_components/climate.honeywell.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/_components/climate.honeywell.markdown b/source/_components/climate.honeywell.markdown index 8a50fc5dd66..8104a6a77f1 100644 --- a/source/_components/climate.honeywell.markdown +++ b/source/_components/climate.honeywell.markdown @@ -36,5 +36,5 @@ Configuration variables: - **region** (*Optional*): Region identifier (either 'eu' or 'us'). Defaults to 'eu' if not provided. - **scan_interval**(*Optional*): Scan interval is expressed in seconds. Recommended value of 600 seconds. Default value is 120 seconds. Omitting scan_interval may result in too-frequent polling and cause you to rate-limited by Honeywell. - **away_temperature** (*Optional*) (*only for eu region*): Heating setpoint when away mode is on. If omitted it defaults to 16.0 deg C. -- **cool_away_temperature** (*Optional*) (*only for us region*): Cooling setpoint when away mode is on. If omitted it defaults to 30.0 deg C. -- **heat_away_temperature** (*Optional*) (*only for us region*): Heating setpoint when away mode is on. If omitted it defaults to 16.0 deg C. +- **away_cool_temperature** (*Optional*) (*only for us region*): Cooling setpoint when away mode is on. If omitted it defaults to 30.0 deg C. +- **away_heat_temperature** (*Optional*) (*only for us region*): Heating setpoint when away mode is on. If omitted it defaults to 16.0 deg C. From b3c050747e14783cf12755ee67fef2413105c0d7 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Sat, 20 Jan 2018 18:29:57 +0100 Subject: [PATCH 22/28] Add browser as option --- source/developers/server_sent_events.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/developers/server_sent_events.markdown b/source/developers/server_sent_events.markdown index 2f94a0bc8e0..fc54b168dab 100644 --- a/source/developers/server_sent_events.markdown +++ b/source/developers/server_sent_events.markdown @@ -15,7 +15,7 @@ The URI that is generating the data is `/api/stream`. A requirement on the client-side is existing support for the [EventSource](https://developer.mozilla.org/en-US/docs/Web/API/EventSource) interface. -There are various ways to access the stream. One is `curl`: +There are various ways to access the stream. If you have not set an `api_password` in the [`http`](/components/http/) section of your `configuration.yaml` file then you use your modern browser to read the messages. A command-line option is `curl`: ```bash $ curl -X GET -H "x-ha-access: YOUR_PASSWORD" \ From 779538064b2d359fb6a7e99a0639aa84c888884c Mon Sep 17 00:00:00 2001 From: DubhAd Date: Sat, 20 Jan 2018 19:52:29 +0000 Subject: [PATCH 23/28] Language tweak (#4478) The "only the above URL" lead to some considerable confusion where somebody thought that you couldn't use the other Parameters, not that you had to use those. --- source/_components/device_tracker.gpslogger.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/device_tracker.gpslogger.markdown b/source/_components/device_tracker.gpslogger.markdown index 994b8c2989a..909d620aae9 100644 --- a/source/_components/device_tracker.gpslogger.markdown +++ b/source/_components/device_tracker.gpslogger.markdown @@ -67,7 +67,7 @@ Add the above URL after you modified it with your settings into the **URL** fiel - It's HIGHLY recommended to use SSL/TLS. - Use the domain that Home Assistant is available on the internet or the public IP address. Can be a local IP address if you are using a VPN setup. - Only remove `[Port]` if your Home Assistant instance is using port 80. Otherwise set it to 8123. -- Click on **Parameters** in the app and you will see all available parameters for the URL. For Home Assistant only the above URL will work. +- For Home Assistant only the above URL, as written, will work - do not add or remove any parameters. - Make sure to include your [API password](/components/http/) if you have configured a password. Add `&api_password=[Your pasword]` to the end of the URL. - You can change the name of your device name by replacing `&device=%SER` with `&device=[Devicename]`. From 4fe223e922b6740e1cb13a18bdfdb374adc2763f Mon Sep 17 00:00:00 2001 From: bkcberry Date: Sat, 20 Jan 2018 13:56:17 -0600 Subject: [PATCH 24/28] Adds Xiaomi double button click example (#4468) * added example for smart button double click * added example for smart button double click --- source/_components/xiaomi_aqara.markdown | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/source/_components/xiaomi_aqara.markdown b/source/_components/xiaomi_aqara.markdown index 2b142c434c4..c5cdbcc7885 100644 --- a/source/_components/xiaomi_aqara.markdown +++ b/source/_components/xiaomi_aqara.markdown @@ -222,6 +222,25 @@ This example plays the sound of a dog barking when the button is held down and s gw_mac: xxxxxxxxxxxx ``` +### {% linkable_title Double Click on Smart Button %} + +This example toggles the living room lamp on a double click of the button. + +```yaml +- alias: Double Click to toggle living room lamp + trigger: + platform: event + event_type: click + event_data: + entity_id: binary_sensor.switch_158d000xxxxxc2 + click_type: double + action: + service: light.toggle + data: + entity_id: light.living_room_lamp +``` + + ## {% linkable_title Troubleshooting %} ### {% linkable_title Initial setup problem %} From 82ec418c2dc576f6bf054d5335a47ef4e1adaccf Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 20 Jan 2018 21:27:15 -0800 Subject: [PATCH 25/28] Add blog post: clarification about emulated hue --- ...-01-21-clarification-emulated-hue.markdown | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 source/_posts/2018-01-21-clarification-emulated-hue.markdown diff --git a/source/_posts/2018-01-21-clarification-emulated-hue.markdown b/source/_posts/2018-01-21-clarification-emulated-hue.markdown new file mode 100644 index 00000000000..4af75e1128a --- /dev/null +++ b/source/_posts/2018-01-21-clarification-emulated-hue.markdown @@ -0,0 +1,34 @@ +--- +layout: post +title: "Clarification about Emulated Hue" +description: "The Emulated Hue component is not going to be removed nor will we ever remove any functionality from Home Assistant to push you to subscribe to the Community Support Package." +date: 2018-01-21 01:00:00 +date_formatted: "January 21, 2018" +author: Paulus Schoutsen +author_twitter: balloob +comments: true +categories: Public Service Announcement +--- + +There are some misconceptions floating about the future of the Emulated Hue component and I would like to set it straight. **The Emulated Hue component is not going to be removed nor will we ever remove any functionality from Home Assistant to push you to support the Home Assistant project by subscribing to the Community Support Package.** + +The reason people are concerned about the future of the Emulated Hue component is because of a poor choice of words in a deprecation message. This message was [introduced a year ago][pr2] when we deprecated the config option `type: alexa` for the Emulated Hue component: + +> Alexa type is deprecated and will be removed in a future version + +That config option should never have been called `type: alexa` but instead have been called `mode: legacy`. If you think about it, why would emulating something even have different modes it emulates based on the consumer? That means that one of the two emulation modes is incorrect. + +The old implementation was not 100% correct. It was correct enough to work with Alexa (the original target) but not with Google Home. When fixing Emulated Hue we added `type: alexa` to re-enable the old implementation so that people did not have to go through the trouble to re-add their Alexa devices. The option was deprecated to indicate that we would remove the incorrect emulation in the future. However, we forgot about actually following through with that. + +The mistake we made was calling the correct mode `google_home` although it had nothing to do with Google Home. It confused people and they kept adding `type: alexa` to their configuration, triggering the deprecation warning. + +The warning will be updated starting Home Assistant 0.62 and will also include a link to this blog post. + +More info: + +- To read about what was incorrect in the first version of Emulated Hue, take a look at the PR fixing it: [Re-org emulated_hue and fix google home][pr1]. +- Read the [documentation on how to configure Emulated Hue][eh-conf] + +[pr1]: https://github.com/home-assistant/home-assistant/pull/4708 +[pr2]: https://github.com/home-assistant/home-assistant/pull/5549 +[eh-conf]: https://home-assistant.io/components/emulated_hue/#configuration From f5b4dee474a5f08ca8899077a511c35470acfd6a Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 20 Jan 2018 22:54:09 -0800 Subject: [PATCH 26/28] Update 2018-01-21-clarification-emulated-hue.markdown --- source/_posts/2018-01-21-clarification-emulated-hue.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_posts/2018-01-21-clarification-emulated-hue.markdown b/source/_posts/2018-01-21-clarification-emulated-hue.markdown index 4af75e1128a..11d57e37c5e 100644 --- a/source/_posts/2018-01-21-clarification-emulated-hue.markdown +++ b/source/_posts/2018-01-21-clarification-emulated-hue.markdown @@ -10,7 +10,7 @@ comments: true categories: Public Service Announcement --- -There are some misconceptions floating about the future of the Emulated Hue component and I would like to set it straight. **The Emulated Hue component is not going to be removed nor will we ever remove any functionality from Home Assistant to push you to support the Home Assistant project by subscribing to the Community Support Package.** +There are some misconceptions floating around about the future of the Emulated Hue component and I would like to set the record straight. **The Emulated Hue component is not going to be removed nor will we ever remove any functionality from Home Assistant to push you to support the Home Assistant project by subscribing to the Community Support Package.** The reason people are concerned about the future of the Emulated Hue component is because of a poor choice of words in a deprecation message. This message was [introduced a year ago][pr2] when we deprecated the config option `type: alexa` for the Emulated Hue component: From efb054277db95dee56bbb628908a6e8db38131f4 Mon Sep 17 00:00:00 2001 From: Derek Date: Sun, 21 Jan 2018 03:47:57 -0500 Subject: [PATCH 27/28] Grammar Updates (#4481) The grammar police came by and fixed some it. --- source/_docs/installation/hassbian/customization.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/_docs/installation/hassbian/customization.markdown b/source/_docs/installation/hassbian/customization.markdown index 68a544461db..dd33b47401c 100644 --- a/source/_docs/installation/hassbian/customization.markdown +++ b/source/_docs/installation/hassbian/customization.markdown @@ -21,8 +21,8 @@ To view the available packages run `hassbian-config show` and `sudo hassbian-con - Install Libcec. Adds local [HDMI CEC support][cec]. *This scipt is currently brooken upstream since it currently doesn't build properly for Python >3.4* - Install Samba. Allows anyone on your network to edit your configuration from any computer. This share is unsecured and it's usage is not recommended if you share your network with others. - Install Tradfri. Installs dependencies for using IKEA Trådfri. - - Install Duck DNS auto renewal. This script adds an cron job to auto update you the WAN IP address for the defined domain. Before running this script you should already have an Duck DNS account, during the installation you will be asked to supply your domain name and the token for your account. - - Install an web terminal for easy access to ssh in an web browser. This script installs an web terminal called 'shellinabox' to you system that give you SSH access in you web browser. + - Install Duck DNS auto renewal. This script adds a cron job to auto update the WAN IP address for the defined domain. Before running this script you should already have an Duck DNS account. During the installation you will be asked to supply your domain name and the token for your account. + - Install a web terminal for easy access to ssh in any web browser. This script installs a web terminal called 'shellinabox' on your system that gives you SSH access in your web browser. #### Upgrade scripts To view the available packages run `hassbian-config show` and `sudo hassbian-config upgrade PACKAGENAME`. From 2c61569273414a21e3ea116d99f0c23c32dbfe04 Mon Sep 17 00:00:00 2001 From: DubhAd Date: Sun, 21 Jan 2018 08:51:59 +0000 Subject: [PATCH 28/28] Static IP allocation note (#4480) The guide forgets to call out that the IP for the system must be fixed, which has tripped up more than a few --- source/_addons/duckdns.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/_addons/duckdns.markdown b/source/_addons/duckdns.markdown index ed65a626c76..297cbb8fd9e 100644 --- a/source/_addons/duckdns.markdown +++ b/source/_addons/duckdns.markdown @@ -47,3 +47,5 @@ If you use a port other than `8123` or an SSL proxy, change the port number acco ## {% linkable_title Router configuration %} You'll need to forward the port you listed in your configuration (8123 in the example above) on your router to your Home Assistant system. You can find guides on how to do this on [Port Forward](https://portforward.com/) - noting that you'll only need to forward the TCP port. + +Ensure that you allocate the Home Assistant system a fixed IP on your network before you configure port forwarding. You can do this either on the computer itself (see the [install guide](/hassio/installation/) or via a static lease on your router.