diff --git a/_config.yml b/_config.yml index a15c04365db..eca36af3511 100644 --- a/_config.yml +++ b/_config.yml @@ -138,9 +138,9 @@ social: # Home Assistant release details current_major_version: 0 -current_minor_version: 91 -current_patch_version: 4 -date_released: 2019-04-16 +current_minor_version: 92 +current_patch_version: 0 +date_released: 2019-04-24 # Either # or the anchor link to latest release notes in the blog post. # Must be prefixed with a # and have double quotes around it. diff --git a/source/.well-known/apple-app-site-association b/source/.well-known/apple-app-site-association index 6355e8876f0..0ae5d0cf17a 100644 --- a/source/.well-known/apple-app-site-association +++ b/source/.well-known/apple-app-site-association @@ -2,6 +2,18 @@ "applinks": { "apps": [], "details": [ + { + "appID": "UTQFCBPQRF.io.robbie.HomeAssistant.dev", + "paths": [ + "/ios/*" + ] + }, + { + "appID": "UTQFCBPQRF.io.robbie.HomeAssistant.beta", + "paths": [ + "/ios/*" + ] + }, { "appID": "UTQFCBPQRF.io.robbie.HomeAssistant", "paths": [ diff --git a/source/_addons/mosquitto.markdown b/source/_addons/mosquitto.markdown index 41c8fdfb06a..49cd1062f2a 100644 --- a/source/_addons/mosquitto.markdown +++ b/source/_addons/mosquitto.markdown @@ -103,7 +103,8 @@ acl_file /share/mosquitto/accesscontrollist 3. Create `/share/mosquitto/accesscontrollist` with the contents: ```text -topic readwrite # +user your-mqtt-user +topic # ``` The `/share` folder can be accessed via SMB, or on the host filesystem under `/usr/share/hassio/share`. diff --git a/source/_addons/nginx_proxy.markdown b/source/_addons/nginx_proxy.markdown index 4bf6c3ad9af..b0e29ece559 100644 --- a/source/_addons/nginx_proxy.markdown +++ b/source/_addons/nginx_proxy.markdown @@ -41,8 +41,8 @@ keyfile: required: true type: string hsts: - description: Value for the [`Strict-Transport-Security`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security) HTTP header to send. If empty or `null`, the header is not sent. - required: false + description: Value for the [`Strict-Transport-Security`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security) HTTP header to send. If empty, the header is not sent. + required: true type: string customize: description: If true, additional NGINX configuration files for the default server and additional servers are read from files in the `/share` directory specified by the `default` and `servers` variables. diff --git a/source/_components/binary_sensor.random.markdown b/source/_components/binary_sensor.random.markdown deleted file mode 100644 index 9b2079270fc..00000000000 --- a/source/_components/binary_sensor.random.markdown +++ /dev/null @@ -1,35 +0,0 @@ ---- -layout: page -title: "Random Binary Sensor" -description: "Instructions on how to integrate random state sensors into Home Assistant." -date: 2017-10-27 08:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: home-assistant.png -ha_category: Utility -ha_iot_class: Local Polling -ha_release: 0.57 -ha_qa_scale: internal ---- - -The `random` binary sensor platform is creating random states (`true`, 1, `on` or `false`, 0, `off`). This can be useful if you want to test automation rules. It generates a new state every time it is polled. - -## {% linkable_title Configuration %} - -To enable the random binary sensor, add the following lines to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -binary_sensor: - - platform: random -``` - -{% configuration %} -name: - description: Name to use in the frontend. - required: false - type: string - default: Random Binary Sensor -{% endconfiguration %} diff --git a/source/_components/blink.markdown b/source/_components/blink.markdown index 741f82d4519..0232e4de8d4 100644 --- a/source/_components/blink.markdown +++ b/source/_components/blink.markdown @@ -142,3 +142,83 @@ homeassistant: ### {% linkable_title Other Services %} In addition to the services mentioned above, there are generic `camera` and `alarm_control_panel` services available for use as well. The `camera.enable_motion_detection` and `camera.disable_motion_detection` services allow for individual cameras to be enabled and disabled, respectively, within the Blink system. The `alarm_control_panel.alarm_arm_away` and `alarm_control_panel.alarm_disarm` services allow for the whole system to be armed and disarmed, respectively. + + +## {% linkable_title Examples %} + +The following are some examples showing how to correctly make service calls using Blink: + +### {% linkable_title Snap Picture and Save Locally %} + +This example script shows how to take a picture with your camera, named `My Camera` in your Blink app (this is **not necessarily** the friendly name in home-assistant). After snapping a picture, the image will then be saved to a local directory called `/tmp/my_image.jpg`. Note that this example makes use of services found in the [camera component](https://www.home-assistant.io/components/camera#service-snapshot) + +```yaml +alias: Blink Snap Picture +sequence: + - service: blink.trigger_camera + data: + name: "My Camera" + - delay: 00:00:05 + - service: blink.blink_update + - service: camera.snapshot + data: + entity_id: camera.blink_my_camera + filename: /tmp/my_image.jpg +``` + +### {% linkable_title Arm Blink When Away %} + +This example automation will arm your blink sync module to detect motion on any of your blink cameras that have motion detection enabled. By default, Blink enables motion detection on all cameras so, unless you've changed anything in your app, you're all set. If you want to manually enable motion detection for individual cameras, you can utilize the [appropriate camera service](https://www.home-assistant.io/components/camera#service-enable_motion_detection) but pelase note that motion will only be captured if the sync module is armed. + +Here, this example assumes your blink module is named `My Sync Module` and that you have [device trackers](https://www.home-assistant.io/components/device_tracker) set up for presence detection. + +```yaml +- id: arm_blink_when_away + alias: Arm Blink When Away + trigger: + platform: state + entity_id: group.all_devices + to: 'not_home' + action: + service: alarm_control_panel.alarm_arm_away + entity_id: alarm_control_panel.blink_my_sync_module +``` + +### {% linkable_title Disarm Blink When Home %} + +Similar to the previous example, this automation will disarm blink when arriving home. + +```yaml +- id: disarm_blink_when_home + alias: Disarm Blink When Home + trigger: + platform: state + entity_id: group.all_devices + to: 'home' + action: + service: alarm_control_panel.alarm_disarm + entity_id: alarm_control_panel.blink_my_sync_module +``` + +### {% linkable_title Save Video Locally When Motion Detected %} + +When motion is detected, you can use the Blink Home-Assistant integration to save the last recorded video locally, rather than relying on Blink's servers to save your data. + +Again, this example assumes your camera's name (in the blink app) is `My Camera` and your sync module name is `My Sync Module`. The file will be saved to `/tmp/videos/blink_video_{YYYMMDD_HHmmSS}.mp4` where `{YYYYMMDD_HHmmSS}` will be a timestamp create via the use of [templating](https://www.home-assistant.io/docs/configuration/templating/). + +{% raw %} +```yaml +- id: save_blink_video_on_motion + alias: Save Blink Video on Motion + trigger: + platform: state + entity_id: binary_sensor.blink_my_camera_motion_detected + to: 'on' + action: + service: blink.save_video + data: + name: "My Camera" + filename: "/tmp/videos/blink_video_{{ now().strftime('%Y%m%d_%H%M%S') }}.mp4" + +``` +{% endraw %} diff --git a/source/_components/calendar.google.markdown b/source/_components/calendar.google.markdown index 30cdef64c4e..62495dca086 100644 --- a/source/_components/calendar.google.markdown +++ b/source/_components/calendar.google.markdown @@ -69,7 +69,8 @@ track_new_calendar: The next steps will require you to have Home Assistant running. -After you have it running complete the Google authentication that pops up. +After you have it running complete the Google authentication that pops up in notification (the little bell icon in the upper right corner). + It will give you a URL and a code to enter. This will grant your Home Assistant service access to all the Google Calendars that the account you authenticate with can read. This is a Read-Only view of these calendars. diff --git a/source/_components/cover.mqtt.markdown b/source/_components/cover.mqtt.markdown index a235da33c7d..05600527804 100644 --- a/source/_components/cover.mqtt.markdown +++ b/source/_components/cover.mqtt.markdown @@ -162,7 +162,7 @@ tilt_opened_value: description: The value that will be sent on an `open_cover_tilt` command. required: false type: integer - default: 0 + default: 100 tilt_status_optimistic: description: Flag that determines if tilt works in optimistic mode. required: false diff --git a/source/_components/device_tracker.markdown b/source/_components/device_tracker.markdown index f6f70973e57..6f63703e70f 100644 --- a/source/_components/device_tracker.markdown +++ b/source/_components/device_tracker.markdown @@ -12,7 +12,7 @@ ha_release: 0.7 Home Assistant can get information from your wireless router or third party services like iCloud or OwnTracks to track which devices are connected and considered "in home". Please check the sidebar for a list of brands of supported wireless routers and services. -There are also trackers available which use different technologies like [MQTT](/components/mqtt/) or [Nmap](/components/device_tracker.nmap_tracker/) to scan the network for devices. +There are also trackers available which use different technologies like [MQTT](/components/mqtt/) or [Nmap](/components/nmap_tracker/) to scan the network for devices. An [event](/getting-started/automation-trigger/#event-trigger) (`device_tracker_new_device`) will be fired when a device is discovered for the first time. @@ -62,7 +62,7 @@ device_tracker: track_new_devices: true ``` -Multiple device trackers can be used in parallel, such as [Owntracks](/components/device_tracker.owntracks/#using-owntracks-with-other-device-trackers) and [Nmap](/components/device_tracker.nmap_tracker/). The state of the device will be determined by the source that reported last. +Multiple device trackers can be used in parallel, such as [Owntracks](/components/owntracks/#using-owntracks-with-other-device-trackers) and [Nmap](/components/nmap_tracker/). The state of the device will be determined by the source that reported last. ## {% linkable_title `known_devices.yaml` %} @@ -96,7 +96,7 @@ devicename: ## {% linkable_title Using GPS device trackers with local network device trackers %} -GPS based device trackers (like [OwnTracks](/components/device_tracker.owntracks/), [GPSLogger](/components/device_tracker.gpslogger) and others) can also be used with local network device trackers, such as [Nmap](/components/device_tracker.nmap_tracker/) or [Netgear](/components/device_tracker.netgear/). To do this, fill in the `mac` field to the entry in `known_devices.yaml` with the MAC address of the device you want to track. This way the state of the device will be determined by *the source that reported last*. The naming convention for known device list is `_` and could be set in the app configuration. +GPS based device trackers (like [OwnTracks](/components/owntracks/), [GPSLogger](/components/gpslogger) and others) can also be used with local network device trackers, such as [Nmap](/components/nmap_tracker/) or [Netgear](/components/netgear/). To do this, fill in the `mac` field to the entry in `known_devices.yaml` with the MAC address of the device you want to track. This way the state of the device will be determined by *the source that reported last*. The naming convention for known device list is `_` and could be set in the app configuration. An example showing the inclusion of the `mac` field for multiple platform tracking. The `mac` field was added to the GPS based device tracker entry and will enable tracking by all platforms that track via the `mac` address. diff --git a/source/_components/dyson.markdown b/source/_components/dyson.markdown index 31c310aa81e..99aac12279b 100644 --- a/source/_components/dyson.markdown +++ b/source/_components/dyson.markdown @@ -23,7 +23,7 @@ redirect_from: - /components/sensor.dyson/ --- -The `dyson` component is the main component to integrate all [Dyson](https://dyson.com) related platforms. +The `dyson` component is the main component to integrate all [Dyson](https://www.dyson.com) related platforms. There is currently support for the following device types within Home Assistant: diff --git a/source/_components/geniushub.markdown b/source/_components/geniushub.markdown index 67fd4b2decf..7e9202bb363 100644 --- a/source/_components/geniushub.markdown +++ b/source/_components/geniushub.markdown @@ -16,9 +16,7 @@ ha_iot_class: Local Polling The `geniushub` integration links Home Assistant with your Genius Hub for controlling climate devices (the hub does not have to be in the same network as HA). -Each Zone controlled by your Genius hub will report back the state, mode, setpoint and temperature. Other properties are available via the device's `state_attributes`. - -It uses this PyPi client library: [https://pypi.org/project/geniushub-client/](https://pypi.org/project/geniushub-client/) +Each Zone controlled by your Genius hub will report back the state, mode, setpoint and temperature. Other properties are available via the device's attributes. There are two distinct options for accessing a Genius Hub: diff --git a/source/_components/geofency.markdown b/source/_components/geofency.markdown index 52a979377bf..86d38f99d84 100644 --- a/source/_components/geofency.markdown +++ b/source/_components/geofency.markdown @@ -1,6 +1,6 @@ --- layout: page -title: "Geofency Device Tracker" +title: "Geofency" description: "Instructions for how to use Geofency to track devices in Home Assistant." date: 2017-08-22 19:00 sidebar: true @@ -8,21 +8,45 @@ comments: false sharing: true footer: true logo: geofency.png -ha_category: Presence Detection +ha_category: + - Presence Detection ha_release: 0.53 ha_iot_class: Cloud Push redirect_from: - - /components/device_tracker.geofency/ + - /components/device_tracker.geofency/ --- -This platform allows you to detect presence using [Geofency](http://www.geofency.com/). +This component sets up integration with [Geofency](http://www.geofency.com/). Geofency is a [paid app](https://itunes.apple.com/app/id615538630) for iOS that lets users to configure a request that will be sent when a geofence or iBeacon region is entered or exited. This can be configured with Home Assistant to update your location. -

-You must have the [Geofency component](/components/geofency/) configured to use this device tracker. -

+Enabling this component will automatically enable the Geofency Device Tracker. + +## {% linkable_title Configuration %} + +To configure Geofency, you must set it up via the integrations panel in the configuration screen. You must then configure the iOS app (via the Webhook feature) to send a POST request to your Home Assistant server at the webhook URL provided by the integration during setup. Use the default POST format. Make sure to enable the 'Update Geo-Position' functionality for mobile beacons. Geofency will automatically generate the device tracker name used for geofences, and you will find it in `known_devices.yaml` after the first request. For beacons, the device name will be `beacon_`, e.g., `device_tracker.beacon_car`. -When you enter a geofence or stationary beacon, your location name in Home Assistant will be set to the name of the geofence or beacon location in Geofency. When you exit a geofence or stationary beacon, your location name in Home Assistant will be set to 'not home'. For mobile beacons, the location name will be 'not_home' whenever the beacon is entered or exited outside of a [zone](/components/zone/), otherwise, it will be set to the name of the zone. +When using mobile beacons (optional) an entry in `configuration.yaml` is still needed as this can't be added via the integrations panel. -To make Geofency work better with the [proximity](/components/proximity/) component, you should enable the 'Send Current Location' feature in the Webhook configuration screen. This ensures that the _current_ GPS coordinates are included in exit events instead of the coordinates of the (center of) the zone that was exited. +{% configuration %} +mobile_beacons: + description: List of beacon names that are to be treated as *mobile*. The name must match the name you configure in Geofency. By default, beacons will be treated as *stationary*. + required: false + type: list +{% endconfiguration %} + +A sample configuration for the `geofency` component when using mobile beacons is shown below: + +```yaml +# Example configuration.yaml entry +geofency: + mobile_beacons: + - car + - keys +``` + +### {% linkable_title Zones %} + +When you enter a geofence or stationary beacon, your location name in Home Assistant will be set to the name of the geofence or beacon location in Geofency. When you exit a geofence or stationary beacon, your location name in Home Assistant will be set to `not home`. For mobile beacons, the location name will be `not_home` whenever the beacon is entered or exited outside of a [zone](/components/zone/), otherwise, it will be set to the name of the zone. + +To make Geofency work better with the [proximity](/components/proximity/) component, you should enable the 'Send Current Location' feature in the Webhook configuration screen. This ensures that the _current_ GPS coordinates are included in exit events instead of the coordinates of the (center of) the zone that was exited. \ No newline at end of file diff --git a/source/_components/geofency.md b/source/_components/geofency.md deleted file mode 100644 index 17287b34be3..00000000000 --- a/source/_components/geofency.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -layout: page -title: "Geofency" -description: "Instructions for how to use Geofency to track devices in Home Assistant." -date: 2017-08-22 19:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: geofency.png -ha_category: Presence Detection -ha_release: 0.83 -ha_iot_class: Cloud Push ---- - -This component sets up integration with [Geofency](http://www.geofency.com/). Geofency is a [paid app](https://itunes.apple.com/app/id615538630) for iOS that lets users to configure a request that will be sent when a geofence or iBeacon region is entered or exited. This can be configured with Home Assistant to update your location. - -Enabling this component will automatically enable the [Geofency Device Tracker](/components/device_tracker.geofency/). - -To configure Geofency, you must set it up via the integrations panel in the configuration screen. You must then configure the iOS app (via the Webhook feature) to send a POST request to your Home Assistant server at the webhook URL provided by the integration during setup. Use the default POST format. Make sure to enable the 'Update Geo-Position' functionality for mobile beacons. - -When using mobile beacons (optional) an entry in `configuration.yaml` is still needed as this can't be added via the integrations panel. - -{% configuration %} -mobile_beacons: - description: List of beacon names that are to be treated as *mobile*. The name must match the name you configure in Geofency. By default, beacons will be treated as *stationary*. - required: false - type: list -{% endconfiguration %} - -A sample configuration for the `geofency` component when using mobile beacons is shown below: - -```yaml -# Example configuration.yaml entry -geofency: - mobile_beacons: - - car - - keys -``` diff --git a/source/_components/google_assistant.markdown b/source/_components/google_assistant.markdown index e9cc0c10d40..412eff60a5f 100644 --- a/source/_components/google_assistant.markdown +++ b/source/_components/google_assistant.markdown @@ -53,7 +53,7 @@ Since release 0.80, the `Authorization Code` type of `OAuth` account linking is

If you've added Home Assistant to the home screen, you have to first remove it from home screen, otherwise, this HTML5 app will show up instead of a browser. Using it would prevent Home Assistant to redirect back to the `Google Assistant` app. - + If you're still having trouble, make sure that you're not connected to the same network Home Assistant is running on, e.g., use 4G/LTE instead.

