Merge branch 'current' into next

This commit is contained in:
Franck Nijhof 2019-12-19 11:30:26 +01:00
commit 44c5382089
No known key found for this signature in database
GPG Key ID: D62583BA8AB11CA3
59 changed files with 600 additions and 358 deletions

View File

@ -101,8 +101,8 @@ social:
# Home Assistant release details
current_major_version: 0
current_minor_version: 103
current_patch_version: 0
date_released: 2019-12-11
current_patch_version: 1
date_released: 2019-12-18
# Either # or the anchor link to latest release notes in the blog post.
# Must be prefixed with a # and have double quotes around it.

View File

@ -66,4 +66,4 @@ whitelist_external_dirs:
### Reload Core Service
Home Assistant offers a service to reload the core configuration while Home Assistant is running called `homeassistant.reload_core_config`. This allows you to change any of the above sections and see it being applied without having to restart Home Assistant. To call this service, go to the "Service" tab under Developer Tools, select the `homeassistant.reload_core_config` service and click the "CALL SERVICE" button. Alternatively, you can press the "Reload Core" button under Configuration > Server Control.
Home Assistant offers a service to reload the core configuration while Home Assistant is running called `homeassistant.reload_core_config`. This allows you to change any of the above sections and see it being applied without having to restart Home Assistant. To call this service, go to the "Service" tab under Developer Tools, select the `homeassistant.reload_core_config` service and click the "CALL SERVICE" button. Alternatively, you can press the "Reload Location & Customizations" button under Configuration > Server Control.

View File

@ -137,7 +137,7 @@ homeassistant:
### Reloading customize
Home Assistant offers a service to reload the core configuration while Home Assistant is running called `homeassistant.reload_core_config`. This allows you to change your customize section and see it being applied without having to restart Home Assistant. To call this service, go to the "Service" tab under Developer Tools, select the `homeassistant.reload_core_config` service and click the "CALL SERVICE" button. Alternatively, you can press the "Reload Core" button under Configuration > Server Control.
Home Assistant offers a service to reload the core configuration while Home Assistant is running called `homeassistant.reload_core_config`. This allows you to change your customize section and see it being applied without having to restart Home Assistant. To call this service, go to the "Service" tab under Developer Tools, select the `homeassistant.reload_core_config` service and click the "CALL SERVICE" button. Alternatively, you can press the "Reload Location & Customizations" button under Configuration > Server Control.
<div class='note warning'>
New customize information will be applied the next time the state of the entity gets updated.

View File

@ -292,7 +292,7 @@ Closest to some entity:
{{ closest(states.zone.school, ['group.children', states.device_tracker]) }}
```
It will also work as a filter over a iterable group of entities or groups:
It will also work as a filter over an iterable group of entities or groups:
```text
Closest out of given entities:

View File

@ -4,15 +4,15 @@ description: "Common problems with tweaking your configuration and their solutio
redirect_from: /getting-started/troubleshooting-configuration/
---
It can happen that you run into trouble while configuring Home Assistant. Perhaps a integration is not showing up or is acting strangely. This page will discuss a few of the most common problems.
It can happen that you run into trouble while configuring Home Assistant. Perhaps an integration is not showing up or is acting strangely. This page will discuss a few of the most common problems.
Before we dive into common issues, make sure you know where your configuration directory is. Home Assistant will print out the configuration directory it is using when starting up.
Whenever a integration or configuration option results in a warning, it will be stored in `home-assistant.log` in the configuration directory. This file is reset on start of Home Assistant.
Whenever an integration or configuration option results in a warning, it will be stored in `home-assistant.log` in the configuration directory. This file is reset on start of Home Assistant.
### My integration does not show up
When a integration does not show up, many different things can be the case. Before you try any of these steps, make sure to look at the `home-assistant.log` file and see if there are any errors related to your integration you are trying to set up.
When an integration does not show up, many different things can be the case. Before you try any of these steps, make sure to look at the `home-assistant.log` file and see if there are any errors related to your integration you are trying to set up.
If you have incorrect entries in your configuration files you can use the [`check_config`](/docs/tools/check_config/) script to assist in identifying them: `hass --script check_config`. If you need to provide the path for your configuration you can do this using the `-c` argument like this: `hass --script check_config -c /path/to/your/config/dir`.

View File

@ -58,7 +58,7 @@ Here is an example that will ignore everything but your YAML configuration.
```bash
# Example .gitignore file for your config dir.
# A * ensures that everything will be ignored.
# An * ensures that everything will be ignored.
*
# You can whitelist files/folders with !, these will not be ignored.

View File

@ -4,16 +4,21 @@ description: "Configure a Certificate Authority and self-signed certificate to u
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/2017/09/27/effortless-encryption-with-lets-encrypt-and-duckdns/) will only work if you have a DNS entry and remote access is allowed.
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](/blog/2017/09/27/effortless-encryption-with-lets-encrypt-and-duckdns/) 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 complain about the security. If you have a CA then this will not be an issue.
The solution is to use a self-signed certificate. Please note, however, that after you have completed these steps, your browser will complain about the security of the certificate as it was not issued by a trusted authority.
* This is due to self-signed certificates having not been issued by a certification authority ([`CA`](https://cheapsslsecurity.com/blog/what-is-a-certificate-authority-ca/)). If you have your own CA, then this will not be an issue.
* A fantastic workaround for this, while keeping your instance isolated securely off the Internet, is to use a [`Certificate for SSL/TLS via domain ownership`](/docs/ecosystem/certificates/tls_domain_certificate/).
If you don't mind the browser warnings and simply want SSL/TLS encryption and therefore have decided to use a self-signed certificate permanently or temporarily, read on!
If you use Chrome browser version 58 or above and/or **don't want to have issues regarding a non-trusted CA or CN (Common Name)**, follow this full tutorial: [Create Root Certificate Authority and self-signed certificate for your Home Assistant. Compatible with Chrome browser > version 58](https://gist.github.com/tiagofreire-pt/4920be8d03a3dfa8201c6afedd00305e). Otherwise, follow this:
To create a certificate locally, you need the [OpenSSL](https://www.openssl.org/) command-line tool.
Change to your Home Assistant [configuration directory](/getting-started/configuration/) like `~/.homeassistant`. This will make it easier to backup your certificate and the key. Run the command shown below.
Change to your Home Assistant [configuration directory](/getting-started/configuration/) like `~/.homeassistant`. This will make it easier to backup your certificate and the key. Run the command shown below.
The certificate **must** be `.pem` extension.
@ -63,16 +68,17 @@ sudo chmod 600 fullchain.pem privkey.pem
A tutorial "[Working with SSL Certificates, Private Keys and CSRs](https://www.digitalocean.com/community/tutorials/openssl-essentials-working-with-ssl-certificates-private-keys-and-csrs)" could give you some insight about special cases.
### iOS and macOS Specific Requirements
## iOS and macOS Specific Requirements
### iOS
#### iOS
If you are going to use this certificate with the iOS app, you need to ensure you complete **all** fields during the certificate creation process, then:
* Send **only** the `fullchain.pem` file to the iOS device, using airdrop or other transfer method.
* Open the `.pem` file on the iOS device, follow the prompts to trust and install it.
* If you are using iOS 10.3 or newer then [additional steps](https://support.apple.com/en-us/HT204477) are needed.
#### iOS 13 and macOS 10.15
### iOS 13 and macOS 10.15
There are [new security requirements](https://support.apple.com/en-us/HT210176) for TLS server certificates in iOS 13 and macOS 10.15. To summarize:

View File

@ -130,9 +130,9 @@ server {
# These shouldn't need to be changed
listen [::]:443 default_server ipv6only=off; # if your nginx version is >= 1.9.5 you can also add the "http2" flag here
listen [::]:443 ssl default_server ipv6only=off; # if your nginx version is >= 1.9.5 you can also add the "http2" flag here
add_header Strict-Transport-Security "max-age=31536000; includeSubdomains";
ssl on;
# ssl on; # Uncomment if you are using nginx < 1.15.0
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
ssl_prefer_server_ciphers on;

View File

@ -4,9 +4,9 @@ description: "Android/iOS instructions to add Home Assistant to your homescreen.
redirect_from: /getting-started/mobile/
---
Home Assistant has [a companion apps for Android and iOS](/docs/ecosystem/ios/).
Home Assistant has [a companion app for both Android and iOS](/docs/ecosystem/ios/).
On both Android and iOS, you can add the Home Assistant "web app" to your homescreen as if it was native (Home Assistant leverages the W3C [manifest.json](https://w3c.github.io/manifest/) support).
As an alternative to the iOS and Android companion apps, you can add the Home Assistant "web app" to your homescreen as if it was native (Home Assistant leverages the W3C [manifest.json](https://w3c.github.io/manifest/) support).
### Android

View File

@ -43,7 +43,7 @@ NUC i7/i9 | Pure power, you should not have *any* performance issues
## Recommended
These install options are fully supported by Home Assistant's documentation. For example, if a integration requires that you install something to make it work on one of these methods then the integration page will document the steps required.
These install options are fully supported by Home Assistant's documentation. For example, if an integration requires that you install something to make it work on one of these methods then the integration page will document the steps required.
<div class='note'>

View File

@ -224,7 +224,7 @@ sudo iocage console hass
```bash
ls /dev/cu*
```
This should ouput the following
This should output the following
```bash
/dev/cuau0 /dev/cuaU0
```

View File

@ -12,6 +12,8 @@ It's recommended when installing Python packages that you use a [virtual environ
This is a generic guide for running Home Assistant under Python. We recommend to use [our recommended installation guides](/docs/installation/#recommended). The steps below may be shorter but some users find difficulty when applying updates and may run into issues.
Before you begin the guide below, ensure that you have a *so-called standard* build environment that includes things like `make`, `gcc`, `python3`, including Python 3 `setuptools` and `pip` modules. Less obvious is the need to install `openssl-dev` (for opensslv.h) and `libffi-dev` (for cffi.h) for things to build later on.
</div>
{% comment %}

View File

@ -236,6 +236,8 @@ The following software has built-in support for MQTT discovery:
### Examples
#### Motion detection (binary sensor)
A motion detection device which can be represented by a [binary sensor](/integrations/binary_sensor.mqtt/) for your garden would send its configuration as JSON payload to the Configuration topic. After the first message to `config`, then the MQTT messages sent to the state topic will update the state in Home Assistant.
- Configuration topic: `homeassistant/binary_sensor/garden/config`
@ -259,6 +261,18 @@ Delete the sensor by sending an empty message.
$ mosquitto_pub -h 127.0.0.1 -p 1883 -t "homeassistant/binary_sensor/garden/config" -m ''
```
#### Sensors with multiple values
Setting up a sensor with multiple measurement values requires multiple consecutive configuration topic submissions.
- Configuration topic no1: `homeassistant/sensor/sensorBedroomT/config`
- Configuration payload no1: `{"device_class": "temperature", "name": "Temperature", "state_topic": "homeassistant/sensor/sensorBedroom/state", "unit_of_measurement": "°C", "value_template": "{% raw %}{{ value_json.temperature}}{% endraw %}" }`
- Configuration topic no2: `homeassistant/sensor/sensorBedroomH/config`
- Configuration payload no2: `{"device_class": "humidity", "name": "Humidity", "state_topic": "homeassistant/sensor/sensorBedroom/state", "unit_of_measurement": "%", "value_template": "{% raw %}{{ value_json.humidity}}{% endraw %}" }`
- Common state payload: `{ "temperature": 23.20, "humidity": 43.70 }`
#### Switches
Setting up a switch is similar but requires a `command_topic` as mentioned in the [MQTT switch documentation](/integrations/switch.mqtt/).
- Configuration topic: `homeassistant/switch/irrigation/config`
@ -276,27 +290,45 @@ Set the state.
$ mosquitto_pub -h 127.0.0.1 -p 1883 -t "homeassistant/switch/irrigation/set" -m ON
```
Setting up a sensor with multiple measurement values requires multiple consecutive configuration topic submissions.
- Configuration topic no1: `homeassistant/sensor/sensorBedroomT/config`
- Configuration payload no1: `{"device_class": "temperature", "name": "Temperature", "state_topic": "homeassistant/sensor/sensorBedroom/state", "unit_of_measurement": "°C", "value_template": "{% raw %}{{ value_json.temperature}}{% endraw %}" }`
- Configuration topic no2: `homeassistant/sensor/sensorBedroomH/config`
- Configuration payload no2: `{"device_class": "humidity", "name": "Humidity", "state_topic": "homeassistant/sensor/sensorBedroom/state", "unit_of_measurement": "%", "value_template": "{% raw %}{{ value_json.humidity}}{% endraw %}" }`
- Common state payload: `{ "temperature": 23.20, "humidity": 43.70 }`
#### Abbreviating topic names
Setting up a switch using topic prefix and abbreviated configuration variable names to reduce payload length.
- Configuration topic: `homeassistant/switch/irrigation/config`
- Command topic: `homeassistant/switch/irrigation/set`
- State topic: `homeassistant/switch/irrigation/state`
- Payload: `{"~": "homeassistant/switch/irrigation", "name": "garden", "cmd_t": "~/set", "stat_t": "~/state"}`
- Configuration payload: `{"~": "homeassistant/switch/irrigation", "name": "garden", "cmd_t": "~/set", "stat_t": "~/state"}`
Setting up a climate integration (heat only) with abbreviated configuration variable names to reduce payload length.
#### Lighting
Setting up a [light that takes JSON payloads](/integrations/light.mqtt/#json-schema), with abbreviated configuration variable names:
- Configuration topic: `homeassistant/light/kitchen/config`
- Command topic: `homeassistant/light/kitchen/set`
- State topic: `homeassistant/light/kitchen/state`
- Example state payload: `{"state": "ON", "brightness": 255}`
- Configuration payload:
```json
{
"~": "homeassistant/light/kitchen",
"name": "Kitchen",
"unique_id": "kitchen_light",
"cmd_t": "~/set",
"stat_t": "~/state",
"schema": "json",
"brightness": true
}
```
#### Climate control
Setting up a climate integration (heat only):
- Configuration topic: `homeassistant/climate/livingroom/config`
- Configuration payload:
```yaml
```json
{
"name":"Livingroom",
"mode_cmd_t":"homeassistant/climate/livingroom/thermostatModeCmd",
@ -320,7 +352,7 @@ Setting up a climate integration (heat only) with abbreviated configuration vari
- State topic: `homeassistant/climate/livingroom/state`
- State payload:
```yaml
```json
{
"mode":"off",
"target_temp":"21.50",

View File

@ -4,13 +4,13 @@ description: "Documentation about all available conditions."
redirect_from: /getting-started/scripts-conditions/
---
Conditions can be used within a script or automation to prevent further execution. When a condition does not return true, the script or automation will stop executing. A condition will look at the system right now. For example a condition can test if a switch is currently turned on or off.
Conditions can be used within a script or automation to prevent further execution. When a condition does not return true, the script or automation stops executing. A condition will look at the system at that moment. For example, a condition can test if a switch is currently turned on or off.
Unlike a trigger, which is always `or`, conditions are `and` by default - all conditions have to be true.
### AND condition
Test multiple conditions in 1 condition statement. Passes if all embedded conditions are valid.
Test multiple conditions in one condition statement. Passes if all embedded conditions are valid.
```yaml
condition:
@ -24,7 +24,7 @@ condition:
below: 20
```
If you do not want to combine AND and OR conditions, you can also just list them sequentially.
If you do not want to combine AND and OR conditions, you can list them sequentially.
The following configuration works the same as the one listed above:
@ -42,7 +42,7 @@ Currently you need to format your conditions like this to be able to edit them u
### OR condition
Test multiple conditions in 1 condition statement. Passes if any embedded condition is valid.
Test multiple conditions in one condition statement. Passes if any embedded condition is valid.
```yaml
condition:
@ -58,7 +58,7 @@ condition:
### MIXED AND and OR conditions
Test multiple AND and OR conditions in 1 condition statement. Passes if any embedded conditions is valid.
Test multiple AND and OR conditions in one condition statement. Passes if any embedded condition is valid.
This allows you to mix several AND and OR conditions together.
```yaml
@ -80,7 +80,7 @@ condition:
### Numeric state condition
This type of condition attempts to parse the state of specified entity as a number and triggers if the value matches the thresholds.
This type of condition attempts to parse the state of the specified entity as a number, and triggers if the value matches the thresholds.
If both `below` and `above` are specified, both tests have to pass.
@ -134,8 +134,8 @@ condition:
#### Sun elevation condition
The sun elevation can be used to test if the sun has set or risen, it is dusk, it is night etc. when a trigger occurs.
For an in depth explanation of sun elevation see [sun elevation trigger][sun_elevation_trigger].
The sun elevation can be used to test if the sun has set or risen, it is dusk, it is night, etc. when a trigger occurs.
For an in-depth explanation of sun elevation, see [sun elevation trigger][sun_elevation_trigger].
[sun_elevation_trigger]: /docs/automation/trigger/#sun-elevation-trigger
@ -162,9 +162,9 @@ The sun condition can also test if the sun has already set or risen when a trigg
[sun_trigger]: /docs/automation/trigger/#sun-trigger
<div class='note warning'>
The sunset/sunrise conditions do not work in locations inside the polar circles, and also not in locations with highly skewed local time zone.
The sunset/sunrise conditions do not work in locations inside the polar circles, and also not in locations with a highly skewed local time zone.
It is advised to use conditions evaluating the solar elevation instead of the before/after sunset/sunrise conditions.
In those cases it is advised to use conditions evaluating the solar elevation instead of the before/after sunset/sunrise conditions.
</div>
```yaml
@ -195,13 +195,13 @@ condition:
after: sunrise
```
A visual timeline is provided below showing an example of when these conditions will be true. In this chart, sunrise is at 6:00, and sunset is at 18:00 (6:00 PM). The green areas of the chart indicate when the specified conditions will be true.
A visual timeline is provided below showing an example of when these conditions are true. In this chart, sunrise is at 6:00, and sunset is at 18:00 (6:00 PM). The green areas of the chart indicate when the specified conditions are true.
<img src='/images/docs/scripts/sun-conditions.svg' alt='Graphic showing an example of sun conditions' />
### Template condition
The template condition will test if the [given template][template] renders a value equal to true. This is achieved by having the template result in a true boolean expression or by having the template render 'true'.
The template condition tests if the [given template][template] renders a value equal to true. This is achieved by having the template result in a true boolean expression or by having the template render 'true'.
```yaml
condition:
@ -216,7 +216,7 @@ Within an automation, template conditions also have access to the `trigger` vari
### Time condition
The time condition can test if it is after a specified time, before a specified time or if it is a certain day of the week
The time condition can test if it is after a specified time, before a specified time or if it is a certain day of the week.
```yaml
condition:
@ -241,7 +241,7 @@ A better weekday condition could be by using the [Workday Binary Sensor](/integr
### Zone condition
Zone conditions test if an entity is in a certain zone. For zone automation to work, you need to have setup a device tracker platform that supports reporting GPS coordinates. Currently this is limited to the [OwnTracks platform](/integrations/owntracks/) and the [iCloud platform](/integrations/icloud/).
Zone conditions test if an entity is in a certain zone. For zone automation to work, you need to have set up a device tracker platform that supports reporting GPS coordinates. Currently this is limited to the [OwnTracks platform](/integrations/owntracks/) and the [iCloud platform](/integrations/icloud/).
```yaml
condition:

