Merge branch 'current' into next

This commit is contained in:
Franck Nijhof 2018-11-11 13:42:51 +01:00
commit f018b188b8
No known key found for this signature in database
GPG Key ID: D62583BA8AB11CA3
45 changed files with 10502 additions and 1172 deletions

View File

@ -141,14 +141,14 @@ social:
# Home Assistant release details # Home Assistant release details
current_major_version: 0 current_major_version: 0
current_minor_version: 81 current_minor_version: 82
current_patch_version: 6 current_patch_version: 0
date_released: 2018-11-04 date_released: 2018-11-09
# Either # or the anchor link to latest release notes in the blog post. # Either # or the anchor link to latest release notes in the blog post.
# Must be prefixed with a # and have double quotes around it. # Must be prefixed with a # and have double quotes around it.
# Major release: # Major release:
patch_version_notes: "#release-0816---november-4" patch_version_notes: "#"
# Minor release (Example #release-0431---april-25): # Minor release (Example #release-0431---april-25):
# Date we moved to Discourse for comments # Date we moved to Discourse for comments

View File

@ -17,6 +17,9 @@ You can use this add-on to check whether your configuration files are valid agai
} }
``` ```
Configuration variables: {% configuration %}
version:
- **version** (*Required*): Version of Home Assistant that you plan to install. description: Version of Home Assistant that you plan to install.
required: true
type: string
{% endconfiguration %}

View File

@ -36,19 +36,63 @@ Create a simple DHCP server for your network and allow setting fixed IPs for dev
} }
``` ```
Configuration variables: {% configuration %}
domain:
- **domain** (*Required*): Your network domain name. description: Your network domain name.
- **dns** (*Required*): A list of DNS server for your network. required: true
- **networks** (*Optional*): A list of network to provide DHCP. type: string
 - **subnet** (*Required*): Your network schema. dns:
 - **netmask** (*Required*): Your network netmask. description: A list of DNS server for your network.
 - **range_start** (*Required*): Start address for dhcp leases. required: true
 - **range_end** (*Required*): End address for dhcp leases. type: list
 - **broadcast** (*Required*): Network broadcast address. networks:
 - **gateway** (*Required*): A List of gateways. description: A list of network to provide DHCP.
- **interface** (*Required*): Interface on that will be listen. Normally is `eth0` for ethernet wired connection and `wlan0` for wireless connection. required: false
- **hosts** (*Optional*): A list of fixed IPs for devices. type: list
- **name** (*Required*): Name/hostname of your device. keys:
 - **mac** (*Required*): Mac address of your device. subnet:
 - **ip** (*Required*): Fix ip address for device. description: Your network schema.
required: true
type: string
netmask:
description: Your network netmask.
required: true
type: string
range_start:
description: Start address for DHCP leases.
required: true
type: string
range_end:
description: End address for DHCP leases.
required: true
type: string
broadcast:
description: Network broadcast address.
required: true
type: string
gateway:
description: A List of gateways.
required: true
type: list
interface:
description: Interface on that will be listen. Normally is `eth0` for ethernet wired connection and `wlan0` for wireless connection.
required: true
type: string
hosts:
description: A list of fixed IPs for devices.
required: false
type: list
keys:
name:
description: Name/hostname of your device.
required: true
type: string
mac:
description: Mac address of your device.
required: true
type: string
ip:
description: Fix ip address for device.
required: true
type: string
{% endconfiguration %}

View File

@ -23,8 +23,17 @@ Setup and manage a [Dnsmasq](http://thekelleys.org.uk/dnsmasq/doc.html) DNS serv
} }
``` ```
Configuration variables: {% configuration %}
defaults:
- **defaults** (*Required*): A list of DNS servers to forward default requests to. description: A list of DNS servers to forward default requests to.
- **forwards** (*Optional*): A list of domains that will forward to a specific server. required: true
- **hosts** (*Optional*): A list of hosts to resolve statically. type: list
forwards:
description: A list of domains that will forward to a specific server.
required: false
type: list
hosts:
description: A list of hosts to resolve statically.
required: false
type: list
{% endconfiguration %}

View File

@ -38,7 +38,7 @@ Load and update configuration files for Home Assistant from a [Git](https://git-
} }
``` ```
- **repository** (*Required*): Git URL to your repository (make sure to use double quotes). You have to add `.git` to your GitHub repository URL (see example configuration) - **repository** (*Required*): Git URL to your repository (make sure to use double quotes). You have to add `.git` to your GitHub repository URL (see example configuration). The contents of the repository is assumed to be the root of Home Assistant `config/` folder. The configuration cannot be in a subdirectory, i.e., `configuration.yaml`, `groups.yaml`, etc. must be in the root of the repository.
- **git_branch** (*Required*): Branch name of the Git repo. If left empty, the currently checked out branch will be updated. Leave this as 'master' if you are unsure. - **git_branch** (*Required*): Branch name of the Git repo. If left empty, the currently checked out branch will be updated. Leave this as 'master' if you are unsure.
- **git_remote** (*Required*): Name of the tracked repository. Leave this as `origin` if you are unsure. - **git_remote** (*Required*): Name of the tracked repository. Leave this as `origin` if you are unsure.
- **git_prune** (*Required*): If set to true, the add-on will cleanup branches that are deleted on the remote repository, but still have cached entries on the local machine. Leave this as `false` if you are unsure. - **git_prune** (*Required*): If set to true, the add-on will cleanup branches that are deleted on the remote repository, but still have cached entries on the local machine. Leave this as `false` if you are unsure.

View File

@ -72,7 +72,7 @@ Configuration example that uses the USB microphone and the built-in headset audi
mic: mic:
description: This is the hardware address of your microphone. Look at the add-on output. description: This is the hardware address of your microphone. Look at the add-on output.
required: true required: true
type: string type: float
speaker: speaker:
description: This is the hardware address of your speakers. Look at the add-on output. description: This is the hardware address of your speakers. Look at the add-on output.
required: true required: true

View File