@@ -129,11 +129,11 @@ project_id: description: Project ID from the Actions on Google console (looks like `words-2ab12`) required: true type: string -allow_unlock: - description: "When True, allows Google Assistant to unlock locks." +secure_devices_pin: + description: "Pin code to say when you want to interact with a secure device." required: false - type: boolean - default: false + type: string + default: "" api_key: description: Your Homegraph API key (for the `google_assistant.request_sync` service) required: false @@ -199,8 +199,8 @@ Currently, the following domains are available to be used with Google Assistant, ### {% linkable_title Media Player Sources %} -Media Player sources are sent via the Modes trait in Google Assistant. -There is currently a limitation with this feature that requires a hard-coded set of settings. Because of this, the only sources that will be usable by this feature are listed here: +Media Player sources are sent via the Modes trait in Google Assistant. +There is currently a limitation with this feature that requires a hard-coded set of settings. Because of this, the only sources that will be usable by this feature are listed here: https://developers.google.com/actions/reference/smarthome/traits/modes #### Example Command: @@ -213,7 +213,7 @@ Entities that have not got rooms explicitly set and that have been placed in Hom ### {% linkable_title Climate Operation Modes %} -There is not an exact 1-1 match between Home Assistant and Google Assistant for the available operation modes. +There is not an exact 1-1 match between Home Assistant and Google Assistant for the available operation modes. Here are the modes that are currently available: - off @@ -235,6 +235,8 @@ The request_sync service may fail with a 404 if the project_id of the Homegraph 3. Enable Homegraph API to the new project. 4. Generate a new API key. 5. Again, create a new project in the [Actions on Google console](https://console.actions.google.com/). Described above. But at the step 'Build under the Actions SDK box' choose your newly created project. By this, they share the same `project_id`. + +Syncing may also fail after a period of time, likely around 30 days, due to the fact that your Actions on Google app is techincally in testing mode and has never been published. Eventually, it seems that the test expires. Control of devices will continue to work but syncing may not. If you say "Ok Google, sync my devices" and get the response "Unable to sync Home Assistant", this can usually be resolved by going back to your test app in the [Actions on Google console](https://console.actions.google.com/) and clicking `Simulator` under `TEST`. Regenerate the draft version Test App and try asking Google to sync your devices again. ### {% linkable_title Troubleshooting with NGINX %} diff --git a/source/_components/gpslogger.markdown b/source/_components/gpslogger.markdown index 594b404763c..8f4e5549ac0 100644 --- a/source/_components/gpslogger.markdown +++ b/source/_components/gpslogger.markdown @@ -1,6 +1,6 @@ --- layout: page -title: "GPSLogger Device Tracker" +title: "GPSLogger" description: "Instructions on how to use GPSLogger to track devices in Home Assistant." date: 2016-11-25 15:00 sidebar: true @@ -8,14 +8,73 @@ comments: false sharing: true footer: true logo: gpslogger.png -ha_category: Presence Detection +ha_category: + - Presence Detection ha_release: 0.34 +ha_iot_class: Cloud Push redirect_from: - /components/device_tracker.gpslogger/ --- -The `gpslogger` device tracker platform allows you to detect presence using [GPSLogger](http://code.mendhak.com/gpslogger/). +This component sets up integration with [GPSLogger](http://code.mendhak.com/gpslogger/). GPSLogger is an open source app for [Android](https://play.google.com/store/apps/details?id=com.mendhak.gpslogger) that allows users to set up a `POST` request to update GPS coordinates. This can be configured with Home Assistant to update your location. -

-You must have the [GPSLogger component](/components/gpslogger/) configured to use this device tracker. +Enabling this component will automatically enable the GPSLogger Device Tracker. + +## {% linkable_title Configuration %} + +To configure GPSLogger, you must set it up via the integrations panel in the configuration screen. This will give you the webhook URL to use during mobile device configuration (below). + +## {% linkable_title Setup on your smartphone %} + +Install [GPSLogger for Android](https://play.google.com/store/apps/details?id=com.mendhak.gpslogger) on your device. + +After the launch, go to **General Options**. Enable **Start on bootup** and **Start on app launch**. + +

+ + GPSLogger Settings

+ +Go to **Logging details** and disable **Log to GPX**, **Log to KML** and **Log to NMEA**. Enable **Log to custom URL**. + +

+ + Logging Details +

+ +Right after enabling, the app will take you to the **Log to custom URL** settings. + +

+ + Log to custom URL details +

+ +The relevant endpoint starts with: `/api/webhook/` and ends with a unique sequence of characters. This is provided by the integrations panel in the configuration screen (configured above). + +```text +https://YOUR.DNS.HOSTNAME:PORT/api/webhook/WEBHOOK_ID +``` + +- Add the above URL (updating YOUR.DNS.HOSTNAME:PORT to your details) into the **URL** field. +- It's HIGHLY recommended to use SSL/TLS. +- Use the domain that Home Assistant is available on the internet (or the public IP address if you have a static IP address). This can be a local IP address if you are using an always on VPN from your mobile device to your home network. +- Only remove `PORT` if your Home Assistant instance is using port 443. Otherwise set it to the port you're using. +- Add the following to **HTTP Body** +```text +latitude=%LAT&longitude=%LON&device=%SER&accuracy=%ACC&battery=%BATT&speed=%SPD&direction=%DIR&altitude=%ALT&provider=%PROV&activity=%ACT +``` +- You can change the `device_id` of your phone by replacing `&device=%SER` with `&device=SOME_DEVICE_ID`, otherwise your phone's serial number will be used. +- Check that the **HTTP Headers** setting contains +```text +Content-Type: application/x-www-form-urlencoded +``` +- Make sure that **HTTP Method** is changed to `POST` + +If your battery drains too fast then you can tune the performance of GPSLogger under **Performance** -> **Location providers** + +

+ + Performance +

+ +A request can be forced from the app to test if everything is working fine. A successful request will update the `known_devices.yaml` file with the device's serial number. diff --git a/source/_components/gpslogger.md b/source/_components/gpslogger.md deleted file mode 100644 index 36288143a7f..00000000000 --- a/source/_components/gpslogger.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -layout: page -title: "GPSLogger" -description: "Instructions on how to use GPSLogger to track devices in Home Assistant." -date: 2016-11-25 15:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: gpslogger.png -ha_category: Presence Detection -ha_release: 0.86 -ha_iot_class: Cloud Push ---- - -This component sets up integration with [GPSLogger](http://code.mendhak.com/gpslogger/). GPSLogger is an open source app for [Android](https://play.google.com/store/apps/details?id=com.mendhak.gpslogger) that allows users to set up a `POST` request to update GPS coordinates. This can be configured with Home Assistant to update your location. - -Enabling this component will automatically enable the [GPSLogger Device Tracker](/components/device_tracker.gpslogger/). - -## {% linkable_title Configuration %} - -To configure GPSLogger, you must set it up via the integrations panel in the configuration screen. This will give you the webhook URL to use during mobile device configuration (below). - -## {% linkable_title Setup on your smartphone %} - -Install [GPSLogger for Android](https://play.google.com/store/apps/details?id=com.mendhak.gpslogger) on your device. - -After the launch, go to **General Options**. Enable **Start on bootup** and **Start on app launch**. - -

- - GPSLogger Settings -

- -Go to **Logging details** and disable **Log to GPX**, **Log to KML** and **Log to NMEA**. Enable **Log to custom URL**. - -

- - Logging Details -

- -Right after enabling, the app will take you to the **Log to custom URL** settings. - -

- - Log to custom URL details -

- -The relevant endpoint starts with: `/api/webhook/` and ends with a unique sequence of characters. This is provided by the integrations panel in the configuration screen (configured above). - -```text -https://YOUR.DNS.HOSTNAME:PORT/api/webhook/WEBHOOK_ID -``` - -- Add the above URL (updating YOUR.DNS.HOSTNAME:PORT to your details) into the **URL** field. -- It's HIGHLY recommended to use SSL/TLS. -- Use the domain that Home Assistant is available on the internet (or the public IP address if you have a static IP address). This can be a local IP address if you are using an always on VPN from your mobile device to your home network. -- Only remove `PORT` if your Home Assistant instance is using port 443. Otherwise set it to the port you're using. -- Add the following to **HTTP Body** -```text -latitude=%LAT&longitude=%LON&device=%SER&accuracy=%ACC&battery=%BATT&speed=%SPD&direction=%DIR&altitude=%ALT&provider=%PROV&activity=%ACT -``` -- You can change the `device_id` of your phone by replacing `&device=%SER` with `&device=SOME_DEVICE_ID`, otherwise your phone's serial number will be used. -- Check that the **HTTP Headers** setting contains -```text -Content-Type: application/x-www-form-urlencoded -``` -- Make sure that **HTTP Method** is changed to `POST` - -If your battery drains too fast then you can tune the performance of GPSLogger under **Performance** -> **Location providers** - -

- - Performance -

- -A request can be forced from the app to test if everything is working fine. A successful request will update the `known_devices.yaml` file with the device's serial number. diff --git a/source/_components/nmbs.markdown b/source/_components/nmbs.markdown index b6989a34944..84b568a90c0 100644 --- a/source/_components/nmbs.markdown +++ b/source/_components/nmbs.markdown @@ -62,3 +62,8 @@ show_on_map: type: boolean default: false {% endconfiguration %} + +

+ +

Example using the Lovelace Attributes card

+

diff --git a/source/_components/openalpr_local.markdown b/source/_components/openalpr_local.markdown index d9800cae854..19005582ab0 100644 --- a/source/_components/openalpr_local.markdown +++ b/source/_components/openalpr_local.markdown @@ -53,9 +53,9 @@ $ wget -O- -q http://plates.openalpr.com/h786poj.jpg | alpr - ```yaml # Example configuration.yaml entry image_processing: - - platform: openalpr_local - region: eu - source: + - platform: openalpr_local + region: eu + source: - entity_id: camera.garage ``` diff --git a/source/_components/random.markdown b/source/_components/random.markdown index 9a89c098bc0..7ef5040dce2 100644 --- a/source/_components/random.markdown +++ b/source/_components/random.markdown @@ -1,24 +1,48 @@ --- layout: page -title: "Random Sensor" -description: "Instructions on how to integrate random number sensors into Home Assistant." +title: "Random" +description: "Instructions on how to integrate random numbers into Home Assistant." date: 2016-10-30 12:10 sidebar: true comments: false sharing: true footer: true logo: home-assistant.png -ha_category: Utility +ha_category: + - Utility + - Sensor + - Binary Sensor ha_iot_class: Local Polling ha_release: 0.32 ha_qa_scale: internal redirect_from: - - /components/sensor.random/ + - /components/sensor.random/ + - /components/binary_sensor.random/ --- -The `random` sensor platform is creating random sensor values (integers) out of a given range. Returned values form a [discrete uniform distribution](https://en.wikipedia.org/wiki/Discrete_uniform_distribution), meaning that each integer value in the range configured is equally likely to be drawn. This can be useful if you want to test automation rules. It generates a new value every time it is polled. +## {% linkable_title Binary Sensor %} -## {% linkable_title Configuration %} +The `random` binary sensor platform is creating random states (`true`, 1, `on` or `false`, 0, `off`). This can be useful if you want to test automation rules. It generates a new state every time it is polled. + +To enable the random binary sensor, add the following lines to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +binary_sensor: + - platform: random +``` + +{% configuration %} +name: + description: Name to use in the frontend. + required: false + type: string + default: Random Binary Sensor +{% endconfiguration %} + +## {% linkable_title Sensor %} + +The `random` sensor platform is creating random sensor values (integers) out of a given range. Returned values form a [discrete uniform distribution](https://en.wikipedia.org/wiki/Discrete_uniform_distribution), meaning that each integer value in the range configured is equally likely to be drawn. This can be useful if you want to test automation rules. It generates a new value every time it is polled. To enable the random sensor, add the following lines to your `configuration.yaml` file: @@ -48,4 +72,4 @@ unit_of_measurement: description: Defines the units of measurement of the sensor, if any. required: false type: string -{% endconfiguration %} +{% endconfiguration %} \ No newline at end of file diff --git a/source/_components/samsungtv.markdown b/source/_components/samsungtv.markdown index ac346f14df4..3d1e6aa2586 100644 --- a/source/_components/samsungtv.markdown +++ b/source/_components/samsungtv.markdown @@ -112,6 +112,7 @@ Currently tested but not working models: - JU6800 - Unable to see state and unable to control - JU7000 - Unable to see state and unable to control (but port 8001 *is* open) - JU7500 - Unable to see state and unable to control +- MU6125 - Unable to see state and unable to control (Tested on UE58MU6125 on port 8001 and 8801) - MU6300 - Port set to 8001, `pip3 install websocket-client` must be executed, turning on works, status not working reliably, turning off is not permanent (it comes back on) None of the 2014 (H) and 2015 (J) model series (e.g., J5200) will work, diff --git a/source/_components/template.markdown b/source/_components/template.markdown index 5d6c2ff2a8f..564fe2cb061 100644 --- a/source/_components/template.markdown +++ b/source/_components/template.markdown @@ -260,13 +260,13 @@ This template contains no entities that will trigger an update, so we add an `en {% raw %} ```yaml sensor: -- platform: template - sensors: - nonsmoker: - value_template: '{{ (( as_timestamp(now()) - as_timestamp(strptime("06.07.2018", "%d.%m.%Y")) ) / 86400 ) | round(2) }}' - entity_id: sensor.date - friendly_name: 'Not smoking' - unit_of_measurement: "Days" + - platform: template + sensors: + nonsmoker: + value_template: '{{ (( as_timestamp(now()) - as_timestamp(strptime("06.07.2018", "%d.%m.%Y")) ) / 86400 ) | round(2) }}' + entity_id: sensor.date + friendly_name: 'Not smoking' + unit_of_measurement: "Days" ``` {% endraw %} @@ -277,13 +277,13 @@ An alternative to this is to create an interval-based automation that calls the {% raw %} ```yaml sensor: -- platform: template - sensors: - nonsmoker: - value_template: '{{ (( as_timestamp(now()) - as_timestamp(strptime("06.07.2018", "%d.%m.%Y")) ) / 86400 ) | round(2) }}' - entity_id: [] - friendly_name: 'Not smoking' - unit_of_measurement: "Days" + - platform: template + sensors: + nonsmoker: + value_template: '{{ (( as_timestamp(now()) - as_timestamp(strptime("06.07.2018", "%d.%m.%Y")) ) / 86400 ) | round(2) }}' + entity_id: [] + friendly_name: 'Not smoking' + unit_of_measurement: "Days" automation: - alias: 'nonsmoker_update' diff --git a/source/_components/yeelight.markdown b/source/_components/yeelight.markdown index b76b3148fb5..9a04f4be256 100644 --- a/source/_components/yeelight.markdown +++ b/source/_components/yeelight.markdown @@ -27,7 +27,7 @@ After the lights are connected to the WiFi network and have been detected in Hom ```yaml # Example customize.yaml entry -light.yeelight_rgb_XXXXXXXXXXXX: +light.yeelight_color1_XXXXXXXXXXXX: friendly_name: Living Room light.yeelight_color2_XXXXXXXXXXXX: friendly_name: Downstairs Toilet diff --git a/source/_components/zha.markdown b/source/_components/zha.markdown index 0d27ff75ff9..79df7194824 100644 --- a/source/_components/zha.markdown +++ b/source/_components/zha.markdown @@ -9,6 +9,7 @@ sharing: true footer: true logo: zigbee.png ha_category: + - Hub - Binary Sensor - Fan - Light @@ -16,6 +17,7 @@ ha_category: - Switch ha_release: 0.44 ha_iot_class: Local Polling +featured: true redirect_from: - /components/binary_sensor.zha/ - /components/fan.zha/ diff --git a/source/_docs/configuration/customizing-devices.markdown b/source/_docs/configuration/customizing-devices.markdown index 0ef2263845c..22215e1dda4 100644 --- a/source/_docs/configuration/customizing-devices.markdown +++ b/source/_docs/configuration/customizing-devices.markdown @@ -58,7 +58,7 @@ entity_picture: required: false type: string icon: - description: Any icon from [MaterialDesignIcons.com](http://MaterialDesignIcons.com) ([Cheatsheet](https://materialdesignicons.com/cheatsheet)). Prefix name with `mdi:`, ie `mdi:home`. + description: Any icon from [MaterialDesignIcons.com](http://MaterialDesignIcons.com) ([Cheatsheet](https://cdn.materialdesignicons.com/3.5.95/)). Prefix name with `mdi:`, ie `mdi:home`. required: false type: string assumed_state: diff --git a/source/_includes/asides/getting_started_navigation.html b/source/_includes/asides/getting_started_navigation.html index 9d41bb402b1..771a222c91b 100644 --- a/source/_includes/asides/getting_started_navigation.html +++ b/source/_includes/asides/getting_started_navigation.html @@ -2,14 +2,14 @@ {% include edit_github.html %}
-

Getting Started Guide

+

Getting Started