View File

@ -5,7 +5,7 @@ description: "Extended instructions how to setup Z-Wave."
## Supported Z-Wave USB Sticks & Hardware Modules
You need to have a compatible Z-Wave stick or module installed. This needs to be a *static controller*, which most Z-Wave sticks and modules will be. If yours is a *bridge* device then it won't work with [OpenZWave](http://openzwave.com/), which is what provides Home Assistant's Z-Wave capabilities. The following devices have been confirmed to work:
You need to have a compatible Z-Wave stick or module installed. This needs to be a *static controller*, which most Z-Wave sticks and modules will be. If yours is a *bridge* device then it won't work with [OpenZWave](http://openzwave.com/), which is what provides Home Assistant's Z-Wave capabilities. USB sticks using the new 700 series Z-Wave platform are not compatible. The following devices have been confirmed to work:
<div class='note'>

View File

@ -4,6 +4,6 @@ description: "My integration does not show up"
ha_category: Configuration
---
When a integration does not show up, many different things can be the case. Before you try any of these steps, make sure to look at the `home-assistant.log` file and see if there are any errors related to your integration you are trying to set up.
When an integration does not show up, many different things can be the case. Before you try any of these steps, make sure to look at the `home-assistant.log` file and see if there are any errors related to your integration you are trying to set up.
If you have incorrect entries in your configuration files you can use the `check_config` script to assist in identifying them: `hass --script check_config`.

View File

@ -48,7 +48,7 @@ sandbox:
The APNS platform will register two services, `notify.NOTIFIER_NAME` and `apns.apns_NOTIFIER_NAME`.
### notify.apns_NOTIFIER_NAME
### apns.apns_NOTIFIER_NAME
This service will register device IDs with Home Assistant. In order to receive a notification a device must be registered. The app on the device can use this service to send an ID to Home Assistant during startup, the ID will be stored in `[NOTIFIER_NAME]_apns.yaml`.

View File