@ -53,7 +53,7 @@ This add-on is attached to the Home Assistant user system, so mqtt clients can m
### {% linkable_title Home Assistant configuration %} ### {% linkable_title Home Assistant configuration %}
To use the Mosquitto as [broker](/docs/mqtt/broker/#run-your-own), go to the integration page and install the configuration with one click. If you have old mqtt settings available, remove this old integration and restart Home Assistant to see the new one. To use the Mosquitto as [broker](/docs/mqtt/broker/#run-your-own), go to the integration page and install the configuration with one click. If you have old MQTT settings available, remove this old integration and restart Home Assistant to see the new one.
### {% linkable_title Disable listening on insecure (1883) ports %} ### {% linkable_title Disable listening on insecure (1883) ports %}

View File

@ -51,12 +51,20 @@ Now it's time to start Snips for the first time. You can configure the microphon
} }
``` ```
Configuration variables: {% configuration %}
assistant:
- **assistant**: The name of your custom assistant in `/share`. If no assistant is found then a default assistant will be used. description: The name of your custom assistant in `/share`. If no assistant is found then a default assistant will be used.
- **language**: Language. This is used to select the default custom assistant, Currently `en`, `de` and `fr` are supported. type: string
- **custom_tts**: Whether to use a TTS provider from Home Assistant for a variety of voices. language:
- **tts_platform**: Which TTS platform to use. description: Language. This is used to select the default custom assistant, Currently `en`, `de` and `fr` are supported.
type: string
custom_tts:
description: Whether to use a TTS provider from Home Assistant for a variety of voices.
type: boolean
tts_platform:
description: Which TTS platform to use.
type: string
{% endconfiguration %}
### {% linkable_title Home Assistant configuration %} ### {% linkable_title Home Assistant configuration %}
@ -89,6 +97,7 @@ Next create a weather sensor, e.g., one for (Dark Sky)[/components/sensor.darksk
- temperature_max - temperature_max
- temperature_min - temperature_min
``` ```
Next add this to your `configuration.yaml` file to reference a new `intent_script` component. This is a good practice to [split your configuration files](/docs/configuration/splitting_configuration/) up. Next add this to your `configuration.yaml` file to reference a new `intent_script` component. This is a good practice to [split your configuration files](/docs/configuration/splitting_configuration/) up.
```yaml ```yaml
@ -98,6 +107,7 @@ intent_script: !include intent_script.yaml
Finally, create this `intent_script.yaml` file in your configuration directory. Finally, create this `intent_script.yaml` file in your configuration directory.
{% raw %} {% raw %}
```yaml ```yaml
searchWeatherForecast: searchWeatherForecast:
speech: speech:
@ -110,6 +120,7 @@ searchWeatherForecast:
{{ states('sensor.dark_sky_weather_daily_high_temperature') | round(0)}} {{ states('sensor.dark_sky_weather_daily_high_temperature') | round(0)}}
and {{ states('sensor.dark_sky_weather_hourly_summary') }} and {{ states('sensor.dark_sky_weather_hourly_summary') }}
``` ```
{% endraw %} {% endraw %}
Now just restart HassIO and ask it what the weather is like. Now just restart HassIO and ask it what the weather is like.

View File

@ -35,3 +35,7 @@ port:
type: integer type: integer
default: 3551 default: 3551
{% endconfiguration %} {% endconfiguration %}
<p class='note'>
If you get `ConnectionRefusedError: Connection refused` errors in the Home assistant logs, ensure the [APCUPSd](http://www.apcupsd.org/) configuration directives used by its Network Information Server is set to permit connections from all addresses [NISIP 0.0.0.0](http://www.apcupsd.org/manual/manual.html#configuration-directives-used-by-the-network-information-server), else non-local addesses will not connect. This includes Hass.io running in Docker, even when hosted on the same machine or a virtual machine.
</p>

View File

@ -18,7 +18,8 @@ The current functionality allows setting the temperature as well as controlling
As the device doesn't contain a temperature sensor ([read more](https://forum.fhem.de/index.php/topic,39308.15.html)), As the device doesn't contain a temperature sensor ([read more](https://forum.fhem.de/index.php/topic,39308.15.html)),
we report target temperature also as current one. we report target temperature also as current one.
### Testing the connectivity ### ### {% linkable_title Testing the connectivity %}
Before configuring Home Assistant you should check that connectivity with the thermostat is working, which can be done with the eq3cli tool: Before configuring Home Assistant you should check that connectivity with the thermostat is working, which can be done with the eq3cli tool:
```bash ```bash
@ -32,9 +33,9 @@ Boost: False
Current target temp: 21.0 Current target temp: 21.0
Current mode: auto dst Current mode: auto dst
Valve: 0 Valve: 0
``` ```
### Configuration ### ### {% linkable_title Configuration %}
```yaml ```yaml
# Example configuration.yaml entry # Example configuration.yaml entry
@ -45,9 +46,19 @@ climate:
mac: '00:11:22:33:44:55' mac: '00:11:22:33:44:55'
``` ```
Configuration variables: {% configuration %}
devices:
- **devices** array (*Required*): List of thermostats. description: List of thermostats.
- **[device-name]** (*Required*): The name to use for the thermostat. required: true
- **mac** (*Required*): MAC address of the thermostat. type: list
keys:
name:
description: The name to use for the thermostat.
required: true
type: string
keys:
mac:
description: MAC address of the thermostat.
required: true
type: string
{% endconfiguration %}

View File

@ -26,14 +26,27 @@ cover:
scs_id: XXXXX scs_id: XXXXX
``` ```
Configuration variables: {% configuration %}
devices:
- **devices** array (*Required*): A list of devices. description: A list of devices.
- **[slug]** (*Required*): Slug of the device. required: true
- **name** (*Required*): Name to use in the frontend. type: list
- **scs_id** (*Required*): The ID of your SCSGate device. keys:
slug:
description: Slug of the device.
required: true
type: list
keys:
name:
description: Name to use in the frontend.
required: true
type: string
scs_id:
description: The ID of your SCSGate device.
required: true
type: string
{% endconfiguration %}
<p class='note'> <p class='note'>
**Known limitation:** It is not possible to know the current state of the cover. **Known limitation:** It is not possible to know the current state of the cover.
</p> </p>

View File

@ -1,6 +1,6 @@
--- ---
layout: page layout: page
title: "TP-Link" title: "TP-Link Router"
description: "Instructions on how to integrate TP-Link routers into Home Assistant." description: "Instructions on how to integrate TP-Link routers into Home Assistant."
date: 2015-06-22 10:30 date: 2015-06-22 10:30
sidebar: true sidebar: true
@ -13,7 +13,7 @@ ha_release: pre 0.7
--- ---
The `tplink` platform allows you to detect presence by looking at connected devices to a [TP-Link](https://www.tp-link.com) device. The `tplink` platform allows you to detect presence by looking at connected devices to a [TP-Link](https://www.tp-link.com) router.
Currently supported devices includes the following: Currently supported devices includes the following:

View File

@ -15,6 +15,10 @@ ha_iot_class: "Local Push"
The `doorbird` implementation allows you to integrate your [DoorBird](http://www.doorbird.com/) device in Home Assistant. The `doorbird` implementation allows you to integrate your [DoorBird](http://www.doorbird.com/) device in Home Assistant.
## {% linkable_title Setup %}
The user, which you are going to use with Home Assistant, needs the "API-Operator" permission enabled.
## {% linkable_title Configuration %} ## {% linkable_title Configuration %}
To connect your device, add the following to your `configuration.yaml` file: To connect your device, add the following to your `configuration.yaml` file:
@ -22,20 +26,11 @@ To connect your device, add the following to your `configuration.yaml` file:
```yaml ```yaml
# Example configuration.yaml entry # Example configuration.yaml entry
doorbird: doorbird:
token: RANDOM_STRING token: YOUR_DOORBIRD_TOKEN
devices: devices:
- host: DOORBIRD_IP_OR_HOSTNAME - host: DOORBIRD_IP_OR_HOSTNAME
username: YOUR_USERNAME username: YOUR_USERNAME
password: YOUR_PASSWORD password: YOUR_PASSWORD
hass_url_override: HASS_URL
name: Front Door
- host: DOORBIRD_IP_OR_HOSTNAME
username: YOUR_USERNAME
password: YOUR_PASSWORD
name: Driveway Gate
monitored_conditions:
- doorbell
- motion
``` ```
{% configuration %} {% configuration %}
@ -76,13 +71,35 @@ devices:
doorbell: doorbell:
description: Monitor doorbell events description: Monitor doorbell events
motion: motion:
description: Monitor motion events (Motion monitoring must be enabled on the doorstation via DoorBird app) description: Monitor motion events (Motion monitoring must be enabled on the doorstation via DoorBird app).
{% endconfiguration %} {% endconfiguration %}
The configuration above is also used by the following components: The configuration above is also used by the following platforms:
- [Camera](../camera.doorbird) - View live and historical event based images
- [Switch](../switch.doorbird) - Enable control of relays and camera night vision - [Camera](/components/camera.doorbird): View live and historical event based images.
- [Switch](/components/switch.doorbird): Enable control of relays and camera night vision.
## {% linkable_title Full example %}
```yaml
doorbird:
token: YOUR_DOORBIRD_TOKEN
devices:
- host: DOORBIRD_IP_OR_HOSTNAME
username: YOUR_USERNAME
password: YOUR_PASSWORD
hass_url_override: HASS_URL
name: Front Door
- host: DOORBIRD_IP_OR_HOSTNAME
username: YOUR_USERNAME
password: YOUR_PASSWORD
name: Driveway Gate
monitored_conditions:
- doorbell
- motion
```
## {% linkable_title Motion and Doorbell Events %} ## {% linkable_title Motion and Doorbell Events %}
@ -104,6 +121,7 @@ The URLs on the event will be based on the configuration used to connect to your
</p> </p>
### {% linkable_title Automation Example %} ### {% linkable_title Automation Example %}
```yaml ```yaml
- alias: Doorbird Ring - alias: Doorbird Ring
trigger: trigger:

View File

@ -46,7 +46,7 @@ Since release 0.80, the `Authorization Code` type of `OAuth` account linking is
- Click 'Save' at the top right corner, then click 'Test' to generate a new draft version of the Test App. - Click 'Save' at the top right corner, then click 'Test' to generate a new draft version of the Test App.
2. Change your `configuration.yaml` file: 2. Change your `configuration.yaml` file:
- Remove `client_id`, `access_token`, `agent_user_id` config from `google_assistant:` since they are no longer needed. - Remove `client_id`, `access_token`, `agent_user_id` config from `google_assistant:` since they are no longer needed.
3. Restart Home Assistant, open the `Google Assistant` app on your mobile phone then go to `Settings > Home Control`, re-link `[test] your app name`. 3. Restart Home Assistant, open the `Google Home` app on your mobile phone then go to `Account > Settings > Assistant > Home Control`, press the `3 dot icon in the top right > Manage accounts > [test] your app name > Unlink account` Then relink your account by selecting `[test] your app name` again.
4. A browser will be open and asking you to login to your Home Assistant instance, it will redirect back to `Google Assistant` app right afterward. 4. A browser will be open and asking you to login to your Home Assistant instance, it will redirect back to `Google Assistant` app right afterward.
<p class='note'> <p class='note'>
@ -76,9 +76,9 @@ You need to create an API Key with the [Google Cloud API Console](https://consol
<img src='/images/components/google_assistant/accountlinking.png' alt='Screenshot: Account linking'> <img src='/images/components/google_assistant/accountlinking.png' alt='Screenshot: Account linking'>
3. Back on the overview page. Click `Simulator` under `TEST`. It will create a new draft version Test App. You don't have to actually test, but you need to generate this draft version Test App. 3. Back on the overview page. Click `Simulator` under `TEST`. It will create a new draft version Test App. You don't have to actually test, but you need to generate this draft version Test App.
4. If you haven't already added the component configuration to `configuration.yaml` file and restarted Home Assistant, you'll be unable to continue until you have. 4. Add the `google_assistant` component configuration to your `configuration.yaml` file and restart Home Assistant following the [configuration guide](#configuration) below.
5. Open the Google Assistant app and go into `Settings > Home Control`. 5. Open the Google Home app and go into `Account > Settings > Assistant > Home Control`.
6. Click the `+` sign, and near the bottom, you should have `[test] your app name`. 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. 6. Click the `+` sign, and near the bottom, 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.
<p class='note'> <p 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 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.
</p> </p>

View File

@ -12,7 +12,7 @@ ha_category: Organization
ha_qa_scale: internal ha_qa_scale: internal
--- ---
Groups allow the user to combine multiple entities into one. A group can be promoted to a **view** by setting `view: yes` under the group definition. This will make the group available as a new tab in the frontend. Groups allow the user to combine multiple entities into one. A group can be promoted to a **view** by setting `view: true` under the group definition. This will make the group available as a new tab in the frontend.
Check the **Set State** <img src='/images/screenshots/developer-tool-states-icon.png' class='no-shadow' height='38' /> page from the **Developer Tools** and browse the **Current entities:** listing for all available entities. Check the **Set State** <img src='/images/screenshots/developer-tool-states-icon.png' class='no-shadow' height='38' /> page from the **Developer Tools** and browse the **Current entities:** listing for all available entities.
@ -22,7 +22,7 @@ By default, every group appears in the HOME tab. If you create a group `default_
# Example configuration.yaml entry # Example configuration.yaml entry
group: group:
default_view: default_view:
view: yes view: true
icon: mdi:home icon: mdi:home
entities: entities:
- group.kitchen - group.kitchen
@ -35,7 +35,7 @@ group:
upstairs: upstairs:
name: Kids name: Kids
icon: mdi:account-multiple icon: mdi:account-multiple
view: yes view: true
entities: entities:
- input_boolean.notify_home - input_boolean.notify_home
- camera.demo_camera - camera.demo_camera
@ -43,13 +43,13 @@ group:
- group.garden - group.garden
climate: climate:
name: Climate name: Climate
view: no view: false
entities: entities:
- sensor.bedroom_temp - sensor.bedroom_temp
- sensor.porch_temp - sensor.porch_temp
awesome_people: awesome_people:
name: Awesome People name: Awesome People
view: no view: false
entities: entities:
- device_tracker.dad_smith - device_tracker.dad_smith
- device_tracker.mom_smith - device_tracker.mom_smith
@ -78,7 +78,7 @@ entities:
type: list type: list
all: all:
description: Set this to `true` if the group state should only turn *on* if **all** grouped entities are *on*. description: Set this to `true` if the group state should only turn *on* if **all** grouped entities are *on*.
required: false required: false
type: boolean type: boolean
{% endconfiguration %} {% endconfiguration %}
@ -89,7 +89,7 @@ Example of groups shown as views in the frontend.
If all entities in a group are switches or lights then Home Assistant adds a switch at the top of the card that turns them all on/off at once. If you want to hide this switch, set `control` to `hidden`. If all entities in a group are switches or lights then Home Assistant adds a switch at the top of the card that turns them all on/off at once. If you want to hide this switch, set `control` to `hidden`.
You can create views (tabs) that contain other groups (but not other groups which are marked as `view: yes`). You can create views (tabs) that contain other groups (but not other groups which are marked as `view: true`).
Notice in the example below that in order to refer to the group "Living Room", you use `group.living_room` (lowercase and spaces replaced with underscores). Notice in the example below that in order to refer to the group "Living Room", you use `group.living_room` (lowercase and spaces replaced with underscores).
```yaml ```yaml
@ -101,7 +101,7 @@ Notice in the example below that in order to refer to the group "Living Room", y
- binary_sensor.motion_living - binary_sensor.motion_living
Bedroom: light.light_bedroom, switch.sleeping Bedroom: light.light_bedroom, switch.sleeping
Rooms: Rooms:
view: yes view: true
name: Rooms name: Rooms
entities: entities:
- group.living_room - group.living_room
@ -132,7 +132,7 @@ customize:
group: group:
automation_view: automation_view:
name: Automation name: Automation
view: yes view: true
entities: entities:
- group.all_automations - group.all_automations
- group.all_scripts - group.all_scripts
@ -155,7 +155,7 @@ customize:
group: group:
automation_view: automation_view:
name: Automation name: Automation
view: yes view: true
entities: entities:
- group.all_automations - group.all_automations
- group.all_scripts - group.all_scripts

View File

@ -22,7 +22,7 @@ The `tensorflow` image processing platform allows you to detect and recognize ob
## {% linkable_title Setup %} ## {% linkable_title Setup %}
You need to install the `tensorflow` Python packages with: `$ pip3 install tensorflow`. The wheel is not available for all platforms. See [the official install guide](https://www.tensorflow.org/install/) for other options. Hass.io has this package pre-installed. 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 has this package pre-installed.
This component 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: This component 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

@ -27,3 +27,5 @@ The `entity_id` names will be `light.device_name`, where `device_name` is define
- OSRAM Gardenpole RGBW - OSRAM Gardenpole RGBW
- Philips Hue White A19 - Philips Hue White A19
- Philips Hue White Ambiance A19 - Philips Hue White Ambiance A19
- Philips Hue Hue White ambiance Milliskin (recessed spotlight) LTW013
- Busch Jaeger ZigBee Light Link univ. relai (6711 U) with ZigBee Light Link control element 6735-84

View File

@ -14,9 +14,9 @@ ha_iot_class: "Assumed State"
ha_release: pre 0.7 ha_release: pre 0.7
--- ---
`limitlessled` can control your LimitlessLED lights from within Home Assistant. The lights are also known as EasyBulb, AppLight, AppLamp, [MiLight](http://www.milight.com/), LEDme, dekolight, or iLight. `limitlessled` can control your LimitlessLED lights from within Home Assistant. The lights are also known as EasyBulb, AppLight, AppLamp, [MiLight](http://www.milight.com/), LEDme, dekolight, or iLight.
LimitlessLED bulbs are controlled via groups, so you can only control an individual bulb via the bridge if it is in a group by itself. LimitlessLED bulbs are controlled via groups, so you can only control an individual bulb via the bridge if it is in a group by itself.
Note: you can assign an `rgbw`, `rgbww`, `white` and `dimmer` group to the same group number, effectively allowing up to 16 groups (4 `rgbww`, 4 `rgbw`, 4 `white` and 4 `dimmer`) per bridge. Note: you can assign an `rgbw`, `rgbww`, `white` and `dimmer` group to the same group number, effectively allowing up to 16 groups (4 `rgbww`, 4 `rgbw`, 4 `white` and 4 `dimmer`) per bridge.
@ -24,7 +24,7 @@ An archive of the extensive API can be found [here](https://github.com/Fantasmos
### {% linkable_title Setup %} ### {% linkable_title Setup %}
Before configuring Home Assistant, make sure you can control your bulbs or LEDs with the MiLight mobile application. Next, discover your bridge(s) IP address. You can do this via your router or a mobile application like Fing ([android](https://play.google.com/store/apps/details?id=com.overlook.android.fing&hl=en) or [iTunes](https://itunes.apple.com/us/app/fing-network-scanner/id430921107?mt=8)). Before configuring Home Assistant, make sure you can control your bulbs or LEDs with the MiLight mobile application. Next, discover your bridge(s) IP address. You can do this via your router or a mobile application like Fing ([android](https://play.google.com/store/apps/details?id=com.overlook.android.fing&hl=en) or [iTunes](https://itunes.apple.com/us/app/fing-network-scanner/id430921107?mt=8)).
To add `limitlessled` to your installation, add the following to your `configuration.yaml` file: To add `limitlessled` to your installation, add the following to your `configuration.yaml` file:
@ -43,7 +43,7 @@ light:
- number: 3 - number: 3
type: rgbw type: rgbw
name: Kitchen name: Kitchen
fade: on fade: true
- number: 4 - number: 4
type: dimmer type: dimmer
name: Livingroom name: Livingroom
@ -56,17 +56,50 @@ light:
name: Bridge Light name: Bridge Light
``` ```
Configuration variables: {% configuration %}
bridges:
- **bridges** array (*Required*): description: A list of bridges.
- **host** (*Required*): IP address of the device, eg. `192.168.1.32` required: true
- **version** (*Optional*): Bridge version (default is `6`). type: list
- **port** (*Optional*): Bridge port. Defaults to `5987`. For older bridges than `v6` choose `8899`. keys:
- **groups** array (*Required*): The list of available groups. host:
- **number** (*Required*): Group number (`1`-`4`). Corresponds to the group number on the remote. These numbers may overlap only if the type is different. description: IP address of the device, e.g., `192.168.1.32`.
- **name** (*Required*): Any name you'd like. Must be unique among all configured groups. required: true
- **type** (*Optional*): Type of group. Choose either `rgbww`, `rgbw`, `white`, `bridge-led` or `dimmer`. `rgbw` is the default if you don't specify this entry. Use `bridge-led` to control the built-in LED of newer WiFi bridges. type: string
- **fade** (*Optional*): Fade behavior. Defaults to `off`. If turned on, the group is faded out before being turned off. This makes for a more pleasing transition at the expense of wall switch usability since the light will turn back on at the lowest brightness if it is power cycled. version:
description: Bridge version.
required: false
default: 6
type: integer
port:
description: Bridge port. For older bridges than `v6` choose `8899`.
required: false
default: 5987
type: integer
groups:
description: The list of available groups.
required: true
type: list
keys:
number:
description: Group number (`1`-`4`). Corresponds to the group number on the remote. These numbers may overlap only if the type is different.
required: true
type: integer
name:
description: Any name you'd like. Must be unique among all configured groups.
required: true
type: string
type:
description: Type of group. Choose either `rgbww`, `rgbw`, `white`, `bridge-led` or `dimmer`. Use `bridge-led` to control the built-in LED of newer WiFi bridges.
required: false
default: rgbw
type: string
fade:
description: Fade behavior. If turned on (true), the group is faded out before being turned off. This makes for a more pleasing transition at the expense of wall switch usability since the light will turn back on at the lowest brightness if it is power cycled.
required: false
default: false
type: boolean
{% endconfiguration %}
### {% linkable_title Night Effect %} ### {% linkable_title Night Effect %}
@ -102,8 +135,8 @@ Refer to the [light]({{site_root}}/components/light/) documentation for general
- *Temperature*: Wifi bridge v6 supports 101 temperature steps; older versions only 10. - *Temperature*: Wifi bridge v6 supports 101 temperature steps; older versions only 10.
- *Brightness*: Wifi bridge v6 supports 101 brightness steps; older versions only 10. - *Brightness*: Wifi bridge v6 supports 101 brightness steps; older versions only 10.
- **Dimmer** (Only supported on v6 bridges) - **Dimmer** (Only supported on v6 bridges)
- This type is for a single color LED dimmer like the 1CH MiLight dimmer module or similar. This type is only supported by the version 6 Wifi bridges. - This type is for a single color LED dimmer like the 1CH MiLight dimmer module or similar. This type is only supported by the version 6 Wifi bridges.
- *Brightness*: Wifi bridge v6 supports 101 brightness steps. - *Brightness*: Wifi bridge v6 supports 101 brightness steps.
- **Transitions** - **Transitions**
- If a transition time is set, the group will transition between the current settings and the target settings for the duration specified. Transitions from or to white are not possible - the color will change immediately. - If a transition time is set, the group will transition between the current settings and the target settings for the duration specified. Transitions from or to white are not possible - the color will change immediately.

View File

@ -33,15 +33,39 @@ light:
type: simple type: simple
``` ```
Configuration variables: {% configuration %}
leds:
- **leds** array (*Required*): Can contain multiple LEDs. description: Can contain multiple LEDs.
- **name** (*Required*): The name of the LED. required: true
- **driver** (*Required*): The driver which controls the LED. Choose either `gpio` or `pca9685`. type: list
- **pins** (*Required*): The pins connected to the LED as a list.. The order of pins is determined by the specified type. keys:
- **type** (*Required*): The type of LED. Choose either `rgb`, `rgbw` or `simple`. name:
- **freq** (*Optional*): The PWM frequency. (Default: `200`) description: The name of the LED.
- **address** (*Optional*): The address of the PCA9685 driver. (Default: `0x40`) required: true
type: string
driver:
description: The driver which controls the LED. Choose either `gpio` or `pca9685`.
required: true
type: string
pins:
description: The pins connected to the LED as a list. The order of pins is determined by the specified type.
required: true
type: [list, integer]
type:
description: The type of LED. Choose either `rgb`, `rgbw` or `simple`.
required: true
type: string
freq:
description: The PWM frequency.
required: false
default: 200
type: integer
address:
description: The address of the PCA9685 driver.
required: false
default: 0x40
type: string
{% endconfiguration %}
## {% linkable_title Examples %} ## {% linkable_title Examples %}

View File

@ -28,7 +28,7 @@ Supported devices:
- Marantz M-CR603 - Marantz M-CR603
- Marantz M-RC610 - Marantz M-RC610
- Marantz SR5008 - Marantz SR5008
- Marantz SR6007 - SR6010 - Marantz SR6007 - SR6010
- Marantz NR1506 - Marantz NR1506
- Marantz NR1604 - Marantz NR1604
- Other Denon AVR receivers (untested) - Other Denon AVR receivers (untested)
@ -53,15 +53,39 @@ media_player:
name: NAME name: NAME
``` ```
Configuration variables: {% configuration %}
host:
- **host** (*Optional*): IP address of the device. Example: 192.168.1.32. If not set, auto-discovery is used. description: IP address of the device, e.g., 192.168.1.32. If not set, auto-discovery is used.
- **name** (*Optional*): Name of the device. If not set, friendlyName of the receiver is used. required: false
- **show_all_sources** (*Optional*): If True all sources are displayed in sources list even if they are marked as deleted in the receiver. If False deleted sources are not displayed (default). Some receivers have a bug that marks all sources as deleted in the interface. In this case, this option could help. type: string
- **timeout** (*Optional*): Timeout for HTTP requests to the receiver. Defaults to 2 seconds if not provided. name:
- **zones** (*Optional*): List of additional zones to be activated. They are displayed as additional media players with the same functionality Main Zone of the device supports description: Name of the device. If not set, friendlyName of the receiver is used.
- **zone**: Zone which should be activated. Valid options are Zone2 and Zone3 required: false
- **name** (*Optional*): Name of the zone. If not set the name of the main device + zone as a suffix is taken. type: string
show_all_sources:
description: If True all sources are displayed in sources list even if they are marked as deleted in the receiver. If False deleted sources are not displayed. Some receivers have a bug that marks all sources as deleted in the interface. In this case, this option could help.
required: false
default: false
type: boolean
timeout:
description: Timeout in seconds for HTTP requests to the receiver.
required: false
default: 2
type: integer
zones:
description: List of additional zones to be activated. They are displayed as additional media players with the same functionality Main Zone of the device supports.
required: false
type: list
keys:
zone:
description: Zone which should be activated. Valid options are `Zone2` and `Zone3`.
required: true
type: string
name:
description: Name of the zone. If not set the name of the main device + zone as a suffix is taken.
required: false
type: string
{% endconfiguration %}
A few notes: A few notes:

View File

@ -68,6 +68,7 @@ Currently known supported models:
- EH5600 - EH5600
- ES5500 - ES5500
- ES6800 - ES6800
- F4580
- F6300 - F6300
- F6400 - F6400
- F6400AF - F6400AF

View File

@ -29,9 +29,22 @@ notify:
- service: html5_nexus - service: html5_nexus
``` ```
Configuration variables: {% configuration %}
name:
- **name** (*Required*): Setting the parameter `name` sets the name of the group. description: Setting the parameter `name` sets the name of the group.
- **services** (*Required*): A list of all the services to be included in the group. required: true
- **service** (*Required*): The service part of an entity ID, i.e. if you use `notify.html5` normally, just put `html5`. Note that you must put everything in lower case here. Although you might have capitals written in the actual notification services! type: string
- **data** (*Optional*): A dictionary containing parameters to add to all notify payloads. This can be anything that is valid to use in a payload, such as `data`, `message`, `target`, `title`. services:
description: A list of all the services to be included in the group.
required: true
type: list
keys:
service:
description: The service part of an entity ID, e.g. if you use `notify.html5` normally, just put `html5`. Note that you must put everything in lower case here. Although you might have capitals written in the actual notification services!
required: true
type: string
data:
description: A dictionary containing parameters to add to all notify payloads. This can be anything that is valid to use in a payload, such as `data`, `message`, `target` or `title`.
required: false
type: string
{% endconfiguration %}

View File

@ -12,7 +12,6 @@ ha_category: Notifications
ha_release: 0.36 ha_release: 0.36
--- ---
The `lannouncer` notification platform allows you to play spoken messages (TTS) or sounds on an Android device running [Lannouncer](http://www.keybounce.com/lannouncer/). This can be useful when you have a wall mounted Android tablet, or an Android device that is permanently powered and turned on and want to use that to play notifications. The `lannouncer` notification platform allows you to play spoken messages (TTS) or sounds on an Android device running [Lannouncer](http://www.keybounce.com/lannouncer/). This can be useful when you have a wall mounted Android tablet, or an Android device that is permanently powered and turned on and want to use that to play notifications.
To enable Lannouncer notifications in your installation, add the following to your `configuration.yaml` file: To enable Lannouncer notifications in your installation, add the following to your `configuration.yaml` file:
@ -25,11 +24,22 @@ notify:
host: HOSTNAME_OR_IP host: HOSTNAME_OR_IP
``` ```
Configuration variables: {% configuration %}
name:
- **name** (*Optional*): Setting the optional parameter `name` allows multiple notifiers to be created. The default value is `notify`. The notifier will bind to the service `notify.NOTIFIER_NAME`. description: Setting the optional parameter `name` allows multiple notifiers to be created. The notifier will bind to the service `notify.NOTIFIER_NAME`.
- **host** (*Required*): The hostname or IP-address of the Android device that is running Lannouncer. required: false
- **port** (*Optional*): The port on which Lannouncer is running. By default this is `1035`. default: notify
type: string
host:
description: The hostname or IP-address of the Android device that is running Lannouncer.
required: true
type: string
port:
description: The port on which Lannouncer is running.
required: false
default: 1035
type: integer
{% endconfiguration %}
### {% linkable_title Installation %} ### {% linkable_title Installation %}

View File

@ -14,6 +14,12 @@ ha_release: 0.16
The `MessageBird` notification platform sends notifications as SMS messages using [MessageBird](https://www.messagebird.com/) to your mobile phone. The `MessageBird` notification platform sends notifications as SMS messages using [MessageBird](https://www.messagebird.com/) to your mobile phone.
## {% linkable_title Setup %}
Go to https://www.messagebird.com/ to retrieve your API key.
## {% linkable_title Configuration %}
To enable MessageBird notifications in your installation, add the following to your `configuration.yaml` file: To enable MessageBird notifications in your installation, add the following to your `configuration.yaml` file:
```yaml ```yaml
@ -24,11 +30,22 @@ notify:
api_key: YOUR_API_KEY api_key: YOUR_API_KEY
``` ```
Configuration variables: {% configuration %}
api_key:
- **api_key** (*Required*): Enter the API key for MessageBird. Go to https://www.messagebird.com/ to retrieve your API key. description: Your MessageBird API key.
- **name** (*Optional*): Setting the optional parameter `name` allows multiple notifiers to be created. The default value is `notify`. The notifier will bind to the service `notify.NOTIFIER_NAME`. required: true
- **sender** (*Optional*): Setting the optional parameter `sender`. This will be the sender of the SMS. It may be either a telephone number (e.g., `+4915112345678`) or a text with a maximum length of 11 characters. Defaults to `HA`. type: string
name:
description: Setting the optional parameter `name` allows multiple notifiers to be created. The notifier will bind to the service `notify.NOTIFIER_NAME`.
required: false
default: notify
type: string
sender:
description: Setting the optional parameter `sender`. This will be the sender of the SMS. It may be either a telephone number (e.g., `+4915112345678`) or a text with a maximum length of 11 characters.
required: false
default: HA
type: string
{% endconfiguration %}
### {% linkable_title Usage %} ### {% linkable_title Usage %}

View File

@ -12,7 +12,6 @@ ha_category: Notifications
ha_release: 0.32 ha_release: 0.32
--- ---
Notification platform for [Notifications for Android TV](https://play.google.com/store/apps/details?id=de.cyberdream.androidtv.notifications.google) and [Notifications for FireTV](https://play.google.com/store/apps/details?id=de.cyberdream.firenotifications.google). You can use this plarform to send notifications to your Android TV device. An overlay with the message content will appear for a configurable amount of seconds and then disapper again. Sending images (e.g., security cam) is supported too. Notification platform for [Notifications for Android TV](https://play.google.com/store/apps/details?id=de.cyberdream.androidtv.notifications.google) and [Notifications for FireTV](https://play.google.com/store/apps/details?id=de.cyberdream.firenotifications.google). You can use this plarform to send notifications to your Android TV device. An overlay with the message content will appear for a configurable amount of seconds and then disapper again. Sending images (e.g., security cam) is supported too.
The notifications are in the global scope of your Android TV device. They will be displayed regardless of which application is running. The notifications are in the global scope of your Android TV device. They will be displayed regardless of which application is running.
@ -29,16 +28,52 @@ notify:
host: 192.168.1.12 host: 192.168.1.12
``` ```
Configuration variables: {% configuration %}
name:
- **name** (*Optional*): Setting the optional parameter `name` allows multiple notifiers to be created. The default value is `notify`. The notifier will bind to the service `notify.NOTIFIER_NAME`. description: Setting the optional parameter `name` allows multiple notifiers to be created. The notifier will bind to the service `notify.NOTIFIER_NAME`.
- **host** (*Required*): IP address of the Android TV / FireTV device. required: false
- **duration** (*Optional*): The duration in seconds for which the notification will be displayed. Default is 5 seconds. default: notify
- **fontsize** (*Optional*): Has to be one of: small, medium (default), large, max type: string
- **position** (*Optional*): Has to be one of: bottom-right (default), bottom-left, top-right, top-left, center host:
- **color** (*Optional*): Has to be one of: grey (default), black, indigo, green, red, cyan, teal, amber, pink description: IP address of the Android TV / FireTV device.
- **transparency** (*Optional*): Has to be one of: 0%, 25% (default), 50%, 75%, 100% required: true
- **interrupt** (*Optional*): If set to true, 1, on etc., the notification is interactive and can be dismissed or selected to display more details. Depending on the running app (e.g., Netflix), this may stop playback. type: string
duration:
description: The duration in seconds for which the notification will be displayed.
required: false
default: 5
type: integer
fontsize:
description: "Has to be one of: `small`, `medium`, `large` or `max`."
required: false
default: medium
type: string
position:
description: "Has to be one of: `bottom-right`, `bottom-left`, `top-right`, `top-left` or `center`."
required: false
default: bottom-right
type: string
color:
description: "Has to be one of: `grey`, `black`, `indigo`, `green`, `red`, `cyan`, `teal`, `amber` or `pink`."
required: false
default: grey
type: string
transparency:
description: "Has to be one of: `0%`, `25%`, `50%`, `75%` or `100%`."
required: false
default: 25%
type: string
timeout:
description: The timeout in seconds.
required: false
default: 5
type: integer
interrupt:
description: If set to true, 1, on etc., the notification is interactive and can be dismissed or selected to display more details. Depending on the running app (e.g., Netflix), this may stop playback.
required: false
default: false
type: boolean
{% endconfiguration %}
The configuration will be used to configure the default values for the notification for the host specified by the IP. However, you can override most of the settings by passing them with the data-attribute when calling the service. The configuration will be used to configure the default values for the notification for the host specified by the IP. However, you can override most of the settings by passing them with the data-attribute when calling the service.
This is a fully customized JSON you can use to test how the final notification will look like: This is a fully customized JSON you can use to test how the final notification will look like:
@ -65,7 +100,7 @@ The following attributes can be placed inside `data` to send images.
| Service data attribute | Optional | Description | | Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- | | ---------------------- | -------- | ----------- |
| `file` | yes | Groups the attributes for file upload. If present, either `url` or `path` have to be provided. | `file` | yes | Groups the attributes for file upload. If present, either `url` or `path` have to be provided.
| `path ` | yes | Local path of an image file. Is placed inside `file`. | `path` | yes | Local path of an image file. Is placed inside `file`.
| `url` | yes | URL of an image file. Is placed inside `file`. | `url` | yes | URL of an image file. Is placed inside `file`.
| `username` | yes | Username if the url requires authentication. Is placed inside `file`. | `username` | yes | Username if the url requires authentication. Is placed inside `file`.
| `password` | yes | Password if the url requires authentication. Is placed inside `file`. | `password` | yes | Password if the url requires authentication. Is placed inside `file`.
@ -101,4 +136,5 @@ Example for posting file from local path:
} }
} }
``` ```
Please note that `path` is validated against the `whitelist_external_dirs` in the `configuration.yaml`. Please note that `path` is validated against the `whitelist_external_dirs` in the `configuration.yaml`.

View File

@ -33,15 +33,48 @@ panel_custom:
Store your custom panels in `<config>/www` to make them available in the frontend at the path `/local`. Store your custom panels in `<config>/www` to make them available in the frontend at the path `/local`.
</p> </p>
Configuration variables: {% configuration %}
name:
- **name** (*Required*): Name of the web component that renders your panel. description: Name of the web component that renders your panel.
- **sidebar_title** (*Optional*): Friendly title for the panel in the sidebar. Omitting it means no sidebar entry (but still accessible through the URL). required: true
- **sidebar_icon** (*Optional*): Icon for entry. Pick an icon that you can find on [materialdesignicons.com](https://materialdesignicons.com/) to use for your input and prefix the name with `mdi:`. For example `mdi:car`, `mdi:ambulance`, or `mdi:motorbike`. type: string
- **url_path** (*Optional*): The URL your panel will be available on in the frontend. If omitted will default to the panel name. sidebar_title:
- **js_url** (*Required*): The URL that contains the JavaScript of your panel. This is exclusive to `module_url` and `webcomponent_path`. description: Friendly title for the panel in the sidebar. Omitting it means no sidebar entry (but still accessible through the URL).
- **module_url** (*Optional*): The URL that contains the JavaScript module of your panel. Loaded as a JavaScript module instead of a script. This is exclusive to `js_url` and `webcomponent_path`. required: false
- **config** (*Optional*): Configuration to be passed into your web component when being instantiated. type: string
- **embed_iframe** (*Optional*): Set to `true` to embed panel in iframe. This is necessary if the panel is using the React framework or if it contains conflicting web components. sidebar_icon:
- **trust_external_script** (*Optional*): By default the user has to confirm before loading a script from an external source. Setting this to `true` will omit this confirmation. description: Icon for entry. Pick an icon that you can find on [materialdesignicons.com](https://materialdesignicons.com/) to use for your input and prefix the name with `mdi:`. For example `mdi:car`, `mdi:ambulance`, or `mdi:motorbike`.
- **webcomponent_path** (*Optional* *DEPRECATED*): The HTML path to your component. If omitted will default to `<config dir>/panels/<component name>.html` This is exclusive to `js_url` and `module_url`. required: false
default: "mdi:bookmark"
type: icon
url_path:
description: The URL your panel will be available on in the frontend. If omitted will default to the panel name.
required: false
type: string
js_url:
description: The URL that contains the JavaScript of your panel. This is exclusive to `module_url` and `webcomponent_path`.
required: exclusive
type: string
module_url:
description: The URL that contains the JavaScript module of your panel. Loaded as a JavaScript module instead of a script. This is exclusive to `js_url` and `webcomponent_path`.
required: exclusive
type: string
config:
description: Configuration to be passed into your web component when being instantiated.
required: false
type: list
embed_iframe:
description: Set to `true` to embed panel in iframe. This is necessary if the panel is using the React framework or if it contains conflicting web components.
required: false
default: false
type: boolean
trust_external_script:
description: By default the user has to confirm before loading a script from an external source. Setting this to `true` will omit this confirmation.
required: false
default: false
type: boolean
webcomponent_path:
description: The HTML path to your component. If omitted will default to `<config dir>/panels/<component name>.html` This is exclusive to `js_url` and `module_url`.
required: exclusive *DEPRECATED*
type: string
{% endconfiguration %}

View File

@ -21,16 +21,43 @@ To use the `prometheus` component in your installation, add the following to you
prometheus: prometheus:
``` ```
Configuration variables: {% configuration %}
namespace:
- **namespace** (*Optional*): The "namespace" that will be assigned to all the Prometheus metrics. This is the prefix of the metric name. E.g., having `myhass` as the namespace will cause the device tracker metrics to be `myhass_device_tracker_state`, the switch metrics to be `myhass_switch_state` and so on. The default is to not add any prefix to the metrics name. (available in version 0.73.0 and later) description: The "namespace" that will be assigned to all the Prometheus metrics. This is the prefix of the metric name. E.g., having `myhass` as the namespace will cause the device tracker metrics to be `myhass_device_tracker_state`, the switch metrics to be `myhass_switch_state` and so on. The default is to not add any prefix to the metrics name. (available in version 0.73.0 and later)
- **filter** (*Optional*): Filtering directives for the components which should be included or excluded from recording. required: false
- **exclude** (*Optional*): Excluded from recording. type: string
- **entities** (*Optional*): The list of entity ids to be excluded from recording. filter:
- **domains** (*Optional*): The list of domains to be excluded from recording. description: Filtering directives for the components which should be included or excluded from recording.
- **include** (*Optional*): Included in recordings. If set, all other entities will not be recorded. Values set by the **exclude** option will prevail. required: false
- **entities** (*Optional*): The list of entity ids to be included from recordings. type: list
- **domains** (*Optional*): The list of domains to be included from recordings. keys:
exclude:
description: Excluded from recording.
required: false
type: list
keys:
entities:
description: The list of entity ids to be excluded from recording.
required: false
type: list
domains:
description: The list of domains to be excluded from recording.
required: false
type: list
include:
description: Included in recordings. If set, all other entities will not be recorded. Values set by the **exclude** option will prevail.
required: false
type: list
keys:
entities:
description: The list of entity ids to be included from recordings.
required: false
type: list
domains:
description: The list of domains to be included from recordings.
required: false
type: list
{% endconfiguration %}
You can then configure Prometheus to fetch metrics from Home Assistant by adding to its `scrape_configs` configuration. You can then configure Prometheus to fetch metrics from Home Assistant by adding to its `scrape_configs` configuration.
@ -39,14 +66,14 @@ You can then configure Prometheus to fetch metrics from Home Assistant by adding
- job_name: 'hass' - job_name: 'hass'
scrape_interval: 60s scrape_interval: 60s
metrics_path: /api/prometheus metrics_path: /api/prometheus
# Legacy api password # Legacy api password
params: params:
api_password: ['PASSWORD'] api_password: ['PASSWORD']
# Long-Lived Access Token # Long-Lived Access Token
bearer_token: 'your.longlived.token bearer_token: 'your.longlived.token'
scheme: https scheme: https
static_configs: static_configs:
- targets: ['HOSTNAME:8123'] - targets: ['HOSTNAME:8123']
@ -54,7 +81,7 @@ You can then configure Prometheus to fetch metrics from Home Assistant by adding
When looking into the metrics on the Prometheus side, there will be: When looking into the metrics on the Prometheus side, there will be:
- All Home Assistant domains, which can be easily found through the common **namespace** prefix, if defined. - All Home Assistant domains, which can be easily found through the common **namespace** prefix, if defined.
- The [client library](https://github.com/prometheus/client_python) provided metrics, which are a bunch of **process_\*** and also a single pseudo-metric **python_info** which contains (not as value but as labels) information about the Python version of the client, i.e., the Home Assistant Python interpreter. - The [client library](https://github.com/prometheus/client_python) provided metrics, which are a bunch of **process_\*** and also a single pseudo-metric **python_info** which contains (not as value but as labels) information about the Python version of the client, i.e., the Home Assistant Python interpreter.
Typically, you will only be interested in the first set of metrics. Typically, you will only be interested in the first set of metrics.

View File

@ -17,7 +17,7 @@ The `qwikswitch` component is the main component to integrate various [QwikSwitc
The `qwikswitch` component discovers all devices from QS Mobile. Currently, Relays and LED dimmers are discovered in Home Assistant. Relay devices are [lights](/components/light.qwikswitch/) by default, and can be configured as [switches](/components/switch.qwikswitch/). The `qwikswitch` component discovers all devices from QS Mobile. Currently, Relays and LED dimmers are discovered in Home Assistant. Relay devices are [lights](/components/light.qwikswitch/) by default, and can be configured as [switches](/components/switch.qwikswitch/).
Example configuration: {% linkable_title Configuration %}
```yaml ```yaml
# Example configuration.yaml entry # Example configuration.yaml entry
@ -25,13 +25,61 @@ qwikswitch:
url: http://127.0.0.1:2020 url: http://127.0.0.1:2020
``` ```
Configuration variables: {% configuration %}
url:
- **url** (*Required*): The URL including the port of your QwikSwitch hub. description: The URL including the port of your QwikSwitch hub.
- **dimmer_adjust** (*Optional*): A decimal value to adjust the brightness of the dimmer exponentially. Increasing this value allows dimmers that reach full brightness with low values in QS Mobile to appear more linear in Home Assistant. Recommended values between 1 and 2 and the default is 1. required: true
- **button_events** (*Optional*): A comma-separated list of button types that will generate events. See [QwikSwitch Events] for detail. type: string
- **switches** (*Optional*): A list of device QS_id's that should be switches, and not lights (i.e. `['@0dev01', '@0dev02']`) dimmer_adjust:
- **sensors** (*Optional*): A dictionary of sensors. In the format of {entity_id: QS_id}. (i.e. `{door_sensor: '@0dev03'}`) description: A decimal value to adjust the brightness of the dimmer exponentially. Increasing this value allows dimmers that reach full brightness with low values in QS Mobile to appear more linear in Home Assistant. Recommended values between 1 and 2 and the default is 1.
required: false
type: float
default: 1
button_events:
description: A comma-separated list of button types that will generate events. See [QwikSwitch Events] for detail.
required: false
default: TOGGLE,SCENE EXE,LEVEL
type: string
switches:
description: A list of device QS_id's that should be switches, and not lights (i.e. `['@0dev01', '@0dev02']`)
required: false
type: list
sensors:
description: A dictionary of sensors.
required: false
type: list
keys:
name:
description: The sensor name from which the entity_id will be derived.
required: true
id:
description: A QS_Id
required: true
type: string
type:
description: |
The Qwikswitch sensor type. These could include:
- imod (binary_sensor, up to 6 channels)
- door (binary_sensor, single channel)
- qwikcord (Channel 1 = CTavg, Channel 2 = CTsum)
required: true
type: string
channel:
description: The channel of interest. Refer to type above.
required: false
default: 1
type: int
invert:
description: Invert the open/close state. Only applicable to binary_sensors
required: false
default: false
type: string
class:
description: The [class](https://www.home-assistant.io/components/binary_sensor) or binary_sensor. Only applicable to binary_sensors.
required: false
default: door
type: string
{% endconfiguration %}
### {% linkable_title QwikSwitch Events %} ### {% linkable_title QwikSwitch Events %}
@ -60,19 +108,7 @@ On some QS Mobile servers button events are only generated for switches added to
### {% linkable_title Qwikswitch Sensors %} ### {% linkable_title Qwikswitch Sensors %}
The sensor configuration is a list of sensors. Depending on the type, it will be a sensor or binary_sensor. Each sensor is configured with the following parameters: The sensor configuration is a list of sensors. Depending on the type of sensor, it will be a sensor or binary_sensor.
- **name** (*Required*): The sensor name from which the entity_id will be derived.
- **id** (*Required*): A QS_Id
- **type** (*Required*): The Qwikswitch sensor type. These could include:
- imod (binary_sensor, up to 6 channels)
- door (binary_sensor, single channel)
- qwikcord (Channel 1 = CTavg, Channel 2 = CTsum)
- **channel** (*Optional, default=1*): The channel of interest. Refer to type above.
The following parameters are only applicabe to binary_sensors (i.e. door/imod).
- **invert** (*Optional, default=False): Invert the open/close state.
- **class** (*Optional, default=door): The [class](https://www.home-assistant.io/components/binary_sensor) or binary_sensor.
Example sensor configuration: Example sensor configuration:

View File

@ -32,8 +32,6 @@ remember_the_milk:
``` ```
Configuration variables:
{% configuration %} {% configuration %}
name: name:
description: Name of the RTM account, as you can have several accounts in RTM. The name must be unique. description: Name of the RTM account, as you can have several accounts in RTM. The name must be unique.
@ -70,7 +68,7 @@ The task creation supports the "smart syntax", so to create a task with the tag
**Note:** **Note:**
At the moment, smart syntax is *not* supported when updating tasks. All smart syntax commands are ignored during the update and will end up as normal text in the name of the task. At the moment, smart syntax is *not* supported when updating tasks. All smart syntax commands are ignored during the update and will end up as normal text in the name of the task.
|Service data attribute | Optional | Description | Example | |Service data attribute | Optional | Description | Example |
|-----------------------|----------|-------------|---------| |-----------------------|----------|-------------|---------|
| name | no | Name of the new task, you can use the smart syntax here. | "do this ^today #from_hass" | | name | no | Name of the new task, you can use the smart syntax here. | "do this ^today #from_hass" |
| id | yes | Identifier for the task you're creating, can be used to update or complete the task later on | "myid" | | id | yes | Identifier for the task you're creating, can be used to update or complete the task later on | "myid" |
@ -79,9 +77,9 @@ At the moment, smart syntax is *not* supported when updating tasks. All smart sy
Complete a tasks that was privously created from Home Assistant. You can not complete tasks that were created outside of Home Assistant. Complete a tasks that was privously created from Home Assistant. You can not complete tasks that were created outside of Home Assistant.
If you have created your task with an ```id```, calling ```<account>_complete_task``` with the parameter ```id``` will then complete your task. If you have created your task with an ```id```, calling ```<account>_complete_task``` with the parameter ```id``` will then complete your task.
|Service data attribute | Optional | Description | Example | |Service data attribute | Optional | Description | Example |
|-----------------------|----------|-------------|---------| |-----------------------|----------|-------------|---------|
| id | no | Identifier that was defined when creating the task | "myid" | | id | no | Identifier that was defined when creating the task | "myid" |
@ -89,7 +87,6 @@ If you have created your task with an ```id```, calling ```<account>_complete_ta
Here's an example for an automation that creates a new task whenever ```sensor.mysensor``` is ```on``` and completes it when the sensor reports ```off```. This way it reminds you to switch it off. By using the ```entity_id``` as id for the task, you can use the same rule also for multiple sensors. Here's an example for an automation that creates a new task whenever ```sensor.mysensor``` is ```on``` and completes it when the sensor reports ```off```. This way it reminds you to switch it off. By using the ```entity_id``` as id for the task, you can use the same rule also for multiple sensors.
```yaml ```yaml
- id: mysensor_on - id: mysensor_on
trigger: trigger:
@ -113,7 +110,6 @@ Here's an example for an automation that creates a new task whenever ```sensor.m
``` ```
## {% linkable_title Disclaimer %} ## {% linkable_title Disclaimer %}
This product uses the Remember The Milk API but is not endorsed or certified by Remember The Milk. This product uses the Remember The Milk API but is not endorsed or certified by Remember The Milk.

View File

@ -13,7 +13,6 @@ ha_iot_class: "Assumed State"
ha_release: 0.39 ha_release: 0.39
--- ---
The `itach` remote platform allows you to control IR devices with a [Global Caché iTach Device](https://www.globalcache.com/products/itach/ip2irspecs) and GC-100 devices. The Global Cache IR API are similar across their product line. See API documentation links at the end of this page. The `itach` remote platform allows you to control IR devices with a [Global Caché iTach Device](https://www.globalcache.com/products/itach/ip2irspecs) and GC-100 devices. The Global Cache IR API are similar across their product line. See API documentation links at the end of this page.
In order to utilize the digital input (binary sensor) and relay (switch) features of your Global Cache device you will need to use the [gc100 component](/components/gc100) and associated platforms. In order to utilize the digital input (binary sensor) and relay (switch) features of your Global Cache device you will need to use the [gc100 component](/components/gc100) and associated platforms.
@ -36,22 +35,58 @@ remote:
data: "0000 006D 0000 0022 00AC 00AC 0015 0040 0015 0040 0015 0040 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0040 0015 0040 0015 0040 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0040 0015 0040 0015 0015 0015 0015 0015 0040 0015 0040 0015 0040 0015 0040 0015 0015 0015 0015 0015 0040 0015 0040 0015 0015 0015 0689" data: "0000 006D 0000 0022 00AC 00AC 0015 0040 0015 0040 0015 0040 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0040 0015 0040 0015 0040 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0040 0015 0040 0015 0015 0015 0015 0015 0040 0015 0040 0015 0040 0015 0040 0015 0015 0015 0015 0015 0040 0015 0040 0015 0015 0015 0689"
``` ```
Configuration variables: {% configuration %}
- **name** (*Optional*): The iTach's name to display in the front end. name:
- **host** (*Required*): The iTach's IP address. description: The iTach's name to display in the front end.
- **port** (*Optional*): The iTach's port. 4998 is default. required: false
- **devices** array (*Required*): Devices controlled by the iTach. type: string
- **name** (*Required*): Name of the device. host:
- **modaddr** (*Optional*): iTach module address for the IR emitter. 1 is default. description: The iTach's IP address.
- **connaddr** (*Required*): iTach connection location for the IR emitter. (Note connaddr is a misleading label. Do not put the connection address here. Technically the connection address is the combination of the module address plus the connection location). required: true
- **commands** array (*Required*): Commands available to send to the device. type: string
- **name** (*Required*): Command name. port:
- **data** (*Required*): Hex command data. description: The iTach's port.
required: false
default: 4998
type: integer
devices:
description: Devices controlled by the iTach.
required: true
type: list
keys:
name:
description: Name of the device.
required: true
type: string
modaddr:
description: iTach module address for the IR emitter.
required: false
default: 1
type: integer
connaddr:
description: iTach connection location for the IR emitter. (Note connaddr is a misleading label. Do not put the connection address here. Technically the connection address is the combination of the module address plus the connection location).
required: true
type: integer
commands:
description: Commands available to send to the device.
required: true
type: list
keys:
name:
description: Command name.
required: true
type: string
data:
description: Hex command data.
required: true
type: string
{% endconfiguration %}
An example to call the component from developer tools using the `remote.send_command` service: `{ "entity_id":"remote.tv", "command":"menu" }` An example to call the component from developer tools using the `remote.send_command` service: `{ "entity_id":"remote.tv", "command":"menu" }`
Note: Global Cache devices expect data in their own format of "sendir...". This component converts hex code to Global Cache IR form. Note: Global Cache devices expect data in their own format of "sendir...". This component converts hex code to Global Cache IR form.
API Docs: API Docs:
- [iTach](https://www.globalcache.com/files/docs/API-iTach.pdf) - [iTach](https://www.globalcache.com/files/docs/API-iTach.pdf)
- [GC-100](http://www.globalcache.com/files/docs/API-GC-100.pdf) - [GC-100](http://www.globalcache.com/files/docs/API-GC-100.pdf)

View File

@ -12,15 +12,15 @@ ha_category: Hub
ha_release: 0.38 ha_release: 0.38
--- ---
The `rflink` component supports devices that use [RFLink gateway firmware](http://www.nemcon.nl/blog2/), for example the [Nodo RFLink Gateway](https://www.nodo-shop.nl/nl/21-rflink-gateway). RFLink Gateway is an Arduino Mega firmware that allows two-way communication with a multitude of RF wireless devices using cheap hardware (Arduino + transceiver). The `rflink` component supports devices that use [RFLink gateway firmware](http://www.nemcon.nl/blog2/), for example, the [Nodo RFLink Gateway](https://www.nodo-shop.nl/nl/21-rflink-gateway). RFLink Gateway is an Arduino Mega firmware that allows two-way communication with a multitude of RF wireless devices using cheap hardware (Arduino + transceiver).
The 433 MHz spectrum is used by many manufacturers mostly using their own protocol/standard and includes devices like: light switches, blinds, weather stations, alarms and various other sensors. The 433 MHz spectrum is used by many manufacturers mostly using their own protocol/standard and includes devices like: light switches, blinds, weather stations, alarms and various other sensors.
RFLink Gateway supports a number of RF frequencies, using a wide range of low-cost hardware. [Their website](http://www.rflink.nl/blog2/) provides details for various RF transmitters, receivers and transceiver modules for 433MHz, 868MHz and 2.4 GHz. RFLink Gateway supports a number of RF frequencies, using a wide range of low-cost hardware. [Their website](http://www.rflink.nl/blog2/) provides details for various RF transmitters, receivers and transceiver modules for 433MHz, 868MHz and 2.4 GHz.
<p class='note'> <p class='note'>
Note: Versions later than R44 add support for Ikea Ansluta, Philips Living Colors Gen1 and MySensors devices. Note: Versions later than R44 add support for Ikea Ansluta, Philips Living Colors Gen1 and MySensors devices.
</p> </p>
A complete list of devices supported by RFLink can be found [here](http://www.rflink.nl/blog2/devlist). A complete list of devices supported by RFLink can be found [here](http://www.rflink.nl/blog2/devlist).
@ -50,20 +50,20 @@ host:
wait_for_ack: wait_for_ack:
description: Wait for RFLink to acknowledge commands sent before sending new command (slower but more reliable). description: Wait for RFLink to acknowledge commands sent before sending new command (slower but more reliable).
required: false required: false
type: string
default: true default: true
type: boolean
ignore_devices: ignore_devices:
description: List of device id's to ignore. Supports wildcards (`*`) at the end. description: List of device id's to ignore. Supports wildcards (`*`) at the end.
required: false required: false
type: string type: [list, string]
reconnect_interval: reconnect_interval:
description: Time in seconds between reconnect attempts. description: Time in seconds between reconnect attempts.
required: false required: false
default: 10
type: integer type: integer
{% endconfiguration %} {% endconfiguration %}
### {% linkable_title Full example %} ### {% linkable_title Full example %}
```yaml ```yaml
# Example configuration.yaml entry # Example configuration.yaml entry
rflink: rflink:
@ -117,9 +117,9 @@ sensor:
automatic_add: true automatic_add: true
``` ```
[RFLink Switches](https://www.home-assistant.io/components/switch.rflink/) cannot be added automatically. [RFLink Switches](/components/switch.rflink/) and [RFLink Binary Sensors](/components/binary_sensor.rflink/) cannot be added automatically.
The RFLink component does not know the difference between a switch and a light. Therefore all switchable devices are automatically added as light by default. However, once the ID of a switch is known, it can be used to configure it as a switch type in HA, for example, to add it to a different group, hide it or configure a nice name. The RFLink component does not know the difference between a binary sensor, a switch and a light. Therefore all switchable devices are automatically added as light by default. However, once the ID of a switch is known, it can be used to configure it as a switch or a binary sensor type in Home Assistant, for example, to add it to a different group, hide it or configure a nice name.
### {% linkable_title Ignoring devices %} ### {% linkable_title Ignoring devices %}
@ -161,7 +161,7 @@ If you find a device is recognized differently, with different protocols or the
### {% linkable_title Debug Logging %} ### {% linkable_title Debug Logging %}
For debugging purposes or context when investigating issues you can enable debug logging for Rflink with the following config snippet: For debugging purposes or context when investigating issues you can enable debug logging for RFLink with the following config snippet:
```yaml ```yaml
logger: logger:

View File

@ -30,11 +30,31 @@ rss_feed_template:
description: "{% raw %}{% if is_state('sensor.temp_outside','unknown') %}---{% else %}{{states.sensor.temp_outside.state}} °C{% endif %}{% endraw %}" description: "{% raw %}{% if is_state('sensor.temp_outside','unknown') %}---{% else %}{{states.sensor.temp_outside.state}} °C{% endif %}{% endraw %}"
``` ```
Configuration variables: {% configuration %}
requires_api_password:
- **requires_api_password:** (*Optional*): If true and an API password is set, the password must be passed via '?api_password=...' parameter (Default: True) description: If true and an API password is set, the password must be passed via '?api_password=...' parameter.
- **feed_id** (*Required*): The key is used as the ID of the feed. The feed can be accessed at /api/rss_template/feed_id (example: 'garden') required: false
- **title** (*Optional*): The title of the feed, which is parsed as [template](/topics/templating/). default: true
- **items** (*Required*): A list of feed items. type: boolean
- **items/title** (*Optional*): The title of the item, which is parsed as [template](/topics/templating/). feed_id:
- **items/description** (*Optional*): The description of the item, which is parsed as [template](/topics/templating/). description: "The key is used as the ID of the feed. The feed can be accessed at /api/rss_template/feed_id (example: 'garden')."
required: true
type: string
title:
description: The title of the feed, which is parsed as [template](/topics/templating/).
required: false
type: template
items:
description: A list of feed items.
required: true
type: list
keys:
title:
description: The title of the item, which is parsed as [template](/topics/templating/).
required: false
type: template
description:
description: The description of the item, which is parsed as [template](/topics/templating/).
required: false
type: template
{% endconfiguration %}

View File

@ -19,17 +19,17 @@ You can create scenes that capture the states you want certain entities to be. F
scene: scene:
- name: Romantic - name: Romantic
entities: entities:
light.tv_back_light: on light.tv_back_light: true
light.ceiling: light.ceiling:
state: on state: true
xy_color: [0.33, 0.66] xy_color: [0.33, 0.66]
brightness: 200 brightness: 200
- name: Movies - name: Movies
entities: entities:
light.tv_back_light: light.tv_back_light:
state: on state: true
brightness: 100 brightness: 100
light.ceiling: off light.ceiling: false
media_player.sony_bravia_tv: media_player.sony_bravia_tv:
source: HDMI 1 source: HDMI 1
``` ```

View File

@ -26,6 +26,12 @@ $ sudo apt-get install libxml2-dev libxslt-dev \
python3-setuptools zlib1g-dev build-essential python3-setuptools zlib1g-dev build-essential
``` ```
If you installed Home Assistant in a virtualenv, also run the following command inside it.
Be patient this will take a while.
```bash
pip3 install lxml
```
## {% linkable_title Setup%} ## {% linkable_title Setup%}
To activate the call monitor on your Fritz!Box, dial #96\*5\* from any phone connected to it. To activate the call monitor on your Fritz!Box, dial #96\*5\* from any phone connected to it.

View File

@ -9,7 +9,6 @@ sharing: true
footer: true footer: true
logo: meteo-france.png logo: meteo-france.png
ha_category: Sensor ha_category: Sensor
featured: true
ha_release: 0.82 ha_release: 0.82
ha_iot_class: "Cloud Polling" ha_iot_class: "Cloud Polling"
--- ---

View File

@ -9,7 +9,7 @@ sharing: true
footer: true footer: true
logo: sytadin.png logo: sytadin.png
ha_release: 0.57 ha_release: 0.57
ha_category: Car ha_category: Transport
ha_iot_class: "Clound Polling" ha_iot_class: "Clound Polling"
--- ---

View File

@ -7,7 +7,6 @@ sidebar: true
comments: false comments: false
sharing: true sharing: true
footer: true footer: true
featured: true
logo: smhi.png logo: smhi.png
ha_category: Hub ha_category: Hub
ha_release: 0.81 ha_release: 0.81

View File

@ -7,7 +7,6 @@ sidebar: true
comments: false comments: false
sharing: true sharing: true
footer: true footer: true
featured: true
logo: smhi.png logo: smhi.png
ha_category: Weather ha_category: Weather
ha_release: 0.81 ha_release: 0.81
@ -18,4 +17,4 @@ The `smhi` platform uses the [SMHI.se](https://www.smhi.se/) web service as a so
## {% linkable_title Configuration %} ## {% linkable_title Configuration %}
Please see the [component](/components/smhi/) documentation for details and configuration. Please see the [component](/components/smhi/) documentation for details and configuration.

View File

@ -12,6 +12,16 @@ redirect_from: /ecosystem/synology/
Synology NAS are the perfect companion to running Home Assistant. But by default, the DSM Reverse Proxy does not configure its NGINX settings to allow WebSocket, and some extra configuration will be required to get the Home Assistant frontend working with the DSM. Synology NAS are the perfect companion to running Home Assistant. But by default, the DSM Reverse Proxy does not configure its NGINX settings to allow WebSocket, and some extra configuration will be required to get the Home Assistant frontend working with the DSM.
### {% linkable_title Setup headers %}
Starting with DSM 6.2.1+, you can create "custom headers" in the Application Portal:
* Go to Application Portal and edit your entry
* Click on "custom headers" tab and click the dropdon on the "Create" button
* Select "Websocket". This will automaticly add the required headers for websocket to this reverse proxy.
* Click "OK". Home Assistant should work now with the reverse proxy.
It's not necessary anymore to change the template anymore since Version DSM 6.2.1. Changing the `Portal.mustache` is not recommended! You should use the following part only if you're using a Version before DSM 6.2.1. on your Synology.
### {% linkable_title Template change %} ### {% linkable_title Template change %}
To allow WebSocket by default for all service exposed by NGINX, you can enable it in the template file located in `/usr/syno/share/nginx/Portal.mustache`. Please be really careful in editing this file since you may break access to the DSM UI. Please backup this file before any edition. To allow WebSocket by default for all service exposed by NGINX, you can enable it in the template file located in `/usr/syno/share/nginx/Portal.mustache`. Please be really careful in editing this file since you may break access to the DSM UI. Please backup this file before any edition.

View File

@ -139,6 +139,16 @@ condition:
before: sunrise before: sunrise
``` ```
```yaml
condition:
condition: and # 'when light' condition: before sunset and after sunrise
conditions:
- condition: sun
before: sunset
- condition: sun
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 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.
<img src='/images/docs/scripts/sun-conditions.svg' alt='Graphic showing an example of sun conditions' /> <img src='/images/docs/scripts/sun-conditions.svg' alt='Graphic showing an example of sun conditions' />

View File

@ -0,0 +1,657 @@
---
layout: post
title: "0.82: TensorFlow, Lovelace UI edit, Z-Wave Barrier Class"
description: "We are glad to inform you that yet another epic release has landed."
date: 2018-11-09 00:01:00
date_formatted: "November 9, 2018"
author: Paulus Schoutsen
author_twitter: balloob
comments: true
categories: Release-Notes
og_image: /images/blog/2018-11-release-82/lovelace-edit.png
---
It's time for another great release. As this includes the tail-end of HacktoberFest, it's packed again with stuff. Hope you like stuff.
I want to do a shout out to all the people who help with the documentation. Since the beginning of HacktoberFest, we've seen [953 PRs](https://github.com/home-assistant/home-assistant.io/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+closed%3A%3E2018-10-01) get merged, 953! Especially thanks to [@klaasnicolaas] who has converted 240 pages to the new configuration format. DAAAAANG.
We also got some cool new features. The first one being that you can now use TensorFlow, a machine learning framework, to detect objects on your cameras thanks to the hard work by [@hunterjm]. Check out [the docs][image_processing.tensorflow docs] for more info.
Next up is that [@rohankapoorcom] has been working hard on converting more integrations to the Webhook format. This allows for easy setting up via the UI and generates difficult to guess urls. This release includes Mailgun, Twilio and DialogFlow.
The frontend team has been [BUSY](https://github.com/home-assistant/home-assistant-polymer/pull/1974). We're prepping Lovelace for general release and slowly all pieces are coming together. This release introduces an experimental, alpha, ultra-raw, (enough warnings already?) UI editor for Lovelace cards. It requires that your card has an ID but then, it just works. Including a live preview of the config you're editing.
<p class='img'>
<img src='/images/blog/2018-11-release-82/lovelace-edit.png' alt='Screenshot of editing a Lovelace card'>
Screenshot of editing a Lovelace card.
</p>
Also frontend related, in version 0.81 we removed all config splitting functions for ui-lovelace.yaml, we are happy to report that we managed to add back support for `!secret` and `!include`. The rest of the config splitting commands you are used to in `configuration.yaml` will not be available for Lovelace. Mind that you can not edit content in `!include` from the UI, and `!secret` cannot be used in the UI or preview at the moment.
And we have one more thing… we have soft-forked Open Z-Wave and have added support for the barrier command class! This means that now you will be able to control your garage doors from Z-Wave without compiling Open Z-Wave yourself. We'll continue to monitor what other features we can add to our fork while remaining close to the OZW project.
## {% linkable_title New Platforms %}
- Add device tracking for the BT Smart Hub router ([@jxwolstenholme] - [#17158]) ([device_tracker docs]) (new-platform)
- Météo-france sensor : current weather and 1 hour rain forecast ([@victorcerutti] - [#17773]) ([sensor.meteo_france docs]) (new-platform)
- Support for WeMo Humidifier ([@sqldiablo] - [#17996]) ([wemo docs]) ([fan.wemo docs]) (new-platform)
- Add a component for GreenEye Monitor ([@jkeljo] - [#16378]) ([greeneye_monitor docs]) (new-platform)
- TensorFlow image_processing component ([@hunterjm] - [#17795]) ([image_processing.tensorflow docs]) (new-platform)
## {% linkable_title 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). The release notes have comments enabled but it's preferred if you use the former communication channels. Thanks.
## {% linkable_title Reporting Issues %}
Experiencing issues introduced by this release? Please report them in our [issue tracker](https://github.com/home-assistant/home-assistant/issues). Make sure to fill in all fields of the issue template.
<!--more-->
## {% linkable_title Breaking Changes %}
- Migrate Mailgun to use the webhook component ([@rohankapoorcom] - [#17464]) ([ifttt docs]) ([mailgun docs]) ([notify docs]) ([automation.webhook docs]) (breaking change)
- Migrate twilio webhooks to the webhook component ([@rohankapoorcom] - [#17715]) ([twilio docs]) (breaking change)
- Fix Vera climate component to use correct states ([@sqldiablo] - [#17892]) ([climate.vera docs]) (breaking change)
- Migrate dialogflow over to the new webhook component ([@rohankapoorcom] - [#17804]) ([dialogflow docs]) ([http docs]) (breaking change)
- Update to DoorBirdPy v2 (again) ([@Klikini] - [#14933]) ([doorbird docs]) ([switch.doorbird docs]) (breaking change)
- Add binary sensors for sense energy monitor ([@kbickar] - [#17645]) ([sensor.sense docs]) (breaking change)
- Update Pollen.com to use numpy for trend analysis ([@bachya] - [#18107]) ([sensor.pollen docs]) (breaking change)
- Remove config (breaking change) ([@jjlawren] - [#18153]) ([ffmpeg docs]) (breaking change) (beta fix)
## {% linkable_title Beta Fixes %}
- SMA: Optional import in schema & backoff fix ([@kellerza] - [#18099]) (beta fix)
- Remove config (breaking change) ([@jjlawren] - [#18153]) ([ffmpeg docs]) (breaking change) (beta fix)
- Handle TensorFlow like OpenCV ([@pvizeli] - [#18185]) ([image_processing.tensorflow docs]) (beta fix)
- Add support for TensorFlow in official docker ([@pvizeli] - [#18191]) (beta fix)
- Cloud conf ([@balloob] - [#18216]) ([cloud docs]) (beta fix)
- Check if os has chown ([@bramkragten] - [#18229]) (beta fix)
- Update pynetgear to 0.5.1 ([@Arkkimaagi] - [#18238]) ([device_tracker docs]) (beta fix)
- Migrate python-openzwave to homeassistant-pyozw ([@pvizeli] - [#18268]) (beta fix)
- SMA Guard against older pysma ([@kellerza] - [#18278]) ([sensor.sma docs]) (beta fix)
- Bump pyotgw to 0.3b1 ([@mvn23] - [#18286]) ([opentherm_gw docs]) (beta fix)
- Fix log error message ([@pvizeli] - [#18305]) ([hassio docs]) (beta fix)
- Bump pyhaversion to 2.0.2 ([@ludeeus] - [#18318]) ([sensor.version docs]) (beta fix)
- Fix xiaomi binary_sensor warning ([@Danielhiversen] - [#18280]) ([binary_sensor.xiaomi_aqara docs]) (beta fix)
- Remove Velbus climate platform ([@balloob] - [#18319]) ([velbus docs]) (beta fix)
- fix last device ignored ([@abmantis] - [#18329]) ([device_tracker docs]) (beta fix)
## {% linkable_title All changes %}
- Mill, support more heater types ([@Danielhiversen] - [#17676]) ([climate.mill docs])
- Add missing hangouts data/image to notify service ([@quazzie] - [#17576]) ([notify docs])
- Fix Mexican Spanish identifier ([@manuel-jrs] - [#17674]) ([tts docs])
- Add readthedoc.yml file to specify the version of python to run during documentation building. ([@tmonck] - [#17642])
- All supported domains should be exposed by default ([@doudz] - [#17579]) ([google_assistant docs])
- Updated simplisafe-python to 3.1.13 ([@bachya] - [#17696]) ([simplisafe docs])
- Upgrade Sphinx to 1.8.1 ([@fabaff] - [#17701])
- Away mode temperature fix for generic thermostat ([@estevez-dev] - [#17641]) ([climate.generic_thermostat docs])
- Async version for asuswrt ([@kennedyshead] - [#17692]) ([device_tracker docs])
- Migrate Mailgun to use the webhook component ([@rohankapoorcom] - [#17464]) ([ifttt docs]) ([mailgun docs]) ([notify docs]) ([automation.webhook docs]) (breaking change)
- Only strip from the bluetooth name if it isn't None ([@d0ugal] - [#17719]) ([device_tracker docs])
- Just use debug instead of error if the binary_sensor does not get data ([@kennedyshead] - [#17720]) ([openuv docs])
- clean up clicksend ([@Danielhiversen] - [#17723]) ([notify docs])
- Set available property ([@ehendrix23] - [#17706]) ([august docs]) ([binary_sensor.august docs]) ([lock.august docs])
- Removes re-init ([@kennedyshead] - [#17724]) ([device_tracker docs])
- Don't call off_delay_listener if not needed ([@foxel] - [#17712]) ([binary_sensor.mqtt docs])
- Rename readthedocs file ([@fabaff] - [#17718])
- Add device tracking for the BT Smart Hub router ([@jxwolstenholme] - [#17158]) ([device_tracker docs]) (new-platform)
- Upgrade pytest to 3.9.2 ([@scop] - [#17736])
- Upgrade mypy to 0.641 ([@scop] - [#17734])
- IGD review fixes ([@StevenLooman] - [#17400]) ([upnp docs])
- Pytest tests ([@balloob] - [#17750])
- Remove webhook_id from yaml config for mailgun ([@rohankapoorcom] - [#17732]) ([mailgun docs])
- Update zha __init__.py to reflect new Zigbee name stylization by the Zigbee Alliance ([@Hedda] - [#17751]) ([zha docs])
- Clean up clicksend_tts ([@Danielhiversen] - [#17749]) ([notify docs])
- Convert auth websocket commands to use async_response decorator ([@balloob] - [#17755]) ([auth docs])
- Update name (fixes #17752) ([@fabaff] - [#17756]) ([zigbee docs]) ([binary_sensor.zha docs]) ([binary_sensor.zigbee docs]) ([switch.xiaomi_aqara docs]) ([switch.zigbee docs])
- Async tests for MQTT lock ([@kennedyshead] - [#17763])
- Async MQTT sensor room ([@kennedyshead] - [#17765])
- Add Mexican Spanish language ([@manuel-jrs] - [#17735]) ([tts docs])
- Add wind gust (fixes #17766) ([@fabaff] - [#17774]) ([sensor.darksky docs])
- Remove username from log entry ([@fabaff] - [#17777]) ([vacuum.roomba docs])
- Migrate twilio webhooks to the webhook component ([@rohankapoorcom] - [#17715]) ([twilio docs]) (breaking change)
- Testing async in MQTT_json lights ([@kennedyshead] - [#17768])
- This makes mqtt_template tests async ([@kennedyshead] - [#17784])
- Restore manual alarm-control-panel state using async_get_last_state ([@liaanvdm] - [#17521]) ([alarm_control_panel.manual docs])
- typo ([@janvanhelvoort] - [#17787]) ([zwave docs])
- Fix device reg considered changed ([@balloob] - [#17764])
- Allow creating signed urls ([@balloob] - [#17759]) ([auth docs]) ([http docs])
- Add contact sensors to alexa smart home ([@abmantis] - [#17704]) ([alexa docs])
- Upgrade flake8 to 3.6.0 ([@scop] - [#17770])
- Install face_recognition on Docker build ([@lights0123] - [#17502])
- Delete sensor.yahoo_finance ([@rohankapoorcom] - [#17805])
- deCONZ: configure service can now use 'field' as a subpath together with 'entity' ([@lbschenkel] - [#17722]) ([deconz docs])
- Bumped NDMS2 client to 0.0.5 to fix unicode characters support ([@foxel] - [#17803]) ([device_tracker docs])
- Upgrade numpy to 1.15.3 ([@fabaff] - [#17796]) ([binary_sensor.trend docs]) ([image_processing.opencv docs])
- MQTT Vacuum now passes error messages. ([@jeroenterheerdt] - [#17685]) ([vacuum.mqtt docs])
- Convert automation tests to async ([@balloob] - [#17794])
- Lovelace ws: add move command ([@bramkragten] - [#17806]) ([lovelace docs])
- Convert MQTT Light tests to async ([@balloob] - [#17754])
- Bumping aioasuswrt version ([@kennedyshead] - [#17814]) ([device_tracker docs])
- Minor changes ([@fabaff] - [#17812]) ([switch.dlink docs])
- Add snow to Openweathermap precipitation forecast ([@sgttrs] - [#17551]) ([weather.openweathermap docs])
- Add delete command ([@bramkragten] - [#17816]) ([lovelace docs])
- Raise PlatformNotReady for RMVtransport if API not available ([@cgtobi] - [#17635]) ([sensor.rmvtransport docs])
- Added vacuum dock and pause/unpause traits ([@mariuszluciow] - [#17657]) ([google_assistant docs])
- Minor changes to the config validation ([@fabaff] - [#17808]) ([sensor.sma docs])
- Alexa motion sensor ([@abmantis] - [#17798]) ([alexa docs])
- Mill device state attributes ([@Danielhiversen] - [#17834]) ([climate.mill docs])
- Fix Alexa unsupported operation_mode off ([@rwagoner] - [#17844]) ([alexa docs])
- adding myself as yessssms codeowner ([@flowolf] - [#17862])
- Switch to using Client from twilio.rest rather than the deleted TwilioRestClient ([@rohankapoorcom] - [#17883]) ([twilio docs])
- Fix Vera climate component to use correct states ([@sqldiablo] - [#17892]) ([climate.vera docs]) (breaking change)
- Add myself to CODEOWNERS for Yeelight Sunflower light platform ([@lindsaymarkward] - [#17896])
- Fix logi_circle sensor update method naming ([@evanjd] - [#17909]) ([sensor.logi_circle docs])
- Fix RFLink issue #17875 ([@emontnemery] - [#17889]) ([rflink docs])
- Corrected fan device type in google assistant to fan ([@mariuszluciow] - [#17792]) ([google_assistant docs])
- Migrate dialogflow over to the new webhook component ([@rohankapoorcom] - [#17804]) ([dialogflow docs]) ([http docs]) (breaking change)
- Fixes Telegram webhooks ([@luca-angemi] - [#17554]) ([telegram_bot docs])
- Start type annotating/testing helpers ([@scop] - [#17858])
- updated version of xknx ([@Julius2342] - [#17912]) ([knx docs])
- Updated Brunt code owner ([@eavanvalkenburg] - [#17854])
- Monitor all sensor types by default to rtorrent ([@terorie] - [#17894]) ([sensor.rtorrent docs])
- Merge conflicting changes ([@kennedyshead] - [#17761])
- Axis - prepare for config entry ([@Kane610] - [#17566]) ([axis docs]) ([binary_sensor.axis docs])
- Upgrade pytest to 3.9.3 ([@scop] - [#17921])
- Extract entity ids from all templates ([@amelchio] - [#17902]) ([binary_sensor.template docs])
- Make light.yeelight stop doing IO when accessing properties ([@rohankapoorcom] - [#17917]) ([light.yeelight docs])
- Fixes for upnp-component/#17753 and missing hass-data when only setup from config entry ([@StevenLooman] - [#17868]) ([upnp docs]) ([media_player.dlna_dmr docs])
- Fix for verify_ssl in the pi_hole sensor. ([@ludeeus] - [#17910]) ([sensor.pi_hole docs])
- Permissions improv ([@balloob] - [#17811])
- Fix incorrect chevy discovery ([@balloob] - [#17942]) ([mychevy docs])
- Fix venv check ([@balloob] - [#17939]) ([updater docs])
- Disable upnp from being discovered ([@balloob] - [#17937])
- Added codeowner for bt_smarthub ([@jxwolstenholme] - [#17947])
- Fixed copy-paste errors ([@mariuszluciow] - [#17948])
- Fix spelling error in log output ([@bitglue] - [#17963])
- Fix operation mode for Alexa thermostat ([@balloob] - [#17972]) ([alexa docs])
- Change source, add attributes, and improve state of DirecTV ([@ehendrix23] - [#17536]) ([media_player.directv docs])
- Update Alexa tests to async syntax ([@bitglue] - [#17965])
- Météo-france sensor : current weather and 1 hour rain forecast ([@victorcerutti] - [#17773]) ([sensor.meteo_france docs]) (new-platform)
- Updated ring_doorbell dependency to 0.2.2 ([@evanjd] - [#17945]) ([ring docs])
- Update Avi-On to work with latest API ([@antsar] - [#17780]) ([light.avion docs])
- Mill service ([@Danielhiversen] - [#17971]) ([climate.mill docs])
- Refactor Alexa API, fix thermostats ([@bitglue] - [#17969]) ([alexa docs])
- Upgrade aiofreepybox ([@stilllman] - [#17989]) ([device_tracker docs])
- Reverse out change #14234 BOM Weather throttle fix ([@nickw444] - [#17468]) ([sensor.bom docs])
- RFC: Static templates match no entities, not all ([@amelchio] - [#17991])
- Switch mailgun webhooks to the new Mailgun webhook api ([@rohankapoorcom] - [#17919]) ([mailgun docs])
- Change hebrew date at sunset ([@tsvi] - [#17449]) ([sensor.jewish_calendar docs])
- Import homeassistant domain instead of hardcoding it ([@scop] - [#17985]) ([websocket_api docs])
- Allow jinja namespace command to work. ([@NeilCrosby] - [#18011])
- Support for WeMo Humidifier ([@sqldiablo] - [#17996]) ([wemo docs]) ([fan.wemo docs]) (new-platform)
- Fix Bloomsky api call ([@dshokouhi] - [#18016]) ([bloomsky docs])
- Async version of melissa ([@kennedyshead] - [#17721])
- Upgrade to asuswrt 1.1.1 to better handle mac addresses with letters in them ([@halkeye] - [#18030]) ([device_tracker docs])
- Add SMA sensor SSL verification option ([@PhilRW] - [#18033]) ([sensor.sma docs])
- Use const.SUN_EVENT_* more ([@scop] - [#18039]) ([device_sun_light_trigger docs]) ([sun docs]) ([sensor.jewish_calendar docs]) ([switch.flux docs])
- Bumping aioasuswrt to 1.1.2 ([@kennedyshead] - [#18042]) ([device_tracker docs])
- Add services.yaml entry for new WeMo Humidifier platform service ([@sqldiablo] - [#18032])
- Add opentherm_gw services ([@mvn23] - [#17762]) ([opentherm_gw docs])
- Extract ruamel.yaml to util with secrets, lovelace ws decorators ([@bramkragten] - [#17958]) ([lovelace docs])
- Report correct thermostat mode to Alexa ([@bitglue] - [#18053]) ([alexa docs])
- Update SMA sensor to pysma 0.2.2 ([@kellerza] - [#17988]) ([sensor.sma docs])
- Mill, support opeation mode ([@Danielhiversen] - [#18059]) ([climate.mill docs])
- deCONZ - retry if setup fails ([@Kane610] - [#17772]) ([deconz docs]) ([binary_sensor.deconz docs]) ([cover.deconz docs]) ([light.deconz docs]) ([scene.deconz docs]) ([sensor.deconz docs]) ([switch.deconz docs])
- Add functionality to the version sensor ([@ludeeus] - [#18067]) ([sensor.version docs])
- remove schedule_update_ha_state from mill ([@Danielhiversen] - [#18080]) ([climate.mill docs])
- Fix camera mjpeg stream handling ([@awarecan] - [#18076]) ([camera docs]) ([camera.amcrest docs]) ([camera.arlo docs]) ([camera.canary docs]) ([camera.mjpeg docs]) ([camera.onvif docs]) ([camera.ring docs]) ([camera.synology docs]) ([camera.xiaomi docs]) ([camera.yi docs])
- Change test to parametrized test using pytest ([@tsvi] - [#18047])
- Add view commands to Lovelace ([@bramkragten] - [#18063]) ([lovelace docs])
- Add message template support for alert component ([@thoscut] - [#17516]) ([alert docs])
- Added identifier and name to connect/disconnect events ([@jaredquinn] - [#18078]) ([keyboard_remote docs])
- Fix in Daikin.py for set swing_mode and speed ([@MatteGary] - [#18013]) ([climate.daikin docs])
- Allow different types to match in pilight ([@akloeckner] - [#17922]) ([binary_sensor.pilight docs])
- Add a component for GreenEye Monitor ([@jkeljo] - [#16378]) ([greeneye_monitor docs]) (new-platform)
- HomematicIP_Cloud fix test ([@mxworm] - [#17376]) ([homematicip_cloud docs])
- Upgrade locationsharinglib to 3.0.7 ([@fabaff] - [#18083]) ([device_tracker docs])
- Upgrade sqlalchemy to 1.2.13 ([@fabaff] - [#18084]) ([sensor.sql docs])
- Upgrade youtube_dl to 2018.10.29 ([@fabaff] - [#18085]) ([media_extractor docs])
- Pass though file_url from extended data attrs ([@cmsimike] - [#17801]) ([notify docs])
- Upgrade psutil to 5.4.8 ([@fabaff] - [#18086]) ([sensor.systemmonitor docs])
- sensor/wunderground add device_class ([@simonvanderveldt] - [#18072]) ([sensor.wunderground docs])
- Upgrade restrictedpython to 4.0b6 ([@fabaff] - [#18087]) ([python_script docs])
- Upgrade georss_client to 0.4 ([@exxamalte] - [#18088]) ([geo_location docs])
- Catch KeyError if data is not available (fixes #18082) ([@fabaff] - [#18089]) ([sensor.openweathermap docs])
- Bump python-miio version ([@syssi] - [#18095]) ([device_tracker docs]) ([fan.xiaomi_miio docs]) ([light.xiaomi_miio docs]) ([remote.xiaomi_miio docs]) ([sensor.xiaomi_miio docs]) ([switch.xiaomi_miio docs]) ([vacuum.xiaomi_miio docs])
- Update Pollen.com sensor platform to include asthma info ([@bachya] - [#18024]) ([sensor.pollen docs])
- Use a fixture for dialogflow calls in unit tests ([@rohankapoorcom] - [#17999])
- Don't try to re-add existing Z-Wave entities ([@cgarwood] - [#17995]) ([zwave docs])
- Always save current position if payload is numeric value ([@pszafer] - [#16148]) ([cover.mqtt docs])
- Darksky: Fetch summary for daily forecasts ([@leppa] - [#18031]) ([sensor.darksky docs])
- Update to DoorBirdPy v2 (again) ([@Klikini] - [#14933]) ([doorbird docs]) ([switch.doorbird docs]) (breaking change)
- Ignore min_cycle_duration when manually controlling the thermostat. ([@aronsky] - [#16128]) ([climate.generic_thermostat docs])
- Add surround programs to zone 2+ ([@Petro31] - [#17445]) ([media_player.yamaha docs])
- Removed assumptions about provided upnp data ([@WoLpH] - [#17604]) ([upnp docs])
- Add binary sensors for sense energy monitor ([@kbickar] - [#17645]) ([sensor.sense docs]) (breaking change)
- Use ssdp udn uuid as Samsung TV unique id ([@scop] - [#18022]) ([media_player.samsungtv docs])
- Allow MS face detection to handle updating entities when no face is detected ([@NeilCrosby] - [#17593]) ([image_processing.microsoft_face_detect docs]) ([image_processing.microsoft_face_identify docs])
- Added service select_video_output and video_out attribute ([@leothlon] - [#18081]) ([media_player.onkyo docs])
- Darksky: Round all temperatures to 1 decimal place ([@leppa] - [#18119]) ([sensor.darksky docs])
- Convert nsw rural fire tests to async ([@armills] - [#18112])
- Adding climate.velbus support ([@Cereal2nd] - [#18100]) ([velbus docs])
- Changed from pifacecommon 4.1.2 to 4.2.2 to make the piface digital i/o boards work on rpi like 3 ([@vacumet] - [#18101]) ([rpi_pfio docs])
- Update Pollen.com to use numpy for trend analysis ([@bachya] - [#18107]) ([sensor.pollen docs]) (breaking change)
- Exposes initial attribute on the entity. ([@ludeeus] - [#18123]) ([input_number docs])
- Async generic thermostat tests ([@armills] - [#18111])
- Update fan/demo tests to async ([@armills] - [#18109])
- Don't create a switch for POE device if said device is Cloud key ([@Kane610] - [#18117]) ([switch.unifi docs])
- TensorFlow image_processing component ([@hunterjm] - [#17795]) ([image_processing.tensorflow docs]) (new-platform)
- Fix DTE Energy Bridge V2 scaling issue. (#18124) ([@mtl010957] - [#18129]) ([sensor.dte_energy_bridge docs])
- Add optional ttl config to route53 component ([@pascal-de-ladurantaye] - [#18135]) ([route53 docs])
- Allow disabling WeMo Discovery ([@sqldiablo] - [#18079]) ([wemo docs])
- Fix typos and update docstrings ([@fabaff] - [#18137]) ([lovelace docs])
- Fix hassio command timeout ([@alex9446] - [#17567]) ([hassio docs])
- SMA: Optional import in schema & backoff fix ([@kellerza] - [#18099]) (beta fix)
- Remove config (breaking change) ([@jjlawren] - [#18153]) ([ffmpeg docs]) (breaking change) (beta fix)
- Handle TensorFlow like OpenCV ([@pvizeli] - [#18185]) ([image_processing.tensorflow docs]) (beta fix)
- Add support for TensorFlow in official docker ([@pvizeli] - [#18191]) (beta fix)
- Cloud conf ([@balloob] - [#18216]) ([cloud docs]) (beta fix)
- Check if os has chown ([@bramkragten] - [#18229]) (beta fix)
- Update pynetgear to 0.5.1 ([@Arkkimaagi] - [#18238]) ([device_tracker docs]) (beta fix)
- Migrate python-openzwave to homeassistant-pyozw ([@pvizeli] - [#18268]) (beta fix)
- SMA Guard against older pysma ([@kellerza] - [#18278]) ([sensor.sma docs]) (beta fix)
- Bump pyotgw to 0.3b1 ([@mvn23] - [#18286]) ([opentherm_gw docs]) (beta fix)
- Fix log error message ([@pvizeli] - [#18305]) ([hassio docs]) (beta fix)
- Bump pyhaversion to 2.0.2 ([@ludeeus] - [#18318]) ([sensor.version docs]) (beta fix)
- Fix xiaomi binary_sensor warning ([@Danielhiversen] - [#18280]) ([binary_sensor.xiaomi_aqara docs]) (beta fix)
- Remove Velbus climate platform ([@balloob] - [#18319]) ([velbus docs]) (beta fix)
- fix last device ignored ([@abmantis] - [#18329]) ([device_tracker docs]) (beta fix)
[#14933]: https://github.com/home-assistant/home-assistant/pull/14933
[#16128]: https://github.com/home-assistant/home-assistant/pull/16128
[#16148]: https://github.com/home-assistant/home-assistant/pull/16148
[#16378]: https://github.com/home-assistant/home-assistant/pull/16378
[#17158]: https://github.com/home-assistant/home-assistant/pull/17158
[#17376]: https://github.com/home-assistant/home-assistant/pull/17376
[#17400]: https://github.com/home-assistant/home-assistant/pull/17400
[#17445]: https://github.com/home-assistant/home-assistant/pull/17445
[#17449]: https://github.com/home-assistant/home-assistant/pull/17449
[#17464]: https://github.com/home-assistant/home-assistant/pull/17464
[#17468]: https://github.com/home-assistant/home-assistant/pull/17468
[#17502]: https://github.com/home-assistant/home-assistant/pull/17502
[#17516]: https://github.com/home-assistant/home-assistant/pull/17516
[#17521]: https://github.com/home-assistant/home-assistant/pull/17521
[#17536]: https://github.com/home-assistant/home-assistant/pull/17536
[#17551]: https://github.com/home-assistant/home-assistant/pull/17551
[#17554]: https://github.com/home-assistant/home-assistant/pull/17554
[#17566]: https://github.com/home-assistant/home-assistant/pull/17566
[#17567]: https://github.com/home-assistant/home-assistant/pull/17567
[#17576]: https://github.com/home-assistant/home-assistant/pull/17576
[#17579]: https://github.com/home-assistant/home-assistant/pull/17579
[#17593]: https://github.com/home-assistant/home-assistant/pull/17593
[#17604]: https://github.com/home-assistant/home-assistant/pull/17604
[#17635]: https://github.com/home-assistant/home-assistant/pull/17635
[#17641]: https://github.com/home-assistant/home-assistant/pull/17641
[#17642]: https://github.com/home-assistant/home-assistant/pull/17642
[#17645]: https://github.com/home-assistant/home-assistant/pull/17645
[#17657]: https://github.com/home-assistant/home-assistant/pull/17657
[#17674]: https://github.com/home-assistant/home-assistant/pull/17674
[#17676]: https://github.com/home-assistant/home-assistant/pull/17676
[#17685]: https://github.com/home-assistant/home-assistant/pull/17685
[#17692]: https://github.com/home-assistant/home-assistant/pull/17692
[#17696]: https://github.com/home-assistant/home-assistant/pull/17696
[#17701]: https://github.com/home-assistant/home-assistant/pull/17701
[#17704]: https://github.com/home-assistant/home-assistant/pull/17704
[#17706]: https://github.com/home-assistant/home-assistant/pull/17706
[#17712]: https://github.com/home-assistant/home-assistant/pull/17712
[#17715]: https://github.com/home-assistant/home-assistant/pull/17715
[#17718]: https://github.com/home-assistant/home-assistant/pull/17718
[#17719]: https://github.com/home-assistant/home-assistant/pull/17719
[#17720]: https://github.com/home-assistant/home-assistant/pull/17720
[#17721]: https://github.com/home-assistant/home-assistant/pull/17721
[#17722]: https://github.com/home-assistant/home-assistant/pull/17722
[#17723]: https://github.com/home-assistant/home-assistant/pull/17723
[#17724]: https://github.com/home-assistant/home-assistant/pull/17724
[#17732]: https://github.com/home-assistant/home-assistant/pull/17732
[#17734]: https://github.com/home-assistant/home-assistant/pull/17734
[#17735]: https://github.com/home-assistant/home-assistant/pull/17735
[#17736]: https://github.com/home-assistant/home-assistant/pull/17736
[#17749]: https://github.com/home-assistant/home-assistant/pull/17749
[#17750]: https://github.com/home-assistant/home-assistant/pull/17750
[#17751]: https://github.com/home-assistant/home-assistant/pull/17751
[#17754]: https://github.com/home-assistant/home-assistant/pull/17754
[#17755]: https://github.com/home-assistant/home-assistant/pull/17755
[#17756]: https://github.com/home-assistant/home-assistant/pull/17756
[#17759]: https://github.com/home-assistant/home-assistant/pull/17759
[#17761]: https://github.com/home-assistant/home-assistant/pull/17761
[#17762]: https://github.com/home-assistant/home-assistant/pull/17762
[#17763]: https://github.com/home-assistant/home-assistant/pull/17763
[#17764]: https://github.com/home-assistant/home-assistant/pull/17764
[#17765]: https://github.com/home-assistant/home-assistant/pull/17765
[#17768]: https://github.com/home-assistant/home-assistant/pull/17768
[#17770]: https://github.com/home-assistant/home-assistant/pull/17770
[#17772]: https://github.com/home-assistant/home-assistant/pull/17772
[#17773]: https://github.com/home-assistant/home-assistant/pull/17773
[#17774]: https://github.com/home-assistant/home-assistant/pull/17774
[#17777]: https://github.com/home-assistant/home-assistant/pull/17777
[#17780]: https://github.com/home-assistant/home-assistant/pull/17780
[#17784]: https://github.com/home-assistant/home-assistant/pull/17784
[#17787]: https://github.com/home-assistant/home-assistant/pull/17787
[#17792]: https://github.com/home-assistant/home-assistant/pull/17792
[#17794]: https://github.com/home-assistant/home-assistant/pull/17794
[#17795]: https://github.com/home-assistant/home-assistant/pull/17795
[#17796]: https://github.com/home-assistant/home-assistant/pull/17796
[#17798]: https://github.com/home-assistant/home-assistant/pull/17798
[#17801]: https://github.com/home-assistant/home-assistant/pull/17801
[#17803]: https://github.com/home-assistant/home-assistant/pull/17803
[#17804]: https://github.com/home-assistant/home-assistant/pull/17804
[#17805]: https://github.com/home-assistant/home-assistant/pull/17805
[#17806]: https://github.com/home-assistant/home-assistant/pull/17806
[#17808]: https://github.com/home-assistant/home-assistant/pull/17808
[#17811]: https://github.com/home-assistant/home-assistant/pull/17811
[#17812]: https://github.com/home-assistant/home-assistant/pull/17812
[#17814]: https://github.com/home-assistant/home-assistant/pull/17814
[#17816]: https://github.com/home-assistant/home-assistant/pull/17816
[#17834]: https://github.com/home-assistant/home-assistant/pull/17834
[#17844]: https://github.com/home-assistant/home-assistant/pull/17844
[#17854]: https://github.com/home-assistant/home-assistant/pull/17854
[#17858]: https://github.com/home-assistant/home-assistant/pull/17858
[#17862]: https://github.com/home-assistant/home-assistant/pull/17862
[#17868]: https://github.com/home-assistant/home-assistant/pull/17868
[#17883]: https://github.com/home-assistant/home-assistant/pull/17883
[#17889]: https://github.com/home-assistant/home-assistant/pull/17889
[#17892]: https://github.com/home-assistant/home-assistant/pull/17892
[#17894]: https://github.com/home-assistant/home-assistant/pull/17894
[#17896]: https://github.com/home-assistant/home-assistant/pull/17896
[#17902]: https://github.com/home-assistant/home-assistant/pull/17902
[#17909]: https://github.com/home-assistant/home-assistant/pull/17909
[#17910]: https://github.com/home-assistant/home-assistant/pull/17910
[#17912]: https://github.com/home-assistant/home-assistant/pull/17912
[#17917]: https://github.com/home-assistant/home-assistant/pull/17917
[#17919]: https://github.com/home-assistant/home-assistant/pull/17919
[#17921]: https://github.com/home-assistant/home-assistant/pull/17921
[#17922]: https://github.com/home-assistant/home-assistant/pull/17922
[#17937]: https://github.com/home-assistant/home-assistant/pull/17937
[#17939]: https://github.com/home-assistant/home-assistant/pull/17939
[#17942]: https://github.com/home-assistant/home-assistant/pull/17942
[#17945]: https://github.com/home-assistant/home-assistant/pull/17945
[#17947]: https://github.com/home-assistant/home-assistant/pull/17947
[#17948]: https://github.com/home-assistant/home-assistant/pull/17948
[#17958]: https://github.com/home-assistant/home-assistant/pull/17958
[#17963]: https://github.com/home-assistant/home-assistant/pull/17963
[#17965]: https://github.com/home-assistant/home-assistant/pull/17965
[#17969]: https://github.com/home-assistant/home-assistant/pull/17969
[#17971]: https://github.com/home-assistant/home-assistant/pull/17971
[#17972]: https://github.com/home-assistant/home-assistant/pull/17972
[#17985]: https://github.com/home-assistant/home-assistant/pull/17985
[#17988]: https://github.com/home-assistant/home-assistant/pull/17988
[#17989]: https://github.com/home-assistant/home-assistant/pull/17989
[#17991]: https://github.com/home-assistant/home-assistant/pull/17991
[#17995]: https://github.com/home-assistant/home-assistant/pull/17995
[#17996]: https://github.com/home-assistant/home-assistant/pull/17996
[#17999]: https://github.com/home-assistant/home-assistant/pull/17999
[#18011]: https://github.com/home-assistant/home-assistant/pull/18011
[#18013]: https://github.com/home-assistant/home-assistant/pull/18013
[#18016]: https://github.com/home-assistant/home-assistant/pull/18016
[#18022]: https://github.com/home-assistant/home-assistant/pull/18022
[#18024]: https://github.com/home-assistant/home-assistant/pull/18024
[#18030]: https://github.com/home-assistant/home-assistant/pull/18030
[#18031]: https://github.com/home-assistant/home-assistant/pull/18031
[#18032]: https://github.com/home-assistant/home-assistant/pull/18032
[#18033]: https://github.com/home-assistant/home-assistant/pull/18033
[#18039]: https://github.com/home-assistant/home-assistant/pull/18039
[#18042]: https://github.com/home-assistant/home-assistant/pull/18042
[#18047]: https://github.com/home-assistant/home-assistant/pull/18047
[#18053]: https://github.com/home-assistant/home-assistant/pull/18053
[#18059]: https://github.com/home-assistant/home-assistant/pull/18059
[#18063]: https://github.com/home-assistant/home-assistant/pull/18063
[#18067]: https://github.com/home-assistant/home-assistant/pull/18067
[#18072]: https://github.com/home-assistant/home-assistant/pull/18072
[#18076]: https://github.com/home-assistant/home-assistant/pull/18076
[#18078]: https://github.com/home-assistant/home-assistant/pull/18078
[#18079]: https://github.com/home-assistant/home-assistant/pull/18079
[#18080]: https://github.com/home-assistant/home-assistant/pull/18080
[#18081]: https://github.com/home-assistant/home-assistant/pull/18081
[#18083]: https://github.com/home-assistant/home-assistant/pull/18083
[#18084]: https://github.com/home-assistant/home-assistant/pull/18084
[#18085]: https://github.com/home-assistant/home-assistant/pull/18085
[#18086]: https://github.com/home-assistant/home-assistant/pull/18086
[#18087]: https://github.com/home-assistant/home-assistant/pull/18087
[#18088]: https://github.com/home-assistant/home-assistant/pull/18088
[#18089]: https://github.com/home-assistant/home-assistant/pull/18089
[#18095]: https://github.com/home-assistant/home-assistant/pull/18095
[#18099]: https://github.com/home-assistant/home-assistant/pull/18099
[#18100]: https://github.com/home-assistant/home-assistant/pull/18100
[#18101]: https://github.com/home-assistant/home-assistant/pull/18101
[#18107]: https://github.com/home-assistant/home-assistant/pull/18107
[#18109]: https://github.com/home-assistant/home-assistant/pull/18109
[#18111]: https://github.com/home-assistant/home-assistant/pull/18111
[#18112]: https://github.com/home-assistant/home-assistant/pull/18112
[#18117]: https://github.com/home-assistant/home-assistant/pull/18117
[#18119]: https://github.com/home-assistant/home-assistant/pull/18119
[#18123]: https://github.com/home-assistant/home-assistant/pull/18123
[#18129]: https://github.com/home-assistant/home-assistant/pull/18129
[#18135]: https://github.com/home-assistant/home-assistant/pull/18135
[#18137]: https://github.com/home-assistant/home-assistant/pull/18137
[#18153]: https://github.com/home-assistant/home-assistant/pull/18153
[#18185]: https://github.com/home-assistant/home-assistant/pull/18185
[#18191]: https://github.com/home-assistant/home-assistant/pull/18191
[#18216]: https://github.com/home-assistant/home-assistant/pull/18216
[#18229]: https://github.com/home-assistant/home-assistant/pull/18229
[#18238]: https://github.com/home-assistant/home-assistant/pull/18238
[#18268]: https://github.com/home-assistant/home-assistant/pull/18268
[#18278]: https://github.com/home-assistant/home-assistant/pull/18278
[#18280]: https://github.com/home-assistant/home-assistant/pull/18280
[#18286]: https://github.com/home-assistant/home-assistant/pull/18286
[#18305]: https://github.com/home-assistant/home-assistant/pull/18305
[#18318]: https://github.com/home-assistant/home-assistant/pull/18318
[#18319]: https://github.com/home-assistant/home-assistant/pull/18319
[#18329]: https://github.com/home-assistant/home-assistant/pull/18329
[@klaasnicolaas]: https://github.com/klaasnicolaas
[@Arkkimaagi]: https://github.com/Arkkimaagi
[@Cereal2nd]: https://github.com/Cereal2nd
[@Danielhiversen]: https://github.com/Danielhiversen
[@Hedda]: https://github.com/Hedda
[@Julius2342]: https://github.com/Julius2342
[@Kane610]: https://github.com/Kane610
[@Klikini]: https://github.com/Klikini
[@MatteGary]: https://github.com/MatteGary
[@NeilCrosby]: https://github.com/NeilCrosby
[@Petro31]: https://github.com/Petro31
[@PhilRW]: https://github.com/PhilRW
[@StevenLooman]: https://github.com/StevenLooman
[@WoLpH]: https://github.com/WoLpH
[@abmantis]: https://github.com/abmantis
[@akloeckner]: https://github.com/akloeckner
[@alex9446]: https://github.com/alex9446
[@amelchio]: https://github.com/amelchio
[@antsar]: https://github.com/antsar
[@armills]: https://github.com/armills
[@aronsky]: https://github.com/aronsky
[@awarecan]: https://github.com/awarecan
[@bachya]: https://github.com/bachya
[@balloob]: https://github.com/balloob
[@bitglue]: https://github.com/bitglue
[@bramkragten]: https://github.com/bramkragten
[@cgarwood]: https://github.com/cgarwood
[@cgtobi]: https://github.com/cgtobi
[@cmsimike]: https://github.com/cmsimike
[@d0ugal]: https://github.com/d0ugal
[@doudz]: https://github.com/doudz
[@dshokouhi]: https://github.com/dshokouhi
[@eavanvalkenburg]: https://github.com/eavanvalkenburg
[@ehendrix23]: https://github.com/ehendrix23
[@emontnemery]: https://github.com/emontnemery
[@estevez-dev]: https://github.com/estevez-dev
[@evanjd]: https://github.com/evanjd
[@exxamalte]: https://github.com/exxamalte
[@fabaff]: https://github.com/fabaff
[@flowolf]: https://github.com/flowolf
[@foxel]: https://github.com/foxel
[@halkeye]: https://github.com/halkeye
[@hunterjm]: https://github.com/hunterjm
[@janvanhelvoort]: https://github.com/janvanhelvoort
[@jaredquinn]: https://github.com/jaredquinn
[@jeroenterheerdt]: https://github.com/jeroenterheerdt
[@jjlawren]: https://github.com/jjlawren
[@jkeljo]: https://github.com/jkeljo
[@jxwolstenholme]: https://github.com/jxwolstenholme
[@kbickar]: https://github.com/kbickar
[@kellerza]: https://github.com/kellerza
[@kennedyshead]: https://github.com/kennedyshead
[@lbschenkel]: https://github.com/lbschenkel
[@leothlon]: https://github.com/leothlon
[@leppa]: https://github.com/leppa
[@liaanvdm]: https://github.com/liaanvdm
[@lights0123]: https://github.com/lights0123
[@lindsaymarkward]: https://github.com/lindsaymarkward
[@luca-angemi]: https://github.com/luca-angemi
[@ludeeus]: https://github.com/ludeeus
[@manuel-jrs]: https://github.com/manuel-jrs
[@mariuszluciow]: https://github.com/mariuszluciow
[@mtl010957]: https://github.com/mtl010957
[@mvn23]: https://github.com/mvn23
[@mxworm]: https://github.com/mxworm
[@nickw444]: https://github.com/nickw444
[@pascal-de-ladurantaye]: https://github.com/pascal-de-ladurantaye
[@pszafer]: https://github.com/pszafer
[@pvizeli]: https://github.com/pvizeli
[@quazzie]: https://github.com/quazzie
[@rohankapoorcom]: https://github.com/rohankapoorcom
[@rwagoner]: https://github.com/rwagoner
[@scop]: https://github.com/scop
[@sgttrs]: https://github.com/sgttrs
[@simonvanderveldt]: https://github.com/simonvanderveldt
[@sqldiablo]: https://github.com/sqldiablo
[@stilllman]: https://github.com/stilllman
[@syssi]: https://github.com/syssi
[@terorie]: https://github.com/terorie
[@thoscut]: https://github.com/thoscut
[@tmonck]: https://github.com/tmonck
[@tsvi]: https://github.com/tsvi
[@vacumet]: https://github.com/vacumet
[@victorcerutti]: https://github.com/victorcerutti
[alarm_control_panel.manual docs]: /components/alarm_control_panel.manual/
[alert docs]: /components/alert/
[alexa docs]: /components/alexa/
[august docs]: /components/august/
[auth docs]: /components/auth/
[automation.webhook docs]: /docs/automation/trigger/#webhook-trigger
[axis docs]: /components/axis/
[binary_sensor.august docs]: /components/binary_sensor.august/
[binary_sensor.axis docs]: /components/binary_sensor.axis/
[binary_sensor.deconz docs]: /components/binary_sensor.deconz/
[binary_sensor.mqtt docs]: /components/binary_sensor.mqtt/
[binary_sensor.pilight docs]: /components/binary_sensor.pilight/
[binary_sensor.template docs]: /components/binary_sensor.template/
[binary_sensor.trend docs]: /components/binary_sensor.trend/
[binary_sensor.xiaomi_aqara docs]: /components/binary_sensor.xiaomi_aqara/
[binary_sensor.zha docs]: /components/binary_sensor.zha/
[binary_sensor.zigbee docs]: /components/binary_sensor.zigbee/
[bloomsky docs]: /components/bloomsky/
[camera docs]: /components/camera/
[camera.amcrest docs]: /components/camera.amcrest/
[camera.arlo docs]: /components/camera.arlo/
[camera.canary docs]: /components/camera.canary/
[camera.mjpeg docs]: /components/camera.mjpeg/
[camera.onvif docs]: /components/camera.onvif/
[camera.ring docs]: /components/camera.ring/
[camera.synology docs]: /components/camera.synology/
[camera.xiaomi docs]: /components/camera.xiaomi/
[camera.yi docs]: /components/camera.yi/
[climate.daikin docs]: /components/climate.daikin/
[climate.generic_thermostat docs]: /components/climate.generic_thermostat/
[climate.mill docs]: /components/climate.mill/
[climate.velbus docs]: /components/climate.velbus/
[climate.vera docs]: /components/climate.vera/
[cloud docs]: /components/cloud/
[cover.deconz docs]: /components/cover.deconz/
[cover.mqtt docs]: /components/cover.mqtt/
[deconz docs]: /components/deconz/
[device_sun_light_trigger docs]: /components/device_sun_light_trigger/
[device_tracker docs]: /components/device_tracker/
[dialogflow docs]: /components/dialogflow/
[doorbird docs]: /components/doorbird/
[fan.wemo docs]: /components/fan.wemo/
[fan.xiaomi_miio docs]: /components/fan.xiaomi_miio/
[ffmpeg docs]: /components/ffmpeg/
[geo_location docs]: /components/geo_location/
[google_assistant docs]: /components/google_assistant/
[greeneye_monitor docs]: /components/greeneye_monitor/
[hassio docs]: /components/hassio/
[homematicip_cloud docs]: /components/homematicip_cloud/
[http docs]: /components/http/
[ifttt docs]: /components/ifttt/
[image_processing.microsoft_face_detect docs]: /components/image_processing.microsoft_face_detect/
[image_processing.microsoft_face_identify docs]: /components/image_processing.microsoft_face_identify/
[image_processing.opencv docs]: /components/image_processing.opencv/
[image_processing.tensorflow docs]: /components/image_processing.tensorflow/
[input_number docs]: /components/input_number/
[keyboard_remote docs]: /components/keyboard_remote/
[knx docs]: /components/knx/
[light.avion docs]: /components/light.avion/
[light.deconz docs]: /components/light.deconz/
[light.xiaomi_miio docs]: /components/light.xiaomi_miio/
[light.yeelight docs]: /components/light.yeelight/
[lock.august docs]: /components/lock.august/
[lovelace docs]: /components/lovelace/
[mailgun docs]: /components/mailgun/
[media_extractor docs]: /components/media_extractor/
[media_player.directv docs]: /components/media_player.directv/
[media_player.dlna_dmr docs]: /components/media_player.dlna_dmr/
[media_player.onkyo docs]: /components/media_player.onkyo/
[media_player.samsungtv docs]: /components/media_player.samsungtv/
[media_player.yamaha docs]: /components/media_player.yamaha/
[mychevy docs]: /components/mychevy/
[notify docs]: /components/notify/
[opentherm_gw docs]: /components/opentherm_gw/
[openuv docs]: /components/openuv/
[python_script docs]: /components/python_script/
[remote.xiaomi_miio docs]: /components/remote.xiaomi_miio/
[rflink docs]: /components/rflink/
[ring docs]: /components/ring/
[route53 docs]: /components/route53/
[rpi_pfio docs]: /components/rpi_pfio/
[scene.deconz docs]: /components/scene.deconz/
[sensor.bom docs]: /components/sensor.bom/
[sensor.darksky docs]: /components/sensor.darksky/
[sensor.deconz docs]: /components/sensor.deconz/
[sensor.dte_energy_bridge docs]: /components/sensor.dte_energy_bridge/
[sensor.greeneye_monitor_current docs]: /components/sensor.greeneye_monitor_current/
[sensor.greeneye_monitor_pulse docs]: /components/sensor.greeneye_monitor_pulse/
[sensor.greeneye_monitor_temperature docs]: /components/sensor.greeneye_monitor_temperature/
[sensor.igd docs]: /components/sensor.igd/
[sensor.jewish_calendar docs]: /components/sensor.jewish_calendar/
[sensor.logi_circle docs]: /components/sensor.logi_circle/
[sensor.meteo_france docs]: /components/sensor.meteo_france/
[sensor.openweathermap docs]: /components/sensor.openweathermap/
[sensor.pi_hole docs]: /components/sensor.pi_hole/
[sensor.pollen docs]: /components/sensor.pollen/
[sensor.rmvtransport docs]: /components/sensor.rmvtransport/
[sensor.rtorrent docs]: /components/sensor.rtorrent/
[sensor.sense docs]: /components/sensor.sense/
[sensor.sma docs]: /components/sensor.sma/
[sensor.sql docs]: /components/sensor.sql/
[sensor.systemmonitor docs]: /components/sensor.systemmonitor/
[sensor.version docs]: /components/sensor.version/
[sensor.wunderground docs]: /components/sensor.wunderground/
[sensor.xiaomi_miio docs]: /components/sensor.xiaomi_miio/
[sensor.yahoo_finance docs]: /components/sensor.yahoo_finance/
[simplisafe docs]: /components/simplisafe/
[sun docs]: /components/sun/
[switch.deconz docs]: /components/switch.deconz/
[switch.dlink docs]: /components/switch.dlink/
[switch.doorbird docs]: /components/switch.doorbird/
[switch.flux docs]: /components/switch.flux/
[switch.unifi docs]: /components/switch.unifi/
[switch.xiaomi_aqara docs]: /components/switch.xiaomi_aqara/
[switch.xiaomi_miio docs]: /components/switch.xiaomi_miio/
[switch.zigbee docs]: /components/switch.zigbee/
[telegram_bot docs]: /components/telegram_bot/
[tts docs]: /components/tts/
[twilio docs]: /components/twilio/
[updater docs]: /components/updater/
[upnp docs]: /components/upnp/
[vacuum.mqtt docs]: /components/vacuum.mqtt/
[vacuum.roomba docs]: /components/vacuum.roomba/
[vacuum.xiaomi_miio docs]: /components/vacuum.xiaomi_miio/
[velbus docs]: /components/velbus/
[weather.openweathermap docs]: /components/weather.openweathermap/
[websocket_api docs]: /components/websocket_api/
[wemo docs]: /components/wemo/
[zha docs]: /components/zha/
[zigbee docs]: /components/zigbee/
[zwave docs]: /components/zwave/

File diff suppressed because it is too large Load Diff

View File

@ -53,7 +53,9 @@ Looking for [talking points](/help/talking-points/) or [trivia](/help/trivia)?
Don't miss the regular [Home Assistant podcasts](https://hasspodcast.io/). Don't miss the regular [Home Assistant podcasts](https://hasspodcast.io/).
- [DINAcon begeistert 200 Teilnehmende und die Award-Gewinner 2018](https://dinacon.ch/wp-content/uploads/sites/4/2018/10/2018-10-19_DINAcon2018_Medienmitteilung.pdf) - October 2018
- [Build a wireless MQTT weather sensor for your Home Assistant](https://www.smartlab.at/build-a-wireless-mqtt-temperature-and-humidity-sensor-for-your-home-assistant/) - October 2018 - [Build a wireless MQTT weather sensor for your Home Assistant](https://www.smartlab.at/build-a-wireless-mqtt-temperature-and-humidity-sensor-for-your-home-assistant/) - October 2018
- [Nominations for the DINACon award 2018](https://www.netzwoche.ch/news/2018-09-04/das-sind-die-nominierten-fuer-die-dinacon-awards-2018) - September 2018
- [Building a better thermostat with Home Assistant](https://opensource.com/article/18/8/build-thermostat-open-source-tools) - August 2018 - [Building a better thermostat with Home Assistant](https://opensource.com/article/18/8/build-thermostat-open-source-tools) - August 2018
- [Home Assistant lets you automate your smart home without giving up privacy](https://www.the-ambient.com/features/home-assistant-automation-privacy-582) - May 2018 - [Home Assistant lets you automate your smart home without giving up privacy](https://www.the-ambient.com/features/home-assistant-automation-privacy-582) - May 2018
- [HackSpace magazine #6](https://s3-eu-west-1.amazonaws.com/rpi-magazines/issues/full_pdfs/000/000/013/original/HS_6_Digital_Optimised.pdf?1524495009) - May 2018 - [HackSpace magazine #6](https://s3-eu-west-1.amazonaws.com/rpi-magazines/issues/full_pdfs/000/000/013/original/HS_6_Digital_Optimised.pdf?1524495009) - May 2018

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

View File

@ -48,6 +48,25 @@ Visual comparison of old configuration versus new configuration
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. 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.
As a super minimal example, here's the bare minimum you will need for this to work:
```yaml
title: My Awesome Home
views:
# View tab title.
- title: Example
panel: true
# Makes the first card fill the view
cards:
# The markdown card will render markdown text.
- type: markdown
title: Lovelace
content: >
Welcome to your **Lovelace UI**.
```
A slightly more advanced example shows additional elements which can be used to customize your frontend.
```yaml ```yaml
title: My Awesome Home title: My Awesome Home
# Include external resources # Include external resources
@ -155,9 +174,3 @@ frontend:
Given examples refer to `/local/example_image.jpg`. That means you should have `www` directory next to your HA `configuration.yaml`. An image kept in `HA_configuration_dir/www/example_image.jpg` will be shown after refreshing Lovelace page. Given examples refer to `/local/example_image.jpg`. That means you should have `www` directory next to your HA `configuration.yaml`. An image kept in `HA_configuration_dir/www/example_image.jpg` will be shown after refreshing Lovelace page.
Restart Home Assistant after creating the `www` directory. Otherwise, HA will not know that you created this directory. Restart Home Assistant after creating the `www` directory. Otherwise, HA will not know that you created this directory.
### {% linkable_title My `ui-lovelace.yaml` file suddenly has ID's added to all cards and views! %}
Since version 0.81 we started preparing for the ability to edit you Lovelace UI from the UI itself. To be able to do this every view and card should have a unique ID. If your cards or views do not have an ID, Home Assistant will add a random one. You can edit the ID, the only restriction is that it is unique.
If you don't want Home Assistant to write to your `ui-lovelace.yaml` file, make sure all your views and cards have an ID, then Home Assistant will not touch your file.