diff --git a/.gitignore b/.gitignore index 6713e9e11c0..f02128325f5 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,4 @@ source/.jekyll-metadata /.vs/config/applicationhost.config /.vs/slnx.sqlite-journal /.vs/VSWorkspaceState.json +.vscode diff --git a/_config.yml b/_config.yml index f62f416f312..7a63002486a 100644 --- a/_config.yml +++ b/_config.yml @@ -139,14 +139,14 @@ social: # Home Assistant release details current_major_version: 0 -current_minor_version: 71 -current_patch_version: 0 -date_released: 2018-06-08 +current_minor_version: 72 +current_patch_version: 1 +date_released: 2018-06-25 # Either # or the anchor link to latest release notes in the blog post. # Must be prefixed with a # and have double quotes around it. # Major release: -patch_version_notes: "#" +patch_version_notes: "#release-0721---june-25" # Minor release (Example #release-0431---april-25): # Date we moved to Discourse for comments diff --git a/credits_generator/package.json b/credits_generator/package.json index 42c6687b158..a7d7b76fe53 100644 --- a/credits_generator/package.json +++ b/credits_generator/package.json @@ -1,13 +1,14 @@ { "name": "credits_generator", "version": "1.0.0", + "private": true, "description": "A tool to generate the Home Assistant credits page", "main": "update_credits.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "Home Assistant Community", - "license": "Apache 2.0", + "license": "Apache-2.0", "dependencies": { "async": "^2.1.4", "github": "^8.1.0", diff --git a/source/_components/alert.markdown b/source/_components/alert.markdown index 4c59259cde3..e1af527f5f2 100644 --- a/source/_components/alert.markdown +++ b/source/_components/alert.markdown @@ -16,7 +16,9 @@ The `alert` component is designed to notify you when problematic issues arise. F Alerts will add an entity to the front end only when they are firing. This entity allows you to silence an alert until it is resolved. +

When using the `alert` component, it is important that the time zone used for Home Assistant and the underlying operating system match. Failing to do so may result in multiple alerts being sent at the same time (such as when Home Assistant is set to the `America/Detroit` time zone but the operating system uses `UTC`). +

### {% linkable_title Basic Example %} diff --git a/source/_components/binary_sensor.mychevy.markdown b/source/_components/binary_sensor.mychevy.markdown index 8da9bb52d47..b04312b2ae5 100644 --- a/source/_components/binary_sensor.mychevy.markdown +++ b/source/_components/binary_sensor.mychevy.markdown @@ -13,4 +13,4 @@ ha_release: 0.62 ha_iot_class: "Cloud Polling" --- -For configuration instructions, see [main component config](/components/mychecvy/). +For configuration instructions, see [main component config](/components/mychevy/). diff --git a/source/_components/binary_sensor.trend.markdown b/source/_components/binary_sensor.trend.markdown index ed17e8a232e..dae3d1c9ed7 100644 --- a/source/_components/binary_sensor.trend.markdown +++ b/source/_components/binary_sensor.trend.markdown @@ -33,9 +33,9 @@ Configuration variables: - **attribute** (*Optional*): The attribute of the entity that this sensor tracks. If no attribute is specified then the sensor will track the state. - **device_class** (*Optional*): The [type/class](/components/binary_sensor/) of the sensor to set the icon in the frontend. - **friendly_name** (*Optional*): Name to use in the Frontend. - - **invert** (*Optional*): Invert the result (so `true` means descending rather than ascending). Defaults to `False` + - **invert** (*Optional*): Invert the result. A `true` value would mean descending rather than ascending. Defaults to `False` - **max_samples** (*Optional*): Limit the maximum number of stored samples. Defaults to `2`. - - **min_gradient** (*Optional*): The minimum rate at which the observed value must be changing for this sensor to switch on. Defaults to `0.0` + - **min_gradient** (*Optional*): The minimum rate at which the observed value must be changing for this sensor to switch on. The gradient is measured in sensor units per second. Defaults to `0.0` - **sample_duration** (*Optional*): The duration **in seconds** to store samples for. Samples older than this value will be discarded. Defaults to `0` ## {% linkable_title Using Multiple Samples %} @@ -63,6 +63,7 @@ binary_sensor: attribute: elevation ``` + This example creates two sensors to indicate whether the temperature is rising or falling at a rate of at least 3 degrees an hour, and collects samples over a two hour period: ```yaml diff --git a/source/_components/camera.uvc.markdown b/source/_components/camera.uvc.markdown index 16c024e1c47..6c924446cc2 100644 --- a/source/_components/camera.uvc.markdown +++ b/source/_components/camera.uvc.markdown @@ -13,7 +13,6 @@ ha_release: 0.13 ha_iot_class: "Local Polling" --- - The `uvc` camera platform allows you to integrate [UniFi Video Camera (UVC)](https://www.ubnt.com/products/#unifivideo) into Home Assistant. The platform connects to the Unifi NVR software and automatically discovers/adds any camera connected to the NVR. @@ -42,16 +41,16 @@ nvr: description: The IP or hostname of the NVR (Network Video Recorder) server. required: true type: string -key: - description: The API key available from the NVR web interface. - required: true - type: string port: description: The port number to use for accessing the NVR. required: false type: int default: 7080 -name: +key: + description: The API key available from the NVR web interface. + required: true + type: string +password: description: The camera password. required: false type: string diff --git a/source/_components/camera.xiaomi.markdown b/source/_components/camera.xiaomi.markdown new file mode 100644 index 00000000000..2285e405a41 --- /dev/null +++ b/source/_components/camera.xiaomi.markdown @@ -0,0 +1,86 @@ +--- +layout: page +title: "Xiaomi Cameras" +description: "Instructions on how to integrate a video feed (via FFmpeg) as a camera within Home Assistant." +date: 2018-06-20 13:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: xiaomi.png +ha_category: Camera +ha_release: 0.72 +ha_iot_class: "Local Polling" +--- + +The `Xiaomi` camera platform allows you to utilize Xiaomi Cameras within Home Assistant. + +To successfully implement this platform, the Home Assistant host should be capable of multiple simultaneous reads. For every concurrent Home Assistant user, a connection will be made to the camera every 10 seconds. This should normally not be a problem. + +## {% linkable_title Preparing the Device %} + +### {% linkable_title Installing Alternative Firmware %} + +In order to integrate the camera with Home Assistant, it is necessary to install a custom firmware on the device. Instructions for doing so can be found for each models. + +* [Yi 720p](https://github.com/fritz-smh/yi-hack) +* [Yi Home 17CN / 27US / 47US / 1080p Home / Dome / 1080p Dome](https://github.com/shadow-1/yi-hack-v3) +* [Xiaofang 1080p Camera](https://github.com/samtap/fang-hacks) + +Once installed, please ensure that you have enabled FTP. + +

