From 9757e3a3a2012482acb31744a194c4c727156315 Mon Sep 17 00:00:00 2001 From: Megamannen Date: Thu, 28 Jan 2021 13:25:10 +0100 Subject: [PATCH 01/19] Wrong type on birth_message and will_message (#16335) Felt wrong since the variable is named birth_message not birth_message*s* Tried it and it doesn't work, throws error This config ``` mqtt: birth_message: - topic: 'hass/status' payload: 'online' - topic: 'homeassistant/status' payload: 'online' will_message: - topic: 'hass/status' payload: 'offline' - topic: 'homeassistant/status' payload: 'offline' ``` Gave this error: ``` Logger: homeassistant.components.hassio Source: components/hassio/__init__.py:420 Integration: Hass.io (documentation, issues) First occurred: 9:44:55 AM (2 occurrences) Last logged: 9:48:29 AM Invalid config for [mqtt]: expected a dictionary for dictionary value @ data['mqtt']['birth_message']. Got [OrderedDict([('topic', 'hass/status'), ('payload', 'maaan')]), OrderedDict([('topic', 'homeassistant/status'), ('payload', 'maaan-boy')])] expected a dictionary for dictionary value @ data['mqtt']['will_message']. Got [OrderedDict([('topic', 'hass/status'), ('payload', 'womaaan')]), OrderedDict([('topic', 'homeassistant/status'), ('payload', 'womaaan-girl')])]. (See /config/configuration.yaml, line 6). Invalid config for [mqtt]: expected a dictionary for dictionary value @ data['mqtt']['birth_message']. Got [OrderedDict([('topic', 'hass/status'), ('payload', 'online')]), OrderedDict([('topic', 'homeassistant/status'), ('payload', 'online')])] expected a dictionary for dictionary value @ data['mqtt']['will_message']. Got [OrderedDict([('topic', 'hass/status'), ('payload', 'offline')]), OrderedDict([('topic', 'homeassistant/status'), ('payload', 'offline')])]. (See /config/configuration.yaml, line 6). ``` --- source/_docs/mqtt/birth_will.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/_docs/mqtt/birth_will.markdown b/source/_docs/mqtt/birth_will.markdown index eec087abdca..5a8ed349743 100644 --- a/source/_docs/mqtt/birth_will.markdown +++ b/source/_docs/mqtt/birth_will.markdown @@ -25,7 +25,7 @@ mqtt: birth_message: description: Birth Message. Set to the empty dict, `{}`, to disable publishing a birth message. required: false - type: list + type: map keys: topic: description: The MQTT topic to publish the message. @@ -50,7 +50,7 @@ birth_message: will_message: description: Will Message. Set to the empty dict, `{}`, to disable publishing a will message. required: false - type: list + type: map keys: topic: description: The MQTT topic to publish the message. From 55df27924f93b77868563d8006bb6b0d9a487a7a Mon Sep 17 00:00:00 2001 From: Jamie Weston Date: Thu, 28 Jan 2021 12:29:09 +0000 Subject: [PATCH 02/19] Updated the command for updating Compose setups (#16337) For users with more than one service defined in their Docker Compose file, it's often preferable to update only that image - otherwise, running `up` may result in a restart of other, unrelated containers. --- source/_docs/installation/docker.markdown | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/source/_docs/installation/docker.markdown b/source/_docs/installation/docker.markdown index 345f2511674..1d2b1e8bd2c 100644 --- a/source/_docs/installation/docker.markdown +++ b/source/_docs/installation/docker.markdown @@ -266,10 +266,12 @@ docker-compose restart To update your docker-compose image to the latest version and restart: ```bash -docker-compose pull -docker-compose up -d --build homeassistant +docker-compose pull homeassistant +docker-compose up -d ``` +Note: the above will fetch the latest matching image for the `homeassistant` service only. To fetch all matching images for all services defined in the same `docker-compose.yaml` file, omit the service name from the first command. + ## Exposing Devices In order to use Z-Wave, Zigbee or other integrations that require access to devices, you need to map the appropriate device into the container. Ensure the user that is running the container has the correct privileges to access the `/dev/tty*` file, then add the device mapping to your Docker command: From a62b3c47c7f420d5b8c466856be78e2f32087368 Mon Sep 17 00:00:00 2001 From: Phil Hollenback Date: Thu, 28 Jan 2021 05:26:47 -0800 Subject: [PATCH 03/19] Add example lovelace map card (#16329) --- source/_integrations/usgs_earthquakes_feed.markdown | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/source/_integrations/usgs_earthquakes_feed.markdown b/source/_integrations/usgs_earthquakes_feed.markdown index 2a24463e2f9..115375269aa 100644 --- a/source/_integrations/usgs_earthquakes_feed.markdown +++ b/source/_integrations/usgs_earthquakes_feed.markdown @@ -118,3 +118,15 @@ geo_location: latitude: 35.899722 longitude: -120.432778 ``` +## Card Example + +Assuming you configure this service using `feed_type: past_week_all_earthquakes`, you can create a corresponding map card in the Lovelace UI with the following card: +```yaml +type: map +name: Earthquakes +geo_location_sources: + - usgs_earthquakes_feed +entities: + - zone.home +title: Nearby Earthquakes Last Week +``` From c0979eb56be833560479a049cc567b3c4381a577 Mon Sep 17 00:00:00 2001 From: DuchkPy <36851093+DuchkPy@users.noreply.github.com> Date: Fri, 29 Jan 2021 11:41:19 +0000 Subject: [PATCH 04/19] Correct figures on list reference (#16338) --- source/_docs/configuration/packages.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_docs/configuration/packages.markdown b/source/_docs/configuration/packages.markdown index 717846a1421..21b49a04cfd 100644 --- a/source/_docs/configuration/packages.markdown +++ b/source/_docs/configuration/packages.markdown @@ -65,7 +65,7 @@ There are some rules for packages that will be merged: input_boolean: my_input: ``` -3. Any integration that is not a platform [2], or dictionaries with Entity ID keys [3] can only be merged if its keys, except those for lists, are solely defined once. +3. Any integration that is not a platform [1], or dictionaries with Entity ID keys [2] can only be merged if its keys, except those for lists, are solely defined once.
Components inside packages can only specify platform entries using configuration style 1, where all the platforms are grouped under the integration name. From a2d53646e17bf7b6f31c36f2dcc51eec713fb74d Mon Sep 17 00:00:00 2001 From: Calvin Date: Fri, 29 Jan 2021 13:01:01 +0100 Subject: [PATCH 05/19] Update Aftership documentation, API use requires paid plan (#16346) Updated the documentation. The free plan of Aftership does not include API tracking anymore. --- source/_integrations/aftership.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/_integrations/aftership.markdown b/source/_integrations/aftership.markdown index 26e950221a2..71558c9314a 100644 --- a/source/_integrations/aftership.markdown +++ b/source/_integrations/aftership.markdown @@ -8,7 +8,7 @@ ha_iot_class: Cloud Polling ha_domain: aftership --- -The `aftership` platform allows one to track deliveries by [AfterShip](https://www.aftership.com), a service that supports 490+ couriers worldwide. There is a 'Forever Free' tier which allows tracking of up to 50 packages per month. There are various paid-for tiers after that. +The `aftership` platform allows one to track deliveries by [AfterShip](https://www.aftership.com), a service that supports 490+ couriers worldwide. To use the tracking API functionality, the Essentials plan is required. This plan includes 100 shipments per month. There are various paid-for tiers after that. The sensor value shows the number of packages that are not in `Delivered` state. As attributes are the number of packages per status. @@ -17,7 +17,7 @@ The sensor value shows the number of packages that are not in `Delivered` state. To use this sensor, you need an [AfterShip Account](https://accounts.aftership.com/register) and set up an API Key. To set up an API Key go to [AfterShip API](https://admin.aftership.com/settings/api-keys) page, and copy existing key or generate a new one.
-AfterShip recently started requiring having a credit card on file even if you are only using the free plan. That does not change the functionality of the platform, just something to be aware of. +AfterShip recently removed the tracking API functionality from the Forever Free plan. The tracking API functionality requires at least the Essentials plan.
## Configuration From 280d1a021474ad13c390dbddb85bdf32d15a6bcc Mon Sep 17 00:00:00 2001 From: jazzy-r <66524094+jazzy-r@users.noreply.github.com> Date: Fri, 29 Jan 2021 12:25:16 +0000 Subject: [PATCH 06/19] Update switchbot.markdown (#16347) MAC ADDRESS does not have to be lowercase. --- source/_integrations/switchbot.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/switchbot.markdown b/source/_integrations/switchbot.markdown index d6329ca4a79..6457db41d20 100644 --- a/source/_integrations/switchbot.markdown +++ b/source/_integrations/switchbot.markdown @@ -24,7 +24,7 @@ switch: {% configuration %} mac: - description: The device MAC address with lower-case letters. + description: The device MAC address with upper-case letters. required: true type: string name: From 2a8d16aedcc726cf038f2b36403d2b797a8729b9 Mon Sep 17 00:00:00 2001 From: frodcab Date: Fri, 29 Jan 2021 14:28:41 +0100 Subject: [PATCH 07/19] Update bmp280.markdown (#16339) Update to solve a typo in the yaml config. --- source/_integrations/bmp280.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/bmp280.markdown b/source/_integrations/bmp280.markdown index 77f0a97b4ef..986874153d2 100644 --- a/source/_integrations/bmp280.markdown +++ b/source/_integrations/bmp280.markdown @@ -24,7 +24,7 @@ To use a BMP280 sensor in your installation, you have to enable I2C on your host ```yaml sensor: - platform: bmp280 - - i2c_address: 0x77 + i2c_address: 0x77 ``` {% configuration %} From 57fa899557c37ac0c4ff899a2813109c1ed812e0 Mon Sep 17 00:00:00 2001 From: tanderson1992 <59940072+tanderson1992@users.noreply.github.com> Date: Fri, 29 Jan 2021 14:37:39 -0500 Subject: [PATCH 08/19] Update SIMPLISAFE_EVENT results and automation usage. (#16342) --- source/_integrations/simplisafe.markdown | 43 ++++++++++++++++++------ 1 file changed, 32 insertions(+), 11 deletions(-) diff --git a/source/_integrations/simplisafe.markdown b/source/_integrations/simplisafe.markdown index 203f45a6eea..689a9e6b2c0 100644 --- a/source/_integrations/simplisafe.markdown +++ b/source/_integrations/simplisafe.markdown @@ -105,30 +105,51 @@ following keys: * `system_id`: the system ID to which the event belongs * `timestamp`: the UTC datetime at which the event was received -For example, when the system is armed by "remote" means (via the web app, etc.), a +For example, when someone rings the doorbell, a `SIMPLISAFE_EVENT` event will fire with the following event data: ```python { - "changed_by": "", - "event_type": "armed_home", - "info": "System Armed (Home) by Remote Management", - "sensor_name": "", - "sensor_serial": "", - "sensor_type": "remote", - "system_id": 123456, - "timestamp": datetime.datetime(2020, 2, 13, 23, 1, 13, tzinfo=), + "event_type": "SIMPLISAFE_EVENT", + "data": { + "last_event_changed_by": "", + "last_event_type": "doorbell_detected", + "last_event_info": "Someone is at your \"Front Door\"", + "last_event_sensor_name": "Front Door", + "last_event_sensor_serial": "", + "last_event_sensor_type": "doorbell", + "system_id": [systemid], + "last_event_timestamp": "2021-01-28T22:01:32+00:00" + }, + "origin": "LOCAL", + "time_fired": "2021-01-28T22:01:37.478539+00:00", + "context": { + "id": "[id]", + "parent_id": null, + "user_id": null + } } ``` -`event_type`, being one of the key fields automations might be built from, can have the -following values: +`last_event_type` can have the following values: * `camera_motion_detected` * `doorbell_detected` * `entry_detected` * `motion_detected` +To build an automation using one of these, use `SIMPLISAFE_EVENT` +as an event trigger, with `last_event_type` as the `event_data`. +For example, the following will trigger when the doorbell rings: + +```yaml +trigger: + - platform: event + event_type: SIMPLISAFE_EVENT + event_data: + last_event_type: doorbell_detected +``` + ### `SIMPLISAFE_NOTIFICATION` `SIMPLISAFE_NOTIFICATION` events represent system notifications that would appear in the From 6ec777dff54b11d7fccae83343461bae8c8574f1 Mon Sep 17 00:00:00 2001 From: Daniel Rheinbay Date: Sat, 30 Jan 2021 12:10:28 +0100 Subject: [PATCH 09/19] Update debugpy.markdown (#16356) Eliminate redundant "the" --- source/_integrations/debugpy.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/_integrations/debugpy.markdown b/source/_integrations/debugpy.markdown index e96695ed19a..0f7289c8fef 100644 --- a/source/_integrations/debugpy.markdown +++ b/source/_integrations/debugpy.markdown @@ -19,8 +19,8 @@ the default library used by Visual Studio Code. This is useful in testing changes on a local development install, or connecting to a production server to debug issues. It is possible to load the integration -without the activating the debugger, but injecting it with a service call. This -is particularly useful on a developer' production system as it does not impact +without activating the debugger, but injecting it with a service call. This +is particularly useful on a developer's production system as it does not impact performance when not injected. ## Configuration From b4a5646d97bf0594964b584eba6000b64948a0ab Mon Sep 17 00:00:00 2001 From: Bouwe Westerdijk <11290930+bouwew@users.noreply.github.com> Date: Sat, 30 Jan 2021 12:22:29 +0100 Subject: [PATCH 10/19] Correct & extend password info (#16358) --- source/_integrations/plugwise.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/plugwise.markdown b/source/_integrations/plugwise.markdown index 6baf44ecd4d..1fd2e59cc8c 100644 --- a/source/_integrations/plugwise.markdown +++ b/source/_integrations/plugwise.markdown @@ -26,7 +26,7 @@ Platforms available - depending on your Smile and setup include: - `binary_sensor` (for domestic hot water and secondary heater) - `switch` (for Plugs connected to Adam or Stealths and Circles connected to a Stretch) -The password can be found on the bottom of your Smile or Stretch, it should consist of 6 characters. To find your IP address use the Plugwise App: +The password can be found on the bottom of your Smile or Stretch, the ID, it should consist of 8 characters. To find your IP address use the Plugwise App: - Open the Plugwise App and choose the 'Settings'-icon (☰) and choose 'HTML-interface'. - Go to the (lower) 'Settings'-icon (☰) and choose 'Preferences'. From 9c19ac20698b40677d2c882782400d6e693355a4 Mon Sep 17 00:00:00 2001 From: Philip Allgaier Date: Sat, 30 Jan 2021 19:06:15 +0100 Subject: [PATCH 11/19] Sort device classes (#16359) * Sort device classes * Update sensor.markdown --- source/_integrations/sensor.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/_integrations/sensor.markdown b/source/_integrations/sensor.markdown index 9e04f7c3db2..46cf2ec4191 100644 --- a/source/_integrations/sensor.markdown +++ b/source/_integrations/sensor.markdown @@ -19,16 +19,16 @@ The way these sensors are displayed in the frontend can be modified in the [cust - **None**: Generic sensor. This is the default and doesn't need to be set. - **battery**: Percentage of battery that is left. +- **current**: Current in A. +- **energy**: Energy in Wh or kWh. - **humidity**: Percentage of humidity in the air. - **illuminance**: The current light level in lx or lm. - **signal_strength**: Signal strength in dB or dBm. - **temperature**: Temperature in °C or °F. - **power**: Power in W or kW. +- **power_factor**: Power factor in %. - **pressure**: Pressure in hPa or mbar. - **timestamp**: Datetime object or timestamp string (ISO 8601). -- **current**: Current in A. -- **energy**: Energy in Wh or kWh. -- **power_factor**: Power Factor in %. - **voltage**: Voltage in V.

From b198523e93e7801869cb0dc70c9472788cc6765f Mon Sep 17 00:00:00 2001 From: Philip Allgaier Date: Sat, 30 Jan 2021 23:51:31 +0100 Subject: [PATCH 12/19] Minor tweaks to KNX docs (#16362) Co-authored-by: Marvin Wichmann --- source/_integrations/knx.markdown | 113 +++++++++++++++--------------- 1 file changed, 56 insertions(+), 57 deletions(-) diff --git a/source/_integrations/knx.markdown b/source/_integrations/knx.markdown index 594d5d9c05a..c05ab9b4863 100644 --- a/source/_integrations/knx.markdown +++ b/source/_integrations/knx.markdown @@ -52,8 +52,7 @@ To use your KNX bus in your installation, add the following lines to your `confi knx: ``` -In order to make use of the various platforms KNX offers you will need to have the following configuration inside `configuration.yaml` depending on what -platforms you intend to use: +In order to make use of the various platforms that KNX offers you will need to add the relevant configuration sections to your setup. This could either all be in the Home Assistant main `configuration.yaml` file, or in a separate YAML file that you include in the main file or even be split into multiple dedicated files as shown below: ```yaml knx: @@ -62,13 +61,14 @@ knx: sensor: !include knx_sensor.yaml cover: !include knx_cover.yaml light: !include knx_light.yaml + climate: !include knx_climate.yaml notify: !include knx_notify.yaml scene: !include knx_scene.yaml ``` -Please check the dedicated platform documentation about how to configure them correctly. +Please see the dedicated platform sections below about how to configure them correctly. -Optional, or if you want to use the XKNX abstraction also for other scripted tools outside of Home Assistant: +Alternatively, if you want to use the [XKNX](https://xknx.io/) library abstraction (e.g., to re-use the configuration also for other scripted tools outside of Home Assistant): ```yaml knx: @@ -77,7 +77,7 @@ knx: {% configuration %} config_file: - description: The path for XKNX configuration file. See [xknx.io](https://xknx.io/configuration) for details + description: The path for XKNX configuration file. See [xknx.io](https://xknx.io/configuration) for details. required: false type: string rate_limit: @@ -86,7 +86,7 @@ rate_limit: default: 20 type: integer individual_address: - description: The KNX individual address that shall be used for routing or if a tunnelling server doesn't assign an IA at connection. + description: The KNX individual address (IA) that shall be used for routing or if a tunnelling server doesn't assign an IA at connection. required: false type: string default: "15.15.250" @@ -102,7 +102,7 @@ multicast_port: default: 3671 {% endconfiguration %} -If the auto detection of the KNX/IP device does not work you can specify IP and port of the tunneling device: +If the auto detection of the KNX/IP device does not work, you can specify IP and port of the tunneling device: ```yaml knx: @@ -150,7 +150,7 @@ knx: {% configuration %} fire_event: - description: If set to True, platform will write all received KNX messages to event bus + description: If set to `true`, platform will write all received KNX messages to event bus. required: inclusive type: boolean default: false @@ -159,7 +159,7 @@ fire_event_filter: required: inclusive type: [list, string] state_updater: - description: The integration will collect the current state of each configured device from the KNX bus to display it correctly within Home Assistant. Set this option to False to prevent this behavior. + description: The integration will collect the current state of each configured device from the KNX bus to display it correctly within Home Assistant. Set this option to `false` to prevent this behavior. required: false default: true type: boolean @@ -177,7 +177,7 @@ Service Data: {"address": "1/0/15", "payload": 0, "type": "temperature"} {% configuration %} address: - description: KNX group address + description: KNX group address. type: string payload: description: Payload to send to the bus. When `type` is not set, raw bytes are sent. Integers are then treated as DPT 1/2/3 payloads. For DPTs > 6 bits send a list. Each value represents 1 octet (0-255). Pad with 0 to DPT byte length. @@ -209,7 +209,7 @@ knx: - type: 'binary' entity_id: 'light.office' address: '0/3/0' - default: False + default: false - type: 'percentU8' entity_id: 'light.office' attribute: 'brightness' @@ -223,16 +223,16 @@ knx: {% configuration %} type: - description: Type of the exposed value. Either 'binary', 'time', 'date', 'datetime' or any supported type of [KNX Sensor](#sensor) (e.g., "temperature" or "humidity"). + description: Type of the exposed value. Either `binary`, `time`, `date`, `datetime` or any supported type of [KNX Sensor](#sensor) (e.g., "temperature" or "humidity"). type: string required: true entity_id: - description: Entity id to be exposed. Not needed for types time, date and datetime. + description: Entity ID to be exposed. Not needed for types `time`, `date` and `datetime`. type: string required: false attribute: description: Attribute of the entity that shall be sent to the KNX bus. If not set (or `None`) the state will be sent. - Eg. for a light the state is eigther "on" or "off" - with attribute you can expose its "brightness". + Eg. for a light the state is eigther "on" or "off". With `attribute` you can expose its "brightness". type: string required: false default: @@ -274,30 +274,30 @@ name: required: false type: string sync_state: - description: Actively read the value from the bus. If `False` no GroupValueRead telegrams will be sent to the bus. `sync_state` can be set to `init` to just initialize state on startup, `expire ` to read the state from the KNX bus when no telegram was received for \ or `every ` to update it regularly every \. Maximum value for \ is 1440. If just a number is configured "expire"-behaviour is used. Defaults to `True` which is interpreted as "expire 60". + description: Actively read the value from the bus. If `false` no GroupValueRead telegrams will be sent to the bus. `sync_state` can be set to `init` to just initialize state on startup, `expire ` to read the state from the KNX bus when no telegram was received for \ or `every ` to update it regularly every \. Maximum value for \ is 1440. If just a number is configured "expire"-behaviour is used. Defaults to `true` which is interpreted as "expire 60". required: false type: [boolean, string, integer] - default: True + default: true device_class: description: Sets the [class of the device](/integrations/binary_sensor/), changing the device state and icon that is displayed on the frontend. required: false type: string reset_after: - description: Reset back to OFF state after specified seconds. + description: Reset back to "off" state after specified seconds. required: false type: float invert: description: Invert the telegrams payload before processing. This is applied before `context_timeout` or `reset_after` is evaluated. required: false type: boolean - default: False + default: false ignore_internal_state: description: Specifies if telegrams should ignore the internal state and always trigger a Home Assistant state update. required: false type: boolean - default: False + default: false context_timeout: - description: The time in seconds between multiple identical telegram payloads would count towards the internal counter that is used for automations. Ex. You have automations in place that trigger your lights on button press and another set of lights if you click that button twice. This setting defines the time that a second button press would count toward, so if you set this 3.0 you can take up to 3 seconds in order to trigger the second button press. If set `ignore_internal_state` will be set to `True` internally. Maximum value is 10.0. + description: The time in seconds between multiple identical telegram payloads would count towards the internal counter that is used for automations. Ex. You have automations in place that trigger your lights on button press and another set of lights if you click that button twice. This setting defines the time that a second button press would count toward, so if you set this 3.0 you can take up to 3 seconds in order to trigger the second button press. If set `ignore_internal_state` will be set to `true` internally. Maximum value is 10.0. required: false type: float default: None @@ -400,8 +400,7 @@ knx: ``` If your device doesn't support setpoint_shift calculations (i.e., if you don't provide a `setpoint_shift_address` value) please set the `min_temp` and `max_temp` -attributes of the climate device to avoid issues with exceeding valid temperature values in the frontend. Please do also make sure to add the `target_temperature_address` -to the configuration in this case.: +attributes of the climate device to avoid issues with exceeding valid temperature values in the frontend. Please do also make sure to add the `target_temperature_address` to the configuration in this case.: ```yaml # Example configuration.yaml entry @@ -442,29 +441,29 @@ knx: ``` `operation_mode_frost_protection_address` / `operation_mode_night_address` / `operation_mode_comfort_address` / `operation_mode_standby_address` are not necessary if `operation_mode_address` is specified. -If the actor doesn't support explicit state communication objects the *_state_address can be configured with the same group address as the writeable *_address. The Read-Flag for the *_state_address communication object has to be set in ETS to support initial reading e.g., when starting Home Assistant. +If the actor doesn't support explicit state communication objects the `*_state_address` can be configured with the same group address as the writeable `*_address`. The read flag for the `*_state_address` communication object has to be set in ETS to support initial reading e.g., when starting Home Assistant. The following values are valid for the `heat_cool_address` and the `heat_cool_state_address`: -- 0 (cooling) -- 1 (heating) +- `0` (cooling) +- `1` (heating) -The following values are valid for the `hvac_mode` attribute: +The following values are valid for the Home Assistant [Climate](/integrations/climate/) `hvac_mode` attribute. Supported values for your KNX thermostats can be specified via `controller_modes` configuration variable: -- Off (maps internally to HVAC_MODE_OFF within Home Assistant) -- Auto (maps internally to HVAC_MODE_AUTO within Home Assistant) -- Heat (maps internally to HVAC_MDOE_HEAT within Home Assistant) -- Cool (maps internally to HVAC_MDOE_COOL within Home Assistant) -- Fan only (maps internally to HVAC_MODE_FAN_ONLY within Home Assistant) -- Dry (maps internally to HVAC_MODE_DRY within Home Assistant) +- `Off` (maps internally to `HVAC_MODE_OFF` within Home Assistant) +- `Auto` (maps internally to `HVAC_MODE_AUTO` within Home Assistant) +- `Heat` (maps internally to `HVAC_MDOE_HEAT` within Home Assistant) +- `Cool` (maps internally to `HVAC_MDOE_COOL` within Home Assistant) +- `Fan only` (maps internally to `HVAC_MODE_FAN_ONLY` within Home Assistant) +- `Dry` (maps internally to `HVAC_MODE_DRY` within Home Assistant) -The following presets are valid for the `preset_mode` attribute: +The following presets are valid for the Home Assistant [Climate](/integrations/climate/) `preset_mode` attribute. Supported values for your KNX thermostats can be specified via `operation_modes` configuration variable: -- Auto (maps internally to PRESET_NONE within Home Assistant) -- Comfort (maps internally to PRESET_COMFORT within Home Assistant) -- Standby (maps internally to PRESET_AWAY within Home Assistant) -- Night (maps internally to PRESET_SLEEP within Home Assistant) -- Frost Protection (maps internally to PRESET_ECO within Home Assistant) +- `Auto` (maps internally to `PRESET_NONE` within Home Assistant) +- `Comfort` (maps internally to `PRESET_COMFORT` within Home Assistant) +- `Standby` (maps internally to `PRESET_AWAY` within Home Assistant) +- `Night` (maps internally to `PRESET_SLEEP` within Home Assistant) +- `Frost` Protection (maps internally to `PRESET_ECO` within Home Assistant) {% configuration %} name: @@ -500,7 +499,6 @@ setpoint_shift_state_address: setpoint_shift_mode: description: Defines the internal device DPT used. Either 'DPT6010' or 'DPT9002'. required: false - default: 0.5 type: string default: DPT6010 setpoint_shift_min: @@ -534,7 +532,7 @@ controller_mode_address: required: false type: string controller_mode_state_address: - description: KNX address for reading HVAC Control Mode. *DPT 20.105* + description: KNX address for reading HVAC control mode. *DPT 20.105* required: false type: string heat_cool_address: @@ -657,12 +655,12 @@ travelling_time_up: default: 25 type: integer invert_position: - description: Set this to true if your actuator report fully closed as 0% in KNX. + description: Set this to `true` if your actuator report fully closed as 0% in KNX. required: false default: false type: boolean invert_angle: - description: Set this to true if your actuator reports tilt fully closed as 0% in KNX. + description: Set this to `true` if your actuator reports tilt fully closed as 0% in KNX. required: false default: false type: boolean @@ -676,8 +674,8 @@ device_class: The `knx light` integration is used as an interface to control KNX actuators for lighting applications such as: -- switching actuators -- dimming actuators +- Switching actuators +- Dimming actuators - LED controllers - DALI gateways @@ -744,12 +742,12 @@ color_temperature_mode: type: string default: absolute min_kelvin: - description: Warmest possible color temperature in Kelvin. (Used in combination with *color_temperature_address*) + description: Warmest possible color temperature in Kelvin. Used in combination with `color_temperature_address`. required: false type: integer default: 2700 max_kelvin: - description: Coldest possible color temperature in Kelvin. (Used in combination with *color_temperature_address*) + description: Coldest possible color temperature in Kelvin. Used in combination with `color_temperature_address`. required: false type: integer default: 6000 @@ -825,6 +823,7 @@ name: required: false type: string {% endconfiguration %} + The `knx` scenes platform allows you to trigger [KNX](https://www.knx.org/) scenes. ## Scene @@ -848,7 +847,7 @@ address: required: true type: string scene_number: - description: KNX scene number to be activated. ( 1 ... 64 ) + description: KNX scene number to be activated (range 1..64 ). required: true type: integer name: @@ -897,10 +896,10 @@ name: required: false type: string sync_state: - description: Actively read the value from the bus. If `False` no GroupValueRead telegrams will be sent to the bus. `sync_state` can be set to `init` to just initialize state on startup, `expire ` to read the state from the KNX bus when no telegram was received for \ or `every ` to update it regularly every \. Maximum value for \ is 1440. If just a number is configured "expire"-behaviour is used. Defaults to `True` which is interpreted as "expire 60". + description: Actively read the value from the bus. If `false` no GroupValueRead telegrams will be sent to the bus. `sync_state` can be set to `init` to just initialize state on startup, `expire ` to read the state from the KNX bus when no telegram was received for \ or `every ` to update it regularly every \. Maximum value for \ is 1440. If just a number is configured "expire"-behaviour is used. Defaults to `true` which is interpreted as "expire 60". required: false type: [boolean, string, integer] - default: True + default: true type: description: A type from the following table must be defined. The DPT of the group address should match the expected KNX DPT to be parsed correctly. required: true @@ -909,7 +908,7 @@ always_callback: description: Defines if telegrams with equal payload as the previously received telegram should trigger a state update within Home Assistant. required: false type: boolean - default: False + default: false {% endconfiguration %} | KNX DPT | type | size in byte | range | unit | @@ -1101,7 +1100,7 @@ invert: description: Invert the telegrams payload before processing or sending. required: false type: boolean - default: False + default: false {% endconfiguration %} Some KNX devices can change their state internally without any messages on the KNX bus, e.g., if you configure a timer on a channel. The optional `state_address` can be used to inform Home Assistant about these state changes. If a KNX message is seen on the bus addressed to the given state address, this will overwrite the state of the switch object. @@ -1130,8 +1129,8 @@ knx: address_day_night: "7/0/8" address_air_pressure: "7/0/9" address_humidity: "7/0/10" - expose_sensors: False - sync_state: True + expose_sensors: false + sync_state: true ``` {% configuration %} @@ -1189,13 +1188,13 @@ address_humidity: required: false type: string expose_sensors: - description: If true, exposes all sensor values as dedicated sensors to HA. + description: If true, exposes all sensor values as dedicated sensors to Home Assistant. required: false type: boolean - default: False + default: false sync_state: - description: Actively read the value from the bus. If `False` no GroupValueRead telegrams will be sent to the bus. + description: Actively read the value from the bus. If `false` no GroupValueRead telegrams will be sent to the bus. required: false type: boolean - default: True + default: true {% endconfiguration %} From bf2909228fa149745c01edf355981d1164ddbd5a Mon Sep 17 00:00:00 2001 From: Phil Hollenback Date: Sun, 31 Jan 2021 01:53:02 -0800 Subject: [PATCH 13/19] Fix a typo (#16364) --- source/_cookbook/foscam_away_mode_PTZ.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_cookbook/foscam_away_mode_PTZ.markdown b/source/_cookbook/foscam_away_mode_PTZ.markdown index 400e08573c6..22b3a324bdd 100644 --- a/source/_cookbook/foscam_away_mode_PTZ.markdown +++ b/source/_cookbook/foscam_away_mode_PTZ.markdown @@ -25,7 +25,7 @@ switch: value_template: '{% raw %}{{ value == "1" }}{% endraw %}' ``` -The service `shell_command.foscam_turn_off` sets the camera to point down and away to indicate it is not recording, and `shell_command.foscam_turn_on` sets the camera to point where I'd like to record. h of these services require preset points to be added to your camera. See source above for additional information. +The service `shell_command.foscam_turn_off` sets the camera to point down and away to indicate it is not recording, and `shell_command.foscam_turn_on` sets the camera to point where I'd like to record. Each of these services require preset points to be added to your camera. See source above for additional information. ```yaml shell_command: From 7910d17c0855c75df716dd96ec37996d4710df4e Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Mon, 1 Feb 2021 10:42:12 +0100 Subject: [PATCH 14/19] Bunch of YAML styling improvements (#16372) --- .../_cookbook/automation_first_light.markdown | 6 +- .../automation_flashing_lights.markdown | 20 +- .../automation_for_rainy_days.markdown | 18 +- source/_cookbook/automation_sun.markdown | 18 +- ...utomation_telegram_presence_alert.markdown | 6 +- ...n_using_timeinterval_inputboolean.markdown | 6 +- .../dim_and_brighten_lights.markdown | 20 +- .../dim_lights_when_playing_media.markdown | 12 +- .../_cookbook/foscam_away_mode_PTZ.markdown | 6 +- source/_cookbook/notify.mqtt.markdown | 2 +- .../notify_if__new_ha_release.markdown | 16 +- ...orm_actions_based_on_input_select.markdown | 2 +- ...ha_if_wemo_switch_is_not_detected.markdown | 16 +- source/_cookbook/send_a_reminder.markdown | 4 +- source/_cookbook/sonos_say.markdown | 6 +- source/_cookbook/track_battery_level.markdown | 8 +- ...r_10_minutes_when_motion_detected.markdown | 16 +- source/_docs/automation/action.markdown | 19 +- source/_docs/automation/yaml.markdown | 2 +- .../customizing-devices.markdown | 2 +- source/_docs/scripts.markdown | 45 +++-- source/_docs/scripts/conditions.markdown | 24 +-- .../alarm_control_panel.template.markdown | 2 +- source/_integrations/alert.markdown | 10 +- source/_integrations/arlo.markdown | 2 +- source/_integrations/bayesian.markdown | 10 +- .../binary_sensor.xiaomi_aqara.markdown | 2 +- source/_integrations/caldav.markdown | 2 +- source/_integrations/deconz.markdown | 8 +- .../_integrations/google_travel_time.markdown | 2 +- .../_integrations/here_travel_time.markdown | 2 +- source/_integrations/history_stats.markdown | 2 +- source/_integrations/input_boolean.markdown | 2 +- source/_integrations/insteon.markdown | 8 +- source/_integrations/kira.markdown | 6 +- source/_integrations/knx.markdown | 176 +++++++++--------- source/_integrations/konnected.markdown | 8 +- source/_integrations/lametric.markdown | 16 +- source/_integrations/lcn.markdown | 4 +- source/_integrations/lifx.markdown | 2 +- source/_integrations/media_player.markdown | 4 +- source/_integrations/meteo_france.markdown | 4 +- source/_integrations/meteoalarm.markdown | 6 +- source/_integrations/microsoft_face.markdown | 6 +- source/_integrations/miflora.markdown | 4 +- source/_integrations/minio.markdown | 4 +- source/_integrations/mitemp_bt.markdown | 4 +- source/_integrations/modem_callerid.markdown | 6 +- source/_integrations/mvglive.markdown | 4 +- source/_integrations/mysensors.markdown | 32 ++-- source/_integrations/nad.markdown | 4 +- .../nederlandse_spoorwegen.markdown | 4 +- source/_integrations/ness_alarm.markdown | 2 +- source/_integrations/netdata.markdown | 8 +- source/_integrations/netgear_lte.markdown | 6 +- source/_integrations/nightscout.markdown | 8 +- source/_integrations/nissan_leaf.markdown | 10 +- .../_integrations/notify.mysensors.markdown | 2 +- source/_integrations/notify_events.markdown | 14 +- .../nsw_rural_fire_service_feed.markdown | 2 +- source/_integrations/oasa_telematics.markdown | 4 +- source/_integrations/onkyo.markdown | 2 +- source/_integrations/opengarage.markdown | 2 +- source/_integrations/opensky.markdown | 4 +- source/_integrations/openuv.markdown | 8 +- source/_integrations/panel_iframe.markdown | 12 +- .../persistent_notification.markdown | 4 +- source/_integrations/pi_hole.markdown | 12 +- source/_integrations/picotts.markdown | 2 +- source/_integrations/pilight.markdown | 36 ++-- source/_integrations/plant.markdown | 20 +- source/_integrations/plex.markdown | 8 +- source/_integrations/point.markdown | 2 +- source/_integrations/prometheus.markdown | 4 +- source/_integrations/pvoutput.markdown | 18 +- source/_integrations/qbittorrent.markdown | 2 +- source/_integrations/rainbird.markdown | 2 +- source/_integrations/recswitch.markdown | 4 +- source/_integrations/rejseplanen.markdown | 10 +- source/_integrations/rest.markdown | 2 +- source/_integrations/rest_command.markdown | 6 +- source/_integrations/script.markdown | 2 +- source/_integrations/velbus.markdown | 8 +- source/_integrations/workday.markdown | 2 +- source/_lovelace/picture-elements.markdown | 4 +- 85 files changed, 436 insertions(+), 416 deletions(-) diff --git a/source/_cookbook/automation_first_light.markdown b/source/_cookbook/automation_first_light.markdown index f752ad5f9bf..39a4f15e9d9 100644 --- a/source/_cookbook/automation_first_light.markdown +++ b/source/_cookbook/automation_first_light.markdown @@ -24,7 +24,7 @@ automation: - alias: Enable First Morning Trigger trigger: - platform: time - at: '05:00:00' + at: "05:00:00" action: service: homeassistant.turn_on entity_id: input_boolean.trigger_first_morning @@ -47,12 +47,12 @@ automation: trigger: platform: state entity_id: binary_sensor.livingroom_motion - to: 'on' + to: "on" # only complete the automation if we're still waiting for the first motion condition: condition: state entity_id: input_boolean.trigger_first_morning - state: 'on' + state: "on" action: # turn off the "waiting" boolean regardless of whether lights will turn on diff --git a/source/_cookbook/automation_flashing_lights.markdown b/source/_cookbook/automation_flashing_lights.markdown index 83157343e31..d285e3e3d4a 100644 --- a/source/_cookbook/automation_flashing_lights.markdown +++ b/source/_cookbook/automation_flashing_lights.markdown @@ -13,42 +13,42 @@ For flashing regular lights in case an alarm is triggered. # AlmSnd1 - switch for a buzzer automation: -- alias: 'Alarm_PIR_Room1' +- alias: "Alarm_PIR_Room1" trigger: platform: state entity_id: binary_sensor.PIR1 - to: 'on' + to: "on" condition: - condition: state entity_id: switch.AlmAct1 - state: 'on' + state: "on" - condition: state entity_id: script.alarm_room1 - state: 'off' + state: "off" action: # start alarm on movement if alarm activated # and the alarm is not triggered service: script.turn_on entity_id: script.alarm_room1 -- alias: 'flash_room1_start' +- alias: "flash_room1_start" trigger: platform: state entity_id: switch.AlmSnd1 - to: 'on' + to: "on" action: service: script.turn_on entity_id: script.flash_room1 -- alias: 'flash_room1_stop' +- alias: "flash_room1_stop" trigger: platform: state entity_id: switch.REL1 - to: 'off' + to: "off" condition: condition: state entity_id: switch.AlmSnd1 - state: 'off' + state: "off" action: service: script.turn_off entity_id: script.flash_room1 @@ -68,7 +68,7 @@ script: - alias: email_Room1 service: notify.email data: - message: 'Movement alarm in Room1' + message: "Movement alarm in Room1" - delay: # time interval for alarm sound and light flashing seconds: 60 diff --git a/source/_cookbook/automation_for_rainy_days.markdown b/source/_cookbook/automation_for_rainy_days.markdown index 35f66c70948..b29dcafa266 100644 --- a/source/_cookbook/automation_for_rainy_days.markdown +++ b/source/_cookbook/automation_for_rainy_days.markdown @@ -10,18 +10,18 @@ Turn on a light in the living room when it starts raining, someone is home, and ```yaml automation: - - alias: 'Rainy Day' + - alias: "Rainy Day" trigger: - platform: state entity_id: sensor.precip_intensity - to: 'rain' + to: "rain" condition: - condition: state entity_id: all - state: 'home' + state: "home" - condition: time - after: '14:00' - before: '23:00' + after: "14:00" + before: "23:00" action: service: light.turn_on entity_id: light.couch_lamp @@ -30,15 +30,15 @@ automation: And then of course turn off the lamp when it stops raining but only if it's within an hour before sunset. ```yaml - - alias: 'Rain is over' + - alias: "Rain is over" trigger: - platform: state entity_id: sensor.precip_intensity - to: 'None' + to: "None" condition: - condition: sun - after: 'sunset' - after_offset: '-01:00:00' + after: "sunset" + after_offset: "-01:00:00" action: service: light.turn_off entity_id: light.couch_lamp diff --git a/source/_cookbook/automation_sun.markdown b/source/_cookbook/automation_sun.markdown index 615aaed79d1..f6af4cd26c0 100644 --- a/source/_cookbook/automation_sun.markdown +++ b/source/_cookbook/automation_sun.markdown @@ -44,24 +44,24 @@ Send notifications through [PushBullet](/integrations/pushbullet) when the sun s ```yaml automation: - - alias: 'Send notification when sun rises' + - alias: "Send notification when sun rises" trigger: platform: sun event: sunrise - offset: '+00:00:00' + offset: "+00:00:00" action: service: notify.pushbullet data: - message: 'The sun is up.' - - alias: 'Send notification when sun sets' + message: "The sun is up." + - alias: "Send notification when sun sets" trigger: platform: sun event: sunset - offset: '+00:00:00' + offset: "+00:00:00" action: service: notify.pushbullet data: - message: 'The sun is down.' + message: "The sun is down." ``` #### Automations for lights and blinds based on solar elevation @@ -69,7 +69,7 @@ automation: Solar elevation automations can cope with offsets from sunset / sunrise as the seasons change better than using a time based offsets. ```yaml -- alias: 'Turn a few lights on when the sun gets dim' +- alias: "Turn a few lights on when the sun gets dim" trigger: platform: numeric_state entity_id: sun.sun @@ -79,7 +79,7 @@ Solar elevation automations can cope with offsets from sunset / sunrise as the s service: scene.turn_on entity_id: scene.background_lights -- alias: 'Turn more lights on as the sun gets dimmer' +- alias: "Turn more lights on as the sun gets dimmer" trigger: platform: numeric_state entity_id: sun.sun @@ -89,7 +89,7 @@ Solar elevation automations can cope with offsets from sunset / sunrise as the s service: scene.turn_on entity_id: scene.more_lights -- alias: 'Close blind at dusk' +- alias: "Close blind at dusk" trigger: platform: numeric_state entity_id: sun.sun diff --git a/source/_cookbook/automation_telegram_presence_alert.markdown b/source/_cookbook/automation_telegram_presence_alert.markdown index c31224a8e5d..e8ceeb7ba10 100644 --- a/source/_cookbook/automation_telegram_presence_alert.markdown +++ b/source/_cookbook/automation_telegram_presence_alert.markdown @@ -23,10 +23,10 @@ automation: trigger: platform: state entity_id: device_tracker.device_name_here - from: 'not_home' - to: 'home' + from: "not_home" + to: "home" action: service: notify.Telegram data: - message: 'Person is now home' + message: "Person is now home" ``` diff --git a/source/_cookbook/automation_using_timeinterval_inputboolean.markdown b/source/_cookbook/automation_using_timeinterval_inputboolean.markdown index e601d47f79e..7307f890f96 100644 --- a/source/_cookbook/automation_using_timeinterval_inputboolean.markdown +++ b/source/_cookbook/automation_using_timeinterval_inputboolean.markdown @@ -17,14 +17,14 @@ input_boolean: automation: # Changes Hue light every two minutes to random color if input boolean is set to on -- alias: 'Set LivingColors to random color' +- alias: "Set LivingColors to random color" trigger: platform: time_pattern - minutes: '/2' + minutes: "/2" condition: condition: state entity_id: input_boolean.loop_livingcolors - state: 'on' + state: "on" action: service: light.turn_on entity_id: light.woonkamer_livingcolors diff --git a/source/_cookbook/dim_and_brighten_lights.markdown b/source/_cookbook/dim_and_brighten_lights.markdown index 29eb0996cee..350a5a4746e 100644 --- a/source/_cookbook/dim_and_brighten_lights.markdown +++ b/source/_cookbook/dim_and_brighten_lights.markdown @@ -13,8 +13,8 @@ For the controller this was written for scene ID 13 was sent when the up button ```yaml automation: - - alias: 'Make the lights go bright' - initial_state: 'on' + - alias: "Make the lights go bright" + initial_state: "on" trigger: - platform: event event_type: zwave.scene_activated @@ -29,8 +29,8 @@ automation: direction: up light: light.YOUR_LIGHT - - alias: 'Make the lights go dim' - initial_state: 'on' + - alias: "Make the lights go dim" + initial_state: "on" trigger: - platform: event event_type: zwave.scene_activated @@ -45,8 +45,8 @@ automation: direction: down light: light.YOUR_LIGHT - - alias: 'Stop the light just there' - initial_state: 'on' + - alias: "Stop the light just there" + initial_state: "on" trigger: - platform: event event_type: zwave.scene_activated @@ -73,28 +73,28 @@ To allow flexibility all four variables are controlled by [Input Number](/integr ```yaml input_number: light_step: - name: 'Step the lights this much' + name: "Step the lights this much" initial: 20 min: 1 max: 64 step: 1 light_minimum: - name: 'No dimmer than this' + name: "No dimmer than this" initial: 5 min: 1 max: 255 step: 1 light_maximum: - name: 'No brighter than this' + name: "No brighter than this" initial: 255 min: 50 max: 255 step: 1 light_delay_ms: - name: 'Step the lights this often (ms)' + name: "Step the lights this often (ms)" initial: 500 min: 100 max: 5000 diff --git a/source/_cookbook/dim_lights_when_playing_media.markdown b/source/_cookbook/dim_lights_when_playing_media.markdown index d0f4ae9f151..da90ecb3763 100644 --- a/source/_cookbook/dim_lights_when_playing_media.markdown +++ b/source/_cookbook/dim_lights_when_playing_media.markdown @@ -45,12 +45,12 @@ automation: trigger: - platform: state entity_id: media_player.htpc - from: 'playing' - to: 'idle' + from: "playing" + to: "idle" condition: - condition: state entity_id: sun.sun - state: 'below_horizon' + state: "below_horizon" action: service: scene.turn_on entity_id: scene.livingroom_normal @@ -59,12 +59,12 @@ automation: trigger: - platform: state entity_id: media_player.htpc - to: 'playing' - from: 'idle' + to: "playing" + from: "idle" condition: - condition: state entity_id: sun.sun - state: 'below_horizon' + state: "below_horizon" action: service: scene.turn_on entity_id: scene.livingroom_dim diff --git a/source/_cookbook/foscam_away_mode_PTZ.markdown b/source/_cookbook/foscam_away_mode_PTZ.markdown index 22b3a324bdd..95cd12b85a2 100644 --- a/source/_cookbook/foscam_away_mode_PTZ.markdown +++ b/source/_cookbook/foscam_away_mode_PTZ.markdown @@ -19,7 +19,7 @@ switch: switches: #Switch for Foscam Motion Detection foscam_motion: - command_on: 'curl -k --tls-max 1.2 "https://ipaddress:443/cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&isEnable=1&usr=admin&pwd=password"' + command_on: "curl -k --tls-max 1.2 "https://ipaddress:443/cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&isEnable=1&usr=admin&pwd=password"" command_off: 'curl -k --tls-max 1.2 "https://ipaddress:443/cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&isEnable=0&usr=admin&pwd=password"' command_state: 'curl -k --silent --tls-max 1.2 "https://ipaddress:443/cgi-bin/CGIProxy.fcgi?cmd=getMotionDetectConfig&usr=admin&pwd=password" | grep "isEnable" | cut -b 15' value_template: '{% raw %}{{ value == "1" }}{% endraw %}' @@ -64,14 +64,14 @@ automation: trigger: platform: state entity_id: group.family - from: 'home' + from: "home" action: service: script.foscam_on - alias: Set Foscam to Home Mode when I arrive Home trigger: platform: state entity_id: group.family - to: 'home' + to: "home" action: service: script.foscam_off ``` diff --git a/source/_cookbook/notify.mqtt.markdown b/source/_cookbook/notify.mqtt.markdown index 6ddb0d6de35..edf29132a2f 100644 --- a/source/_cookbook/notify.mqtt.markdown +++ b/source/_cookbook/notify.mqtt.markdown @@ -50,7 +50,7 @@ automation: trigger: platform: state entity_id: device_tracker.me - to: 'home' + to: "home" action: service: script.notify_mqtt data: diff --git a/source/_cookbook/notify_if__new_ha_release.markdown b/source/_cookbook/notify_if__new_ha_release.markdown index e63697ccb72..8a99099d99d 100644 --- a/source/_cookbook/notify_if__new_ha_release.markdown +++ b/source/_cookbook/notify_if__new_ha_release.markdown @@ -19,12 +19,12 @@ automation: trigger: - platform: state entity_id: binary_sensor.updater - from: 'off' - to: 'on' + from: "off" + to: "on" action: - service: notify.jabber data: - message: 'There is a new Home Assistant release available.' + message: "There is a new Home Assistant release available." ``` You can use [templates](/topics/templating/) to include the release number of Home Assistant if you prefer. The following example sends a notification via [Pushbullet](/integrations/pushbullet) with the Home Assistant version in the message. @@ -32,7 +32,7 @@ You can use [templates](/topics/templating/) to include the release number of Ho ```yaml notify: - platform: pushbullet - api_key: 'YOUR_KEY_HERE' + api_key: "YOUR_KEY_HERE" name: pushbullet automation: @@ -40,13 +40,13 @@ automation: trigger: - platform: state entity_id: binary_sensor.updater - from: 'off' - to: 'on' + from: "off" + to: "on" action: - service: notify.pushbullet data: - title: 'New Home Assistant Release' - target: 'YOUR_TARGET_HERE' #See Pushbullet integration for usage + title: "New Home Assistant Release" + target: "YOUR_TARGET_HERE" #See Pushbullet integration for usage message: "Home Assistant {% raw %} {{ state_attr('binary_sensor.updater', 'newest_version') }} {% endraw %} is now available." ``` diff --git a/source/_cookbook/perform_actions_based_on_input_select.markdown b/source/_cookbook/perform_actions_based_on_input_select.markdown index 20a1752dccf..6e9ed91f224 100644 --- a/source/_cookbook/perform_actions_based_on_input_select.markdown +++ b/source/_cookbook/perform_actions_based_on_input_select.markdown @@ -160,5 +160,5 @@ automation: {% else %}{% endraw %} none{% raw %} {% endif %}{% endraw %} - media_content_type: 'music' + media_content_type: "music" ``` diff --git a/source/_cookbook/restart_ha_if_wemo_switch_is_not_detected.markdown b/source/_cookbook/restart_ha_if_wemo_switch_is_not_detected.markdown index 3caf90f7caf..bc54bdd3ff4 100644 --- a/source/_cookbook/restart_ha_if_wemo_switch_is_not_detected.markdown +++ b/source/_cookbook/restart_ha_if_wemo_switch_is_not_detected.markdown @@ -51,7 +51,7 @@ script: minutes: 15 - service: notify.pushbullet data: - message: 'WeMo not found, restarting HA' + message: "WeMo not found, restarting HA" - service: switch.turn_on data: entity_id: switch.killhass @@ -61,32 +61,32 @@ automation: trigger: platform: state entity_id: device_tracker.wemo - from: 'not_home' - to: 'home' + from: "not_home" + to: "home" condition: - condition: template value_template: {% raw %}'{% if states.switch.wemo %}false{% else %}true{% endif %}'{% endraw %} - condition: state entity_id: script.restarthawemo - state: 'off' + state: "off" action: service: homeassistant.turn_on entity_id: script.restarthawemo -- alias: 'Stop HA' +- alias: "Stop HA" trigger: - platform: state entity_id: switch.KillHass - to: 'on' + to: "on" action: service: homeassistant.stop - - alias: 'Stop restarting HA is WeMo is found' + - alias: "Stop restarting HA is WeMo is found" trigger: platform: template value_template: {% raw %}'{% if states.switch.wemo %}true{% else %}false{% endif %}'{% endraw %} condition: condition: state entity_id: script.restarthawemo - state: 'on' + state: "on" action: service: homeassistant.turn_off entity_id: script.restarthawemo diff --git a/source/_cookbook/send_a_reminder.markdown b/source/_cookbook/send_a_reminder.markdown index cdae3398aac..0e1c9236692 100644 --- a/source/_cookbook/send_a_reminder.markdown +++ b/source/_cookbook/send_a_reminder.markdown @@ -24,9 +24,9 @@ automation: - alias: Send message at a given time trigger: platform: time - at: '12:15:00' + at: "12:15:00" action: service: notify.jabber data: - message: 'Time for lunch' + message: "Time for lunch" ``` diff --git a/source/_cookbook/sonos_say.markdown b/source/_cookbook/sonos_say.markdown index 74b12f23ae5..15a5145241c 100644 --- a/source/_cookbook/sonos_say.markdown +++ b/source/_cookbook/sonos_say.markdown @@ -36,7 +36,7 @@ script: We call this now with: ```yaml automation: - - alias: 'test' + - alias: "test" trigger: - platform: state entity_id: input_boolean.mytest @@ -45,8 +45,8 @@ automation: data: sonos_entity: media_player.office volume: 0.5 - message: 'Your husband coming home!' - delay: '00:00:05' + message: "Your husband coming home!" + delay: "00:00:05" ``` Note that this example uses the `voicerss` text-to-speech platform. There are many platforms that can be used. The one installed by default with Home Assistant is Google TTS. This appears in your `configuration.yaml` file as: diff --git a/source/_cookbook/track_battery_level.markdown b/source/_cookbook/track_battery_level.markdown index b73828caa7a..9ea3ce8a960 100644 --- a/source/_cookbook/track_battery_level.markdown +++ b/source/_cookbook/track_battery_level.markdown @@ -20,7 +20,7 @@ sensor: sensors: battery_iphone: friendly_name: iPhone Battery - unit_of_measurement: '%' + unit_of_measurement: "%" value_template: >- {%- if state_attr('device_tracker.iphone', 'battery') %} {{ state_attr('device_tracker.iphone', 'battery')|round }} @@ -44,7 +44,7 @@ sensor: sensors: battery_phone: friendly_name: AndroidPhone Battery - unit_of_measurement: '%' + unit_of_measurement: "%" value_template: >- {%- if state_attr('device_tracker.xxxxx', 'battery_level') %} {{ state_attr('device_tracker.xxxxx', 'battery_level')|round }} @@ -71,7 +71,7 @@ sensor: state_topic: "owntracks/username/deviceid" name: "Battery Tablet" unit_of_measurement: "%" - value_template: '{{ value_json.batt }}' + value_template: "{{ value_json.batt }}" device_class: battery ``` @@ -90,7 +90,7 @@ sensor: sensors: your_battery_sensor_name: value_template: "{{ state_attr('device_tracker.deviceid', 'battery_level') }}" - unit_of_measurement: '%' + unit_of_measurement: "%" ``` {% endraw %} diff --git a/source/_cookbook/turn_on_light_for_10_minutes_when_motion_detected.markdown b/source/_cookbook/turn_on_light_for_10_minutes_when_motion_detected.markdown index 4afb1e49785..9b46804f285 100644 --- a/source/_cookbook/turn_on_light_for_10_minutes_when_motion_detected.markdown +++ b/source/_cookbook/turn_on_light_for_10_minutes_when_motion_detected.markdown @@ -14,7 +14,7 @@ automation: trigger: platform: state entity_id: sensor.motion_sensor - to: 'on' + to: "on" action: service: light.turn_on entity_id: light.kitchen_light @@ -23,7 +23,7 @@ automation: trigger: platform: state entity_id: sensor.motion_sensor - to: 'off' + to: "off" for: minutes: 10 action: @@ -39,7 +39,7 @@ automation: trigger: - platform: state entity_id: sensor.motion_sensor, binary_sensor.front_door, binary_sensor.doorbell - to: 'on' + to: "on" action: - service: light.turn_on data: @@ -65,7 +65,7 @@ automation: timer: hallway: - duration: '00:10:00' + duration: "00:10:00" ``` You can also restrict lights from turning on based on time of day and implement transitions for fading lights on and off. @@ -75,11 +75,11 @@ You can also restrict lights from turning on based on time of day and implement trigger: platform: state entity_id: binary_sensor.ecolink_pir_motion_sensor_sensor - to: 'on' + to: "on" condition: condition: time - after: '07:30' - before: '23:30' + after: "07:30" + before: "23:30" action: service: homeassistant.turn_on entity_id: group.office_lights @@ -91,7 +91,7 @@ You can also restrict lights from turning on based on time of day and implement trigger: - platform: state entity_id: binary_sensor.ecolink_pir_motion_sensor_sensor - to: 'off' + to: "off" for: minutes: 15 action: diff --git a/source/_docs/automation/action.markdown b/source/_docs/automation/action.markdown index d72e382deef..d0e8cfb77e0 100644 --- a/source/_docs/automation/action.markdown +++ b/source/_docs/automation/action.markdown @@ -34,11 +34,11 @@ automation 2: # Actions are scripts so can also be a list of actions - service: "{{ notification_service }}" data: - message: Beautiful sunset! + message: "Beautiful sunset!" - delay: 0:35 - service: notify.notify data: - message: Oh wow you really missed something great. + message: "Oh wow you really missed something great." ``` Conditions can also be part of an action. You can combine multiple service calls and conditions in a single action, and they will be processed in the order you put them in. If the result of a condition is false, the action will stop there so any service calls after that condition will not be executed. @@ -49,17 +49,20 @@ automation: trigger: platform: state entity_id: sensor.office_occupancy - to: 'on' + to: "on" action: - service: notify.notify data: message: Testing conditional actions - condition: or conditions: - - condition: template - value_template: '{% raw %}{{ state_attr('sun.sun', 'elevation') < 4 }}{% endraw %}' - - condition: template - value_template: '{% raw %}{{ states('sensor.office_illuminance') < 10 }}{% endraw %}' - - service: scene.turn_on + - condition: numeric_state + entity_id: sun.sun + attribute: elevation + below: 4 + - condition: state + entity_id: sensor.office_illuminance + below: 10 + - service: scene.turn_on entity_id: scene.office_at_evening ``` diff --git a/source/_docs/automation/yaml.markdown b/source/_docs/automation/yaml.markdown index 7ab5a71d95f..203a4f7be1a 100644 --- a/source/_docs/automation/yaml.markdown +++ b/source/_docs/automation/yaml.markdown @@ -46,7 +46,7 @@ automation my_lights: # with a '-'' to enter multiple - condition: state entity_id: all - state: 'home' + state: "home" - condition: time after: '16:00:00' before: '23:00:00' diff --git a/source/_docs/configuration/customizing-devices.markdown b/source/_docs/configuration/customizing-devices.markdown index 4058d7e93db..a6e8b05b8e5 100644 --- a/source/_docs/configuration/customizing-devices.markdown +++ b/source/_docs/configuration/customizing-devices.markdown @@ -108,7 +108,7 @@ homeassistant: light: icon: mdi:home automation: - initial_state: 'on' + initial_state: "on" # Customize entities matching a pattern customize_glob: "light.kitchen_*": diff --git a/source/_docs/scripts.markdown b/source/_docs/scripts.markdown index 96f7dc9346e..0bfd2d2bedb 100644 --- a/source/_docs/scripts.markdown +++ b/source/_docs/scripts.markdown @@ -18,7 +18,7 @@ script: entity_id: light.ceiling - service: notify.notify data: - message: 'Turned on the ceiling light!' + message: "Turned on the ceiling light!" ``` - [Call a Service](#call-a-service) @@ -68,7 +68,9 @@ The variables command allows you to set/override variables that will be accessib ```yaml - variables: - entities: light.kitchen, light.living_room + entities: + - light.kitchen + - light.living_room brightness: 100 - alias: Control lights service: light.turn_on @@ -87,7 +89,7 @@ While executing a script you can add a condition to stop further execution. When # If paulus is home, continue to execute the script below these lines - condition: state entity_id: device_tracker.paulus - state: 'home' + state: "home" ``` ## Delay @@ -95,6 +97,7 @@ While executing a script you can add a condition to stop further execution. When Delays are useful for temporarily suspending your script and start it at a later moment. We support different syntaxes for a delay as shown below. {% raw %} + ```yaml # Seconds # Waits 5 seconds @@ -120,15 +123,18 @@ Delays are useful for temporarily suspending your script and start it at a later - delay: minutes: 1 ``` + {% endraw %} All forms accept templates. {% raw %} + ```yaml # Waits however many minutes input_number.minute_delay is set to - delay: "{{ states('input_number.minute_delay') | multiply(60) | int }}" ``` + {% endraw %} ## Wait @@ -145,15 +151,18 @@ The template is re-evaluated whenever an entity ID that it references changes st {% raw %} ```yaml + # Wait until media player have stop the playing - wait_template: "{{ is_state('media_player.floor', 'stop') }}" ``` + {% endraw %} ### Wait for Trigger This action can use the same triggers that are available in an automation's `trigger` section. See [Automation Trigger](/docs/automation/trigger). The script will continue whenever any of the triggers fires. {% raw %} + ```yaml # Wait for a custom event or light to turn on and stay on for 10 sec - wait_for_trigger: @@ -164,6 +173,7 @@ This action can use the same triggers that are available in an automation's `tri to: 'on' for: 10 ``` + {% endraw %} ### Wait Timeout @@ -171,17 +181,20 @@ This action can use the same triggers that are available in an automation's `tri With both types of waits it is possible to set a timeout after which the script will continue its execution if the condition/event is not satisfied. Timeout has the same syntax as `delay`, and like `delay`, also accepts templates. {% raw %} + ```yaml # Wait for sensor to change to 'on' up to 1 minute before continuing to execute. - wait_template: "{{ is_state('binary_sensor.entrance', 'on') }}" timeout: '00:01:00' ``` + {% endraw %} You can also get the script to abort after the timeout by using optional `continue_on_timeout: false`. {% raw %} ```yaml + # Wait for IFTTT event or abort after specified timeout. - wait_for_trigger: - platform: event @@ -192,6 +205,7 @@ You can also get the script to abort after the timeout by using optional `contin minutes: "{{ timeout_minutes }}" continue_on_timeout: false ``` + {% endraw %} Without `continue_on_timeout: false` the script will always continue since the default for `continue_on_timeout` is `true`. @@ -209,14 +223,13 @@ Variable | Description This can be used to take different actions based on whether or not the condition was met, or to use more than one wait sequentially while implementing a single timeout overall. {% raw %} + ```yaml # Take different actions depending on if condition was met. - wait_template: "{{ is_state('binary_sensor.door', 'on') }}" timeout: 10 - choose: - - conditions: - - condition: template - value_template: "{{ not wait.completed }}" + - conditions: "{{ not wait.completed }}" sequence: - service: script.door_did_not_open default: @@ -234,7 +247,7 @@ This can be used to take different actions based on whether or not the condition - wait_for_trigger: - platform: state entity_id: binary_sensor.door_2 - to: 'on' + to: "on" for: 2 timeout: "{{ wait.remaining }}" continue_on_timeout: false @@ -260,35 +273,36 @@ You can also use event_data to fire an event with custom data. This could be use an event trigger. {% raw %} + ```yaml - event: MY_EVENT event_data: name: myEvent customData: "{{ myCustomVariable }}" ``` + {% endraw %} ### Raise and Consume Custom Events The following automation shows how to raise a custom event called `event_light_state_changed` with `entity_id` as the event data. The action part could be inside a script or an automation. -{% raw %} ```yaml - alias: Fire Event trigger: - platform: state entity_id: switch.kitchen - to: 'on' + to: "on" action: - event: event_light_state_changed event_data: - state: 'on' + state: "on" ``` -{% endraw %} The following automation shows how to capture the custom event `event_light_state_changed`, and retrieve corresponding `entity_id` that was passed as the event data. {% raw %} + ```yaml - alias: Capture Event trigger: @@ -299,6 +313,7 @@ The following automation shows how to capture the custom event `event_light_stat data: message: "kitchen light is turned {{ trigger.event.data.state }}" ``` + {% endraw %} ## Repeat a Group of Actions @@ -312,6 +327,7 @@ This form accepts a count value. The value may be specified by a template, in wh the template is rendered when the repeat step is reached. {% raw %} + ```yaml script: flash_light: @@ -334,6 +350,7 @@ script: light: hallway count: 3 ``` + {% endraw %} ### While Loop @@ -353,7 +370,7 @@ script: while: - condition: state entity_id: input_boolean.do_something - state: 'on' + state: "on" # Don't do it too many times - condition: template value_template: "{{ repeat.index <= 20 }}" @@ -393,7 +410,7 @@ automation: condition: - condition: state entity_id: binary_sensor.something - state: 'off' + state: "off" mode: single action: - alias: Repeat the sequence UNTIL the conditions are true @@ -408,7 +425,7 @@ automation: # Did it work? - condition: state entity_id: binary_sensor.something - state: 'on' + state: "on" ``` {% endraw %} diff --git a/source/_docs/scripts/conditions.markdown b/source/_docs/scripts/conditions.markdown index 6c173561719..5cb9903abfa 100644 --- a/source/_docs/scripts/conditions.markdown +++ b/source/_docs/scripts/conditions.markdown @@ -17,7 +17,7 @@ condition: conditions: - condition: state entity_id: 'device_tracker.paulus' - state: 'home' + state: "home" - condition: numeric_state entity_id: 'sensor.temperature' below: 20 @@ -31,7 +31,7 @@ The following configuration works the same as the one listed above: condition: - condition: state entity_id: 'device_tracker.paulus' - state: 'home' + state: "home" - condition: numeric_state entity_id: 'sensor.temperature' below: 20 @@ -49,7 +49,7 @@ condition: conditions: - condition: state entity_id: 'device_tracker.paulus' - state: 'home' + state: "home" - condition: numeric_state entity_id: 'sensor.temperature' below: 20 @@ -66,12 +66,12 @@ condition: conditions: - condition: state entity_id: 'device_tracker.paulus' - state: 'home' + state: "home" - condition: or conditions: - condition: state entity_id: sensor.weather_precip - state: 'rain' + state: "rain" - condition: numeric_state entity_id: 'sensor.temperature' below: 20 @@ -87,7 +87,7 @@ condition: conditions: - condition: state entity_id: device_tracker.paulus - state: 'home' + state: "home" - condition: state entity_id: alarm_control_panel.home_alarm state: disarmed @@ -167,7 +167,7 @@ Tests if an entity is a specified state. condition: condition: state entity_id: device_tracker.paulus - state: 'not_home' + state: "not_home" # optional: trigger only if state was this for last X time. for: hours: 1 @@ -184,7 +184,7 @@ condition: entity_id: - light.kitchen - light.living_room - state: 'on' + state: "on" ``` Testing if an entity is matching a set of possible conditions; @@ -245,14 +245,14 @@ The sun state can be used to test if the sun has set or risen. condition: condition: state # 'day' condition: from sunrise until sunset entity_id: sun.sun - state: 'above_horizon' + state: "above_horizon" ``` ```yaml condition: condition: state # from sunset until sunrise entity_id: sun.sun - state: 'below_horizon' + state: "below_horizon" ``` ### Sun elevation condition @@ -532,13 +532,13 @@ condition: below: 1 - condition: state entity_id: light.living_room - state: 'off' + state: "off" - condition: time before: '23:00:00' after: '14:00:00' - condition: state entity_id: script.light_turned_off_5min - state: 'off' + state: "off" ``` {% endraw %} diff --git a/source/_integrations/alarm_control_panel.template.markdown b/source/_integrations/alarm_control_panel.template.markdown index 9d040122eb1..ac8b932bbc9 100644 --- a/source/_integrations/alarm_control_panel.template.markdown +++ b/source/_integrations/alarm_control_panel.template.markdown @@ -47,7 +47,7 @@ alarm_control_panel: disarm: - condition: state entity_id: device_tracker.paulus - state: 'home' + state: "home" - service: alarm_control_panel.alarm_arm_home data: entity_id: alarm_control_panel.real_alarm diff --git a/source/_integrations/alert.markdown b/source/_integrations/alert.markdown index af22b2763e2..f0ff3a99ba2 100644 --- a/source/_integrations/alert.markdown +++ b/source/_integrations/alert.markdown @@ -38,7 +38,7 @@ alert: name: Garage is open done_message: Garage is closed entity_id: input_boolean.garage_door - state: 'on' + state: "on" repeat: 30 can_acknowledge: true skip_first: true @@ -137,7 +137,7 @@ alert: freshwater_temp_alert: name: "Warning: I have detected a problem with the freshwater tank temperature" entity_id: binary_sensor.freshwater_temperature_status - state: 'on' + state: "on" repeat: 5 can_acknowledge: true skip_first: false @@ -194,7 +194,7 @@ alert: garage_door: name: Garage is open entity_id: input_boolean.garage_door - state: 'on' # Optional, 'on' is the default value + state: "on" # Optional, 'on' is the default value repeat: - 15 - 30 @@ -228,7 +228,7 @@ alert: office_plant: name: Plant in office needs help entity_id: plant.plant_office - state: 'problem' + state: "problem" repeat: 30 can_acknowledge: true skip_first: true @@ -254,7 +254,7 @@ alert: garage_door: name: Garage is open entity_id: input_boolean.garage_door - state: 'on' # Optional, 'on' is the default value + state: "on" # Optional, 'on' is the default value repeat: - 15 - 30 diff --git a/source/_integrations/arlo.markdown b/source/_integrations/arlo.markdown index 7fb64c95596..5d655a870b8 100644 --- a/source/_integrations/arlo.markdown +++ b/source/_integrations/arlo.markdown @@ -54,7 +54,7 @@ The Arlo integration also provides a camera service to enable/disable the motion ```yaml #automation.yaml - alias: Enable Arlo upon HA start' - initial_state: 'on' + initial_state: "on" trigger: platform: homeassistant event: start diff --git a/source/_integrations/bayesian.markdown b/source/_integrations/bayesian.markdown index 0202a87ddb7..ae669aade68 100644 --- a/source/_integrations/bayesian.markdown +++ b/source/_integrations/bayesian.markdown @@ -28,7 +28,7 @@ binary_sensor: prob_given_true: 0.6 prob_given_false: 0.2 platform: 'state' - to_state: 'on' + to_state: "on" ``` {% configuration %} @@ -99,20 +99,20 @@ binary_sensor: entity_id: 'sensor.living_room_motion' prob_given_true: 0.4 prob_given_false: 0.2 - to_state: 'off' + to_state: "off" - platform: 'state' entity_id: 'sensor.basement_motion' prob_given_true: 0.5 prob_given_false: 0.4 - to_state: 'off' + to_state: "off" - platform: 'state' entity_id: 'sensor.bedroom_motion' prob_given_true: 0.5 - to_state: 'on' + to_state: "on" - platform: 'state' entity_id: 'sun.sun' prob_given_true: 0.7 - to_state: 'below_horizon' + to_state: "below_horizon" ``` Next up an example which targets the `numeric_state` observation platform, diff --git a/source/_integrations/binary_sensor.xiaomi_aqara.markdown b/source/_integrations/binary_sensor.xiaomi_aqara.markdown index c18eb879bbf..fe41b5ef4fd 100644 --- a/source/_integrations/binary_sensor.xiaomi_aqara.markdown +++ b/source/_integrations/binary_sensor.xiaomi_aqara.markdown @@ -108,7 +108,7 @@ The requirement is that you have setup the [`xiaomi aqara` integration](/integra condition: - condition: state entity_id: group.family - state: 'not_home' + state: "not_home" action: - service: notify.notify_person data: diff --git a/source/_integrations/caldav.markdown b/source/_integrations/caldav.markdown index 2326ee7afb3..c777d514306 100644 --- a/source/_integrations/caldav.markdown +++ b/source/_integrations/caldav.markdown @@ -171,5 +171,5 @@ calendar: condition: - condition: state entity_id: calendar.work_holiday - state: 'off' + state: "off" ``` diff --git a/source/_integrations/deconz.markdown b/source/_integrations/deconz.markdown index 66ac662ed1c..73cec5f60ad 100644 --- a/source/_integrations/deconz.markdown +++ b/source/_integrations/deconz.markdown @@ -186,7 +186,7 @@ Requesting support for additional devices requires the device model (can be acqu ```yaml automation: - alias: 'Toggle lamp from dimmer' - initial_state: 'on' + initial_state: "on" trigger: platform: event event_type: deconz_event @@ -198,7 +198,7 @@ automation: entity_id: light.lamp - alias: 'Increase brightness of lamp from dimmer' - initial_state: 'on' + initial_state: "on" trigger: platform: event event_type: deconz_event @@ -214,7 +214,7 @@ automation: {{ [bri+30, 249] | min }} - alias: 'Decrease brightness of lamp from dimmer' - initial_state: 'on' + initial_state: "on" trigger: platform: event event_type: deconz_event @@ -230,7 +230,7 @@ automation: {{ [bri-30, 0] | max }} - alias: 'Turn lamp on when turning cube clockwise' - initial_state: 'on' + initial_state: "on" trigger: platform: event event_type: deconz_event diff --git a/source/_integrations/google_travel_time.markdown b/source/_integrations/google_travel_time.markdown index a353efaef3b..08b820ed433 100644 --- a/source/_integrations/google_travel_time.markdown +++ b/source/_integrations/google_travel_time.markdown @@ -139,7 +139,7 @@ You can also use the `homeassistant.update_entity` service to update the sensor ```yaml - id: update_morning_commute_sensor alias: "Commute - Update morning commute sensor" - initial_state: 'on' + initial_state: "on" trigger: - platform: time_pattern minutes: '/2' diff --git a/source/_integrations/here_travel_time.markdown b/source/_integrations/here_travel_time.markdown index 8a49b354bf2..8b505cf0119 100644 --- a/source/_integrations/here_travel_time.markdown +++ b/source/_integrations/here_travel_time.markdown @@ -157,7 +157,7 @@ You can also use the `homeassistant.update_entity` service to update the sensor automation: - id: update_morning_commute_sensor alias: "Commute - Update morning commute sensor" - initial_state: 'on' + initial_state: "on" trigger: - platform: time_pattern minutes: '/2' diff --git a/source/_integrations/history_stats.markdown b/source/_integrations/history_stats.markdown index fc690ed1fd9..6388ee42abf 100644 --- a/source/_integrations/history_stats.markdown +++ b/source/_integrations/history_stats.markdown @@ -32,7 +32,7 @@ sensor: - platform: history_stats name: Lamp ON today entity_id: light.my_lamp - state: 'on' + state: "on" type: time start: '{{ now().replace(hour=0, minute=0, second=0) }}' end: '{{ now() }}' diff --git a/source/_integrations/input_boolean.markdown b/source/_integrations/input_boolean.markdown index 2789873d879..4fbfb6a2ce0 100644 --- a/source/_integrations/input_boolean.markdown +++ b/source/_integrations/input_boolean.markdown @@ -79,7 +79,7 @@ automation: condition: condition: state entity_id: input_boolean.notify_home - state: 'on' + state: "on" action: service: notify.pushbullet data: diff --git a/source/_integrations/insteon.markdown b/source/_integrations/insteon.markdown index bf25c4168a8..0bbb5148db4 100644 --- a/source/_integrations/insteon.markdown +++ b/source/_integrations/insteon.markdown @@ -129,7 +129,7 @@ automation: condition: - condition: state entity_id: light.some_light - state: 'off' + state: "off" action: - service: light.turn_on entity_id: light.some_light @@ -145,7 +145,7 @@ automation: condition: - condition: state entity_id: light.some_light - state: 'off' + state: "off" action: - service: light.turn_on entity_id: light.some_light @@ -390,7 +390,7 @@ automation: condition: - condition: state entity_id: light.some_light - state: 'off' + state: "off" action: - service: light.turn_on entity_id: light.some_light @@ -406,7 +406,7 @@ automation: condition: - condition: state entity_id: light.some_light - state: 'off' + state: "off" action: - service: light.turn_on entity_id: light.some_light diff --git a/source/_integrations/kira.markdown b/source/_integrations/kira.markdown index c0f0499d346..dbd790cfa7a 100644 --- a/source/_integrations/kira.markdown +++ b/source/_integrations/kira.markdown @@ -204,7 +204,7 @@ Example automation using these IR codes to toggle a Sonoff plug. ```yaml # Example kira_sensor -- id: '1583339338363' +- id: "1583339338363" alias: Panasonic On description: Turn on sonoff s20 relay trigger: @@ -217,8 +217,8 @@ Example automation using these IR codes to toggle a Sonoff plug. domain: switch entity_id: switch.plug2_relay type: turn_on -- id: '1584035716024' - alias: 'Panaxonic Off ' +- id: "1584035716024" + alias: "Panaxonic Off " description: Turn off sonoff s20 relay trigger: - entity_id: sensor.kira_wireless diff --git a/source/_integrations/knx.markdown b/source/_integrations/knx.markdown index c05ab9b4863..fb48d9b6370 100644 --- a/source/_integrations/knx.markdown +++ b/source/_integrations/knx.markdown @@ -72,7 +72,7 @@ Alternatively, if you want to use the [XKNX](https://xknx.io/) library abstracti ```yaml knx: - config_file: '/path/to/xknx.yaml' + config_file: "/path/to/xknx.yaml" ``` {% configuration %} @@ -107,9 +107,9 @@ If the auto detection of the KNX/IP device does not work, you can specify IP and ```yaml knx: tunneling: - host: '192.168.2.23' + host: "192.168.2.23" port: 3671 - local_ip: '192.168.2.109' + local_ip: "192.168.2.109" ``` {% configuration %} @@ -132,7 +132,7 @@ Explicit connection to a KNX/IP routing device: ```yaml knx: routing: - local_ip: '192.168.2.109' + local_ip: "192.168.2.109" ``` {% configuration %} @@ -197,28 +197,28 @@ KNX integration is able to expose entity states or attributes to KNX bus. The in # Example configuration.yaml entry knx: expose: - - type: 'temperature' - entity_id: 'sensor.owm_temperature' - address: '0/0/2' - - type: 'string' - address: '0/6/4' + - type: "temperature" + entity_id: "sensor.owm_temperature" + address: "0/0/2" + - type: "string" + address: "0/6/4" entity_id: "sensor.owm_weather" - - type: 'binary' - entity_id: 'binary_sensor.kitchen_window' - address: '0/6/5' - - type: 'binary' - entity_id: 'light.office' - address: '0/3/0' + - type: "binary" + entity_id: "binary_sensor.kitchen_window" + address: "0/6/5" + - type: "binary" + entity_id: "light.office" + address: "0/3/0" default: false - - type: 'percentU8' - entity_id: 'light.office' - attribute: 'brightness' + - type: "percentU8" + entity_id: "light.office" + attribute: "brightness" default: 0 - address: '0/3/1' - - type: 'time' - address: '0/0/1' - - type: 'datetime' - address: '0/0/23' + address: "0/3/1" + - type: "time" + address: "0/0/1" + - type: "datetime" + address: "0/0/23" ``` {% configuration %} @@ -261,7 +261,7 @@ To use your binary sensors please add the relevant configuration to your top lev knx: binary_sensor: - name: sensor1 - state_address: '6/0/2' + state_address: "6/0/2" ``` {% configuration %} @@ -321,7 +321,7 @@ automation: condition: - condition: state entity_id: binary_sensor.cover_abstell - state: 'on' + state: "on" action: - entity_id: light.hue_color_lamp_1 service: light.turn_on @@ -334,7 +334,7 @@ automation: condition: - condition: state entity_id: binary_sensor.cover_abstell - state: 'on' + state: "on" action: - entity_id: light.hue_bloom_1 service: homeassistant.turn_on @@ -374,12 +374,12 @@ To use your KNX thermostats in your installation, add the following lines to you knx: climate: - name: HASS-Kitchen.Temperature - temperature_address: '5/1/1' - setpoint_shift_address: '5/1/2' - setpoint_shift_state_address: '5/1/3' - target_temperature_state_address: '5/1/4' - operation_mode_address: '5/1/5' - operation_mode_state_address: '5/1/6' + temperature_address: "5/1/1" + setpoint_shift_address: "5/1/2" + setpoint_shift_state_address: "5/1/3" + target_temperature_state_address: "5/1/4" + operation_mode_address: "5/1/5" + operation_mode_state_address: "5/1/6" ``` Alternatively, if your device has dedicated binary group addresses for frost/night/comfort mode: @@ -389,14 +389,14 @@ Alternatively, if your device has dedicated binary group addresses for frost/nig knx: climate: - name: HASS-Kitchen.Temperature - temperature_address: '5/1/1' - setpoint_shift_address: '5/1/2' - setpoint_shift_state_address: '5/1/3' - target_temperature_state_address: '5/1/4' - operation_mode_frost_protection_address: '5/1/5' - operation_mode_night_address: '5/1/6' - operation_mode_comfort_address: '5/1/7' - operation_mode_state_address: '5/1/8' + temperature_address: "5/1/1" + setpoint_shift_address: "5/1/2" + setpoint_shift_state_address: "5/1/3" + target_temperature_state_address: "5/1/4" + operation_mode_frost_protection_address: "5/1/5" + operation_mode_night_address: "5/1/6" + operation_mode_comfort_address: "5/1/7" + operation_mode_state_address: "5/1/8" ``` If your device doesn't support setpoint_shift calculations (i.e., if you don't provide a `setpoint_shift_address` value) please set the `min_temp` and `max_temp` @@ -407,14 +407,14 @@ attributes of the climate device to avoid issues with exceeding valid temperatur knx: climate: - name: HASS-Kitchen.Temperature - temperature_address: '5/1/2' - target_temperature_address: '5/1/4' - target_temperature_state_address: '5/1/1' - operation_mode_frost_protection_address: '5/1/5' - operation_mode_night_address: '5/1/6' - operation_mode_comfort_address: '5/1/7' - operation_mode_state_address: '5/1/8' - operation_mode_standby_address: '5/1/9' + temperature_address: "5/1/2" + target_temperature_address: "5/1/4" + target_temperature_state_address: "5/1/1" + operation_mode_frost_protection_address: "5/1/5" + operation_mode_night_address: "5/1/6" + operation_mode_comfort_address: "5/1/7" + operation_mode_state_address: "5/1/8" + operation_mode_standby_address: "5/1/9" min_temp: 7.0 max_temp: 32.0 ``` @@ -431,13 +431,13 @@ Example: knx: climate: - name: HASS-Kitchen.Temperature - temperature_address: '5/1/1' - setpoint_shift_address: '5/1/2' - setpoint_shift_state_address: '5/1/3' - setpoint_shift_mode: 'DPT9002' - target_temperature_state_address: '5/1/4' - operation_mode_address: '5/1/5' - operation_mode_state_address: '5/1/6' + temperature_address: "5/1/1" + setpoint_shift_address: "5/1/2" + setpoint_shift_state_address: "5/1/3" + setpoint_shift_mode: "DPT9002" + target_temperature_state_address: "5/1/4" + operation_mode_address: "5/1/5" + operation_mode_state_address: "5/1/6" ``` `operation_mode_frost_protection_address` / `operation_mode_night_address` / `operation_mode_comfort_address` / `operation_mode_standby_address` are not necessary if `operation_mode_address` is specified. @@ -601,11 +601,11 @@ To use your KNX covers in your installation, add the following lines to your top knx: cover: - name: "Kitchen.Shutter" - move_long_address: '3/0/0' - move_short_address: '3/0/1' - stop_address: '3/0/4' - position_address: '3/0/3' - position_state_address: '3/0/2' + move_long_address: "3/0/0" + move_short_address: "3/0/1" + stop_address: "3/0/4" + position_address: "3/0/3" + position_state_address: "3/0/2" travelling_time_down: 51 travelling_time_up: 61 ``` @@ -687,8 +687,8 @@ To use your KNX light in your installation, add the following lines to your top # Example configuration.yaml entry knx: light: - - name: 'kitchen' - address: '1/0/9' + - name: "kitchen" + address: "1/0/9" ``` {% configuration %} @@ -766,36 +766,36 @@ knx: light: # dimmable light - name: Bedroom-Light-1 - address: '1/0/9' - state_address: '1/1/9' - brightness_address: '1/2/9' - brightness_state_address: '1/3/9' + address: "1/0/9" + state_address: "1/1/9" + brightness_address: "1/2/9" + brightness_state_address: "1/3/9" # # RGB light - name: Bathroom-Light-1 - address: '1/0/9' - state_address: '1/1/9' - brightness_address: '1/2/9' - brightness_state_address: '1/3/9' - color_address: '1/4/9' - color_state_address: '1/5/9' + address: "1/0/9" + state_address: "1/1/9" + brightness_address: "1/2/9" + brightness_state_address: "1/3/9" + color_address: "1/4/9" + color_state_address: "1/5/9" # # tunable white light - name: Office-Light-1 - address: '1/0/21' - state_address: '1/1/21' - brightness_address: '1/2/21' - brightness_state_address: '1/3/21' - color_temperature_address: '1/4/21' - color_temperature_state_address: '1/5/21' + address: "1/0/21" + state_address: "1/1/21" + brightness_address: "1/2/21" + brightness_state_address: "1/3/21" + color_temperature_address: "1/4/21" + color_temperature_state_address: "1/5/21" color_temperature_mode: absolute min_kelvin: 2550 max_kelvin: 6200 # # actuator without dedicated state communication object - name: Cellar-Light-1 - address: '1/0/5' - state_address: '1/0/5' + address: "1/0/5" + state_address: "1/0/5" ``` ## Notify @@ -810,7 +810,7 @@ To use your KNX switch in your installation, add the following lines to your top knx: notify: - name: Alarm - address: '5/1/10' + address: "5/1/10" ``` {% configuration %} @@ -872,7 +872,7 @@ To use your KNX sensor in your installation, add the following lines to your top knx: sensor: - name: Heating.Valve1 - state_address: '2/0/0' + state_address: "2/0/0" ``` In order to actively read the sensor data from the bus all 30 minutes you can add the following lines to your `configuration.yaml`: @@ -882,7 +882,7 @@ In order to actively read the sensor data from the bus all 30 minutes you can ad knx: sensor: - name: Heating.Valve1 - state_address: '2/0/0' + state_address: "2/0/0" sync_state: every 30 ``` @@ -1058,13 +1058,13 @@ always_callback: knx: sensor: - name: Heating.Valve1 - state_address: '2/0/0' + state_address: "2/0/0" sync_state: init - type: 'percent' + type: "percent" - name: Kitchen.Temperature - state_address: '6/2/1' + state_address: "6/2/1" sync_state: every 60 - type: 'temperature' + type: "temperature" ``` ## Switch @@ -1079,7 +1079,7 @@ To use your KNX switch in your installation, add the following lines to your top knx: switch: - name: Kitchen.Coffee - address: '1/1/6' + address: "1/1/6" ``` {% configuration %} diff --git a/source/_integrations/konnected.markdown b/source/_integrations/konnected.markdown index 3f853699c9b..04af7973f74 100644 --- a/source/_integrations/konnected.markdown +++ b/source/_integrations/konnected.markdown @@ -261,19 +261,19 @@ konnected: binary_sensors: - zone: 1 type: door - name: 'Front Door' + name: "Front Door" - zone: 2 type: smoke - name: 'Bedroom Smoke Detector' + name: "Bedroom Smoke Detector" inverse: true - zone: 3 type: motion - name: 'Test Motion' + name: "Test Motion" switches: - zone: out name: siren - zone: 5 - name: 'Beep Beep' + name: "Beep Beep" momentary: 65 pause: 55 repeat: 4 diff --git a/source/_integrations/lametric.markdown b/source/_integrations/lametric.markdown index baa2dc72c3f..ce5722aeb25 100644 --- a/source/_integrations/lametric.markdown +++ b/source/_integrations/lametric.markdown @@ -115,18 +115,18 @@ To add a notification sound, icon, cycles, or priority override, it has to be do trigger: platform: state entity_id: device_tracker.son_mobile - from: 'not_home' - to: 'school' + from: "not_home" + to: "school" action: service: notify.lametric data: message: "Son has arrived at school!" data: - sound: 'notification' - icon: 'i51' + sound: "notification" + icon: "i51" cycles: 0 - priority: 'critical' - icon_type: 'none' + priority: "critical" + icon_type: "none" ``` ### Only notify specific device @@ -140,8 +140,8 @@ If you have more than one La Metric device, you can specify which will receive t message: "Son has arrived at school!" target: "Office LaMetric" data: - sound: 'notification' - icon: 'i51' + sound: "notification" + icon: "i51" ``` If target is not specified, all LaMetric devices will be notified. diff --git a/source/_integrations/lcn.markdown b/source/_integrations/lcn.markdown index 5d5cc80064e..ff377afb5d3 100644 --- a/source/_integrations/lcn.markdown +++ b/source/_integrations/lcn.markdown @@ -183,7 +183,7 @@ climates: description: "Measurement unit ([VAR_UNIT](#variables-and-units))." required: false type: string - default: 'celsius' + default: "celsius" min_temp: description: "Minimum target temperature." required: false @@ -302,7 +302,7 @@ sensors: description: "Measurement unit ([VAR_UNIT](#variables-and-units))." required: false type: string - default: 'native' + default: "native" switches: description: List of your switches. diff --git a/source/_integrations/lifx.markdown b/source/_integrations/lifx.markdown index 63240ee0ed1..b3a9f3e15d2 100644 --- a/source/_integrations/lifx.markdown +++ b/source/_integrations/lifx.markdown @@ -53,7 +53,7 @@ However, if you want to fully control a light effect, you have to use its dedica ```yaml script: colorloop_start: - alias: 'Start colorloop' + alias: "Start colorloop" sequence: - service: lifx.effect_colorloop data: diff --git a/source/_integrations/media_player.markdown b/source/_integrations/media_player.markdown index 025a5109360..78d48f85693 100644 --- a/source/_integrations/media_player.markdown +++ b/source/_integrations/media_player.markdown @@ -118,9 +118,9 @@ entity_id: media_player.chromecast service: media_player.play_media data: media_content_type: music - media_content_id: 'https://fake-home-assistant.io.stream/aac' + media_content_id: "https://fake-home-assistant.io.stream/aac" extra: - thumb: 'https://brands.home-assistant.io/_/homeassistant/logo.png' + thumb: "https://brands.home-assistant.io/_/homeassistant/logo.png" title: HomeAssitantRadio ``` diff --git a/source/_integrations/meteo_france.markdown b/source/_integrations/meteo_france.markdown index fba60aaeeff..9162e064f17 100644 --- a/source/_integrations/meteo_france.markdown +++ b/source/_integrations/meteo_france.markdown @@ -42,8 +42,8 @@ To add Météo-France to your installation, add the following to your `configura ```yaml # Example configuration.yaml entry for 2 cities meteo_france: - - city: '76000' - - city: 'Auch' + - city: "76000" + - city: "Auch" ``` {% configuration %} diff --git a/source/_integrations/meteoalarm.markdown b/source/_integrations/meteoalarm.markdown index 756e213213d..9f7a19e4cf7 100644 --- a/source/_integrations/meteoalarm.markdown +++ b/source/_integrations/meteoalarm.markdown @@ -21,8 +21,8 @@ To enable this binary sensor, add the following lines to your `configuration.yam ```yaml binary_sensor: - platform: meteoalarm - country: 'NL' - province: 'Groningen' + country: "NL" + province: "Groningen" ``` {% configuration %} @@ -43,7 +43,7 @@ language: description: "The 2 letters of your language, please be aware that this is only possible in the current country. So 'ne' is only possible in Netherlands. Possible options are: bu, bs, ce, da, de, ee, en, es, ga, ca, su, fr, gr, he, hr, ma, is, it, li, la, sr, mk, ma, ne, no, po, pt, ro, cp, sv, sl, eu." required: false type: string - default: 'en' + default: "en" {% endconfiguration %} diff --git a/source/_integrations/microsoft_face.markdown b/source/_integrations/microsoft_face.markdown index 7fcd2884fb5..db2349a8c43 100644 --- a/source/_integrations/microsoft_face.markdown +++ b/source/_integrations/microsoft_face.markdown @@ -67,7 +67,7 @@ via the Frontend, a script, or the REST API. ```yaml service: microsoft_face.create_group data: - name: 'Family' + name: "Family" ``` - *microsoft_face.create_person* @@ -77,7 +77,7 @@ data: service: microsoft_face.create_person data: group: family - name: 'Hans Maier' + name: "Hans Maier" ``` You need to add an image of a person. You can add multiple images for every @@ -90,7 +90,7 @@ send a local image to your Azure resource. service: microsoft_face.face_person data: group: family - name: 'Hans Maier' + name: "Hans Maier" camera_entity: camera.door ``` diff --git a/source/_integrations/miflora.markdown b/source/_integrations/miflora.markdown index bd716919686..d4a41821673 100644 --- a/source/_integrations/miflora.markdown +++ b/source/_integrations/miflora.markdown @@ -57,7 +57,7 @@ To use your Mi Flora plant sensor in your installation, add the following to you # Example configuration.yaml entry sensor: - platform: miflora - mac: 'xx:xx:xx:xx:xx:xx' + mac: "xx:xx:xx:xx:xx:xx" monitored_conditions: - moisture ``` @@ -122,7 +122,7 @@ A full configuration example could look like the one below: # Example configuration.yaml entry sensor: - platform: miflora - mac: 'xx:xx:xx:xx:xx:xx' + mac: "xx:xx:xx:xx:xx:xx" name: Flower 1 force_update: true median: 3 diff --git a/source/_integrations/minio.markdown b/source/_integrations/minio.markdown index 5d3457f8503..014438a248b 100644 --- a/source/_integrations/minio.markdown +++ b/source/_integrations/minio.markdown @@ -92,13 +92,13 @@ automation: event_data: event_type: created action: - - delay: '00:00:01' + - delay: "00:00:01" - service: minio.put data: file_path: "{{ trigger.event.data.path }}" bucket: "camera-image-object-detection" key: "input/{{ now().year }}/{{ (now().month | string).zfill(2) }}/{{ (now().day | string).zfill(2) }}/{{ trigger.event.data.file }}" - - delay: '00:00:01' + - delay: "00:00:01" - service: shell_command.remove_file data: file: "{{ trigger.event.data.path }}" diff --git a/source/_integrations/mitemp_bt.markdown b/source/_integrations/mitemp_bt.markdown index 4169f4bab10..4c6eb8d9ef5 100644 --- a/source/_integrations/mitemp_bt.markdown +++ b/source/_integrations/mitemp_bt.markdown @@ -49,7 +49,7 @@ To use your Mi Temperature and Humidity sensor in your installation, add the fol # Example configuration.yaml entry sensor: - platform: mitemp_bt - mac: 'xx:xx:xx:xx:xx:xx' + mac: "xx:xx:xx:xx:xx:xx" monitored_conditions: - temperature ``` @@ -118,7 +118,7 @@ A full configuration example could look like the one below: # Example configuration.yaml entry sensor: - platform: mitemp_bt - mac: 'xx:xx:xx:xx:xx:xx' + mac: "xx:xx:xx:xx:xx:xx" name: Kids Room Temp force_update: true median: 1 diff --git a/source/_integrations/modem_callerid.markdown b/source/_integrations/modem_callerid.markdown index 3cc85a6d979..4826136d9f7 100644 --- a/source/_integrations/modem_callerid.markdown +++ b/source/_integrations/modem_callerid.markdown @@ -77,7 +77,7 @@ automation: action: service: notify.notify data: - message: 'Call from {{ state_attr('sensor.modem_callerid', 'cid_name') }} at {{ state_attr('sensor.modem_callerid', 'cid_number') }} ' + message: "Call from {{ state_attr('sensor.modem_callerid', 'cid_name') }} at {{ state_attr('sensor.modem_callerid', 'cid_number') }} " - alias: Notify CallerID webui trigger: platform: state @@ -87,7 +87,7 @@ automation: service: persistent_notification.create data: title: "Call from" - message: '{{ state_attr('sensor.modem_callerid', 'cid_time').strftime("%I:%M %p") }} {{ state_attr('sensor.modem_callerid', 'cid_name') }} {{ state_attr('sensor.modem_callerid', 'cid_number') }} ' + message: "{{ state_attr('sensor.modem_callerid', 'cid_time').strftime("%I:%M %p") }} {{ state_attr('sensor.modem_callerid', 'cid_name') }} {{ state_attr('sensor.modem_callerid', 'cid_number') }} " - alias: Say CallerID trigger: platform: state @@ -96,7 +96,7 @@ automation: action: service: tts.google_say data: - message: 'Call from {{ state_attr('sensor.modem_callerid', 'cid_name') }}' + message: "Call from {{ state_attr('sensor.modem_callerid', 'cid_name') }}" ``` {% endraw %} diff --git a/source/_integrations/mvglive.markdown b/source/_integrations/mvglive.markdown index f74a3c6849e..976de5be66f 100644 --- a/source/_integrations/mvglive.markdown +++ b/source/_integrations/mvglive.markdown @@ -74,14 +74,14 @@ sensor: - station: Hauptbahnhof name: Hbf destinations: ['München Flughafen Terminal','Markt Schwaben'] - products: 'S-Bahn' + products: "S-Bahn" timeoffset: 2 - station: Sendlinger Tor lines: ['U2','U8'] number: 5 - station: Scheidplatz products: ['U-Bahn'] - directions: '1' + directions: "1" ``` The first sensor will return S-Bahn departures to Munich Airport or Markt Schwaben that are at least 2 minutes away. diff --git a/source/_integrations/mysensors.markdown b/source/_integrations/mysensors.markdown index d4b4319ca92..e682c05227a 100644 --- a/source/_integrations/mysensors.markdown +++ b/source/_integrations/mysensors.markdown @@ -20,7 +20,7 @@ Integrate your Serial, Ethernet (LAN) or MQTT MySensors Gateway by adding the fo # Example configuration.yaml entry mysensors: gateways: - - device: '/dev/ttyUSB0' + - device: "/dev/ttyUSB0" ``` {% configuration %} @@ -52,12 +52,12 @@ mysensors: description: Set the prefix of the MQTT topic for messages coming from the MySensors gateway in to Home Assistant. required: false type: string - default: '' + default: "" topic_out_prefix: description: Set the prefix of the MQTT topic for messages going from Home Assistant out to the MySensors gateway. required: false type: string - default: '' + default: "" nodes: description: A mapping of node ids to node settings, e.g., custom name. required: false @@ -76,7 +76,7 @@ mysensors: description: Specifies the MySensors protocol version to use. Supports versions 1.4 to 2.3. required: false type: string - default: '1.4' + default: "1.4" optimistic: description: Enable or disable optimistic mode for actuators (switch/light). Set this to true if no state feedback from actuators is possible. Home Assistant will assume that the command succeeded and change state. required: false @@ -116,28 +116,28 @@ The MQTT gateway requires MySensors version 2.0+ and only the MQTT client gatewa # Example configuration.yaml entry mysensors: gateways: - - device: '/dev/ttyUSB0' - persistence_file: 'path/mysensors.json' + - device: "/dev/ttyUSB0" + persistence_file: "path/mysensors.json" baud_rate: 38400 nodes: 1: - name: 'kitchen' + name: "kitchen" 3: - name: 'living_room' - - device: '/dev/ttyACM0' - persistence_file: 'path/mysensors2.json' + name: "living_room" + - device: "/dev/ttyACM0" + persistence_file: "path/mysensors2.json" baud_rate: 115200 - - device: '192.168.1.18' - persistence_file: 'path/mysensors3.json' + - device: "192.168.1.18" + persistence_file: "path/mysensors3.json" tcp_port: 5003 - device: mqtt - persistence_file: 'path/mysensors4.json' - topic_in_prefix: 'mygateway1-out' - topic_out_prefix: 'mygateway1-in' + persistence_file: "path/mysensors4.json" + topic_in_prefix: "mygateway1-out" + topic_out_prefix: "mygateway1-in" optimistic: false persistence: true retain: true - version: '2.0' + version: "2.0" ``` ### Presentation diff --git a/source/_integrations/nad.markdown b/source/_integrations/nad.markdown index e3b9f7a3bc1..324c3472b84 100644 --- a/source/_integrations/nad.markdown +++ b/source/_integrations/nad.markdown @@ -93,6 +93,6 @@ media_player: min_volume: -60 max_volume: -20 sources: - 1: 'Kodi' - 2: 'TV' + 1: "Kodi" + 2: "TV" ``` diff --git a/source/_integrations/nederlandse_spoorwegen.markdown b/source/_integrations/nederlandse_spoorwegen.markdown index 5ca74d2051c..fefa0b909a8 100644 --- a/source/_integrations/nederlandse_spoorwegen.markdown +++ b/source/_integrations/nederlandse_spoorwegen.markdown @@ -29,10 +29,10 @@ sensor: from: Gn to: Mt via: Zl - - name: 'AlmereBuiten-Duivendrecht-the-08h06m-train' + - name: "AlmereBuiten-Duivendrecht-the-08h06m-train" from: Almb to: Dvd - time: '08:06:00' + time: "08:06:00" ``` {% configuration %} diff --git a/source/_integrations/ness_alarm.markdown b/source/_integrations/ness_alarm.markdown index 91fb30324d4..35aface42c4 100644 --- a/source/_integrations/ness_alarm.markdown +++ b/source/_integrations/ness_alarm.markdown @@ -55,7 +55,7 @@ port: scan_interval: description: "Time interval between updates. Supported formats: `scan_interval: 'HH:MM:SS'`, `scan_interval: 'HH:MM'` and Time period dictionary (see example below)." required: false - default: '00:01:00' + default: "00:01:00" type: time infer_arming_state: description: Infer the disarmed arming state only via system status events. This works around a bug with some panels (` data: - message: 'Flight entry of {{ trigger.event.data.callsign }}' + message: "Flight entry of {{ trigger.event.data.callsign }}" ``` {% endraw %} diff --git a/source/_integrations/openuv.markdown b/source/_integrations/openuv.markdown index 30774af808f..df98ff9c8e8 100644 --- a/source/_integrations/openuv.markdown +++ b/source/_integrations/openuv.markdown @@ -94,7 +94,7 @@ automation: - alias: Update OpenUV every 30 minutes during the daytime trigger: platform: time_pattern - minutes: '/30' + minutes: "/30" condition: condition: and conditions: @@ -115,11 +115,11 @@ automation: - alias: Update OpenUV every 20 minutes while the sun is at least 10 degrees above the horizon trigger: platform: time_pattern - minutes: '/20' + minutes: "/20" condition: condition: numeric_state entity_id: sun.sun - value_template: '{{ state.attributes.elevation }}' + value_template: "{{ state.attributes.elevation }}" above: 10 action: service: openuv.update_uv_index_data @@ -148,7 +148,7 @@ automation: - alias: Update OpenUV every hour (24 of 50 calls per day) trigger: platform: time_pattern - minutes: '/60' + minutes: "/60" action: service: openuv.update_data ``` diff --git a/source/_integrations/panel_iframe.markdown b/source/_integrations/panel_iframe.markdown index dece86721c2..39e8fdc77b9 100644 --- a/source/_integrations/panel_iframe.markdown +++ b/source/_integrations/panel_iframe.markdown @@ -23,14 +23,14 @@ To enable Panel iFrames in your installation, add the following to your `configu # Example configuration.yaml entry panel_iframe: router: - title: 'Router' - url: 'http://192.168.1.1' + title: "Router" + url: "http://192.168.1.1" fridge: - title: 'Fridge' - url: 'http://192.168.1.5' + title: "Fridge" + url: "http://192.168.1.5" otherapp: - title: 'Other App' - url: '/otherapp' + title: "Other App" + url: "/otherapp" ``` {% configuration %} diff --git a/source/_integrations/persistent_notification.markdown b/source/_integrations/persistent_notification.markdown index 518ca5af459..dafb1cc499d 100644 --- a/source/_integrations/persistent_notification.markdown +++ b/source/_integrations/persistent_notification.markdown @@ -70,7 +70,7 @@ action: This automation example shows a notification when the Z-Wave network is starting and removes it when the network is ready. ```yaml -- alias: 'Z-Wave network is starting' +- alias: "Z-Wave network is starting" trigger: - platform: event event_type: zwave.network_start @@ -81,7 +81,7 @@ This automation example shows a notification when the Z-Wave network is starting message: "Z-Wave network is starting..." notification_id: zwave -- alias: 'Z-Wave network is ready' +- alias: "Z-Wave network is ready" trigger: - platform: event event_type: zwave.network_ready diff --git a/source/_integrations/pi_hole.markdown b/source/_integrations/pi_hole.markdown index 6471d7080fb..e10c481d485 100644 --- a/source/_integrations/pi_hole.markdown +++ b/source/_integrations/pi_hole.markdown @@ -68,23 +68,23 @@ Single Pi-hole running via Home Assistant add-on: ```yaml pi_hole: - - host: 'localhost:4865' + - host: "localhost:4865" ``` Multiple Pi-holes: ```yaml pi_hole: - - host: '192.168.0.2' - - host: '192.168.0.3' - name: 'Secondary Pi-hole' + - host: "192.168.0.2" + - host: "192.168.0.3" + name: "Secondary Pi-hole" ``` Pi-hole with a self-signed certificate: ```yaml pi_hole: - - host: 'pi.hole' + - host: "pi.hole" ssl: true verify_ssl: false ``` @@ -93,7 +93,7 @@ Pi-hole with an `api_key` that allows it to be enabled or disabled: ```yaml pi_hole: - - host: 'pi.hole' + - host: "pi.hole" api_key: !secret pi_hole_api_key ``` diff --git a/source/_integrations/picotts.markdown b/source/_integrations/picotts.markdown index b926724ae69..5fba5a3288c 100644 --- a/source/_integrations/picotts.markdown +++ b/source/_integrations/picotts.markdown @@ -46,5 +46,5 @@ The configuration sample below shows how an entry can look like: # Example configuration.yaml entry tts: - platform: picotts - language: 'fr-FR' + language: "fr-FR" ``` diff --git a/source/_integrations/pilight.markdown b/source/_integrations/pilight.markdown index 080fdc99d1e..539768728b0 100644 --- a/source/_integrations/pilight.markdown +++ b/source/_integrations/pilight.markdown @@ -85,7 +85,7 @@ To enable a Pilight binary sensor in your installation, add the following to you # Example configuration.yaml entry binary_sensor: - platform: pilight - variable: 'state' + variable: "state" ``` {% configuration %} @@ -133,11 +133,11 @@ A full configuration example could look like this: # Example configuration.yaml entry binary_sensor: - platform: pilight - name: 'Motion' - variable: 'state' + name: "Motion" + variable: "state" payload: unitcode: 371399 - payload_on: 'closed' + payload_on: "closed" disarm_after_trigger: true reset_delay_sec: 30 ``` @@ -154,7 +154,7 @@ sensor: - platform: pilight variable: temperature payload: - uuid: '0000-b8-27-eb-f447d3' + uuid: "0000-b8-27-eb-f447d3" ``` {% configuration %} @@ -185,23 +185,23 @@ This section shows a real life example how to use values of a weather station. # Example configuration.yaml entry sensor: - platform: pilight - name: 'Temperature' - variable: 'temperature' + name: "Temperature" + variable: "temperature" payload: uuid: 0000-b8-27-eb-f1f72e - unit_of_measurement: '°C' + unit_of_measurement: "°C" - platform: pilight - name: 'Humidity' - variable: 'humidity' + name: "Humidity" + variable: "humidity" payload: uuid: 0000-b8-27-eb-f1f72e - unit_of_measurement: '%' + unit_of_measurement: "%" - platform: pilight - name: 'Battery' - variable: 'battery' + name: "Battery" + variable: "battery" payload: uuid: 0000-b8-27-eb-f1f72e - unit_of_measurement: '%' + unit_of_measurement: "%" ``` ## Switch @@ -298,13 +298,13 @@ switch: systemcode: 14462 unit: 6 id: 34 - state: 'on' + state: "on" off_code_receive: protocol: daycom systemcode: 14462 unit: 6 id: 34 - state: 'off' + state: "off" ``` ## Light @@ -349,12 +349,12 @@ light: protocol: kaku_dimmer id: 23298822 unit: 10 - state: 'on' + state: "on" off_code_receive: protocol: kaku_dimmer id: 23298822 unit: 10 - state: 'off' + state: "off" ``` ## Troubleshooting diff --git a/source/_integrations/plant.markdown b/source/_integrations/plant.markdown index decf2699370..f204e7c016b 100644 --- a/source/_integrations/plant.markdown +++ b/source/_integrations/plant.markdown @@ -142,28 +142,28 @@ sensor: - platform: mqtt name: my_plant_moisture state_topic: my_plant_topic - value_template: '{{ value_json.moisture | int }}' - unit_of_measurement: '%' + value_template: "{{ value_json.moisture | int }}" + unit_of_measurement: "%" - platform: mqtt name: my_plant_battery state_topic: my_plant_topic - value_template: '{{ value_json.battery | int }}' - unit_of_measurement: '%' + value_template: "{{ value_json.battery | int }}" + unit_of_measurement: "%" - platform: mqtt name: my_plant_temperature state_topic: my_plant_topic - value_template: '{{ value_json.temperature | float }}' - unit_of_measurement: '°C' + value_template: "{{ value_json.temperature | float }}" + unit_of_measurement: "°C" - platform: mqtt name: my_plant_conductivity state_topic: my_plant_topic - value_template: '{{ value_json.conductivity | int }}' - unit_of_measurement: 'µS/cm' + value_template: "{{ value_json.conductivity | int }}" + unit_of_measurement: "µS/cm" - platform: mqtt name: my_plant_brightness state_topic: my_plant_topic - value_template: '{{ value_json.brightness | int }}' - unit_of_measurement: 'Lux' + value_template: "{{ value_json.brightness | int }}" + unit_of_measurement: "Lux" ``` {% endraw %} diff --git a/source/_integrations/plex.markdown b/source/_integrations/plex.markdown index f89573fb5b6..f0c141b1e56 100644 --- a/source/_integrations/plex.markdown +++ b/source/_integrations/plex.markdown @@ -247,17 +247,17 @@ play_plex_on_tv: - service: media_player.select_source entity_id: media_player.smart_tv data: - source: 'Plex' + source: "Plex" - wait_template: "{{ is_state('media_player.smart_tv', 'On') }}" - timeout: '00:00:10' + timeout: "00:00:10" - service: plex.scan_for_clients - wait_template: "{{ not is_state('media_player.plex_smart_tv', 'unavailable') }}" - timeout: '00:00:10' + timeout: "00:00:10" continue_on_timeout: false - service: media_player.play_media data: entity_id: media_player.plex_smart_tv - media_content_id: '{"library_name": "Movies", "title": "Zoolander"}' + media_content_id: "{"library_name": "Movies", "title": "Zoolander"}" media_content_type: movie ``` diff --git a/source/_integrations/point.markdown b/source/_integrations/point.markdown index fd2b0ed8d0c..4f5c0c6d4c1 100644 --- a/source/_integrations/point.markdown +++ b/source/_integrations/point.markdown @@ -100,7 +100,7 @@ automation: trigger: - platform: state entity_id: binary_sensor.point_button_press # Change this accordingly - to: 'on' + to: "on" action: - service: persistent_notification.create data: diff --git a/source/_integrations/prometheus.markdown b/source/_integrations/prometheus.markdown index 67f96ca0e71..b7b7623abe2 100644 --- a/source/_integrations/prometheus.markdown +++ b/source/_integrations/prometheus.markdown @@ -157,7 +157,7 @@ You can then configure Prometheus to fetch metrics from Home Assistant by adding ```yaml # Example Prometheus scrape_configs entry - - job_name: 'hass' + - job_name: "hass" scrape_interval: 60s metrics_path: /api/prometheus @@ -166,7 +166,7 @@ You can then configure Prometheus to fetch metrics from Home Assistant by adding api_password: ['PASSWORD'] # Long-Lived Access Token - bearer_token: 'your.longlived.token' + bearer_token: "your.longlived.token" scheme: https static_configs: diff --git a/source/_integrations/pvoutput.markdown b/source/_integrations/pvoutput.markdown index f8a66c1eac3..d789e214361 100644 --- a/source/_integrations/pvoutput.markdown +++ b/source/_integrations/pvoutput.markdown @@ -58,21 +58,21 @@ sensor: - platform: template sensors: power_consumption: - value_template: '{% if is_state_attr("sensor.pvoutput", "power_consumption", "NaN") %}0{% else %}{{ state_attr("sensor.pvoutput", "power_consumption") }}{% endif %}' - friendly_name: 'Using' - unit_of_measurement: 'Watt' + value_template: "{% if is_state_attr("sensor.pvoutput", "power_consumption", "NaN") %}0{% else %}{{ state_attr("sensor.pvoutput", "power_consumption") }}{% endif %}" + friendly_name: "Using" + unit_of_measurement: "Watt" energy_consumption: value_template: '{{ "%0.1f"|format(state_attr("sensor.pvoutput", "energy_consumption")|float/1000) }}' - friendly_name: 'Used' - unit_of_measurement: 'kWh' + friendly_name: "Used" + unit_of_measurement: "kWh" power_generation: value_template: '{% if is_state_attr("sensor.pvoutput", "power_generation", "NaN") %}0{% else %}{{ state_attr("sensor.pvoutput", "power_generation") }}{% endif %}' - friendly_name: 'Generating' - unit_of_measurement: 'Watt' + friendly_name: "Generating" + unit_of_measurement: "Watt" energy_generation: value_template: '{% if is_state_attr("sensor.pvoutput", "energy_generation", "NaN") %}0{% else %}{{ "%0.2f"|format(state_attr("sensor.pvoutput", "energy_generation")|float/1000) }}{% endif %}' - friendly_name: 'Generated' - unit_of_measurement: 'kWh' + friendly_name: "Generated" + unit_of_measurement: "kWh" ``` {% endraw %} diff --git a/source/_integrations/qbittorrent.markdown b/source/_integrations/qbittorrent.markdown index 22c28349065..e487643c5e5 100644 --- a/source/_integrations/qbittorrent.markdown +++ b/source/_integrations/qbittorrent.markdown @@ -24,7 +24,7 @@ To enable this sensor, add the following lines to your `configuration.yaml`: # Example configuration.yaml entry sensor: - platform: qbittorrent - url: 'http://:' + url: "http://:" username: YOUR_USERNAME password: YOUR_PASSWORD ``` diff --git a/source/_integrations/rainbird.markdown b/source/_integrations/rainbird.markdown index a87ac1922be..c5529b33899 100644 --- a/source/_integrations/rainbird.markdown +++ b/source/_integrations/rainbird.markdown @@ -123,7 +123,7 @@ automation: - alias: Turn irrigation on trigger: platform: time - at: '5:30:00' + at: "5:30:00" action: service: rainbird.start_irrigation entity_id: switch.sprinkler_1 diff --git a/source/_integrations/recswitch.markdown b/source/_integrations/recswitch.markdown index 6fb3507f046..345edab92b7 100644 --- a/source/_integrations/recswitch.markdown +++ b/source/_integrations/recswitch.markdown @@ -24,8 +24,8 @@ To enable this switch, add the following lines to your `configuration.yaml`: # Example configuration.yaml entry switch: - platform: recswitch - host: 'IP_ADDRESS' - mac: 'MAC_ADDRESS' + host: "IP_ADDRESS" + mac: "MAC_ADDRESS" ``` {% configuration %} diff --git a/source/_integrations/rejseplanen.markdown b/source/_integrations/rejseplanen.markdown index 42a52de42d1..852e1718abd 100644 --- a/source/_integrations/rejseplanen.markdown +++ b/source/_integrations/rejseplanen.markdown @@ -20,7 +20,7 @@ Add a sensor to your `configuration.yaml` file as shown in the example: # Example configuration.yaml entry sensor: - platform: rejseplanen - stop_id: 'YOUR_STOP_ID' + stop_id: "YOUR_STOP_ID" ``` {% configuration %} @@ -94,7 +94,7 @@ A working example on how to use this sensor with direction: # Example configuration.yaml entry with the correct use of direction. sensor: - platform: rejseplanen - stop_id: '713000702' + stop_id: "713000702" direction: - 'Bjergegårdsvej/Rylevej (Favrskov Kom)' - 'Skanderborg Busterminal (Skanderborg Kom)' @@ -126,9 +126,9 @@ A more extensive example on how to use this sensor: # Example configuration.yaml entry sensor: - platform: rejseplanen - name: 'Elmegade 350S' - stop_id: '000045740' - route: 'Bus 350S' + name: "Elmegade 350S" + stop_id: "000045740" + route: "Bus 350S" direction: - 'Herlev St.' - 'Ballerup St.' diff --git a/source/_integrations/rest.markdown b/source/_integrations/rest.markdown index c2b5739ce75..e8297f6bc9d 100644 --- a/source/_integrations/rest.markdown +++ b/source/_integrations/rest.markdown @@ -27,7 +27,7 @@ sensor: - platform: rest resource: http://IP_ADDRESS/ENDPOINT method: POST - payload: '{ "device" : "heater" }' + payload: "{ "device" : "heater" }" ``` or a template based request: diff --git a/source/_integrations/rest_command.markdown b/source/_integrations/rest_command.markdown index e5b9e51ca01..40fbbb9e388 100644 --- a/source/_integrations/rest_command.markdown +++ b/source/_integrations/rest_command.markdown @@ -19,7 +19,7 @@ To use this component, add the following lines to your `configuration.yaml` file # Example configuration.yaml entry rest_command: example_request: - url: 'http://example.com/' + url: "http://example.com/" ``` {% configuration %} @@ -105,7 +105,7 @@ rest_command: method: POST headers: authorization: !secret rest_headers_secret - accept: 'application/json, text/html' + accept: "application/json, text/html" user-agent: 'Mozilla/5.0 {{ useragent }}' payload: '{"profile":{"status_text": "{{ status }}","status_emoji": "{{ emoji }}"}}' content_type: 'application/json; charset=utf-8' @@ -129,7 +129,7 @@ Call the new service from [developer tools](/docs/tools/dev-tools/) in the sideb ```yaml automation: -- alias: 'Arrive at Work' +- alias: "Arrive at Work" trigger: platform: zone entity_id: device_tracker.my_device diff --git a/source/_integrations/script.markdown b/source/_integrations/script.markdown index 6e45c642dd1..3a66e6d3a04 100644 --- a/source/_integrations/script.markdown +++ b/source/_integrations/script.markdown @@ -210,7 +210,7 @@ script: sequence: - condition: state entity_id: switch.pushover_notifications - state: 'on' + state: "on" - service: notify.pushover data: title: "{% raw %}{{ title }}{% endraw %}" diff --git a/source/_integrations/velbus.markdown b/source/_integrations/velbus.markdown index 9fe9f7003d7..8fe3c7f0dbe 100644 --- a/source/_integrations/velbus.markdown +++ b/source/_integrations/velbus.markdown @@ -125,18 +125,18 @@ The actual linking can be realized by two automation rules. One rule to control conditions: - condition: state entity_id: light.led_push_button_10 - state: 'on' + state: "on" - condition: state entity_id: light.living - state: 'off' + state: "off" - condition: and conditions: - condition: state entity_id: light.led_push_button_10 - state: 'off' + state: "off" - condition: state entity_id: light.living - state: 'on' + state: "on" - entity_id: light.led_push_button_10 service: light.toggle ``` diff --git a/source/_integrations/workday.markdown b/source/_integrations/workday.markdown index dedaba4ddd4..239ce73dbda 100644 --- a/source/_integrations/workday.markdown +++ b/source/_integrations/workday.markdown @@ -138,7 +138,7 @@ automation: condition: condition: state entity_id: 'binary_sensor.workday_sensor' - state: 'on' + state: "on" action: service: switch.turn_on entity_id: switch.heater diff --git a/source/_lovelace/picture-elements.markdown b/source/_lovelace/picture-elements.markdown index 40cdd2a0607..0141895c8c7 100644 --- a/source/_lovelace/picture-elements.markdown +++ b/source/_lovelace/picture-elements.markdown @@ -591,9 +591,9 @@ elements: - type: conditional conditions: - entity: sensor.presence_daughter - state: 'home' + state: "home" - entity: sensor.presence_dad - state: 'not_home' + state: "not_home" elements: - type: state-icon entity: switch.tv From 3eb6856495b1ed0382b63ed0e374dd23d3c72e75 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Feb 2021 11:27:43 +0100 Subject: [PATCH 15/19] Bump ruby-enum from 0.8.0 to 0.9.0 (#16374) Bumps [ruby-enum](https://github.com/dblock/ruby-enum) from 0.8.0 to 0.9.0. - [Release notes](https://github.com/dblock/ruby-enum/releases) - [Changelog](https://github.com/dblock/ruby-enum/blob/master/CHANGELOG.md) - [Commits](https://github.com/dblock/ruby-enum/compare/v0.8.0...v0.9.0) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 584cb4e9487..4e9fe2cbc1c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -92,7 +92,7 @@ GEM ffi (~> 1.0) rexml (3.2.4) rouge (3.26.0) - ruby-enum (0.8.0) + ruby-enum (0.9.0) i18n ruby2_keywords (0.0.4) safe_yaml (1.0.5) From c7bf104952424fc0e620320ed441c9e699e9ccb0 Mon Sep 17 00:00:00 2001 From: Phil Hollenback Date: Mon, 1 Feb 2021 04:39:52 -0800 Subject: [PATCH 16/19] Add sensor example for brother printer integration (#16373) Co-authored-by: Franck Nijhof --- source/_integrations/brother.markdown | 46 ++++++++++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) diff --git a/source/_integrations/brother.markdown b/source/_integrations/brother.markdown index d153dce7d60..14648d2b7a4 100644 --- a/source/_integrations/brother.markdown +++ b/source/_integrations/brother.markdown @@ -29,7 +29,51 @@ Some very old Brother printers use different data format and these models are no ## Configuring the printer -To set SNMP, navigate to the printer's web interface (for example: `http://192.168.5.6`) and turn it on under Network / Protocol / SNMP. +To enable SNMP, navigate to the printer's web interface (for example: `http://192.168.5.6`) and turn it on under Network / Protocol / SNMP. For some Brother devices, `SNMPv3 read-write access and v1/v2c read-only access` is the option required (under advanced settings). ![SNMP settings on Brother Printer web interface](/images/integrations/brother/brother-printer-webui.png) + +## Sensor Example + +You can configure Home Assistant to alert you when the printer jams or runs out of paper as follows. First, add the following to `configuration.yaml` under the `binary_sensor:` section (replace `sensor.hl_l2340d_status` with the actual name of your sensor): + +{% raw %} + +```yaml + - platform: template + sensors: + laser_out_of_paper: + value_template: "{{ is_state('sensor.hl_l2340d_status', 'no paper') }}" + friendly_name: 'Laser Printer Out of Paper' + - platform: template + sensors: + laser_paper_jam: + value_template: "{{ is_state('sensor.hl_l2340d_status', 'paper jam') }}" + friendly_name: 'Laser Printer Paper Jam' +``` + +{% endraw %} + +Then, add this under the `alert:` section: + +```yaml + laser_out_of_paper: + name: Laser Printer is Out of Paper + done_message: Laser Printer Has Paper + entity_id: binary_sensor.laser_out_of_paper + can_acknowledge: true + notifiers: + - my_phone_notify + laser_paper_jam: + name: Laser Printer has a Paper Jam + done_message: Laser Printer Paper Jam Cleared + entity_id: binary_sensor.laser_paper_jam + can_acknowledge: true + notifiers: + - my_phone_notify +``` + +The above will send an alert for paper jam or out of paper whenever the condition is detected, assuming you have the Home Assistant app configured on your phone so that alerts can be sent directly to it. If you don't use the Home Assistant app, you will need to set up a different notifier. + +Change `my_phone_notify` to the actual notifier you are using. From 03d8d34bf865d62aba5cabb6851d814cce299480 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Mon, 1 Feb 2021 22:46:37 +0100 Subject: [PATCH 17/19] Bunch of YAML styling improvements - part 2 (#16379) --- .../authentication/multi-factor-auth.markdown | 2 +- source/_docs/automation/action.markdown | 2 +- source/_docs/automation/condition.markdown | 8 ++--- source/_docs/automation/templating.markdown | 6 ++-- source/_docs/automation/trigger.markdown | 2 +- source/_docs/automation/yaml.markdown | 22 ++++++------ .../splitting_configuration.markdown | 24 ++++++------- source/_docs/installation/docker.markdown | 4 +-- source/_docs/mqtt/birth_will.markdown | 8 ++--- source/_docs/scripts.markdown | 14 ++++---- source/_docs/scripts/conditions.markdown | 26 +++++++------- source/_docs/z-wave/device-specific.markdown | 18 +++++----- source/_docs/z-wave/events.markdown | 2 +- source/_integrations/ads.markdown | 4 +-- .../alarm_control_panel.mqtt.markdown | 14 ++++---- source/_integrations/alert.markdown | 2 +- source/_integrations/amazon_polly.markdown | 2 +- source/_integrations/amcrest.markdown | 36 +++++++++---------- .../_integrations/android_ip_webcam.markdown | 2 +- source/_integrations/androidtv.markdown | 4 +-- source/_integrations/arlo.markdown | 2 +- source/_integrations/august.markdown | 2 +- .../aurora_abb_powerone.markdown | 4 +-- source/_integrations/bayesian.markdown | 36 +++++++++---------- .../binary_sensor.template.markdown | 6 ++-- .../binary_sensor.xiaomi_aqara.markdown | 36 +++++++++---------- source/_integrations/blink.markdown | 6 ++-- source/_integrations/brother.markdown | 4 +-- source/_integrations/buienradar.markdown | 2 +- source/_integrations/caldav.markdown | 22 ++++++------ source/_integrations/calendar.google.markdown | 2 +- .../_posts/2015-06-10-release-notes.markdown | 2 +- ...rry-pi-squeezebox-asuswrt-support.markdown | 2 +- ...h-moteino-mqtt-and-home-assistant.markdown | 8 ++--- ...6-08-03-laundry-automation-update.markdown | 8 ++--- ...10-08-hassbian-rest-digital-ocean.markdown | 2 +- source/_posts/2017-02-04-babyphone.markdown | 26 +++++++------- .../2017-03-28-http-to-mqtt-bridge.markdown | 6 ++-- .../2017-04-22-ikea-tradfri--spotify.markdown | 4 +-- ...017-04-25-influxdb-grafana-docker.markdown | 4 +-- source/_posts/2017-10-28-demo.markdown | 2 +- source/_posts/2018-01-14-release-61.markdown | 6 ++-- source/_posts/2018-06-04-esphomelib.markdown | 10 +++--- source/_posts/2019-08-28-release-98.markdown | 2 +- source/_posts/2020-01-15-release-104.markdown | 4 +-- source/_posts/2020-02-05-release-105.markdown | 8 ++--- .../2020-02-11-android-16-17-release.markdown | 4 +-- source/_posts/2020-07-01-release-112.markdown | 4 +-- source/_posts/2020-10-07-release-116.markdown | 12 +++---- source/lovelace/header-footer.markdown | 6 ++-- 50 files changed, 222 insertions(+), 222 deletions(-) diff --git a/source/_docs/authentication/multi-factor-auth.markdown b/source/_docs/authentication/multi-factor-auth.markdown index b70e098b7b4..47969af1dee 100644 --- a/source/_docs/authentication/multi-factor-auth.markdown +++ b/source/_docs/authentication/multi-factor-auth.markdown @@ -96,7 +96,7 @@ homeassistant: - type: totp name: Authenticator app - type: notify - message: 'I almost forget, to get into my clubhouse, you need to say {}' + message: "I almost forget, to get into my clubhouse, you need to say {}" ``` After restarting Home Assistant, go to your [profile page](/docs/authentication/#your-account-profile) and there should be a "Multi-factor Authentication Modules" section. Click _Enable_ on the _Notify One-Time Password_ option. diff --git a/source/_docs/automation/action.markdown b/source/_docs/automation/action.markdown index d0e8cfb77e0..79aa15e22f3 100644 --- a/source/_docs/automation/action.markdown +++ b/source/_docs/automation/action.markdown @@ -45,7 +45,7 @@ Conditions can also be part of an action. You can combine multiple service calls ```yaml automation: -- alias: 'Office at evening' +- alias: "Office at evening" trigger: platform: state entity_id: sensor.office_occupancy diff --git a/source/_docs/automation/condition.markdown b/source/_docs/automation/condition.markdown index c98828db025..0ed6610d36e 100644 --- a/source/_docs/automation/condition.markdown +++ b/source/_docs/automation/condition.markdown @@ -13,11 +13,11 @@ Example of using condition: ```yaml automation: - - alias: 'Enciende Despacho' + - alias: "Enciende Despacho" trigger: platform: state entity_id: sensor.mini_despacho - to: 'on' + to: "on" condition: condition: or conditions: @@ -38,11 +38,11 @@ The `condition` option of an automation, also accepts a single condition templat ```yaml automation: - - alias: 'Enciende Despacho' + - alias: "Enciende Despacho" trigger: platform: state entity_id: sensor.mini_despacho - to: 'on' + to: "on" condition: "{{ state_attr('sun.sun', 'elevation') < 4 }}" action: - service: scene.turn_on diff --git a/source/_docs/automation/templating.markdown b/source/_docs/automation/templating.markdown index 71e30eed82d..cdeb8640b17 100644 --- a/source/_docs/automation/templating.markdown +++ b/source/_docs/automation/templating.markdown @@ -29,7 +29,7 @@ automation 2: service: > notify.{{ trigger.topic.split('/')[-1] }} data: - message: '{{ trigger.payload }}' + message: "{{ trigger.payload }}" automation 3: trigger: @@ -39,9 +39,9 @@ automation 3: - light.bedroom_closet - light.kiddos_closet - light.linen_closet - to: 'on' + to: "on" # Trigger when someone leaves one of those lights on for 10 minutes. - for: '00:10:00' + for: "00:10:00" action: - service: light.turn_off data: diff --git a/source/_docs/automation/trigger.markdown b/source/_docs/automation/trigger.markdown index 11ba79a7c87..3c26276f940 100644 --- a/source/_docs/automation/trigger.markdown +++ b/source/_docs/automation/trigger.markdown @@ -450,7 +450,7 @@ automation: - trigger: platform: state entity_id: binary_sensor.motion - to: 'on' + to: "on" action: - service: climate.turn_on entity_id: climate.office diff --git a/source/_docs/automation/yaml.markdown b/source/_docs/automation/yaml.markdown index 203a4f7be1a..1929edab832 100644 --- a/source/_docs/automation/yaml.markdown +++ b/source/_docs/automation/yaml.markdown @@ -31,16 +31,16 @@ Example of a YAML based automation that you can add to `configuration.yaml`. automation my_lights: # Turns on lights 1 hour before sunset if people are home # and if people get home between 16:00-23:00 - - alias: 'Rule 1 Light on in the evening' + - alias: "Rule 1 Light on in the evening" trigger: # Prefix the first line of each trigger configuration # with a '-' to enter multiple - platform: sun event: sunset - offset: '-01:00:00' + offset: "-01:00:00" - platform: state entity_id: all - to: 'home' + to: "home" condition: # Prefix the first line of each condition configuration # with a '-'' to enter multiple @@ -48,25 +48,25 @@ automation my_lights: entity_id: all state: "home" - condition: time - after: '16:00:00' - before: '23:00:00' + after: "16:00:00" + before: "23:00:00" action: # With a single service call, we don't need a '-' before service - though you can if you want to service: homeassistant.turn_on entity_id: group.living_room # Turn off lights when everybody leaves the house - - alias: 'Rule 2 - Away Mode' + - alias: "Rule 2 - Away Mode" trigger: platform: state entity_id: all - to: 'not_home' + to: "not_home" action: service: light.turn_off entity_id: all # Notify when Paulus leaves the house in the evening - - alias: 'Leave Home notification' + - alias: "Leave Home notification" trigger: platform: zone event: leave @@ -74,14 +74,14 @@ automation my_lights: entity_id: device_tracker.paulus condition: condition: time - after: '20:00' + after: "20:00" action: service: notify.notify data: - message: 'Paulus left the house' + message: "Paulus left the house" # Send a notification via Pushover with the event of a Xiaomi cube. Custom event from the Xiaomi component. - - alias: 'Xiaomi Cube Action' + - alias: "Xiaomi Cube Action" initial_state: false trigger: platform: event diff --git a/source/_docs/configuration/splitting_configuration.markdown b/source/_docs/configuration/splitting_configuration.markdown index 8fec8bb86dc..037fbf60666 100644 --- a/source/_docs/configuration/splitting_configuration.markdown +++ b/source/_docs/configuration/splitting_configuration.markdown @@ -145,14 +145,14 @@ This (large) sensor configuration gives us another example: ### sensor.yaml ### METEOBRIDGE ############################################# - platform: tcp - name: 'Outdoor Temp (Meteobridge)' + name: "Outdoor Temp (Meteobridge)" host: 192.168.2.82 timeout: 6 payload: "Content-type: text/xml; charset=UTF-8\n\n" value_template: "{% raw %}{{value.split (' ')[2]}}{% endraw %}" unit: C - platform: tcp - name: 'Outdoor Humidity (Meteobridge)' + name: "Outdoor Humidity (Meteobridge)" host: 192.168.2.82 port: 5556 timeout: 6 @@ -173,10 +173,10 @@ This (large) sensor configuration gives us another example: - 'date' - platform: worldclock time_zone: Etc/UTC - name: 'UTC' + name: "UTC" - platform: worldclock time_zone: America/New_York - name: 'Ann Arbor' + name: "Ann Arbor" ``` You'll notice that this example includes a secondary parameter section (under the steam section) as well as a better example of the way comments can be used to break down files into sections. @@ -231,7 +231,7 @@ automation: trigger: platform: state entity_id: device_tracker.iphone - to: 'home' + to: "home" action: service: light.turn_on entity_id: light.entryway @@ -239,7 +239,7 @@ automation: trigger: platform: state entity_id: device_tracker.iphone - from: 'home' + from: "home" action: service: light.turn_off entity_id: light.entryway @@ -260,7 +260,7 @@ alias: Automation 1 trigger: platform: state entity_id: device_tracker.iphone - to: 'home' + to: "home" action: service: light.turn_on entity_id: light.entryway @@ -273,7 +273,7 @@ alias: Automation 2 trigger: platform: state entity_id: device_tracker.iphone - from: 'home' + from: "home" action: service: light.turn_off entity_id: light.entryway @@ -370,7 +370,7 @@ automation: trigger: platform: state entity_id: device_tracker.iphone - to: 'home' + to: "home" action: service: light.turn_on entity_id: light.entryway @@ -378,7 +378,7 @@ automation: trigger: platform: state entity_id: device_tracker.iphone - from: 'home' + from: "home" action: service: light.turn_off entity_id: light.entryway @@ -399,7 +399,7 @@ automation: !include_dir_merge_list automation/ trigger: platform: state entity_id: device_tracker.iphone - to: 'home' + to: "home" action: service: light.turn_on entity_id: light.entryway @@ -407,7 +407,7 @@ automation: !include_dir_merge_list automation/ trigger: platform: state entity_id: device_tracker.iphone - from: 'home' + from: "home" action: service: light.turn_off entity_id: light.entryway diff --git a/source/_docs/installation/docker.markdown b/source/_docs/installation/docker.markdown index 1d2b1e8bd2c..b92b6a7f736 100644 --- a/source/_docs/installation/docker.markdown +++ b/source/_docs/installation/docker.markdown @@ -238,7 +238,7 @@ If you change the configuration you have to restart the server. To do that you h As the Docker command becomes more complex, switching to `docker-compose` can be preferable and support automatically restarting on failure or system restart. Create a `docker-compose.yml` file: ```yaml - version: '3' + version: "3" services: homeassistant: container_name: home-assistant @@ -285,7 +285,7 @@ $ docker run --init -d --name="home-assistant" -v /PATH_TO_YOUR_CONFIG:/config \ or in a `docker-compose.yml` file: ```yaml - version: '3' + version: "3" services: homeassistant: container_name: home-assistant diff --git a/source/_docs/mqtt/birth_will.markdown b/source/_docs/mqtt/birth_will.markdown index 5a8ed349743..7ffa0a48ba9 100644 --- a/source/_docs/mqtt/birth_will.markdown +++ b/source/_docs/mqtt/birth_will.markdown @@ -14,11 +14,11 @@ To customize the MQTT Birth and Last Will messages, add the following section to # Example configuration.yaml entry mqtt: birth_message: - topic: 'hass/status' - payload: 'online' + topic: "hass/status" + payload: "online" will_message: - topic: 'hass/status' - payload: 'offline' + topic: "hass/status" + payload: "offline" ``` {% configuration %} diff --git a/source/_docs/scripts.markdown b/source/_docs/scripts.markdown index 0bfd2d2bedb..8e62ebaf794 100644 --- a/source/_docs/scripts.markdown +++ b/source/_docs/scripts.markdown @@ -107,13 +107,13 @@ Delays are useful for temporarily suspending your script and start it at a later ```yaml # HH:MM # Waits 1 hour -- delay: '01:00' +- delay: "01:00" ``` ```yaml # HH:MM:SS # Waits 1.5 minutes -- delay: '00:01:30' +- delay: "00:01:30" ``` ```yaml @@ -170,7 +170,7 @@ This action can use the same triggers that are available in an automation's `tri event_type: MY_EVENT - platform: state entity_id: light.LIGHT - to: 'on' + to: "on" for: 10 ``` @@ -185,7 +185,7 @@ With both types of waits it is possible to set a timeout after which the script ```yaml # Wait for sensor to change to 'on' up to 1 minute before continuing to execute. - wait_template: "{{ is_state('binary_sensor.entrance', 'on') }}" - timeout: '00:01:00' + timeout: "00:01:00" ``` {% endraw %} @@ -406,7 +406,7 @@ automation: - trigger: - platform: state entity_id: binary_sensor.xyz - to: 'on' + to: "on" condition: - condition: state entity_id: binary_sensor.something @@ -471,7 +471,7 @@ automation: - trigger: - platform: state entity_id: binary_sensor.motion - to: 'on' + to: "on" action: - choose: # IF nobody home, sound the alarm! @@ -517,7 +517,7 @@ automation: - trigger: - platform: state entity_id: input_boolean.simulate - to: 'on' + to: "on" mode: restart action: - choose: diff --git a/source/_docs/scripts/conditions.markdown b/source/_docs/scripts/conditions.markdown index 5cb9903abfa..98807ab3d67 100644 --- a/source/_docs/scripts/conditions.markdown +++ b/source/_docs/scripts/conditions.markdown @@ -16,10 +16,10 @@ condition: condition: and conditions: - condition: state - entity_id: 'device_tracker.paulus' + entity_id: "device_tracker.paulus" state: "home" - condition: numeric_state - entity_id: 'sensor.temperature' + entity_id: "sensor.temperature" below: 20 ``` @@ -30,10 +30,10 @@ The following configuration works the same as the one listed above: ```yaml condition: - condition: state - entity_id: 'device_tracker.paulus' + entity_id: "device_tracker.paulus" state: "home" - condition: numeric_state - entity_id: 'sensor.temperature' + entity_id: "sensor.temperature" below: 20 ``` @@ -48,10 +48,10 @@ condition: condition: or conditions: - condition: state - entity_id: 'device_tracker.paulus' + entity_id: "device_tracker.paulus" state: "home" - condition: numeric_state - entity_id: 'sensor.temperature' + entity_id: "sensor.temperature" below: 20 ``` @@ -65,7 +65,7 @@ condition: condition: and conditions: - condition: state - entity_id: 'device_tracker.paulus' + entity_id: "device_tracker.paulus" state: "home" - condition: or conditions: @@ -73,7 +73,7 @@ condition: entity_id: sensor.weather_precip state: "rain" - condition: numeric_state - entity_id: 'sensor.temperature' + entity_id: "sensor.temperature" below: 20 ``` @@ -392,7 +392,7 @@ condition: conditions: - "{{ is_state('device_tracker.iphone', 'away') }}" - condition: numeric_state - entity_id: 'sensor.temperature' + entity_id: "sensor.temperature" below: 20 ``` @@ -442,8 +442,8 @@ The time condition can test if it is after a specified time, before a specified condition: condition: time # At least one of the following is required. - after: '15:00:00' - before: '02:00:00' + after: "15:00:00" + before: "02:00:00" weekday: - mon - wed @@ -534,8 +534,8 @@ condition: entity_id: light.living_room state: "off" - condition: time - before: '23:00:00' - after: '14:00:00' + before: "23:00:00" + after: "14:00:00" - condition: state entity_id: script.light_turned_off_5min state: "off" diff --git a/source/_docs/z-wave/device-specific.markdown b/source/_docs/z-wave/device-specific.markdown index 2258795eaee..d13dda84b68 100644 --- a/source/_docs/z-wave/device-specific.markdown +++ b/source/_docs/z-wave/device-specific.markdown @@ -109,7 +109,7 @@ Here's a handy configuration for the Aeon Labs Minimote that defines all possibl ```yaml - id: mini_1_pressed - alias: 'Minimote Button 1 Pressed' + alias: "Minimote Button 1 Pressed" trigger: - platform: event event_type: zwave.scene_activated @@ -117,7 +117,7 @@ Here's a handy configuration for the Aeon Labs Minimote that defines all possibl entity_id: zwave.aeon_labs_minimote_1 scene_id: 1 - id: mini_1_held - alias: 'Minimote Button 1 Held' + alias: "Minimote Button 1 Held" trigger: - platform: event event_type: zwave.scene_activated @@ -125,7 +125,7 @@ Here's a handy configuration for the Aeon Labs Minimote that defines all possibl entity_id: zwave.aeon_labs_minimote_1 scene_id: 2 - id: mini_2_pressed - alias: 'Minimote Button 2 Pressed' + alias: "Minimote Button 2 Pressed" trigger: - platform: event event_type: zwave.scene_activated @@ -133,7 +133,7 @@ Here's a handy configuration for the Aeon Labs Minimote that defines all possibl entity_id: zwave.aeon_labs_minimote_1 scene_id: 3 - id: mini_2_held - alias: 'Minimote Button 2 Held' + alias: "Minimote Button 2 Held" trigger: - platform: event event_type: zwave.scene_activated @@ -141,7 +141,7 @@ Here's a handy configuration for the Aeon Labs Minimote that defines all possibl entity_id: zwave.aeon_labs_minimote_1 scene_id: 4 - id: mini_3_pressed - alias: 'Minimote Button 3 Pressed' + alias: "Minimote Button 3 Pressed" trigger: - platform: event event_type: zwave.scene_activated @@ -149,7 +149,7 @@ Here's a handy configuration for the Aeon Labs Minimote that defines all possibl entity_id: zwave.aeon_labs_minimote_1 scene_id: 5 - id: mini_3_held - alias: 'Minimote Button 3 Held' + alias: "Minimote Button 3 Held" trigger: - platform: event event_type: zwave.scene_activated @@ -157,7 +157,7 @@ Here's a handy configuration for the Aeon Labs Minimote that defines all possibl entity_id: zwave.aeon_labs_minimote_1 scene_id: 6 - id: mini_4_pressed - alias: 'Minimote Button 4 Pressed' + alias: "Minimote Button 4 Pressed" trigger: - platform: event event_type: zwave.scene_activated @@ -165,7 +165,7 @@ Here's a handy configuration for the Aeon Labs Minimote that defines all possibl entity_id: zwave.aeon_labs_minimote_1 scene_id: 7 - id: mini_4_held - alias: 'Minimote Button 4 Held' + alias: "Minimote Button 4 Held" trigger: - platform: event event_type: zwave.scene_activated @@ -1080,7 +1080,7 @@ Double-press | 3 Let's see how this works in an automation for a Scene Master that's assigned as Node 7: ```yaml -- id: '1234567890' +- id: "1234567890" alias: Double-press Button 2 to toggle all lights trigger: - platform: event diff --git a/source/_docs/z-wave/events.markdown b/source/_docs/z-wave/events.markdown index fc586ce37c9..2568854a801 100644 --- a/source/_docs/z-wave/events.markdown +++ b/source/_docs/z-wave/events.markdown @@ -96,7 +96,7 @@ Some devices (like the HomeSeer wall switches) allow you to do things like doubl ```yaml # Example configuration.yaml automation entry automation - - alias: 'Dining room dimmer - double tap up' + - alias: "Dining room dimmer - double tap up" trigger: - event_type: zwave.scene_activated platform: event diff --git a/source/_integrations/ads.markdown b/source/_integrations/ads.markdown index 9c896868d5b..b6c78102ebc 100644 --- a/source/_integrations/ads.markdown +++ b/source/_integrations/ads.markdown @@ -30,7 +30,7 @@ To enable ADS, add the following lines to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry ads: - device: '127.0.0.1.1.1' + device: "127.0.0.1.1.1" port: 801 ``` @@ -138,7 +138,7 @@ file: sensor: - platform: ads adsvar: GVL.temperature - unit_of_measurement: '°C' + unit_of_measurement: "°C" adstype: int ``` diff --git a/source/_integrations/alarm_control_panel.mqtt.markdown b/source/_integrations/alarm_control_panel.mqtt.markdown index 1d11dadb497..85b4ce996ed 100644 --- a/source/_integrations/alarm_control_panel.mqtt.markdown +++ b/source/_integrations/alarm_control_panel.mqtt.markdown @@ -84,7 +84,7 @@ command_topic: required: true type: string device: - description: 'Information about the device this alarm panel is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set.' + description: "Information about the device this alarm panel is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set." required: false type: map keys: @@ -93,27 +93,27 @@ device: required: false type: list identifiers: - description: 'A list of IDs that uniquely identify the device. For example a serial number.' + description: "A list of IDs that uniquely identify the device. For example a serial number." required: false type: [list, string] manufacturer: - description: 'The manufacturer of the device.' + description: "The manufacturer of the device." required: false type: string model: - description: 'The model of the device.' + description: "The model of the device." required: false type: string name: - description: 'The name of the device.' + description: "The name of the device." required: false type: string sw_version: - description: 'The firmware version of the device.' + description: "The firmware version of the device." required: false type: string via_device: - description: 'Identifier of a device that routes messages between this device and Home Assistant. Examples of such devices are hubs, or parent devices of a sub-device. This is used to show device topology in Home Assistant.' + description: "Identifier of a device that routes messages between this device and Home Assistant. Examples of such devices are hubs, or parent devices of a sub-device. This is used to show device topology in Home Assistant." required: false type: string json_attributes_template: diff --git a/source/_integrations/alert.markdown b/source/_integrations/alert.markdown index f0ff3a99ba2..63b03a2bf8b 100644 --- a/source/_integrations/alert.markdown +++ b/source/_integrations/alert.markdown @@ -163,7 +163,7 @@ binary_sensor: sensors: motion_battery_low: value_template: "{{ state_attr('sensor.motion', 'battery') < 15 }}" - friendly_name: 'Motion battery is low' + friendly_name: "Motion battery is low" alert: motion_battery: diff --git a/source/_integrations/amazon_polly.markdown b/source/_integrations/amazon_polly.markdown index 910fc8b517c..6bba843e030 100644 --- a/source/_integrations/amazon_polly.markdown +++ b/source/_integrations/amazon_polly.markdown @@ -84,7 +84,7 @@ Say to all `media_player` device entities: ```yaml - service: tts.amazon_polly_say data: - message: 'Hello from Amazon Polly' + message: "Hello from Amazon Polly" ``` or diff --git a/source/_integrations/amcrest.markdown b/source/_integrations/amcrest.markdown index 475808872c8..388a943e967 100644 --- a/source/_integrations/amcrest.markdown +++ b/source/_integrations/amcrest.markdown @@ -246,9 +246,9 @@ camera_image: camera.lakehouse camera_view: live # or auto for snapshot view elements: - type: icon - icon: 'mdi:arrow-up' + icon: "mdi:arrow-up" style: - background: 'rgba(255, 255, 255, 0.25)' + background: "rgba(255, 255, 255, 0.25)" right: 25px bottom: 50px tap_action: @@ -258,9 +258,9 @@ elements: entity_id: camera.lakehouse movement: up - type: icon - icon: 'mdi:arrow-down' + icon: "mdi:arrow-down" style: - background: 'rgba(255, 255, 255, 0.25)' + background: "rgba(255, 255, 255, 0.25)" right: 25px bottom: 0px tap_action: @@ -270,9 +270,9 @@ elements: entity_id: camera.lakehouse movement: down - type: icon - icon: 'mdi:arrow-left' + icon: "mdi:arrow-left" style: - background: 'rgba(255, 255, 255, 0.25)' + background: "rgba(255, 255, 255, 0.25)" right: 50px bottom: 25px tap_action: @@ -282,9 +282,9 @@ elements: entity_id: camera.lakehouse movement: left - type: icon - icon: 'mdi:arrow-right' + icon: "mdi:arrow-right" style: - background: 'rgba(255, 255, 255, 0.25)' + background: "rgba(255, 255, 255, 0.25)" right: 0px bottom: 25px tap_action: @@ -294,9 +294,9 @@ elements: entity_id: camera.lakehouse movement: right - type: icon - icon: 'mdi:arrow-top-left' + icon: "mdi:arrow-top-left" style: - background: 'rgba(255, 255, 255, 0.25)' + background: "rgba(255, 255, 255, 0.25)" right: 50px bottom: 50px tap_action: @@ -306,9 +306,9 @@ elements: entity_id: camera.lakehouse movement: left_up - type: icon - icon: 'mdi:arrow-top-right' + icon: "mdi:arrow-top-right" style: - background: 'rgba(255, 255, 255, 0.25)' + background: "rgba(255, 255, 255, 0.25)" right: 0px bottom: 50px tap_action: @@ -318,9 +318,9 @@ elements: entity_id: camera.lakehouse movement: right_up - type: icon - icon: 'mdi:arrow-bottom-left' + icon: "mdi:arrow-bottom-left" style: - background: 'rgba(255, 255, 255, 0.25)' + background: "rgba(255, 255, 255, 0.25)" right: 50px bottom: 0px tap_action: @@ -330,9 +330,9 @@ elements: entity_id: camera.lakehouse movement: left_down - type: icon - icon: 'mdi:arrow-bottom-right' + icon: "mdi:arrow-bottom-right" style: - background: 'rgba(255, 255, 255, 0.25)' + background: "rgba(255, 255, 255, 0.25)" right: 0px bottom: 0px tap_action: @@ -342,9 +342,9 @@ elements: entity_id: camera.lakehouse movement: right_down - type: icon - icon: 'mdi:magnify' + icon: "mdi:magnify" style: - background: 'rgba(255, 255, 255, 0.25)' + background: "rgba(255, 255, 255, 0.25)" bottom: 25px right: 25px tap_action: diff --git a/source/_integrations/android_ip_webcam.markdown b/source/_integrations/android_ip_webcam.markdown index a81eb8641bf..398fa0db725 100644 --- a/source/_integrations/android_ip_webcam.markdown +++ b/source/_integrations/android_ip_webcam.markdown @@ -181,7 +181,7 @@ binary_sensor: name: Kitchen Motion device_class: motion resource: http://IP_ADDRESS:PORT/sensors.json?sense=motion_active - value_template: '{{ value_json.motion_active.data[0][1][0] | round(0) }}' + value_template: "{{ value_json.motion_active.data[0][1][0] | round(0) }}" ``` {% endraw %} diff --git a/source/_integrations/androidtv.markdown b/source/_integrations/androidtv.markdown index 1b95cb1891b..3cdf6e6edb4 100644 --- a/source/_integrations/androidtv.markdown +++ b/source/_integrations/androidtv.markdown @@ -217,14 +217,14 @@ start_netflix: - service: media_player.select_source data: entity_id: media_player.fire_tv_living_room - source: 'com.netflix.ninja' + source: "com.netflix.ninja" stop_netflix: sequence: - service: media_player.select_source data: entity_id: media_player.fire_tv_living_room - source: '!com.netflix.ninja' + source: "!com.netflix.ninja" ``` ### `androidtv.adb_command` diff --git a/source/_integrations/arlo.markdown b/source/_integrations/arlo.markdown index 5d655a870b8..ff2acbe39ae 100644 --- a/source/_integrations/arlo.markdown +++ b/source/_integrations/arlo.markdown @@ -142,7 +142,7 @@ Once you have enabled the [Arlo component](/integrations/arlo), add the followin # Example configuration.yaml entry camera: - platform: arlo - ffmpeg_arguments: '-pred 1 -q:v 2' + ffmpeg_arguments: "-pred 1 -q:v 2" ``` {% configuration %} diff --git a/source/_integrations/august.markdown b/source/_integrations/august.markdown index 4f1de45e2ae..2918d4f3650 100644 --- a/source/_integrations/august.markdown +++ b/source/_integrations/august.markdown @@ -105,7 +105,7 @@ Using the lock operation sensors, you can detect when a user operates a lock and {% raw %} ```yaml -- id: '1583706446906' +- id: "1583706446906" alias: joe_doe_front_door_operate description: John Doe locks or unlocks the Front Door trigger: diff --git a/source/_integrations/aurora_abb_powerone.markdown b/source/_integrations/aurora_abb_powerone.markdown index b6db71f94e3..b0bebe7aca8 100644 --- a/source/_integrations/aurora_abb_powerone.markdown +++ b/source/_integrations/aurora_abb_powerone.markdown @@ -32,7 +32,7 @@ Add the following to your `configuration.yaml` file: # Example configuration.yaml entry sensor: - platform: aurora_abb_powerone - device: 'SERIAL_PORT' + device: "SERIAL_PORT" ``` {% configuration %} @@ -57,5 +57,5 @@ name: sensor: - platform: aurora_abb_powerone address: 2 - device: '/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A50285BI-if00-port0' + device: "/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A50285BI-if00-port0" ``` diff --git a/source/_integrations/bayesian.markdown b/source/_integrations/bayesian.markdown index ae669aade68..9f2a41f2407 100644 --- a/source/_integrations/bayesian.markdown +++ b/source/_integrations/bayesian.markdown @@ -24,10 +24,10 @@ binary_sensor: - platform: bayesian prior: 0.1 observations: - - entity_id: 'switch.kitchen_lights' + - entity_id: "switch.kitchen_lights" prob_given_true: 0.6 prob_given_false: 0.2 - platform: 'state' + platform: "state" to_state: "on" ``` @@ -90,27 +90,27 @@ The following is an example for the `state` observation platform. ```yaml # Example configuration.yaml entry binary_sensor: - name: 'in_bed' - platform: 'bayesian' + name: "in_bed" + platform: "bayesian" prior: 0.25 probability_threshold: 0.95 observations: - - platform: 'state' - entity_id: 'sensor.living_room_motion' + - platform: "state" + entity_id: "sensor.living_room_motion" prob_given_true: 0.4 prob_given_false: 0.2 to_state: "off" - - platform: 'state' - entity_id: 'sensor.basement_motion' + - platform: "state" + entity_id: "sensor.basement_motion" prob_given_true: 0.5 prob_given_false: 0.4 to_state: "off" - - platform: 'state' - entity_id: 'sensor.bedroom_motion' + - platform: "state" + entity_id: "sensor.bedroom_motion" prob_given_true: 0.5 to_state: "on" - - platform: 'state' - entity_id: 'sun.sun' + - platform: "state" + entity_id: "sun.sun" prob_given_true: 0.7 to_state: "below_horizon" ``` @@ -121,13 +121,13 @@ as seen in the configuration it requires `below` and/or `above` instead of `to_s ```yaml # Example configuration.yaml entry binary_sensor: - name: 'Heat On' - platform: 'bayesian' + name: "Heat On" + platform: "bayesian" prior: 0.2 probability_threshold: 0.9 observations: - - platform: 'numeric_state' - entity_id: 'sensor.outside_air_temperature_fahrenheit' + - platform: "numeric_state" + entity_id: "sensor.outside_air_temperature_fahrenheit" prob_given_true: 0.95 below: 50 ``` @@ -139,8 +139,8 @@ Finally, here's an example for `template` observation platform, as seen in the c ```yaml # Example configuration.yaml entry binary_sensor: - name: 'Paulus Home' - platform: 'bayesian' + name: "Paulus Home" + platform: "bayesian" prior: 0.5 probability_threshold: 0.9 observations: diff --git a/source/_integrations/binary_sensor.template.markdown b/source/_integrations/binary_sensor.template.markdown index 22ebd90ef48..3777ca77ab9 100644 --- a/source/_integrations/binary_sensor.template.markdown +++ b/source/_integrations/binary_sensor.template.markdown @@ -239,7 +239,7 @@ binary_sensor: my_device: value_template: >- {{ is_state('device_tracker.my_device_nmap','home') or is_state('device_tracker.my_device_gps','home') }} - device_class: 'presence' + device_class: "presence" attribute_templates: latitude: >- {% if is_state('device_tracker.my_device_nmap','home') %} @@ -301,7 +301,7 @@ binary_sensor: - platform: template sensors: has_unavailable_states: - value_template: '{{ states | selectattr('state', 'in', ['unavailable', 'unknown', 'none']) | list | count }}' + value_template: "{{ states | selectattr('state', 'in', ['unavailable', 'unknown', 'none']) | list | count }}" ``` {% endraw %} @@ -315,7 +315,7 @@ binary_sensor: - platform: template sensors: has_sensor_unavailable_states: - value_template: '{{ states.sensor | selectattr('state', 'in', ['unavailable', 'unknown', 'none']) | list | count }}' + value_template: "{{ states.sensor | selectattr('state', 'in', ['unavailable', 'unknown', 'none']) | list | count }}" ``` {% endraw %} diff --git a/source/_integrations/binary_sensor.xiaomi_aqara.markdown b/source/_integrations/binary_sensor.xiaomi_aqara.markdown index fe41b5ef4fd..8eeef94a6ff 100644 --- a/source/_integrations/binary_sensor.xiaomi_aqara.markdown +++ b/source/_integrations/binary_sensor.xiaomi_aqara.markdown @@ -42,8 +42,8 @@ The requirement is that you have setup the [`xiaomi aqara` integration](/integra trigger: platform: state entity_id: binary_sensor.motion_sensor_158d000xxxxxc2 - from: 'off' - to: 'on' + from: "off" + to: "on" condition: condition: numeric_state entity_id: sensor.illumination_34ce00xxxx11 @@ -60,8 +60,8 @@ The requirement is that you have setup the [`xiaomi aqara` integration](/integra trigger: platform: state entity_id: binary_sensor.motion_sensor_158d000xxxxxc2 - from: 'on' - to: 'off' + from: "on" + to: "off" for: minutes: 5 action: @@ -79,32 +79,32 @@ The requirement is that you have setup the [`xiaomi aqara` integration](/integra trigger: platform: state entity_id: binary_sensor.door_window_sensor_158d000xxxxxc2 - from: 'off' - to: 'on' + from: "off" + to: "on" action: service: climate.set_operation_mode entity_id: climate.livingroom data: - operation_mode: 'Off' + operation_mode: "Off" - alias: If the window is closed for 5 minutes turn on the radiator again trigger: platform: state entity_id: binary_sensor.door_window_sensor_158d000xxxxxc2 - from: 'on' - to: 'off' + from: "on" + to: "off" for: minutes: 5 action: service: climate.set_operation_mode entity_id: climate.livingroom data: - operation_mode: 'Smart schedule' + operation_mode: "Smart schedule" - alias: Notify if door is opened when away trigger: platform: state entity_id: binary_sensor.door_window_sensor_15xxxxxxc9xx6b - from: 'off' - to: 'on' + from: "off" + to: "on" condition: - condition: state entity_id: group.family @@ -112,7 +112,7 @@ The requirement is that you have setup the [`xiaomi aqara` integration](/integra action: - service: notify.notify_person data: - message: 'The door has been opened' + message: "The door has been opened" ``` #### Smoke @@ -122,8 +122,8 @@ The requirement is that you have setup the [`xiaomi aqara` integration](/integra trigger: platform: state entity_id: binary_sensor.smoke_sensor_158d0001574899 - from: 'off' - to: 'on' + from: "off" + to: "on" action: - service: notify.html5 data: @@ -143,13 +143,13 @@ The requirement is that you have setup the [`xiaomi aqara` integration](/integra trigger: platform: state entity_id: binary_sensor.natgas_sensor_158dxxxxxxxxxx - from: 'off' - to: 'on' + from: "off" + to: "on" action: - service: notify.html5 data: title: Gas alarm! - message: 'Gas with a density of {% raw %}{{ state_attr('binary_sensor.natgas_sensor_158dxxxxxxxxxx', 'density') }}{% endraw %} detected.' + message: "Gas with a density of {% raw %}{{ state_attr('binary_sensor.natgas_sensor_158dxxxxxxxxxx', 'density') }}{% endraw %} detected." ``` #### Xiaomi Wireless Button diff --git a/source/_integrations/blink.markdown b/source/_integrations/blink.markdown index 9b58835328f..88171f23a89 100644 --- a/source/_integrations/blink.markdown +++ b/source/_integrations/blink.markdown @@ -121,7 +121,7 @@ Here, this example assumes your blink module is named `My Sync Module` and that trigger: platform: state entity_id: all - to: 'not_home' + to: "not_home" action: service: alarm_control_panel.alarm_arm_away entity_id: alarm_control_panel.blink_my_sync_module @@ -137,7 +137,7 @@ Similar to the previous example, this automation will disarm blink when arriving trigger: platform: state entity_id: all - to: 'home' + to: "home" action: service: alarm_control_panel.alarm_disarm entity_id: alarm_control_panel.blink_my_sync_module @@ -157,7 +157,7 @@ Again, this example assumes your camera's name (in the blink app) is `My Camera` trigger: platform: state entity_id: binary_sensor.blink_my_camera_motion_detected - to: 'on' + to: "on" action: service: blink.save_video data: diff --git a/source/_integrations/brother.markdown b/source/_integrations/brother.markdown index 14648d2b7a4..83c4b4654fd 100644 --- a/source/_integrations/brother.markdown +++ b/source/_integrations/brother.markdown @@ -45,12 +45,12 @@ You can configure Home Assistant to alert you when the printer jams or runs out sensors: laser_out_of_paper: value_template: "{{ is_state('sensor.hl_l2340d_status', 'no paper') }}" - friendly_name: 'Laser Printer Out of Paper' + friendly_name: "Laser Printer Out of Paper" - platform: template sensors: laser_paper_jam: value_template: "{{ is_state('sensor.hl_l2340d_status', 'paper jam') }}" - friendly_name: 'Laser Printer Paper Jam' + friendly_name: "Laser Printer Paper Jam" ``` {% endraw %} diff --git a/source/_integrations/buienradar.markdown b/source/_integrations/buienradar.markdown index 006d80541ac..1b63d6ef06a 100644 --- a/source/_integrations/buienradar.markdown +++ b/source/_integrations/buienradar.markdown @@ -59,7 +59,7 @@ A full configuration example: # Example configuration.yaml entry weather: - platform: buienradar - name: 'volkel' + name: "volkel" # Force 'Meetstation Volkel' to be used: latitude: 51.65 longitude: 5.70 diff --git a/source/_integrations/caldav.markdown b/source/_integrations/caldav.markdown index c777d514306..84c4b15e897 100644 --- a/source/_integrations/caldav.markdown +++ b/source/_integrations/caldav.markdown @@ -56,12 +56,12 @@ calendar: password: !secret caldav url: https://baikal.my-server.net/cal.php/calendars/john.doe@test.com/default custom_calendars: - - name: 'HomeOffice' - calendar: 'Agenda' - search: 'HomeOffice' - - name: 'WarmupFlat' - calendar: 'Agenda' - search: 'Warmup' + - name: "HomeOffice" + calendar: "Agenda" + search: "HomeOffice" + - name: "WarmupFlat" + calendar: "Agenda" + search: "Warmup" ``` This will create two binary sensors for the calendar name Agenda: "HomeOffice" and "WarmupFlat". Those sensors will be `on` if there is an ongoing event matching the regular expression specified in `search`. In custom calendars, events that last a whole day are taken into account. @@ -133,7 +133,7 @@ All events of the calendars "private" and "holidays". Note that all day events a calendar: - platform: caldav url: https://nextcloud.example.com/remote.php/dav - username: 'me' + username: "me" password: !secret caldav calendars: - private @@ -149,22 +149,22 @@ Custom calendar names are built from the main calendar + name of the custom cale calendar: - platform: caldav url: https://nextcloud.example.com/remote.php/dav - username: 'me' + username: "me" password: !secret caldav custom_calendars: - name: holiday calendar: work - search: 'Holiday' + search: "Holiday" - name: vacation calendar: vacation - search: '.*' + search: ".*" # automations.yaml - id: wakeup alias: worktime wakeup trigger: platform: time - at: '06:40:00' + at: "06:40:00" action: - service: media_player.media_play entity_id: media_player.bedroom diff --git a/source/_integrations/calendar.google.markdown b/source/_integrations/calendar.google.markdown index 04d73c6c49a..a66e3db9ccb 100644 --- a/source/_integrations/calendar.google.markdown +++ b/source/_integrations/calendar.google.markdown @@ -210,7 +210,7 @@ Trigger as soon as an event starts: trigger: platform: state entity_id: calendar.calendar_name - to: 'on' + to: "on" ``` By using specific text in the event title, you can set conditions to initiate particular automation flows on designated events while other events will be ignored. diff --git a/source/_posts/2015-06-10-release-notes.markdown b/source/_posts/2015-06-10-release-notes.markdown index 9df261da598..1cc34717ac4 100644 --- a/source/_posts/2015-06-10-release-notes.markdown +++ b/source/_posts/2015-06-10-release-notes.markdown @@ -85,7 +85,7 @@ __Bitcoin sensor__ # Example configuration.yaml entry sensor: platform: bitcoin - wallet: 'YOUR WALLET_ID' + wallet: "YOUR WALLET_ID" password: YOUR_ACCOUNT_PASSWORD currency: YOUR CURRENCY display_options: diff --git a/source/_posts/2015-08-09-mqtt-raspberry-pi-squeezebox-asuswrt-support.markdown b/source/_posts/2015-08-09-mqtt-raspberry-pi-squeezebox-asuswrt-support.markdown index 663de9aef84..fe80c2603cf 100644 --- a/source/_posts/2015-08-09-mqtt-raspberry-pi-squeezebox-asuswrt-support.markdown +++ b/source/_posts/2015-08-09-mqtt-raspberry-pi-squeezebox-asuswrt-support.markdown @@ -76,7 +76,7 @@ __Slack notification support__ notify: platform: slack api_key: ABCDEFGHJKLMNOPQRSTUVXYZ - default_channel: '#general' + default_channel: "#general" ``` __Edimax Smart Switches support__ diff --git a/source/_posts/2015-08-26-laundry-automation-with-moteino-mqtt-and-home-assistant.markdown b/source/_posts/2015-08-26-laundry-automation-with-moteino-mqtt-and-home-assistant.markdown index 0683a8325de..3ad4c1c0218 100644 --- a/source/_posts/2015-08-26-laundry-automation-with-moteino-mqtt-and-home-assistant.markdown +++ b/source/_posts/2015-08-26-laundry-automation-with-moteino-mqtt-and-home-assistant.markdown @@ -81,8 +81,8 @@ automation: platform: state state_entity_id: sensor.dryer_status - state_from: 'Running' - state_to: 'Complete' + state_from: "Running" + state_to: "Complete" execute_service: script.turn_on service_entity_id: script.dryer_complete @@ -92,8 +92,8 @@ automation 2: platform: state state_entity_id: sensor.dryer_status - state_from: 'Complete' - state_to: 'Empty' + state_from: "Complete" + state_to: "Empty" execute_service: script.turn_on service_entity_id: script.dryer_cleared diff --git a/source/_posts/2016-08-03-laundry-automation-update.markdown b/source/_posts/2016-08-03-laundry-automation-update.markdown index e79c21b229a..e50f95f3c6e 100644 --- a/source/_posts/2016-08-03-laundry-automation-update.markdown +++ b/source/_posts/2016-08-03-laundry-automation-update.markdown @@ -77,8 +77,8 @@ automation: trigger: platform: state entity_id: sensor.washer_status - from: 'Running' - to: 'Complete' + from: "Running" + to: "Complete" action: service: script.turn_on entity_id: script.washer_complete @@ -87,8 +87,8 @@ automation: trigger: platform: state entity_id: sensor.washer_status - from: 'Complete' - to: 'Empty' + from: "Complete" + to: "Empty" action: service: scene.turn_on entity_id: scene.normal diff --git a/source/_posts/2016-10-08-hassbian-rest-digital-ocean.markdown b/source/_posts/2016-10-08-hassbian-rest-digital-ocean.markdown index d49233c9e4c..fbe4f362187 100644 --- a/source/_posts/2016-10-08-hassbian-rest-digital-ocean.markdown +++ b/source/_posts/2016-10-08-hassbian-rest-digital-ocean.markdown @@ -49,7 +49,7 @@ sensor username: YOUR_GITHUB_USERNAME password: YOUR_GITHUB_ACCESS_TOKEN authentication: basic - value_template: '{% raw %}{{ value_json.tag_name }}{% endraw %}' + value_template: "{% raw %}{{ value_json.tag_name }}{% endraw %}" headers: Accept: application/vnd.github.v3+json Content-Type: application/json diff --git a/source/_posts/2017-02-04-babyphone.markdown b/source/_posts/2017-02-04-babyphone.markdown index b4fcb1d5bb1..0a13c85ae48 100644 --- a/source/_posts/2017-02-04-babyphone.markdown +++ b/source/_posts/2017-02-04-babyphone.markdown @@ -72,22 +72,22 @@ input_boolean: initial: off automation: - - alias: 'Babyphone on' + - alias: "Babyphone on" trigger: platform: state entity_id: input_boolean.babyphone - from: 'off' - to: 'on' + from: "off" + to: "on" action: service: ffmpeg.start entity_id: binary_sensor.ffmpeg_noise - - alias: 'Babyphone off' + - alias: "Babyphone off" trigger: platform: state entity_id: input_boolean.babyphone - from: 'on' - to: 'off' + from: "on" + to: "off" action: service: ffmpeg.stop entity_id: binary_sensor.ffmpeg_noise @@ -99,12 +99,12 @@ Now we can make a lot stuff. Here is a simple example of an automation what shou ```yaml automation: - - alias: 'Babyphone alarm on' + - alias: "Babyphone alarm on" trigger: platform: state entity_id: binary_sensor.ffmpeg_noise - from: 'off' - to: 'on' + from: "off" + to: "on" action: - service: media_player.sonos_snapshot entity_id: media_player.bedroom @@ -117,7 +117,7 @@ automation: - service: media_player.play_media entity_id: media_player.bedroom data: - media_content_type: 'music' + media_content_type: "music" media_content_id: http://my_ip_icecast:8000/babyphone.mp3 - service: light.turn_on: entity_id: @@ -126,12 +126,12 @@ automation: data: brightness: 150 - - alias: 'Babyphone alarm off' + - alias: "Babyphone alarm off" trigger: platform: state entity_id: binary_sensor.ffmpeg_noise - from: 'on' - to: 'off' + from: "on" + to: "off" action: - service: media_player.sonos_restore entity_id: media_player.bedroom diff --git a/source/_posts/2017-03-28-http-to-mqtt-bridge.markdown b/source/_posts/2017-03-28-http-to-mqtt-bridge.markdown index dcb718b4ada..49be7e99aa7 100644 --- a/source/_posts/2017-03-28-http-to-mqtt-bridge.markdown +++ b/source/_posts/2017-03-28-http-to-mqtt-bridge.markdown @@ -53,11 +53,11 @@ automation: alias: HTTP to MQTT keep alive trigger: platform: time_pattern - minutes: '/10' + minutes: "/10" condition: condition: time - after: '7:30:00' - before: '23:59:59' + after: "7:30:00" + before: "23:59:59" action: service: rest_command.http_to_mqtt_keep_alive ``` diff --git a/source/_posts/2017-04-22-ikea-tradfri--spotify.markdown b/source/_posts/2017-04-22-ikea-tradfri--spotify.markdown index 1591e2ceef5..8dd4c7aa5d3 100644 --- a/source/_posts/2017-04-22-ikea-tradfri--spotify.markdown +++ b/source/_posts/2017-04-22-ikea-tradfri--spotify.markdown @@ -72,13 +72,13 @@ sensor: - station: Hauptbahnhof name: Hbf destinations: ['München Flughafen Terminal','Markt Schwaben'] - products: 'S-Bahn' + products: "S-Bahn" timeoffset: 2 - station: Sendlinger Tor lines: ['U2','U8'] - station: Scheidplatz products: ['U-Bahn'] - directions: '1' + directions: "1" ``` ## If you need help... diff --git a/source/_posts/2017-04-25-influxdb-grafana-docker.markdown b/source/_posts/2017-04-25-influxdb-grafana-docker.markdown index 7c4ca36bc28..689d73e5dce 100644 --- a/source/_posts/2017-04-25-influxdb-grafana-docker.markdown +++ b/source/_posts/2017-04-25-influxdb-grafana-docker.markdown @@ -48,8 +48,8 @@ Instead of running [InfluxDB](https://www.influxdata.com/) and Grafana on a Rasp ```yaml panel_iframe: router: - title: 'Temperature' - url: 'http://192.168.2.113:3003/dashboard/db/temperature?edit&tab=time%20range' + title: "Temperature" + url: "http://192.168.2.113:3003/dashboard/db/temperature?edit&tab=time%20range" ``` The URL can be obtained by clicking Share Dashboard link on your dashboard:

diff --git a/source/_posts/2017-10-28-demo.markdown b/source/_posts/2017-10-28-demo.markdown index 0294193f663..ce40642b6d6 100644 --- a/source/_posts/2017-10-28-demo.markdown +++ b/source/_posts/2017-10-28-demo.markdown @@ -81,7 +81,7 @@ binary_sensor: sensors: on_tester: value_template: "{{ states.input_boolean.on_off.state == 'on' }}" - friendly_name: 'Movement' + friendly_name: "Movement" device_class: motion ``` diff --git a/source/_posts/2018-01-14-release-61.markdown b/source/_posts/2018-01-14-release-61.markdown index 5a5ccf108d6..1c366775108 100644 --- a/source/_posts/2018-01-14-release-61.markdown +++ b/source/_posts/2018-01-14-release-61.markdown @@ -97,9 +97,9 @@ Note however, that this feature was replaced by a new ignore_string config optio alexa: entity_config: switch.kitchen: - name: 'Name for Alexa' - description: 'Description for Alexa' - display_categories: 'LIGHT' + name: "Name for Alexa" + description: "Description for Alexa" + display_categories: "LIGHT" ``` ([@balloob] - [#11461]) ([cloud docs]) ([alexa.smart_home docs]) (breaking change) - The extension of the `alpha_vantage` requires an update of the configuration as now are exchange data available as well. ([@ChristianKuehnel] - [#11427]) ([sensor.alpha_vantage docs]) (breaking change) diff --git a/source/_posts/2018-06-04-esphomelib.markdown b/source/_posts/2018-06-04-esphomelib.markdown index 3c68102ea4a..0c1f495af26 100644 --- a/source/_posts/2018-06-04-esphomelib.markdown +++ b/source/_posts/2018-06-04-esphomelib.markdown @@ -43,13 +43,13 @@ esphomeyaml: board: nodemcuv2 wifi: - ssid: 'MySSID' - password: 'MyPassword' + ssid: "MySSID" + password: "MyPassword" mqtt: - broker: '192.168.178.83' - username: '' - password: '' + broker: "192.168.178.83" + username: "" + password: "" logger: ota: diff --git a/source/_posts/2019-08-28-release-98.markdown b/source/_posts/2019-08-28-release-98.markdown index b94a38bf296..b2e139bd5ca 100644 --- a/source/_posts/2019-08-28-release-98.markdown +++ b/source/_posts/2019-08-28-release-98.markdown @@ -287,7 +287,7 @@ anymore. - ([@abmantis] - [#25971]) Example configuration entry: ```yaml - platform: statistics - name: 'MiAP2 PSI Stat' + name: "MiAP2 PSI Stat" entity_id: sensor.mi_ap2_aqi ``` diff --git a/source/_posts/2020-01-15-release-104.markdown b/source/_posts/2020-01-15-release-104.markdown index 16037541a7a..f84ee462414 100644 --- a/source/_posts/2020-01-15-release-104.markdown +++ b/source/_posts/2020-01-15-release-104.markdown @@ -358,8 +358,8 @@ Make sure to fill in all fields of the issue template, that is helping us a lot! ```yaml media_player: - platform: vizio - host: ':' - access_token: '' + host: ":" + access_token: "" device_class: tv ``` diff --git a/source/_posts/2020-02-05-release-105.markdown b/source/_posts/2020-02-05-release-105.markdown index a60f6f205c7..d726f35b697 100644 --- a/source/_posts/2020-02-05-release-105.markdown +++ b/source/_posts/2020-02-05-release-105.markdown @@ -436,11 +436,11 @@ Experiencing issues introduced by this release? Please report them in our [issue ```yaml tts: - platform: marytts - host: 'localhost' + host: "localhost" port: 59125 - codec: 'WAVE_FILE' - voice: 'cmu-slt-hsmm' - language: 'en_US' + codec: "WAVE_FILE" + voice: "cmu-slt-hsmm" + language: "en_US" effect: Volume: "amount:2.0;", TractScaler: "amount:1.5;", diff --git a/source/_posts/2020-02-11-android-16-17-release.markdown b/source/_posts/2020-02-11-android-16-17-release.markdown index 173d6bcfc4c..c623d7ce03c 100644 --- a/source/_posts/2020-02-11-android-16-17-release.markdown +++ b/source/_posts/2020-02-11-android-16-17-release.markdown @@ -25,8 +25,8 @@ automation: trigger: platform: state entity_id: cover.garage_door - from: 'closed' - to: 'open' + from: "closed" + to: "open" for: ‘0:30:00’ action: service: notify.mobile_app_robbies_pixel_5 diff --git a/source/_posts/2020-07-01-release-112.markdown b/source/_posts/2020-07-01-release-112.markdown index 34d94408c25..731cc911272 100644 --- a/source/_posts/2020-07-01-release-112.markdown +++ b/source/_posts/2020-07-01-release-112.markdown @@ -342,7 +342,7 @@ automation: action: - service: xiaomi_miio.vacuum_clean_zone data: - repeats: '{{states('input_number.vacuum_passes')|int}}' + repeats: "{{states('input_number.vacuum_passes')|int}}" zone: [[30914,26007,35514,28807], [20232,22496,26032,26496]] ``` @@ -363,7 +363,7 @@ automation: - service: xiaomi_miio.vacuum_clean_zone data: entity_id: vacuum.xiaomi_vacuum - repeats: '{{states('input_number.vacuum_passes')|int}}' + repeats: "{{states('input_number.vacuum_passes')|int}}" zone: [[30914,26007,35514,28807], [20232,22496,26032,26496]] ``` diff --git a/source/_posts/2020-10-07-release-116.markdown b/source/_posts/2020-10-07-release-116.markdown index f4ca91afdee..dbbcd13aadb 100644 --- a/source/_posts/2020-10-07-release-116.markdown +++ b/source/_posts/2020-10-07-release-116.markdown @@ -433,12 +433,12 @@ Before this change: state_address: "2/0/33" automation: - counter: 1 - hook: 'on' + hook: "on" action: - entity_id: cover.sonne_abstellkammer service: cover.open_cover - counter: 1 - hook: 'off' + hook: "off" action: - entity_id: cover.sonne_abstellkammer service: cover.close_cover @@ -455,7 +455,7 @@ After this change: ```yaml # automation.yaml automation: - - alias: 'Binary sensor test counter=1 on' + - alias: "Binary sensor test counter=1 on" trigger: platform: numeric_state entity_id: binary_sensor.cover_abstell @@ -465,12 +465,12 @@ automation: condition: - condition: state entity_id: binary_sensor.cover_abstell - state: 'on' + state: "on" action: - service: cover.open_cover entity_id: cover.sonne_abstellkammer - - alias: 'Binary sensor test counter=1 off' + - alias: "Binary sensor test counter=1 off" trigger: platform: numeric_state entity_id: binary_sensor.cover_abstell @@ -480,7 +480,7 @@ automation: condition: - condition: state entity_id: binary_sensor.cover_abstell - state: 'off' + state: "off" action: - service: cover.close_cover entity_id: cover.sonne_abstellkammer diff --git a/source/lovelace/header-footer.markdown b/source/lovelace/header-footer.markdown index 330a047a6d6..e44835cab33 100644 --- a/source/lovelace/header-footer.markdown +++ b/source/lovelace/header-footer.markdown @@ -16,7 +16,7 @@ Widget to show a picture as a header or a footer. A picture can have touch actio ```yaml header: type: picture - image: 'https://www.home-assistant.io/images/lovelace/header-footer/balloons-header.png' + image: "https://www.home-assistant.io/images/lovelace/header-footer/balloons-header.png" ``` {% configuration header-footer %} @@ -52,9 +52,9 @@ footer: entities: - script.launch_confetti - entity: script.swirl_lights - icon: 'mdi:track-light' + icon: "mdi:track-light" - entity: script.run_siren - icon: 'mdi:alarm-light' + icon: "mdi:alarm-light" ``` {% configuration header-footer %} From 88fd13bf1c4718a680b213201f94e1c900efff0f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 2 Feb 2021 13:41:37 +0100 Subject: [PATCH 18/19] Bump i18n from 1.8.7 to 1.8.8 (#16387) Bumps [i18n](https://github.com/ruby-i18n/i18n) from 1.8.7 to 1.8.8. - [Release notes](https://github.com/ruby-i18n/i18n/releases) - [Changelog](https://github.com/ruby-i18n/i18n/blob/master/CHANGELOG.md) - [Commits](https://github.com/ruby-i18n/i18n/compare/v1.8.7...v1.8.8) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 4e9fe2cbc1c..5df2e88d874 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -29,7 +29,7 @@ GEM ffi (1.14.2-x64-mingw32) forwardable-extended (2.6.0) http_parser.rb (0.6.0) - i18n (1.8.7) + i18n (1.8.8) concurrent-ruby (~> 1.0) jekyll (4.2.0) addressable (~> 2.4) From 8eaac5972ee35f16ea5b6d0e4f89f4e9555a1253 Mon Sep 17 00:00:00 2001 From: Alex Calderon Date: Tue, 2 Feb 2021 08:24:56 -0500 Subject: [PATCH 19/19] Update emulated_hue.markdown (#16386) (You cannot "Add Device", you must click "Scan for Device." Presumably "Add Device" doesn't search for the Hue's IP and instead waits to see the button being pushed, and Scanning finds the Emulated Hue Hubs IP address.) https://i.imgur.com/1L6RXiG.png --- source/_integrations/emulated_hue.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/emulated_hue.markdown b/source/_integrations/emulated_hue.markdown index 9f98251ed4d..d8fa0c2da37 100644 --- a/source/_integrations/emulated_hue.markdown +++ b/source/_integrations/emulated_hue.markdown @@ -43,7 +43,7 @@ If you added or upgraded to a newer Alexa device and devices are not found, you

-Logitech Harmony remotes cannot connect to this emulator via Android and iOS mobile applications because they require the physical button on the hub to be pressed. The [MyHarmony desktop software](https://support.myharmony.com/en-us/download) must be used with the original cable to connect it. +Logitech Harmony remotes cannot connect to this emulator via Android and iOS mobile applications because they require the physical button on the hub to be pressed. The [MyHarmony desktop software](https://support.myharmony.com/en-us/download) must be used with the original cable to connect it, then "Scan for Devices".