diff --git a/source/_addons/homematic.markdown b/source/_addons/homematic.markdown index 8cf3c3b9b3..6a92bbff81 100644 --- a/source/_addons/homematic.markdown +++ b/source/_addons/homematic.markdown @@ -57,7 +57,7 @@ Use the following configuration in Home Assistant to use it: ```yaml homematic: interfaces: - BidCoS-RF: + rf: host: core-homematic port: 2001 ``` diff --git a/source/_components/alarm_control_panel.manual_mqtt.markdown b/source/_components/alarm_control_panel.manual_mqtt.markdown index be1508c676..5a1a7d139c 100644 --- a/source/_components/alarm_control_panel.manual_mqtt.markdown +++ b/source/_components/alarm_control_panel.manual_mqtt.markdown @@ -58,7 +58,7 @@ The following configuration variables from the base manual alarm platform are av - **pending_time** (*Optional*): State specific setting for **pending_time** (all states except **disarmed**) - **trigger_time** (*Optional*): State specific setting for **trigger_time** (all states except **triggered**) -See the documentation for the [manual alarm platform](/component/alarm_control_panel.manual/) for a description. +See the documentation for the [manual alarm platform](/components/alarm_control_panel.manual/) for a description. Additionally, the following MQTT configuration variables are also available: diff --git a/source/_components/alexa.markdown b/source/_components/alexa.markdown index e39048053c..e7bfbfa746 100644 --- a/source/_components/alexa.markdown +++ b/source/_components/alexa.markdown @@ -375,7 +375,7 @@ which accepts and returns messages conforming to the [Smart Home v3 payload](https://developer.amazon.com/docs/smarthome/smart-home-skill-api-message-reference.html). You must then create an Amazon developer account with an Alexa skill and Lambda function to integrate this endpoint. See -[Haaska](https://github.com/auchter/haaska) for an example. +[Haaska](https://github.com/mike-grant/haaska) for an example. [amazon-dev-console]: https://developer.amazon.com [flash-briefing-api]: https://developer.amazon.com/alexa-skills-kit/flash-briefing diff --git a/source/_components/calendar.google.markdown b/source/_components/calendar.google.markdown index 3442a972a0..acad749e7c 100644 --- a/source/_components/calendar.google.markdown +++ b/source/_components/calendar.google.markdown @@ -28,6 +28,7 @@ Generate a Client ID and Client Secret on [Google Developers Console](https://co 1. Click 'Create credentials' -> OAuth client ID. 1. Set the Application type to 'Other' and give this credential set a name then click Create. 1. Save the client ID and secret as you will need to put these in your configuration.yaml file. +1. Click on "Library", search for "Google Calendar API" and enable it. ### {% linkable_title Basic Setup %} diff --git a/source/_components/camera.rpi_camera.markdown b/source/_components/camera.rpi_camera.markdown index 6bfeb7696e..7dd981077f 100644 --- a/source/_components/camera.rpi_camera.markdown +++ b/source/_components/camera.rpi_camera.markdown @@ -61,16 +61,16 @@ vertical_flip: default: 0 type: int timelapse: - description: Takes a picture every millisecond. + description: Takes a picture every this many milliseconds (thousands of a second) - the default means one picture a second. required: false default: 1000 type: int file_path: description: Save the picture in a custom file path. required: false - default: The camera components folder. + default: A temporary file is used. type: string {% endconfiguration %} -The given **file_path** must be an existing file because the camera platform setup make a writeable check on it. +The given **file_path** must be an existing file because the camera platform setup performs a writeable check on it. Also, keep in mind that the path should be [whitelisted](/docs/configuration/basic/). diff --git a/source/_components/cloud.markdown b/source/_components/cloud.markdown index d45e9aa15f..3008a52cac 100644 --- a/source/_components/cloud.markdown +++ b/source/_components/cloud.markdown @@ -13,27 +13,7 @@ ha_category: Voice ha_iot_class: "Cloud Push" --- -

The Home Assistant Cloud is currently in open beta and will become part of the upcoming Community Support Package. [Learn more](/blog/2017/12/17/introducing-home-assistant-cloud/)

- -The Home Assistant Cloud allows you to quickly integrate your local Home Assistant with various cloud services like Amazon Alexa. - -The following integrations are currently available: - - - [Amazon Alexa (Amazon Echo)](/components/cloud.alexa/) - - - -### {% linkable_title How does it work? %} - -The Home Assistant Cloud has been designed with security in mind. When you activate the Cloud component, your instance will create a secure connection to the Home Assistant Cloud. There is no need for any further configuration or to expose your instance to the internet. - -Integrations like Alexa will deliver messages to our cloud which we will forward to your local instance for processing. We just forward the response back to Alexa. This means that we do not have to store the state of your house in our cloud, we’re just the messenger! - -You can find a list of frequently asked questions (and their answers) in [this blog post](/blog/2017/12/17/introducing-home-assistant-cloud/#faq). - -### {% linkable_title Enabling the cloud %} - -The Home Assistant Cloud is enabled by default. If not, add this to your configuration: +The Home Assistant Cloud allows you to quickly integrate your local Home Assistant with various cloud services like Amazon Alexa. [Learn more.](/cloud) ```yaml # Example configuration.yaml entry to enable the cloud component diff --git a/source/_components/counter.markdown b/source/_components/counter.markdown index 76a11fbb89..b54dcc4385 100644 --- a/source/_components/counter.markdown +++ b/source/_components/counter.markdown @@ -19,7 +19,7 @@ To add a counter to your installation, add the following to your `configuration. ```yaml # Example configuration.yaml entry counter: - counter: + my_custom_counter: initial: 30 step: 1 ``` diff --git a/source/_components/cover.tahoma.markdown b/source/_components/cover.tahoma.markdown index 787b6fb126..1176153355 100644 --- a/source/_components/cover.tahoma.markdown +++ b/source/_components/cover.tahoma.markdown @@ -12,10 +12,6 @@ ha_category: Cover ha_release: 0.59 --- -To use your tahoma covers in your installation, add the following to your `configuration.yaml` file: +The `tahoma` cover platform lets you control covers added to your Tahoma Box in Home Assistant. -```yaml -# Example configuration.yml entry -cover: - platform: tahoma -``` +Covers will be added automatically. Please refer to the [component](/components/tahoma/) configuration on how to setup Tahoma. diff --git a/source/_components/device_tracker.gpslogger.markdown b/source/_components/device_tracker.gpslogger.markdown index 34465aec4f..1f1437dca2 100644 --- a/source/_components/device_tracker.gpslogger.markdown +++ b/source/_components/device_tracker.gpslogger.markdown @@ -56,7 +56,7 @@ Right after enabling, the app will take you to the **Log to custom URL** setting The relevant endpoint is: `/api/gpslogger` ```text -http://[IP address Home Assistant]:[Port]/api/gpslogger? +https://[IP address Home Assistant]:[Port]/api/gpslogger? latitude=%LAT&longitude=%LON&device=%SER&accuracy=%ACC &battery=%BATT&speed=%SPD&direction=%DIR &altitude=%ALT&provider=%PROV&activity=%ACT @@ -65,8 +65,8 @@ http://[IP address Home Assistant]:[Port]/api/gpslogger? Add the above URL after you modified it with your settings into the **URL** field. Remove the line breaks as they are only there to make the URL readable here. - 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. +- Use the domain that Home Assistant is available on the internet or the public IP address. This can be a local IP address if you are using an always on VPN from your mobile device to your home network. +- Only remove `[Port]` if your Home Assistant instance is using port 443. Otherwise set it to the port you're using. - 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 password]` to the end of the URL. - You can change the name of your device name by replacing `&device=%SER` with `&device=[Devicename]`. diff --git a/source/_components/device_tracker.owntracks_http.markdown b/source/_components/device_tracker.owntracks_http.markdown index 718be249ad..7e91746e55 100644 --- a/source/_components/device_tracker.owntracks_http.markdown +++ b/source/_components/device_tracker.owntracks_http.markdown @@ -15,10 +15,6 @@ 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 diff --git a/source/_components/emulated_hue.markdown b/source/_components/emulated_hue.markdown index e679f31129..44c7c76c38 100644 --- a/source/_components/emulated_hue.markdown +++ b/source/_components/emulated_hue.markdown @@ -29,6 +29,10 @@ A physical Hue Bridge is required for Philips Hue lights to function - this virt It is recommended to assign a static IP address to the computer running Home Assistant. This is because the Amazon Echo discovers devices by IP addresses, and if the IP changes, the Echo won't be able to control it. This is easiest done from your router, see your router's manual for details.

+

+Both Google Home and Alexa use the device they were initially set up with for communication with emulated_hue. In other words: if you remove/replace this device you will also break emulated_hue. +

+ ### {% linkable_title Configuration %} To enable the emulated Hue bridge, add one of the following configs to your `configuration.yaml` file: diff --git a/source/_components/google_assistant.markdown b/source/_components/google_assistant.markdown index 5c1bf1b0b5..50c311a624 100644 --- a/source/_components/google_assistant.markdown +++ b/source/_components/google_assistant.markdown @@ -136,8 +136,8 @@ If you're not using Linux, you can use sites such as [this one](https://www.brow ### {% linkable_title Setup %} 1. Download the [gactions CLI](https://developers.google.com/actions/tools/gactions-cli) to be used later. You can download and run this anywhere and on any machine. Just remember where you put it for later and don't forget to run `chmod +x gactions` to make it executable on Mac or Linux. -2. Create a new file named `project.json` (in the same directory you downloaded `gactions` to) and replace the `[YOUR HOME ASSISTANT URL]` below with the URL you use to access Home Assistant. - Note: This must be an HTTPS URL to work. +2. Create a new file named `project.json` (in the same directory you downloaded `gactions` to) and replace the `[YOUR HOME ASSISTANT URL:PORT]` below with the URL you use to access Home Assistant. + Note: This must be an HTTPS URL to work. Don't forget to include the port number if you're not using port 443. ```json { @@ -153,7 +153,7 @@ If you're not using Linux, you can use sites such as [this one](https://www.brow "automation": { "name": "automation", - "url": "https://[YOUR HOME ASSISTANT URL]/api/google_assistant" + "url": "https://[YOUR HOME ASSISTANT URL:PORT]/api/google_assistant" } } } @@ -195,7 +195,7 @@ The request_sync service requires that the initial sync from Google includes the The request_sync service may fail with a 404 if the project_id of the Homegraph API differs from the project_id of the Actions SDK found in the preferences of your project on [developer console](https://console.actions.google.com). Resolve this by: 1. Removing your project from the [developer console](https://console.actions.google.com). - 2. Add a new project to the [cloud console](https://console.cloud.google.com). Here you get a new project_id. + 2. Add a new project to the [cloud console](https://console.cloud.google.com). Here you get a new `project_id`. 3. Enable Homegraph API to the new project. 4. Generate a new API key. - 5. Again, create a new project in the [developer console](https://console.actions.google.com/). Described above. But at the step 'Build under the Actions SDK box' choose your newly created project. By this, they share the same project_id. + 5. Again, create a new project in the [developer console](https://console.actions.google.com/). Described above. But at the step 'Build under the Actions SDK box' choose your newly created project. By this, they share the same `project_id`. diff --git a/source/_components/hdmi_cec.markdown b/source/_components/hdmi_cec.markdown index 758f8d468e..694c1e3357 100644 --- a/source/_components/hdmi_cec.markdown +++ b/source/_components/hdmi_cec.markdown @@ -31,32 +31,24 @@ If you are using [Hass.io](/hassio/) then just move forward to the configuration #### {% linkable_title Symlinking into virtual environment %} -Create a symlink to the `cec` installation. Keep in mind different installation methods will result in different locations of cec. +Create a symlink to the `cec` installation including the _cec.so file. Keep in mind different installation methods will result in different locations of cec. ```bash -$ ln -s /path/to/your/installation/of/cec /path/to/your/venv/lib/python3.4/site-packages +$ ln -s /path/to/your/installation/of/cec /path/to/your/venv/lib/python*/site-packages +$ ln -s /path/to/your/installation/of/_cec.so /path/to/your/venv/lib/python*/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 +$ ln -s /usr/local/lib/python*/dist-packages/cec /srv/homeassistant/lib/python*/site-packages +$ ln -s /usr/local/lib/python*/dist-packages/_cec.so /srv/homeassistant/lib/python*/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/site-packages/cec /srv/homeassistant/homeassistant_venv/lib/python3.4/site-packages -``` - -For the default virtual environment of a [Manual installation](/getting-started/installation-raspberry-pi/) the command would be as follows. - -```bash -$ ln -s /usr/local/lib/python3.4/site-packages/cec /srv/hass/hass_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, `* failed to open vchiq instance` you will also need to add the user account Home Assistant runs under, to the `video` group. To add the Home Assistant user account to the `video` group, run the following command. `$ usermod -a -G video `

diff --git a/source/_components/input_datetime.markdown b/source/_components/input_datetime.markdown index 7337114357..19898029df 100644 --- a/source/_components/input_datetime.markdown +++ b/source/_components/input_datetime.markdown @@ -65,7 +65,7 @@ input_datetime: A datetime input entity's state exports several attributes that can be useful in automations and templates. | Attribute | Description | -| --------- | ----------- | +| ----- | ----- | | `has_time` | `true` if this entity has a time. | `has_date` | `true` if this entity has a date. | `year`
`month`
`day` | The year, month and day of the date.
(only available if `has_date: true`) @@ -75,3 +75,47 @@ A datetime input entity's state exports several attributes that can be useful in ### {% linkable_title Restore State %} This component supports the `restore_state` function which restores the state after Home Assistant has started to the value it has been before Home Assistant stopped. To use this feature please make sure that the [`recorder`](/components/recorder/) component is enabled and your entity does not have a value set for `initial`. Additional information can be found in the [Restore state](/components/recorder/#restore-state) section of the [`recorder`](/components/recorder/) component documentation. + +### {% linkable_title Services %} + +This component provides a service to modify the state of the `input_datetime`. + +| Service | Data | Description | +| ----- | ----- | ----- | +| `set_datetime` | `time` | This can be used to dynamically set the time. +| `set_datetime` | `date` | This can be used to dynamically set the date. + +## {% linkable_title Automation Examples %} + +The following example shows the usage of the `input_datetime` as a trigger in an automation (note that you will need a [time sensor](/components/sensor.time_date/) elsewhere in your configuration): + +{% raw %} +```yaml +# Example configuration.yaml entry +# Turns on bedroom light at the time specified. +automation: + trigger: + platform: template +    value_template: "{{ states('sensor.time') == (states.input_datetime.bedroom_alarm_clock_time.attributes.timestamp | int | timestamp_custom('%H:%M', False)) }}" +  action: + service: light.turn_on + entity_id: light.bedroom +``` +{% endraw %} + +To dynamically set the `input_datetime` you can call `input_datetime.set_datetime`. The following example can be used in an automation rule: + +```yaml +# Example configuration.yaml entry +# Sets input_datetime to '05:30' when an input_boolean is turned on. +automation: + trigger: + platform: state + entity_id: input_boolean.example + to: 'on' + action: + service: input_datetime.set_datetime + entity_id: input_datetime.bedroom_alarm_clock_time + data: + time: '05:30:00' +``` diff --git a/source/_components/light.mqtt.markdown b/source/_components/light.mqtt.markdown index 7f55a2160d..ec582bfb0f 100644 --- a/source/_components/light.mqtt.markdown +++ b/source/_components/light.mqtt.markdown @@ -143,7 +143,7 @@ white_value_state_topic: description: The MQTT topic subscribed to receive white value updates. required: false type: string -white_value_value_template: +white_value_template: description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the white value." required: false type: string diff --git a/source/_components/media_player.samsungtv.markdown b/source/_components/media_player.samsungtv.markdown index 744488bebe..10201bfbb9 100644 --- a/source/_components/media_player.samsungtv.markdown +++ b/source/_components/media_player.samsungtv.markdown @@ -54,6 +54,7 @@ Currently known supported models: - D6300SF - U6000 (port must be set to 8001) - U6300 (port must be set to 8001, and `pip3 install websocket-client` must be executed) +- K5579 (port must be set to 8001, On/Off, Forward/Backward, Volume control, but no Play button) - K6500AF (port must be set to 8001) - KS8005 (port must be set to 8001, and `pip3 install websocket-client` must be executed) - KU6290 (port must be set to 8001) diff --git a/source/_components/media_player.vlc.markdown b/source/_components/media_player.vlc.markdown index 21ed9cdf24..0925495764 100644 --- a/source/_components/media_player.vlc.markdown +++ b/source/_components/media_player.vlc.markdown @@ -60,3 +60,7 @@ You need to add the `homeassistant` user to the `audio` group: ```bash sudo usermod -a -G audio homeassistant ``` + +##### {% linkable_title VLC currently not supported with Hass.io %} + +According to the forum topic ["How to add VLC into my Hassio"](http://community.home-assistant.io/t/how-to-add-vlc-into-my-hassio/23000/5), it is not possible to install packages like VLC on Hass.io. diff --git a/source/_components/scene.hunterdouglas_powerview.markdown b/source/_components/scene.hunterdouglas_powerview.markdown index 5598971724..2f63ba6264 100644 --- a/source/_components/scene.hunterdouglas_powerview.markdown +++ b/source/_components/scene.hunterdouglas_powerview.markdown @@ -8,7 +8,7 @@ comments: false sharing: true footer: true logo: hunter-douglas-powerview.png -ha_category: Cover +ha_category: Scene ha_release: 0.15 --- diff --git a/source/_components/scene.lifx_cloud.markdown b/source/_components/scene.lifx_cloud.markdown index cddb7cafd2..7b6ac7a279 100644 --- a/source/_components/scene.lifx_cloud.markdown +++ b/source/_components/scene.lifx_cloud.markdown @@ -17,8 +17,8 @@ The `lifx_cloud` scene platform allows you to activate the scenes that LIFX smar ```yaml # Example configuration.yaml entry scene: - platform: lifx_cloud - token: YOUR_LIFX_TOKEN + - platform: lifx_cloud + token: YOUR_LIFX_TOKEN ``` Configuration variables: diff --git a/source/_components/sensor.random.markdown b/source/_components/sensor.random.markdown index d550d4b88d..c7f2bf07b1 100644 --- a/source/_components/sensor.random.markdown +++ b/source/_components/sensor.random.markdown @@ -14,7 +14,7 @@ ha_release: 0.32 --- -The `random` sensor platform is creating random sensor values (integers) out of a given range. This can be useful if you want to test automation rules. It generates a new value every time it is polled. +The `random` sensor platform is creating random sensor values (integers) out of a given range. Returned values form a [discrete uniform distribution](https://en.wikipedia.org/wiki/Discrete_uniform_distribution), meaning that each integer value in the range configured is equally likely to be drawn. This can be useful if you want to test automation rules. It generates a new value every time it is polled. To enable the random sensor, add the following lines to your `configuration.yaml`: diff --git a/source/_components/sensor.tahoma.markdown b/source/_components/sensor.tahoma.markdown index 80cf6bc4eb..7a2b960de8 100644 --- a/source/_components/sensor.tahoma.markdown +++ b/source/_components/sensor.tahoma.markdown @@ -8,14 +8,10 @@ comments: false sharing: true footer: true logo: tahoma.png -ha_category: Cover +ha_category: Sensor ha_release: 0.59 --- -To use your tahoma sensors in your installation, add the following to your `configuration.yaml` file: +The `tahoma` sensor platform lets you see sensors added to your Tahoma Box in Home Assistant. -```yaml -# Example configuration.yml entry -sensor: - platform: tahoma -``` +Sensors will be added automatically. Please refer to the [component](/components/tahoma/) configuration on how to setup Tahoma. diff --git a/source/_components/snips.markdown b/source/_components/snips.markdown index 1e8dae2e05..6f876effdd 100644 --- a/source/_components/snips.markdown +++ b/source/_components/snips.markdown @@ -27,55 +27,63 @@ Snips takes voice or text as input and produces *intents* as output, which are e ### {% linkable_title Installation %} -The Snips Voice Platform is installed as a Docker image on Raspberry Pi with the following command: - -```bash -(pi) $ curl https://install.snips.ai -sSf | sh -``` - -Snips can also be installed on a Debian/Ubuntu machine as well: +The Snips platform can be installed via the Snips APT/Debian repository. If you prefer to install the platform using the Docker distribution, check out our [Docker Installation Guide](https://github.com/snipsco/snips-platform-documentation/wiki/6.--Miscellaneous#using-docker). ```bash $ sudo apt-get update $ sudo apt-get install -y dirmngr -$ sudo bash -c 'echo "deb https://debian.snips.ai/$(lsb_release -cs) stable main" > /etc/apt/sources.list.d/snips.list' -$ sudo apt-key adv --keyserver pgp.mit.edu --recv-keys F727C778CCB0A455 - +$ sudo bash -c 'echo "deb https://raspbian.snips.ai/$(lsb_release -cs) stable main" > /etc/apt/sources.list.d/snips.list' +$ sudo apt-key adv --keyserver pgp.mit.edu --recv-keys D4F50CDCA10A2849 $ sudo apt-get update $ sudo apt-get install -y snips-platform-voice ``` +Note: if the keyserver pgp.mit.edu is down try to use another one in the 4th line , like pgp.surfnet.nl: + +```bash +sudo apt-key adv --keyserver pgp.surfnet.nl --recv-keys D4F50CDCA10A2849 +``` + ### {% linkable_title Creating an assistant %}
-Snips assistants are created via the [Snips Console](https://console.snips.ai). Once trained, the assistant should be downloaded and copied to the Raspberry Pi: +Head over to the [Snips Console](https://console.snips.ai) to create your assistant. Launch the training and download by clicking on the "Download Assistant" button. + +The next step is to get the assistant to work on your device. Unzip and copy the assistant folder that you downloaded from the web console to the path. Assuming your downloaded assistant folder is on your desktop, just run: ```bash -$ scp assistantproj_XXX.zip pi@pi_hostname:/home/pi/assistant.zip +$ scp -r ~/Desktop/assistant pi@:/home/pi/. ``` -and installed locally via the `snips-install-assistant` helper script: +Now ssh into your Raspberry Pi: ```bash -(pi) $ sudo snips-install-assistant assistant.zip +$ ssh pi@ +``` + +By default, this command is `ssh pi@raspberrypi.local`, if you are using the default Raspberry Pi hostname. + +Then, move the assistant to the right folder: + +```bash +(pi) $ sudo mv /home/pi/assistant /usr/share/snips/assistant +``` + +Note: if you already have an assistant installed and wish to replace it, start by removing the previous one, and then move the new one in its place: + +```bash +(pi) $ sudo rm -r /usr/share/snips/assistant +(pi) $ sudo mv /home/pi/assistant /usr/share/snips/assistant ``` ### {% linkable_title Running Snips %} Make sure that a microphone is plugged to the Raspberry Pi. If you are having trouble setting up audio, we have written a guide on [Raspberry Pi Audio Configuration](https://github.com/snipsco/snips-platform-documentation/wiki/1.-Setup-the-Snips-Voice-Platform-on-your-Raspberry-Pi#configuring-the-audio). -Start the Snips Voice Platform using the `snips` command: - -Raspberry Pi: - -```bash -(pi) $ snips -``` - -Debian/Ubuntu: +Start the Snips Voice Platform by starting the `snips-*` services: ```bash $ sudo systemctl start "snips-*" @@ -89,32 +97,17 @@ followed by a command, e.g. > Set the lights to green in the living room -We should see the transcribed phrase in the logs, as well as a properly parsed intent. The intent is published on MQTT, on the `hermes/intent/` topic. The Snips Home Assistant component subscribes to this topic, and handles the intent according to the rules defined in `configuration.yaml`, as explained below. +As the Snips Platform parses this query into an intent, it will be published on MQTT, on the `hermes/intent/` topic. The Snips Home Assistant component subscribes to this topic, and handles the intent according to the rules defined in `configuration.yaml`, as explained below. #### {% linkable_title Optional: specifying an external MQTT broker %} -By default, Snips runs its own MQTT broker. But we can also tell Snips to use an external broker by specifying this when launching Snips. In this case, instead of running the `snips` command above (which assumes we are using the internal MQTT broker), we use the full launch command with explicitly specified parameters (replace `MQTT_BROKER_IP` and `MQTT_BROKER_PORT` with appropriate values): - -Raspberry Pi: - -```sh -$ docker run -t --rm --name snips --log-driver none \ - -v /home/pi/.asoundrc:/root/.asoundrc \ - -v /opt/snips/config:/opt/snips/config \ - --privileged -v /dev/snd:/dev/snd snipsdocker/platform \ - --mqtt MQTT_BROKER_IP:MQTT_BROKER_PORT -``` -Debian/Ubuntu: - -Edit the `/etc/snips.toml` file. See snips documentation for more information on configuring this - -For more details on launch options, check the documentation on [Snips Platform Commands](https://github.com/snipsco/snips-platform-documentation/wiki/6.--Learn-more:-Platform-Commands#using-a-custom-mqtt-bus). +By default, Snips runs its own MQTT broker. But we can also tell Snips to use an external broker by specifying this when launching Snips. In this case, we need to specify this in the `/etc/snips.toml` configuration file. For more information on configuring this, see the [Using an external MQTT broker](https://github.com/snipsco/snips-platform-documentation/wiki/6.--Miscellaneous#using-external-mqtt-broker) article. ## {% linkable_title Home Assistant configuration %} ### {% linkable_title Specifying the MQTT broker %} -Messages between Snips and Home Assistant are passed via MQTT. We must tell Home Assistant which [MQTT broker](/docs/mqtt/) to use by adding the following entry to the `configuration.yaml` file: +Messages between Snips and Home Assistant are passed via MQTT. We can either point Snips to the MQTT broker used by Home Assistant, as explained above, or tell Home Assistant which [MQTT broker](/docs/mqtt/) to use by adding the following entry to the `configuration.yaml` file: ```yaml mqtt: @@ -122,7 +115,7 @@ mqtt: port: MQTT_BROKER_PORT ``` -As explained above, Snips by default runs an MQTT broker on port 9898. So if we wish to use this broker, the entry will look as follows: +By default, Snips runs an MQTT broker on port 9898. So if we wish to use this broker, and if Snips and Home Assistant run on the same device, the entry will look as follows: ```yaml mqtt: @@ -130,11 +123,11 @@ mqtt: port: 9898 ``` -Alternatively, MQTT can be configured to bridge messages between servers if using a custom MQTT broker such as `mosquitto`. +Alternatively, MQTT can be configured to bridge messages between servers if using a custom MQTT broker such as [mosquitto](https://mosquitto.org/). ### {% linkable_title Triggering actions %} -In Home Assistant, we trigger actions based on intents produced by Snips using the [`intent_script`](/components/intent_script) component. For instance, the following block handles `ActivateLightColors` intents (included in the Snips IoT intent bundle) to change light colors: +In Home Assistant, we trigger actions based on intents produced by Snips using the [`intent_script`](/components/intent_script) component. For instance, the following block handles a `ActivateLightColor` intent to change light colors: {% raw %} ```yaml @@ -150,9 +143,11 @@ intent_script: ``` {% endraw %} -The variables that can be used in the template are of the form 'slotName = value'. +In the `data_template` block, we have access to special variables, corresponding to the slot names for the intent. In the present case, the `ActivateLightColor` has two slots, `objectLocation` and `objectColor`. -Snips intents that utilize builtin slot types will contain extended information along with the value and can be exposed using this format: +### {% linkable_title Special slots %} + +In the above example, the slots are plain strings. However, when more complex types are used, such as dates or time ranges, they will be transformed to rich Python objects, for example: {% raw %} ```yaml diff --git a/source/_components/switch.fritzdect.markdown b/source/_components/switch.fritzdect.markdown index b0d3b2ee3c..96c46f29e8 100644 --- a/source/_components/switch.fritzdect.markdown +++ b/source/_components/switch.fritzdect.markdown @@ -23,7 +23,7 @@ Supported devices (tested): Supported Firmwares (tested): - FRITZ!OS: 06.80 / FRITZ!DECT: 03.83 -- FRITZ!OS: 06.60 / FRITZ!DECT: 03.83 +- FRITZ!OS: 06.98-51288 (Beta) / FRITZ!DECT: 03.87 To use your AVM FRITZ!DECT switch(es) in your installation, add the following to your `configuration.yaml` file: @@ -41,6 +41,7 @@ Configuration variables: - **password** (*Required*): The password for your Fritz!Box. - **host** (*Optional*): The IP address/hostname of your Fritz!Box. Defaults to `fritz.box`. +It is recommened to create a dedicated user for Home Assistant and only allow access to "Smart Home".

If this component throws an error when starting home-assistant you should check if all actors are plugged in and connected to the FritzBox. Inactive actors that are not deleted from FritzBox configuration might lead to errors. diff --git a/source/_components/vacuum.xiaomi_miio.markdown b/source/_components/vacuum.xiaomi_miio.markdown index b04cfe04f3..03a8b0ecec 100644 --- a/source/_components/vacuum.xiaomi_miio.markdown +++ b/source/_components/vacuum.xiaomi_miio.markdown @@ -174,7 +174,7 @@ To fetch the token follow these instructions depending on your mobile phone plat 2. Enable developer mode, USB debugging and plug the Android phone into the computer. 3. Get ADB e.g. `apt-get install android-tools-adb` or `apt-get install adb` 4. `adb devices` should list your device. Consult ADB manual if necessary. -5. Issue a backup command via adb: `adb backup -noapk com.xiaomi.smarthome -f backup.ab` (set a password if prompted on your phone) +5. Issue a backup command via adb: `adb backup -noapk com.xiaomi.smarthome -f backup.ab` (set a password if prompted on your phone). Some devices may required single quotes in the command `adb backup '-noapk com.xiaomi.smarthome -f backup.ab'` 6. Download the 'ADB Backup Extractor' from [here](https://sourceforge.net/projects/adbextractor/files/latest/download) 7. Extract the data from the backup: `java -jar Android\ Backup\ Utilities/Android\ Backup\ Extractor/android-backup-extractor-20171005-bin/abe.jar unpack backup.ab unpacked.tar` (enter the password, if prompted) 8. Untar the unpacked data: `tar -xvf unpacked.tar` diff --git a/source/_docs/configuration.markdown b/source/_docs/configuration.markdown index 0b7a7138ca..ae5349fe90 100644 --- a/source/_docs/configuration.markdown +++ b/source/_docs/configuration.markdown @@ -11,6 +11,8 @@ footer: true When launched for the first time, Home Assistant will write a default configuration file enabling the web interface and device discovery. It can take up to a minute for your devices to be discovered and appear in the user interface. +The web interface can be found at `http://ip.ad.dre.ss:8123/` - for example if your Home Assistant system has the IP address `192.168.0.40` then you'll find the web interface as `http://192.168.0.40:8123/`. + The location of the folder differs between operating systems: | OS | Path | diff --git a/source/_docs/configuration/entity-registry.markdown b/source/_docs/configuration/entity-registry.markdown new file mode 100644 index 0000000000..7d9369c1f9 --- /dev/null +++ b/source/_docs/configuration/entity-registry.markdown @@ -0,0 +1,54 @@ +--- +layout: page +title: "Entity Registry" +description: "The entity registry contains." +date: 2016-04-20 06:00 +sidebar: true +comments: false +sharing: true +footer: true +--- + +

+This is a new and experimental feature of Home Assistant. +

+ +Starting with version 0.63, Home Assistant keeps a registry of known entities. +The entity registry makes sure that entities get unique identifiers and allow +customizing the identifiers and names of these entities. + +As this is still a very new part of Home Assistant, changes will require a +restart of Home Assistant to take affect. A config user interface will be added +in a future version. + +

+An entity needs to have a unique ID to be registered in the entity registry. +Not all integrations currently provide a unique id for their entities. +

+ +The entity registry is stored in `/entity_registry.yaml`. As a user, +you are unable to add entries, only update them. Here is an example file: + +``` +climate.downstairs_virtual: + platform: nest + unique_id: EPoMyWkpNyoYu3pGlmGxabcdefghijkl + name: Downstairs thermostat +light.study_ceiling: + platform: hue + unique_id: f0:fe:6b:00:14:00:00:00-00 + disabled_by: user +``` + +As a user, you can change the `entity_id` and add the `name` and `disabled_by` +value to each entry. + + - The value of `name` will override the name of the entity as given by the + integration. + + _Added in Home Assistant 0.64._ + - The key `disabled_by` can either be `hass` or `user`. This functionality + is even more experimental than the whole entity registry itself and might + cause integrations to fail and might be removed in the future. + + _Added in Home Assistant 0.64._ diff --git a/source/_docs/configuration/templating.markdown b/source/_docs/configuration/templating.markdown index a0d56a158a..1e26ff126c 100644 --- a/source/_docs/configuration/templating.markdown +++ b/source/_docs/configuration/templating.markdown @@ -43,12 +43,13 @@ script: msg_who_is_home: sequence: - service: notify.notify - message: > - {% raw %}{% if is_state('device_tracker.paulus', 'home') %} - Ha, Paulus is home! - {% else %} - Paulus is at {{ states('device_tracker.paulus') }}. - {% endif %}{% endraw %} + data_template: + message: > + {% raw %}{% if is_state('device_tracker.paulus', 'home') %} + Ha, Paulus is home! + {% else %} + Paulus is at {{ states('device_tracker.paulus') }}. + {% endif %}{% endraw %} ``` [Jinja2](http://jinja.pocoo.org/) supports a wide variety of operations: diff --git a/source/_docs/ecosystem/certificates/lets_encrypt.markdown b/source/_docs/ecosystem/certificates/lets_encrypt.markdown index ee9cb80892..7385496ae3 100644 --- a/source/_docs/ecosystem/certificates/lets_encrypt.markdown +++ b/source/_docs/ecosystem/certificates/lets_encrypt.markdown @@ -113,7 +113,7 @@ static routers=192.168.0.1 <---- Your router's IP address static domain_name_servers=192.168.0.1 <---- Your router's IP address ``` -It is important to note that the first three bits of your static IP address and your router's IP address should be the same, eg: +It is important to note that the first three bytes of your static IP address and your router's IP address should be the same, eg: ```text Router: 192.168.0.1 @@ -538,13 +538,13 @@ In your `configuration.yaml` add the following automation, adding your preferred automation: - alias: 'SSL expiry notification' trigger: - platform: numeric_state - entity_id: sensor.ssl_cert_expiry - below: 21 - action: - service: notify.[your_notification_preference] - data: - message: 'Warning - SSL certificate expires in 21 days and has not been automatically renewed' + platform: numeric_state + entity_id: sensor.ssl_cert_expiry + below: 21 + action: + service: notify.[your_notification_preference] + data: + message: 'Warning - SSL certificate expires in 21 days and has not been automatically renewed' ``` If you receive this warning notification, follow the steps for a manual update from step 8. Any error messages received at that point can be googled and resolved. If the manual update goes without a hitch there may be something wrong with your chosen method for automatic updates, and you can start troubleshooting from there. diff --git a/source/_docs/ecosystem/certificates/tls_self_signed_certificate.markdown b/source/_docs/ecosystem/certificates/tls_self_signed_certificate.markdown index 53736e0693..d7c145fe8b 100644 --- a/source/_docs/ecosystem/certificates/tls_self_signed_certificate.markdown +++ b/source/_docs/ecosystem/certificates/tls_self_signed_certificate.markdown @@ -12,7 +12,7 @@ redirect_from: /cookbook/tls_self_signed_certificate/ If your Home Assistant instance is only accessible from your local network you can still protect the communication between your browsers and the frontend with SSL/TLS. [Let's encrypt]({{site_root}}/blog/2015/12/13/setup-encryption-using-lets-encrypt/) will only work if you have a DNS entry and remote access is allowed. -The solution is to use a self-signed certificate. As you most likely don't have a certification authority (CA) your browser will conplain about the security. If you have a CA then this will not be an issue. +The solution is to use a self-signed certificate. As you most likely don't have a certification authority (CA) your browser will complain about the security. If you have a CA then this will not be an issue. To create a certificate locally, you need the [OpenSSL](https://www.openssl.org/) command-line tool. diff --git a/source/_docs/installation/updating.markdown b/source/_docs/installation/updating.markdown index a23aa31b27..012a5a5c08 100644 --- a/source/_docs/installation/updating.markdown +++ b/source/_docs/installation/updating.markdown @@ -14,7 +14,7 @@ redirect_from: /getting-started/updating/ The upgrade process differs depending on the installation you have, so please review the documentation that is specific to your install [Hass.io](/hassio/), [HASSbian](/docs/hassbian/common-tasks/#update-home-assistant), [Vagrant](/docs/installation/vagrant/), or [Virtualenv](/docs/installation/virtualenv/#upgrading-home-assistant).

-View what's new in the latest version and potential impacts on your system [here](https://github.com/home-assistant/home-assistant/releases). +Check what's new in the latest version and potentially impacts your system in [Home Assistant release notes](https://github.com/home-assistant/home-assistant/releases). It is good practice to review these release notes and pay close attention to the **Breaking Changes** that are listed there. If you haven't done an update for a while, you should also check previous release notes as they can also contain relevant **Breaking Changes**. **Breaking Changes** may require configuration updates for your components. If you missed this and Home Assistant refuses to start, check `/home-assistant.log` for details about broken components. The default way to update Home Assistant to the latest release, when available, is: diff --git a/source/_docs/mqtt/broker.markdown b/source/_docs/mqtt/broker.markdown index a5f9e9ba70..74e45a91d0 100644 --- a/source/_docs/mqtt/broker.markdown +++ b/source/_docs/mqtt/broker.markdown @@ -99,14 +99,14 @@ tls_insecure: type: boolean tls_version: required: false - description: "TLS/SSL protocol version to use. Available options are: `auto`, `1.0`, `1.1`, `1.2`. Defaults to `auto`." + description: "TLS/SSL protocol version to use. Available options are: `'auto'`, `'1.0'`, `'1.1'`, `'1.2'`. Make sure to put quotes around the value. Defaults to `'auto'`." type: string {% endconfiguration %}

There is an issue with the Mosquitto package included in Ubuntu 14.04 LTS. Specify `protocol: 3.1` in your MQTT configuration to work around this issue. -If you get this error `AttributeError: module 'ssl' has no attribute 'PROTOCOL_TLS'` then you need to set `tls_version: 1.2`. +If you get this error `AttributeError: module 'ssl' has no attribute 'PROTOCOL_TLS'` then you need to set `tls_version: '1.2'`.

diff --git a/source/_docs/z-wave/control-panel.markdown b/source/_docs/z-wave/control-panel.markdown index 06c9bd741b..400a6b6d4c 100644 --- a/source/_docs/z-wave/control-panel.markdown +++ b/source/_docs/z-wave/control-panel.markdown @@ -43,6 +43,10 @@ Here is where you [include and exclude](/docs/z-wave/adding/) Z-Wave devices fro * **Test Node** sends no_op test messages to the node. This could in theory bring back a dead node. +

+Since 0.63 and the new experimental [entity registry](https://home-assistant.io/docs/configuration/entity-registry/) **Rename Node** no longer changes the entity id for anything other than the `zwave.` entity for the node (it does change, the default *friendly_name* and *old_entity_id* and *new_entity_id* attributes for all the entities). See [this issue](https://github.com/home-assistant/home-assistant/issues/12430). +

+

Battery powered devices need to be awake before you can use the Z-Wave control panel to update their settings. How to wake your device is device specific, and some devices will stay awake for only a couple of seconds. Please refer to the manual of your device for more details.

@@ -130,6 +134,20 @@ If your node has user codes, you can set and delete them. The format is raw hex Some non compliant device like tag readers, have implemented to use raw hex code. Please refer to a hex ascii table to set your code. Example: http://www.asciitable.com/ +Here is a small Python program than will take numbers on the command line and print the correct sequence for compliant devices: + +```python +#! /usr/bin/python3 +import sys + +translations = {} + +for x in range(0, 10): + translations["%s" % x] = "\\x3%s" % x + +for c in sys.argv[1]: + print(translations[c], end='') +``` ## {% linkable_title OZW Log %} diff --git a/source/_docs/z-wave/controllers.markdown b/source/_docs/z-wave/controllers.markdown index 941f8d1eea..7a0952abcc 100644 --- a/source/_docs/z-wave/controllers.markdown +++ b/source/_docs/z-wave/controllers.markdown @@ -27,7 +27,7 @@ You need to have a [supported Z-Wave USB stick or module](https://github.com/Ope | ZWave.me UZB1 | ✓ | | |

- If you're using Hass.io, it's recommended to use a USB stick, not a module. Passing a module through Docker is more complicated than passing a USB stick through. + If you're using Hass.io or running HASS in a Docker container, it's recommended to use a USB stick, not a module. Passing a module through Docker is more complicated than passing a USB stick through.

## {% linkable_title Stick Alternatives %} diff --git a/source/_docs/z-wave/installation.markdown b/source/_docs/z-wave/installation.markdown index 7b40c12bb4..0319554707 100644 --- a/source/_docs/z-wave/installation.markdown +++ b/source/_docs/z-wave/installation.markdown @@ -53,7 +53,7 @@ usb_path: type: string default: /zwaveusbstick network_key: - description: The 16-byte network key in the form `"0x01, 0x02..."` used in order to connect securely to compatible devices. + description: The 16-byte network key in the form `"0x01, 0x02..."` used in order to connect securely to compatible devices. It is recommended that a network key is configured as security enabled devices may not function correctly if they are not added securely. required: false type: string default: None @@ -82,7 +82,7 @@ new_entity_ids: required: false type: boolean default: True -device_config: +device_config / device_config_domain / device_config_glob: description: This attribute contains node-specific override values. (For releases prior to 0.39 this variable is called **customize**) See [Customizing devices and services](/docs/configuration/customizing-devices/) for the format. required: false type: string, list diff --git a/source/_faq/ha-vs-hassio.markdown b/source/_faq/ha-vs-hassio.markdown index a331e034aa..41e373cfee 100644 --- a/source/_faq/ha-vs-hassio.markdown +++ b/source/_faq/ha-vs-hassio.markdown @@ -14,3 +14,4 @@ Home Assistant is a Python program, in simple words. It can be run various opera [Hass.io](/hassio/) is a combination of Home Assistant and tools which allows one to run it easily on a Raspberry Pi and other platforms without setting up an operating system first. Hass.io is an all-in one-solution and has a management user interface that can be used from the Home Assistant frontend. This interface is not present in a standalone setup of Home Assistant. +Be aware that add-ons are only available in Hass.io, due to the way Hass.io is installed. diff --git a/source/_includes/asides/cloud_navigation.html b/source/_includes/asides/cloud_navigation.html new file mode 100644 index 0000000000..93a7baf70e --- /dev/null +++ b/source/_includes/asides/cloud_navigation.html @@ -0,0 +1,14 @@ +
+

About Home Assistant

+
    +
  • + The Home Assistant Cloud is a cloud-based service provided to supporters of the Home Assistant project. +
  • +
  • + {% active_link /cloud/ Introduction %} +
  • +
  • + {% active_link /cloud/ Amazon Alexa %} +
  • +
+ diff --git a/source/_includes/asides/docs_navigation.html b/source/_includes/asides/docs_navigation.html index add2fd1bbc..b956865e7a 100644 --- a/source/_includes/asides/docs_navigation.html +++ b/source/_includes/asides/docs_navigation.html @@ -3,7 +3,7 @@

Topics