+Currently, version 0.1.4-beta2 of the custom firmware is the highest supported. Firmwares higher than this version use [Pure-FTPd](https://www.pureftpd.org/project/pure-ftpd), which has a bug that prevents FFmpeg from correctly rendering video files. +

+ +

+Hassbian users: don't forget to install ffmpeg support on your platform, otherwise, you'll not see video. +

+ +

+The live stream writing by the camera is not an supported format when the hass reads through FTP for Yi 720p and Xiaofang Cameras, so this component retrives the video which was saved 1 minute earlier. +

+ +

+If you enabled RTSP server, you can connect to your camera via other Home Assistant camera platforms. However, this RTSP server disables the ability to use the supremely-useful Mi Home app. In order to maintain both Home Assistant compatibility _and_ the native app, this platform retrieves videos via FTP. +

+ +## {% linkable_title Configuring the Platform %} + +To enable the platform, add the following lines to your`configuration.yaml` file: + +```yaml +camera: + - platform: xiaomi + name: Camera + host: '192.168.1.100' + model: 'yi' + password: my_password_123 +``` + +Configuration variables: + +- **name** (*Required*): A human-friendly name for the camera. +- **host** (*Required*): The IP address or hostname of the camera. +- **model** (*Required*): The model of Xiaomi Camera, currently supporting yi and xiaofang. +- **password** (*Required*): The password to the FTP server on the camera (from above), can be any string as the current firmware doesn't allow setting ftp passwords. +- **path** (*Optional*): The path to the raw MP4 files. Defaults to `/tmp/sd/record`. +- **username** (*Optional*): The user that can access the FTP server. Defaults to `root`. +- **ffmpeg_arguments** (*Optional*): Extra options to pass to `ffmpeg` (e.g., image quality or video filter options). + +## {% linkable_title Image quality %} + +Any option supported by [`ffmpeg` camera](/components/camera.ffmpeg/) can be utilized via the `ffmpeg_arguments` configuration parameter. + +One particularly useful adjustment deals with video size. Since Yi videos are fairly large (especially on the 1080p cameras), the following configuration will bring them down to a manageable size: + +```yaml +camera: + - platform: xiaomi + name: My Camera + host: '192.168.1.100' + model: 'xiaofang' + password: my_password_123 + path: /home/camera/feed + ffmpeg_arguments: '-vf scale=800:450' +``` diff --git a/source/_components/media_player.cast.markdown b/source/_components/cast.markdown similarity index 55% rename from source/_components/media_player.cast.markdown rename to source/_components/cast.markdown index 13d18534ba4..7243ad78a09 100644 --- a/source/_components/media_player.cast.markdown +++ b/source/_components/cast.markdown @@ -12,31 +12,27 @@ ha_category: Media Player featured: true ha_release: pre 0.7 ha_iot_class: "Local Polling" +redirect_from: /components/media_player.cast/ --- -Google Cast devices like Android TVs and Chromecasts will be automatically discovered if you enable [the discovery component]({{site_root}}/components/discovery/). There is an issue where Chromecasts can only be discovered if your device is connected to the same subnet as your Chromecast. +Google Cast devices like Android TVs and Chromecasts will be automatically discovered if you enable [the discovery component]({{site_root}}/components/discovery/). If you don't have the discovery component enabled, you can enable the Cast component by going to the Integrations page inside the config panel. + +## {% linkable_title Advanced use %} + +The Cast component has some extra configuration options available for advanced users. You will still need to create a config entry to initialize the Cast component. + +For example, Cast devices can only be discovered if they are on the same subnet as Home Assistant. If this is not the case, you want to configure the IP address of the Cast device directly: -The Chromecast platform can also be forced to load by adding the following lines to your `configuration.yaml`: ```yaml # Example configuration.yaml entry -media_player: - - platform: cast +cast: + media_player: + - host: 192.168.1.10 ``` Configuration variables: - **host** (*Optional*): Use only if you don't want to scan for devices. - **ignore_cec** (*Optional*) A list of Chromecasts that should ignore CEC data for determining the active input. [See the upstream documentation for more information.](https://github.com/balloob/pychromecast#ignoring-cec-data) - -## {% linkable_title Example %} - -By setting `host:` you can specify the Chromecast to use. - -```yaml -# Example configuration.yaml entry -media_player: - - platform: cast - host: 192.168.1.10 -``` diff --git a/source/_components/egardia.markdown b/source/_components/egardia.markdown index a19c76738b1..50efce55a66 100644 --- a/source/_components/egardia.markdown +++ b/source/_components/egardia.markdown @@ -90,6 +90,10 @@ report_server_codes: Note that this basic configuration will only enable you to read the armed/armed away/disarmed status of your alarm and will **not** update the status if the alarm is triggered. This is because of how Egardia built their system. The alarm triggers normally go through their servers. You can change this, however, using the following procedure. This is a more advanced (and more useful) configuration. +

+There seem to be multiple versions of software running on GATE-02 devices; we have received reports from GATE-02 users who successfully run this package in GATE-02 mode. Others have reported they needed to specify GATE-03 as their version to integrate their GATE-02. +

+ ## {% linkable_title Advanced configuration %} 1. Log in to your alarm system's control panel. You will need to access http://[IP of your control panel]. You know this already since you need it in the basic configuration from above. Log in to the control panel with your Egardia/Woonveilig username and password. diff --git a/source/_components/homekit.markdown b/source/_components/homekit.markdown index 4d7fc95f2f7..b2cea8deeda 100644 --- a/source/_components/homekit.markdown +++ b/source/_components/homekit.markdown @@ -34,6 +34,10 @@ homekit: entity_config: alarm_control_panel.home: code: 1234 + light.kitchen_table: + name: Kitchen Table Light + lock.front_door: + code: 1234 media_player.living_room: feature_list: - feature: on_off @@ -114,10 +118,10 @@ homekit: required: true type: string type: - description: Only for `switch` entities. Type of accessory to be created within HomeKit. Valid types are `switch` and `outlet`. + description: Only for `switch` entities. Type of accessory to be created within HomeKit. Valid types are `switch` and `outlet`. HomeKit will cache the type on the first run so a device must be removed and then re-added for any change to take effect. required: false type: string - default: switch + default: '`switch`' {% endconfiguration %}

@@ -151,6 +155,10 @@ After the setup is completed you should be able to control your Home Assistant c Currently this component uses the `entity_id` to generate a unique `accessory id (aid)` for `HomeKit`. The `aid` is used to identify a device and save all configurations made for it. This however means that if you decide to change an `entity_id` all configurations for this accessory made in the `Home` app will be lost. +### {% linkable_title Device Limit %} + +The HomeKit guidelines only allow a maximum of 100 unique accessories (`aid`) per bridge. Be mindful of this when configuring the filter(s). + ### {% linkable_title Persistence Storage %} Unfortunately `HomeKit` doesn't support any kind of persistent storage - only the configuration for accessories that are added to the `Home Assistant Bridge` are kept. To avoid problems it is recommended to use an automation to always start `HomeKit` with at least the same entities setup. If for some reason some entities are not setup, their config will be deleted. (State unknown or similar will not cause any issues.) @@ -283,3 +291,17 @@ logger: - The configuration entries for `homekit` and the `component` that is causing the issue. - The log / traceback you have generated before. - Screenshots of the failing entity in the `states` panel. + +## {% linkable_title Troubleshooting PIN not appearing %} + +In some instances, the PIN will not appear as a persistent status or in the log files despite deleting `.homekit.state`, enabling logging, and reboot. The log files will include the error ```Duplicate AID found when attempting to add accessory```. + +In such cases, modifying your configuration.yaml to add a filter limiting the included entities similar to the following: + +```yaml +filter: + include_domains: + - light +``` + +Restart Home-Assistant and re-attempt pairing - a persistent status should now correctly appear. diff --git a/source/_components/http.markdown b/source/_components/http.markdown index 4afa9506168..91b600b2c31 100644 --- a/source/_components/http.markdown +++ b/source/_components/http.markdown @@ -54,12 +54,12 @@ http: cors_allowed_origins: - https://google.com - https://www.home-assistant.io - use_x_forwarded_for: True + use_x_forwarded_for: False trusted_networks: - 127.0.0.1 - ::1 - 192.168.0.0/24 - - 2001:DB8:ABCD::/48 + - fd00::/8 ip_ban_enabled: True login_attempts_threshold: 5 ``` diff --git a/source/_components/input_boolean.markdown b/source/_components/input_boolean.markdown index b2b23aeeff0..68f75566ba4 100644 --- a/source/_components/input_boolean.markdown +++ b/source/_components/input_boolean.markdown @@ -47,7 +47,7 @@ input_boolean: ### {% linkable_title Restore State %} -This component supports the `restore_state` function which restores the state after Home Assistant has started to the value it has been before Home Assistant stopped. To use this feature please make sure that the [`recorder`](/components/recorder/) component is enabled and your entity does not have a value set for `initial`. Additional information can be found in the [Restore state](/components/recorder/#restore-state) section of the [`recorder`](/components/recorder/) component documentation. +This component will automatically restore the state it had prior to Home Assistant stopping as long as you have the `recorder` component enabled and your entity does **not** have a set value for `initial`. To disable this feature, set a valid value for `initial`. Additional information can be found in the [Restore state](/components/recorder/#restore-state) section of the [`recorder`](/components/recorder/) component documentation. ## {% linkable_title Automation Examples %} diff --git a/source/_components/input_datetime.markdown b/source/_components/input_datetime.markdown index 462b309e7e7..e8a793ae6a3 100644 --- a/source/_components/input_datetime.markdown +++ b/source/_components/input_datetime.markdown @@ -74,7 +74,7 @@ A datetime input entity's state exports several attributes that can be useful in ### {% linkable_title Restore State %} -This component supports the `restore_state` function which restores the state after Home Assistant has started to the value it has been before Home Assistant stopped. To use this feature please make sure that the [`recorder`](/components/recorder/) component is enabled and your entity does not have a value set for `initial`. Additional information can be found in the [Restore state](/components/recorder/#restore-state) section of the [`recorder`](/components/recorder/) component documentation. +This component will automatically restore the state it had prior to Home Assistant stopping as long as you have the `recorder` component enabled and your entity does **not** have a set value for `initial`. To disable this feature, set a valid value for `initial`. Additional information can be found in the [Restore state](/components/recorder/#restore-state) section of the [`recorder`](/components/recorder/) component documentation. ### {% linkable_title Services %} diff --git a/source/_components/input_number.markdown b/source/_components/input_number.markdown index 44d819c39c5..aadbd391509 100644 --- a/source/_components/input_number.markdown +++ b/source/_components/input_number.markdown @@ -84,7 +84,7 @@ input_number: ### {% linkable_title Restore State %} -This component supports the `restore_state` function which restores the state after Home Assistant has started to the value it has been before Home Assistant stopped. To use this feature please make sure that the [`recorder`](/components/recorder/) component is enabled and your entity does not have a value set for `initial`. Additional information can be found in the [Restore state](/components/recorder/#restore-state) section of the [`recorder`](/components/recorder/) component documentation. +This component will automatically restore the state it had prior to Home Assistant stopping as long as you have the `recorder` component enabled and your entity does **not** have a set value for `initial`. To disable this feature, set a valid value for `initial`. Additional information can be found in the [Restore state](/components/recorder/#restore-state) section of the [`recorder`](/components/recorder/) component documentation. ## {% linkable_title Automation Examples %} diff --git a/source/_components/input_select.markdown b/source/_components/input_select.markdown index 8e59002ccfb..dec70767fd1 100644 --- a/source/_components/input_select.markdown +++ b/source/_components/input_select.markdown @@ -64,7 +64,7 @@ Because YAML defines [booleans](http://yaml.org/type/bool.html) as equivalent, a ### {% linkable_title Restore State %} -This component supports the `restore_state` function which restores the state after Home Assistant has started to the value it has been before Home Assistant stopped. To use this feature please make sure that the [`recorder`](/components/recorder/) component is enabled and your entity does not have a value set for `initial`. Additional information can be found in the [Restore state](/components/recorder/#restore-state) section of the [`recorder`](/components/recorder/) component documentation. +This component will automatically restore the state it had prior to Home Assistant stopping as long as you have the `recorder` component enabled and your entity does **not** have a set value for `initial`. To disable this feature, set a valid value for `initial`. Additional information can be found in the [Restore state](/components/recorder/#restore-state) section of the [`recorder`](/components/recorder/) component documentation. ### {% linkable_title Services %} diff --git a/source/_components/input_text.markdown b/source/_components/input_text.markdown index 284ab5ea361..187f08a0e46 100644 --- a/source/_components/input_text.markdown +++ b/source/_components/input_text.markdown @@ -71,4 +71,4 @@ input_text: ### {% linkable_title Restore State %} -This component supports the `restore_state` function which restores the state after Home Assistant has started to the value it has been before Home Assistant stopped. To use this feature please make sure that the [`recorder`](/components/recorder/) component is enabled and your entity does not have a value set for `initial`. Additional information can be found in the [Restore state](/components/recorder/#restore-state) section of the [`recorder`](/components/recorder/) component documentation. +This component will automatically restore the state it had prior to Home Assistant stopping as long as you have the `recorder` component enabled and your entity does **not** have a set value for `initial`. To disable this feature, set a valid value for `initial`. Additional information can be found in the [Restore state](/components/recorder/#restore-state) section of the [`recorder`](/components/recorder/) component documentation. diff --git a/source/_components/light.deconz.markdown b/source/_components/light.deconz.markdown index 7ee2d591950..918f0733665 100644 --- a/source/_components/light.deconz.markdown +++ b/source/_components/light.deconz.markdown @@ -1,6 +1,6 @@ --- layout: page -title: "deCONZ lights" +title: "deCONZ Lights" description: "Instructions on how to integrate Zigbee lights from deCONZ into Home Assistant." date: 2017-11-12 16:30 sidebar: true @@ -15,9 +15,9 @@ ha_iot_class: "Local Push" See the [deCONZ main component](/components/deconz/) for configuration instructions. -Entity Ids names will be light.device_name, where device_name is defined in deCONZ. Light groups created in deCONZ will be created in Home Assistant as lights named light.group_name_in_deconz, allowing the user to control groups of lights with only a single API call to deCONZ. +The `Entity Id` names will be `light.device_name`, where `device_name` is defined in deCONZ. Light groups created in deCONZ will be created in Home Assistant as lights named `light.group_name_in_deconz`, allowing the user to control groups of lights with only a single API call to deCONZ. -#### {% linkable_title Verified to be supported sensors %} +#### {% linkable_title Verified supported lights %} - IKEA Trådfri bulb E14 WS opal 400lm - IKEA Trådfri Bulb E27 WS Opal 980lm diff --git a/source/_components/light.limitlessled.markdown b/source/_components/light.limitlessled.markdown index 2dcf4d9c7a8..5b606c13ec4 100644 --- a/source/_components/light.limitlessled.markdown +++ b/source/_components/light.limitlessled.markdown @@ -14,11 +14,17 @@ ha_iot_class: "Assumed State" ha_release: pre 0.7 --- -`limitlessled` can control your [LimitlessLED](http://www.limitlessled.com/) lights from within Home Assistant. The lights are also known as EasyBulb, AppLight, AppLamp, MiLight, 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. + +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. + +An archive of the extensive API can be found [here](https://github.com/Fantasmos/LimitlessLED-DevAPI). ### {% linkable_title Setup %} -Before configuring Home Assistant, make sure you can control your bulbs or LEDs with the MiLight mobile application. 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)). Keep in mind that LimitlessLED bulbs are controlled via groups. You can not control an individual bulb via the bridge, unless it is in a group by itself. Note that you can assign an `rgbw`, `rgbww`, `white` and `dimmer` group to the same group number, effectively allowing 16 groups (4 `rgbww`, 4 `rgbw`, 4 `white` and 4 `dimmer`) per bridge. +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: @@ -60,18 +66,36 @@ Configuration variables: - **number** (*Required*): Group number (`1`-`4`). Corresponds to the group number on the remote. These numbers may overlap only if the type is different. - **name** (*Required*): Any name you'd like. Must be unique among all configured groups. - **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. - - **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. + - **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. + +### {% linkable_title Night Effect %} + +LimitlessLED has a `night` effect that can be used to dim the lights below `brightness: 1`. This night mode is meant to temporarily turn the lights into a nightlight. This mode can be especially helpful when wall switches are also being used. For example, when a light is using the `night` effect one way to return it to its previous brightness level (other than using Home Assistant) is to switch the lights off and then back on from the wall switch. + +Note that the `brightness`, `color` and `temperature` attributes cannot be used when using the `night` effect. You can turn on `night` effect by using the `effect` attribute of the normal `light.turn_on` service. Here is an example: + +```yaml +automation: + - alias: ... + trigger: + # ... + action: + - service: light.turn_on + data: + entity_id: light.office, light.kitchen + effect: night +``` ### {% linkable_title Properties %} Refer to the [light]({{site_root}}/components/light/) documentation for general property usage, but keep in mind the following notes specific to LimitlessLED. - **RGBWW** (Only supported on v6 bridges) - - *Color*: There are 25,856 color possibilities along the LimitlessLED color spectrum. For colors, hue and saturation can be used, but not lightness. If you select a color with lightness, Home Assistant will calculate the nearest valid LimitlessLED color. In white mode the temperature can be set. + - *Color*: There are 25,856 color possibilities along the LimitlessLED color spectrum. For colors, hue and saturation can be used, but not lightness. If you select a color with lightness, Home Assistant will calculate the nearest valid LimitlessLED color. In white mode, the temperature can be set. - *Temperature*: There are 101 temperature steps. - *Brightness*: There are 101 brightness steps. - **RGBW** - - *Color*: There are 256 color possibilities along the LimitlessLED color spectrum. Color properties like saturation and lightness can not be used - only Hue can. The only exception is white (which may be warm or cold depending on the type of RGBW bulb). If you select a color with saturation or lightness, Home Assistant will calculate the nearest valid LimitlessLED color. + - *Color*: There are 256 color possibilities along the LimitlessLED color spectrum. Color properties like saturation and lightness cannot be used - only Hue can. The only exception is white (which may be warm or cold depending on the type of RGBW bulb). If you select a color with saturation or lightness, Home Assistant will calculate the nearest valid LimitlessLED color. - *Brightness*: Wifi bridge v6 supports 101 brightness steps; older versions only 25. - **White** - When using a legacy WiFi bridge (before v6), you can observe on the MiLight mobile application, you can not select a specific brightness or temperature - you can only step each property up or down. There is no indication of which step you are on. This restriction, combined with the unreliable nature of LimitlessLED transmissions, means that setting white bulb properties is done on a best-effort basis. The only very reliable settings are the minimum and maximum of each property. @@ -87,7 +111,7 @@ Refer to the [light]({{site_root}}/components/light/) documentation for general When starting Home Assistant, the last recorded state will be shown. This might no longer match the actual state of the bulbs. -If you control your LimitlessLED lights via the MiLight mobile application or other means while Home Assistant is running, Home Assistant can not track those changes and you may observe obsolete information. +If you control your LimitlessLED lights via the MiLight mobile application or other means while Home Assistant is running, Home Assistant cannot track those changes and you may observe obsolete information. This lack of synchronization is due to a LimitlessLED limitation. diff --git a/source/_components/matrix.markdown b/source/_components/matrix.markdown index e98604403d7..b6e9e9814b9 100644 --- a/source/_components/matrix.markdown +++ b/source/_components/matrix.markdown @@ -31,7 +31,7 @@ Configuration variables: {% configuration %} username: - description: "The matrix username that home assistant should use to log in. *Note*: You must specify a full matrix ID here, including the homeserver domain, e.g. '@my_matrix_bot:matrix.org'. Please note also that the '@' character has a special meaning in YAML, so this must always be given in quotes." + description: "The matrix username that Home Assistant should use to log in. *Note*: You must specify a full matrix ID here, including the homeserver domain, e.g. '@my_matrix_bot:matrix.org'. Please note also that the '@' character has a special meaning in YAML, so this must always be given in quotes." required: true type: string password: @@ -79,7 +79,7 @@ commands: ### {% linkable_title Event Data %} -If a command is triggered, a `matrix_command` event is fired. The event contains the name of the command in the `name` field. If the command is a word command that has no name set, the `name` field contains the word instead. +If a command is triggered, a `matrix_command` event is fired. The event contains the name of the command in the `name` field. If the command is a word command, the `data` field contains a list of the command's arguments, i.e., everything that stood behind the word, split at spaces. If the command is an expression command, the `data` field contains the [group dictionary](https://docs.python.org/3.6/library/re.html?highlight=re#re.match.groupdict) of the regular expression that matched the message. diff --git a/source/_components/media_player.denonavr.markdown b/source/_components/media_player.denonavr.markdown index ee1c434ff4b..5e9a122cc5d 100644 --- a/source/_components/media_player.denonavr.markdown +++ b/source/_components/media_player.denonavr.markdown @@ -30,6 +30,7 @@ Supported devices: - Marantz M-RC610 - Marantz SR5008 - Marantz SR6007 - SR6010 +- Marantz NR1506 - Marantz NR1604 - Other Denon AVR receivers (untested) - Marantz receivers (experimental) diff --git a/source/_components/media_player.philips_js.markdown b/source/_components/media_player.philips_js.markdown index 3b9cac6a98a..78f87af83a6 100644 --- a/source/_components/media_player.philips_js.markdown +++ b/source/_components/media_player.philips_js.markdown @@ -35,3 +35,15 @@ Configuration variables:

When using api_version: 5 changing sources switches tv channels. Additionally this allows setting the volume level.

+ + +```yaml +# Example configuration.yaml with turn_on_action +media_player: + - platform: philips_js + host: 192.168.1.99 + turn_on_action: + service: wake_on_lan.send_magic_packet + data: + mac: aa:bb:cc:dd:ee:ff +``` diff --git a/source/_components/media_player.samsungtv.markdown b/source/_components/media_player.samsungtv.markdown index 42cde99e19c..49bda958e0a 100644 --- a/source/_components/media_player.samsungtv.markdown +++ b/source/_components/media_player.samsungtv.markdown @@ -57,6 +57,7 @@ Currently known supported models: - U6300 (port must be set to 8001, and `pip3 install websocket-client` must be executed) - K5579 (port must be set to 8001, On/Off, Forward/Backward, Volume control, but no Play button) - K6500AF (port must be set to 8001) +- KS8000 (port must be set to 8001, and `pip3 install websocket-client` must be executed) - KS8005 (port must be set to 8001, and `pip3 install websocket-client` must be executed) - KU6020 (port must be set to 8001, and `pip3 install websocket-client` must be executed) - KU6290 (port must be set to 8001) diff --git a/source/_components/media_player.webostv.markdown b/source/_components/media_player.webostv.markdown index 1d634dcebc0..8a18623775c 100644 --- a/source/_components/media_player.webostv.markdown +++ b/source/_components/media_player.webostv.markdown @@ -90,7 +90,7 @@ media_player: turn_on_action: service: wake_on_lan.send_magic_packet data: - mac: B4:E6:2A:1E:11:0F + mac: "B4-E6-2A-1E-11-0F" ``` Any other [actions](/docs/automation/action/) to power on the device can be configured. @@ -128,4 +128,4 @@ data: The behaviour of the next and previsous buttons is different depending on the active source: - if the source is 'LiveTV' (television): next/previous buttons act as channel up/down - - otherwise: next/previsous buttons act as next/previous track + - otherwise: next/previous buttons act as next/previous track diff --git a/source/_components/rainmachine.markdown b/source/_components/rainmachine.markdown index 4b461fe2ec3..42027fe9182 100644 --- a/source/_components/rainmachine.markdown +++ b/source/_components/rainmachine.markdown @@ -62,6 +62,11 @@ ssl: required: false type: boolean default: true +scan_interval: + description: the frequency (in seconds) between data updates + required: false + type: int + default: 60 binary_sensors: description: binary sensor-related configuration options required: false diff --git a/source/_components/sensor.airvisual.markdown b/source/_components/sensor.airvisual.markdown index bedf30c7d17..896c09234c3 100644 --- a/source/_components/sensor.airvisual.markdown +++ b/source/_components/sensor.airvisual.markdown @@ -13,21 +13,24 @@ ha_release: 0.53 ha_iot_class: "Cloud Polling" --- -The `airvisual` sensor platform queries the [AirVisual](https://airvisual.com/) API for air quality -data. Data can be collected via latitude/longitude or by city/state/country. -The resulting information creates sensors for the Air Quality Index (AQI), the -human-friendly air quality level, and the main pollutant of that area. Sensors -that conform to either/both the [U.S. and Chinese air quality standards](http://www.clm.com/publication.cfm?ID=366) can be -created. +The `airvisual` sensor platform queries the [AirVisual](https://airvisual.com/) +API for air quality data. Data can be collected via latitude/longitude or by +city/state/country. The resulting information creates sensors for the Air +Quality Index (AQI), the human-friendly air quality level, and the main +pollutant of that area. Sensors that conform to either/both the +[U.S. and Chinese air quality standards](http://www.clm.com/publication.cfm?ID=366) +can be created. -This platform requires an AirVisual API key, which can be obtained [here](https://airvisual.com/api). Note -that the platform was designed using the "Community" package; the "Startup" -and "Enterprise" package keys should continue to function, but actual results -may vary (or not work at all). +This platform requires an AirVisual API key, which can be obtained +[here](https://airvisual.com/api). Note that the platform was designed using +the "Community" package; the "Startup" and "Enterprise" package keys should +continue to function, but actual results may vary (or not work at all).

The "Community" API key is limited to 10,000 calls per month. In order to leave -a buffer, the `airvisual` platform queries the API every 10 minutes. +a buffer, the `airvisual` platform queries the API every 10 minutes by default. +Modification of this (via the `scan_interval` key) to a too-low value may +result in your API key being deactivated.

## {% linkable_title Configuring the Platform via Latitude/Longitude %} @@ -42,59 +45,67 @@ sensor: monitored_conditions: - us - cn + show_on_map: false + scan_interval: 30 + # Configure by latitude/longitude: latitude: 42.81212 longitude: 108.12422 - radius: 500 - show_on_map: false + # Or configure by location: + city: Los Angeles + state: California + country: USA ``` -Configuration variables: +{% configuration %} +api_key: + description: your AirVisual API key + required: required + type: string +monitored_conditions: + description: the air quality standard(s) to use (`us` for U.S., `cn` for Chinese) + required: required + type: list + default: ['us', 'cn'] +show_on_map: + description: whether to show a marker on the map at the specified location + required: optional + type: boolean + default: true +scan_interval: + description: the rate at which AirVisual should be polled for new data + required: optional + type: int + default: 600 +latitude: + description: the latitude of the location to monitor + required: optional + type: str + default: the latitude defined under the `homeassistant` key in `configuration.yaml` +longitude: + description: the longitude of the location to monitor + required: optional + type: str + default: the longitude defined under the `homeassistant` key in `configuration.yaml` +city: + description: the city to monitor + required: optional + type: str +state: + description: the state the city belongs to + required: optional + type: str +country: + description: the country the state belongs to + required: optional + type: str +{% endconfiguration %} -- **api_key** (*Required*): your AirVisual API key -- **monitored_conditions** (*Required*): the air quality standard(s) to use -(`us` for U.S., `cn` for Chinese) -- **latitude** (*Optional*): the latitude to monitor; if excluded, the latitude -defined under the `homeassistant` key in `configuration.yaml` will be used -- **longitude** (*Optional*): the longitude to monitor; if excluded, the longitude -defined under the `homeassistant` key in `configuration.yaml` will be used -- **radius** (*Optional*): the radius (in meters) around the latitude/longitude to -search for the nearest city; defaults to `1000` -- **show_on_map** (*Optional*): whether to show a marker on the map at the specified -location; defaults to `true` - -## {% linkable_title Configuring the Platform via City/State/Country %} - -To enable the platform and gather data via city/state/country, add the -following lines to your `configuration.yaml` file: - -```yaml -sensor: - - platform: airvisual - api_key: abc123 - monitored_conditions: - - us - - cn - city: southend-on-sea - state: essex - country: uk - show_on_map: false -``` - -Configuration variables: - -- **api_key** (*Required*): your AirVisual API key -- **monitored_conditions** (*Required*): the air quality standard(s) to use -(`us` for U.S., `cn` for Chinese) -- **city** (*Optional*): the city to monitor -- **state** (*Optional*): the state/region to monitor -- **country** (*Optional*): the country to monitor -- **show_on_map** (*Optional*): whether to show a marker on the map at the specified -location; defaults to `true` +## {% linkable_title Determining the City/State/Country %} To easily determine the proper values for a particular location, use the -[AirVisual region directory](https://airvisual.com/world). Once you browse to the particular city you want, -take note of the breadcrumb title, which is of the form -`country > state/region > city`. Use this information to fill out +[AirVisual region directory](https://airvisual.com/world). Once you browse to +the particular city you want, take note of the breadcrumb title, which is of +the form `country > state/region > city`. Use this information to fill out `configuration.yaml`. For example, Sao Paulo, Brazil shows a breadcrumb title of @@ -120,8 +131,8 @@ air quality standard: ### Air Quality Index -**Description:** This sensor displays a numeric air quality index (AQI), a metric -for the overall "health" of the air. +**Description:** This sensor displays a numeric air quality index (AQI), a +metric for the overall "health" of the air. **Example Sensor Name:** `sensor.chinese_air_quality_index` diff --git a/source/_components/sensor.loop_energy.markdown b/source/_components/sensor.loopenergy.markdown similarity index 98% rename from source/_components/sensor.loop_energy.markdown rename to source/_components/sensor.loopenergy.markdown index fc38aed98e7..a2709b48797 100644 --- a/source/_components/sensor.loop_energy.markdown +++ b/source/_components/sensor.loopenergy.markdown @@ -11,6 +11,7 @@ logo: loop.png ha_category: Energy ha_release: 0.17 ha_iot_class: "Cloud Push" +redirect_from: /components/sensor.loop_energy/ --- diff --git a/source/_components/sensor.miflora.markdown b/source/_components/sensor.miflora.markdown index 17f9f843fec..5149ba21191 100644 --- a/source/_components/sensor.miflora.markdown +++ b/source/_components/sensor.miflora.markdown @@ -13,20 +13,20 @@ ha_release: 0.29 ha_iot_class: "Local Polling" --- -The `miflora` sensor platform allows one to monitor plants. The [Mi Flora plant sensor](https://xiaomi-mi.com/sockets-and-sensors/xiaomi-huahuacaocao-flower-care-smart-monitor/) is a small Bluetooth Low Energy device that monitors not only the moisture but also light, temperature, and conductivity. As only a single BLE device can be polled at the same time, the library implements locking to make sure this is the case. +The `miflora` sensor platform allows one to monitor plant soil and air conditions. The [Mi Flora plant sensor](https://xiaomi-mi.com/sockets-and-sensors/xiaomi-huahuacaocao-flower-care-smart-monitor/) is a small Bluetooth Low Energy device that monitors the moisture and conductivity of the soil as well as ambient light and temperature. Since only one BLE device can be polled at a time, the library implements locking to prevent polling more than one device at a time. -# Installation -Depending on the operating system you're running, you have to configure the proper Bluetooth backend on your system: +# Install Bluetooth Backend +Before configuring Home Assistant you need a Bluetooth backend and the MAC address of your sensor. Depending on your operating system, you may have to configure the proper Bluetooth backend for your system: - On [Hass.io](/hassio/installation/): Miflora will work out of the box. - On a [generic Docker installation](/docs/installation/docker/): Works out of the box with `--net=host` and properly configured Bluetooth on the host. - On other Linux systems: - Preferred solution: Install the `bluepy` library (via pip). When using a virtual environment, make sure to use install the library in the right one.    - Fallback solution: Install `gatttool` via your package manager. Depending on the distribution, the package name might be: `bluez`, `bluetooth`, `bluez-deprecated` -- Windows and MacOS are currently not supported by the [miflora library](https://github.com/open-homeautomation/miflora/). +- On Windows and MacOS there is currently no support for the [miflora library](https://github.com/open-homeautomation/miflora/). -# Configuration -Start a scan to determine the MAC addresses of the sensor: +# Scan for MAC address +Start a scan to determine the MAC addresses of the sensor (you can identify your sensor by looking for `Flower care` or `Flower mate` entries) using this command: ```bash $ sudo hcitool lescan @@ -36,7 +36,7 @@ C4:D3:8C:12:4C:57 Flower mate [...] ``` -Or if your distribution is using bluetoothctl: +Or, if your distribution is using bluetoothctl use the following commands: ```bash $ bluetoothctl @@ -46,9 +46,7 @@ $ bluetoothctl [NEW] C4:D3:8C:12:4C:57 Flower mate ``` - -Check for `Flower care` or `Flower mate` entries, those are your sensor. - +# Configure To use your Mi Flora plant sensor in your installation, add the following to your `configuration.yaml` file: ```yaml @@ -57,7 +55,7 @@ sensor: - platform: miflora mac: 'xx:xx:xx:xx:xx:xx' monitored_conditions: - - temperature + - moisture ``` - **mac** (*Required*): The MAC address of your sensor. @@ -75,8 +73,9 @@ sensor: - **cache_value** (*Optional*): Define cache expiration value in seconds (defaults to 1200 if not defined) - **adapter** (*Optional*): Define the Bluetooth adapter to use (defaults to hci0). Run `hciconfig` to get a list of available adapters. -Note that by default the sensor is only polled once every 20 minutes. This means with the `median: 3` setting will take as least 40 minutes before the sensor will report a value after a Home Assistant restart. As the values usually change very slowly, this isn't a big problem. -Reducing polling intervals will have a negative effect on the battery life. +

+By default the sensor is only polled once every 20 minutes. So, if you set `median: 3` it will take _at least_ 40 minutes before the sensor will report a value after a Home Assistant restart. Since the values usually change very slowly, this usually isn't a big problem. Keep in mind though that reducing polling intervals will have a negative effect on the battery life. +

A full configuration example could look like the one below: diff --git a/source/_components/sensor.mychevy.markdown b/source/_components/sensor.mychevy.markdown index c31e7927c89..03b3146f5f9 100644 --- a/source/_components/sensor.mychevy.markdown +++ b/source/_components/sensor.mychevy.markdown @@ -13,4 +13,4 @@ ha_release: 0.62 ha_iot_class: "Cloud Polling" --- -For configuration instructions, see [main component config](/components/mychecvy/). +For configuration instructions, see [main component config](/components/mychevy/). diff --git a/source/_components/sensor.opensky.markdown b/source/_components/sensor.opensky.markdown index baa285ce247..552de4c420a 100644 --- a/source/_components/sensor.opensky.markdown +++ b/source/_components/sensor.opensky.markdown @@ -42,3 +42,19 @@ Both events have two attributes: - **sensor**: Name of `opensky` sensor that fired the event - **callsign**: Callsign of the flight + +To receive notifications of the entering flights, add the following lines to your `configuration.yaml`. + +{% raw %} +```yaml +automation: + - alias: 'Flight entry notification' + trigger: + platform: event + event_type: opensky_entry + action: + service: notify.ios_YOURIPHONENAME + data_template: + message : 'Flight entry of {{ trigger.event.data.callsign }} ' +``` +{% endraw %} diff --git a/source/_components/sensor.postnl.markdown b/source/_components/sensor.postnl.markdown index 991aba720c5..29a193a3416 100644 --- a/source/_components/sensor.postnl.markdown +++ b/source/_components/sensor.postnl.markdown @@ -15,6 +15,8 @@ ha_iot_class: "Cloud Polling" The `postnl` platform allows one to track deliveries by [PostNL](https://www.postnl.nl) (Dutch Postal Services). To use this sensor, you need a [PostNL Account](https://jouw.postnl.nl). It is possible to add multiple accounts to your Home Assistant configuration. +The sensor value shows the number of packages to be delivered. Each of the packages is available as an attribute. + ## {% linkable_title Configuration %} To enable this sensor, add the following lines to your `configuration.yaml`: diff --git a/source/_components/sensor.rest.markdown b/source/_components/sensor.rest.markdown index 0c0cc9a7ab4..d9594344e8b 100644 --- a/source/_components/sensor.rest.markdown +++ b/source/_components/sensor.rest.markdown @@ -237,7 +237,7 @@ sensor: sensors: owm_weather: value_template: '{{ states.sensor.owm_report.attributes.weather[0]["description"].title() }}' - icon_template: '{{ "http://openweathermap.org/img/w/"+states.sensor.owm_report.attributes.weather[0]["icon"]+".png" }}' + entity_picture_template: '{{ "http://openweathermap.org/img/w/"+states.sensor.owm_report.attributes.weather[0]["icon"].lower()+".png" }}' entity_id: sensor.owm_report owm_temp: friendly_name: 'Outside temp' diff --git a/source/_components/sensor.wunderground.markdown b/source/_components/sensor.wunderground.markdown index bf99f2b9340..f86735c69b7 100644 --- a/source/_components/sensor.wunderground.markdown +++ b/source/_components/sensor.wunderground.markdown @@ -195,4 +195,8 @@ group: Note: While the platform is called “wunderground” the sensors will show up in Home Assistant as “PWS” (eg: sensor.pws_weather).

+Note that the Weather Underground sensor is added to the entity_registry, so second and subsequent Personal Weather Station ID (pws_id) will have their monitored conditions suffixed with an index number e.g. + + - sensor.pws_weather_1d_metric_2 + Additional details about the API are available [here](https://www.wunderground.com/weather/api/d/docs). diff --git a/source/_components/snips.markdown b/source/_components/snips.markdown index 16acc2b3de6..fd125970615 100644 --- a/source/_components/snips.markdown +++ b/source/_components/snips.markdown @@ -46,10 +46,6 @@ sudo apt-key adv --keyserver pgp.surfnet.nl --recv-keys D4F50CDCA10A2849 ### {% linkable_title Creating an assistant %} -
- -
- Head over to the [Snips Console](https://console.snips.ai) to create your assistant. Launch the training and download by clicking on the "Download Assistant" button. The next step is to get the assistant to work on your device. Unzip and copy the assistant folder that you downloaded from the web console to the path. Assuming your downloaded assistant folder is on your desktop, just run: @@ -145,6 +141,8 @@ Alternatively, MQTT can be configured to bridge messages between servers if usin In Home Assistant, we trigger actions based on intents produced by Snips using the [`intent_script`](/components/intent_script) component. For instance, the following block handles a `ActivateLightColor` intent to change light colors: +Note: If your Snips action is prefixed with a username (e.g. `john:playmusic` or `john__playmusic`), the Snips component in Home Assistant [will try and strip off the username](https://github.com/home-assistant/home-assistant/blob/c664c20165ebeb248b98716cf61e865f274a2dac/homeassistant/components/snips.py#L126-L129). Bear this in mind if you get the error `Received unknown intent` even when what you see on the MQTT bus looks correct. Internally the Snips component is trying to match the non-username version of the intent (i.e., just `playmusic`). + {% raw %} ```yaml snips: diff --git a/source/_components/media_player.sonos.markdown b/source/_components/sonos.markdown similarity index 85% rename from source/_components/media_player.sonos.markdown rename to source/_components/sonos.markdown index 862cd822f8c..5d3c70c88f7 100644 --- a/source/_components/media_player.sonos.markdown +++ b/source/_components/sonos.markdown @@ -12,48 +12,16 @@ ha_category: Media Player featured: true ha_release: 0.7.3 ha_iot_class: "Local Polling" +redirect_from: /components/media_player.sonos/ --- -The `sonos` platform allows you to control your [Sonos](http://www.sonos.com) HiFi wireless speakers and audio components from Home Assistant. By default it supports auto-discovery provided by Home Assistant, and you don't need to add anything to your `configuration.yaml`. Alternatively, there are some manual configuration options, listed as follows: +The `sonos` component allows you to control your [Sonos](https://www.sonos.com) HiFi wireless speakers and audio components from Home Assistant. By default it supports auto-discovery provided by Home Assistant, and you don't need to add anything to your `configuration.yaml`. -To add your Sonos components to your installation, add the following to your `configuration.yaml` file. It will perform Sonos auto-discovery of your connected speakers. +If you don't have the discovery component enabled, you can configure the Sonos component by going to the integrations page inside the config panel. -```yaml -# Example configuration.yaml entry using Sonos discovery -media_player: - - platform: sonos -``` +## {% linkable_title Services %} - -If you have multiple network devices, you can provide the IP address of the device that should be used for Sonos auto-discovery. - -```yaml -# Example configuration.yaml entry using Sonos discovery on a specific interface -media_player: - - platform: sonos - interface_addr: 192.0.2.1 -``` - -You can also specify one or more hosts to connect to if they cannot be found with Sonos auto-discovery. - -```yaml -# Example configuration.yaml entry with manually specified addresses -media_player: - - platform: sonos - hosts: 192.0.2.25 -``` - -or, for multiple hosts: - -```yaml -# Example configuration.yaml entry with manually specified addresses -media_player: - - platform: sonos - hosts: - - 192.0.2.25 - - 192.0.2.26 - - 192.0.2.27 -``` +Sonos makes various services available to allow configuring groups. They are currently registered under the media player component. ### {% linkable_title Service `sonos_snapshot` %} @@ -93,7 +61,7 @@ Remove one or more speakers from a group of speakers. If no `entity_id` is provi ### {% linkable_title Service `sonos_set_sleep_timer` %} Sets a timer that will turn off a speaker by tapering the volume down to 0 after a certain amount of time. Protip: If you set the sleep_time value to 0, then the speaker will immediately start tapering the volume down. - + | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | | `entity_id` | no | String or list of `entity_id`s that will have their timers set. Must be a coordinator speaker. @@ -102,7 +70,7 @@ Sets a timer that will turn off a speaker by tapering the volume down to 0 after ### {% linkable_title Service `sonos_clear_sleep_timer` %} Clear the sleep timer on a speaker, if one is set. - + | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | | `entity_id` | no | String or list of `entity_id`s that will have their timers cleared. Must be a coordinator speaker. @@ -110,7 +78,7 @@ Clear the sleep timer on a speaker, if one is set. ### {% linkable_title Service `sonos_update_alarm` %} Update an existing Sonos alarm. - + | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | | `entity_id` | no | String or list of `entity_id`s that will have their timers cleared. Must be a coordinator speaker. @@ -118,16 +86,51 @@ Update an existing Sonos alarm. | `time` | yes | Time to set the alarm. | `volume` | yes | Float for volume level. | `enabled` | yes | Boolean for whether or not to enable this alarm. -| `include_linked_zones` | yes | Boolean that defines if the alarm also plays on grouped players. +| `include_linked_zones` | yes | Boolean that defines if the alarm also plays on grouped players. ### {% linkable_title Service `sonos_set_option` %} Set Sonos speaker options. Night Sound and Speech Enhancement modes are only supported on Sonos PLAYBAR and PLAYBASE speakers when playing from the TV source. Other speaker types will ignore these options. - + | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | | `entity_id` | no | String or list of `entity_id`s that will have their options set. | `night_sound` | yes | Boolean to control Night Sound mode. | `speech_enhance` | yes | Boolean to control Speech Enhancement mode. + + +## {% linkable_title Advanced use %} + +For advanced uses, there are some manual configuration options available. + +If you have multiple network devices, you can provide the IP address of the device that should be used for Sonos auto-discovery. + +```yaml +# Example configuration.yaml entry using Sonos discovery on a specific interface +sonos: + media_player: + interface_addr: 192.0.2.1 +``` + +You can also specify one or more hosts to connect to if they cannot be found with Sonos auto-discovery. + +```yaml +# Example configuration.yaml entry with manually specified addresses +sonos: + media_player: + hosts: 192.0.2.25 +``` + +or, for multiple hosts: + +```yaml +# Example configuration.yaml entry with manually specified addresses +sonos: + media_player: + hosts: + - 192.0.2.25 + - 192.0.2.26 + - 192.0.2.27 +``` diff --git a/source/_components/switch.markdown b/source/_components/switch.markdown index 54fb891d5c9..6e93003ceeb 100644 --- a/source/_components/switch.markdown +++ b/source/_components/switch.markdown @@ -12,11 +12,11 @@ footer: true Keeps track which switches are in your environment, their state and allows you to control them. * Maintains a state per switch and a combined state `all_switches`. - * Registers services `switch/turn_on`, `switch/turn_off`, and `switch/toggle` to control switches. + * Registers services `switch.turn_on`, `switch.turn_off`, and `switch.toggle` to control switches. ### {% linkable_title Use the services %} -Go the **Developer Tools**, then to **Call Service** in the frontend, and choose `switch/turn_on` or `switch/turn_off` from the list of available services (**Available services:** on the left). Enter something like the sample below into the **Service Data** field and hit **CALL SERVICE**. +In the frontend open the sidebar. At the bottom, under **Developer Tools**, click **Services**. From the Service dropdown menu choose `switch.turn_on` or `switch.turn_off` from the list of available services. In the Entity dropdown menu choose or enter the entity ID you want to work with. This will enter something like the sample below into the **Service Data** field. Now hit **CALL SERVICE**. ```json {"entity_id":"livingroom_pin2"} @@ -24,4 +24,4 @@ Go the **Developer Tools**, then to **Call Service** in the frontend, and choose | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | -| `entity_id` | yes | Only act on specific switch. Else targets all. +| `entity_id` | yes | Only act on a specific switch. Otherwise it targets all switches. diff --git a/source/_components/vacuum.roomba.markdown b/source/_components/vacuum.roomba.markdown index bf28b11035c..0a81a732fcb 100644 --- a/source/_components/vacuum.roomba.markdown +++ b/source/_components/vacuum.roomba.markdown @@ -32,7 +32,7 @@ vacuum: Configuration variables: - **host** (*Required*): Hostname or IP address of the Roomba. -- **username** (*Required*): The username (BLID) fro your device. +- **username** (*Required*): The username (BLID) for your device. - **password** (*Required*): The password for your device. - **name** (*Optional*): The name of the vacuum. - **certificate** (*Optional*): Path to your certificate store. Defaults to `/etc/ssl/certs/ca-certificates.crt`. diff --git a/source/_components/xiaomi_aqara.markdown b/source/_components/xiaomi_aqara.markdown index 1fd18f55c27..203ffcdcf56 100644 --- a/source/_components/xiaomi_aqara.markdown +++ b/source/_components/xiaomi_aqara.markdown @@ -90,14 +90,28 @@ xiaomi_aqara: ``` {% configuration %} - mac: - description: The MAC address of your gateway. *Optional if only using one gateway.* - required: false - type: string - key: - description: The key of your gateway. *Optional if only using sensors and/or binary sensors.* - required: false - type: string + gateways: + description: A list of gateways to set up. + required: true + type: map + keys: + mac: + description: The MAC address of your gateway. *Optional if only using one gateway.* + required: false + type: string + key: + description: The key of your gateway. *Optional if only using sensors and/or binary sensors.* + required: false + type: string + host: + description: The host/IP address of the gateway. If this parameter is used the multicast discovery of the gateway is skipped. + required: false + type: string + disable: + description: Disable the gateway. This is only useful if you don't want to integrate a specific gateway. + required: false + type: boolean + default: false discovery_retry: description: Number of times that Home Assistant should try to reconnect to the gateway. required: false @@ -108,10 +122,6 @@ xiaomi_aqara: required: false type: string default: any - host: - description: The host/IP address of the gateway. If this parameter is used the multicast discovery of the gateway is skipped. - required: false - type: string {% endconfiguration %} ### {% linkable_title Services %} diff --git a/source/_components/zha.markdown b/source/_components/zha.markdown index 972ccc449cb..8e622bdde56 100644 --- a/source/_components/zha.markdown +++ b/source/_components/zha.markdown @@ -38,7 +38,7 @@ and the path to the serial device for the radio and path to the database which w # Example configuration.yaml entry zha: usb_path: /dev/ttyUSB2 - database_path: zigbee.db + database_path: /home/homeassistant/.homeassistant/zigbee.db ``` Configuration variables: @@ -46,6 +46,6 @@ Configuration variables: - **radio_type** (*Optional*): One of `ezsp` (default) or `xbee` - **usb_path** (*Required*): Path to the serial device for the radio. - **baudrate** (*Optional*): Baud rate of the serial device. - - **database_path** (*Required*): Path to the database which will keep persistent network data. + - **database_path** (*Required*): _Full_ path to the database which will keep persistent network data. To add new devices to the network, call the `permit` service on the `zha` domain, and then follow the device instructions for doing a scan or factory reset. In case you want to add Philips Hue bulbs that have previously been added to another bridge, have a look at: [https://github.com/vanviegen/hue-thief/](https://github.com/vanviegen/hue-thief/) diff --git a/source/_cookbook/track_battery_level.markdown b/source/_cookbook/track_battery_level.markdown index 13eca373541..696742b1c74 100644 --- a/source/_cookbook/track_battery_level.markdown +++ b/source/_cookbook/track_battery_level.markdown @@ -1,6 +1,6 @@ --- layout: page -title: "Track your battery level" +title: "Track your phone battery level" description: "Basic example how to track the battery level of your mobile devices." date: 2016-01-29 09:00 sidebar: true diff --git a/source/_docs/asterisk_mbox.markdown b/source/_docs/asterisk_mbox.markdown index c5f3d7cbd72..438ed0fd422 100644 --- a/source/_docs/asterisk_mbox.markdown +++ b/source/_docs/asterisk_mbox.markdown @@ -9,28 +9,30 @@ sharing: true footer: true --- -Asterisk Voicemail integration allows Home Assistant to view, listen-to, and delete voicemails from a Asterisk voicemail mailbox. +Asterisk Voicemail integration allows Home Assistant to view, listen to and delete voicemails from a Asterisk voicemail mailbox. There are two components to the integration: + - A server that runs on the Asterisk PBX host and communicates over an open port. - A client which can request inormation from the server. Both parts are necessary for Asterisk voicemail integration. -The server installation is documented below. The client is [integrated inside Home Assistant](/components/asterisk_mbox) +The server installation is documented below. The client is [integrated inside Home Assistant](/components/asterisk_mbox)

-Currently this module can only monitor a single Asterisk PBX mailbox. Multiple mailbox support is planned for the future +Currently this module can only monitor a single Asterisk PBX mailbox.

### {% linkable_title Prerequisites %} Before beginning make sure that you have the following: -- A functional Asterisk PBX setup which is using the default `voicemail` application -- Both Home Assistant and Asterisk PBX running on the same LAN (or the same server) -- The Asterisk PBX server has python 3.4 or newer installed -- Administrator access on the Asterisk PBX (for python module installation) -- Account Access to the `asterisk` user that runs the Asterisk PBX software + +- A functional Asterisk PBX setup which is using the default `voicemail` application. +- Both Home Assistant and Asterisk PBX running on the same LAN (or the same server). +- The Asterisk PBX server has Python 3.5 or newer installed. +- Administrator access on the Asterisk PBX (for python module installation). +- Account access to the `asterisk` user that runs the Asterisk PBX software. ### {% linkable_title Installation %} @@ -44,7 +46,7 @@ Before beginning make sure that you have the following: 3. Create a configuration file for the server - As the `asterisk` user create an `asterisk_mbox.ini` file (You can place this in any directory you choose, but the rommended location is `/etc/asterisk/asterisk_mbox.ini`) + As the `asterisk` user create an `asterisk_mbox.ini` file. You can place this in any directory you choose, but the recommended location is `/etc/asterisk/asterisk_mbox.ini`. ```ini [default] @@ -56,14 +58,14 @@ Before beginning make sure that you have the following: google_key = GOOGLE_API_KEY ``` - - **host** (*Optional*): The IP address to listen on for client requests. This defaults to all IP addresses on the server. To listen only locally, choose `127.0.0.1` - - **port** (*Optional*): The port to listen on for client requests. (default: 12345) - - **password** (*Required*): A password shared between client and server. Use only alpha-numeric characters and spaces - - **mbox\_path** (*Required*): The path to the storage location of mailbox files. This is typically `/var/spool/asterisk/voicemail/default//` - - **cache\_file** (*Required*): A fully-qualified path to a file thht can be written by the server containing transcriptions of voicemails. Example: `/var/spool/asterisk/transcription.cache` - - **google\_key** (*Required*): Your 40 character Google API key + - **host** (*Optional*): The IP address to listen on for client requests. This defaults to all IP addresses on the server. To listen only locally, choose `127.0.0.1` + - **port** (*Optional*): The port to listen on for client requests. Defaults to 12345. + - **password** (*Required*): A password shared between client and server. Use only alpha-numeric characters and spaces + - **mbox\_path** (*Required*): The path to the storage location of mailbox files. This is typically `/var/spool/asterisk/voicemail/default//` + - **cache\_file** (*Required*): A fully-qualified path to a file thht can be written by the server containing transcriptions of voicemails. Example: `/var/spool/asterisk/transcription.cache` + - **google\_key** (*Required*): Your 40 characters Google API key. - Once complete, ensure this file is only accessible by the asterisk user: + Once complete, ensure this file is only accessible by the Asterisk user: ```bash $ sudo chown asterisk:asterisk /etc/asterisk/asterisk_mbox.ini @@ -77,7 +79,7 @@ Before beginning make sure that you have the following: Now complete the [Home Assistant configuration](/components/asterisk_mbox) and verify that Home Assistant can communicate with the server - You can use `Ctrl-C` to terminate the server when done testing + You can use `Ctrl-c` to terminate the server when done testing 5. Configure the server to start automatically @@ -100,5 +102,5 @@ Before beginning make sure that you have the following: ```

-This assumes that your Asterisk PBX server is using `systemd` for init handling. If not, you will need to create the appropriate configuration files yourself. +This assumes that your Asterisk PBX server is using `systemd` for init handling. If not, you will need to create the appropriate configuration files yourself.

diff --git a/source/_docs/configuration/customizing-devices.markdown b/source/_docs/configuration/customizing-devices.markdown index a76c1ed2aa8..a3dc6cc91a3 100644 --- a/source/_docs/configuration/customizing-devices.markdown +++ b/source/_docs/configuration/customizing-devices.markdown @@ -61,7 +61,7 @@ homeassistant: | `homebridge_name` | Name of the entity in `HomeBridge`. | `hidden` | Set to `true` to hide the entity. | `homebridge_hidden` | Set to `true` to hide the entity from `HomeBridge`. -| `emulated_hue_hidden` | Set to `true` to hide the entity from `emulated_hue`. +| `emulated_hue_hidden` | Set to `true` to hide the entity from `emulated_hue` (this will be deprecated in the near future and should be configured in [`emulated_hue`](/components/emulated_hue)). | `entity_picture` | Url to use as picture for entity. | `icon` | Any icon from [MaterialDesignIcons.com](http://MaterialDesignIcons.com) ([Cheatsheet](https://materialdesignicons.com/cheatsheet)). Prefix name with `mdi:`, ie `mdi:home`. | `assumed_state` | For switches with an assumed state two buttons are shown (turn off, turn on) instead of a switch. By setting `assumed_state` to `false` you will get the default switch icon. diff --git a/source/_docs/configuration/entity-registry.markdown b/source/_docs/configuration/entity-registry.markdown index 1b63be4a710..b6183f7b76b 100644 --- a/source/_docs/configuration/entity-registry.markdown +++ b/source/_docs/configuration/entity-registry.markdown @@ -55,4 +55,5 @@ value to each entry. {% linkable_title Supported Components %} -At the moment, only the following components are supported: Z-Wave, Hue, Nest, LIFX, Sonos, Apple TV +At the moment, only the following components are supported: Z-Wave, Hue, Nest, LIFX, Sonos, Apple TV, Weather Underground +Note that for Weather Underground, second and subsequent Personal Weather Station ID (pws_id) will have their monitored conditions suffixed with an index number. diff --git a/source/_docs/configuration/group_visibility.markdown b/source/_docs/configuration/group_visibility.markdown index 0ea062deb9b..c5458e4bf2b 100644 --- a/source/_docs/configuration/group_visibility.markdown +++ b/source/_docs/configuration/group_visibility.markdown @@ -104,7 +104,7 @@ sensor: command: "python3 occasion.py" ```

-If you are using docker to run Home Assistant then the occasion.py script will be placed under /config. Your command should instead be: command: "python3 /command/occasion.py" +If you are using docker to run Home Assistant then the occasion.py script will be placed under /config. Your command should instead be: command: "python3 /config/occasion.py"

diff --git a/source/_docs/installation/hassbian.markdown b/source/_docs/installation/hassbian.markdown index e038cbb9ab8..7ae3954bce1 100644 --- a/source/_docs/installation/hassbian.markdown +++ b/source/_docs/installation/hassbian.markdown @@ -17,3 +17,10 @@ Hassbian is our customized operating system for the Raspberry Pi Zero, 2,3 and 3 - [Pi specific integrations](/docs/hassbian/common-tasks/) - [Learn how to perform common tasks](/docs/hassbian/integrations/) +### {% linkable_title Activating the virtual environment %} + +When instructions tell you to activate the virtual environment to install a Python library, or perform some tasks, the following commands will do this: + +```bash +$ sudo -u homeassistant -H -s +$ source /srv/homeassistant/bin/activate``` diff --git a/source/_docs/installation/hassbian/installation.markdown b/source/_docs/installation/hassbian/installation.markdown index 770884dc262..be9a4e500a9 100644 --- a/source/_docs/installation/hassbian/installation.markdown +++ b/source/_docs/installation/hassbian/installation.markdown @@ -64,7 +64,7 @@ Soft blocked: yes Hard blocked: no ``` -To unblock it, exceute `$ sudo rfkill unblock wifi`. +To unblock it, execute `$ sudo rfkill unblock wifi`. ### {% linkable_title Technical Details %} diff --git a/source/_docs/installation/raspberry-pi.markdown b/source/_docs/installation/raspberry-pi.markdown index 6ac50456d5c..d021e7041a0 100644 --- a/source/_docs/installation/raspberry-pi.markdown +++ b/source/_docs/installation/raspberry-pi.markdown @@ -26,7 +26,7 @@ Connect to the Raspberry Pi over SSH. Default password is `raspberry`. You will need to enable SSH access. The Raspberry Pi website has instructions [here](https://www.raspberrypi.org/documentation/remote-access/ssh/). ```bash -$ ssh pi@ipadress +$ ssh pi@ipaddress ``` Changing the default password is encouraged. @@ -107,3 +107,11 @@ $ pip3 install --upgrade homeassistant ``` Once the last command executes restart the Home Assistant service to apply the latest updates. Please keep in mind that some updates may take longer to boot up than others. If Home Assistant fails to start make sure you check the **Breaking Changes** from the [Release Notes](https://github.com/home-assistant/home-assistant/releases). + +### {% linkable_title Activating the virtual environment %} + +When instructions tell you to activate the virtual environment, the following commands will do this: + +```bash +$ sudo -u homeassistant -H -s +$ source /srv/homeassistant/bin/activate``` diff --git a/source/_docs/z-wave/device-specific.markdown b/source/_docs/z-wave/device-specific.markdown index 33dddf01e14..8f03fe654ae 100644 --- a/source/_docs/z-wave/device-specific.markdown +++ b/source/_docs/z-wave/device-specific.markdown @@ -144,17 +144,43 @@ Some models of the Zooz Toggle switches ship with an instruction manual with inc To provide Central Scene support you need to shut Home Assistant down and modify your `zwcfg_*.xml` file according to the following guides. +### {% linkable_title Inovelli Scene Capable On/Off and Dimmer Wall Switches %} + +For Inovelli switches, you'll need to update (or possibly add) the `COMMAND_CLASS_CENTRAL_SCENE` for each node in your `zwcfg` file with the following: + +```xml + + + + + + +``` + +Once this is complete, you should see the follow `zwave.scene_activated` events: + +**Action**|**scene\_id**|**scene\_data** +:-----:|:-----:|:-----: +Double tap off|1|3 +Double tap on|2|3 +Triple tap off|1|4 +Triple tap on|2|4 +4x tap off|1|5 +4x tap on|2|5 +5x tap off|1|6 +5x tap on|2|6 + ### {% linkable_title HomeSeer Switches %} For the HomeSeer devices specifically, you may need to update the `COMMAND_CLASS_CENTRAL_SCENE` for each node in your `zwcfg` file with the following: ```xml - - - - - - + + + + + + ``` Below is a table of the action/scenes for the HomeSeer devices (as a reference for other similar devices): diff --git a/source/_docs/z-wave/entities.markdown b/source/_docs/z-wave/entities.markdown index 10eaf7dffa9..ffcd3a6c309 100644 --- a/source/_docs/z-wave/entities.markdown +++ b/source/_docs/z-wave/entities.markdown @@ -10,7 +10,7 @@ footer: true ---

-This is a work in progress, based upon reports in the forum, the author's own devices, and reading of various documentation. It will be incomplete, so if you have a device that isn't reported here, or have a device that reports a different value, please provide a report in the [Z-Wave section](https://community.home-assistant.io/c/configuration/zwave) of the forum or the #zwave channel on [Discord](https://discord.gg/RkajcgS). +This is a work in progress, based upon reports in the forum, the author's own devices and reading of various documentation. It will be incomplete, so if you have a device that isn't reported here or have a device that reports a different value, please provide a report in the [Z-Wave section](https://community.home-assistant.io/c/configuration/zwave) of the forum or the #zwave channel on [Discord](https://discord.gg/RkajcgS).

## {% linkable_title Binary Sensor %} @@ -54,7 +54,7 @@ Devices (usually sensors) that support the Alarm command class will create entit ### {% linkable_title Alarm Level Entity %} -The meaning of the `alarm_level` entity depends on the nature of the alarm sensor +The meaning of the `alarm_level` entity depends on the nature of the alarm sensor. #### {% linkable_title Smoke, CO, and CO2 %} @@ -135,21 +135,19 @@ The meaning of the `alarm_level` entity depends on the nature of the alarm senso - **254**: Deep sleep - **255**: Case open -If your device has an `access_control` entity, but not a `binary_sensor` equivalent, you can use a [template binary sensor](/components/binary_sensor.template/) to create one: +If your device has an `access_control` entity, but not a `binary_sensor` equivalent, you can use a [template binary sensor](/components/binary_sensor.template/) to create one (here we've defined it as a door, but you can use [any relevant device class](/components/binary_sensor/#device-class): -``` +{% raw %} +```yaml binary_sensor: - platform: template sensors: YOUR_SENSOR: friendly_name: "Friendly name here" - value_template: >- - {% raw %}{%- if is_state('sensor.YOUR_ORIGINAL_SENSOR_access_control', '22') -%} - true - {%- else -%} - false - {%- endif -%}{% endraw %} + device_class: door + value_template: {{ is_state('sensor.YOUR_ORIGINAL_SENSOR_access_control', '22') }} ``` +{% endraw %} ### {% linkable_title Burglar Entity %} @@ -163,21 +161,19 @@ binary_sensor: - **254**: Deep sleep - **255**: Case open -If your device has a `burglar` entity, but not a `binary_sensor` equivalent, you can use a [template binary sensor](/components/binary_sensor.template/) to create one: +If your device has a `burglar` entity, but not a `binary_sensor` equivalent, you can use a [template binary sensor](/components/binary_sensor.template/) to create one (here we've defined it as a motion sensor, but you can use [any relevant device class](/components/binary_sensor/#device-class: -``` +{% raw %} +```yaml binary_sensor: - platform: template sensors: YOUR_SENSOR: friendly_name: "Friendly name here" - value_template: >- - {% raw %}{%- if is_state('sensor.YOUR_SENSOR_burglar', '8') -%} - true - {%- else -%} - false - {%- endif -%}{% endraw %} + device_class: motion + value_template: {{ is_state('sensor.YOUR_SENSOR_burglar', '8') }} ``` +{% endraw %} ### {% linkable_title Source Node ID Entity %} diff --git a/source/_posts/2018-06-22-release-72.markdown b/source/_posts/2018-06-22-release-72.markdown new file mode 100644 index 00000000000..1d91b763433 --- /dev/null +++ b/source/_posts/2018-06-22-release-72.markdown @@ -0,0 +1,522 @@ +--- +layout: post +title: "0.72: Lovelace UI, KIWI Doorlocks, Wireless Tags, Insteon X10." +description: "This release will blow you away. Click with caution." +date: 2018-06-22 00:01:00 +date_formatted: "June 22, 2018" +author: Paulus Schoutsen +author_twitter: balloob +comments: true +categories: Release-Notes +og_image: /images/blog/2018-06-release-0.72/lovelace.png +--- + +I am super excited about this release as it brings some great examples of how we are refining the system to become more customizable and, at the same time, user friendly. The first thing that I am really excited about is a new experimental user interface that we call Lovelace. Check [this awesome rundown](https://gist.github.com/ciotlosm/9508388876edf92c4c1f3579e740fbd5) of all the features by [@ciotlosm]. The TL;DR: a faster, more customizable and more extensible UI with the same look and feel as the old one. + +Be aware, this _is_ experimental, so things will change. However, we felt like we didn't want to keep this away from you any longer. Check the [Lovelace UI docs](https://developers.home-assistant.io/docs/en/lovelace_index.html) on how to get started. Make sure to share your creations! + +Thanks to all the people that have been hanging out in the #beta channel on [Discord](https://discord.gg/c5DvZ4e) helping development, finding and squashing bugs and making suggestions. Especially thanks to [@c727] for all his development work and [@arsaboo] for being the first guinea pig. + +

+Example user interface created using Lovelace. +Example user interface created using Lovelace ([source](https://gist.github.com/ciotlosm/9508388876edf92c4c1f3579e740fbd5#file-ui-lovelace-yaml)) +

+ +Another change is that Nest, Sonos and Cast will now have to be configured using a config entry. Config entries can be created via the integrations page in the config panel. This is a concept that we have been developing for a couple of months now and it's our goal to eventually use this as the way to configure all components. + +

+Screenshot of a browser showing a dialog to link a Nest account to Home Assistant. +Screenshot of the Nest config entry. +

+ +And as if this releases even needs more cool stuff, the Insteon integration now supports X10 thanks to [@teharris1]. It was a frequent requested feature from the Insteon community. + +And finally, we'll be extending the open beta for Home Assistant Cloud until the first of September. + +Enjoy this release and have a good weekend all! + +## {% linkable_title New Platforms %} + +- Weather Platform - IPMA ([@dgomes] - [#14716]) ([weather.ipma docs]) (new-platform) +- Add Freebox device tracker ([@stilllman] - [#12727]) ([device_tracker.freebox docs]) (new-platform) +- Add IBM Watson IoT Platform component ([@mtreinish] - [#13664]) ([watson_iot docs]) (new-platform) +- Wireless tags platform ([@sergeymaysak] - [#13495]) ([wirelesstag docs]) ([binary_sensor.wirelesstag docs]) ([sensor.wirelesstag docs]) ([switch.wirelesstag docs]) (new-platform) +- Add netgear_lte component ([@amelchio] - [#14687]) ([netgear_lte docs]) ([notify docs]) ([sensor.netgear_lte docs]) (new-platform) +- Add Uptime Robot sensor ([@ludeeus] - [#14631]) ([binary_sensor.uptimerobot docs]) (new-platform) +- Add support for the Unitymedia Horizon HD Recorder ([@benleb] - [#14275]) ([media_player.horizon docs]) (new-platform) +- Add support for KIWI Door Locks ([@c7h] - [#14485]) ([lock.kiwi docs]) (new-platform) +- Epson projector support ([@pszafer] - [#14841]) ([media_player.epson docs]) (new-platform) +- Add sensor.nsw_fuel_station component ([@nickw444] - [#14757]) ([sensor.nsw_fuel_station docs]) (new-platform) +- Add support for ZhongHong HVAC Controllers ([@crhan] - [#14552]) ([climate.zhong_hong docs]) (new-platform) +- Xiaomi Cameras - multiple models ([@vaidyasr] - [#14244]) ([camera.xiaomi docs]) (new-platform) + +## {% linkable_title Release 0.72.1 - June 25 %} + +- Prevent Nest component setup crash due insufficient permission. ([@awarecan] - [#14966]) ([nest docs]) +- Fix socket bug with Yi in 0.72 ([@bachya] - [#15109]) ([camera.yi docs]) +- Skip nest security state sensor if no Nest Cam exists ([@awarecan] - [#15112]) ([sensor.nest docs]) +- Fix cast config ([@balloob] - [#15143]) ([media_player.cast docs]) +- Bump python-nest to 4.0.3 ([@awarecan] - [#15098]) ([nest docs]) ([sensor.nest docs]) + +## {% 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. + + +## {% linkable_title Breaking Changes %} + +- For developers of custom panel: Remove ability to register panels directly with the frontend component. Register with custom panel component instead. ([@balloob] - [#14805]) ([frontend docs]) (breaking change) +- Rename Hive hub friendly name to include "Hive" name ([@SteveEdson] - [#14747]) ([sensor.hive docs]) (breaking change) +- Homematic: RotaryHandleSensorIP states will now report open, tilt, closed ([@hanzoh] - [#14885]) ([sensor.homematic docs]) (breaking change) +- Add support for multiple Doorbird stations ([@oblogic7] - [#13994]) ([doorbird docs]) ([camera.doorbird docs]) ([switch.doorbird docs]) (breaking change) +- AirVisual: The radius configuration parameter no longer does anything and has been removed. This won't negatively impact any existing integrations. Second, this PR will modify the unique IDs for each sensor to correctly include the locale. New unique IDs will now include _us_ and _cn_ ([@bachya] - [#14943]) ([sensor.airvisual docs]) (breaking change) +- Sonos and Cast are now configured via config entries. Go to the integrations tab in config panel to set it up. ([@balloob] - [#14955]) ([media_player docs]) ([sonos docs]) ([media_player.sonos docs]) (breaking change) +- Eight Sleep add REM type, Update async syntax, Catch API quirks ([@mezz64] - [#14937]) ([eight_sleep docs]) ([binary_sensor.eight_sleep docs]) ([sensor.eight_sleep docs]) (breaking change) +- Fix energy meter for HS110 v2 users. Not a breaking change unless you are using a custom component ([@rytilahti] - [#15001]) ([light.tplink docs]) ([switch.tplink docs]) (breaking change) (beta fix) + +## {% linkable_title Beta Fixes %} + +- Remove load power attribute for channel USB ([@syssi] - [#14996]) ([switch.xiaomi_miio docs]) (beta fix) +- Switch to own packaged version of spotipy ([@andrey-git] - [#14997]) ([media_player.spotify docs]) (beta fix) +- Bump pyhs100 version ([@rytilahti] - [#15001]) ([light.tplink docs]) ([switch.tplink docs]) (breaking change) (beta fix) +- Add experimental UI backend ([@balloob] - [#15002]) ([frontend docs]) (beta fix) +- Fix panel URL authentication for Hass.io ([@pvizeli] - [#15024]) ([hassio docs]) (beta fix) +- Fix linode I/O in state property ([@MartinHjelmare] - [#15010]) ([binary_sensor.linode docs]) ([switch.linode docs]) (beta fix) +- Upgrade aiohttp to 3.3.2 ([@fabaff] - [#15025]) (beta fix) +- Make zone entries work without radius ([@balloob] - [#15032]) ([zone docs]) (beta fix) +- Bugfix empty entity lists ([@pvizeli] - [#15035]) (beta fix) +- Rename experimental UI to lovelace ([@balloob] - [#15065]) ([frontend docs]) (beta fix) +- X10 ([@teharris1] - [#14741]) ([insteon_plm docs]) ([switch.insteon_plm docs]) (beta fix) +- Fix MQTT Light with RGB and Brightness ([@thinkl33t] - [#15053]) ([light.mqtt docs]) (beta fix) +- Update Neato Library And Reduce Cloud Calls ([@dshokouhi] - [#15072]) ([neato docs]) ([camera.neato docs]) ([switch.neato docs]) ([vacuum.neato docs]) (beta fix) + +## {% linkable_title All changes %} + +- Weather Platform - IPMA ([@dgomes] - [#14716]) ([weather.ipma docs]) (new-platform) +- Add additional 86sw model identifier of the LAN protocol V2 ([@syssi] - [#14799]) ([xiaomi_aqara docs]) ([binary_sensor.xiaomi_aqara docs]) +- Allow Kodi live streams to be recognized as paused ([@quthla] - [#14623]) ([media_player.kodi docs]) +- Update syntax ([@fabaff] - [#14812]) ([sensor.moon docs]) +- Use pihole module to get data ([@fabaff] - [#14809]) ([sensor.pi_hole docs]) +- Bump python-miio version (Closes: #13749) ([@syssi] - [#14796]) ([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]) +- Further cleanup frontend ([@balloob] - [#14805]) ([frontend docs]) (breaking change) +- netatmo api is now in pip as pyatmo ([@jabesq] - [#14824]) ([netatmo docs]) ([binary_sensor.netatmo docs]) ([camera.netatmo docs]) ([climate.netatmo docs]) ([sensor.netatmo docs]) +- Action parameter doesn't longer have to be the first parameter ([@GruberMischa] - [#14815]) ([binary_sensor.mystrom docs]) +- Fixes an issue in Xiaomi TV platform that would some TVs not sleep correctly ([@simse] - [#14829]) ([media_player.xiaomi_tv docs]) +- Improved Fritz!Box thermostat support ([@thomaskr] - [#14789]) ([climate.fritzbox docs]) +- Add Freebox device tracker ([@stilllman] - [#12727]) ([device_tracker.freebox docs]) (new-platform) +- Migrate entity registry to using websocket ([@balloob] - [#14830]) ([config docs]) +- Route themes and translations over websocket ([@balloob] - [#14828]) ([frontend docs]) ([websocket_api docs]) +- Feature/gearbest library update (Closes: #14813) ([@HerrHofrat] - [#14833]) ([sensor.gearbest docs]) +- Ignore the mistaken long_both_click event of the 86sw (Closes: #14802) ([@syssi] - [#14808]) ([binary_sensor.xiaomi_aqara docs]) +- Fix non awaited test ([@balloob] - [#14854]) +- Update Hue flow title ([@balloob] - [#14852]) ([hue docs]) +- Upgrade Mastodon.py to 1.3.0 ([@fabaff] - [#14858]) +- Improvements to LIFX reliability ([@amelchio] - [#14848]) ([light.lifx docs]) +- Add general sound mode support ([@starkillerOG] - [#14729]) ([media_player docs]) +- Add IBM Watson IoT Platform component ([@mtreinish] - [#13664]) ([watson_iot docs]) (new-platform) +- Upgrade aiohttp to 3.3.0 ([@fabaff] - [#14766]) +- Add min_temp and max_temp to MQTT climate device ([@PhilRW] - [#14690]) ([climate.mqtt docs]) +- Store config entry id in entity registry ([@balloob] - [#14851]) +- Catch ConnectionError (fixes #14241) ([@fabaff] - [#14748]) ([media_player.yamaha docs]) +- Don't run unnecessary methods in executor pool ([@balloob] - [#14853]) +- Wireless tags platform ([@sergeymaysak] - [#13495]) ([wirelesstag docs]) ([binary_sensor.wirelesstag docs]) ([sensor.wirelesstag docs]) ([switch.wirelesstag docs]) (new-platform) +- Fix door/window sensor support of the Xiaomi Aqara LAN protocol V2 (Closes: #14775) ([@syssi] - [#14777]) ([binary_sensor.xiaomi_aqara docs]) +- zha: handle "step_with_on_off" cluster command in LevelListener. ([@Adminiuga] - [#14756]) ([binary_sensor.zha docs]) +- Rename Hive hub friendly name ([@SteveEdson] - [#14747]) ([sensor.hive docs]) (breaking change) +- Add set_default_level to logger ([@dale3h] - [#14703]) ([logger docs]) +- Fix unit conversion ([@dgomes] - [#14730]) ([climate.generic_thermostat docs]) ([climate.sensibo docs]) ([climate.tado docs]) +- Disable volume control for Onkyo when unavailable (Closes: #14774) ([@snikch] - [#14863]) ([media_player.onkyo docs]) +- Add netgear_lte component ([@amelchio] - [#14687]) ([netgear_lte docs]) ([notify docs]) ([sensor.netgear_lte docs]) (new-platform) +- Add support for new hass.io panel ([@balloob] - [#14873]) ([hassio docs]) ([panel_custom docs]) +- Add color_status sensor for Nest Protect ([@awarecan] - [#14868]) ([sensor.nest docs]) +- UVC camera platform handling unavailable NVR or cameras better ([@exxamalte] - [#14864]) ([camera.uvc docs]) +- Samsung TV can't turn off after idle period ([@ejel] - [#14587]) ([media_player.samsungtv docs]) +- Discover Qubino ZMHTDx smart meter switches ([@turbokongen] - [#14884]) ([zwave docs]) +- Add missing mapping of RotaryHandleSensorIP states ([@hanzoh] - [#14885]) ([sensor.homematic docs]) (breaking change) +- Add entity registry support to media_player.snapcast ([@jedi7] - [#14895]) ([media_player.snapcast docs]) +- Allow different identifiers for the CPU temperature (fixes #10104) ([@fabaff] - [#14898]) ([sensor.glances docs]) +- Make RainMachine async ([@bachya] - [#14879]) ([rainmachine docs]) ([binary_sensor.rainmachine docs]) ([sensor.rainmachine docs]) ([switch.rainmachine docs]) +- Add Uptime Robot sensor ([@ludeeus] - [#14631]) ([binary_sensor.uptimerobot docs]) (new-platform) +- Upgrade python_opendata_transport to 0.1.3 ([@fabaff] - [#14905]) ([sensor.swiss_public_transport docs]) +- Upgrade psutil to 5.4.6 ([@fabaff] - [#14892]) ([sensor.systemmonitor docs]) +- Upgrade sendgrid to 5.4.0 ([@fabaff] - [#14891]) ([notify docs]) +- Upgrade python-mystrom to 0.4.4 ([@fabaff] - [#14889]) ([light.mystrom docs]) ([switch.mystrom docs]) +- Upgrade pylast to 2.3.0 ([@fabaff] - [#14888]) ([sensor.lastfm docs]) +- Added daily and hourly modes to Openweathermap ([@sgttrs] - [#14875]) ([weather.openweathermap docs]) +- Bump to denonavr 0.7.3 ([@klada] - [#14907]) ([media_player.denonavr docs]) +- Add api_host option to Konnected config ([@heythisisnate] - [#14896]) ([konnected docs]) +- Add support for the Unitymedia Horizon HD Recorder ([@benleb] - [#14275]) ([media_player.horizon docs]) (new-platform) +- Add support for multiple Doorbird stations ([@oblogic7] - [#13994]) ([doorbird docs]) ([camera.doorbird docs]) ([switch.doorbird docs]) (breaking change) +- Update mqtt_eventstream.py ([@molobrakos] - [#14923]) ([mqtt_eventstream docs]) +- Upgrade python-nest, add security_state sensor, nest.set_mode service set ETA as well ([@awarecan] - [#14901]) ([nest docs]) ([sensor.nest docs]) +- Add more test cases for samsungtv ([@ejel] - [#14900]) +- Refactored Arlo component and enhanced Arlo API queries and times ([@tchellomello] - [#14823]) ([arlo docs]) ([alarm_control_panel.arlo docs]) ([camera.arlo docs]) ([sensor.arlo docs]) +- Use cv.time_period instead of cv.time_period_str ([@awarecan] - [#14938]) ([nest docs]) +- Add support for KIWI Door Locks ([@c7h] - [#14485]) ([lock.kiwi docs]) (new-platform) +- Fix snapcast uuid to be more unique ([@jedi7] - [#14925]) ([media_player.snapcast docs]) +- pytradfri 5.5.1: Improved 3rd party bulb support ([@Hate-Usernames] - [#14887]) ([tradfri docs]) ([light.tradfri docs]) +- Epson projector support ([@pszafer] - [#14841]) ([media_player.epson docs]) (new-platform) +- Add scan_interval to RainMachine ([@bachya] - [#14945]) ([rainmachine docs]) +- Myq update from 0.0.8 to 0.0.11 ([@arraylabs] - [#14947]) ([cover.myq docs]) +- Upgrade pylint to 1.9.2 ([@scop] - [#14916]) +- Update python-wink to 1.8.0 ([@vickyg3] - [#14894]) ([wink docs]) +- Add unique_id for mqtt binary sensor ([@ciotlosm] - [#14929]) ([binary_sensor.mqtt docs]) +- Make Yi platform async ([@bachya] - [#14944]) ([camera.yi docs]) +- Nest config flow ([@balloob] - [#14921]) ([nest docs]) +- Fix Facebox face data parsing ([@robmarkcole] - [#14951]) ([image_processing.facebox docs]) +- Add sensor.nsw_fuel_station component ([@nickw444] - [#14757]) ([sensor.nsw_fuel_station docs]) (new-platform) +- Make AirVisual platform async + other adjustments ([@bachya] - [#14943]) ([sensor.airvisual docs]) (breaking change) +- Add support for ZhongHong HVAC Controllers ([@crhan] - [#14552]) ([climate.zhong_hong docs]) (new-platform) +- Fix tests ([@balloob] - [#14959]) +- add relative time option to simulated sensors ([@Shou] - [#14038]) ([sensor.simulated docs]) +- Add config entry for Sonos + Cast ([@balloob] - [#14955]) ([media_player docs]) ([sonos docs]) ([media_player.sonos docs]) (breaking change) +- Fix smappee component - "Error on device update" ([@bachya] - [#14883]) ([sensor.smappee docs]) +- Adhere to scan_interval in platforms when setup via config entry ([@balloob] - [#14969]) +- Add Calendar API endpoint to get events ([@titilambert] - [#14702]) ([calendar docs]) ([calendar.caldav docs]) +- Add calendar panel, add tests ([@balloob] - [#14973]) ([calendar docs]) +- Xiaomi Cameras - multiple models ([@vaidyasr] - [#14244]) ([camera.xiaomi docs]) (new-platform) +- Fix binary_sensor.skybell state update when there are no events ([@trisk] - [#14927]) ([binary_sensor.skybell docs]) ([sensor.skybell docs]) +- Deconz make groups configurable ([@Kane610] - [#14704]) ([deconz docs]) ([light.deconz docs]) +- Show notification when user configures Nest client_id/secret ([@balloob] - [#14970]) ([hue docs]) ([nest docs]) +- Eight Sleep add REM type, Update async syntax, Catch API quirks ([@mezz64] - [#14937]) ([eight_sleep docs]) ([binary_sensor.eight_sleep docs]) ([sensor.eight_sleep docs]) (breaking change) +- Return ISO formated datetime in forecast ([@c727] - [#14975]) ([weather.ecobee docs]) +- Remove inline pylint disables for messages disabled in pylintrc ([@scop] - [#14978]) +- Add availability to Rflink entities. ([@aequitas] - [#14977]) ([rflink docs]) +- Upgrade ring_doorbell to 0.2.1 to fix oauth issues ([@tchellomello] - [#14984]) ([ring docs]) +- Fix extended package support ([@cdce8p] - [#14980]) +- Upgraded PyArlo to 0.1.7 ([@tchellomello] - [#14987]) ([arlo docs]) +- Upgraded python-amcrest to 1.2.3 ([@tchellomello] - [#14988]) ([amcrest docs]) +- Upgraded RainCloudy to version 0.0.5 ([@tchellomello] - [#14986]) ([raincloud docs]) +- Do not mount deps folder when running in virtual env ([@balloob] - [#14993]) +- Refactoring camera component to use async/await syntax. ([@awarecan] - [#14990]) ([camera docs]) +- Remove load power attribute for channel USB ([@syssi] - [#14996]) ([switch.xiaomi_miio docs]) (beta fix) +- Switch to own packaged version of spotipy ([@andrey-git] - [#14997]) ([media_player.spotify docs]) (beta fix) +- Bump pyhs100 version ([@rytilahti] - [#15001]) ([light.tplink docs]) ([switch.tplink docs]) (breaking change) (beta fix) +- Add experimental UI backend ([@balloob] - [#15002]) ([frontend docs]) (beta fix) +- Fix panel URL authentication for Hass.io ([@pvizeli] - [#15024]) ([hassio docs]) (beta fix) +- Fix linode I/O in state property ([@MartinHjelmare] - [#15010]) ([binary_sensor.linode docs]) ([switch.linode docs]) (beta fix) +- Upgrade aiohttp to 3.3.2 ([@fabaff] - [#15025]) (beta fix) +- Make zone entries work without radius ([@balloob] - [#15032]) ([zone docs]) (beta fix) +- Bugfix empty entity lists ([@pvizeli] - [#15035]) (beta fix) +- Rename experimental UI to lovelace ([@balloob] - [#15065]) ([frontend docs]) (beta fix) +- X10 ([@teharris1] - [#14741]) ([insteon_plm docs]) ([switch.insteon_plm docs]) (beta fix) +- Fix MQTT Light with RGB and Brightness ([@thinkl33t] - [#15053]) ([light.mqtt docs]) (beta fix) +- Update Neato Library And Reduce Cloud Calls ([@dshokouhi] - [#15072]) ([neato docs]) ([camera.neato docs]) ([switch.neato docs]) ([vacuum.neato docs]) (beta fix) + +[#12727]: https://github.com/home-assistant/home-assistant/pull/12727 +[#13495]: https://github.com/home-assistant/home-assistant/pull/13495 +[#13664]: https://github.com/home-assistant/home-assistant/pull/13664 +[#13994]: https://github.com/home-assistant/home-assistant/pull/13994 +[#14038]: https://github.com/home-assistant/home-assistant/pull/14038 +[#14244]: https://github.com/home-assistant/home-assistant/pull/14244 +[#14275]: https://github.com/home-assistant/home-assistant/pull/14275 +[#14485]: https://github.com/home-assistant/home-assistant/pull/14485 +[#14552]: https://github.com/home-assistant/home-assistant/pull/14552 +[#14587]: https://github.com/home-assistant/home-assistant/pull/14587 +[#14623]: https://github.com/home-assistant/home-assistant/pull/14623 +[#14631]: https://github.com/home-assistant/home-assistant/pull/14631 +[#14687]: https://github.com/home-assistant/home-assistant/pull/14687 +[#14690]: https://github.com/home-assistant/home-assistant/pull/14690 +[#14702]: https://github.com/home-assistant/home-assistant/pull/14702 +[#14703]: https://github.com/home-assistant/home-assistant/pull/14703 +[#14704]: https://github.com/home-assistant/home-assistant/pull/14704 +[#14716]: https://github.com/home-assistant/home-assistant/pull/14716 +[#14729]: https://github.com/home-assistant/home-assistant/pull/14729 +[#14730]: https://github.com/home-assistant/home-assistant/pull/14730 +[#14741]: https://github.com/home-assistant/home-assistant/pull/14741 +[#14747]: https://github.com/home-assistant/home-assistant/pull/14747 +[#14748]: https://github.com/home-assistant/home-assistant/pull/14748 +[#14756]: https://github.com/home-assistant/home-assistant/pull/14756 +[#14757]: https://github.com/home-assistant/home-assistant/pull/14757 +[#14766]: https://github.com/home-assistant/home-assistant/pull/14766 +[#14777]: https://github.com/home-assistant/home-assistant/pull/14777 +[#14789]: https://github.com/home-assistant/home-assistant/pull/14789 +[#14796]: https://github.com/home-assistant/home-assistant/pull/14796 +[#14799]: https://github.com/home-assistant/home-assistant/pull/14799 +[#14805]: https://github.com/home-assistant/home-assistant/pull/14805 +[#14808]: https://github.com/home-assistant/home-assistant/pull/14808 +[#14809]: https://github.com/home-assistant/home-assistant/pull/14809 +[#14812]: https://github.com/home-assistant/home-assistant/pull/14812 +[#14815]: https://github.com/home-assistant/home-assistant/pull/14815 +[#14823]: https://github.com/home-assistant/home-assistant/pull/14823 +[#14824]: https://github.com/home-assistant/home-assistant/pull/14824 +[#14828]: https://github.com/home-assistant/home-assistant/pull/14828 +[#14829]: https://github.com/home-assistant/home-assistant/pull/14829 +[#14830]: https://github.com/home-assistant/home-assistant/pull/14830 +[#14833]: https://github.com/home-assistant/home-assistant/pull/14833 +[#14841]: https://github.com/home-assistant/home-assistant/pull/14841 +[#14848]: https://github.com/home-assistant/home-assistant/pull/14848 +[#14851]: https://github.com/home-assistant/home-assistant/pull/14851 +[#14852]: https://github.com/home-assistant/home-assistant/pull/14852 +[#14853]: https://github.com/home-assistant/home-assistant/pull/14853 +[#14854]: https://github.com/home-assistant/home-assistant/pull/14854 +[#14858]: https://github.com/home-assistant/home-assistant/pull/14858 +[#14863]: https://github.com/home-assistant/home-assistant/pull/14863 +[#14864]: https://github.com/home-assistant/home-assistant/pull/14864 +[#14868]: https://github.com/home-assistant/home-assistant/pull/14868 +[#14873]: https://github.com/home-assistant/home-assistant/pull/14873 +[#14875]: https://github.com/home-assistant/home-assistant/pull/14875 +[#14879]: https://github.com/home-assistant/home-assistant/pull/14879 +[#14883]: https://github.com/home-assistant/home-assistant/pull/14883 +[#14884]: https://github.com/home-assistant/home-assistant/pull/14884 +[#14885]: https://github.com/home-assistant/home-assistant/pull/14885 +[#14887]: https://github.com/home-assistant/home-assistant/pull/14887 +[#14888]: https://github.com/home-assistant/home-assistant/pull/14888 +[#14889]: https://github.com/home-assistant/home-assistant/pull/14889 +[#14891]: https://github.com/home-assistant/home-assistant/pull/14891 +[#14892]: https://github.com/home-assistant/home-assistant/pull/14892 +[#14894]: https://github.com/home-assistant/home-assistant/pull/14894 +[#14895]: https://github.com/home-assistant/home-assistant/pull/14895 +[#14896]: https://github.com/home-assistant/home-assistant/pull/14896 +[#14898]: https://github.com/home-assistant/home-assistant/pull/14898 +[#14900]: https://github.com/home-assistant/home-assistant/pull/14900 +[#14901]: https://github.com/home-assistant/home-assistant/pull/14901 +[#14905]: https://github.com/home-assistant/home-assistant/pull/14905 +[#14907]: https://github.com/home-assistant/home-assistant/pull/14907 +[#14916]: https://github.com/home-assistant/home-assistant/pull/14916 +[#14921]: https://github.com/home-assistant/home-assistant/pull/14921 +[#14923]: https://github.com/home-assistant/home-assistant/pull/14923 +[#14925]: https://github.com/home-assistant/home-assistant/pull/14925 +[#14927]: https://github.com/home-assistant/home-assistant/pull/14927 +[#14929]: https://github.com/home-assistant/home-assistant/pull/14929 +[#14937]: https://github.com/home-assistant/home-assistant/pull/14937 +[#14938]: https://github.com/home-assistant/home-assistant/pull/14938 +[#14943]: https://github.com/home-assistant/home-assistant/pull/14943 +[#14944]: https://github.com/home-assistant/home-assistant/pull/14944 +[#14945]: https://github.com/home-assistant/home-assistant/pull/14945 +[#14947]: https://github.com/home-assistant/home-assistant/pull/14947 +[#14951]: https://github.com/home-assistant/home-assistant/pull/14951 +[#14955]: https://github.com/home-assistant/home-assistant/pull/14955 +[#14959]: https://github.com/home-assistant/home-assistant/pull/14959 +[#14969]: https://github.com/home-assistant/home-assistant/pull/14969 +[#14970]: https://github.com/home-assistant/home-assistant/pull/14970 +[#14973]: https://github.com/home-assistant/home-assistant/pull/14973 +[#14975]: https://github.com/home-assistant/home-assistant/pull/14975 +[#14977]: https://github.com/home-assistant/home-assistant/pull/14977 +[#14978]: https://github.com/home-assistant/home-assistant/pull/14978 +[#14980]: https://github.com/home-assistant/home-assistant/pull/14980 +[#14984]: https://github.com/home-assistant/home-assistant/pull/14984 +[#14986]: https://github.com/home-assistant/home-assistant/pull/14986 +[#14987]: https://github.com/home-assistant/home-assistant/pull/14987 +[#14988]: https://github.com/home-assistant/home-assistant/pull/14988 +[#14990]: https://github.com/home-assistant/home-assistant/pull/14990 +[#14993]: https://github.com/home-assistant/home-assistant/pull/14993 +[#14996]: https://github.com/home-assistant/home-assistant/pull/14996 +[#14997]: https://github.com/home-assistant/home-assistant/pull/14997 +[#15001]: https://github.com/home-assistant/home-assistant/pull/15001 +[#15002]: https://github.com/home-assistant/home-assistant/pull/15002 +[#15010]: https://github.com/home-assistant/home-assistant/pull/15010 +[#15024]: https://github.com/home-assistant/home-assistant/pull/15024 +[#15025]: https://github.com/home-assistant/home-assistant/pull/15025 +[#15032]: https://github.com/home-assistant/home-assistant/pull/15032 +[#15035]: https://github.com/home-assistant/home-assistant/pull/15035 +[#15053]: https://github.com/home-assistant/home-assistant/pull/15053 +[#15065]: https://github.com/home-assistant/home-assistant/pull/15065 +[#15072]: https://github.com/home-assistant/home-assistant/pull/15072 +[@Adminiuga]: https://github.com/Adminiuga +[@GruberMischa]: https://github.com/GruberMischa +[@Hate-Usernames]: https://github.com/Hate-Usernames +[@HerrHofrat]: https://github.com/HerrHofrat +[@Kane610]: https://github.com/Kane610 +[@MartinHjelmare]: https://github.com/MartinHjelmare +[@PhilRW]: https://github.com/PhilRW +[@Shou]: https://github.com/Shou +[@SteveEdson]: https://github.com/SteveEdson +[@aequitas]: https://github.com/aequitas +[@amelchio]: https://github.com/amelchio +[@arsaboo]: https://github.com/arsaboo +[@andrey-git]: https://github.com/andrey-git +[@arraylabs]: https://github.com/arraylabs +[@awarecan]: https://github.com/awarecan +[@bachya]: https://github.com/bachya +[@balloob]: https://github.com/balloob +[@benleb]: https://github.com/benleb +[@c727]: https://github.com/c727 +[@c7h]: https://github.com/c7h +[@cdce8p]: https://github.com/cdce8p +[@ciotlosm]: https://github.com/ciotlosm +[@crhan]: https://github.com/crhan +[@dale3h]: https://github.com/dale3h +[@dgomes]: https://github.com/dgomes +[@dshokouhi]: https://github.com/dshokouhi +[@ejel]: https://github.com/ejel +[@exxamalte]: https://github.com/exxamalte +[@fabaff]: https://github.com/fabaff +[@hanzoh]: https://github.com/hanzoh +[@heythisisnate]: https://github.com/heythisisnate +[@jabesq]: https://github.com/jabesq +[@jedi7]: https://github.com/jedi7 +[@klada]: https://github.com/klada +[@ludeeus]: https://github.com/ludeeus +[@mezz64]: https://github.com/mezz64 +[@molobrakos]: https://github.com/molobrakos +[@mtreinish]: https://github.com/mtreinish +[@nickw444]: https://github.com/nickw444 +[@oblogic7]: https://github.com/oblogic7 +[@pszafer]: https://github.com/pszafer +[@pvizeli]: https://github.com/pvizeli +[@quthla]: https://github.com/quthla +[@robmarkcole]: https://github.com/robmarkcole +[@rytilahti]: https://github.com/rytilahti +[@scop]: https://github.com/scop +[@sergeymaysak]: https://github.com/sergeymaysak +[@sgttrs]: https://github.com/sgttrs +[@simse]: https://github.com/simse +[@snikch]: https://github.com/snikch +[@starkillerOG]: https://github.com/starkillerOG +[@stilllman]: https://github.com/stilllman +[@syssi]: https://github.com/syssi +[@tchellomello]: https://github.com/tchellomello +[@teharris1]: https://github.com/teharris1 +[@thinkl33t]: https://github.com/thinkl33t +[@thomaskr]: https://github.com/thomaskr +[@titilambert]: https://github.com/titilambert +[@trisk]: https://github.com/trisk +[@turbokongen]: https://github.com/turbokongen +[@vaidyasr]: https://github.com/vaidyasr +[@vickyg3]: https://github.com/vickyg3 +[alarm_control_panel.arlo docs]: /components/alarm_control_panel.arlo/ +[amcrest docs]: /components/amcrest/ +[arlo docs]: /components/arlo/ +[binary_sensor.eight_sleep docs]: /components/binary_sensor.eight_sleep/ +[binary_sensor.linode docs]: /components/binary_sensor.linode/ +[binary_sensor.mqtt docs]: /components/binary_sensor.mqtt/ +[binary_sensor.mystrom docs]: /components/binary_sensor.mystrom/ +[binary_sensor.netatmo docs]: /components/binary_sensor.netatmo/ +[binary_sensor.rainmachine docs]: /components/binary_sensor.rainmachine/ +[binary_sensor.skybell docs]: /components/binary_sensor.skybell/ +[binary_sensor.uptimerobot docs]: /components/binary_sensor.uptimerobot/ +[binary_sensor.wirelesstag docs]: /components/binary_sensor.wirelesstag/ +[binary_sensor.xiaomi_aqara docs]: /components/binary_sensor.xiaomi_aqara/ +[binary_sensor.zha docs]: /components/binary_sensor.zha/ +[calendar docs]: /components/calendar/ +[calendar.caldav docs]: /components/calendar.caldav/ +[camera docs]: /components/camera/ +[camera.arlo docs]: /components/camera.arlo/ +[camera.doorbird docs]: /components/camera.doorbird/ +[camera.neato docs]: /components/camera.neato/ +[camera.netatmo docs]: /components/camera.netatmo/ +[camera.uvc docs]: /components/camera.uvc/ +[camera.xiaomi docs]: /components/camera.xiaomi/ +[camera.yi docs]: /components/camera.yi/ +[climate.fritzbox docs]: /components/climate.fritzbox/ +[climate.generic_thermostat docs]: /components/climate.generic_thermostat/ +[climate.mqtt docs]: /components/climate.mqtt/ +[climate.netatmo docs]: /components/climate.netatmo/ +[climate.sensibo docs]: /components/climate.sensibo/ +[climate.tado docs]: /components/climate.tado/ +[climate.zhong_hong docs]: /components/climate.zhong_hong/ +[config docs]: /components/config/ +[cover.myq docs]: /components/cover.myq/ +[deconz docs]: /components/deconz/ +[device_tracker docs]: /components/device_tracker/ +[device_tracker.freebox docs]: /components/device_tracker.freebox/ +[doorbird docs]: /components/doorbird/ +[eight_sleep docs]: /components/eight_sleep/ +[fan.xiaomi_miio docs]: /components/fan.xiaomi_miio/ +[frontend docs]: /components/frontend/ +[hassio docs]: /components/hassio/ +[hue docs]: /components/hue/ +[image_processing.facebox docs]: /components/image_processing.facebox/ +[insteon_plm docs]: /components/insteon_plm/ +[konnected docs]: /components/konnected/ +[light.deconz docs]: /components/light.deconz/ +[light.lifx docs]: /components/light.lifx/ +[light.mqtt docs]: /components/light.mqtt/ +[light.mystrom docs]: /components/light.mystrom/ +[light.tplink docs]: /components/light.tplink/ +[light.tradfri docs]: /components/light.tradfri/ +[light.xiaomi_miio docs]: /components/light.xiaomi_miio/ +[lock.kiwi docs]: /components/lock.kiwi/ +[logger docs]: /components/logger/ +[media_player docs]: /components/media_player/ +[media_player.denonavr docs]: /components/media_player.denonavr/ +[media_player.epson docs]: /components/media_player.epson/ +[media_player.horizon docs]: /components/media_player.horizon/ +[media_player.kodi docs]: /components/media_player.kodi/ +[media_player.onkyo docs]: /components/media_player.onkyo/ +[media_player.samsungtv docs]: /components/media_player.samsungtv/ +[media_player.snapcast docs]: /components/media_player.snapcast/ +[media_player.sonos docs]: /components/media_player.sonos/ +[media_player.spotify docs]: /components/media_player.spotify/ +[media_player.xiaomi_tv docs]: /components/media_player.xiaomi_tv/ +[media_player.yamaha docs]: /components/media_player.yamaha/ +[mqtt_eventstream docs]: /components/mqtt_eventstream/ +[neato docs]: /components/neato/ +[nest docs]: /components/nest/ +[netatmo docs]: /components/netatmo/ +[netgear_lte docs]: /components/netgear_lte/ +[notify docs]: /components/notify/ +[panel_custom docs]: /components/panel_custom/ +[raincloud docs]: /components/raincloud/ +[rainmachine docs]: /components/rainmachine/ +[remote.xiaomi_miio docs]: /components/remote.xiaomi_miio/ +[rflink docs]: /components/rflink/ +[ring docs]: /components/ring/ +[sensor.airvisual docs]: /components/sensor.airvisual/ +[sensor.arlo docs]: /components/sensor.arlo/ +[sensor.eight_sleep docs]: /components/sensor.eight_sleep/ +[sensor.gearbest docs]: /components/sensor.gearbest/ +[sensor.glances docs]: /components/sensor.glances/ +[sensor.hive docs]: /components/sensor.hive/ +[sensor.homematic docs]: /components/sensor.homematic/ +[sensor.lastfm docs]: /components/sensor.lastfm/ +[sensor.moon docs]: /components/sensor.moon/ +[sensor.nest docs]: /components/sensor.nest/ +[sensor.netatmo docs]: /components/sensor.netatmo/ +[sensor.netgear_lte docs]: /components/sensor.netgear_lte/ +[sensor.nsw_fuel_station docs]: /components/sensor.nsw_fuel_station/ +[sensor.pi_hole docs]: /components/sensor.pi_hole/ +[sensor.rainmachine docs]: /components/sensor.rainmachine/ +[sensor.simulated docs]: /components/sensor.simulated/ +[sensor.skybell docs]: /components/sensor.skybell/ +[sensor.smappee docs]: /components/sensor.smappee/ +[sensor.swiss_public_transport docs]: /components/sensor.swiss_public_transport/ +[sensor.systemmonitor docs]: /components/sensor.systemmonitor/ +[sensor.wirelesstag docs]: /components/sensor.wirelesstag/ +[sensor.xiaomi_miio docs]: /components/sensor.xiaomi_miio/ +[sonos docs]: /components/sonos/ +[switch.doorbird docs]: /components/switch.doorbird/ +[switch.insteon_plm docs]: /components/switch.insteon_plm/ +[switch.linode docs]: /components/switch.linode/ +[switch.mystrom docs]: /components/switch.mystrom/ +[switch.neato docs]: /components/switch.neato/ +[switch.rainmachine docs]: /components/switch.rainmachine/ +[switch.tplink docs]: /components/switch.tplink/ +[switch.wirelesstag docs]: /components/switch.wirelesstag/ +[switch.xiaomi_miio docs]: /components/switch.xiaomi_miio/ +[tradfri docs]: /components/tradfri/ +[vacuum.neato docs]: /components/vacuum.neato/ +[vacuum.xiaomi_miio docs]: /components/vacuum.xiaomi_miio/ +[watson_iot docs]: /components/watson_iot/ +[weather.ecobee docs]: /components/weather.ecobee/ +[weather.ipma docs]: /components/weather.ipma/ +[weather.openweathermap docs]: /components/weather.openweathermap/ +[websocket_api docs]: /components/websocket_api/ +[wink docs]: /components/wink/ +[wirelesstag docs]: /components/wirelesstag/ +[xiaomi_aqara docs]: /components/xiaomi_aqara/ +[zone docs]: /components/zone/ +[zwave docs]: /components/zwave/ +[#14966]: https://github.com/home-assistant/home-assistant/pull/14966 +[#15098]: https://github.com/home-assistant/home-assistant/pull/15098 +[#15109]: https://github.com/home-assistant/home-assistant/pull/15109 +[#15112]: https://github.com/home-assistant/home-assistant/pull/15112 +[#15143]: https://github.com/home-assistant/home-assistant/pull/15143 +[@awarecan]: https://github.com/awarecan +[@bachya]: https://github.com/bachya +[@balloob]: https://github.com/balloob +[camera.yi docs]: /components/camera.yi/ +[media_player.cast docs]: /components/media_player.cast/ +[nest docs]: /components/nest/ +[sensor.nest docs]: /components/sensor.nest/ diff --git a/source/cloud/google_assistant.markdown b/source/cloud/google_assistant.markdown index 007c1c37f8a..4faaeda5862 100644 --- a/source/cloud/google_assistant.markdown +++ b/source/cloud/google_assistant.markdown @@ -95,3 +95,7 @@ google_actions: required: false type: string {% endconfiguration %} + +

+After setting up the cloud, if you make any device changes such as changing the name or adding a new device simply say "Ok Google, sync my devices" to get the changes to show up. +

diff --git a/source/components/switch.linode.markdown b/source/components/switch.linode.markdown new file mode 100644 index 00000000000..f0afd3dd84b --- /dev/null +++ b/source/components/switch.linode.markdown @@ -0,0 +1,34 @@ +--- +layout: page +title: "Linode Switch" +description: "Instructions on how to set up Linode switch within Home Assistant." +date: 2017-10-20 08:00 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: System Monitor +logo: linode.png +ha_release: 0.57 +ha_iot_class: "Cloud Polling" +--- + +The `linode` switch platform allows you to turn your Linode nodes on and off. + +Add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +switch: + - platform: linode + nodes: + - 'myvpsname' +``` + +{% configuration linode %} + nodes: + description: List of VPSs you want to control. + required: true + type: string +{% endconfiguration %} + diff --git a/source/getting-started/configuration.markdown b/source/getting-started/configuration.markdown index ef9b53df954..5eacd498829 100644 --- a/source/getting-started/configuration.markdown +++ b/source/getting-started/configuration.markdown @@ -66,7 +66,7 @@ Go to the add-on store (see previous step), click on Configurator and click on " - Click on "SAVE" to save your new password - "START" the add-on - You will be able to click the "OPEN WEB UI" link to open the Web UI on a new window - - Type your username and password that you recently save + - Type your username and password that you recently saved Time for the first practice with the configurator. Add the following to `configuration.yaml` file to add a link to the Configurator in the sidebar: diff --git a/source/getting-started/index.markdown b/source/getting-started/index.markdown index 7cf8c2ec580..5dd5fefd566 100644 --- a/source/getting-started/index.markdown +++ b/source/getting-started/index.markdown @@ -26,7 +26,7 @@ We will need a few things to get started with installing Home Assistant. Links b - SD Card reader. Part of most laptops, and also available as [standalone USB sticks](http://a.co/5FCyb0N) (the brand doesn't matter, just pick the cheapest) - Ethernet cable (optional, Hass.io can work with WiFi too) -

+

Support for the Raspberry Pi 3 model B+ is available in the alternative installation method [Hassbian](/docs/hassbian/installation/). The recently released Raspberry Pi 3 model B+ is not yet supported by Hass.io. @@ -54,7 +54,7 @@ We will need a few things to get started with installing Home Assistant. Links b [local]: http://hassio.local:8123 -

+

When you're done, remember to set up regular backups of your configuration. This will protect you from hardware failure and mistakes. On Hass.io you have snapshots, but you can back up to [GitHub](/docs/ecosystem/backup/backup_github/), [DropBox](/docs/ecosystem/backup/backup_usb/) and many other ways. All that matters is that you set them up and test them regularly.

diff --git a/source/images/blog/2018-06-release-0.72/config_entry.png b/source/images/blog/2018-06-release-0.72/config_entry.png new file mode 100644 index 00000000000..fba0cb2931a Binary files /dev/null and b/source/images/blog/2018-06-release-0.72/config_entry.png differ diff --git a/source/images/blog/2018-06-release-0.72/lovelace.png b/source/images/blog/2018-06-release-0.72/lovelace.png new file mode 100644 index 00000000000..21e870e347c Binary files /dev/null and b/source/images/blog/2018-06-release-0.72/lovelace.png differ diff --git a/source/images/supported_brands/epson.png b/source/images/supported_brands/epson.png index 22539dee6ef..5bf85496eb2 100644 Binary files a/source/images/supported_brands/epson.png and b/source/images/supported_brands/epson.png differ diff --git a/source/images/supported_brands/hydrawise_logo.png b/source/images/supported_brands/hydrawise_logo.png index 0cfde4bbe61..fffd11f8ebe 100644 Binary files a/source/images/supported_brands/hydrawise_logo.png and b/source/images/supported_brands/hydrawise_logo.png differ diff --git a/source/images/supported_brands/rss.gif b/source/images/supported_brands/rss.gif index f392663d1be..b1fc025785f 100644 Binary files a/source/images/supported_brands/rss.gif and b/source/images/supported_brands/rss.gif differ diff --git a/source/index.html b/source/index.html index 234bf17108b..263f991553a 100644 --- a/source/index.html +++ b/source/index.html @@ -11,8 +11,6 @@ hide_github_edit: true description: Open-source home automation platform running on Python 3. Track and control all devices at home and automate control. Installation in less than a minute. --- -{% assign recent_release_post = site.categories['Release-Notes'].first %} -
@@ -30,7 +28,7 @@ description: Open-source home automation platform running on Python 3. Track and
diff --git a/source/join-chat/index.html b/source/join-chat/index.html new file mode 100644 index 00000000000..662157a609e --- /dev/null +++ b/source/join-chat/index.html @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/source/latest-release-notes/index.html b/source/latest-release-notes/index.html new file mode 100644 index 00000000000..743b5160158 --- /dev/null +++ b/source/latest-release-notes/index.html @@ -0,0 +1,8 @@ +--- +--- + +{% assign recent_release_post = site.categories['Release-Notes'].first %} + +