diff --git a/source/_posts/2019-04-24-release-92.markdown b/source/_posts/2019-04-24-release-92.markdown new file mode 100644 index 00000000000..d791b5ae2da --- /dev/null +++ b/source/_posts/2019-04-24-release-92.markdown @@ -0,0 +1,995 @@ +--- +layout: post +title: "0.92: HEOS, Somfy MyLink, Genius Hub" +description: "Get your whole home audio " +date: 2019-04-24 00:11:03 +date_formatted: "April 24, 2019" +author: Paulus Schoutsen +author_twitter: balloob +comments: true +categories: Release-Notes +og_image: /images/blog/2019-04-release-92/components.png +--- + + + +It's time for the 0.92 release. We took a week extra for this release, because we have been very busy in changing how we load everything under the hood. Our new standard for integrations will help us in the future to streamline development, release notes, documentation and updates. If you want to know what we're up to, or if you maintain custom components, check out our developer blog: [Introducing integrations](https://developers.home-assistant.io/blog/2019/04/12/new-integration-structure.html). + +## {% linkable_title Lovelace streams cameras! %} + +This release continues to improve on our new camera streaming feature released with Home Assistant 0.90. This release adds support to Lovelace to show camera streams as part of your cards. Support has been aded to picture glance, picture entity and picture element cards. Just add `camera_view: live` to the configuration. Be careful showing live streams on mobile, camera streams can use a lot of data. We are exploring being able to add a mode to only show the streams on desktop. + +## {% linkable_title HEOS integration %} + +The HEOS integration adds support for HEOS capable products, such as speakers, amps, and receivers (Denon and Marantz) into Home Assistant. The features include controlling players, viewing playing media info, selecting the source from physical inputs and HEOS favorites, and more. We have established a relationship with the lead architect for the HEOS API and look forward to adding more features through this collaboration. Thanks to [@easink] for the initial contribution. + +Finally, if you are still receiving a message that your configuration contains extra keys, this is the last release that this will be a warning. In the next release this will treated as invalid config for that integration. + +## {% linkable_title New Integrations %} + +- Add HEOS media player component ([@easink], [@andrewsayre] - [#21721], [#23222], [#22517], [#22554], [#22592], [#22652], [#22903], [#22913], [#23063], [#23222]) +- Add N26 component ([@markusressel] - [#22684]) ([n26 docs]) (new-integration) (new-platform) +- Add Somfy MyLink support for Covers ([@bendews] - [#22514]) ([somfy_mylink docs]) (new-integration) (new-platform) +- Instituto Geográfico Nacional Sismología (Earthquakes) Feed platform ([@exxamalte] - [#22696]) ([ign_sismologia docs]) (new-integration) (new-platform) +- Genius hub ([@GeoffAtHome] - [#21598]) ([geniushub docs]) (new-platform) +- Add support for Stiebel Eltron heat pumps ([@fucm] - [#21199]) ([stiebel_eltron docs]) (new-platform) + +## {% linkable_title New Platforms %} + +- Add LCN binary_sensor component ([@alengwenus] - [#22341]) ([lcn docs]) (new-platform) +- Ampio Smog Air Quality Sensor ([@kstaniek] - [#21152]) ([air_quality docs]) (new-platform) +- Rebrand Cisco Spark notify to be Cisco Webex Teams ([@fbradyirl] - [#21938]) ([cisco_webex_teams docs]) (new-platform) +- Add N26 component ([@markusressel] - [#22684]) ([n26 docs]) (new-integration) (new-platform) +- Add OASA Telematics greek public transport sensor component ([@panosmz] - [#22196]) ([oasa_telematics docs]) (new-platform) +- Initial Fibaro HC Climate support ([@pbalogh77] - [#20256]) ([fibaro docs]) (new-platform) +- Camera component for BOM integration ([@maddenp] - [#22816]) ([bom docs]) (new-platform) +- Add amcrest binary_sensors ([@pnbruckner] - [#22703]) ([amcrest docs]) (new-platform) +- Binary sensors for netgear_lte ([@amelchio] - [#22902]) ([netgear_lte docs]) (new-platform) +- Add ESPHome climate support ([@OttoWinter] - [#22859]) ([esphome docs]) (new-platform) +- Add Satel_integra switchable outputs and multiple partitions ([@c-soft] - [#21992]) ([satel_integra docs]) (breaking change) (new-platform) +- Add basic Supla cover support ([@mwegrzynek] - [#22133]) ([supla docs]) (new-platform) +- Added epson workforce component ([@ThaStealth] - [#23144]) ([epsonworkforce docs]) (new-platform) +- Add basic support for native Hue sensors ([@mitchellrj] - [#22598]) ([hue docs]) (beta fix) (new-platform) + +## {% linkable_title If you need help... %} + +...don't hesitate to use our very active [forums](https://community.home-assistant.io/) or join us for a little [chat](https://discord.gg/c5DvZ4e). The release notes have comments enabled but it's preferred if you use the former communication channels. Thanks. + +## {% linkable_title Reporting Issues %} + +Experiencing issues introduced by this release? Please report them in our [issue tracker](https://github.com/home-assistant/home-assistant/issues). Make sure to fill in all fields of the issue template. + + + +## {% linkable_title Breaking Changes %} + +- __Google Assistant__ - You will now have to say a pin code before being able to control locks, doors and garage doors. You can set this pin in configuration -> cloud or, for manual installs, add `secure_devices_pin` to your config. ([@balloob] - [#23223]) ([cloud docs]) ([google_assistant docs]) (breaking change) (beta fix) +- __Google Assistant__ - Migrate light setting trait to use HSV color spectrum. If you have lights with colors, please run a Google Assistant SYNC after you update to this version. It will result in improved color representation. ([@balloob] - [#22980]) ([google_assistant docs]) +- __Lightwave__ - Lightwave configuration was not properly validated before but it is now. This can cause invalid configurations to finally be flagged as such. ([@amelchio] - [#22576]) ([lightwave docs]) +- __Amcrest__ - Remove Build Date, Version and Serial Number attributes from sensors. These values do not change during the life of the device and are not appropriate for state attributes. ([@pnbruckner] - [#22418]) ([amcrest docs]) +- __Insteon__ - Placeholders that forwarded users from insteon_plm and insteon_local to insteon component have been removed. ([@balloob] - [#22710]) +- __Logi Circle__ - This is a breaking change to the Logi Circle integration which migrates from Logitech's private API to their public API. + * Authentication with Logi Circle's API is now performed using an authorization code grant, and is managed by the Integrations page. It's no longer possible to authenticate with a username and password directly. Please remove any existing configuration for the logi_circle integration and follow the directions here to configure the logi_circle integration with at least a client_id, client_secret, api_key and redirect_uri. + * Logi Circle camera and sensor entities are now auto-discovered once the integration is authenticated. Users should remove the logi_circle integration from camera and sensor platforms as this is no longer supported. + * Logi Circle services have been moved from the camera domain to the logi_circle domain + + Please check the documentation for further details. ([@evanjd] - [#20624]) ([logi_circle docs]) +- __Introduction__ - The introduction integration has been removed. It used to be part of the initially created configuration but no longer served a purpose. ([@balloob] - [#22944]) ([introduction docs]) +- __media_player__ - The `media_player` component will now guard against calling services that are not supported by the entity. This means that if you attempt to invoke `media_player.turn_on`, but the entity does not indicate it can be turned on through `supported_features`, the service will not be called and will not log any message. This is a breaking change as in the past it would have called the `turn_on` implementation. There may be platforms that do not properly set `supported_features` which may result in service calls not being invoked where they would have previously.([@andrewsayre] - [#22878]) ([media_player docs]) +- __Load requirements and dependencies from manifests__ - Developers - Setup entity platform will set up its component now despite DEPENDENCIES. ([@rohankapoorcom] - [#22717]) +- __Satel Integra__ - The component now supports multiple partitions and this required a configuration change. Instead of a single parameters partition and `single_home_mode` there are now section partitions. Please see the documentation for further details. ([@c-soft] - [#21992]) ([satel_integra docs]) (new-platform) +- __MQTT__ - MQTT discovery will not longer implicitly set `state_topic` except for `mqtt.alarm_control_panel`, `mqtt.binary_sensor` and `mqtt.sensor`. ([@emontnemery] - [#22998]) ([mqtt docs]) +- __Android TV__ - This will change the `unique_id` used to identify Android TV devices. As a result, users may find that the entity ID's of their `androidtv` media players have changed. This can be resolved by going to Configuration > Entity Registry and deleting those entries, then restarting HA. (Note: Fire TV devices are not affected.)([@JeffLIrion] - [#22996]) ([androidtv docs]) +- __Google TTS__ - The `google tts` platform has changed to `google_translate`. Default configs will be migrated to the new platform during 0.92 startup. A manual update will be required if the user has changed default tts or is loading the tts configuration from another location. ([@awarecan] - [#23090]) ([google docs]) ([google_translate docs]) ([tts docs]) (new-integration) +- __Fibaro__ - There was a potential unique ID collision which caused problems for some users, as scenes and devices were enumerated separately, so the same ID could be assigned if they were unnamed. The unique ID generation has been changed to avoid this, which is a breaking change with regard to scenes. ([@pbalogh77] - [#22987]) ([fibaro docs]) + +## {% linkable_title Beta Fixes %} + +- Kill bluetooth LE scanning gracefully when asked to shut down. ([@mitchellrj] - [#22586]) ([bluetooth_le_tracker docs]) (beta fix) +- Add basic support for native Hue sensors ([@mitchellrj] - [#22598]) ([hue docs]) (beta fix) (new-platform) +- Google assistant skip missing type ([@elupus] - [#23174]) ([google_assistant docs]) (beta fix) +- Fix empty components ([@balloob] - [#23177]) (beta fix) +- Don't warn for missing services ([@balloob] - [#23182]) (beta fix) +- Improve configuration schema for Geniushub integration ([@zxdavb] - [#23155]) ([geniushub docs]) (beta fix) +- Fix niko home control dependency installation ([@NoUseFreak] - [#23176]) ([niko_home_control docs]) (beta fix) +- Hass.io Add-on panel support for Ingress ([@pvizeli] - [#23185]) ([hassio docs]) (beta fix) +- Hue motion senors are motion sensors, not presence sensors. ([@mitchellrj] - [#23193]) ([hue docs]) (beta fix) +- Don't load component when fetching translations ([@balloob] - [#23196]) (beta fix) +- Create empty services.yaml for esphome ([@OttoWinter] - [#23200]) (beta fix) +- Create services.yaml for python_script and script ([@arsaboo] - [#23201]) ([python_script docs]) ([script docs]) (beta fix) +- Set encoding before connecting ([@robbiet480] - [#23204]) ([mikrotik docs]) (beta fix) +- Add services.yaml validator ([@balloob] - [#23205]) (beta fix) +- Fix clearing error message for MQTT vacuum ([@emontnemery] - [#23206]) ([mqtt docs]) (beta fix) +- Name sensors correctly ([@mitchellrj] - [#23208]) ([hue docs]) (beta fix) +- Create services.yaml for Tuya ([@arsaboo] - [#23209]) (beta fix) +- create services.yaml for shell_command ([@arsaboo] - [#23210]) (beta fix) +- Add stub services.yaml and make validation mandatory ([@balloob] - [#23213]) (beta fix) +- update zha-quirks ([@dmulcahey] - [#23215]) ([zha docs]) (beta fix) +- fix bindable devices ([@dmulcahey] - [#23216]) ([zha docs]) (beta fix) +- Add missing services.yaml file for hue ([@cgtobi] - [#23217]) (beta fix) +- Ask users for a pin when interacting with locks/garage doors ([@balloob] - [#23223]) ([cloud docs]) ([google_assistant docs]) (breaking change) (beta fix) +- Async fix for bluetooth stopping ([@balloob] - [#23225]) ([bluetooth_le_tracker docs]) (beta fix) +- Return 0 instead of None ([@andrewsayre] - [#23261]) ([plex docs]) (beta fix) +- Update pyheos and log service errors in HEOS integration ([@andrewsayre] - [#23222]) ([heos docs]) (beta fix) +- Fix ESPHome setup errors in beta ([@OttoWinter] - [#23242]) ([esphome docs]) (beta fix) +- Bump zigpy-deconz ([@damarco] - [#23270]) ([zha docs]) (beta fix) +- Bump zigpy and zigpy-xbee ([@damarco] - [#23275]) ([zha docs]) (beta fix) +- Show correct version for stable ([@ludeeus] - [#23291]) ([version docs]) (beta fix) +- Bump skybellpy to 0.4.0 ([@austinmroczek] - [#23294]) ([skybell docs]) (beta fix) +- Create services.yaml for input_datetime ([@VDRainer] - [#23303]) (beta fix) +- Correct calculation and units of light level values. ([@mitchellrj] - [#23309]) ([hue docs]) (beta fix) +- Fix hass.io panel_custom/frontend ([@pvizeli] - [#23313]) ([hassio docs]) (beta fix) +- Dont cache integrations that are not found ([@balloob] - [#23316]) (beta fix) +- Expose door cover/binary_sensor as door type ([@elupus] - [#23307]) ([google_assistant docs]) (beta fix) +- Zestimate - Added check for the existence of data in response ([@dreed47] - [#23310]) ([zestimate docs]) (beta fix) +- Always set latest pin ([@balloob] - [#23328]) ([cloud docs]) (beta fix) +- Add sensor and binary senseor to default expose ([@balloob] - [#23332]) ([google_assistant docs]) (beta fix) +- Support unicode in configuration migration ([@awarecan] - [#23335]) (beta fix) +- Remove ghost folder ([@awarecan] - [#23350]) ([aws_lambda docs]) ([aws_sns docs]) ([aws_sqs docs]) (beta fix) + +## {% linkable_title All changes %} + +- Add LCN binary_sensor component ([@alengwenus] - [#22341]) ([lcn docs]) (new-platform) +- Add HEOS media player component ([@easink] - [#21721]) +- Add google calendar max_results config option ([@yosilevy] - [#21874]) ([google docs]) +- Fix .coveragerc from merge/rebase ([@andrewsayre] - [#22516]) +- Speed up status updating in SimpliSafe ([@bachya] - [#22506]) ([simplisafe docs]) +- Axis component reflect device availability ([@Kane610] - [#22401]) ([axis docs]) +- throw `PlatformNotReady` if unable to connect ([@aav7fl] - [#22515]) ([androidtv docs]) +- Ring camera improvements ([@Yarikx] - [#22526]) ([ring docs]) +- upgrade pylinky to 0.3.3 ([@royto] - [#22544]) ([linky docs]) +- Move core services.yaml file to Home Assistant integration ([@balloob] - [#22489]) +- Change HEOS component library and add basic config flow ([@andrewsayre] - [#22517]) ([heos docs]) +- Add command_template and value_template for MQTT alarm ([@JumpMaster] - [#21438]) ([mqtt docs]) +- Add table with netgear_lte sensor units ([@amelchio] - [#22508]) ([netgear_lte docs]) +- Add more HomeKit device enumeration tests ([@Jc2k] - [#22194]) +- Added support for transitions for nanoleaf light ([@Oro] - [#22192]) ([nanoleaf docs]) +- Add Heos config flow ([@andrewsayre] - [#22554]) ([heos docs]) +- Improve handling of audio groups ([@emontnemery] - [#22396]) ([cast docs]) +- Prevent toogle to false at restart of ADS platforms ([@carstenschroeder] - [#22522]) ([ads docs]) +- Ampio Smog Air Quality Sensor ([@kstaniek] - [#21152]) ([air_quality docs]) (new-platform) +- Bump pyloopenergy library to 0.1.2 ([@pavoni] - [#22561]) ([loopenergy docs]) +- Forward media control to playing group ([@emontnemery] - [#22566]) ([cast docs]) +- Turn light off if brightness is 0 ([@emontnemery] - [#22400]) ([light docs]) +- Ignore flaky test ([@awarecan] - [#22563]) +- Fix typo in light/__init__.py ([@OleksandrBerchenko] - [#22581]) ([light docs]) +- Fix lightwave config validation ([@amelchio] - [#22576]) ([lightwave docs]) (breaking change) +- Rewrite Osram Lightify component ([@OleksandrBerchenko] - [#22184]) ([osramlightify docs]) +- Clean up homematicip cloud ([@SukramJ] - [#22589]) ([homematicip_cloud docs]) +- Retrying connecting Influxdb at setup ([@scornelissen85] - [#22567]) ([influxdb docs]) +- Fix gtfs typing and logger issues ([@renemarc] - [#22572]) ([gtfs docs]) +- Add permission checking to all RainMachine services ([@bachya] - [#22399]) ([rainmachine docs]) +- Refactor of ADS integration and introduce ADSEntity ([@carstenschroeder] - [#22583]) ([ads docs]) +- Fixed brightness reducing after each light change ([@N1nja98] - [#22606]) ([zengge docs]) +- Add netgear_lte connection sensors ([@amelchio] - [#22558]) ([netgear_lte docs]) +- Only allow admins to enable remote connection ([@balloob] - [#22609]) ([cloud docs]) +- Cloudhooks for webhook config flows ([@balloob] - [#22611]) ([dialogflow docs]) ([geofency docs]) ([gpslogger docs]) ([ifttt docs]) ([locative docs]) ([mailgun docs]) ([twilio docs]) +- Add source selection to Heos component ([@andrewsayre] - [#22592]) ([heos docs]) +- Make platform setup a coroutine ([@fredrike] - [#22620]) ([daikin docs]) ([tellduslive docs]) +- Trend binary sensor check for state unavailable ([@VDRainer] - [#22621]) ([trend docs]) +- Fix xiaomi vacuum resume functionality ([@aprosvetova] - [#22626]) ([xiaomi_miio docs]) +- Fix GTFS variable type mismatch ([@renemarc] - [#22624]) ([gtfs docs]) +- Add support for Dyson Purecool 2018 Air Purifiers models TP04 and DP04 ([@etheralm] - [#22215]) ([dyson docs]) +- Amcrest: Add on/off support & attributes. Bump amcrest to 1.3.0 ([@pnbruckner] - [#22418]) ([amcrest docs]) (breaking change) +- change library to georss_generic_client ([@exxamalte] - [#22615]) ([geo_rss_events docs]) +- Add codecov ([@awarecan] - [#22649]) +- Qwikswitch fix listen loop ([@kellerza] - [#22600]) ([qwikswitch docs]) +- Improve evohome exception handling and fix bugs ([@zxdavb] - [#22140]) ([evohome docs]) ([honeywell docs]) +- Don't force updates on ZHA Electrical Measurement sensor. ([@Adminiuga] - [#22647]) ([zha docs]) +- Fix pytest durations parameter ([@cgtobi] - [#22658]) +- Admin service to automatically add empty schema ([@balloob] - [#22637]) ([cloud docs]) +- Ignore code coverages for component without test ([@awarecan] - [#22653]) +- Add battery sensor to Homematic IP ([@SukramJ] - [#22630]) ([homematicip_cloud docs]) +- Axis discovery updates host address ([@Kane610] - [#22632]) ([axis docs]) +- Add missing properties and scenes support to Osram Lightify ([@OleksandrBerchenko] - [#22597]) ([osramlightify docs]) +- Add color support to emulated hue ([@techfreek] - [#19590]) ([emulated_hue docs]) +- Add discovery support to HEOS component ([@andrewsayre] - [#22652]) ([discovery docs]) ([heos docs]) +- Person schema for merge_packages #21307 ([@kellerza] - [#21703]) ([person docs]) +- Cast: Fix next/previous track ([@emontnemery] - [#22634]) ([cast docs]) +- Fix regression from PR #22396 ([@emontnemery] - [#22661]) ([cast docs]) +- Person tests - split from #21703 ([@kellerza] - [#22663]) +- Rebrand Cisco Spark notify to be Cisco Webex Teams ([@fbradyirl] - [#21938]) ([cisco_webex_teams docs]) (new-platform) +- Update uvloop to 0.12.2 ([@pvizeli] - [#22681]) +- Shutdown ZHAGateway on hass closing. ([@Adminiuga] - [#22646]) ([zha docs]) +- Clean up docstrings ([@cgtobi] - [#22679]) +- Fix trend binary sensor and tests ([@awarecan] - [#22686]) ([trend docs]) +- Fix citybikes ([@MartinHjelmare] - [#22683]) ([citybikes docs]) +- Google Assistant: Add support for open/close binary sensors ([@balloob] - [#22674]) ([binary_sensor docs]) ([google_assistant docs]) +- Update light/services.yaml ([@emontnemery] - [#22662]) +- Fix connection loss issues for Harmony ([@ehendrix23] - [#22687]) ([harmony docs]) +- Remove aws_* notify platforms ([@awarecan] - [#22698]) ([aws_lambda docs]) ([aws_sns docs]) ([aws_sqs docs]) +- Add manifests ([@balloob] - [#22699]) +- Add a .codecov.yml to control coverage statuses and enable notifications ([@robbiet480] - [#22707]) +- Raise ConfigEntryNotReady for MQTT connection exception ([@aav7fl] - [#22540]) +- Add device_class_power to sensor ([@SukramJ] - [#22691]) ([homematicip_cloud docs]) ([sensor docs]) +- Remove all config deprecations invalidated in 0.91 ([@rohankapoorcom] - [#22704]) +- Validate manifests in CI ([@balloob] - [#22708]) +- Generate codeowners based on manifests ([@balloob] - [#22705]) +- Remove deprecated Insteon components ([@balloob] - [#22710]) (breaking change) +- Allow users to set encoding of mikrotik connection ([@robbiet480] - [#22715]) ([mikrotik docs]) +- Only post coverage comment if coverage changes ([@MartinHjelmare] - [#22721]) +- Add 10 additional language options to DarkSky ([@VirtualL] - [#22719]) ([darksky docs]) +- Add N26 component ([@markusressel] - [#22684]) ([n26 docs]) (new-integration) (new-platform) +- Bump pywebpush to latest 1.9.2 ([@perosb] - [#22737]) ([html5 docs]) +- Support multiple deCONZ gateways ([@Kane610] - [#22449]) ([deconz docs]) +- add device class signal strength ([@SukramJ] - [#22738]) ([sensor docs]) +- Update PR template requirements to point to the manifest ([@rohankapoorcom] - [#22751]) +- Generate requirements_* from manifests ([@rohankapoorcom] - [#22718]) +- Add deprecation warning to embedded broker ([@emontnemery] - [#22753]) ([mqtt docs]) +- fix flaky test ([@hunterjm] - [#22748]) +- Improve exception handling in ADS integration ([@carstenschroeder] - [#22627]) ([ads docs]) +- Add google hangouts manual authentication option ([@teliov] - [#22158]) ([hangouts docs]) +- Axis - support stream ([@Kane610] - [#22593]) ([axis docs]) +- update core dependencies due to pywebpush update ([@perosb] - [#22767]) +- deCONZ multiple gateways fixup ([@Kane610] - [#22774]) ([deconz docs]) +- Update homeassistant-pyozw 0.1.4 ([@pvizeli] - [#22794]) ([zwave docs]) +- Add OASA Telematics greek public transport sensor component ([@panosmz] - [#22196]) ([oasa_telematics docs]) (new-platform) +- Remove pycryptodome requirement for Android TV ([@JeffLIrion] - [#22552]) ([androidtv docs]) +- Update version of python_awair to 0.0.4 ([@ahayworth] - [#22809]) ([awair docs]) +- Remove unused group status ([@emontnemery] - [#22791]) ([cast docs]) +- Raise severity of MQTT callback deprecation warning ([@emontnemery] - [#22792]) ([mqtt docs]) +- Bump raincloud dependency to fix broken integration: Fixes #22422 ([@vanstinator] - [#22805]) ([raincloud docs]) +- Add HmIP-SMO to Homematic IP ([@SukramJ] - [#22802]) ([homematicip_cloud docs]) +- Sort configuration schema. ([@emontnemery] - [#22835]) ([mqtt docs]) +- Use dict[key] for required config keys and keys with default values. ([@emontnemery] - [#22831]) ([mqtt docs]) +- Optimize yeelight signal handling ([@zewelor] - [#22806]) ([yeelight docs]) +- Use dict[key] for required config keys and keys with default values. ([@emontnemery] - [#22828]) ([mqtt docs]) +- Use dict[key] for required config keys and keys with default values. ([@emontnemery] - [#22833]) ([mqtt docs]) +- Use dict[key] for required config keys and keys with default values. ([@emontnemery] - [#22836]) ([mqtt docs]) +- Use dict[key] for required config keys and keys with default values. ([@emontnemery] - [#22837]) ([mqtt docs]) +- Use dict[key] for required config keys and keys with default values. ([@emontnemery] - [#22838]) ([mqtt docs]) +- Use dict[key] for required config keys and keys with default values. ([@emontnemery] - [#22829]) ([mqtt docs]) +- Use dict[key] for required config keys and keys with default values. ([@emontnemery] - [#22830]) ([mqtt docs]) +- Fix glances docker container errors ([@roblandry] - [#22846]) ([glances docs]) +- Fix flaky test ([@awarecan] - [#22850]) +- Bump aioambient to 0.3.0 ([@bachya] - [#22855]) ([ambient_station docs]) +- get temp and color for light during init and poll ([@dmulcahey] - [#22847]) ([zha docs]) +- Fix manifest codeowners ([@cdce8p] - [#22871]) ([cover docs]) ([demo docs]) +- Added REQUIREMENTS back to Ambient ([@bachya] - [#22875]) ([ambient_station docs]) +- Minor sensor fixes ([@robbiet480] - [#22884]) ([mobile_app docs]) +- add myself as codeowner ([@fbradyirl] - [#22885]) ([cisco_ios docs]) ([cisco_mobility_express docs]) ([cisco_webex_teams docs]) ([ciscospark docs]) ([enigma2 docs]) ([hikvisioncam docs]) ([luci docs]) +- Bump pypi module version for enigma2 ([@fbradyirl] - [#22886]) +- Add zwave network key validator ([@cgtobi] - [#22785]) ([zwave docs]) +- force_update=False (not None) ([@akasma74] - [#22867]) ([rflink docs]) +- Stream support for Doorbird component ([@oblogic7] - [#22876]) ([doorbird docs]) +- Add MQTT climate two-point target temperature support ([@OttoWinter] - [#22860]) ([mqtt docs]) +- Update harmony manifest to match REQUIREMENTS in module ([@rohankapoorcom] - [#22826]) ([harmony docs]) +- Add ESPHome Cover position/tilt support ([@OttoWinter] - [#22858]) ([esphome docs]) +- Use dict[key] for required config keys and keys with default values. ([@emontnemery] - [#22832]) ([mqtt docs]) +- fix aiohttp ServerDisconnectedError in Daikin ([@fredrike] - [#22880]) ([daikin docs]) +- Fix Sonos handling of unsupported favorites ([@amelchio] - [#22906]) ([sonos docs]) +- Fix HEOS discovery could result in multiple config entries ([@andrewsayre] - [#22903]) ([heos docs]) +- Initial Fibaro HC Climate support ([@pbalogh77] - [#20256]) ([fibaro docs]) (new-platform) +- Test fixes ([@balloob] - [#22911]) +- Stream Timestamp Fixes ([@hunterjm] - [#22912]) ([stream docs]) +- Add Somfy MyLink support for Covers ([@bendews] - [#22514]) ([somfy_mylink docs]) (new-integration) (new-platform) +- Fix ZHA Light color conversion. ([@Adminiuga] - [#22909]) ([zha docs]) +- Added features to Concord232 Alarm Panel ([@AZDane] - [#22892]) ([concord232 docs]) +- Camera component for BOM integration ([@maddenp] - [#22816]) ([bom docs]) (new-platform) +- Add 'Assumed State' property to Somfy MyLink covers ([@bendews] - [#22922]) ([somfy_mylink docs]) +- Logi Circle public API refactor and config flow ([@evanjd] - [#20624]) ([logi_circle docs]) (breaking change) +- Add amcrest binary_sensors ([@pnbruckner] - [#22703]) ([amcrest docs]) (new-platform) +- Add support for when device is not logged in to HEOS ([@andrewsayre] - [#22913]) ([heos docs]) +- Test for circular dependencies using manifests ([@balloob] - [#22908]) +- bump raincloudy to 0.0.7 ([@vanstinator] - [#22935]) ([raincloud docs]) +- Binary sensors for netgear_lte ([@amelchio] - [#22902]) ([netgear_lte docs]) (new-platform) +- Cherry pick test fix ([@awarecan] - [#22939]) +- Hide unsupported Sonos favorites ([@amelchio] - [#22940]) ([sonos docs]) +- Add linked battery sensor to HomeKit ([@adrum] - [#22788]) ([homekit docs]) +- Remove introduction component ([@balloob] - [#22944]) ([introduction docs]) (breaking change) +- Fix broken platform components ([@balloob] - [#22943]) ([automation docs]) ([mqtt docs]) ([telegram_bot docs]) +- Add color setting trait ([@balloob] - [#22894]) ([google_assistant docs]) +- Fix HomeKit fan speed conversion ([@cdce8p] - [#22951]) ([homekit docs]) +- Add sms_total sensor to netgear_lte ([@amelchio] - [#22954]) ([netgear_lte docs]) +- Use ConfigEntryNotReady when setting up Daikin ([@fredrike] - [#22901]) ([daikin docs]) +- Add functionality to the version sensor ([@mgiako] - [#22896]) ([version docs]) +- Use dict[key] for required config keys and keys with default values of MQTT light ([@emontnemery] - [#22834]) ([mqtt docs]) +- Upgrade pytest to 4.4.0 ([@scop] - [#22822]) +- Uprade asynctest to 0.12.3 ([@scop] - [#22824]) +- Upgrade Sphinx to 2.0.1 ([@fabaff] - [#22960]) +- Upgrade youtube_dl to 2019.04.07 ([@fabaff] - [#22961]) ([media_extractor docs]) +- Update ordering ([@fabaff] - [#22963]) ([luci docs]) +- Add missing attribution ([@fabaff] - [#22964]) ([london_underground docs]) +- Upgrade ruamel.yaml to 0.15.91 ([@fabaff] - [#22965]) +- Set pytz>=2019.01 ([@fabaff] - [#22966]) +- Check for supported features in media_player services ([@andrewsayre] - [#22878]) ([media_player docs]) (breaking change) +- Add ESPHome climate support ([@OttoWinter] - [#22859]) ([esphome docs]) (new-platform) +- Fix deCONZ change entity_id bug ([@Kane610] - [#22974]) ([deconz docs]) +- Fix optimistic mode and add tests ([@emontnemery] - [#22899]) ([mqtt docs]) +- Fix myq increasing number of network connections ([@ehendrix23] - [#22432]) ([myq docs]) +- Add watchdog reset to on_connect in Ambient ([@bachya] - [#22956]) ([ambient_station docs]) +- Catch connection reset ([@balloob] - [#22982]) ([websocket_api docs]) +- Stream support for Netatmo cameras ([@cgtobi] - [#22952]) ([netatmo docs]) +- Google Assistant: Migrate light setting trait to use HSV color spectrum ([@balloob] - [#22980]) ([google_assistant docs]) (breaking change) +- Bump pyubee version to support more models and detect model automatically ([@mzdrale] - [#22450]) ([ubee docs]) +- Load requirements and dependencies from manifests. Fallback to current `REQUIREMENTS` and `DEPENDENCIES` ([@rohankapoorcom] - [#22717]) (breaking change) +- Add device HmIP-MIOB to Homematic IP Cloud ([@SukramJ] - [#22975]) ([homematicip_cloud docs]) +- Prevent the projector to toogle on/off ([@stbkde] - [#22985]) ([epson docs]) +- Fix test failed in py35 ([@awarecan] - [#23002]) +- Add aftership package details and add/remove services ([@iantrich] - [#22275]) ([aftership docs]) +- Mobile App: Remove component loading support ([@robbiet480] - [#23025]) ([mobile_app docs]) +- Specify configurator as dependency ([@balloob] - [#23030]) +- Fix unnecessary hass.components interaction ([@balloob] - [#23029]) ([bloomsky docs]) ([netatmo docs]) ([wemo docs]) +- Instituto Geográfico Nacional Sismología (Earthquakes) Feed platform ([@exxamalte] - [#22696]) ([ign_sismologia docs]) (new-integration) (new-platform) +- Update HAP-python to 2.5.0 ([@adrum] - [#23031]) ([homekit docs]) +- Remove expired 17track.net packages from entity registry ([@bachya] - [#23001]) ([seventeentrack docs]) +- Replace get_platform ([@cgarwood] - [#23014]) ([zwave docs]) +- Convert service helper to use async_get_integration ([@balloob] - [#23023]) +- Remove dependencies and requirements ([@cgtobi] - [#23024]) +- Migrate check-config to use get_integration ([@balloob] - [#23026]) +- Move Broadlink services to component ([@elupus] - [#21465]) ([broadlink docs]) +- Bandage telegram bot ([@dgomes] - [#23022]) ([telegram_bot docs]) +- Update RainMachine sensors in parallel ([@bachya] - [#23057]) ([rainmachine docs]) +- Only load stream when av package available ([@balloob] - [#23058]) ([default_config docs]) +- Convert translation helper to use async_get_integration ([@balloob] - [#23054]) +- Allow aws credential skip validation ([@awarecan] - [#22991]) ([aws docs]) +- Upgrade python-slugify to 3.0.2 ([@BKPepe] - [#22997]) +- Add Satel_integra switchable outputs and multiple partitions ([@c-soft] - [#21992]) ([satel_integra docs]) (breaking change) (new-platform) +- Bugfix ZHA device_removed() handler. ([@Adminiuga] - [#23074]) ([zha docs]) +- Fix websocket connection sensor ([@Swamp-Ig] - [#22923]) ([websocket_api docs]) +- Validate data packet format on config validation ([@elupus] - [#23062]) ([broadlink docs]) +- Create decorator to check service permissions ([@bachya] - [#22667]) ([rainmachine docs]) +- Validate component usage ([@balloob] - [#23037]) +- Fix test ([@bachya] - [#23081]) +- HEOS confirm discovered devices before adding ([@andrewsayre] - [#23063]) ([heos docs]) +- Add missing async for tplink's async_setup_platform methods ([@rytilahti] - [#23066]) ([tplink docs]) +- Add support for Stiebel Eltron heat pumps ([@fucm] - [#21199]) ([stiebel_eltron docs]) (new-platform) +- Ensure OpenUV service checks permissions ([@bachya] - [#22668]) ([openuv docs]) +- Deprecate implicit state_topic for MQTT discovery ([@emontnemery] - [#22998]) ([mqtt docs]) (breaking change) +- Fix bugs in MQTT vacuum ([@emontnemery] - [#23048]) ([mqtt docs]) +- Refactor MQTT climate to deduplicate code ([@emontnemery] - [#23044]) ([mqtt docs]) +- Ignore secrets.yaml when using include_dir_named ([@choss] - [#22929]) +- Remove validate from aws_config ([@awarecan] - [#23084]) ([aws docs]) +- Migrate packages and check config ([@balloob] - [#23082]) +- Increase timeout ([@awarecan] - [#23098]) +- Add URL query parameters to webhook trigger result data ([@ActuallyRuben] - [#23043]) ([automation docs]) +- Add support for params in send_command ([@pszafer] - [#23071]) ([mqtt docs]) +- Fix demo ([@balloob] - [#23087]) ([demo docs]) +- Await merge_packages_config(). ([@Adminiuga] - [#23109]) +- Further integration load cleanups ([@balloob] - [#23104]) +- Fix for stateless covers ([@giefca] - [#22962]) ([google_assistant docs]) +- Upgraded python-velbus package, this fixes a lot of problems with the… ([@Cereal2nd] - [#23100]) +- Support updating deCONZ host address ([@Kane610] - [#22784]) ([deconz docs]) +- Remove loader.get_component ([@balloob] - [#23111]) +- Load component which contains data entry flow handler ([@awarecan] - [#23107]) +- Fix homekit_controller climate supported operation_list being blank ([@Jc2k] - [#23095]) ([homekit_controller docs]) +- Axis - start stream when system is ready ([@Kane610] - [#23119]) ([axis docs]) +- Handle missing 'serialno' of Android TV ([@JeffLIrion] - [#22996]) ([androidtv docs]) (breaking change) +- Lower verbosity of command line sensor ([@tsvi] - [#23120]) ([command_line docs]) +- Bump pyatmo version ([@cgtobi] - [#23116]) ([netatmo docs]) +- Clean coveragerc of removed integrations ([@cgtobi] - [#23118]) +- Add Google Assistant garage type ([@giefca] - [#23115]) ([google_assistant docs]) +- Add pvizeli/danielperna84 to code owner of homematic ([@pvizeli] - [#22989]) ([homematic docs]) +- Add basic Supla cover support ([@mwegrzynek] - [#22133]) ([supla docs]) (new-platform) +- Ensure Boolean configuration values are handled correctly. ([@loe] - [#22810]) ([zwave docs]) +- Axis component support unloading entries ([@Kane610] - [#22692]) ([axis docs]) +- Update yeelight lib ([@zewelor] - [#23123]) ([yeelight docs]) +- Update Leviton Decora WiFi library version. ([@tlyakhov] - [#23125]) ([decora_wifi docs]) +- skip non existing zones ([@fredrike] - [#23113]) ([daikin docs]) +- load cleanups ([@balloob] - [#23112]) +- Fix flux_led only-white controllers (and remove explicit declaration as RGBW in automatic add) ([@autinerd] - [#22210]) ([flux_led docs]) +- Bump pyhs100 requirement for tplink integration ([@rytilahti] - [#23065]) ([tplink docs]) +- Load integrations only once ([@balloob] - [#23132]) +- only preload when stream is setup ([@hunterjm] - [#23134]) ([camera docs]) +- Axis - improved internal parameter handling ([@Kane610] - [#23122]) ([axis docs]) +- Added state workaround exception for Kwikset 99100-078 ([@Villhellm] - [#23130]) ([zwave docs]) +- Fix niko_home_control integration ([@NoUseFreak] - [#23093]) ([niko_home_control docs]) +- Fix verify_ssl configuration ([@Anonym-tsk] - [#23146]) ([telegram_bot docs]) +- Add support for after_dependencies ([@balloob] - [#23148]) ([camera docs]) ([mysensors docs]) ([owntracks docs]) +- Simplify esphome ([@OttoWinter] - [#22868]) ([esphome docs]) (new-platform) +- Update components that can be used without being set up ([@balloob] - [#23133]) +- Rename google/tts.py to google_translate/tts.py ([@awarecan] - [#23090]) ([google docs]) ([google_translate docs]) ([tts docs]) (breaking change) (new-integration) +- update caldav to fix calendar issues with synology clients ([@cmsimike] - [#23145]) ([caldav docs]) +- Add target_temp_high/low and current_temperature ([@elupus] - [#21393]) ([water_heater docs]) +- Genius hub ([@GeoffAtHome] - [#21598]) ([geniushub docs]) (new-platform) +- Allow switches to be represented as outlets on google assistant ([@elupus] - [#23149]) ([demo docs]) ([google_assistant docs]) ([switch docs]) +- Fix check config script ([@balloob] - [#23151]) +- Homematic Lock: state_uncertain attribute, Homematic dimmer: Light service transition attribute ([@trilu2000] - [#22928]) ([homematic docs]) +- catch asyncio.TimeoutError ([@molobrakos] - [#23156]) ([eliqonline docs]) +- Axis change how new event is signalled ([@Kane610] - [#23152]) ([axis docs]) +- Bump Home Assistant Cloud 0.12 ([@pvizeli] - [#23159]) ([cloud docs]) +- Added epson workforce component ([@ThaStealth] - [#23144]) ([epsonworkforce docs]) (new-platform) +- Install deps and reqs early for config flows ([@balloob] - [#23169]) +- I think this is a potential bug ([@Swamp-Ig] - [#23157]) +- Changed scene unique IDs ([@pbalogh77] - [#22987]) ([fibaro docs]) (breaking change) +- homekit_controller: Support cover stop ([@Jc2k] - [#23046]) ([homekit_controller docs]) +- Fix handling of homekit_controler zeroconf c# changes ([@Jc2k] - [#22995]) ([homekit_controller docs]) +- Support fetching/setting humidity of HomeKit controller thermostats ([@Jc2k] - [#23040]) ([homekit_controller docs]) +- Adding Telegram bot leave_chat() service ([@Limych] - [#22259]) ([telegram_bot docs]) +- Only create sensors if the station actually has values for them. ([@jvanderneutstulen] - [#20643]) ([luftdaten docs]) +- Kill bluetooth LE scanning gracefully when asked to shut down. ([@mitchellrj] - [#22586]) ([bluetooth_le_tracker docs]) (beta fix) +- Add basic support for native Hue sensors ([@mitchellrj] - [#22598]) ([hue docs]) (beta fix) (new-platform) +- Google assistant skip missing type ([@elupus] - [#23174]) ([google_assistant docs]) (beta fix) +- Fix empty components ([@balloob] - [#23177]) (beta fix) +- Don't warn for missing services ([@balloob] - [#23182]) (beta fix) +- Improve configuration schema for Geniushub integration ([@zxdavb] - [#23155]) ([geniushub docs]) (beta fix) +- Fix niko home control dependency installation ([@NoUseFreak] - [#23176]) ([niko_home_control docs]) (beta fix) +- Hass.io Add-on panel support for Ingress ([@pvizeli] - [#23185]) ([hassio docs]) (beta fix) +- Hue motion senors are motion sensors, not presence sensors. ([@mitchellrj] - [#23193]) ([hue docs]) (beta fix) +- Don't load component when fetching translations ([@balloob] - [#23196]) (beta fix) +- Create empty services.yaml for esphome ([@OttoWinter] - [#23200]) (beta fix) +- Create services.yaml for python_script and script ([@arsaboo] - [#23201]) ([python_script docs]) ([script docs]) (beta fix) +- Set encoding before connecting ([@robbiet480] - [#23204]) ([mikrotik docs]) (beta fix) +- Add services.yaml validator ([@balloob] - [#23205]) (beta fix) +- Fix clearing error message for MQTT vacuum ([@emontnemery] - [#23206]) ([mqtt docs]) (beta fix) +- Name sensors correctly ([@mitchellrj] - [#23208]) ([hue docs]) (beta fix) +- Create services.yaml for Tuya ([@arsaboo] - [#23209]) (beta fix) +- create services.yaml for shell_command ([@arsaboo] - [#23210]) (beta fix) +- Add stub services.yaml and make validation mandatory ([@balloob] - [#23213]) (beta fix) +- update zha-quirks ([@dmulcahey] - [#23215]) ([zha docs]) (beta fix) +- fix bindable devices ([@dmulcahey] - [#23216]) ([zha docs]) (beta fix) +- Add missing services.yaml file for hue ([@cgtobi] - [#23217]) (beta fix) +- Ask users for a pin when interacting with locks/garage doors ([@balloob] - [#23223]) ([cloud docs]) ([google_assistant docs]) (breaking change) (beta fix) +- Async fix for bluetooth stopping ([@balloob] - [#23225]) ([bluetooth_le_tracker docs]) (beta fix) +- Return 0 instead of None ([@andrewsayre] - [#23261]) ([plex docs]) (beta fix) +- Backport missing folder fix from #23191 ([@Jc2k] - [#23297]) ([homekit_controller docs]) +- Update pyheos and log service errors in HEOS integration ([@andrewsayre] - [#23222]) ([heos docs]) (beta fix) +- Fix ESPHome setup errors in beta ([@OttoWinter] - [#23242]) ([esphome docs]) (beta fix) +- Bump zigpy-deconz ([@damarco] - [#23270]) ([zha docs]) (beta fix) +- Bump zigpy and zigpy-xbee ([@damarco] - [#23275]) ([zha docs]) (beta fix) +- Show correct version for stable ([@ludeeus] - [#23291]) ([version docs]) (beta fix) +- Bump skybellpy to 0.4.0 ([@austinmroczek] - [#23294]) ([skybell docs]) (beta fix) +- Create services.yaml for input_datetime ([@VDRainer] - [#23303]) (beta fix) +- Correct calculation and units of light level values. ([@mitchellrj] - [#23309]) ([hue docs]) (beta fix) +- Fix hass.io panel_custom/frontend ([@pvizeli] - [#23313]) ([hassio docs]) (beta fix) +- Dont cache integrations that are not found ([@balloob] - [#23316]) (beta fix) +- Expose door cover/binary_sensor as door type ([@elupus] - [#23307]) ([google_assistant docs]) (beta fix) +- Zestimate - Added check for the existence of data in response ([@dreed47] - [#23310]) ([zestimate docs]) (beta fix) +- Always set latest pin ([@balloob] - [#23328]) ([cloud docs]) (beta fix) +- Add sensor and binary senseor to default expose ([@balloob] - [#23332]) ([google_assistant docs]) (beta fix) +- Support unicode in configuration migration ([@awarecan] - [#23335]) (beta fix) +- Remove ghost folder ([@awarecan] - [#23350]) ([aws_lambda docs]) ([aws_sns docs]) ([aws_sqs docs]) (beta fix) + +[#19590]: https://github.com/home-assistant/home-assistant/pull/19590 +[#20256]: https://github.com/home-assistant/home-assistant/pull/20256 +[#20624]: https://github.com/home-assistant/home-assistant/pull/20624 +[#20643]: https://github.com/home-assistant/home-assistant/pull/20643 +[#21152]: https://github.com/home-assistant/home-assistant/pull/21152 +[#21199]: https://github.com/home-assistant/home-assistant/pull/21199 +[#21393]: https://github.com/home-assistant/home-assistant/pull/21393 +[#21438]: https://github.com/home-assistant/home-assistant/pull/21438 +[#21465]: https://github.com/home-assistant/home-assistant/pull/21465 +[#21598]: https://github.com/home-assistant/home-assistant/pull/21598 +[#21703]: https://github.com/home-assistant/home-assistant/pull/21703 +[#21721]: https://github.com/home-assistant/home-assistant/pull/21721 +[#21874]: https://github.com/home-assistant/home-assistant/pull/21874 +[#21938]: https://github.com/home-assistant/home-assistant/pull/21938 +[#21992]: https://github.com/home-assistant/home-assistant/pull/21992 +[#22133]: https://github.com/home-assistant/home-assistant/pull/22133 +[#22140]: https://github.com/home-assistant/home-assistant/pull/22140 +[#22158]: https://github.com/home-assistant/home-assistant/pull/22158 +[#22184]: https://github.com/home-assistant/home-assistant/pull/22184 +[#22192]: https://github.com/home-assistant/home-assistant/pull/22192 +[#22194]: https://github.com/home-assistant/home-assistant/pull/22194 +[#22196]: https://github.com/home-assistant/home-assistant/pull/22196 +[#22210]: https://github.com/home-assistant/home-assistant/pull/22210 +[#22215]: https://github.com/home-assistant/home-assistant/pull/22215 +[#22259]: https://github.com/home-assistant/home-assistant/pull/22259 +[#22275]: https://github.com/home-assistant/home-assistant/pull/22275 +[#22341]: https://github.com/home-assistant/home-assistant/pull/22341 +[#22396]: https://github.com/home-assistant/home-assistant/pull/22396 +[#22399]: https://github.com/home-assistant/home-assistant/pull/22399 +[#22400]: https://github.com/home-assistant/home-assistant/pull/22400 +[#22401]: https://github.com/home-assistant/home-assistant/pull/22401 +[#22418]: https://github.com/home-assistant/home-assistant/pull/22418 +[#22432]: https://github.com/home-assistant/home-assistant/pull/22432 +[#22449]: https://github.com/home-assistant/home-assistant/pull/22449 +[#22450]: https://github.com/home-assistant/home-assistant/pull/22450 +[#22489]: https://github.com/home-assistant/home-assistant/pull/22489 +[#22506]: https://github.com/home-assistant/home-assistant/pull/22506 +[#22508]: https://github.com/home-assistant/home-assistant/pull/22508 +[#22514]: https://github.com/home-assistant/home-assistant/pull/22514 +[#22515]: https://github.com/home-assistant/home-assistant/pull/22515 +[#22516]: https://github.com/home-assistant/home-assistant/pull/22516 +[#22517]: https://github.com/home-assistant/home-assistant/pull/22517 +[#22522]: https://github.com/home-assistant/home-assistant/pull/22522 +[#22526]: https://github.com/home-assistant/home-assistant/pull/22526 +[#22540]: https://github.com/home-assistant/home-assistant/pull/22540 +[#22544]: https://github.com/home-assistant/home-assistant/pull/22544 +[#22552]: https://github.com/home-assistant/home-assistant/pull/22552 +[#22554]: https://github.com/home-assistant/home-assistant/pull/22554 +[#22558]: https://github.com/home-assistant/home-assistant/pull/22558 +[#22561]: https://github.com/home-assistant/home-assistant/pull/22561 +[#22563]: https://github.com/home-assistant/home-assistant/pull/22563 +[#22566]: https://github.com/home-assistant/home-assistant/pull/22566 +[#22567]: https://github.com/home-assistant/home-assistant/pull/22567 +[#22572]: https://github.com/home-assistant/home-assistant/pull/22572 +[#22576]: https://github.com/home-assistant/home-assistant/pull/22576 +[#22581]: https://github.com/home-assistant/home-assistant/pull/22581 +[#22583]: https://github.com/home-assistant/home-assistant/pull/22583 +[#22586]: https://github.com/home-assistant/home-assistant/pull/22586 +[#22589]: https://github.com/home-assistant/home-assistant/pull/22589 +[#22592]: https://github.com/home-assistant/home-assistant/pull/22592 +[#22593]: https://github.com/home-assistant/home-assistant/pull/22593 +[#22597]: https://github.com/home-assistant/home-assistant/pull/22597 +[#22598]: https://github.com/home-assistant/home-assistant/pull/22598 +[#22600]: https://github.com/home-assistant/home-assistant/pull/22600 +[#22606]: https://github.com/home-assistant/home-assistant/pull/22606 +[#22609]: https://github.com/home-assistant/home-assistant/pull/22609 +[#22611]: https://github.com/home-assistant/home-assistant/pull/22611 +[#22615]: https://github.com/home-assistant/home-assistant/pull/22615 +[#22620]: https://github.com/home-assistant/home-assistant/pull/22620 +[#22621]: https://github.com/home-assistant/home-assistant/pull/22621 +[#22624]: https://github.com/home-assistant/home-assistant/pull/22624 +[#22626]: https://github.com/home-assistant/home-assistant/pull/22626 +[#22627]: https://github.com/home-assistant/home-assistant/pull/22627 +[#22630]: https://github.com/home-assistant/home-assistant/pull/22630 +[#22632]: https://github.com/home-assistant/home-assistant/pull/22632 +[#22634]: https://github.com/home-assistant/home-assistant/pull/22634 +[#22637]: https://github.com/home-assistant/home-assistant/pull/22637 +[#22646]: https://github.com/home-assistant/home-assistant/pull/22646 +[#22647]: https://github.com/home-assistant/home-assistant/pull/22647 +[#22649]: https://github.com/home-assistant/home-assistant/pull/22649 +[#22652]: https://github.com/home-assistant/home-assistant/pull/22652 +[#22653]: https://github.com/home-assistant/home-assistant/pull/22653 +[#22658]: https://github.com/home-assistant/home-assistant/pull/22658 +[#22661]: https://github.com/home-assistant/home-assistant/pull/22661 +[#22662]: https://github.com/home-assistant/home-assistant/pull/22662 +[#22663]: https://github.com/home-assistant/home-assistant/pull/22663 +[#22667]: https://github.com/home-assistant/home-assistant/pull/22667 +[#22668]: https://github.com/home-assistant/home-assistant/pull/22668 +[#22674]: https://github.com/home-assistant/home-assistant/pull/22674 +[#22679]: https://github.com/home-assistant/home-assistant/pull/22679 +[#22681]: https://github.com/home-assistant/home-assistant/pull/22681 +[#22683]: https://github.com/home-assistant/home-assistant/pull/22683 +[#22684]: https://github.com/home-assistant/home-assistant/pull/22684 +[#22686]: https://github.com/home-assistant/home-assistant/pull/22686 +[#22687]: https://github.com/home-assistant/home-assistant/pull/22687 +[#22691]: https://github.com/home-assistant/home-assistant/pull/22691 +[#22692]: https://github.com/home-assistant/home-assistant/pull/22692 +[#22696]: https://github.com/home-assistant/home-assistant/pull/22696 +[#22698]: https://github.com/home-assistant/home-assistant/pull/22698 +[#22699]: https://github.com/home-assistant/home-assistant/pull/22699 +[#22703]: https://github.com/home-assistant/home-assistant/pull/22703 +[#22704]: https://github.com/home-assistant/home-assistant/pull/22704 +[#22705]: https://github.com/home-assistant/home-assistant/pull/22705 +[#22707]: https://github.com/home-assistant/home-assistant/pull/22707 +[#22708]: https://github.com/home-assistant/home-assistant/pull/22708 +[#22710]: https://github.com/home-assistant/home-assistant/pull/22710 +[#22715]: https://github.com/home-assistant/home-assistant/pull/22715 +[#22717]: https://github.com/home-assistant/home-assistant/pull/22717 +[#22718]: https://github.com/home-assistant/home-assistant/pull/22718 +[#22719]: https://github.com/home-assistant/home-assistant/pull/22719 +[#22721]: https://github.com/home-assistant/home-assistant/pull/22721 +[#22737]: https://github.com/home-assistant/home-assistant/pull/22737 +[#22738]: https://github.com/home-assistant/home-assistant/pull/22738 +[#22748]: https://github.com/home-assistant/home-assistant/pull/22748 +[#22751]: https://github.com/home-assistant/home-assistant/pull/22751 +[#22753]: https://github.com/home-assistant/home-assistant/pull/22753 +[#22767]: https://github.com/home-assistant/home-assistant/pull/22767 +[#22774]: https://github.com/home-assistant/home-assistant/pull/22774 +[#22784]: https://github.com/home-assistant/home-assistant/pull/22784 +[#22785]: https://github.com/home-assistant/home-assistant/pull/22785 +[#22788]: https://github.com/home-assistant/home-assistant/pull/22788 +[#22791]: https://github.com/home-assistant/home-assistant/pull/22791 +[#22792]: https://github.com/home-assistant/home-assistant/pull/22792 +[#22794]: https://github.com/home-assistant/home-assistant/pull/22794 +[#22802]: https://github.com/home-assistant/home-assistant/pull/22802 +[#22805]: https://github.com/home-assistant/home-assistant/pull/22805 +[#22806]: https://github.com/home-assistant/home-assistant/pull/22806 +[#22809]: https://github.com/home-assistant/home-assistant/pull/22809 +[#22810]: https://github.com/home-assistant/home-assistant/pull/22810 +[#22816]: https://github.com/home-assistant/home-assistant/pull/22816 +[#22822]: https://github.com/home-assistant/home-assistant/pull/22822 +[#22824]: https://github.com/home-assistant/home-assistant/pull/22824 +[#22826]: https://github.com/home-assistant/home-assistant/pull/22826 +[#22828]: https://github.com/home-assistant/home-assistant/pull/22828 +[#22829]: https://github.com/home-assistant/home-assistant/pull/22829 +[#22830]: https://github.com/home-assistant/home-assistant/pull/22830 +[#22831]: https://github.com/home-assistant/home-assistant/pull/22831 +[#22832]: https://github.com/home-assistant/home-assistant/pull/22832 +[#22833]: https://github.com/home-assistant/home-assistant/pull/22833 +[#22834]: https://github.com/home-assistant/home-assistant/pull/22834 +[#22835]: https://github.com/home-assistant/home-assistant/pull/22835 +[#22836]: https://github.com/home-assistant/home-assistant/pull/22836 +[#22837]: https://github.com/home-assistant/home-assistant/pull/22837 +[#22838]: https://github.com/home-assistant/home-assistant/pull/22838 +[#22846]: https://github.com/home-assistant/home-assistant/pull/22846 +[#22847]: https://github.com/home-assistant/home-assistant/pull/22847 +[#22850]: https://github.com/home-assistant/home-assistant/pull/22850 +[#22855]: https://github.com/home-assistant/home-assistant/pull/22855 +[#22858]: https://github.com/home-assistant/home-assistant/pull/22858 +[#22859]: https://github.com/home-assistant/home-assistant/pull/22859 +[#22860]: https://github.com/home-assistant/home-assistant/pull/22860 +[#22867]: https://github.com/home-assistant/home-assistant/pull/22867 +[#22868]: https://github.com/home-assistant/home-assistant/pull/22868 +[#22871]: https://github.com/home-assistant/home-assistant/pull/22871 +[#22875]: https://github.com/home-assistant/home-assistant/pull/22875 +[#22876]: https://github.com/home-assistant/home-assistant/pull/22876 +[#22878]: https://github.com/home-assistant/home-assistant/pull/22878 +[#22880]: https://github.com/home-assistant/home-assistant/pull/22880 +[#22884]: https://github.com/home-assistant/home-assistant/pull/22884 +[#22885]: https://github.com/home-assistant/home-assistant/pull/22885 +[#22886]: https://github.com/home-assistant/home-assistant/pull/22886 +[#22892]: https://github.com/home-assistant/home-assistant/pull/22892 +[#22894]: https://github.com/home-assistant/home-assistant/pull/22894 +[#22896]: https://github.com/home-assistant/home-assistant/pull/22896 +[#22899]: https://github.com/home-assistant/home-assistant/pull/22899 +[#22901]: https://github.com/home-assistant/home-assistant/pull/22901 +[#22902]: https://github.com/home-assistant/home-assistant/pull/22902 +[#22903]: https://github.com/home-assistant/home-assistant/pull/22903 +[#22906]: https://github.com/home-assistant/home-assistant/pull/22906 +[#22908]: https://github.com/home-assistant/home-assistant/pull/22908 +[#22909]: https://github.com/home-assistant/home-assistant/pull/22909 +[#22911]: https://github.com/home-assistant/home-assistant/pull/22911 +[#22912]: https://github.com/home-assistant/home-assistant/pull/22912 +[#22913]: https://github.com/home-assistant/home-assistant/pull/22913 +[#22922]: https://github.com/home-assistant/home-assistant/pull/22922 +[#22923]: https://github.com/home-assistant/home-assistant/pull/22923 +[#22928]: https://github.com/home-assistant/home-assistant/pull/22928 +[#22929]: https://github.com/home-assistant/home-assistant/pull/22929 +[#22935]: https://github.com/home-assistant/home-assistant/pull/22935 +[#22939]: https://github.com/home-assistant/home-assistant/pull/22939 +[#22940]: https://github.com/home-assistant/home-assistant/pull/22940 +[#22943]: https://github.com/home-assistant/home-assistant/pull/22943 +[#22944]: https://github.com/home-assistant/home-assistant/pull/22944 +[#22951]: https://github.com/home-assistant/home-assistant/pull/22951 +[#22952]: https://github.com/home-assistant/home-assistant/pull/22952 +[#22954]: https://github.com/home-assistant/home-assistant/pull/22954 +[#22956]: https://github.com/home-assistant/home-assistant/pull/22956 +[#22960]: https://github.com/home-assistant/home-assistant/pull/22960 +[#22961]: https://github.com/home-assistant/home-assistant/pull/22961 +[#22962]: https://github.com/home-assistant/home-assistant/pull/22962 +[#22963]: https://github.com/home-assistant/home-assistant/pull/22963 +[#22964]: https://github.com/home-assistant/home-assistant/pull/22964 +[#22965]: https://github.com/home-assistant/home-assistant/pull/22965 +[#22966]: https://github.com/home-assistant/home-assistant/pull/22966 +[#22974]: https://github.com/home-assistant/home-assistant/pull/22974 +[#22975]: https://github.com/home-assistant/home-assistant/pull/22975 +[#22980]: https://github.com/home-assistant/home-assistant/pull/22980 +[#22982]: https://github.com/home-assistant/home-assistant/pull/22982 +[#22985]: https://github.com/home-assistant/home-assistant/pull/22985 +[#22987]: https://github.com/home-assistant/home-assistant/pull/22987 +[#22989]: https://github.com/home-assistant/home-assistant/pull/22989 +[#22991]: https://github.com/home-assistant/home-assistant/pull/22991 +[#22995]: https://github.com/home-assistant/home-assistant/pull/22995 +[#22996]: https://github.com/home-assistant/home-assistant/pull/22996 +[#22997]: https://github.com/home-assistant/home-assistant/pull/22997 +[#22998]: https://github.com/home-assistant/home-assistant/pull/22998 +[#23001]: https://github.com/home-assistant/home-assistant/pull/23001 +[#23002]: https://github.com/home-assistant/home-assistant/pull/23002 +[#23014]: https://github.com/home-assistant/home-assistant/pull/23014 +[#23022]: https://github.com/home-assistant/home-assistant/pull/23022 +[#23023]: https://github.com/home-assistant/home-assistant/pull/23023 +[#23024]: https://github.com/home-assistant/home-assistant/pull/23024 +[#23025]: https://github.com/home-assistant/home-assistant/pull/23025 +[#23026]: https://github.com/home-assistant/home-assistant/pull/23026 +[#23029]: https://github.com/home-assistant/home-assistant/pull/23029 +[#23030]: https://github.com/home-assistant/home-assistant/pull/23030 +[#23031]: https://github.com/home-assistant/home-assistant/pull/23031 +[#23037]: https://github.com/home-assistant/home-assistant/pull/23037 +[#23040]: https://github.com/home-assistant/home-assistant/pull/23040 +[#23043]: https://github.com/home-assistant/home-assistant/pull/23043 +[#23044]: https://github.com/home-assistant/home-assistant/pull/23044 +[#23046]: https://github.com/home-assistant/home-assistant/pull/23046 +[#23048]: https://github.com/home-assistant/home-assistant/pull/23048 +[#23054]: https://github.com/home-assistant/home-assistant/pull/23054 +[#23057]: https://github.com/home-assistant/home-assistant/pull/23057 +[#23058]: https://github.com/home-assistant/home-assistant/pull/23058 +[#23062]: https://github.com/home-assistant/home-assistant/pull/23062 +[#23063]: https://github.com/home-assistant/home-assistant/pull/23063 +[#23065]: https://github.com/home-assistant/home-assistant/pull/23065 +[#23066]: https://github.com/home-assistant/home-assistant/pull/23066 +[#23071]: https://github.com/home-assistant/home-assistant/pull/23071 +[#23074]: https://github.com/home-assistant/home-assistant/pull/23074 +[#23081]: https://github.com/home-assistant/home-assistant/pull/23081 +[#23082]: https://github.com/home-assistant/home-assistant/pull/23082 +[#23084]: https://github.com/home-assistant/home-assistant/pull/23084 +[#23087]: https://github.com/home-assistant/home-assistant/pull/23087 +[#23090]: https://github.com/home-assistant/home-assistant/pull/23090 +[#23093]: https://github.com/home-assistant/home-assistant/pull/23093 +[#23095]: https://github.com/home-assistant/home-assistant/pull/23095 +[#23098]: https://github.com/home-assistant/home-assistant/pull/23098 +[#23100]: https://github.com/home-assistant/home-assistant/pull/23100 +[#23104]: https://github.com/home-assistant/home-assistant/pull/23104 +[#23107]: https://github.com/home-assistant/home-assistant/pull/23107 +[#23109]: https://github.com/home-assistant/home-assistant/pull/23109 +[#23111]: https://github.com/home-assistant/home-assistant/pull/23111 +[#23112]: https://github.com/home-assistant/home-assistant/pull/23112 +[#23113]: https://github.com/home-assistant/home-assistant/pull/23113 +[#23115]: https://github.com/home-assistant/home-assistant/pull/23115 +[#23116]: https://github.com/home-assistant/home-assistant/pull/23116 +[#23118]: https://github.com/home-assistant/home-assistant/pull/23118 +[#23119]: https://github.com/home-assistant/home-assistant/pull/23119 +[#23120]: https://github.com/home-assistant/home-assistant/pull/23120 +[#23122]: https://github.com/home-assistant/home-assistant/pull/23122 +[#23123]: https://github.com/home-assistant/home-assistant/pull/23123 +[#23125]: https://github.com/home-assistant/home-assistant/pull/23125 +[#23130]: https://github.com/home-assistant/home-assistant/pull/23130 +[#23132]: https://github.com/home-assistant/home-assistant/pull/23132 +[#23133]: https://github.com/home-assistant/home-assistant/pull/23133 +[#23134]: https://github.com/home-assistant/home-assistant/pull/23134 +[#23144]: https://github.com/home-assistant/home-assistant/pull/23144 +[#23145]: https://github.com/home-assistant/home-assistant/pull/23145 +[#23146]: https://github.com/home-assistant/home-assistant/pull/23146 +[#23148]: https://github.com/home-assistant/home-assistant/pull/23148 +[#23149]: https://github.com/home-assistant/home-assistant/pull/23149 +[#23151]: https://github.com/home-assistant/home-assistant/pull/23151 +[#23152]: https://github.com/home-assistant/home-assistant/pull/23152 +[#23155]: https://github.com/home-assistant/home-assistant/pull/23155 +[#23156]: https://github.com/home-assistant/home-assistant/pull/23156 +[#23157]: https://github.com/home-assistant/home-assistant/pull/23157 +[#23159]: https://github.com/home-assistant/home-assistant/pull/23159 +[#23169]: https://github.com/home-assistant/home-assistant/pull/23169 +[#23174]: https://github.com/home-assistant/home-assistant/pull/23174 +[#23176]: https://github.com/home-assistant/home-assistant/pull/23176 +[#23177]: https://github.com/home-assistant/home-assistant/pull/23177 +[#23182]: https://github.com/home-assistant/home-assistant/pull/23182 +[#23185]: https://github.com/home-assistant/home-assistant/pull/23185 +[#23193]: https://github.com/home-assistant/home-assistant/pull/23193 +[#23196]: https://github.com/home-assistant/home-assistant/pull/23196 +[#23200]: https://github.com/home-assistant/home-assistant/pull/23200 +[#23201]: https://github.com/home-assistant/home-assistant/pull/23201 +[#23204]: https://github.com/home-assistant/home-assistant/pull/23204 +[#23205]: https://github.com/home-assistant/home-assistant/pull/23205 +[#23206]: https://github.com/home-assistant/home-assistant/pull/23206 +[#23208]: https://github.com/home-assistant/home-assistant/pull/23208 +[#23209]: https://github.com/home-assistant/home-assistant/pull/23209 +[#23210]: https://github.com/home-assistant/home-assistant/pull/23210 +[#23213]: https://github.com/home-assistant/home-assistant/pull/23213 +[#23215]: https://github.com/home-assistant/home-assistant/pull/23215 +[#23216]: https://github.com/home-assistant/home-assistant/pull/23216 +[#23217]: https://github.com/home-assistant/home-assistant/pull/23217 +[#23222]: https://github.com/home-assistant/home-assistant/pull/23222 +[#23223]: https://github.com/home-assistant/home-assistant/pull/23223 +[#23225]: https://github.com/home-assistant/home-assistant/pull/23225 +[#23242]: https://github.com/home-assistant/home-assistant/pull/23242 +[#23261]: https://github.com/home-assistant/home-assistant/pull/23261 +[#23270]: https://github.com/home-assistant/home-assistant/pull/23270 +[#23275]: https://github.com/home-assistant/home-assistant/pull/23275 +[#23291]: https://github.com/home-assistant/home-assistant/pull/23291 +[#23294]: https://github.com/home-assistant/home-assistant/pull/23294 +[#23297]: https://github.com/home-assistant/home-assistant/pull/23297 +[#23303]: https://github.com/home-assistant/home-assistant/pull/23303 +[#23307]: https://github.com/home-assistant/home-assistant/pull/23307 +[#23309]: https://github.com/home-assistant/home-assistant/pull/23309 +[#23310]: https://github.com/home-assistant/home-assistant/pull/23310 +[#23313]: https://github.com/home-assistant/home-assistant/pull/23313 +[#23316]: https://github.com/home-assistant/home-assistant/pull/23316 +[#23328]: https://github.com/home-assistant/home-assistant/pull/23328 +[#23332]: https://github.com/home-assistant/home-assistant/pull/23332 +[#23335]: https://github.com/home-assistant/home-assistant/pull/23335 +[#23350]: https://github.com/home-assistant/home-assistant/pull/23350 +[@AZDane]: https://github.com/AZDane +[@ActuallyRuben]: https://github.com/ActuallyRuben +[@Adminiuga]: https://github.com/Adminiuga +[@Anonym-tsk]: https://github.com/Anonym-tsk +[@BKPepe]: https://github.com/BKPepe +[@Cereal2nd]: https://github.com/Cereal2nd +[@GeoffAtHome]: https://github.com/GeoffAtHome +[@Jc2k]: https://github.com/Jc2k +[@JeffLIrion]: https://github.com/JeffLIrion +[@JumpMaster]: https://github.com/JumpMaster +[@Kane610]: https://github.com/Kane610 +[@Limych]: https://github.com/Limych +[@MartinHjelmare]: https://github.com/MartinHjelmare +[@N1nja98]: https://github.com/N1nja98 +[@NoUseFreak]: https://github.com/NoUseFreak +[@OleksandrBerchenko]: https://github.com/OleksandrBerchenko +[@Oro]: https://github.com/Oro +[@OttoWinter]: https://github.com/OttoWinter +[@SukramJ]: https://github.com/SukramJ +[@Swamp-Ig]: https://github.com/Swamp-Ig +[@ThaStealth]: https://github.com/ThaStealth +[@VDRainer]: https://github.com/VDRainer +[@Villhellm]: https://github.com/Villhellm +[@VirtualL]: https://github.com/VirtualL +[@Yarikx]: https://github.com/Yarikx +[@aav7fl]: https://github.com/aav7fl +[@adrum]: https://github.com/adrum +[@ahayworth]: https://github.com/ahayworth +[@akasma74]: https://github.com/akasma74 +[@alengwenus]: https://github.com/alengwenus +[@amelchio]: https://github.com/amelchio +[@andrewsayre]: https://github.com/andrewsayre +[@aprosvetova]: https://github.com/aprosvetova +[@arsaboo]: https://github.com/arsaboo +[@austinmroczek]: https://github.com/austinmroczek +[@autinerd]: https://github.com/autinerd +[@awarecan]: https://github.com/awarecan +[@bachya]: https://github.com/bachya +[@balloob]: https://github.com/balloob +[@bendews]: https://github.com/bendews +[@c-soft]: https://github.com/c-soft +[@carstenschroeder]: https://github.com/carstenschroeder +[@cdce8p]: https://github.com/cdce8p +[@cgarwood]: https://github.com/cgarwood +[@cgtobi]: https://github.com/cgtobi +[@choss]: https://github.com/choss +[@cmsimike]: https://github.com/cmsimike +[@damarco]: https://github.com/damarco +[@dgomes]: https://github.com/dgomes +[@dmulcahey]: https://github.com/dmulcahey +[@dreed47]: https://github.com/dreed47 +[@easink]: https://github.com/easink +[@ehendrix23]: https://github.com/ehendrix23 +[@elupus]: https://github.com/elupus +[@emontnemery]: https://github.com/emontnemery +[@etheralm]: https://github.com/etheralm +[@evanjd]: https://github.com/evanjd +[@exxamalte]: https://github.com/exxamalte +[@fabaff]: https://github.com/fabaff +[@fbradyirl]: https://github.com/fbradyirl +[@fredrike]: https://github.com/fredrike +[@fucm]: https://github.com/fucm +[@giefca]: https://github.com/giefca +[@hunterjm]: https://github.com/hunterjm +[@iantrich]: https://github.com/iantrich +[@jvanderneutstulen]: https://github.com/jvanderneutstulen +[@kellerza]: https://github.com/kellerza +[@kstaniek]: https://github.com/kstaniek +[@loe]: https://github.com/loe +[@ludeeus]: https://github.com/ludeeus +[@maddenp]: https://github.com/maddenp +[@markusressel]: https://github.com/markusressel +[@mgiako]: https://github.com/mgiako +[@mitchellrj]: https://github.com/mitchellrj +[@molobrakos]: https://github.com/molobrakos +[@mwegrzynek]: https://github.com/mwegrzynek +[@mzdrale]: https://github.com/mzdrale +[@oblogic7]: https://github.com/oblogic7 +[@panosmz]: https://github.com/panosmz +[@pavoni]: https://github.com/pavoni +[@pbalogh77]: https://github.com/pbalogh77 +[@perosb]: https://github.com/perosb +[@pnbruckner]: https://github.com/pnbruckner +[@pszafer]: https://github.com/pszafer +[@pvizeli]: https://github.com/pvizeli +[@renemarc]: https://github.com/renemarc +[@robbiet480]: https://github.com/robbiet480 +[@roblandry]: https://github.com/roblandry +[@rohankapoorcom]: https://github.com/rohankapoorcom +[@royto]: https://github.com/royto +[@rytilahti]: https://github.com/rytilahti +[@scop]: https://github.com/scop +[@scornelissen85]: https://github.com/scornelissen85 +[@stbkde]: https://github.com/stbkde +[@techfreek]: https://github.com/techfreek +[@teliov]: https://github.com/teliov +[@tlyakhov]: https://github.com/tlyakhov +[@trilu2000]: https://github.com/trilu2000 +[@tsvi]: https://github.com/tsvi +[@vanstinator]: https://github.com/vanstinator +[@yosilevy]: https://github.com/yosilevy +[@zewelor]: https://github.com/zewelor +[@zxdavb]: https://github.com/zxdavb +[ads docs]: /components/ads/ +[aftership docs]: /components/aftership/ +[air_quality docs]: /components/air_quality/ +[ambient_station docs]: /components/ambient_station/ +[amcrest docs]: /components/amcrest/ +[androidtv docs]: /components/androidtv/ +[automation docs]: /components/automation/ +[awair docs]: /components/awair/ +[aws docs]: /components/aws/ +[aws_lambda docs]: /components/aws_lambda/ +[aws_sns docs]: /components/aws_sns/ +[aws_sqs docs]: /components/aws_sqs/ +[axis docs]: /components/axis/ +[binary_sensor docs]: /components/binary_sensor/ +[bloomsky docs]: /components/bloomsky/ +[bluetooth_le_tracker docs]: /components/bluetooth_le_tracker/ +[bom docs]: /components/bom/ +[broadlink docs]: /components/broadlink/ +[caldav docs]: /components/caldav/ +[camera docs]: /components/camera/ +[cast docs]: /components/cast/ +[cisco_ios docs]: /components/cisco_ios/ +[cisco_mobility_express docs]: /components/cisco_mobility_express/ +[cisco_webex_teams docs]: /components/cisco_webex_teams/ +[ciscospark docs]: /components/ciscospark/ +[citybikes docs]: /components/citybikes/ +[cloud docs]: /components/cloud/ +[command_line docs]: /components/command_line/ +[concord232 docs]: /components/concord232/ +[cover docs]: /components/cover/ +[daikin docs]: /components/daikin/ +[darksky docs]: /components/darksky/ +[deconz docs]: /components/deconz/ +[decora_wifi docs]: /components/decora_wifi/ +[default_config docs]: /components/default_config/ +[demo docs]: /components/demo/ +[dialogflow docs]: /components/dialogflow/ +[discovery docs]: /components/discovery/ +[doorbird docs]: /components/doorbird/ +[dyson docs]: /components/dyson/ +[eliqonline docs]: /components/eliqonline/ +[emulated_hue docs]: /components/emulated_hue/ +[enigma2 docs]: /components/enigma2/ +[epson docs]: /components/epson/ +[epsonworkforce docs]: /components/epsonworkforce/ +[esphome docs]: /components/esphome/ +[evohome docs]: /components/evohome/ +[fibaro docs]: /components/fibaro/ +[flux_led docs]: /components/flux_led/ +[geniushub docs]: /components/geniushub/ +[geo_rss_events docs]: /components/geo_rss_events/ +[geofency docs]: /components/geofency/ +[glances docs]: /components/glances/ +[google docs]: /components/google/ +[google_assistant docs]: /components/google_assistant/ +[google_translate docs]: /components/google_translate/ +[gpslogger docs]: /components/gpslogger/ +[gtfs docs]: /components/gtfs/ +[hangouts docs]: /components/hangouts/ +[harmony docs]: /components/harmony/ +[hassio docs]: /components/hassio/ +[heos docs]: /components/heos/ +[hikvisioncam docs]: /components/hikvisioncam/ +[homekit docs]: /components/homekit/ +[homekit_controller docs]: /components/homekit_controller/ +[homematic docs]: /components/homematic/ +[homematicip_cloud docs]: /components/homematicip_cloud/ +[honeywell docs]: /components/honeywell/ +[html5 docs]: /components/html5/ +[hue docs]: /components/hue/ +[ifttt docs]: /components/ifttt/ +[ign_sismologia docs]: /components/ign_sismologia/ +[influxdb docs]: /components/influxdb/ +[insteon_local docs]: /components/insteon_local/ +[insteon_plm docs]: /components/insteon_plm/ +[introduction docs]: /components/introduction/ +[lcn docs]: /components/lcn/ +[light docs]: /components/light/ +[lightwave docs]: /components/lightwave/ +[linky docs]: /components/linky/ +[locative docs]: /components/locative/ +[logi_circle docs]: /components/logi_circle/ +[london_underground docs]: /components/london_underground/ +[loopenergy docs]: /components/loopenergy/ +[luci docs]: /components/luci/ +[luftdaten docs]: /components/luftdaten/ +[mailgun docs]: /components/mailgun/ +[media_extractor docs]: /components/media_extractor/ +[media_player docs]: /components/media_player/ +[mikrotik docs]: /components/mikrotik/ +[mobile_app docs]: /components/mobile_app/ +[mqtt docs]: /components/mqtt/ +[myq docs]: /components/myq/ +[mysensors docs]: /components/mysensors/ +[n26 docs]: /components/n26/ +[nanoleaf docs]: /components/nanoleaf/ +[netatmo docs]: /components/netatmo/ +[netgear_lte docs]: /components/netgear_lte/ +[niko_home_control docs]: /components/niko_home_control/ +[oasa_telematics docs]: /components/oasa_telematics/ +[openuv docs]: /components/openuv/ +[osramlightify docs]: /components/osramlightify/ +[owntracks docs]: /components/owntracks/ +[person docs]: /components/person/ +[plex docs]: /components/plex/ +[python_script docs]: /components/python_script/ +[qwikswitch docs]: /components/qwikswitch/ +[raincloud docs]: /components/raincloud/ +[rainmachine docs]: /components/rainmachine/ +[rflink docs]: /components/rflink/ +[ring docs]: /components/ring/ +[satel_integra docs]: /components/satel_integra/ +[script docs]: /components/script/ +[sensor docs]: /components/sensor/ +[seventeentrack docs]: /components/seventeentrack/ +[simplisafe docs]: /components/simplisafe/ +[skybell docs]: /components/skybell/ +[somfy_mylink docs]: /components/somfy_mylink/ +[sonos docs]: /components/sonos/ +[stiebel_eltron docs]: /components/stiebel_eltron/ +[stream docs]: /components/stream/ +[supla docs]: /components/supla/ +[switch docs]: /components/switch/ +[telegram_bot docs]: /components/telegram_bot/ +[tellduslive docs]: /components/tellduslive/ +[tplink docs]: /components/tplink/ +[trend docs]: /components/trend/ +[tts docs]: /components/tts/ +[twilio docs]: /components/twilio/ +[ubee docs]: /components/ubee/ +[version docs]: /components/version/ +[water_heater docs]: /components/water_heater/ +[websocket_api docs]: /components/websocket_api/ +[wemo docs]: /components/wemo/ +[xiaomi_miio docs]: /components/xiaomi_miio/ +[yeelight docs]: /components/yeelight/ +[zengge docs]: /components/zengge/ +[zestimate docs]: /components/zestimate/ +[zha docs]: /components/zha/ +[zwave docs]: /components/zwave/ diff --git a/source/cloud/index.markdown b/source/cloud/index.markdown index 8c797896fca..982071d802a 100644 --- a/source/cloud/index.markdown +++ b/source/cloud/index.markdown @@ -13,7 +13,7 @@ ha_category: Voice ha_iot_class: Cloud Push --- -Home Assistant Cloud is a subscription service provided by our partner Nabu Casa, Inc. Check out [their website](https://www.nabucasa.com) For more information on features, pricing and [how to configure Home Assistant](https://www.nabucasa.com/config/). +Home Assistant Cloud is a subscription service provided by our partner Nabu Casa, Inc. Check out [their website](https://www.nabucasa.com) for more information on features, pricing and [how to configure Home Assistant](https://www.nabucasa.com/config/).
Logo of Nabu Casa, Inc
diff --git a/source/components/epsonworkforce.markdown b/source/components/epsonworkforce.markdown new file mode 100644 index 00000000000..9fa39a3d101 --- /dev/null +++ b/source/components/epsonworkforce.markdown @@ -0,0 +1,13 @@ +--- +layout: page +title: "Epson Workforce" +description: "Instructions on how to setup Epson Workforce with Home Assistant." +date: 2019-04-24 07:00 +sidebar: true +comments: false +sharing: true +footer: true +ha_release: 0.92 +--- + +The Epson workforce integration. diff --git a/source/getting-started/automation-2.markdown b/source/getting-started/automation-2.markdown deleted file mode 100644 index a7cb8201c32..00000000000 --- a/source/getting-started/automation-2.markdown +++ /dev/null @@ -1,108 +0,0 @@ ---- -layout: page -title: "Your Second Automation" -description: "Step by step guiding through making your second automation." -date: 2016-04-24 08:30 +0100 -sidebar: true -comments: false -sharing: true -footer: true -redirect_from: /getting-started/automation-create-first/ ---- - -After the scratch on the Automation surface, let's dive deeper and create the automation rule: **Turn on the lights when the sun sets** - -We are defining a [trigger](/docs/automation/trigger/) to track the sunset and tell it to fire when the sun is setting. When this event is triggered, the service `light.turn_on` is called without any parameters. Because we specify no parameters, it will turn on all the lights. - -```yaml -# Example configuration.yaml entry -automation: - alias: Turn on the lights when the sun sets - initial_state: true - hide_entity: false - trigger: - platform: sun - event: sunset - action: - service: light.turn_on -``` - -Starting with 0.28 automation rules can be reloaded from the [frontend](/components/automation/) and are shown by default. With [`hide_entity:`](/components/automation/) you can control this behavior. It's convenient if you are working on your rules, but when a rule is finished, and you don't want to see that rule in your frontend, you can set `hide_entity:` to `true`. To set an automation to be disabled when Home Assistant starts set `initial_state:` to `false`. - -After a few days of running this automation rule, you come to realize that this automation rule is not sufficient. It was already dark when the lights went on, and the one day you weren't home, the lights turned on anyway. Time for some tweaking. Let's add an offset to the sunset trigger and a [condition](/docs/automation/condition/) to only turn on the lights if anyone is home. - -```yaml -# Example configuration.yaml entry -automation: - alias: Turn on the lights when the sun sets - trigger: - platform: sun - event: sunset - offset: "-01:00:00" - condition: - condition: state - entity_id: group.all_devices - state: 'home' - action: - service: light.turn_on -``` - -Now you're happy, and all is good. You start to like this automation business and buy some more lights, this time you put them in the bedroom. But what you now realize is that when the sun is setting, the lights in the bedroom are also being turned on! Time to tweak the automation to only turn on the living room lights. - -The first thing you do is to look at the entities in the developer tools (second icon) in the app. You see the names of your lights, and you write them down: `light.table_lamp`, `light.bedroom`, `light.ceiling`. - -Instead of hard coding the entity IDs of the lights in the automation rule, we will set up a group. This will allow us to see the living room separate in the app and be able to address it from automation rules. - -So we tweak the config to add the group and have the automation rule only turn on the group. - -```yaml -# Example configuration.yaml entry -group: - living_room: - - light.table_lamp - - light.ceiling - -automation: - alias: Turn on the light when the sun sets - trigger: - platform: sun - event: sunset - offset: "-01:00:00" - condition: - condition: state - entity_id: group.all_devices - state: 'home' - action: - service: light.turn_on - entity_id: group.living_room -``` - -Christmas is coming along, and you decide to buy a remote switch to control the Christmas lights from Home Assistant. You can't claim to live in the house of the future if you're still manually turning on your Christmas lights! - -We hook the switch up to Home Assistant and grab the entity ID from the developer tools: `switch.christmas_lights`. We will update the group to include the switch and will change our [action](/docs/automation/action/). We are no longer able to call `light.turn_on` because we also want to turn on a switch. This is where `homeassistant.turn_on` comes to the rescue. This service is capable of turning on any entity. - -```yaml -# Example configuration.yaml entry -group: - living_room: - - light.table_lamp - - light.ceiling - - switch.christmas_lights - -automation: - alias: Turn on the lights when the sun sets - hide_entity: true - trigger: - platform: sun - event: sunset - offset: "-01:00:00" - condition: - condition: state - entity_id: group.all_devices - state: 'home' - action: - service: homeassistant.turn_on - entity_id: group.living_room -``` - -### [Next step: Presence detection »](/getting-started/presence-detection/) diff --git a/source/getting-started/automation.markdown b/source/getting-started/automation.markdown index 2f420b19db4..e57580e4b6f 100644 --- a/source/getting-started/automation.markdown +++ b/source/getting-started/automation.markdown @@ -1,31 +1,52 @@ --- layout: page title: "Automating Home Assistant" -description: "Instructions to get started with Automation using Home Assistant." -date: 2016-09-26 21:00 +description: "A quick intro on getting your first automation going." +date: 2016-04-24 08:30 +0100 sidebar: true comments: false sharing: true footer: true +redirect_from: + - /getting-started/automation-create-first/ + - /getting-started/automation-2/ --- -When your devices are set up, it's time to put the cherry on the pie: **automation**. Home Assistant offers [a few built-in automations](/components/#automation) – but you'll be using the automation component to set up your own rules, for the most part. +When your devices are set up, it's time to put the cherry on the pie: automation. In this guide we're going to create a simple automation rule to **turn on the lights when the sun sets**. -If you added a random sensor in the previous step then you can use that sensor for your very first automation: +In Home Assistant, open the menu by clicking on the top-left icon and click on configuration. Now click on automations. This is the automation screen from which you can manage all the automations in Home Assistant. -```yaml -automation: - - alias: Check sensor value and show notification - trigger: - platform: numeric_state - entity_id: sensor.random_sensor - above: 10 - action: - service: persistent_notification.create - data: - message: "Sensor value greater than 10" -``` +Click on the orange button at the bottom right to create a new automation. You are presented with a blank automation screen. -For further details about automation, please take the next step or the [automation documentation](/docs/automation/). +

+ +The automation editor. +

-### [Next step: Home Assistant Automation Part 2 »](/getting-started/automation-2/) +The first thing we will do is to set a name. Enter "Turn Lights On at Sunset". + +The second step is defining what should trigger our automation to run. In this case we want to use the event of the sun setting to trigger our automation. However, if we would turn on the lights when the sun actually sets, it would be too late as it already gets quite dark while it's setting. So we're going to add an offset. + +In the trigger section, click on the dropdown and change trigger type to "Sun". It allows us to pick between sunrise and sunset, go ahead and pick sunset. As we discussed, we want our automation to be triggered a little before the sun actually sets, so let's add `-0:30` to the offset. This indicates that we will trigger 30 minutes before the sun actually sets, neat! + +

+ +A new automation with a sun trigger filled in. +

+ +Once we have defined our trigger, scroll down to the action section. Make sure trigger type is set to "Call Service" and change the service to `light.turn_on`. For this automation we're going to turn on all lights, so let's change the service data to `{ "entity_id": "all" }`. + +

+ +A new automation with the action set up to turn on the lights. +

+ +Click the orange button to save the automation. Now wait till it's 30 minutes until the sun sets and see your automation magic! + +Further reading on automations: + +- [Triggers](/docs/automation/trigger/) +- [Conditions](/docs/automation/condition/) +- [Actions](/docs/automation/action/) + +### [Next step: Presence detection »](/getting-started/presence-detection/) diff --git a/source/getting-started/configuration.markdown b/source/getting-started/configuration.markdown index 0f2370a151d..dc342ae21c8 100644 --- a/source/getting-started/configuration.markdown +++ b/source/getting-started/configuration.markdown @@ -1,6 +1,6 @@ --- layout: page -title: "Configure Home Assistant" +title: "Advanced Configuration" description: "Instructions to get Home Assistant configured." date: 2016-09-26 21:00 sidebar: true @@ -9,80 +9,43 @@ sharing: true footer: true --- -

-This guide applies only if you've installed Home Assistant via Hass.io. If you've used any other install method then [see here](/docs/configuration/) instead. +Until now we have been able to configure Home Assistant purely via the user interface. However, not all options are accessible via the user interface. The other options are accessible via the Home Assistant configuration file called `configuration.yaml`. A default one is created when Home Assistant started for the first time. + +

+This final step of the getting started only applies if you've installed Home Assistant via Hass.io. If you've used another installation method, [see here](/docs/configuration/).

-If you made it here, awesome! That means that you got Home Assistant up and running. It might have already found some of your networked devices. This is going to be fun! - -Home Assistant stores its configuration in a file called `configuration.yaml`. A default one is created when Home Assistant is started for the first time. Some of the things in the configuration file can be edited via the user interface, other parts require you to edit the configuration file directly. - -There are two common approaches to edit your configuration: via Samba/Windows Networking and via the HASS Configurator. Both of these are [official add-ons for Hass.io](/addons/). - -## {% linkable_title Installing Hass.io add-ons %} - -Hass.io add-ons are installed from the add-on store embedded in the Hass.io panel: - - - Open Home Assistant by navigating to [http://hassio.local:8123][local]. - - Click on the menu icon in the top left and select Hass.io in the sidebar. - - The Hass.io panel opens, now open the add-on store by clicking the shopping bag. - -[local]: http://hassio.local:8123 +We are going to help you make your first changes to `configuration.yaml`. To do this, we are going to install an add-on from the Hass.io add-on store: the HASS Configurator. To get to the add-on store, click on the menu icon in the top left, then click on Hass.io. On the new page, open the add-on store tab.

-From the Hass.io main panel open the add-on store. +From the Hass.io main panel, open the add-on store.

-### {% linkable_title Editing config via HASS Configurator %} +Under the "Core" section you will find HASS Configurator. -The first add-on we should install is the HASS Configurator. With the HASS Configurator, you'll be able to edit your Home Assistant configuration from the web interface. + - Click on Configurator and click on INSTALL. When installation is complete, the UI will go to the add-on details page for the configurator. + - Now start the add-on by clicking on START. + - Open the user interface by clcking on OPEN WEB UI. -Go to the add-on store (see the previous step), click on Configurator and click on "INSTALL". When installation is complete, the UI will go to the add-on details page for the configurator. Here you will be able to change settings, start and stop the add-on. Follow the steps below to setup the add-on. +Now let's make a small change using the configurator: we are going to change the name and location of your Home Assistant installation. - - "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 saved - -Time for the first practice with the configurator. We're going to add the Configurator to the main Home Assistant sidebar: - - - Click the folder icon in the top left of the configurator window to open the file browser sidebar. + - Click the folder icon in the top left of the configurator window to open the file browser sidebar. - Click the `configuration.yaml` file (in the `/config/` folder) to load it into the main Configurator edit window. - - Copy and paste the following to the end of the `configuration.yaml` file: - -```yaml -panel_iframe: - configurator: - title: Configurator - icon: mdi:wrench - url: http://hassio.local:3218 -``` - + - Find the `homeassistant:` configuration block, which should be the first thing in `configuration.yaml`. In this block, update `name`, `latitude`, `longitude`, `unit_system` and `time_zone` to match yours. - Click the save icon in the top right to commit changes. - - Verify the configuration by going to the config panel (Configuration in the sidebar) -> General -> Click the "Check Config" button and you should get "Configuration valid!" - - Now Restart Home Assistant using the "restart" in the Server management section. + - Most changes in `configuration.yaml` require Home Assistant to be restarted to see the changes. You can verify that your changes are acceptable by running a config check. Do this by clicking on Configuration in the sidebar, click on General and click on the "Check Config" button. When it's valid, it will show the text "Configuration valid!". + - Now Restart Home Assistant using the "restart" in the Server management section on the same page. + +

+ +Screenshot of the "General" page in the configuration panel. +

### {% linkable_title Editing config via Samba/Windows Networking %} -Maybe you are not a big fan of our web editor and want to use a text editor on your computer instead. This is possible by sharing the configuration over the network using the Samba add-on, which can be installed from the Hass.io add-on store. +Maybe you are not a big fan of our web editor and want to use a text editor on your computer instead. This is possible by sharing the configuration over the network using the Samba add-on, which can also be installed from the Hass.io add-on store. This will make your configuration accessible via the network tab on your computer. -After you have installed it, click on START. Hass.io should now be available in the networking tab on your computer. Use a text editor like the free [Visual Studio Code](https://code.visualstudio.com/) to edit `configuration.yaml`. +Go to the add-on store and look for Samba in the core section. After you have installed the add-on, click on START. Hass.io should now be available in the networking tab on your computer. -## {% linkable_title Configuring integrations %} - -Now that you are able to edit the configuration, it's time to set up some of your devices and services. Each service and device will have its own instructions on how to be integrated. Find your devices and services on the [components overview page](/components/). - -

YAML can be a little daunting at first. A lot is possible! [Here is some more info.](/docs/configuration/devices/)

- -For your first integration, you'll create a virtual sensor that generates a random integer value between 0 and 20 every 30 seconds. - -To create this random value sensor [random values](/components/sensor.random/), enter the following to the bottom of your `configuration.yaml` file, and restart Home Assistant (remember it may take up to a minute for the service to restart): - -```yaml -sensor: - - platform: random -``` - -You'll know it worked when you see the new random sensor in your overview page. On the next page, we'll create an automation that uses this sensor to take an action. - -### [Next step: Automate Home Assistant »](/getting-started/automation/) +We suggest that to edit `configuration.yaml`, you use the free text editor [Visual Studio Code](https://code.visualstudio.com/) in combination with the [Home Assistant Config Helper extension](https://marketplace.visualstudio.com/items?itemName=keesschollaart.vscode-home-assistant). diff --git a/source/getting-started/index.markdown b/source/getting-started/index.markdown index eade77a5557..fc4df08f71d 100644 --- a/source/getting-started/index.markdown +++ b/source/getting-started/index.markdown @@ -9,29 +9,47 @@ sharing: true footer: true --- -The goal of this getting started guide is to install [Hass.io](/hassio/) on a Raspberry Pi. Hass.io is our own all in one solution that turns your Raspberry Pi or another device into the ultimate home automation hub. +{% comment %} -Follow this guide if you want to get started with Home Assistant easily, or if you have no or little Linux experience. +Note for contributors: -

-For advanced users or if you have no Raspberry Pi at hand, check our [alternative installation methods](/docs/installation/). The [FAQ](/faq/#home-assistant-vs-hassio) explains more about the differences. -

+The getting started guide aims at getting new users get Home Assistant up and +running as fast as possible. Nothing else. All other things should not be +written down, as it creates a spaghetti of links and the user will lose focus. + +So here are guidelines: + + - Focus on the bare necessities. No remote port, no securing installation. The + defaults are good enough to get a system up and running for the first guide. + - Avoid or explain technical terms. + - Do not talk about YAML if it can be partially/fully done in UI. + - Do not tell people about stuff they can do later. This can be added to a + 2nd tier guide. + - The first page of the guide is for installation, hence hass.io specific. + Other pages should not refer to it except for the page introducing the last + page that introduces `configuration.yaml`. + +{% endcomment %} + +The goal of this getting started guide is to get Home Assistant running on a Raspberry Pi. The easiest way to do this is by using [Hass.io](/hassio/), which is our own all in one solution that turns Raspberry Pi's and another devices into the ultimate home automation hubs. + +Follow this guide if you want to get started with Home Assistant easily, or if you have no or little Linux experience. For advanced users or if you don't have a [device that is supported by this guide][supported], check our [alternative installation methods](/docs/installation/). Once you finish your alternative installation, you can continue at the [next step][next-step]. + +[supported]: /hassio/installation/ ### {% linkable_title Suggested hardware%} -We will need a few things to get started with installing Home Assistant. For best performance, we suggest the latest Raspberry Pi 3 Model B+. Links below are linking to Amazon US. If you're not in the US, you should be able to find these items in web stores in your country. +We will need a few things to get started with installing Home Assistant. The latest Raspberry Pi model makes a good and affordable starting point for your home automation journey. Links below are linking to Amazon US. If you're not in the US, you should be able to find these items in web stores in your country. - [Raspberry Pi 3 Model B+](http://a.co/ak2SQor) + [Power Supply](https://www.raspberrypi.org/help/faqs/#powerReqs) (at least 2.5A) - [Micro SD Card](http://a.co/gslOydD). Get one that is Class 10 as they are more reliable. Size 32 GB or bigger recommended. - 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 as well) -- A USB-Stick (optional, allows for unattended configuration) ### {% linkable_title Software requirements %} - Download the Hass.io image for [your device](/hassio/installation/) - Download [balenaEtcher] to write the image to an SD card -- Text Editor like [Visual Studio Code](https://code.visualstudio.com/) [balenaEtcher]: https://www.balena.io/etcher @@ -39,29 +57,23 @@ We will need a few things to get started with installing Home Assistant. For bes 1. Put the SD card in your SD card reader. 1. Open balenaEtcher, select the Hass.io image and flash it to the SD card. -1. WiFi and Static IP setup only: +1. Unmount the SD card and remove it from your SD card reader. +1. Only if you want to configure WiFi or a Static IP (requires USB stick): - Format a USB-Stick to FAT32 with volume-name `CONFIG`. - Create a folder named `network` in the root of the newly formatted USB-stick. - Within that folder create a file named `my-network` without extension. - - Copy one of [the examples] to the `my-network` file. + - Copy one of [the examples] to the `my-network` file and adjust accordingly. - Plug the USB-stick into the Raspberry Pi 3. -1. Unmount the SD card and remove it from your SD card reader. + 1. Insert the SD card into your Raspberry Pi 3. If you are going to use an Ethernet cable, connect that too. 1. Connect your Raspberry Pi to the power supply, so it turns on. 1. The Raspberry Pi will now boot up, connect to the Internet and download the latest version of Home Assistant, which will take about 20 minutes. -1. Home Assistant will be available at [http://hassio.local:8123][local]. Shortly after the download has started, a simple preparation status page will be available at this URL. Point your browser there. The page refreshes automatically, and Home Assistant will be shown when the download is complete (this typically takes around 20 minutes). -1. Please remember to [secure your installation][secure] once you've finished with the installation process. +1. Home Assistant will be available at [http://hassio.local:8123][local]. If you are running an older Windows or have stricter network configuration, you might need to access Home Assistant at [http://hassio:8123][host]. [local]: http://hassio.local:8123 +[host]: http://hassio:8123 [the examples]: https://github.com/home-assistant/hassos/blob/dev/Documentation/network.md -[secure]: /docs/configuration/securing/ -

-If your router doesn't support mDNS, then you'll have to use the IP address of your Pi instead of `hassio.local`. For example, `http://192.168.0.9:8123`. You should be able to find the IP address of your Pi from the admin interface of your router. -

+### [Next step: Onboarding »][next-step] -

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

- -### [Next step: Configuring Home Assistant »](/getting-started/configuration/) +[next-step]: /getting-started/onboarding/ diff --git a/source/getting-started/join-the-community.markdown b/source/getting-started/join-the-community.markdown new file mode 100644 index 00000000000..4b3afcf04d0 --- /dev/null +++ b/source/getting-started/join-the-community.markdown @@ -0,0 +1,24 @@ +--- +layout: page +title: "Join the Community" +description: "Part of the Home Assistant experience is the large world-wide community of tinkerers. Join us." +date: 2019-04-19 00:01 +sidebar: true +comments: false +sharing: true +footer: true +--- + +You made it here? Good job! You've been able to install Home Assistant and get a small taste of all the things that are possible. + +Now that you've got that going, let's see what is next: + + - Learn about [advanced configuration](/getting-started/configuration/) using `configuration.yaml` in our bonus step of the getting started guide. + - Join the community in [our forums] or [our chat]. + - Check out [video tutorials] on a wide range of Home Assistant related topics + +You're now ready to be a part of our world-wide community of tinkerers. Welcome! + +[our forums]: https://community.home-assistant.io/ +[our chat]: /join-chat/ +[video tutorials]: https://www.youtube.com/results?search_query=home+assistant diff --git a/source/getting-started/onboarding.markdown b/source/getting-started/onboarding.markdown new file mode 100644 index 00000000000..80fbe7013e1 --- /dev/null +++ b/source/getting-started/onboarding.markdown @@ -0,0 +1,29 @@ +--- +layout: page +title: "Onboarding Home Assistant" +description: "Instructions to get Home Assistant configured." +date: 2019-04-19 00:01 +sidebar: true +comments: false +sharing: true +footer: true +--- + +Alright, you made it here. The tough part is done. + +With Home Assistant installed, it's time for doing the initial configuration. Here you will create the owner account of Home Assistant. This account will be an administrator and will always be able to change everything. Enter a name, username, password and click on "create account". + +Now you're brought to the main screen of Home Assistant: the states screen. The states screen will show all your devices. So let's get that screen filled up! + +Open the menu on the top left and click on Configuration. On the next screen, click on Integrations. At this screen you will be able to set up integrations with Home Assistant. You might notice a "discovered" section, these are integrations that we found on your network and can easily be added with a few clicks. If your integrations are not discovered, find them in the list and click on configure. + +

+ +The integrations page in the configurations panel shows you all your configured integrations. +

+ +When each integration is done setting up, it will ask you to put the new devices in areas. Areas allow you to organize all the devices in your home. + +When you're done, navigate back to the states panel and voila, your devices are ready for you to control. + +### [Next step: Automate Home Assistant »](/getting-started/automation/) diff --git a/source/getting-started/presence-detection.markdown b/source/getting-started/presence-detection.markdown index f1c51fcfa9f..1d84ce20386 100644 --- a/source/getting-started/presence-detection.markdown +++ b/source/getting-started/presence-detection.markdown @@ -9,10 +9,6 @@ sharing: true footer: true --- -

-We care about privacy. Collected data is only stored in your instance of Home Assistant. -

- Presence detection detects if people are home, which is the most valuable input for automation. Knowing who is home or where they are, will open a whole range of other automation options: - Send me a notification when my child arrives at school @@ -23,34 +19,31 @@ Presence detection detects if people are home, which is the most valuable input Screenshot of Home Assistant showing a school, work and home zone and two people.

-### {% linkable_title Setting it up %} +### {% linkable_title Adding presence detection %} -The device tracker component offers presence detection for Home Assistant. It supports three different methods for presence detection: scan for connected devices on the local network, scan for Bluetooth devices within range, and connect to third-party service. +There are different ways of setting up presence detection. Usually the easiest way to detect presence is by checking which devices are connected to the network. You can do that if you have one of our [supported routers][routers]. By leveraging what your router already knows, you can easily detect if people are at home. -Scanning for connected devices is easy to setup; options include [supported routers][routers] and [scanning the network using Nmap][nmap]. This approach does have its limitations, however: it will only be able to detect if a device is at home, and modern smartphones may show as not home inaccurately (as they disconnect from WiFi if idle). +It's also possible to run an app on your phone to provide detailed location information to your Home Assistant instance. If you're on iOS we suggest to use the [Home Assistant iOS app](/ios/). For Android, we suggest [OwnTracks][ha-owntracks]. -You can scan for [Bluetooth][ha-bluetooth] and [Bluetooth LE][ha-bluetooth-le] devices. Unlike with WiFi, modern smartphones don't turn off Bluetooth automatically, though the range is lower. - -Home Assistant currently supports multiple third-party services for presence detection, such as [OwnTracks over MQTT][ha-owntracks-mqtt], [OwnTracks over HTTP][ha-owntracks-http] [GPSLogger][ha-gpslogger] and [Locative][ha-locative]. - -There is a wide [range of options][ha-presence] available, both for scanning your local network and third-party services. +
+ +
### {% linkable_title Zones %} -Home Assistant will know the location of your device if you are using a device tracker that reports a GPS location (such as OwnTracks, GPS Logger, the iOS app, and others). By [setting up zones][zone] you will be able to add names to the locations of your devices. This way you can easily spot on the state page where the people in your house are and use it as [triggers][trigger] and [conditions][condition] for automation. +Zones allow you to name areas on a map. These areas can then be used to name the location a tracked user is, or use entering/leaving a zone as an automation [trigger] or [condition]. Zones can be set up from the integration page in the configurations screen.

-If you're looking at the [map view][ha-map] then any devices in your Home zone won't be visible, this is by design. +The map view will hide all devices that are home.

[routers]: /components/#presence-detection [nmap]: /components/device_tracker.nmap_tracker/ [ha-bluetooth]: /components/device_tracker.bluetooth_tracker/ [ha-bluetooth-le]: /components/device_tracker.bluetooth_le_tracker/ -[ha-owntracks-mqtt]: /components/device_tracker.owntracks/ -[ha-owntracks-http]: /components/device_tracker.owntracks_http/ +[ha-owntracks]: /components/owntracks/ [ha-locative]: /components/device_tracker.locative/ [ha-gpslogger]: /components/device_tracker.gpslogger/ [ha-presence]: /components/#presence-detection @@ -61,4 +54,4 @@ If you're looking at the [map view][ha-map] then any devices in your Home zone w [condition]: /getting-started/automation-condition/#zone-condition [ha-map]: /components/map/ -### [Next step: Use Home Assistant »](/getting-started/use/) +### [Next step: Join the Community »](/getting-started/join-the-community/) diff --git a/source/getting-started/use.markdown b/source/getting-started/use.markdown deleted file mode 100644 index 941d78e02df..00000000000 --- a/source/getting-started/use.markdown +++ /dev/null @@ -1,22 +0,0 @@ ---- -layout: page -title: "Manage Home Assistant" -description: "Instructions about how to manage Home Assistant." -date: 2016-09-26 21:00 -sidebar: true -comments: false -sharing: true -footer: true ---- - -If you are using Hassbian, browse to [http://hassbian.local:8123](http://hassbian.local:8123) to open the Home Assistant frontend. - -To reload your configuration, go to **Configuration** in your side panel and choose "CHECK CONFIG". - -You will have to restart Home Assistant for most changes to `configuration.yaml` to take effect. You can load changes to [automations](/docs/automation/), [customize](/docs/configuration/customizing-devices/), [groups](/components/group/), and [scripts](/components/script/) without restarting. - -

- -

- -Now that you saw a glimpse of what is possible, take a look at the [documentation](/docs/), ask your questions in our [forum](https://community.home-assistant.io/), join us for a [chat](https://discord.gg/c5DvZ4e), or report your [issues](https://github.com/home-assistant/home-assistant/issues). diff --git a/source/hassio/installation.markdown b/source/hassio/installation.markdown index b791391b54c..eb0fb7f2dd8 100644 --- a/source/hassio/installation.markdown +++ b/source/hassio/installation.markdown @@ -135,7 +135,7 @@ apt-get install -y apparmor-utils apt-transport-https avahi-daemon ca-certificat curl -fsSL get.docker.com | sh -curl -sL "https://raw.githubusercontent.com/home-assistant/hassio-build/master/install/hassio_install" | bash -s +curl -sL "https://raw.githubusercontent.com/home-assistant/hassio-installer/master/hassio_install.sh" | bash -s ```

diff --git a/source/images/blog/2019-04-release-92/components.png b/source/images/blog/2019-04-release-92/components.png new file mode 100644 index 00000000000..30fb3ad31c7 Binary files /dev/null and b/source/images/blog/2019-04-release-92/components.png differ diff --git a/source/images/getting-started/automation-new-action.png b/source/images/getting-started/automation-new-action.png new file mode 100644 index 00000000000..bd87cdf0fe1 Binary files /dev/null and b/source/images/getting-started/automation-new-action.png differ diff --git a/source/images/getting-started/automation-new-blank.png b/source/images/getting-started/automation-new-blank.png new file mode 100644 index 00000000000..adc63eaba9a Binary files /dev/null and b/source/images/getting-started/automation-new-blank.png differ diff --git a/source/images/getting-started/automation-new-name-trigger.png b/source/images/getting-started/automation-new-name-trigger.png new file mode 100644 index 00000000000..1633c64978c Binary files /dev/null and b/source/images/getting-started/automation-new-name-trigger.png differ diff --git a/source/images/getting-started/integrations.png b/source/images/getting-started/integrations.png new file mode 100644 index 00000000000..d582d25eb5d Binary files /dev/null and b/source/images/getting-started/integrations.png differ diff --git a/source/images/screenshots/nmbs-card-example.png b/source/images/screenshots/nmbs-card-example.png new file mode 100644 index 00000000000..807c4af3901 Binary files /dev/null and b/source/images/screenshots/nmbs-card-example.png differ diff --git a/source/ios/nfc.markdown b/source/ios/nfc.markdown new file mode 100644 index 00000000000..80a6ecc1976 --- /dev/null +++ b/source/ios/nfc.markdown @@ -0,0 +1,12 @@ +--- +layout: page +title: "Home Assistant Companion for iOS NFC Landing" +description: "The landing page for NFC tags containing Home Assistant Companion URLs" +release_date: 2019-04-17 15:00:00 -0700 +sidebar: false +comments: false +sharing: false +footer: true +--- + +This is a placeholder that is required to support Universal Links and NFC tags in the [Home Assistant Companion for iOS app](/docs/ecosystem/ios).