@ -167,7 +167,7 @@ sequence:
### Arm Blink When Away
This example automation will arm your blink sync module to detect motion on any of your blink cameras that have motion detection enabled. By default, Blink enables motion detection on all cameras so, unless you've changed anything in your app, you're all set. If you want to manually enable motion detection for individual cameras, you can utilize the [appropriate camera service](/integrations/camera#service-enable_motion_detection) but pelase note that motion will only be captured if the sync module is armed.
This example automation will arm your blink sync module to detect motion on any of your blink cameras that have motion detection enabled. By default, Blink enables motion detection on all cameras so, unless you've changed anything in your app, you're all set. If you want to manually enable motion detection for individual cameras, you can utilize the [appropriate camera service](/integrations/camera#service-enable_motion_detection) but please note that motion will only be captured if the sync module is armed.
Here, this example assumes your blink module is named `My Sync Module` and that you have [device trackers](/integrations/device_tracker) set up for presence detection.

View File

@ -12,7 +12,7 @@ The `google` calendar platform allows you to connect to your
[Google Calendars](https://calendar.google.com) and generate binary sensors.
The sensors created can trigger based on any event on the calendar or only for
matching events. When you first setup this integration it will generate a new
configuration file `google_calendars.yaml` that will contain information about
configuration file `google_calendars.yaml` in your config directory that will contain information about
all of the calendars you can see.
It also exposes a service to add an event to one of your Google Calendars.
@ -23,15 +23,15 @@ Generate a Client ID and Client Secret on
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. Under APIs & Services (left sidebar) > Credentials, click on the tab 'OAuth consent screen'.
1. Under APIs & Services (left sidebar) > Credentials, click on the menu item, 'OAuth consent screen'.
1. Set the 'Application Name' (the name of the application asking for consent) to anything you want. We suggest "Home-Assistant".
1. Save this page. You don't have to fill out anything else there.
1. Under APIs & Services > Credentials, click 'Create credentials' > OAuth client ID.
1. Set the Application type to 'Other' and give this credential set a name then click 'Create'.
1. Copy the client ID and secret to a text editor temporarily as you will need to put these in your `configuration.yaml` file.
1. Under APIs and Services > Library, search for "Google Calendar API" and enable it if it isn't already enabled automatically through this process.
1. Save this page. You don't have to fill out anything else here.
1. Click on the menu item, Credentials, then click 'Create credentials' > OAuth client ID.
1. Set the Application type to 'Other' and give this credential set a name (like "Home Assistant Credentials") then click 'Create'.
1. Copy the client ID and client secret from the page that follows into a text editor temporarily as you will need to put these in your `configuration.yaml` file.
1. Click on the menu item, Library, then search for "Google Calendar API" and enable it (if it isn't already enabled automatically through this process).
If you will be adding more scopes than just the "Google Calendar API" to the OAuth for this application, you will need to delete your token file. You will lose your refresh token due to the re-authenticating to add more API access. It's recommended to use different authorizations for different pieces of Google.
If you will later be adding more scopes than just the "Google Calendar API" to the OAuth for this application, you will need to delete your token file under your Home Assistant Profile. You will lose your refresh token due to the re-authenticating to add more API access. It's recommended to use different authorizations for different pieces of Google.
## Configuration
@ -47,11 +47,11 @@ google:
{% configuration %}
client_id:
description: Use the value you generated in the Prerequisites stage.
description: Use the client ID you generated in the Prerequisites stage.
required: true
type: string
client_secret:
description: Use the value you generated in the Prerequisites stage.
description: Use the client secret you generated in the Prerequisites stage.
required: true
type: string
track_new_calendar:
@ -63,13 +63,8 @@ track_new_calendar:
default: true
{% endconfiguration %}
The next steps will require you to have Home Assistant running.
After you have it running complete the Google authentication that pops up in notification (the little bell icon in the lower left corner).
It will give you a URL and a code to enter. This will grant your Home Assistant
service access to all the Google Calendars that the account you
authenticate with can read. This is a Read-Only view of these calendars.
The next time you run or restart Home Assistant, you should find a new notification (the little bell icon in the lower left corner). Click on that notification it will give you a link and an authentication code. Click on that link to open a Google website where you should enter the code found in the notification. This will grant your Home Assistant service read-only access to all the Google Calendars that the account you
authenticate with can read.
## Calendar Configuration

View File

@ -123,7 +123,7 @@ action_topic:
type: string
action_template:
description: A template to render the value received on the `action_topic` with.
requred: false
required: false
type: template
temperature_command_topic:
description: The MQTT topic to publish commands to change the target temperature.

View File

@ -7,13 +7,13 @@ ha_category:
ha_release: 0.74
---
With the `cloudflare` integration you can keep your Cloudflare records up to date.
With the `cloudflare` integration, you can keep your Cloudflare records up to date.
The integration will run every hour, but can also be started manually by using the service `cloudflare.update_records` under services.
The integration runs every hour, but can also be started manually by using the service `cloudflare.update_records` under services.
## Setup
You will find your global API key in your Cloudflare account settings.
You can find your global API key in your Cloudflare account settings.
## Configuration
@ -26,7 +26,7 @@ cloudflare:
api_key: YOUR_GLOBAL_API_KEY
zone: EXAMPLE.COM
records:
- bin
- ha
- www
```
@ -40,15 +40,79 @@ api_key:
required: true
type: string
zone:
description: The DNS zone you want to update.
description: The DNS zone (domain) you want to update.
required: true
type: string
records:
description: A list of records you want to update.
description: A list of records (subdomains) you want to update.
required: true
type: list
{% endconfiguration %}
## Additional information
### Usage of external service
This platform uses the API from [ipify.org](https://www.ipify.org/) to set the public IP address.
For SSH usage (according to [this](https://blog.cloudflare.com/cloudflare-now-supporting-more-ports/) source), you need to connect directly to your server (bypassing Cloudflare). To do that create a `CNAME` DNS record, e.g., `ssh.example.com`, with proxy status as "DNS only" (to do that click on orange icon, it will change color to gray) and then connect to `ssh.example.com` using your server SSH port.
### API Key
Please note that the `api_key` is the [global API key](https://support.cloudflare.com/hc/en-us/articles/200167836-Managing-API-Tokens-and-Keys#12345682) of your Cloudflare account (not the API Token).
### Home Assistant Companion App
If you would like to use [iOS App](https://companion.home-assistant.io/) via Cloudflare set **Minimum TLS version as 1.2**, in order to do that, do the following:
1. Login to your [Cloudflare](https://dash.cloudflare.com/) account.
2. Choose your domain.
3. Click on the `SSL/TLS` icon.
4. Go to tab `Edge Certificates`.
5. Find `Minimum TLS Version` and set it to **1.2**.
Other settings should not cause any issues.
### SSH over Cloudflare
For SSH usage (according to [this](https://blog.cloudflare.com/cloudflare-now-supporting-more-ports/) source), you need to connect directly to your server (bypassing Cloudflare). To do that, create a `CNAME` DNS record, e.g., `ssh.example.com`, with proxy status as "DNS only" (to do that click on orange icon, it will change color to gray) and then connect to `ssh.example.com` using your server SSH port.
### Using Cloudflare domain only for Home Assistant
If you want to update just a main domain, place in the records list only your domain, e.g., `example.com`. It will update your `A` DNS record with your IP every hour.
```yaml
# Example configuration.yaml entry for one domain
cloudflare:
email: YOUR_EMAIL_ADDRESS
api_key: YOUR_GLOBAL_API_KEY
zone: EXAMPLE.COM
records:
- EXAMPLE.COM
```
#### The minimum DNS record settings are (if you have set up https already):
To redirect from your domain to the IP address of your Home Assistant server set this DNS record:
```text
Type: A
Name: @
IPv4 Address: your.ip.address
```
You can find your current IP address using [this](https://api.ipify.org/) page.
In order to redirect from `https://www` to `https://` you need to set this DNS record:
```text
Type: CNAME
Name: @
Target: example.com (your actual domain)
```
And also create Page Rule:
```text
If the URL matches: www.example.com*
Then the settings are: Forwarding URL
Status: 302 - Temporary redirect
Destination URL: https://example.com/$1
```

View File

@ -388,6 +388,8 @@ The `entity_id` names will be `light.device_name`, where `device_name` is define
### Verified supported lights
- IKEA Trådfri bulb E14 WS Opal 400lm
- IKEA Trådfri bulb E14 WS Opal 600lm
- IKEA Trådfri Bulb E27 WS clear 950lm
- IKEA Trådfri Bulb E27 WS Opal 980lm
- IKEA Trådfri Bulb E27 WS Opal 1000lm
- IKEA Trådfri Bulb E27 WS & RGB Opal 600lm

View File

@ -47,7 +47,7 @@ Zeroconf discoverable integrations [Axis](/integrations/axis/)/[ESPHome](/integr
</div>
To load this component, add the following lines to your `configuration.yaml`:
`discovery` is included in the defalult configuration. To load this component manually, add the following lines to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry

View File

@ -14,7 +14,7 @@ Flume monitors the real-time status of your home water meter. Allowing the end-u
## Configuration
You can find your Client ID and Client Secret under "API Access" on the [settings page](https://https://portal.flumetech.com/#settings).
You can find your Client ID and Client Secret under "API Access" on the [settings page](https://portal.flumetech.com/#settings).
To enable the flume sensor, add the following lines to your `configuration.yaml` file:

View File

@ -8,7 +8,7 @@ featured: true
ha_release: 0.56
---
The `google_assistant` integration allows you to control things via Google Assistant (on your mobile or tablet) or a Google Home device.
The `google_assistant` integration allows you to control things via Google Assistant on your mobile, tablet or Google Home device.
## Automatic setup via Home Assistant Cloud
@ -18,15 +18,15 @@ For Home Assistant Cloud Users, documentation can be found [here](https://www.na
## Manual setup
The Google Assistant integration requires a bit more setup than most due to the way Google requires Assistant Apps to be set up.
The Google Assistant integration (without Home Assistant Cloud) requires a bit more setup than most due to the way Google requires Assistant Apps to be set up.
<div class='note warning'>
To use Google Assistant, your Home Assistant configuration has to be [externally accessible with a hostname and SSL certificate](/docs/configuration/remote/). If you haven't already configured that, you should do so before continuing. If you make DNS changes to accomplish this, please ensure you have allowed up to the full 48 hours for DNS changes to propogate, otherwise Google may not be able to reach your server.
To use Google Assistant, your Home Assistant configuration has to be [externally accessible with a hostname and SSL certificate](/docs/configuration/remote/). If you haven't already configured that, you should do so before continuing. If you make DNS changes to accomplish this, please ensure you have allowed up to the full 48 hours for DNS changes to propagate, otherwise Google may not be able to reach your server.
</div>
You need to create an API Key with the [Google Cloud API Console](https://console.cloud.google.com/apis/api/homegraph.googleapis.com/overview) which allows you to update devices without unlinking and relinking an account (see [below](#troubleshooting-the-request_sync-service)). If you don't provide one, the `google_assistant.request_sync` service is not exposed. It is recommended to set up this configuration key as it also allows the usage of the following command, "Ok Google, sync my devices". Once you have set up this component, you will need to call this service (or command) each time you add a new device that you wish to control via the Google Assistant integration.
You need to create an API Key with the [Google Cloud API Console](https://console.cloud.google.com/apis/api/homegraph.googleapis.com/overview) which allows you to update devices without unlinking and relinking an account (see [below](#troubleshooting-the-request_sync-service)). If you don't provide one, the `google_assistant.request_sync` service is not exposed. It is recommended to set up this configuration key as it also allows the usage of the following command, "Ok Google, sync my devices". Once you have set up this component, you will need to call this service (or command) each time you add a new device in Home Assistant that you wish to control via the Google Assistant integration.
1. Create a new project in the [Actions on Google console](https://console.actions.google.com/).
1. Add/Import a project and give it a name.
@ -45,15 +45,15 @@ You need to create an API Key with the [Google Cloud API Console](https://consol
9. Testing instructions: Enter anything. It doesn't matter since you won't submit this app. Click `Save`
<img src='/images/integrations/google_assistant/accountlinking.png' alt='Screenshot: Account linking'>
3. Select the `Develop` tab at the top of the page, then in the upper right hand corner select the `Test` button to generate the draft version Test App.
4. Add the `google_assistant` integration configuration to your `configuration.yaml` file and restart Home Assistant following the [configuration guide](#configuration) below.
5. Open the Google Home app and goto `Account` most right icon.
6. Click `+ Set up or add`, `+ Set up device`, 'New devices', choose your home and click `Next` click `Have something...`you should have `[test] your app name` listed under 'Add new.' Selecting that should lead you to a browser to login your Home Assistant instance, then redirect back to a screen where you can set rooms for your devices or nicknames for your devices.
5. (Note that app versions may be slightly different.) Open the Google Home app and go to `Settings`.
6. Click `Add...`, `+ Set up or add`, `+ Set up device`, and click `Have something already setup?`. You should have `[test] your app name` listed under 'Add new'. Selecting that should lead you to a browser to login your Home Assistant instance, then redirect back to a screen where you can set rooms and nicknames for your devices if you wish.
<div class='note'>
If you've added Home Assistant to the home screen, you have to first remove it from home screen, otherwise, this HTML5 app will show up instead of a browser. Using it would prevent Home Assistant to redirect back to the `Google Assistant` app.
If you've added Home Assistant to your phone's home screen, you have to first remove it from home screen, otherwise, this HTML5 app will show up instead of a browser. Using it would prevent Home Assistant redirecting back to the Google Home app.
</div>
@ -73,15 +73,15 @@ If you've added Home Assistant to the home screen, you have to first remove it f
6. For the Key type, select the JSON option.
7. Click Create. A JSON file that contains your key downloads to your computer.
8. Use the information in this file or the file directly to add to the `service_account` key in the configuration.
3. If you didn't specify a service account and want to use the `google_assistant.request_sync` service, to update devices without unlinking and relinking, in Home Assistant, then enable Homegraph API for your project:
3. If you didn't specify a service account and want to use the `google_assistant.request_sync` service, to update devices without unlinking and relinking, in Home Assistant, then enable HomeGraph API for your project:
1. Go to the [Google API Console](https://console.cloud.google.com/apis/api/homegraph.googleapis.com/overview).
2. Select your project and click Enable Homegraph API.
2. Select your project and click Enable HomeGraph API.
3. Go to Credentials, which you can find on the left navigation bar under the key icon, and select API Key from Create Credentials.
4. Note down the generated API Key and use this in the configuration.
### Configuration
Now add the following lines to your `configuration.yaml` file:
Now add your setup to your `configuration.yaml` file, such as:
```yaml
# Example configuration.yaml entry
@ -117,7 +117,7 @@ secure_devices_pin:
type: string
default: ""
api_key:
description: Your Homegraph API key (for the `google_assistant.request_sync` service). This is not required if a service_account is specified.
description: Your HomeGraph API key (for the `google_assistant.request_sync` service). This is not required if a service_account is specified.
required: false
type: string
service_account:
@ -194,17 +194,17 @@ Currently, the following domains are available to be used with Google Assistant,
- climate (temperature setting, hvac_mode)
- vacuum (dock/start/stop/pause)
- sensor (temperature setting for temperature sensors and humidity setting for humidity sensors)
- Alarm Control Panel (Arm/Disarm)
- Alarm Control Panel (arm/disarm)
<div class='note warning'>
The domain groups contains groups containing all items, by example group.all_automations. When telling Google Assistant to shut down everything, this will lead in this example to disabling all automations
The domain `groups` contains groups containing all items, such as `group.all_automations`. When telling Google Assistant to shut down everything, this will lead in this example to disabling all automations.
</div>
### Secure Devices
Certain devices are considered secure, including anything in the `lock` domain, `alarm_control_panel` domain and `covers` with device types `garage` and `door`.
By default these cannot be opened by Google Assistant unless a `secure_devices_pin` is set up. To allow opening, set the `secure_devices_pin` to something and you will be prompted to speak the pin when opening the device. Closing and locking these devices does not require a pin.
By default these cannot be opened by Google Assistant unless a `secure_devices_pin` is set up. To allow opening, set the `secure_devices_pin` to something and you will be prompted to speak the pin when opening the device. Closing or locking these devices does not require a pin.
For the Alarm Control Panel if a code is set it must be the same as the `secure_devices_pin`. If `code_arm_required` is set to `false` the system will arm without prompting for the pin.
@ -213,13 +213,13 @@ For the Alarm Control Panel if a code is set it must be the same as the `secure_
Media Player sources are sent via the Modes trait in Google Assistant.
There is currently a limitation with this feature that requires a hard-coded set of settings. Because of this, the only sources that will be usable by this feature [are listed here](https://developers.google.com/actions/reference/smarthome/traits/modes).
#### Example Command:
#### Example Command
"Hey Google, change input source to TV on Living Room Receiver"
### Room/Area support
Entities that have not got rooms explicitly set and that have been placed in Home Assistant areas will return room hints to Google with the devices in those areas.
Entities that have not been explicitly assigned to rooms but have been placed in Home Assistant areas will return room hints to Google with the devices in those areas.
### Climate Operation Modes
@ -236,18 +236,18 @@ Here are the modes that are currently available:
### Troubleshooting the request_sync service
The request_sync service requires that the initial sync from Google includes the agent_user_id. If not, the service will log an error that reads something like "Request contains an invalid argument". If this happens, then [unlink the account](https://support.google.com/googlenest/answer/7126338) from Home Control and relink.
Syncing may fail after a period of time, likely around 30 days, due to the fact that your Actions on Google app is technically in testing mode and has never been published. Eventually, it seems that the test expires. Control of devices will continue to work but syncing may not. If you say "Ok Google, sync my devices" and get the response "Unable to sync Home Assistant" (or whatever you named your project), this can usually be resolved by going back to your test app in the [Actions on Google console](https://console.actions.google.com/) and clicking `Simulator` under `TEST`. Regenerate the draft version Test App and try asking Google to sync your devices again. If regenerating the draft does not work, go back to the `Action` section and just hit the `enter` key for the URL to recreate the Preview.
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 [Actions on Google console](https://console.actions.google.com). Resolve this by:
The `request_sync` service requires that the initial sync from Google includes the `agent_user_id`. If not, the service will log an error that reads something like "Request contains an invalid argument". If this happens, then [unlink the account](https://support.google.com/googlenest/answer/7126338) from Home Control and relink.
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 [Actions on Google console](https://console.actions.google.com). Resolve this by:
1. Removing your project from the [Actions on Google console](https://console.actions.google.com).
2. Add a new project to the [Google Cloud API Console](https://console.cloud.google.com). Here you get a new `project_id`.
3. Enable Homegraph API to the new project.
3. Enable HomeGraph API to the new project.
4. Generate a new API key.
5. Again, create a new project in the [Actions on Google 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`.
Syncing may also fail after a period of time, likely around 30 days, due to the fact that your Actions on Google app is technically in testing mode and has never been published. Eventually, it seems that the test expires. Control of devices will continue to work but syncing may not. If you say "Ok Google, sync my devices" and get the response "Unable to sync Home Assistant", this can usually be resolved by going back to your test app in the [Actions on Google console](https://console.actions.google.com/) and clicking `Simulator` under `TEST`. Regenerate the draft version Test App and try asking Google to sync your devices again. If regenerating the draft does not work, go back to the `Action` section and just hit the `enter` key for the URL to recreate the Preview.
### Troubleshooting with NGINX
When using NGINX, ensure that your `proxy_pass` line *does not* have a trailing `/`, as this will result in errors. Your line should look like:

View File

@ -18,18 +18,14 @@ The `hive` integration is the main integration to set up and integrate all suppo
This integration uses the unofficial API used in the official Hive website [https://my.hivehome.com](https://my.hivehome.com), and you will need to use the same Username and Password you use on the Hive website to configure this Hive integration in Home Assistant.
There is currently support for the following services and platforms within Home Assistant:
There is currently support for the following platforms within Home Assistant:
- [Services](#services)
- [Service `hive.boost_heating`](#service-hiveboostheating)
- [Service `hive.boost_hot_water`](#service-hiveboosthotwater)
- [Platforms](#platforms)
- [Binary Sensor](#binary-sensor)
- [Climate](#climate)
- [Light](#light)
- [Sensor](#sensor)
- [Switch](#switch)
- [Water Heater](#water-heater)
- [Binary Sensor](#binary-sensor)
- [Climate](#climate)
- [Light](#light)
- [Sensor](#sensor)
- [Switch](#switch)
- [Water Heater](#water-heater)
To add your Hive devices into your Home Assistant installation, add the following to your `configuration.yaml` file:

View File

@ -16,7 +16,7 @@ There is currently support for the following platforms within Home Assistant:
- [Device Tracker](#device-tracker)
- [Sensor](#sensor)
It does require that your device is registered with "Find My iPhone".
It does require that your devices are registered with the [Find My](https://www.apple.com/uk/icloud/find-my/) service.
## Setup the integration
@ -70,9 +70,7 @@ gps_accuracy_threshold:
{% endconfiguration %}
<div class='note warning'>
Low `max_interval` may cause battery drainage as it wakes up your device to get the current location.
</div>
<div class='note warning'>
@ -81,11 +79,11 @@ You may receive an email and a notification from Apple saying that someone has l
For the notification, press "Allow", then "OK".
</div>
To disable the drainage of the battery, a dynamic interval is being used for each individual device instead of a fixed interval for all devices linked to one account. The dynamic interval is based on the current zone of a device, the distance towards home and the battery level of the device.
If 2 Step Authentication is enabled for your iCloud account, some time after Home Assistant startup the integration will ask which device you want to use as the Trusted Device via a notification in the Home Assistant UI. The integration will send an SMS prompt to that device with the auth code to enter in Home Assistant. The duration of this authentication is determined by Apple, but is currently 2 months, so you will only need to verify your account every two months.
If 2 Step Authentication is enabled for your iCloud account. The integration will ask which device you want to use as a trusted device. The integration will send a prompt to that device with the code which you have to enter in Home Assistant. The duration of this authentication is determined by Apple.
2 Factor Authentication is the improved version of 2 Step Authentication, this is still not supported by the pyicloud library. Therefore it's not possible to use it yet.
2 Factor Authentication is the improved version of 2 Step Authentication and is still not supported by the pyicloud library. Therefore it's not possible to use it with the device_tracker yet.
To prevent excessive battery drainage, a dynamic interval is used for each individual device instead of a fixed interval for all devices linked to one account. The dynamic interval is based on the current zone of a device, the distance towards home and the battery level of the device.
## In case of troubleshooting

View File

@ -270,10 +270,10 @@ Mini-Remote devices do not appear as Home Assistant entities, they generate even
- **insteon.button_on**
- **address**: (required) The Insteon device address in lower case without dots (e.g., 1a2b3c)
- **button**: (Optional) The button id in lower case. For a 4-button remote the values are `a` to `d`. For an 8 button remote the values are `a` to `g`. For a one-button remote this field is not used.
- **button**: (Optional) The button id in lower case. For a 4-button remote the values are `a` to `d`. For an 8 button remote the values are `a` to `h`. For a one-button remote this field is not used.
- **insteon.button_off**
- **address**: (required) The Insteon device address in lower case without dots (e.g., 1a2b3c)
- **button**: (Optional) The button id in lower case. For a 4-button remote the values are a to d. For an 8 button remote the values are `a` to `g`. For a one-button remote this field is not used.
- **button**: (Optional) The button id in lower case. For a 4-button remote the values are a to d. For an 8 button remote the values are `a` to `h`. For a one-button remote this field is not used.
This allows the mini-remotes to be configured as triggers for automations. Here is an example of how to use these events for automations:

View File

@ -20,7 +20,7 @@ The LIFX bulbs allow a change of color and brightness even when they are turned
The normal `light.turn_on` call cannot be used for this because it always turns the power on. Thus, LIFX has its own service call that allows color changes without affecting the current power state.
### Service `light.lifx_set_state`
### Service `lifx.set_state`
Change the light to a new state.
@ -54,7 +54,7 @@ script:
colorloop_start:
alias: 'Start colorloop'
sequence:
- service: light.lifx_effect_colorloop
- service: lifx.effect_colorloop
data:
entity_id: group.livingroom
brightness: 255

View File

@ -650,7 +650,7 @@ light:
- [AiLight](https://github.com/stelgenhof/AiLight) is a custom firmware for the Ai-Thinker (and equivalent) RGBW WiFi light bulbs that has an ESP8266 onboard and controlled by the MY9291 LED driver. It implements the [MQTT JSON light](/integrations/light.mqtt) platform and supports ON/OFF, RGBW colours, brightness, colour temperature, flashing and transitions. Also it includes [MQTT Auto Discovery](/docs/mqtt/discovery/)) and the MQTT Last Will and Testament is enabled as well.
- [h801-mqtt-json](https://github.com/starkillerOG/h801-mqtt-json) is a custom firmware for the H801 LED dimmer, a 5 channel (RGBWWCW) WiFi LED strip controller for 12V LED strips. The firmware is meant to control the 5 channels of the H801 to simultaneously control an RGB and a Warm-white/Cold-white Led strip such as an 5050 RGB LED strip and a 5025 Dual White strip. It implements the [MQTT JSON light](/integrations/light.mqtt) platform and supports ON/OFF, RGBW colours (RGB strip), brightness, color temperature (CW/WW strip) and transitions.
- [h801-mqtt-json](https://github.com/starkillerOG/h801-mqtt-json) is a custom firmware for the H801 LED dimmer, a 5 channel (RGBWWCW) WiFi LED strip controller for 12V LED strips. The firmware is meant to control the 5 channels of the H801 to simultaneously control an RGB and a Warm-white/Cold-white Led strip such as a 5050 RGB LED strip and a 5025 Dual White strip. It implements the [MQTT JSON light](/integrations/light.mqtt) platform and supports ON/OFF, RGBW colours (RGB strip), brightness, color temperature (CW/WW strip) and transitions.
## Template schema

View File

@ -82,6 +82,12 @@ List of source names:
- xm
- sirius
If your source is not listed above, and you want to figure out how to format that source name so you can map its entry, you can use the `onkyo-eiscp` Python module to discover the exact naming needed. First, change your receiver's source to the one that you need to define, and then run:
```bash
onkyo --host 192.168.0.100 source=query
```
To find your receivers max volume use the onkyo-eiscp python module set the receiver to its maximum volume
(don't do this whilst playing something!) and run:

View File

@ -22,7 +22,7 @@ To use the `proxmoxve` component, add the following config to your `configuratio
```yaml
# Example configuration.yaml entry
proxmox:
proxmoxve:
- host: IP_ADDRESS
username: USERNAME
password: PASSWORD
@ -45,7 +45,7 @@ port:
default: 8006
type: integer
verify_ssl:
description: Whether to do strict validation on SSL certificates.
description: Whether to do strict validation on SSL certificates. If you use a self signed SSL certificate you need to set this to false.
required: false
default: true
type: boolean
@ -84,7 +84,7 @@ nodes:
Example with multiple VMs and no containers:
```yaml
proxmox:
proxmoxve:
- host: IP_ADDRESS
username: USERNAME
password: PASSWORD
@ -97,4 +97,6 @@ proxmox:
## Binary Sensor
The integration will automatically create a binary sensor for each tracked VM or container, the binary sensor will either be on if the VM's state is running or off if the VM's state is different.
The integration will automatically create a binary sensor for each tracked virtual machone or container. The binary sensor will either be on if the VM's state is running or off if the VM's state is different.
The created sensor will be called `binary_sensor.NODE_NAME_VMNAME_running`.

View File

@ -138,7 +138,7 @@ Call the service `recorder.purge` to start a purge task which deletes events and
| PostgreSQL | `postgresql://SERVER_IP/DB_NAME` |
| PostgreSQL | `postgresql://user:password@SERVER_IP/DB_NAME` |
| PostgreSQL (Socket) | `postgresql://@/DB_NAME` |
| MS SQL Server | `mssql+pymssql://user:password@SERVER_IP/DB_NAME?charset=utf8` |
| MS SQL Server | `mssql+pyodbc://username:password@dsnname` |
<div class='note'>
@ -250,14 +250,14 @@ A service restart will work as well.
For MS SQL Server you may have to install a few dependencies:
```bash
sudo apt-get install freetds-dev
pip3 install pymssql
sudo apt-get install unixodbc-dev
pip3 install pyodbc
```
If you are in a virtual environment, don't forget to activate it before installing the pymssql package.
If you are in a virtual environment, don't forget to activate it before installing the pyodbc package.
```bash
sudo -u homeassistant -H -s
source /srv/homeassistant/bin/activate
pip3 install pymssql
pip3 install pyodbc
```

View File

@ -30,7 +30,7 @@ To use the SolarEdge sensors in your installation, add the following to your con
# Example configuration.yaml entry
sensor:
- platform: solaredge_local
ip_address: IP_ADDRES
ip_address: IP_ADDRESS
```
{% configuration %}

View File

@ -19,7 +19,7 @@ The `tensorflow` image processing platform allows you to detect and recognize ob
## Setup
You need to install the `tensorflow` Python packages with: `$ pip3 install tensorflow==1.11.0`. The wheel is not available for all platforms. See [the official install guide](https://www.tensorflow.org/install/) for other options. Hass.io is not yet supported but an addon is under development.
You need to install the `tensorflow` Python packages with: `$ pip3 install tensorflow==1.13.2`. The wheel is not available for all platforms. See [the official install guide](https://www.tensorflow.org/install/) for other options. Hass.io is not yet supported but an addon is under development.
This integration requires files to be downloaded, compiled on your computer, and added to the Home Assistant configuration directory. These steps can be performed using the sample script at [this gist](https://gist.github.com/hunterjm/6f9332f92b60c3d5e448ad936d7353c3). Alternatively, if you wish to perform the process manually, the process is as follows:

View File

@ -206,9 +206,9 @@ The following table shows the units of measurement for each attribute:
<div class='note'>
As per Version 5.4.49 the Android Mi Home app stores the token readable in the log files. It can easily be retrieved in the folder Smarthome on in the Android device. Just open the text file inside the Smarthome/logs folder and search for the token.
If using an Android device to retrieve the Access Token only `v5.4.49` of Mi Home is confirmed working (December 2019). Use `v5.4.49` of Mi Home locate a text file under the `Smarthome/logs` folder where the 32 character token is stored. There will likely be several text files in this directory, search all of them for the word 'token' and you should find it there. Be advised that the latest version of Mi Home does not store the token in clear text.
<br/> <br/>
The iPhone app still stores the token in the SQLite db as of v4.23.4 (Nov 17, 2019).
The iPhone app still stores the token in the SQLite db as of `v4.23.4` (Nov 17, 2019).
<br/> <br/>
After resetting the WiFi settings of the Xiaomi robot vacuum, a new Access Token will be generated and therefore these instructions need to be followed again.
<br/> <br/>
@ -217,116 +217,25 @@ These instructions are written for the Mi Home app - not for the new RoboRock ap
This token (32 hexadecimal characters) is required for the Xiaomi Mi Robot Vacuum, Mi Robot 2 (Roborock) Vacuum, Xiaomi Philips Lights and Xiaomi IR Remote. The Xiaomi Gateway uses another security method and requires a `key` (16 alphanumeric chars), which can be obtained easily via a hidden menu item at the Mi-Home app or using the `miio` command line tool.
</div>
### Miio command line tool
### Android (not rooted)
You can install the command line tool using the following command:
> If using an Android device to retrieve the Access Token only `v5.4.49` of Mi Home is confirmed working (December 2019).
```bash
npm install -g miio
```
1. To begin, set up your Robovac with the latest version of Mi Home on your primary Android device as you normally would.
2. Using `v5.4.49` of Mi Home locate a text file under the `Smarthome/logs` folder where the 32 character token is stored.
3. There will likely be several text files in this directory, search all of them for the word 'token' and you should find it there. Be advised that the latest version of Mi Home does not store the token in clear text.
Discovering devices on the current network:
```bash
miio discover
```
### Linux and Rooted Android
This will list devices that are connected to the same network as your computer. Let it run for a while so it has a chance to reach all devices, as it might take a minute or two for all devices to answer.
The commands outputs each device on this format:
```text
Device ID: 48765421
Model info: zhimi.airpurifier.m1
Address: 192.168.100.9
Token: token-as-hex-here via auto-token
Support: At least basic
```
The information output is:
- `Device ID` - The unique identifier of the device, does not change if the device is reset.
- `Model ID`- The model id if it could be determined, this indicates what type of device it is.
- `Address` - The IP that the device has on the network.
- `Token` - The token of the device or `???` if it could not be automatically determined.
### Windows and Android
To fetch the token follow these instructions depending on your mobile phone platform.
1. Configure the robot with [Mi Home version 5.0.30](https://www.apkmirror.com/apk/xiaomi-inc/mihome/mihome-5-0-30-release/). Make sure to select the correct region, as Xiaomi uses different product names for different geographical areas.
2. Download and extract the [MiToolKit.zip](https://github.com/ultrara1n/MiToolkit/releases).
3. Enable developer mode and USB debugging on the Android phone and plug it into the computer.
4. Change the MiToolKit language to English if you need to.
5. Click "Extract Token".
6. On the phone, you must confirm the backup. DO NOT enter any password and press the button to make the backup.
7. Once you have confirmed the backup the token extraction will begin, it should appear in the MiToolKit shortly.
8. If you don't get a token, close MiToolKit completely, delete the folder MiToolkit\apps\com.xiaomi.smarthome and relaunch MiToolKit to force recreate a new backup (sometimes the files would not be overwritten before deleting the old ones).
### Linux and Android (not rooted)
Follow the pairing process using your phone and Mi-Home app. You will be able to retrieve the token from an SQLite file inside your phone.
Before you begin you need to install `libffi-dev` and `libssl-dev` by running the command below. This is needed for `python-miio` to be installed correctly.
```bash
sudo apt-get install libffi-dev libssl-dev
```
If your Home Assistant installation is running in a [virtualenv](/docs/installation/virtualenv/#upgrading-home-assistant), make sure you activate it by running the commands below.
```bash
sudo -u homeassistant -H -s
source /srv/homeassistant/bin/activate
```
To fetch the token follow these instructions depending on your mobile phone platform.
1. Configure the robot with [Mi Home version 5.0.30](https://www.apkmirror.com/apk/xiaomi-inc/mihome/mihome-5-0-30-release/). Make sure to select the correct region, as Xiaomi uses different product names for different geographical areas.
2. Enable developer mode, USB debugging and plug the Android phone into the computer.
3. Get ADB by running `apt-get install android-tools-adb` or `apt-get install adb`.
4. `adb devices` should list your device. Consult the 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). Some devices may require single quotes in the command `adb backup '-noapk com.xiaomi.smarthome -f backup.ab'`.
6. Download the ['ADB Backup Extractor'](https://sourceforge.net/projects/adbextractor/files/latest/download).
7. Extract the data from the backup: (enter the password, if prompted)
```bash
java -jar Android\ Backup\ Utilities/Android\ Backup\ Extractor/android-backup-extractor-20171005-bin/abe.jar unpack backup.ab unpacked.tar
```
8. Untar the unpacked data: `tar -xvf unpacked.tar`.
9. The following command returns the token for your Xiaomi vacuum bot:
```bash
sqlite3 apps/com.xiaomi.smarthome/db/miio2.db 'select token from devicerecord where name like "%Vacuum%";'
```
### Linux and Android (rooted!)
Follow the pairing process using your phone and Mi-Home app. You will be able to retrieve the token from an SQLite file inside your phone.
Before you begin you need to install `libffi-dev` and `libssl-dev` by running the command below. This is needed for `python-miio` to be installed correctly.
```bash
sudo apt-get install libffi-dev libssl-dev
```
If your Home Assistant installation is running in a [virtualenv](/docs/installation/virtualenv/#upgrading-home-assistant), make sure you activate it by running the commands below.
```bash
sudo -u homeassistant -H -s
source /srv/homeassistant/bin/activate
```
To fetch the token follow these instructions depending on your mobile phone platform.
1. Configure the robot with [Mi Home version 5.0.30](https://www.apkmirror.com/apk/xiaomi-inc/mihome/mihome-5-0-30-release/). Make sure to select the correct region, as Xiaomi uses different product names for different geographical areas.
2. Enable developer mode, USB debugging and root permission only for ADB on the Android phone and plug it into the computer.
3. Get ADB (e.g, using `apt-get install android-tools-adb`).
4. The command `adb devices` should list your device.
5. The command `adb root` (does work for development builds only: ones with `ro.debuggable=1`).
6. The command `adb shell` (for those using Magisk based root the this command won't work. After entering a shell, type `su` to enter the root shell and try again).
7. The following command returns a list of all registered devices including IP address and token:
```bash
echo "select name,localIP,token from devicerecord;" | sqlite3 /data/data/com.xiaomi.smarthome/databases/miio2.db
```
1. To begin, set up your Robovac with the latest version of Mi Home on your primary Android device as you normally would.
2. Ensure successful operation using the latest Mi Home app and give the Vacuum a static IP in your router or however you do that on your LAN.
3. Install version `v5.4.54` of Mi Home on your rooted Android device and login (you can't have two version of Mi Home installed at the same time).
4. Ensure you are using the same server every time
5. Ensure successful operation using 5.4.54 (locate is a nice simple test)
6. Using adb we will now extract the token from the rooted phone
7. Use adb shell to connect to your device and become root (if using Magisck root do `adb shell -> su -> whoami` to ensure root access.
8. Then run grep -R '"token"' /data/data/com.xiaomi.smarthome and grab the token
### iOS
@ -363,34 +272,42 @@ To fetch the token follow these instructions depending on your mobile phone plat
8. Select `Browse Data` tab from the DB Browser and switch to table called `devicerecord`
9. This will display all the connected devices information with the token.
### Selecting token manually (Windows and Android)
### Miio command line tool
The following instruction explained an alternative method, in case the MiToolKit didn't work.
Use of Miio should be done before the Vacuum is connected to Mi Home. If you already connected to the app you will need to delete it and then join the ad-hoc Wifi network the Vacuum creates. If the vacuum is already paired it's likely this method will only return `???` as your token.
Software Required:
You can install the command line tool using the following command:
- Android ADB is contained in [Android SDK](https://developer.android.com/studio/releases/platform-tools)
- [Mi Home version 5.0.30](https://www.apkmirror.com/apk/xiaomi-inc/mihome/mihome-5-0-30-release/)
- [Android Backup Extractor](https://sourceforge.net/projects/adbextractor/)
- [SQLite Browser](https://sqlitebrowser.org/)
1. Install an old Version of MiHome (e.g. Mi Home version 5.0.30) on your Android-Device
2. Open MiHome, log-in and add your devices. Make sure to select the correct region, as Xiaomi uses different product names for different geographical areas.
3. Enable USB-Debugging on your Android
4. Create a backup from your MiHome App, by using adb
```bash
adb backup com.xiaomi.smarthome
```
Now the backup App opens on you Android-Device. You don't need to set a password, just click save.
5. Extract the backup-file with android-backup-extractor
```bash
java -jar abe.jar unpack backup.ab backup.tar
```
After that, you will be able to open the file with WinRaR or what ever you like.
6. Go to \apps\com.xiaomi.smarthome\db
7. Open miio2.db with SQLite Browser
8. You can find your device tokens in "devicerecord" table
```bash
npm install -g miio
```
## Retrieving the Zone Coordinates
Discovering devices on the current network:
```bash
miio discover
```
This will list devices that are connected to the same network as your computer. Let it run for a while so it has a chance to reach all devices, as it might take a minute or two for all devices to answer.
The commands outputs each device on this format:
```text
Device ID: 48765421
Model info: zhimi.airpurifier.m1
Address: 192.168.100.9
Token: token-as-hex-here via auto-token
Support: At least basic
```
The information output is:
- `Device ID` - The unique identifier of the device, does not change if the device is reset.
- `Model ID`- The model id if it could be determined, this indicates what type of device it is.
- `Address` - The IP that the device has on the network.
- `Token` - The token of the device or `???` if it could not be automatically determined.
## Retrieving Zoned Cleaning Coordinates
### Using FloleVac (Android)
@ -399,3 +316,20 @@ Software Required:
3. Open Map (make sure you're on the same network as your vacuum cleaner)
4. Select "Zone cleanup" and draw a box around the zone you'd like to clean
5. Long press "Cleanup" and the zone coordinates will be copied to your clipboard
### Using RoboRock Control Center (requires Valetudo firmware)
[RRCC](https://github.com/LazyT/rrcc) supports both rooted and non-rooted Vacuums and acts as a mostly fully featured replacement for Mi Home that works locally without the cloud. If you have installed the rooted firmware [Valetudo](https://github.com/Hypfer/Valetudo) you are able to SSH into your Vacuum and enable MQTT plus use map functions with no cloud requirement.
Using the map editor you are able to acquire the co-ordinates required for zoned clean up. Here is an example script for zoned clean up:
```
vacuum_kitchen:
alias: "vacuum kitchen"
sequence:
- service: vacuum.send_command
data:
entity_id: 'vacuum.xiaomi_vacuum_cleaner'
command: app_zoned_clean
params: [[23084,26282,27628,29727,1]]
```

View File

@ -9,7 +9,7 @@ ha_release: 0.49
ha_iot_class: Local Push
---
The `wake_on_lan` integration enables the ability to send _magic packets_ to [Wake on LAN](https://en.wikipedia.org/wiki/Wake-on-LAN) capable devices, to turn them on.
The `wake_on_lan` integration enables the ability to send _magic packets_ to [Wake on LAN](https://en.wikipedia.org/wiki/Wake-on-LAN) capable devices to turn them on.
There is currently support for the following device types within Home Assistant:
@ -61,12 +61,12 @@ To enable this switch in your installation, add the following to your `configura
# Example configuration.yaml entry
switch:
- platform: wake_on_lan
mac: "00-01-02-03-04-05"
mac: MAC_ADDRESS
```
{% configuration %}
mac:
description: The MAC address to send the wake up command to.
description: "The MAC address to send the wake up command to, e.g, `00:01:02:03:04:05`."
required: true
type: string
name:

View File

@ -56,7 +56,21 @@ The custom quirks implementations for zigpy implemented as ZHA Device Handlers f
- [PiZiGate](https://zigate.fr/produit/pizigate-v1-0/)
- [Wifi ZiGate](https://zigate.fr/produit/zigate-pack-wifi-v1-3/) (work in progress)
## Configuration
## Configuration - GUI
From the Home Assistant front page go to **Configuration** and then select **Integrations** from the list.
Use the plus button in the bottom right to add a new integration called **ZHA**.
In the popup:
- USB Device Path - on a linux system will be something like `/dev/ttyUSB0`
- Radio type - select device type **ezsp**, **deconz** or **xbee**
- Submit
The success dialog will appear or an error will be displayed in the popup. An error is likely if Home Assistant can't access the USB device or your device is not up to date (see troubleshooting).
## Configuration - Manual
To configure the component, select ZHA on the Integrations page and provide the path to your Zigbee USB stick.
@ -102,7 +116,13 @@ enable_quirks:
To add new devices to the network, call the `permit` service on the `zha` domain. Do this by clicking the Service icon in Developer tools and typing `zha.permit` in the **Service** dropdown box. Next, follow the device instructions for adding, scanning or factory reset.
Alternatively you can trigger a scan for devices through the Web UI via `Configuration > ZHA > Add Devices`.
## Adding devices
Go to the **Configuration** page and select the **ZHA** integration that was added by the configuration steps above.
Click on **ADD DEVICES** to start a scan for new devices.
Reset your ZigBee devices according to the device instructions provided by the manufacturer (e.g., turn on/off lights up to 10 times, switches usually have a reset button/pin).
## Troubleshooting
@ -132,3 +152,32 @@ To remove modemmanager from an Debian/Ubuntu host run this command:
```bash
sudo apt-get purge modemmanager
```
### Can't connect to USB device and using Docker
If you are using Docker and can't connect, you most likely need to forward your device from the host machine to the Docker instance. This can be achieved by adding the device mapping to the end of the startup string or ideally using docker compose.
#### Docker Compose
Install Docker-Compose for your platform (linux - `sudo apt-get install docker-compose`).
Create a `docker-compose.yml` with the following data:
```yaml
version: '2'
services:
homeassistant:
# customisable name
container_name: home-assistant
# must be image for your platform, this is the rpi3 variant
image: homeassistant/raspberrypi3-homeassistant
volumes:
- <DIRECTORY HOLDING HOME ASSISTANT CONFIG FILES>:/config
- /etc/localtime:/etc/localtime:ro
devices:
# your usb device forwarding to the docker image
- /dev/ttyUSB0:/dev/ttyUSB0
restart: always
network_mode: host
```

View File

@ -61,7 +61,7 @@ image:
type: string
secondary_info:
required: false
description: "Show additional info. Values: `entity-id`, `last-changed`, `last-triggered' (only for automations and scripts)."
description: "Show additional info. Values: `entity-id`, `last-changed`, `last-triggered` (only for automations and scripts)."
type: string
format:
required: false

View File

@ -72,7 +72,7 @@ Thank you so much!
[@briglx]: https://github.com/briglx
[@djpremier]: https://github.com/djpremier
[@javicalle]: https://github.com/javicalle
[@Michsior14]: https://github.com/Michsior14
[@michsior14]: https://github.com/Michsior14
[@mnigbur]: https://github.com/mnigbur
[@thaohtp]: https://github.com/thaohtp
@ -127,7 +127,7 @@ automation editor and allows you to copy parts of your automation quickly.
Screenshot of the automation YAML editor.
</p>
### Rearange actions
### Rearrange actions
We also added the ability to rearrange your actions, so you don't have to start
all over when you want to add a delay between 2 service calls.
@ -160,7 +160,7 @@ The following integrations are added in this release:
- Add Proxmox VE integration ([@K4ds3] - [#27315]) ([proxmoxve docs]) (new-integration)
- Add flume support ([@ChrisMandich] - [#27235]) ([flume docs]) (new-integration)
- StarLine integration ([@Anonym-tsk] - [#27197]) ([starline docs]) (new-integration)
- Add intent integration to expose intent handle API ([@balloob] - [#29124]) ([conversation docs]) ([intent docs]) (new-integration)
- Add intent integration to expose intent handle API ([@balloob] - [#29124]) ([conversation docs]) (new-integration)
- Dsmr reader ([@depl0y] - [#28701]) ([dsmr_reader docs]) ([fleetgo docs]) ([openhardwaremonitor docs]) (new-integration)
- Add ATEN PE component for ATEN eco PDUs ([@mtdcr] - [#27960]) ([aten_pe docs]) (new-integration)
@ -244,6 +244,42 @@ All services for use in Home Assistant are moved to their integration naming spa
- **Entity ID** - It is no longer possible to target all entities by not passing both `entity_id` and `area_id` to your service data. This feature was previously deprecated and has been printing warnings. The correct way to target all entities is to set `entity_id: all` - ([@balloob] - [#29178])
- **Heatmiser Thermostat** - The Heatmiser integration has been updated to the latest version of the heatmiserV3 library, meaning less code inside HA, and more leverage on the library. The current version of the Heatmiser integration went out of date with the introduction of voluptuous. This has now been fixed, but it breaks the old config syntax slightly. See the updated docs for the new config format. - ([@andylockran] - [#29006]) ([heatmiser docs])
## Release 0.103.1 - December 18
- Install requirements of after_dependencies when loading integrations ([@balloob] - [#29491])
- Bump aioambient to 1.0.2 ([@bachya] - [#29850]) ([ambient_station docs])
- Fix setup for tank_utility component ([@springstan] - [#29902]) ([tank_utility docs])
- Fix setup error for logbook ([@springstan] - [#29908])
- Support entity_id: all in lifx.set_state ([@amelchio] - [#29919]) ([lifx docs])
- Fix mobile app device identifiers ([@JBassett] - [#29920]) ([mobile_app docs])
- Fix loading flume integration ([@ChrisMandich] - [#29926]) ([flume docs])
- Fix support for legacy Z-Wave thermostats ([@oandrew] - [#29955]) ([zwave docs])
- Bump simplisafe-python to 5.3.6 ([@bachya] - [#30055]) ([simplisafe docs])
[#29491]: https://github.com/home-assistant/home-assistant/pull/29491
[#29850]: https://github.com/home-assistant/home-assistant/pull/29850
[#29902]: https://github.com/home-assistant/home-assistant/pull/29902
[#29908]: https://github.com/home-assistant/home-assistant/pull/29908
[#29919]: https://github.com/home-assistant/home-assistant/pull/29919
[#29920]: https://github.com/home-assistant/home-assistant/pull/29920
[#29926]: https://github.com/home-assistant/home-assistant/pull/29926
[#29955]: https://github.com/home-assistant/home-assistant/pull/29955
[#30055]: https://github.com/home-assistant/home-assistant/pull/30055
[@chrismandich]: https://github.com/ChrisMandich
[@jbassett]: https://github.com/JBassett
[@amelchio]: https://github.com/amelchio
[@bachya]: https://github.com/bachya
[@balloob]: https://github.com/balloob
[@oandrew]: https://github.com/oandrew
[@springstan]: https://github.com/springstan
[ambient_station docs]: /integrations/ambient_station/
[flume docs]: /integrations/flume/
[lifx docs]: /integrations/lifx/
[mobile_app docs]: /integrations/mobile_app/
[simplisafe docs]: /integrations/simplisafe/
[tank_utility docs]: /integrations/tank_utility/
[zwave docs]: /integrations/zwave/
## If you need help...
...don't hesitate to use our very active [forums](https://community.home-assistant.io/) or join us for a little [chat](https://discord.gg/c5DvZ4e).
@ -332,7 +368,7 @@ Experiencing issues introduced by this release? Please report them in our [issue
- Update services.yaml for cloudflare component ([@raman325] - [#28888])
- update services.yaml for keyboard component ([@raman325] - [#28889])
- bump herepy to 0.6.3.3 ([@eifinger] - [#28907]) ([here_travel_time docs])
- Update __init__.py ([@SNoof85] - [#28911]) ([freebox docs])
- Update **init**.py ([@SNoof85] - [#28911]) ([freebox docs])
- Delay Plex websocket connection to avoid race ([@jjlawren] - [#28934]) ([plex docs]) (beta fix)
- Bump verisure to vsure 1.5.4 and jsonpath 0.82 ([@persandstrom] - [#28933]) ([verisure docs])
- Add device trigger support for Aqara WXKG11LM 2016 switch to Deconz ([@kurniawan77] - [#28946]) ([deconz docs])
@ -1226,32 +1262,32 @@ Experiencing issues introduced by this release? Please report them in our [issue
[#29820]: https://github.com/home-assistant/home-assistant/pull/29820
[#29824]: https://github.com/home-assistant/home-assistant/pull/29824
[#29835]: https://github.com/home-assistant/home-assistant/pull/29835
[@Adminiuga]: https://github.com/Adminiuga
[@Anonym-tsk]: https://github.com/Anonym-tsk
[@BKPepe]: https://github.com/BKPepe
[@Bouni]: https://github.com/Bouni
[@ChrisMandich]: https://github.com/ChrisMandich
[@Danielhiversen]: https://github.com/Danielhiversen
[@Dilbert66]: https://github.com/Dilbert66
[@HarlemSquirrel]: https://github.com/HarlemSquirrel
[@JayNewstrom]: https://github.com/JayNewstrom
[@JeffLIrion]: https://github.com/JeffLIrion
[@K4ds3]: https://github.com/K4ds3
[@Kane610]: https://github.com/Kane610
[@Mariusthvdb]: https://github.com/Mariusthvdb
[@Misiu]: https://github.com/Misiu
[@Mryck]: https://github.com/Mryck
[@NobleKangaroo]: https://github.com/NobleKangaroo
[@OttoWinter]: https://github.com/OttoWinter
[@PedroLamas]: https://github.com/PedroLamas
[@Quentame]: https://github.com/Quentame
[@Romkabouter]: https://github.com/Romkabouter
[@SNoof85]: https://github.com/SNoof85
[@Santobert]: https://github.com/Santobert
[@Shulyaka]: https://github.com/Shulyaka
[@SukramJ]: https://github.com/SukramJ
[@TomBrien]: https://github.com/TomBrien
[@USA-RedDragon]: https://github.com/USA-RedDragon
[@adminiuga]: https://github.com/Adminiuga
[@anonym-tsk]: https://github.com/Anonym-tsk
[@bkpepe]: https://github.com/BKPepe
[@bouni]: https://github.com/Bouni
[@chrismandich]: https://github.com/ChrisMandich
[@danielhiversen]: https://github.com/Danielhiversen
[@dilbert66]: https://github.com/Dilbert66
[@harlemsquirrel]: https://github.com/HarlemSquirrel
[@jaynewstrom]: https://github.com/JayNewstrom
[@jefflirion]: https://github.com/JeffLIrion
[@k4ds3]: https://github.com/K4ds3
[@kane610]: https://github.com/Kane610
[@mariusthvdb]: https://github.com/Mariusthvdb
[@misiu]: https://github.com/Misiu
[@mryck]: https://github.com/Mryck
[@noblekangaroo]: https://github.com/NobleKangaroo
[@ottowinter]: https://github.com/OttoWinter
[@pedrolamas]: https://github.com/PedroLamas
[@quentame]: https://github.com/Quentame
[@romkabouter]: https://github.com/Romkabouter
[@snoof85]: https://github.com/SNoof85
[@santobert]: https://github.com/Santobert
[@shulyaka]: https://github.com/Shulyaka
[@sukramj]: https://github.com/SukramJ
[@tombrien]: https://github.com/TomBrien
[@usa-reddragon]: https://github.com/USA-RedDragon
[@abmantis]: https://github.com/abmantis
[@adamchengtkc]: https://github.com/adamchengtkc
[@adrum]: https://github.com/adrum
@ -1261,7 +1297,7 @@ Experiencing issues introduced by this release? Please report them in our [issue
[@amelchio]: https://github.com/amelchio
[@andersonshatch]: https://github.com/andersonshatch
[@andylockran]: https://github.com/andylockran
[@awkwardDuck]: https://github.com/awkwardDuck
[@awkwardduck]: https://github.com/awkwardDuck
[@bachya]: https://github.com/bachya
[@balloob]: https://github.com/balloob
[@bannhead]: https://github.com/bannhead
@ -1330,10 +1366,10 @@ Experiencing issues introduced by this release? Please report them in our [issue
[@tetienne]: https://github.com/tetienne
[@thomasgermain]: https://github.com/thomasgermain
[@timmccor]: https://github.com/timmccor
[@tofuSCHNITZEL]: https://github.com/tofuSCHNITZEL
[@tofuschnitzel]: https://github.com/tofuSCHNITZEL
[@tsvi]: https://github.com/tsvi
[@tulindo]: https://github.com/tulindo
[@uSpike]: https://github.com/uSpike
[@uspike]: https://github.com/uSpike
[aftership docs]: /integrations/aftership/
[alarm_control_panel docs]: /integrations/alarm_control_panel/
[alarmdecoder docs]: /integrations/alarmdecoder/

View File

@ -0,0 +1,64 @@
---
title: "HassOS 3 released! Raspberry Pi 4 support"
description: "HassOS update: Raspberry Pi 4 now officially supported!"
date: 2019-12-17 00:00:00
date_formatted: "December 17, 2019"
author: Pascal Vizeli
author_twitter: pvizeli
categories: Announcements
og_image: /images/blog/2019-12-hassos-release-3/blogpost.png
---
A bit behind the original timeline, but we happy to announce, we've released version 3 of Hass.io Operating System: HassOS. Just in time for Christmas!
TL;DR; A quick summary of the changes:
- Official RPi4 support
- Linux LT 4.19
- Buildroot LT 2019
- USB-boot capabilities for the RPi3
- SMS integrations with USB/GSM modem
- Qemu Agent support
- Optimized kernel for virtual appliances
- Improved automatic disk expansion
- Initial foundation for offloading the data partition
## Raspberry Pi
We now officially support the Raspberry Pi 4 on this stable version of HassOS! The Raspberry Pi 4 is a great and powerful device to get you started on Hass.io and Home Assistant.
[@rbray89](https://github.com/rbray89) worked hard on this release to add the very often requested USB boot support! Please note, this is currently limited to RPi3 devices. Carefully read how the USB boot [works](https://github.com/home-assistant/hassos/blob/rel-3/Documentation/boards/raspberrypi.md#usb-boot) and be aware of the limited [supported hardware](https://community.home-assistant.io/t/hass-io-transfer-from-sd-card-to-ssd-or-usb/97452/19).
## Hypervisors / Running HassOS on a Virtual Machine
The HassOS image for virtual appliances did get some useful updates as well. We have optimized the Linux kernel to support more virtual hardware.
We have now included the QEMU Agent in HassOS. So if you are running on a Hypervisor that is QEMU based (e.g., Proxmox or Libvirt), you now have a lot more information in your Hypervisor control panel, proper shutdown support and improved support for backing up/snapshotting your virtual machine.
Finally, the automated disk expansion got some updates. So if you need more disk space in your virtual appliance, add it in your Hypervisor and HassOS automatically pick it up at the next boot.
We want to emphasize that running Hass.io as a virtual machine is the **only** supported method to run Hass.io on a virtualized system. We've lately seen some funky tutorials on how to run Hass.io inside a container like Docker or LXC, which we **DO NOT** recommend, you will end up having issues.
## How to update to HassOS 3
If you are already running HassOS, you have the full flavor of Hass.io, and thus, all the comfort it has to offer, making this upgrade a breeze!
To update via the user interface, go to the Home Assistant frontend, click on **Hass.io** in the sidebar to go into the Hass.io panel. Next, click on the System tab and press the **UPDATE** button in the "Host system" panel. In case the update isn't showing up yet, push the **RELOAD** button on the "Hass.io supervisor" box first, which makes your system look for updates instantly.
Another option is to use our powerful CLI, that is shipped with the SSH add-on. Run the following command to trigger the upgrade: `hassio os update --version 3.7`.
## Update 2019-12-18
After some confusion about the statement of supporting virtual environments and running Hass.io on top of a custom Linux; so let's clarify it.
The supported ways to run Hass.io are documented here: <https://www.home-assistant.io/hassio/installation/>
This also includes running Hass.io on Linux using the [Generic Linux](https://github.com/home-assistant/hassio-installer) installer, which is a supported method.
Hass.io runs partly on your local machine, but for most parts inside multiple containers. All installation types we list, respect this.
If you run VMWare, ProxMox or other virtualization environments, you can use the HassOS OVA/VMDK to run a virtual machine with. Or, if you like to use a Ubuntu VM, that will work with the supported generic Linux installer.
We **DO NOT** support any kind of LXC hacks like listed here: <https://github.com/whiskerz007/proxmox_hassio_lxc>. These setups try to put everything inside a **single** container, [which will cause you issues](https://community.home-assistant.io/t/hassio-installation-on-lxd-lxc-container-ubuntu-18-04/151543/2). Hass.io is not designed to run fully inside a containerized system, like LXC.
We hope this clarifies our earlier statement.

View File

@ -6,36 +6,41 @@ redirect_from:
- /getting-started/automation-2/
---
When your devices are set up, it's time to put the cherry on the pie: automation. In this guide we're going to create a simple automation rule to **turn on the lights when the sun sets**.
Once your devices are set up, it's time to put the cherry on the pie: automation. In this guide we're going to create a simple automation rule to **turn on the lights when the sun sets**.
In Home Assistant, open the menu by clicking on the top-left icon and click on configuration. Now click on automation. This is the automation screen from which you can manage all the automations in Home Assistant.
Click on the orange button at the bottom right to create a new automation. You are presented with a blank automation screen.
In the user interface, click Configuration in the sidebar, then click Automation. You will now see the automation screen from which you can manage all the automations in Home Assistant.
<p class='img'>
<img src='/images/getting-started/automation-new-blank.png'>
<img src='/images/getting-started/automation-editor.png'>
The automation editor.
</p>
The first thing we will do is to set a name. Enter "Turn Lights On at Sunset".
The second step is defining what should trigger our automation to run. In this case we want to use the event of the sun setting to trigger our automation. However, if we would turn on the lights when the sun actually sets, it would be too late as it already gets quite dark while it's setting. So we're going to add an offset.
In the trigger section, click on the dropdown and change trigger type to "Sun". It allows us to pick between sunrise and sunset, go ahead and pick sunset. As we discussed, we want our automation to be triggered a little before the sun actually sets, so let's add `-0:30` to the offset. This indicates that we will trigger 30 minutes before the sun actually sets, neat!
Click the orange button at the bottom right to create a new automation. You are presented with a blank automation screen.
<p class='img'>
<img src='/images/getting-started/automation-new-name-trigger.png'>
<img src='/images/getting-started/new-automation.png'>
The start of a new automation.
</p>
The first thing we will do is set a name. Enter "Turn Lights On at Sunset".
The second step is defining what should trigger our automation to run. In this case, we want to use the event of the sun setting to trigger our automation. However, if we would turn on the lights when the sun actually sets, it would be too late as it already gets quite dark while it's setting. So we're going to add an offset.
In the trigger section, click on the dropdown menu and change the trigger type to "Sun." It allows us to choose sunrise or sunset, so go ahead and pick sunset. As we discussed, we want our automation to be triggered a little before the sun actually sets, so let's add `-00:30` as the offset. This indicates that the automation will be triggered 30 minutes before the sun actually sets. Neat!
<p class='img'>
<img src='/images/getting-started/new-trigger.png'>
A new automation with a sun trigger filled in.
</p>
Once we have defined our trigger, scroll down to the action section. Make sure the action type is set to "Call Service" and change the service to `light.turn_on`. For this automation we're going to turn on all lights, so let's change the service data to:
Once we have defined our trigger, scroll down to the action section. Make sure the action type is set to "Call service," and change the service to `light.turn_on`. For this automation we're going to turn on all lights, so let's change the service data to:
```yaml
entity_id: all
```
<p class='img'>
<img src='/images/getting-started/automation-new-action.png'>
<img src='/images/getting-started/action.png'>
A new automation with the action set up to turn on the lights.
</p>

View File

@ -3,11 +3,11 @@ title: "Advanced Configuration"
description: "Instructions to get Home Assistant configured."
---
Until now we have been able to configure Home Assistant purely via the user interface. However, not all options are accessible via the user interface. The other options are accessible via the Home Assistant configuration file called `configuration.yaml`. A default one is created when Home Assistant started for the first time.
The onboarding process takes care of the initial setup for Home Assistant, such as naming your home and selecting your location. After initial onboarding, these options can be changed in the user interface by clicking on Configuration in the sidebar and clicking on General, or by manually editing them in the Home Assistant configuration file called `configuration.yaml`. This section will explain how to do the latter.
<div class='note'>
This final step of the getting started only applies if you've installed Home Assistant via Hass.io. If you've used another installation method, [see here](/docs/configuration/).
The steps below only apply if you've installed Home Assistant via Hass.io. If you've used another installation method, [see here](/docs/configuration/).
</div>
@ -24,20 +24,40 @@ Under the "Core" section you will find HASS Configurator.
- Now start the add-on by clicking on START.
- Open the user interface by clicking on OPEN WEB UI.
Now let's make a small change using the configurator: we are going to change the name and location of your Home Assistant installation.
Now let's make a change using the configurator: we are going to change the name, location, unit system, and time zone of your Home Assistant installation.
- Click the folder icon in the top left of the configurator window to open the file browser sidebar.
- Click the `configuration.yaml` file (in the `/config/` folder) to load it into the main Configurator edit window.
- Find the `homeassistant:` configuration block, which should be the first thing in `configuration.yaml`. In this block, update `name`, `latitude`, `longitude`, `unit_system` and `time_zone` to match yours.
- Add the following to this file (preferably at the very top, but it ultimately doesn't matter):
```yaml
homeassistant:
name: Home
latitude: xx.xxxx
longitude: xx.xxxx
unit_system: imperial
time_zone: America/Chicago
```
<div class='note'>
Valid options for `unit_system` are `imperial` or `metric`. See [here](https://timezonedb.com/time-zones) for a list of valid time zones. Enter the appropriate option found under the Time Zone column at that page.
</div>
- Click the save icon in the top right to commit changes.
- Most changes in `configuration.yaml` require Home Assistant to be restarted to see the changes. You can verify that your changes are acceptable by running a config check. Do this by clicking on Configuration in the sidebar, click on "Server Control" and click on the "CHECK CONFIG" button. When it's valid, it will show the text "Configuration valid!".
- Now Restart Home Assistant using the "restart" in the Server management section on the same page. In order for "Check Config" to be visible, you must enable "Advanced Mode" on your user profile.
- Most changes in `configuration.yaml` require Home Assistant to be restarted to see the changes. You can verify that your changes are acceptable by running a config check. Do this by clicking on Configuration in the sidebar, click on "Server Control" and click on the CHECK CONFIG button. When it's valid, it will show the text "Configuration valid!"
- Now Restart Home Assistant using the RESTART button in the Server management section on the same page. In order for "Check Config" to be visible, you must enable "Advanced Mode" on your user profile.
<p class='img'>
<img src='/images/screenshots/configuration-validation.png' />
Screenshot of the "General" page in the configuration panel.
</p>
<div class='note'>
If you have watched any videos about setting up Home Assistant using configuration.yaml (particularly ones that are old), you might notice your default configuration file is much smaller than what the videos show. Don't be concerned, you haven't done anything wrong. Many items in the default configuration files shown in those old videos are now included in the `default_config:` line that you see in your configuration file. [See here](/integrations/default_config/) for more information on what's included in that line.
</div>
### Editing config via Samba/Windows Networking
Maybe you are not a big fan of our web editor and want to use a text editor on your computer instead. This is possible by sharing the configuration over the network using the Samba add-on, which can also be installed from the Hass.io add-on store. This will make your configuration accessible via the network tab on your computer.

View File

@ -5,11 +5,35 @@ description: "Instructions to get Home Assistant configured."
Alright, you made it here. The tough part is done.
With Home Assistant installed, it's time for doing the initial configuration. Here you will create the owner account of Home Assistant. This account will be an administrator and will always be able to change everything. Enter a name, username, password and click on "create account".
With Home Assistant installed, it's time to configure it. Here you will create the owner account of Home Assistant. This account will be an administrator and will always be able to change everything. Enter a name, username, password and click on "create account".
Now you're brought to the main screen of Home Assistant: the states screen. The states screen will show all your devices. So let's get that screen filled up!
<p class='img'>
<img src='/images/getting-started/username.png' />
Set your username and password.
</p>
Open the menu on the top left and click on Configuration. On the next screen, click on Integrations. At this screen you will be able to set up integrations with Home Assistant. You might notice a "discovered" section, these are integrations that we found on your network and can easily be added with a few clicks. If your integrations are not discovered, find them in the list and click on configure.
Next, you can enter a name for your home and set your location and unit system. Click "DETECT" to find your location and set your time zone and unit system based on that location. If you'd rather not send your location, you can set these values manually.
<p class='img'>
<img src='/images/getting-started/location.png' />
Set your location, time zone, and unit system.
</p>
Once you are done, click Next. In this screen, Home Assistant will show any devices that it has discovered on your network. Don't be alarmed if you see fewer items than what is shown below; you can always manually add devices later.
<p class='img'>
<img src='/images/getting-started/devices.png' />
Discovery of devices on your network.
</p>
Finally, click Finish. Now you're brought to the Home Assistant web interface. This screen will show all of your devices. So let's get that screen filled up!
<p class='img'>
<img src='/images/getting-started/lovelace.png' />
The Home Assistant user interface.
</p>
Click on Configuration in the sidebar on the left. On the next screen, click on Integrations. At this screen you will be able to set up integrations with Home Assistant. You might notice a "discovered" section. This section contains integrations that were found on your network and can easily be added with a few clicks. If your integrations are not discovered, click the + button in the lower right and search for your integration in that list.
<p class='img'>
<img src='/images/getting-started/integrations.png' />
@ -18,6 +42,6 @@ The integrations page in the configurations panel shows you all your configured
When each integration is done setting up, it will ask you to put the new devices in areas. Areas allow you to organize all the devices in your home.
When you're done, navigate back to the states panel and voila, your devices are ready for you to control.
When you're done, navigate back to the web interface and voila, your devices are ready for you to control.
### [Next step: Automate Home Assistant &raquo;](/getting-started/automation/)

View File

@ -11,8 +11,8 @@ The following will take you through the steps required to install Hass.io.
- [Raspberry Pi 3 Model B and B+ 32bit][pi3-32] (recommended)
- [Raspberry Pi 3 Model B and B+ 64bit][pi3-64]
- [(RC) Raspberry Pi 4 Model B 32bit][pi4-32] (recommended)
- [(RC) Raspberry Pi 4 Model B 64bit][pi4-64]
- [Raspberry Pi 4 Model B 32bit][pi4-32] (recommended)
- [Raspberry Pi 4 Model B 64bit][pi4-64]
- [Tinkerboard][tinker]
- [Odroid-C2][odroid-c2]
- [Odroid-XU4][odroid-xu4]
@ -26,6 +26,12 @@ The following will take you through the steps required to install Hass.io.
- [VDI][vdi]
- [OVA][Virtual Appliance] (not available at this time!)
- Not recommended Hardware:
- [Raspberry Pi][pi1]
- [Raspberry Pi Zero-W][pi0-w]
- [Raspberry Pi 2][pi2]
2. Install Hass.io:
- Flash the downloaded image to an SD card using [balenaEtcher][balenaEtcher]. If using a Pi we recommend at least a 32 GB SD card to avoid running out of space. On Virtual machine platforms, provide at least 32 GB of disk space for the VM.
@ -45,7 +51,7 @@ The following will take you through the steps required to install Hass.io.
6. You will be able to reach your installation at `http://hassio.local:8123` (if your router supports mDNS, otherwise see below).
7. Enable either the [Samba add-on][samba] or the [SSH add-on][ssh] to manage your configuration in `/config/` (From the UI choose **Hass.io** which is located in the sidebar).
7. It is important to provide yourself proper access, including the Hass.io CLI tools. Both the [Samba add-on][samba] and the [SSH add-on][ssh] should be the first add-ons you should install, before making changes to the configuration in the `/config/` folder. From the UI choose **Hass.io**, which is located in the sidebar and then the add-on store.
<div class='note'>
@ -202,21 +208,21 @@ A detailed guide about running Hass.io as a virtual machine is available in the
[balenaEtcher]: https://www.balena.io/etcher
[Virtual Appliance]: https://github.com/home-assistant/hassos/blob/dev/Documentation/boards/ova.md
[hassos-network]: https://github.com/home-assistant/hassos/blob/dev/Documentation/network.md
[pi0-w]: https://github.com/home-assistant/hassos/releases/download/2.12/hassos_rpi0-w-2.12.img.gz
[pi1]: https://github.com/home-assistant/hassos/releases/download/2.12/hassos_rpi-2.12.img.gz
[pi2]: https://github.com/home-assistant/hassos/releases/download/2.12/hassos_rpi2-2.12.img.gz
[pi3-32]: https://github.com/home-assistant/hassos/releases/download/2.12/hassos_rpi3-2.12.img.gz
[pi3-64]: https://github.com/home-assistant/hassos/releases/download/2.12/hassos_rpi3-64-2.12.img.gz
[pi4-32]: https://github.com/home-assistant/hassos/releases/download/3.5/hassos_rpi4-3.5.img.gz
[pi4-64]: https://github.com/home-assistant/hassos/releases/download/3.5/hassos_rpi4-64-3.5.img.gz
[tinker]: https://github.com/home-assistant/hassos/releases/download/2.12/hassos_tinker-2.12.img.gz
[odroid-c2]: https://github.com/home-assistant/hassos/releases/download/2.12/hassos_odroid-c2-2.12.img.gz
[odroid-xu4]: https://github.com/home-assistant/hassos/releases/download/2.12/hassos_odroid-xu4-2.12.img.gz
[opi-prime]: https://github.com/home-assistant/hassos/releases/download/2.12/hassos_opi-prime-2.12.img.gz
[intel-nuc]: https://github.com/home-assistant/hassos/releases/download/2.12/hassos_intel-nuc-2.12.img.gz
[vmdk]: https://github.com/home-assistant/hassos/releases/download/2.12/hassos_ova-2.12.vmdk.gz
[vhdx]: https://github.com/home-assistant/hassos/releases/download/2.12/hassos_ova-2.12.vhdx.gz
[vdi]: https://github.com/home-assistant/hassos/releases/download/2.12/hassos_ova-2.12.vdi.gz
[pi0-w]: https://github.com/home-assistant/hassos/releases/download/3.7/hassos_rpi0-w-3.7.img.gz
[pi1]: https://github.com/home-assistant/hassos/releases/download/3.7/hassos_rpi-3.7.img.gz
[pi2]: https://github.com/home-assistant/hassos/releases/download/3.7/hassos_rpi2-3.7.img.gz
[pi3-32]: https://github.com/home-assistant/hassos/releases/download/3.7/hassos_rpi3-3.7.img.gz
[pi3-64]: https://github.com/home-assistant/hassos/releases/download/3.7/hassos_rpi3-64-3.7.img.gz
[pi4-32]: https://github.com/home-assistant/hassos/releases/download/3.7/hassos_rpi4-3.7.img.gz
[pi4-64]: https://github.com/home-assistant/hassos/releases/download/3.7/hassos_rpi4-64-3.7.img.gz
[tinker]: https://github.com/home-assistant/hassos/releases/download/3.7/hassos_tinker-3.7.img.gz
[odroid-c2]: https://github.com/home-assistant/hassos/releases/download/3.7/hassos_odroid-c2-3.7.img.gz
[odroid-xu4]: https://github.com/home-assistant/hassos/releases/download/3.7/hassos_odroid-xu4-3.7.img.gz
[opi-prime]: https://github.com/home-assistant/hassos/releases/download/3.7/hassos_opi-prime-3.7.img.gz
[intel-nuc]: https://github.com/home-assistant/hassos/releases/download/3.7/hassos_intel-nuc-3.7.img.gz
[vmdk]: https://github.com/home-assistant/hassos/releases/download/3.7/hassos_ova-3.7.vmdk.gz
[vhdx]: https://github.com/home-assistant/hassos/releases/download/3.7/hassos_ova-3.7.vhdx.gz
[vdi]: https://github.com/home-assistant/hassos/releases/download/3.7/hassos_ova-3.7.vdi.gz
[linux]: https://github.com/home-assistant/hassio-installer
[local]: http://hassio.local:8123
[samba]: /addons/samba/

Binary file not shown.

After

Width:  |  Height:  |  Size: 262 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 275 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

View File

@ -1,16 +1,28 @@
---
title: "Lovelace YAML mode"
description: "Advanced users can switch on the advanced YAML mode."
description: "Advanced users can switch on YAML mode for editing the Lovelace UI."
---
It is possible to write your Lovelace config in YAML instead of via the UI. To do so, you will need to configure the Lovelace integration to be in yaml mode by adding the following to your `configuration.yaml`:
It is possible to customize your Home Assistant interface by writing in YAML instead of via the UI. To do so, you configure the Lovelace integration to be in yaml mode by adding the following to your `configuration.yaml`:
```yaml
lovelace:
mode: yaml
```
Restart Home Assistant for the mode to be changed. Create a new file `<config>/ui-lovelace.yaml` and add the following content. Adjust the entity names to entities that exist in your Home Assistant installation.
Restart Home Assistant for the mode to be changed. Create a new file `<config>/ui-lovelace.yaml` and add your Lovelace configuration. A good way to start this file is to copy and paste the "Raw config" from the UI so your manual configuration starts the same as your existing UI.
- Go into the `Overview` tab.
- Click the three dots menu (top-right) and click on `Configure UI`.
- Click the three dots menu again and click on `Raw config editor`.
- There you see the config for your current Lovelace UI. Copy that into the `<config>/ui-lovelace.yaml` file.
Once you take control of your UI via YAML, the Home Assistant interface for modifying it won't be available anymore and new entities will not automatically be added to your UI.
When you make changes to `ui-lovelace.yaml`, you don't have to restart Home Assistant or refresh the page. Just hit the refresh button in the menu at the top of the UI.
To revert back to using the UI to edit your Lovelace interface, remove the `lovelace` section from your `configuration.yaml` and copy the contents of your `ui-lovelace.yaml` into the raw config section of Home Assistant and restart.
As a super minimal example, here's the bare minimum you will need for this to work:
@ -87,14 +99,3 @@ views:
content: >
Welcome to your **Lovelace UI**.
```
Your previously customized Lovelace UI won't be modifiable anymore and won't follow after you start writing code in the `<config>/ui-lovelace.yaml` file, but you can easily import it if you wish.
- Go in the `Overview` tab.
- Go in the three dots menu (top-right) and click on `Configure UI`.
- Go in the three dots menu again and click on `Raw config editor`.
- There you see the config for your actual Lovelace UI, you can copy that into the `<config>/ui-lovelace.yaml` file.
Navigate to `<YOUR HASS URL>/lovelace`. When you make changes to `ui-lovelace.yaml`, you don't have to restart Home Assistant or refresh the page. Just hit the refresh button in the menu at the top of the UI.
To revert back to using the UI to edit your Lovelace interface, remove the `lovelace` sections from your `configuration.yaml` and copy the contents of your `ui-lovelace.yaml` into the raw config section of Home Assistant and restart.