From 8a852cb9c9a7a61ad64f7b17e199bb37347836f9 Mon Sep 17 00:00:00 2001 From: Daniel Shokouhi Date: Wed, 26 Feb 2020 17:16:10 -0800 Subject: [PATCH 01/23] Clarify what changing unique ID means (#12189) --- source/_posts/2020-02-26-release-106.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_posts/2020-02-26-release-106.markdown b/source/_posts/2020-02-26-release-106.markdown index ae5db35adb74..3d791fc14627 100644 --- a/source/_posts/2020-02-26-release-106.markdown +++ b/source/_posts/2020-02-26-release-106.markdown @@ -228,7 +228,7 @@ Experiencing issues introduced by this release? Please report them in our [issue input_type: discrete_input ``` -- **Tado** - Adding support of multiple Tado accounts has changed the unique ID generation of sensor and climate devices, and now includes the ID of the home. +- **Tado** - Adding support of multiple Tado accounts has changed the unique ID generation of sensor and climate devices, and now includes the ID of the home. As a result you will see new entity ID's for `sensor` and `climate` devices. In addition, support for water heater zones has been added. Tado hot water zones with temperature control previously created a climate entity, e.g., `climate.hot_water`, and these will be replaced by a `water_heater.hot_water` entity. This change is not breaking for hot water zones without temperature control as they do not have a climate zone. From 9b04a7405492bd5b4fdb138114bd4e2f6ea2d9cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isabella=20Gross=20Alstr=C3=B6m?= Date: Thu, 27 Feb 2020 02:26:42 +0100 Subject: [PATCH 02/23] Update surepetcare.markdown (#12185) Noticed some copy/paste mistakes (feeders referred to as flaps). --- source/_integrations/surepetcare.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/_integrations/surepetcare.markdown b/source/_integrations/surepetcare.markdown index af8beb7d840b..ca7cf3216595 100644 --- a/source/_integrations/surepetcare.markdown +++ b/source/_integrations/surepetcare.markdown @@ -50,16 +50,16 @@ surepetcare: required: true type: string feeders: - description: The Sure Petcare flaps + description: The Sure Petcare feeders required: true type: map keys: id: - description: The Sure Petcare id of a flap + description: The Sure Petcare id of a feeder required: true type: integer name: - description: A name for the flap + description: A name for the feeder required: true type: string pets: From fda584cdbba05ca06763a05d524b8d4825acf4e3 Mon Sep 17 00:00:00 2001 From: Marco H Date: Thu, 27 Feb 2020 10:03:12 +0100 Subject: [PATCH 03/23] Update coinmarketcap.markdown (#12192) Improved link to list of supported currencies in the API documentation. --- source/_integrations/coinmarketcap.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/coinmarketcap.markdown b/source/_integrations/coinmarketcap.markdown index 6a13cbff5933..58b248bab16d 100644 --- a/source/_integrations/coinmarketcap.markdown +++ b/source/_integrations/coinmarketcap.markdown @@ -36,4 +36,4 @@ display_currency_decimals: default: 2 {% endconfiguration %} -All supported currencies can be found [here](https://coinmarketcap.com/api/), a list of currency IDs can be found [here](https://api.coinmarketcap.com/v2/ticker/). +All supported currencies can be found [here](https://coinmarketcap.com/api/documentation/v1/#section/Standards-and-Conventions), a list of currency IDs can be found [here](https://api.coinmarketcap.com/v2/ticker/). From e3c83b6071b26fda354d08c8b693f3225a8ae61a Mon Sep 17 00:00:00 2001 From: Allan Persson <46043392+allanpersson@users.noreply.github.com> Date: Thu, 27 Feb 2020 12:50:49 +0100 Subject: [PATCH 04/23] Added supported Ikea covers (#12193) * Added supported Ikea covers Added Ikea FYRTUR and KADRILJ Listed on https://github.com/dresden-elektronik/deconz-rest-plugin/wiki/Supported-Devices in section other supported devices * :pencil2: Fix writing style of IKEA Co-authored-by: Franck Nijhof --- source/_integrations/deconz.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/_integrations/deconz.markdown b/source/_integrations/deconz.markdown index 68ae500ee7fa..281189dbfde2 100644 --- a/source/_integrations/deconz.markdown +++ b/source/_integrations/deconz.markdown @@ -417,6 +417,8 @@ The `entity_id` name will be `cover.device_name`, where `device_name` is defined ### Verified supported covers +- IKEA Fyrtur +- IKEA Kadrilj - Keen vents - Xiaomi Aqara Curtain controller From 166c1aa09288db539bc86f31c1f08f84e942d94d Mon Sep 17 00:00:00 2001 From: Brian Orpin Date: Thu, 27 Feb 2020 11:51:09 +0000 Subject: [PATCH 05/23] Option `json_path_attributes` incorrect (#12188) Option `json_path_attributes` should be `json_attributes_path`. --- source/_integrations/rest.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/rest.markdown b/source/_integrations/rest.markdown index 77cdd9402f27..ecb7d3d5e0a5 100644 --- a/source/_integrations/rest.markdown +++ b/source/_integrations/rest.markdown @@ -108,7 +108,7 @@ json_attributes: description: A list of keys to extract values from a JSON dictionary result and then set as sensor attributes. If the endpoint returns XML with the "text/xml" content type, it will automatically be converted to JSON according to this [specification](https://www.xml.com/pub/a/2006/05/31/converting-between-xml-and-json.html) required: false type: [string, list] -json_path_attributes: +json_attributes_path: description: A [JSONPath](https://goessner.net/articles/JsonPath/) that references the location of the `json_attributes` in the JSON content. required: false type: string From 7a9f3d272b520c621cbe87ae682bd5cf9d06ae6b Mon Sep 17 00:00:00 2001 From: springstan <46536646+springstan@users.noreply.github.com> Date: Thu, 27 Feb 2020 13:22:51 +0100 Subject: [PATCH 06/23] Add available fan services to Integrations/Fan page (#12179) --- source/_integrations/fan.markdown | 100 +++++++++++++++++++++++++++++- 1 file changed, 99 insertions(+), 1 deletion(-) diff --git a/source/_integrations/fan.markdown b/source/_integrations/fan.markdown index 9b1bf7904659..ec68bd0c99a6 100644 --- a/source/_integrations/fan.markdown +++ b/source/_integrations/fan.markdown @@ -8,4 +8,102 @@ ha_release: 0.27 ha_quality_scale: internal --- -The `fan` integration is built for the controlling of fan devices. +The Fan integration allows you to control and monitor Fan devices. + +## Services + +### Fan control services + +Available services: +`fan.set_speed`, `fan.set_direction`, `fan.oscillate`, `fan.turn_on`, `fan.turn_off`, `fan.toggle` + +
+ +Not all fan services may be available for your platform. Be sure to check the available services Home Assistant has enabled by checking service developer tool icon **Services**. + +
+ +### Service `fan.set_speed` + +Sets the speed for fan device + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `entity_id` | yes | String or list of strings that define the entity ID(s) of fan device(s) to control. To target all fan devices, use `all`. +| `speed` | no | Speed setting + +#### Automation example + +```yaml +automation: + trigger: + platform: time + at: "07:15:00" + action: + - service: fan.set_speed + data: + entity_id: fan.kitchen + speed: low +``` + +### Service `fan.set_direction` + +Sets the rotation for fan device + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `entity_id` | yes | String or list of strings that define the entity ID(s) of fan device(s) to control. To target all fan devices, use `all`. +| `direction` | no | The direction to rotate. Either `forward` or `reverse` + +#### Automation example + +```yaml +automation: + trigger: + platform: time + at: "07:15:00" + action: + - service: fan.set_direction + data: + entity_id: fan.kitchen + direction: forward +``` + +### Service `fan.oscillate` + +Sets the oscillation for fan device + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `entity_id` | yes | String or list of strings that define the entity ID(s) of fan device(s) to control. To target all fan devices, use `all`. +| `oscillating` | no | Flag to turn on/off oscillation. Either `True` or `False`. + +#### Automation example + +```yaml +automation: + trigger: + platform: time + at: "07:15:00" + action: + - service: fan.oscillate + data: + entity_id: fan.kitchen + oscillating: True +``` + +### Service `fan.turn_on` + +Turn fan device on. This is only supported if the fan device supports being turned off. + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `entity_id` | yes | String or list of strings that define the entity ID(s) of fan device(s) to control. To target all fan devices, use `all`. + +### Service `fan.turn_off` + +Turn fan device off. This is only supported if the fan device supports being turned on. + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `entity_id` | yes | String or list of strings that define the entity ID(s) of fan device(s) to control. To target all fan devices, use `all`. \ No newline at end of file From fc44b3a2c3d623c67022369a9f3da9b8592976bc Mon Sep 17 00:00:00 2001 From: akasma74 Date: Thu, 27 Feb 2020 12:36:43 +0000 Subject: [PATCH 07/23] add note on is_state_attr (#12169) * add note on is_state_attr Added a note about is_state_attr when attribute's value is None. Based on https://community.home-assistant.io/t/can-someone-please-explain/128041 and https://community.home-assistant.io/t/is-state-attr-with-none-argument-to-test/173723 * :pencil2: Tweak Co-authored-by: Franck Nijhof --- source/_docs/configuration/templating.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_docs/configuration/templating.markdown b/source/_docs/configuration/templating.markdown index 38407aabd138..6668c9d08863 100644 --- a/source/_docs/configuration/templating.markdown +++ b/source/_docs/configuration/templating.markdown @@ -57,7 +57,7 @@ Extensions allow templates to access all of the Home Assistant specific states a - `states('device_tracker.paulus')` will return the state string (not the object) of the given entity or `unknown` if it doesn't exist. - `is_state('device_tracker.paulus', 'home')` will test if the given entity is the specified state. - `state_attr('device_tracker.paulus', 'battery')` will return the value of the attribute or None if it doesn't exist. -- `is_state_attr('device_tracker.paulus', 'battery', 40)` will test if the given entity attribute is the specified state (in this case, a numeric value). +- `is_state_attr('device_tracker.paulus', 'battery', 40)` will test if the given entity attribute is the specified state (in this case, a numeric value). Note that the attribute can be `None` and you want to check if it is `None`, you need to use `state_attr('sensor.my_sensor', 'attr') == None`.
From e0815bec16686cbe4ea9828b3bc2d46fef7d06e3 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Thu, 27 Feb 2020 14:04:50 -0800 Subject: [PATCH 08/23] Release 0.106.1 --- _config.yml | 4 +-- source/_posts/2020-02-26-release-106.markdown | 30 +++++++++++++++++++ 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/_config.yml b/_config.yml index 3c967d8ecb72..dd405ca3de4a 100644 --- a/_config.yml +++ b/_config.yml @@ -101,8 +101,8 @@ social: # Home Assistant release details current_major_version: 0 current_minor_version: 106 -current_patch_version: 0 -date_released: 2020-02-26 +current_patch_version: 1 +date_released: 2020-02-27 # Either # or the anchor link to latest release notes in the blog post. # Must be prefixed with a # and have double quotes around it. diff --git a/source/_posts/2020-02-26-release-106.markdown b/source/_posts/2020-02-26-release-106.markdown index 3d791fc14627..11d259cabfcb 100644 --- a/source/_posts/2020-02-26-release-106.markdown +++ b/source/_posts/2020-02-26-release-106.markdown @@ -333,6 +333,36 @@ Experiencing issues introduced by this release? Please report them in our [issue - Updated frontend to 20200220.4 ([@bramkragten] - [#32205]) ([frontend docs]) (beta fix) - Remove deprecated Hue options (fixes CI) ([@frenck] - [#32027]) ([hue docs]) (breaking change) (beta fix) +## Release 0.106.1 - February 27 + +- Add missing translations for light actions ([@emontnemery] - [#32216]) ([light docs]) +- Mark clients away if they have never been seen. ([@lociii] - [#32222]) ([unifi docs]) +- Fix DSMR 5 ([@dupondje] - [#32233]) ([dsmr docs]) +- Bump simplisafe-python to 9.0.0 ([@bachya] - [#32215]) ([simplisafe docs]) +- Bump simplisafe-python to 9.0.2 ([@bachya] - [#32273]) ([simplisafe docs]) +- deCONZ - Race condition on slower systems ([@Kane610] - [#32274]) ([deconz docs]) +- Catch more Hue errors ([@balloob] - [#32275]) ([hue docs]) + +[#32215]: https://github.com/home-assistant/home-assistant/pull/32215 +[#32216]: https://github.com/home-assistant/home-assistant/pull/32216 +[#32222]: https://github.com/home-assistant/home-assistant/pull/32222 +[#32233]: https://github.com/home-assistant/home-assistant/pull/32233 +[#32273]: https://github.com/home-assistant/home-assistant/pull/32273 +[#32274]: https://github.com/home-assistant/home-assistant/pull/32274 +[#32275]: https://github.com/home-assistant/home-assistant/pull/32275 +[@Kane610]: https://github.com/Kane610 +[@bachya]: https://github.com/bachya +[@balloob]: https://github.com/balloob +[@dupondje]: https://github.com/dupondje +[@emontnemery]: https://github.com/emontnemery +[@lociii]: https://github.com/lociii +[deconz docs]: /integrations/deconz/ +[dsmr docs]: /integrations/dsmr/ +[hue docs]: /integrations/hue/ +[light docs]: /integrations/light/ +[simplisafe docs]: /integrations/simplisafe/ +[unifi docs]: /integrations/unifi/ + ## All changes - Change scan_interval defaults for Tesla ([@alandtse] - [#31194]) ([tesla docs]) (breaking change) From 3ce3892a87ccd74bf8de9597256a09b024cab8f7 Mon Sep 17 00:00:00 2001 From: Klaas Schoute Date: Fri, 28 Feb 2020 00:22:27 +0100 Subject: [PATCH 09/23] :pencil2: Change url because of 404 (#12195) --- source/_integrations/zha.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/_integrations/zha.markdown b/source/_integrations/zha.markdown index 827fef5fa1ee..01bfc94f5059 100644 --- a/source/_integrations/zha.markdown +++ b/source/_integrations/zha.markdown @@ -20,7 +20,7 @@ ha_codeowners: - '@adminiuga' --- -[Zigbee Home Automation](https://zigbee.org/zigbee-for-developers/applicationstandards/zigbeehomeautomation/) +[Zigbee Home Automation](https://zigbeealliance.org) integration for Home Assistant allows you to connect many off-the-shelf Zigbee based devices to Home Assistant, using one of the available Zigbee radio modules that is compatible with [zigpy](https://github.com/zigpy/zigpy) (an open source Python library implementing a Zigbee stack, which in turn relies on separate libraries which can each interface a with Zigbee radio module a different manufacturer). There is currently support for the following device types within Home Assistant: @@ -35,7 +35,7 @@ There is currently support for the following device types within Home Assistant: ## ZHA exception and deviation handling -Zigbee devices that deviate from or do not fully conform to the standard specifications set by the [Zigbee Alliance](https://www.zigbee.org) may require the development of custom [ZHA Device Handlers](https://github.com/dmulcahey/zha-device-handlers) (ZHA custom quirks handler implementation) to for all their functions to work properly with the ZHA integration in Home Assistant. These ZHA Device Handlers for Home Assistant can thus be used to parse custom messages to and from Zigbee devices. +Zigbee devices that deviate from or do not fully conform to the standard specifications set by the [Zigbee Alliance](https://zigbeealliance.org) may require the development of custom [ZHA Device Handlers](https://github.com/dmulcahey/zha-device-handlers) (ZHA custom quirks handler implementation) to for all their functions to work properly with the ZHA integration in Home Assistant. These ZHA Device Handlers for Home Assistant can thus be used to parse custom messages to and from Zigbee devices. The custom quirks implementations for zigpy implemented as ZHA Device Handlers for Home Assistant are a similar concept to that of [Hub-connected Device Handlers for the SmartThings Classics platform](https://docs.smartthings.com/en/latest/device-type-developers-guide/) as well as that of [Zigbee-Shepherd Converters as used by Zigbee2mqtt](https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html), meaning they are each virtual representations of a physical device that expose additional functionality that is not provided out-of-the-box by the existing integration between these platforms. From c973e65514384ad4ce52013291e0db761b888165 Mon Sep 17 00:00:00 2001 From: Sean Mooney Date: Fri, 28 Feb 2020 04:34:33 -0500 Subject: [PATCH 10/23] Remove outdated sentence from Zone condition (#12201) Removed a sentence from Zone condition which I believe is very outdated and inaccurate. There's definitely more than two device trackers that report GPS coordinates - Life360 and the official iOS / Android mobile apps are ones I use that also do this. --- source/_docs/scripts/conditions.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_docs/scripts/conditions.markdown b/source/_docs/scripts/conditions.markdown index 754615b555bc..deace93861bc 100644 --- a/source/_docs/scripts/conditions.markdown +++ b/source/_docs/scripts/conditions.markdown @@ -241,7 +241,7 @@ A better weekday condition could be by using the [Workday Binary Sensor](/integr ### Zone condition -Zone conditions test if an entity is in a certain zone. For zone automation to work, you need to have set up a device tracker platform that supports reporting GPS coordinates. Currently this is limited to the [OwnTracks platform](/integrations/owntracks/) and the [iCloud platform](/integrations/icloud/). +Zone conditions test if an entity is in a certain zone. For zone automation to work, you need to have set up a device tracker platform that supports reporting GPS coordinates. ```yaml condition: From 55e9890b16c987daf4db640510d1062efd7faf26 Mon Sep 17 00:00:00 2001 From: Erik Montnemery Date: Fri, 28 Feb 2020 10:36:07 +0100 Subject: [PATCH 11/23] Mqtt device trigger (#12200) --- source/_docs/mqtt/discovery.markdown | 1 + .../_integrations/binary_sensor.mqtt.markdown | 2 + .../device_trigger.mqtt.markdown | 75 +++++++++++++++++++ 3 files changed, 78 insertions(+) create mode 100644 source/_integrations/device_trigger.mqtt.markdown diff --git a/source/_docs/mqtt/discovery.markdown b/source/_docs/mqtt/discovery.markdown index face99eab89d..3bf8c3c04ed9 100644 --- a/source/_docs/mqtt/discovery.markdown +++ b/source/_docs/mqtt/discovery.markdown @@ -12,6 +12,7 @@ Supported by MQTT discovery: - [Binary sensors](/integrations/binary_sensor.mqtt/) - [Cameras](/integrations/camera.mqtt/) - [Covers](/integrations/cover.mqtt/) +- [Device Triggers](/integrations/device_trigger.mqtt/) - [Fans](/integrations/fan.mqtt/) - [HVACs](/integrations/climate.mqtt/) - [Lights](/integrations/light.mqtt/) diff --git a/source/_integrations/binary_sensor.mqtt.markdown b/source/_integrations/binary_sensor.mqtt.markdown index ddfc675a21d4..7fd4d8636808 100644 --- a/source/_integrations/binary_sensor.mqtt.markdown +++ b/source/_integrations/binary_sensor.mqtt.markdown @@ -14,6 +14,8 @@ The binary sensor state will be updated only after a new message is published on the binary sensor will receive an instant state update after subscription and Home Assistant will display the correct state on startup. Otherwise, the initial state displayed in Home Assistant will be `unknown`. +Stateless devices such as buttons, remote controls etc are better represented by [MQTT device triggers](/integrations/device_trigger.mqtt/) than by binary sensors. + ## Configuration The `mqtt` binary sensor platform optionally supports an `availability_topic` to receive online and offline messages (birth and LWT messages) from the MQTT device. During normal operation, if the MQTT sensor device goes offline (i.e., publishes `payload_not_available` to `availability_topic`), Home Assistant will display the binary sensor as `unavailable`. If these messages are published with the `retain` flag set, the binary sensor will receive an instant update after subscription and Home Assistant will display the correct availability state of the binary sensor when Home Assistant starts up. If the `retain` flag is not set, Home Assistant will display the binary sensor as `unavailable` when Home Assistant starts up. If no `availability_topic` diff --git a/source/_integrations/device_trigger.mqtt.markdown b/source/_integrations/device_trigger.mqtt.markdown new file mode 100644 index 000000000000..aae461636e5d --- /dev/null +++ b/source/_integrations/device_trigger.mqtt.markdown @@ -0,0 +1,75 @@ +--- +title: "MQTT Device Trigger" +description: "Instructions on how to integrate MQTT device triggers within Home Assistant." +logo: mqtt.png +ha_category: + - Device Automation +ha_release: 0.106 +ha_iot_class: Configurable +--- + +The `mqtt` device trigger platform uses an MQTT message payload to generate device trigger events. + +An MQTT device trigger is a better option than a [binary sensor](/integrations/binary_sensor.mqtt/) for buttons, remote controls etc. + +## Configuration + +MQTT device triggers are only supported through [MQTT discovery](/docs/mqtt/discovery/), manual setup through `configuration.yaml` is not supported. +The discovery topic needs to be: `/device_automation/[/]/config`. + +{% configuration %} +automation_type: + description: The type of automation, must be 'device_trigger'. + required: true + type: string +payload: + description: Optional payload to match the payload being sent over the topic. + required: false + type: string +qos: + description: The maximum QoS level to be used when receiving messages. + required: false + type: integer + default: 0 +topic: + description: The MQTT topic subscribed to receive trigger events. + required: true + type: string +type: + description: "The type of the trigger, e.g. `button_short_press`. Entries supported by the frontend: `button_short_press`, `button_short_release`, `button_long_press`, `button_long_release`, `button_double_press`, `button_triple_press`, `button_quadruple_press`, `button_quintuple_press`. If set to an unsupported value, will render as `subtype type`, e.g. `First button spammed` with `type` set to `spammed` and `subtype` set to `button_1`" + required: true + type: string +subtype: + description: "The subtype of the trigger, e.g. `button_1`. Entries supported by the frontend: `turn_on`, `turn_off`, `button_1`, `button_2`, `button_3`, `button_4`, `button_5`, `button_6`. If set to an unsupported value, will render as `subtype type`, e.g. `left_button pressed` with `type` set to `button_short_press` and `subtype` set to `left_button`" + required: true + type: string +device: + description: "Information about the device this device trigger is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html)." + required: true + type: map + keys: + connections: + description: "A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `'connections': ['mac', '02:5b:26:a8:dc:12']`." + required: false + type: [list, map] + identifiers: + 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. + required: false + type: string + model: + description: The model of the device. + required: false + type: string + name: + description: The name of the device. + required: false + type: string + sw_version: + description: The firmware version of the device. + required: false + type: string +{% endconfiguration %} From a985a2ba8920b91f73e5fb3651e10125db152078 Mon Sep 17 00:00:00 2001 From: Tom Schneider Date: Fri, 28 Feb 2020 15:00:42 +0100 Subject: [PATCH 12/23] Fix telegram bot documentation (#12186) * Fix telegram bot documentation "Telegram chatbot" should be called "Telegram bot", like the corresponding integration. The link to source was broken because of this, that's why I had to change the filename as well. * Change redirect for telegram bot * Add redirect for telegram_chatbot to telegram_bot * Change internal links --- source/_integrations/telegram.markdown | 4 ++-- .../{telegram_chatbot.markdown => telegram_bot.markdown} | 4 ++-- source/_posts/2017-04-22-ikea-tradfri--spotify.markdown | 4 ++-- source/_posts/2017-05-06-zigbee-opencv-dlib.markdown | 2 +- .../2017-05-20-automation-editor-zwave-panel-ocr.markdown | 6 +++--- source/_posts/2017-06-04-release-46.markdown | 2 +- source/_posts/2017-06-17-release-47.markdown | 2 +- source/_posts/2017-07-02-release-48.markdown | 2 +- source/_posts/2017-07-16-release-49.markdown | 2 +- source/_posts/2017-08-12-release-51.markdown | 2 +- source/_posts/2017-09-09-release-53.markdown | 2 +- source/_posts/2017-10-21-release-56.markdown | 2 +- source/_posts/2017-11-18-release-58.markdown | 2 +- source/_posts/2018-01-14-release-61.markdown | 2 +- source/_posts/2018-02-26-release-64.markdown | 2 +- source/_posts/2018-03-30-release-66.markdown | 2 +- source/_posts/2018-05-18-release-70.markdown | 2 +- source/_posts/2018-09-15-release-78.markdown | 2 +- source/_posts/2018-10-12-release-80.markdown | 4 ++-- source/_posts/2018-10-29-release-81.markdown | 2 +- source/_posts/2018-11-08-release-82.markdown | 2 +- source/_posts/2019-03-13-release-89.markdown | 2 +- source/_posts/2019-04-03-release-91.markdown | 2 +- source/_posts/2019-04-24-release-92.markdown | 2 +- source/_posts/2019-05-16-release-93.markdown | 2 +- source/_posts/2020-01-15-release-104.markdown | 2 +- source/_posts/2020-02-26-release-106.markdown | 2 +- source/_redirects | 3 ++- 28 files changed, 35 insertions(+), 34 deletions(-) rename source/_integrations/{telegram_chatbot.markdown => telegram_bot.markdown} (99%) diff --git a/source/_integrations/telegram.markdown b/source/_integrations/telegram.markdown index a19eea2668c4..90bd1146983e 100644 --- a/source/_integrations/telegram.markdown +++ b/source/_integrations/telegram.markdown @@ -14,7 +14,7 @@ The `telegram` platform uses [Telegram](https://web.telegram.org) to deliver not The requirements are: - You need a [Telegram bot](https://core.telegram.org/bots). Please follow those [instructions](https://core.telegram.org/bots#6-botfather) to create one and get the token for your bot. Keep in mind that bots are not allowed to contact users. You need to make the first contact with your user. Meaning that you need to send a message to the bot from your user. -- You need to configure a [Telegram bot in Home Assistant](/integrations/telegram_chatbot) and define there your API key and the allowed chat ids to interact with. +- You need to configure a [Telegram bot in Home Assistant](/integrations/telegram_bot) and define there your API key and the allowed chat ids to interact with. - The `chat_id` of an allowed user. **Method 1:** You can get your `chat_id` by sending any message to the [GetIDs bot](https://t.me/getidsbot). @@ -87,7 +87,7 @@ notify: ``` Refer to the platforms mentioned in the -[Telegram chatbot page](/integrations/telegram_chatbot/) for +[Telegram chatbot page](/integrations/telegram_bot/) for `telegram_bot` configuration. {% configuration %} diff --git a/source/_integrations/telegram_chatbot.markdown b/source/_integrations/telegram_bot.markdown similarity index 99% rename from source/_integrations/telegram_chatbot.markdown rename to source/_integrations/telegram_bot.markdown index 0a7fd78863a7..78c58ada43d4 100644 --- a/source/_integrations/telegram_chatbot.markdown +++ b/source/_integrations/telegram_bot.markdown @@ -1,6 +1,6 @@ --- -title: "Telegram chatbot" -description: "Telegram chatbot support" +title: "Telegram bot" +description: "Telegram bot support" logo: telegram.png ha_category: - Hub diff --git a/source/_posts/2017-04-22-ikea-tradfri--spotify.markdown b/source/_posts/2017-04-22-ikea-tradfri--spotify.markdown index dda9b5bb6679..deb6f4103410 100644 --- a/source/_posts/2017-04-22-ikea-tradfri--spotify.markdown +++ b/source/_posts/2017-04-22-ikea-tradfri--spotify.markdown @@ -472,7 +472,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [switch.tplink docs]: /integrations/tplink [switch.wake_on_lan docs]: /integrations/wake_on_lan#switch [switch.wemo docs]: /integrations/wemo -[telegram_bot docs]: /integrations/telegram_chatbot/ +[telegram_bot docs]: /integrations/telegram_bot/ [telegram_bot.polling docs]: /integrations/telegram_polling [telegram_bot.webhooks docs]: /integrations/telegram_webhooks [tts.google docs]: /integrations/google_translate @@ -493,7 +493,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [cover.zwave docs]: /integrations/zwave#cover [recorder docs]: /integrations/recorder/ [switch.wemo docs]: /integrations/wemo -[telegram_bot docs]: /integrations/telegram_chatbot/ +[telegram_bot docs]: /integrations/telegram_bot/ [telegram_bot.webhooks docs]: /integrations/telegram_webhooks [wemo docs]: /integrations/wemo/ [#7271]: https://github.com/home-assistant/home-assistant/pull/7271 diff --git a/source/_posts/2017-05-06-zigbee-opencv-dlib.markdown b/source/_posts/2017-05-06-zigbee-opencv-dlib.markdown index d67e2ddd53d3..ea557720d744 100644 --- a/source/_posts/2017-05-06-zigbee-opencv-dlib.markdown +++ b/source/_posts/2017-05-06-zigbee-opencv-dlib.markdown @@ -486,7 +486,7 @@ influxdb: [switch.thinkingcleaner docs]: /integrations/thinkingcleaner#switch [switch.wemo docs]: /integrations/wemo [switch.zha docs]: /integrations/zha -[telegram_bot docs]: /integrations/telegram_chatbot/ +[telegram_bot docs]: /integrations/telegram_bot/ [telegram_bot.polling docs]: /integrations/telegram_polling [telegram_bot.webhooks docs]: /integrations/telegram_webhooks [updater docs]: /integrations/updater/ diff --git a/source/_posts/2017-05-20-automation-editor-zwave-panel-ocr.markdown b/source/_posts/2017-05-20-automation-editor-zwave-panel-ocr.markdown index fd7684ca0221..8bf09909cb90 100644 --- a/source/_posts/2017-05-20-automation-editor-zwave-panel-ocr.markdown +++ b/source/_posts/2017-05-20-automation-editor-zwave-panel-ocr.markdown @@ -413,9 +413,9 @@ Experiencing issues introduced by this release? Please report them in our [issue [sensor.wunderground docs]: /integrations/wunderground [sun docs]: /integrations/sun/ [switch.rpi_pfio docs]: /integrations/rpi_pfio#switch -[telegram_bot docs]: /integrations/telegram_chatbot/ +[telegram_bot docs]: /integrations/telegram_bot/ [telegram_bot.polling docs]: /integrations/telegram_polling -[telegram_bot.services.yaml docs]: /integrations/telegram_chatbot/#notification-services +[telegram_bot.services.yaml docs]: /integrations/telegram_bot/#notification-services [telegram_bot.webhooks docs]: /integrations/telegram_webhooks [tradfri docs]: /integrations/tradfri/ [vera docs]: /integrations/vera/ @@ -434,5 +434,5 @@ Experiencing issues introduced by this release? Please report them in our [issue [device_tracker.ubus docs]: /integrations/ubus [hassio docs]: /integrations/hassio/ [media_player.volumio docs]: /integrations/volumio -[telegram_bot.__init__ docs]: /integrations/telegram_chatbot/ +[telegram_bot.__init__ docs]: /integrations/telegram_bot/ [discord]: https://discord.gg/c5DvZ4e diff --git a/source/_posts/2017-06-04-release-46.markdown b/source/_posts/2017-06-04-release-46.markdown index e9de42940d87..2f402e7a76b1 100644 --- a/source/_posts/2017-06-04-release-46.markdown +++ b/source/_posts/2017-06-04-release-46.markdown @@ -369,7 +369,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [switch.broadlink docs]: /integrations/broadlink#switch [switch.rachio docs]: /integrations/rachio#switch [switch.rflink docs]: /integrations/switch.rflink/ -[telegram_bot.__init__ docs]: /integrations/telegram_chatbot/ +[telegram_bot.__init__ docs]: /integrations/telegram_bot/ [telegram_bot.polling docs]: /integrations/telegram_polling [telegram_bot.webhooks docs]: /integrations/telegram_webhooks [tellduslive docs]: /integrations/tellduslive/ diff --git a/source/_posts/2017-06-17-release-47.markdown b/source/_posts/2017-06-17-release-47.markdown index af58001c4d27..a1463d5f2e73 100644 --- a/source/_posts/2017-06-17-release-47.markdown +++ b/source/_posts/2017-06-17-release-47.markdown @@ -547,7 +547,7 @@ automation: [switch.raspihats docs]: /integrations/raspihats#switch [switch.rest docs]: /integrations/switch.rest/ [switch.template docs]: /integrations/switch.template/ -[telegram_bot.__init__ docs]: /integrations/telegram_chatbot/ +[telegram_bot.__init__ docs]: /integrations/telegram_bot/ [telegram_bot.polling docs]: /integrations/telegram_polling [telegram_bot.webhooks docs]: /integrations/telegram_webhooks [updater docs]: /integrations/updater/ diff --git a/source/_posts/2017-07-02-release-48.markdown b/source/_posts/2017-07-02-release-48.markdown index e3d54c7e0256..651d975d5fdd 100644 --- a/source/_posts/2017-07-02-release-48.markdown +++ b/source/_posts/2017-07-02-release-48.markdown @@ -504,7 +504,7 @@ light: [switch.verisure docs]: /integrations/verisure [switch.wake_on_lan docs]: /integrations/wake_on_lan#switch [tado docs]: /integrations/tado/ -[telegram_bot docs]: /integrations/telegram_chatbot/ +[telegram_bot docs]: /integrations/telegram_bot/ [telegram_bot.webhooks docs]: /integrations/telegram_webhooks [tellduslive docs]: /integrations/tellduslive/ [tts docs]: /integrations/tts/ diff --git a/source/_posts/2017-07-16-release-49.markdown b/source/_posts/2017-07-16-release-49.markdown index e7d2c1100b28..6f8201c89167 100644 --- a/source/_posts/2017-07-16-release-49.markdown +++ b/source/_posts/2017-07-16-release-49.markdown @@ -488,7 +488,7 @@ amcrest: [@maikelwever]: https://github.com/maikelwever [@ypollart]: https://github.com/ypollart [binary_sensor.rfxtrx docs]: /integrations/binary_sensor.rfxtrx/ -[telegram_bot docs]: /integrations/telegram_chatbot/ +[telegram_bot docs]: /integrations/telegram_bot/ [#8545]: https://github.com/home-assistant/home-assistant/pull/8545 [#8571]: https://github.com/home-assistant/home-assistant/pull/8571 [#8601]: https://github.com/home-assistant/home-assistant/pull/8601 diff --git a/source/_posts/2017-08-12-release-51.markdown b/source/_posts/2017-08-12-release-51.markdown index 8ce4edd22698..76f8cd2fb655 100644 --- a/source/_posts/2017-08-12-release-51.markdown +++ b/source/_posts/2017-08-12-release-51.markdown @@ -442,7 +442,7 @@ vacuum: [switch.rainmachine docs]: /integrations/rainmachine#switch [switch.wink docs]: /integrations/wink#switch [switch.xiaomi_vacuum docs]: /integrations/vacuum.xiaomi_miio/ -[telegram_bot docs]: /integrations/telegram_chatbot/ +[telegram_bot docs]: /integrations/telegram_bot/ [updater docs]: /integrations/updater/ [vacuum docs]: /integrations/vacuum/ [vacuum.demo docs]: /integrations/vacuum.demo/ diff --git a/source/_posts/2017-09-09-release-53.markdown b/source/_posts/2017-09-09-release-53.markdown index 27abd107487d..d0c05471051f 100644 --- a/source/_posts/2017-09-09-release-53.markdown +++ b/source/_posts/2017-09-09-release-53.markdown @@ -439,7 +439,7 @@ frontend: [switch.rest docs]: /integrations/switch.rest/ [switch.rfxtrx docs]: /integrations/switch.rfxtrx/ [switch.knx docs]: /integrations/switch.knx/ -[telegram_bot docs]: /integrations/telegram_chatbot/ +[telegram_bot docs]: /integrations/telegram_bot/ [tesla docs]: /integrations/tesla/ [tradfri docs]: /integrations/tradfri/ [volvooncall docs]: /integrations/volvooncall/ diff --git a/source/_posts/2017-10-21-release-56.markdown b/source/_posts/2017-10-21-release-56.markdown index fd8ac7e6a77c..b25ba71446f4 100644 --- a/source/_posts/2017-10-21-release-56.markdown +++ b/source/_posts/2017-10-21-release-56.markdown @@ -527,7 +527,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [switch.tplink docs]: /integrations/tplink [switch.wink docs]: /integrations/wink#switch [switch.xiaomi_miio docs]: /integrations/switch.xiaomi_miio/ -[telegram_bot docs]: /integrations/telegram_chatbot/ +[telegram_bot docs]: /integrations/telegram_bot/ [tesla docs]: /integrations/tesla/ [toon docs]: /integrations/toon/ [tradfri docs]: /integrations/tradfri/ diff --git a/source/_posts/2017-11-18-release-58.markdown b/source/_posts/2017-11-18-release-58.markdown index 23d5576758fe..c95fc35b0564 100644 --- a/source/_posts/2017-11-18-release-58.markdown +++ b/source/_posts/2017-11-18-release-58.markdown @@ -469,7 +469,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [switch.snmp docs]: /integrations/snmp#switch [switch.xiaomi_miio docs]: /integrations/switch.xiaomi_miio/ [system_log docs]: /integrations/system_log/ -[telegram_bot docs]: /integrations/telegram_chatbot/ +[telegram_bot docs]: /integrations/telegram_bot/ [telegram_bot.polling docs]: /integrations/telegram_polling [tradfri docs]: /integrations/tradfri/ [tts docs]: /integrations/tts/ diff --git a/source/_posts/2018-01-14-release-61.markdown b/source/_posts/2018-01-14-release-61.markdown index fba4b0fd1a8e..eed5ed659521 100644 --- a/source/_posts/2018-01-14-release-61.markdown +++ b/source/_posts/2018-01-14-release-61.markdown @@ -760,7 +760,7 @@ Note however, that this feature was replaced by a new ignore_string config optio [switch.transmission docs]: /integrations/transmission [switch.xiaomi_miio docs]: /integrations/switch.xiaomi_miio/ [tahoma docs]: /integrations/tahoma/ -[telegram_bot docs]: /integrations/telegram_chatbot/ +[telegram_bot docs]: /integrations/telegram_bot/ [timer docs]: /integrations/timer/ [tts.baidu docs]: /integrations/baidu [tts.marytts docs]: /integrations/marytts diff --git a/source/_posts/2018-02-26-release-64.markdown b/source/_posts/2018-02-26-release-64.markdown index 72a5c8cff7e8..9944c1634fe1 100644 --- a/source/_posts/2018-02-26-release-64.markdown +++ b/source/_posts/2018-02-26-release-64.markdown @@ -576,7 +576,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [switch.smappee docs]: /integrations/smappee [switch.xiaomi_miio docs]: /integrations/switch.xiaomi_miio/ [tahoma docs]: /integrations/tahoma/ -[telegram_bot docs]: /integrations/telegram_chatbot/ +[telegram_bot docs]: /integrations/telegram_bot/ [vacuum.xiaomi_miio docs]: /integrations/vacuum.xiaomi_miio/ [vera docs]: /integrations/vera/ [weather.buienradar docs]: /integrations/buienradar diff --git a/source/_posts/2018-03-30-release-66.markdown b/source/_posts/2018-03-30-release-66.markdown index bf0ec721ad69..939ae2a063f0 100644 --- a/source/_posts/2018-03-30-release-66.markdown +++ b/source/_posts/2018-03-30-release-66.markdown @@ -550,7 +550,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [switch.vesync docs]: /integrations/vesync#switches [switch.xiaomi_miio docs]: /integrations/switch.xiaomi_miio/ [switch.zha docs]: /integrations/zha -[telegram_bot docs]: /integrations/telegram_chatbot/ +[telegram_bot docs]: /integrations/telegram_bot/ [upcloud docs]: /integrations/upcloud/ [vacuum.xiaomi_miio docs]: /integrations/vacuum.xiaomi_miio/ [weather.darksky docs]: /integrations/weather.darksky/ diff --git a/source/_posts/2018-05-18-release-70.markdown b/source/_posts/2018-05-18-release-70.markdown index 1fde73397102..60cd476658b0 100644 --- a/source/_posts/2018-05-18-release-70.markdown +++ b/source/_posts/2018-05-18-release-70.markdown @@ -432,7 +432,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [switch.tahoma docs]: /integrations/tahoma [system_log docs]: /integrations/system_log/ [tahoma docs]: /integrations/tahoma/ -[telegram_bot docs]: /integrations/telegram_chatbot/ +[telegram_bot docs]: /integrations/telegram_bot/ [tts docs]: /integrations/tts/ [updater docs]: /integrations/updater/ [weather.bom docs]: /integrations/bom diff --git a/source/_posts/2018-09-15-release-78.markdown b/source/_posts/2018-09-15-release-78.markdown index 92655fe19796..ddebd0a075ce 100644 --- a/source/_posts/2018-09-15-release-78.markdown +++ b/source/_posts/2018-09-15-release-78.markdown @@ -480,7 +480,7 @@ The configuration value type should no longer be used. ([@endor-force] - [#15935 [switch.tahoma docs]: /integrations/tahoma [switch.tplink docs]: /integrations/tplink [tahoma docs]: /integrations/tahoma/ -[telegram_bot docs]: /integrations/telegram_chatbot/ +[telegram_bot docs]: /integrations/telegram_bot/ [tts docs]: /integrations/tts/ [upnp docs]: /integrations/upnp/ [vacuum docs]: /integrations/vacuum/ diff --git a/source/_posts/2018-10-12-release-80.markdown b/source/_posts/2018-10-12-release-80.markdown index fa54d4a3f935..4351081033e3 100644 --- a/source/_posts/2018-10-12-release-80.markdown +++ b/source/_posts/2018-10-12-release-80.markdown @@ -80,7 +80,7 @@ On the devices side, we got basic support for the new IKEA TRÅDFRI switches, Ho [camera.blink docs]: /integrations/blink [cloud docs]: /integrations/cloud/ [sensor.blink docs]: /integrations/blink -[telegram_bot docs]: /integrations/telegram_chatbot/ +[telegram_bot docs]: /integrations/telegram_bot/ ## Release 0.80.3 - October 18 @@ -709,7 +709,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [switch.tradfri docs]: /integrations/tradfri [switch.volvooncall docs]: /integrations/volvooncall [switch.xiaomi_aqara docs]: /integrations/switch.xiaomi_aqara/ -[telegram_bot docs]: /integrations/telegram_chatbot/ +[telegram_bot docs]: /integrations/telegram_bot/ [tibber docs]: /integrations/tibber/ [timer docs]: /integrations/timer/ [tradfri docs]: /integrations/tradfri/ diff --git a/source/_posts/2018-10-29-release-81.markdown b/source/_posts/2018-10-29-release-81.markdown index 8ac74a3bdb70..17466e657ece 100644 --- a/source/_posts/2018-10-29-release-81.markdown +++ b/source/_posts/2018-10-29-release-81.markdown @@ -843,7 +843,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [switch.xiaomi_aqara docs]: /integrations/switch.xiaomi_aqara/ [switch.xiaomi_miio docs]: /integrations/switch.xiaomi_miio/ [switch.zwave docs]: /integrations/zwave -[telegram_bot docs]: /integrations/telegram_chatbot/ +[telegram_bot docs]: /integrations/telegram_bot/ [tts docs]: /integrations/tts/ [twilio docs]: /integrations/twilio/ [unifi docs]: /integrations/unifi/ diff --git a/source/_posts/2018-11-08-release-82.markdown b/source/_posts/2018-11-08-release-82.markdown index cdc29a83f869..1f95b61a1a31 100644 --- a/source/_posts/2018-11-08-release-82.markdown +++ b/source/_posts/2018-11-08-release-82.markdown @@ -678,7 +678,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [switch.xiaomi_aqara docs]: /integrations/switch.xiaomi_aqara/ [switch.xiaomi_miio docs]: /integrations/switch.xiaomi_miio/ [switch.zigbee docs]: /integrations/zigbee#switch -[telegram_bot docs]: /integrations/telegram_chatbot/ +[telegram_bot docs]: /integrations/telegram_bot/ [tts docs]: /integrations/tts/ [twilio docs]: /integrations/twilio/ [updater docs]: /integrations/updater/ diff --git a/source/_posts/2019-03-13-release-89.markdown b/source/_posts/2019-03-13-release-89.markdown index 906e336ab93a..d407e4730cc0 100644 --- a/source/_posts/2019-03-13-release-89.markdown +++ b/source/_posts/2019-03-13-release-89.markdown @@ -713,7 +713,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [switch.tplink docs]: /integrations/tplink [system_log docs]: /integrations/system_log/ [tahoma docs]: /integrations/tahoma/ -[telegram_bot docs]: /integrations/telegram_chatbot/ +[telegram_bot docs]: /integrations/telegram_bot/ [tellduslive docs]: /integrations/tellduslive/ [tibber docs]: /integrations/tibber/ [toon docs]: /integrations/toon/ diff --git a/source/_posts/2019-04-03-release-91.markdown b/source/_posts/2019-04-03-release-91.markdown index 1369598da4b6..907e05482590 100644 --- a/source/_posts/2019-04-03-release-91.markdown +++ b/source/_posts/2019-04-03-release-91.markdown @@ -831,7 +831,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [switch docs]: /integrations/switch/ [switchbot docs]: /integrations/switchbot/ [systemmonitor docs]: /integrations/systemmonitor/ -[telegram_bot docs]: /integrations/telegram_chatbot/ +[telegram_bot docs]: /integrations/telegram_bot/ [tellduslive docs]: /integrations/tellduslive/ [tfiac docs]: /integrations/tfiac/ [tibber docs]: /integrations/tibber/ diff --git a/source/_posts/2019-04-24-release-92.markdown b/source/_posts/2019-04-24-release-92.markdown index 3f74e2d99e32..421882711cf2 100644 --- a/source/_posts/2019-04-24-release-92.markdown +++ b/source/_posts/2019-04-24-release-92.markdown @@ -1076,7 +1076,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [stream docs]: /integrations/stream/ [supla docs]: /integrations/supla/ [switch docs]: /integrations/switch/ -[telegram_bot docs]: /integrations/telegram_chatbot/ +[telegram_bot docs]: /integrations/telegram_bot/ [tellduslive docs]: /integrations/tellduslive/ [tplink docs]: /integrations/tplink/ [trend docs]: /integrations/trend/ diff --git a/source/_posts/2019-05-16-release-93.markdown b/source/_posts/2019-05-16-release-93.markdown index 11b761ad1a0f..92b8925b8d5f 100644 --- a/source/_posts/2019-05-16-release-93.markdown +++ b/source/_posts/2019-05-16-release-93.markdown @@ -853,7 +853,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [systemmonitor docs]: /integrations/systemmonitor/ [tapsaff docs]: /integrations/tapsaff/ [ted5000 docs]: /integrations/ted5000/ -[telegram_bot docs]: /integrations/telegram_chatbot/ +[telegram_bot docs]: /integrations/telegram_bot/ [tellduslive docs]: /integrations/tellduslive/ [tensorflow docs]: /integrations/tensorflow/ [thethingsnetwork docs]: /integrations/thethingsnetwork/ diff --git a/source/_posts/2020-01-15-release-104.markdown b/source/_posts/2020-01-15-release-104.markdown index f396523a3e15..d91968f4dda0 100644 --- a/source/_posts/2020-01-15-release-104.markdown +++ b/source/_posts/2020-01-15-release-104.markdown @@ -2028,7 +2028,7 @@ Make sure to fill in all fields of the issue template, that is helping us a lot! [tado docs]: /integrations/tado/ [tahoma docs]: /integrations/tahoma/ [tank_utility docs]: /integrations/tank_utility/ -[telegram_bot docs]: /integrations/telegram_chatbot/ +[telegram_bot docs]: /integrations/telegram_bot/ [tellduslive docs]: /integrations/tellduslive/ [template docs]: /integrations/template/ [tesla docs]: /integrations/tesla/ diff --git a/source/_posts/2020-02-26-release-106.markdown b/source/_posts/2020-02-26-release-106.markdown index 11d259cabfcb..87722b11b551 100644 --- a/source/_posts/2020-02-26-release-106.markdown +++ b/source/_posts/2020-02-26-release-106.markdown @@ -1127,7 +1127,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [system_log docs]: /integrations/system_log/ [tado docs]: /integrations/tado/ [tahoma docs]: /integrations/tahoma/ -[telegram_bot docs]: /integrations/telegram_chatbot/ +[telegram_bot docs]: /integrations/telegram_bot/ [template docs]: /integrations/template/ [tensorflow docs]: /integrations/tensorflow/ [tesla docs]: /integrations/tesla/ diff --git a/source/_redirects b/source/_redirects index 2e45dbb96780..83a4d37018de 100644 --- a/source/_redirects +++ b/source/_redirects @@ -1887,7 +1887,7 @@ /components/ted5000 /integrations/ted5000 /components/teksavvy /integrations/teksavvy /components/telegram /integrations/telegram -/components/telegram_bot /integrations/telegram_chatbot +/components/telegram_bot /integrations/telegram_bot /components/tellduslive /integrations/tellduslive /components/tellstick /integrations/tellstick /components/telnet /integrations/telnet @@ -2040,6 +2040,7 @@ # Breaking changes /integrations/switch.pca /integrations/elv +/integrations/telegram_chatbot /integrations/telegram_bot # Moved documentation /docs/ecosystem/ios/ https://companion.home-assistant.io/ From 1dc5a07ba8027ad9f1bf86c61d822b4c51b141f0 Mon Sep 17 00:00:00 2001 From: Erik Montnemery Date: Fri, 28 Feb 2020 15:52:41 +0100 Subject: [PATCH 13/23] Sort MQTT config (#12199) --- .../alarm_control_panel.mqtt.markdown | 144 +++--- .../_integrations/binary_sensor.mqtt.markdown | 132 +++--- source/_integrations/camera.mqtt.markdown | 32 +- source/_integrations/climate.mqtt.markdown | 334 +++++++------- source/_integrations/cover.mqtt.markdown | 210 ++++----- source/_integrations/fan.mqtt.markdown | 186 ++++---- source/_integrations/light.mqtt.markdown | 428 +++++++++--------- source/_integrations/lock.mqtt.markdown | 130 +++--- source/_integrations/sensor.mqtt.markdown | 132 +++--- source/_integrations/switch.mqtt.markdown | 130 +++--- source/_integrations/vacuum.mqtt.markdown | 278 ++++++------ 11 files changed, 1064 insertions(+), 1072 deletions(-) diff --git a/source/_integrations/alarm_control_panel.mqtt.markdown b/source/_integrations/alarm_control_panel.mqtt.markdown index 32423b8b6ed2..9d912318ceb2 100644 --- a/source/_integrations/alarm_control_panel.mqtt.markdown +++ b/source/_integrations/alarm_control_panel.mqtt.markdown @@ -34,57 +34,10 @@ alarm_control_panel: ``` {% configuration %} -name: - description: The name of the alarm. - required: false - type: string - default: MQTT Alarm -unique_id: - description: An ID that uniquely identifies this alarm panel. If two alarm panels have the same unique ID, Home Assistant will raise an exception. - required: false - type: string -state_topic: - description: The MQTT topic subscribed to receive state updates. - required: true - type: string -command_topic: - description: The MQTT topic to publish commands to change the alarm state. - required: true - type: string -command_template: - description: "The [template](/docs/configuration/templating/#processing-incoming-data) used for the command payload. Available variables: `action` and `code`." - required: false - type: string - default: action -value_template: - description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the value." - required: false - type: template -qos: - description: The maximum QoS level of the state topic. - required: false - type: integer - default: 0 -payload_disarm: - description: The payload to disarm your Alarm Panel. - required: false - type: string - default: DISARM -payload_arm_home: - description: The payload to set armed-home mode on your Alarm Panel. - required: false - type: string - default: ARM_HOME -payload_arm_away: - description: The payload to set armed-away mode on your Alarm Panel. - required: false - type: string - default: ARM_AWAY -payload_arm_night: - description: The payload to set armed-night mode on your Alarm Panel. +availability_topic: + description: The MQTT topic subscribed to receive availability (online/offline) updates. required: false type: string - default: ARM_NIGHT code: description: If defined, specifies a code to enable or disable the alarm in the frontend. required: false @@ -99,41 +52,28 @@ code_disarm_required: required: false type: boolean default: true -availability_topic: - description: The MQTT topic subscribed to receive availability (online/offline) updates. - required: false - type: string -payload_available: - description: The payload that represents the available state. - required: false - type: string - default: online -payload_not_available: - description: The payload that represents the unavailable state. +command_template: + description: "The [template](/docs/configuration/templating/#processing-incoming-data) used for the command payload. Available variables: `action` and `code`." required: false type: string - default: offline -json_attributes_topic: - description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-topic-configuration) documentation. - required: false + default: action +command_topic: + description: The MQTT topic to publish commands to change the alarm state. + required: true type: string -json_attributes_template: - description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation." - required: false - type: template 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.' required: false type: map keys: - identifiers: - description: 'A list of IDs that uniquely identify the device. For example a serial number.' - required: false - type: [list, string] connections: description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.' required: false type: list + identifiers: + 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.' required: false @@ -150,4 +90,64 @@ device: description: 'The firmware version of the device.' required: false type: string +json_attributes_template: + description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation." + required: false + type: template +json_attributes_topic: + description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-topic-configuration) documentation. + required: false + type: string +name: + description: The name of the alarm. + required: false + type: string + default: MQTT Alarm +payload_arm_away: + description: The payload to set armed-away mode on your Alarm Panel. + required: false + type: string + default: ARM_AWAY +payload_arm_home: + description: The payload to set armed-home mode on your Alarm Panel. + required: false + type: string + default: ARM_HOME +payload_arm_night: + description: The payload to set armed-night mode on your Alarm Panel. + required: false + type: string + default: ARM_NIGHT +payload_available: + description: The payload that represents the available state. + required: false + type: string + default: online +payload_disarm: + description: The payload to disarm your Alarm Panel. + required: false + type: string + default: DISARM +payload_not_available: + description: The payload that represents the unavailable state. + required: false + type: string + default: offline +qos: + description: The maximum QoS level of the state topic. + required: false + type: integer + default: 0 +state_topic: + description: The MQTT topic subscribed to receive state updates. + required: true + type: string +unique_id: + description: An ID that uniquely identifies this alarm panel. If two alarm panels have the same unique ID, Home Assistant will raise an exception. + required: false + type: string +value_template: + description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the value." + required: false + type: template {% endconfiguration %} diff --git a/source/_integrations/binary_sensor.mqtt.markdown b/source/_integrations/binary_sensor.mqtt.markdown index 7fd4d8636808..10211332f119 100644 --- a/source/_integrations/binary_sensor.mqtt.markdown +++ b/source/_integrations/binary_sensor.mqtt.markdown @@ -32,29 +32,69 @@ binary_sensor: ``` {% configuration %} -state_topic: - description: The MQTT topic subscribed to receive sensor values. - required: true - type: string -name: - description: The name of the binary sensor. +availability_topic: + description: "The MQTT topic subscribed to receive birth and LWT messages from the MQTT device. If `availability_topic` is not defined, the binary sensor availability state will always be `available`. If `availability_topic` is defined, the binary sensor availability state will be `unavailable` by default." required: false type: string - default: MQTT Binary Sensor -payload_on: - description: The payload that represents the on state. +device: + description: "Information about the device this binary sensor 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: + connections: + description: "A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `'connections': ['mac', '02:5b:26:a8:dc:12']`." + required: false + type: [list, map] + identifiers: + 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. + required: false + type: string + model: + description: The model of the device. + required: false + type: string + name: + description: The name of the device. + required: false + type: string + sw_version: + description: The firmware version of the device. + required: false + type: string +device_class: + description: Sets the [class of the device](/integrations/binary_sensor/#device-class), changing the device state and icon that is displayed on the frontend. required: false type: string - default: "ON" -payload_off: - description: The payload that represents the off state. +expire_after: + description: "Defines the number of seconds after the value expires if it's not updated. After expiry, the value is cleared, and the availability is set to false" + required: false + type: integer +force_update: + description: Sends update events even if the value hasn't changed. Useful if you want to have meaningful value graphs in history. + required: false + type: boolean + default: false +json_attributes_template: + description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation." + required: false + type: template +json_attributes_topic: + description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-topic-configuration) documentation. required: false type: string - default: "OFF" -availability_topic: - description: "The MQTT topic subscribed to receive birth and LWT messages from the MQTT device. If `availability_topic` is not defined, the binary sensor availability state will always be `available`. If `availability_topic` is defined, the binary sensor availability state will be `unavailable` by default." +name: + description: The name of the binary sensor. required: false type: string + default: MQTT Binary Sensor +off_delay: + description: "For sensors that only sends `On` state updates, this variable sets a delay in seconds after which the sensor state will be updated back to `Off`." + required: false + type: integer payload_available: description: The payload that represents the online state. required: false @@ -65,73 +105,33 @@ payload_not_available: required: false type: string default: offline -json_attributes_topic: - description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-topic-configuration) documentation. +payload_off: + description: The payload that represents the off state. required: false type: string -json_attributes_template: - description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation." + default: "OFF" +payload_on: + description: The payload that represents the on state. required: false - type: template + type: string + default: "ON" qos: description: The maximum QoS level to be used when receiving messages. required: false type: integer default: 0 +state_topic: + description: The MQTT topic subscribed to receive sensor values. + required: true + type: string unique_id: description: An ID that uniquely identifies this sensor. If two sensors have the same unique ID, Home Assistant will raise an exception. required: false type: string -device_class: - description: Sets the [class of the device](/integrations/binary_sensor/#device-class), changing the device state and icon that is displayed on the frontend. - required: false - type: string -expire_after: - description: "Defines the number of seconds after the value expires if it's not updated. After expiry, the value is cleared, and the availability is set to false" - required: false - type: integer value_template: description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value from the payload. Available variables: `entity_id`. Remove this option when 'payload_on' and 'payload_off' are sufficient to match your payloads." required: false type: string -force_update: - description: Sends update events even if the value hasn't changed. Useful if you want to have meaningful value graphs in history. - required: false - type: boolean - default: false -off_delay: - description: "For sensors that only sends `On` state updates, this variable sets a delay in seconds after which the sensor state will be updated back to `Off`." - required: false - type: integer -device: - description: "Information about the device this binary sensor 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: - identifiers: - description: A list of IDs that uniquely identify the device. For example a serial number. - required: false - type: [list, string] - connections: - description: "A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `'connections': ['mac', '02:5b:26:a8:dc:12']`." - required: false - type: [list, map] - manufacturer: - description: The manufacturer of the device. - required: false - type: string - model: - description: The model of the device. - required: false - type: string - name: - description: The name of the device. - required: false - type: string - sw_version: - description: The firmware version of the device. - required: false - type: string {% endconfiguration %} ## Examples diff --git a/source/_integrations/camera.mqtt.markdown b/source/_integrations/camera.mqtt.markdown index 76d520293499..cf919315afaf 100644 --- a/source/_integrations/camera.mqtt.markdown +++ b/source/_integrations/camera.mqtt.markdown @@ -24,31 +24,19 @@ camera: ``` {% configuration %} -topic: - description: The MQTT topic to subscribe to. - required: true - type: string -name: - description: The name of the camera. - required: false - type: string -unique_id: - description: An ID that uniquely identifies this camera. If two cameras have the same unique ID Home Assistant will raise an exception. - required: false - type: string device: description: "Information about the device this camera 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: - identifiers: - description: 'A list of IDs that uniquely identify the device. For example a serial number.' - required: false - type: [list, string] connections: description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": ["mac", "02:5b:26:a8:dc:12"]`.' required: false type: list + identifiers: + 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. required: false @@ -65,4 +53,16 @@ device: description: The firmware version of the device. required: false type: string +name: + description: The name of the camera. + required: false + type: string +topic: + description: The MQTT topic to subscribe to. + required: true + type: string +unique_id: + description: An ID that uniquely identifies this camera. If two cameras have the same unique ID Home Assistant will raise an exception. + required: false + type: string {% endconfiguration %} diff --git a/source/_integrations/climate.mqtt.markdown b/source/_integrations/climate.mqtt.markdown index 60c84f1e378c..8eff6c0095f7 100644 --- a/source/_integrations/climate.mqtt.markdown +++ b/source/_integrations/climate.mqtt.markdown @@ -21,275 +21,267 @@ climate: ``` {% configuration %} -name: - description: The name of the HVAC. - required: false - type: string - default: MQTT HVAC -unique_id: - description: An ID that uniquely identifies this HVAC device. If two HVAC devices have the same unique ID, Home Assistant will raise an exception. - required: false - type: string -qos: - description: The maximum QoS level to be used when receiving and publishing messages. - required: false - type: integer - default: 0 -retain: - description: Defines if published messages should have the retain flag set. - required: false - type: boolean - default: false -send_if_off: - description: "Set to `false` to suppress sending of all MQTT messages when the current mode is `Off`." +action_template: + description: A template to render the value received on the `action_topic` with. required: false - type: boolean - default: true -initial: - description: Set the initial target temperature. + type: template +action_topic: + description: >- + The MQTT topic to subscribe for changes of the current action. If this is set, the climate graph uses the value received as data source. + Valid values: `off`, `heating`, `cooling`, `drying`, `idle`, `fan`. required: false - type: integer - default: 21 -payload_on: - description: The payload that represents enabled state. + type: string +aux_command_topic: + description: The MQTT topic to publish commands to switch auxiliary heat. required: false type: string - default: "ON" -payload_off: - description: The payload that represents disabled state. +aux_state_template: + description: A template to render the value received on the `aux_state_topic` with. + required: false + type: template +aux_state_topic: + description: The MQTT topic to subscribe for changes of the auxiliary heat mode. If this is not set, the auxiliary heat mode works in optimistic mode (see below). required: false type: string - default: "OFF" availability_topic: description: The MQTT topic subscribed to receive availability (online/offline) updates. required: false type: string -payload_available: - description: The payload that represents the available state. +away_mode_command_topic: + description: The MQTT topic to publish commands to change the away mode. required: false type: string - default: online -payload_not_available: - description: The payload that represents the unavailable state. +away_mode_state_template: + description: A template to render the value received on the `away_mode_state_topic` with. required: false - type: string - default: offline -value_template: - description: Default template to render the payloads on *all* `*_state_topic`s with. type: template - required: false -current_temperature_topic: - description: The MQTT topic on which to listen for the current temperature. +away_mode_state_topic: + description: The MQTT topic to subscribe for changes of the HVAC away mode. If this is not set, the away mode works in optimistic mode (see below). required: false type: string current_temperature_template: description: A template with which the value received on `current_temperature_topic` will be rendered. required: false type: template -power_command_topic: - description: The MQTT topic to publish commands to change the power state. This is useful if your device has a separate power toggle in addition to mode. +current_temperature_topic: + description: The MQTT topic on which to listen for the current temperature. required: false type: string -action_topic: - description: >- - The MQTT topic to subscribe for changes of the current action. If this is set, the climate graph uses the value received as data source. - Valid values: `off`, `heating`, `cooling`, `drying`, `idle`, `fan`. +device: + description: 'Information about the device this HVAC device 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: + connections: + description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.' + required: false + type: list + identifiers: + 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.' + required: false + type: string + model: + description: 'The model of the device.' + required: false + type: string + name: + description: 'The name of the device.' + required: false + type: string + sw_version: + description: 'The firmware version of the device.' + required: false + type: string +fan_mode_command_topic: + description: The MQTT topic to publish commands to change the fan mode. required: false type: string -action_template: - description: A template to render the value received on the `action_topic` with. +fan_mode_state_template: + description: A template to render the value received on the `fan_mode_state_topic` with. required: false type: template -mode_command_topic: - description: The MQTT topic to publish commands to change the HVAC operation mode. +fan_mode_state_topic: + description: The MQTT topic to subscribe for changes of the HVAC fan mode. If this is not set, the fan mode works in optimistic mode (see below). required: false type: string -mode_state_topic: - description: The MQTT topic to subscribe for changes of the HVAC operation mode. If this is not set, the operation mode works in optimistic mode (see below). +fan_modes: + description: A list of supported fan modes. + required: false + default: ['auto', 'low', 'medium', 'high'] + type: list +hold_command_topic: + description: The MQTT topic to publish commands to change the hold mode. required: false type: string -mode_state_template: - description: A template to render the value received on the `mode_state_topic` with. +hold_state_template: + description: A template to render the value received on the `hold_state_topic` with. required: false type: template -modes: - description: A list of supported modes. Needs to be a subset of the default values. +hold_state_topic: + description: The MQTT topic to subscribe for changes of the HVAC hold mode. If this is not set, the hold mode works in optimistic mode (see below). + required: false + type: string +hold_modes: + description: A list of available hold modes. required: false - default: ['auto', 'off', 'cool', 'heat', 'dry', 'fan_only'] type: list -action_topic: - description: The MQTT topic on which to listen for the current action state of the HVAC. Expects `idle`, `cooling`, `heating`, `drying`, or `off`. +initial: + description: Set the initial target temperature. required: false - type: string -action_template: - description: A template to render the value received on the `action_topic` with. + type: integer + default: 21 +json_attributes_template: + description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation." required: false type: template -temperature_command_topic: - description: The MQTT topic to publish commands to change the target temperature. +json_attributes_topic: + description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-topic-configuration) documentation. required: false type: string -temperature_state_topic: - description: The MQTT topic to subscribe for changes in the target temperature. If this is not set, the target temperature works in optimistic mode (see below). +max_temp: + description: Maximum set point available. + type: float + required: false +min_temp: + description: Minimum set point available. + type: float + required: false +mode_command_topic: + description: The MQTT topic to publish commands to change the HVAC operation mode. required: false type: string -temperature_state_template: - description: A template to render the value received on the `temperature_state_topic` with. +mode_state_template: + description: A template to render the value received on the `mode_state_topic` with. required: false type: template -temperature_low_command_topic: - description: The MQTT topic to publish commands to change the target low temperature. +mode_state_topic: + description: The MQTT topic to subscribe for changes of the HVAC operation mode. If this is not set, the operation mode works in optimistic mode (see below). required: false type: string -temperature_low_state_topic: - description: The MQTT topic to subscribe for changes in the target low temperature. If this is not set, the target low temperature works in optimistic mode (see below). +modes: + description: A list of supported modes. Needs to be a subset of the default values. + required: false + default: ['auto', 'off', 'cool', 'heat', 'dry', 'fan_only'] + type: list +name: + description: The name of the HVAC. required: false type: string -temperature_low_state_template: - description: A template to render the value received on the `temperature_low_state_topic` with. + default: MQTT HVAC +payload_available: + description: The payload that represents the available state. required: false - type: template -temperature_high_command_topic: - description: The MQTT topic to publish commands to change the high target temperature. + type: string + default: online +payload_not_available: + description: The payload that represents the unavailable state. required: false type: string -temperature_high_state_topic: - description: The MQTT topic to subscribe for changes in the target high temperature. If this is not set, the target high temperature works in optimistic mode (see below). + default: offline +payload_off: + description: The payload that represents disabled state. required: false type: string -temperature_high_state_template: - description: A template to render the value received on the `temperature_high_state_topic` with. + default: "OFF" +payload_on: + description: The payload that represents enabled state. required: false - type: template + type: string + default: "ON" +power_command_topic: + description: The MQTT topic to publish commands to change the power state. This is useful if your device has a separate power toggle in addition to mode. + required: false + type: string precision: description: The desired precision for this device. Can be used to match your actual thermostat's precision. Supported values are `0.1`, `0.5` and `1.0`. required: false type: float default: 0.1 for Celsius and 1.0 for Fahrenheit. -fan_mode_command_topic: - description: The MQTT topic to publish commands to change the fan mode. - required: false - type: string -fan_mode_state_topic: - description: The MQTT topic to subscribe for changes of the HVAC fan mode. If this is not set, the fan mode works in optimistic mode (see below). +qos: + description: The maximum QoS level to be used when receiving and publishing messages. required: false - type: string -fan_mode_state_template: - description: A template to render the value received on the `fan_mode_state_topic` with. + type: integer + default: 0 +retain: + description: Defines if published messages should have the retain flag set. required: false - type: template -fan_modes: - description: A list of supported fan modes. + type: boolean + default: false +send_if_off: + description: "Set to `false` to suppress sending of all MQTT messages when the current mode is `Off`." required: false - default: ['auto', 'low', 'medium', 'high'] - type: list + type: boolean + default: true swing_mode_command_topic: description: The MQTT topic to publish commands to change the swing mode. required: false type: string -swing_mode_state_topic: - description: The MQTT topic to subscribe for changes of the HVAC swing mode. If this is not set, the swing mode works in optimistic mode (see below). - required: false - type: string swing_mode_state_template: description: A template to render the value received on the `swing_mode_state_topic` with. required: false type: template +swing_mode_state_topic: + description: The MQTT topic to subscribe for changes of the HVAC swing mode. If this is not set, the swing mode works in optimistic mode (see below). + required: false + type: string swing_modes: description: A list of supported swing modes. required: false default: ['on', 'off'] type: list -away_mode_command_topic: - description: The MQTT topic to publish commands to change the away mode. +temperature_command_topic: + description: The MQTT topic to publish commands to change the target temperature. required: false type: string -away_mode_state_topic: - description: The MQTT topic to subscribe for changes of the HVAC away mode. If this is not set, the away mode works in optimistic mode (see below). +temperature_high_command_topic: + description: The MQTT topic to publish commands to change the high target temperature. required: false type: string -away_mode_state_template: - description: A template to render the value received on the `away_mode_state_topic` with. +temperature_high_state_template: + description: A template to render the value received on the `temperature_high_state_topic` with. required: false type: template -hold_command_topic: - description: The MQTT topic to publish commands to change the hold mode. +temperature_high_state_topic: + description: The MQTT topic to subscribe for changes in the target high temperature. If this is not set, the target high temperature works in optimistic mode (see below). required: false type: string -hold_state_topic: - description: The MQTT topic to subscribe for changes of the HVAC hold mode. If this is not set, the hold mode works in optimistic mode (see below). +temperature_low_command_topic: + description: The MQTT topic to publish commands to change the target low temperature. required: false type: string -hold_state_template: - description: A template to render the value received on the `hold_state_topic` with. +temperature_low_state_template: + description: A template to render the value received on the `temperature_low_state_topic` with. required: false type: template -hold_modes: - description: A list of available hold modes. - required: false - type: list -aux_command_topic: - description: The MQTT topic to publish commands to switch auxiliary heat. - required: false - type: string -aux_state_topic: - description: The MQTT topic to subscribe for changes of the auxiliary heat mode. If this is not set, the auxiliary heat mode works in optimistic mode (see below). +temperature_low_state_topic: + description: The MQTT topic to subscribe for changes in the target low temperature. If this is not set, the target low temperature works in optimistic mode (see below). required: false type: string -aux_state_template: - description: A template to render the value received on the `aux_state_topic` with. +temperature_state_template: + description: A template to render the value received on the `temperature_state_topic` with. required: false type: template -min_temp: - description: Minimum set point available. - type: float - required: false -max_temp: - description: Maximum set point available. - type: float +temperature_state_topic: + description: The MQTT topic to subscribe for changes in the target temperature. If this is not set, the target temperature works in optimistic mode (see below). required: false + type: string temp_step: description: Step size for temperature set point. type: float required: false default: 1 -json_attributes_topic: - description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-topic-configuration) documentation. - required: false - type: string -json_attributes_template: - description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation." - required: false +unique_id: + description: An ID that uniquely identifies this HVAC device. If two HVAC devices have the same unique ID, Home Assistant will raise an exception. + required: false + type: string +value_template: + description: Default template to render the payloads on *all* `*_state_topic`s with. type: template -device: - description: 'Information about the device this HVAC device 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: - identifiers: - description: 'A list of IDs that uniquely identify the device. For example a serial number.' - required: false - type: [list, string] - connections: - description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.' - required: false - type: list - manufacturer: - description: 'The manufacturer of the device.' - required: false - type: string - model: - description: 'The model of the device.' - required: false - type: string - name: - description: 'The name of the device.' - required: false - type: string - sw_version: - description: 'The firmware version of the device.' - required: false - type: string {% endconfiguration %} #### Optimistic mode diff --git a/source/_integrations/cover.mqtt.markdown b/source/_integrations/cover.mqtt.markdown index 758a8c288beb..c10a35fe5351 100644 --- a/source/_integrations/cover.mqtt.markdown +++ b/source/_integrations/cover.mqtt.markdown @@ -37,87 +37,104 @@ cover: ``` {% configuration %} +availability_topic: + description: "The MQTT topic subscribed to to receive birth and LWT messages from the MQTT cover device. If `availability_topic` is not defined, the cover availability state will always be `available`. If `availability_topic` is defined, the cover availability state will be `unavailable` by default." + required: false + type: string command_topic: description: The MQTT topic to publish commands to control the cover. required: false type: string -name: - description: The name of the cover. +device: + description: "Information about the device this cover 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: string - default: MQTT Cover -payload_open: - description: The command payload that opens the cover. + type: map + keys: + connections: + description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": ["mac", "02:5b:26:a8:dc:12"]`.' + required: false + type: list + identifiers: + 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. + required: false + type: string + model: + description: The model of the device. + required: false + type: string + name: + description: The name of the device. + required: false + type: string + sw_version: + description: The firmware version of the device. + required: false + type: string +device_class: + description: Sets the [class of the device](/integrations/cover/), changing the device state and icon that is displayed on the frontend. required: false type: string - default: OPEN -payload_close: - description: The command payload that closes the cover. +json_attributes_template: + description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation." required: false - type: string - default: CLOSE -payload_stop: - description: The command payload that stops the cover. + type: template +json_attributes_topic: + description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-topic-configuration) documentation. required: false type: string - default: STOP -state_topic: - description: The MQTT topic subscribed to receive cover state messages. Use only if not using `position_topic`. State topic can only read open/close state. Cannot read position state. If `position_topic` is set `state_topic` is ignored. +name: + description: The name of the cover. required: false type: string -state_open: - description: The payload that represents the open state. + default: MQTT Cover +optimistic: + description: Flag that defines if switch works in optimistic mode. required: false type: string - default: open -state_opening: - description: The payload that represents the opening state. + default: "`true` if no state topic defined, else `false`." +payload_available: + description: The payload that represents the online state. required: false type: string - default: opening -state_closed: - description: The payload that represents the closed state. + default: online +payload_close: + description: The command payload that closes the cover. required: false type: string - default: closed -state_closing: - description: The payload that represents the closing state. + default: CLOSE +payload_not_available: + description: The payload that represents the offline state. required: false type: string - default: closing -position_topic: - description: The MQTT topic subscribed to receive cover position messages. If `position_topic` is set `state_topic` is ignored. + default: offline +payload_open: + description: The command payload that opens the cover. required: false type: string -position_open: - description: Number which represents open position. + default: OPEN +payload_stop: + description: The command payload that stops the cover. required: false - type: integer - default: 100 + type: string + default: STOP position_closed: description: Number which represents closed position. required: false type: integer default: 0 -availability_topic: - description: "The MQTT topic subscribed to to receive birth and LWT messages from the MQTT cover device. If `availability_topic` is not defined, the cover availability state will always be `available`. If `availability_topic` is defined, the cover availability state will be `unavailable` by default." - required: false - type: string -payload_available: - description: The payload that represents the online state. - required: false - type: string - default: online -payload_not_available: - description: The payload that represents the offline state. +position_open: + description: Number which represents open position. required: false - type: string - default: offline -optimistic: - description: Flag that defines if switch works in optimistic mode. + type: integer + default: 100 +position_topic: + description: The MQTT topic subscribed to receive cover position messages. If `position_topic` is set `state_topic` is ignored. required: false type: string - default: "`true` if no state topic defined, else `false`." qos: description: The maximum QoS level to be used when receiving and publishing messages. required: false @@ -128,42 +145,59 @@ retain: required: false type: boolean default: false -value_template: - description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value from the payload." +set_position_template: + description: "Defines a [template](/topics/templating/) to define the position to be sent to the `set_position_topic` topic. Incoming position value is available for use in the template `{{position}}`. If no template is defined, the position (0-100) will be calculated according to `position_open` and `position_closed` values." required: false type: string set_position_topic: description: "The MQTT topic to publish position commands to. You need to set position_topic as well if you want to use position topic. Use template if position topic wants different values than within range `position_closed` - `position_open`. If template is not defined and `position_closed != 100` and `position_open != 0` then proper position value is calculated from percentage position." required: false type: string -set_position_template: - description: "Defines a [template](/topics/templating/) to define the position to be sent to the `set_position_topic` topic. Incoming position value is available for use in the template `{{position}}`. If no template is defined, the position (0-100) will be calculated according to `position_open` and `position_closed` values." +state_closed: + description: The payload that represents the closed state. required: false type: string -tilt_command_topic: - description: The MQTT topic to publish commands to control the cover tilt. + default: closed +state_closing: + description: The payload that represents the closing state. required: false type: string -tilt_status_topic: - description: The MQTT topic subscribed to receive tilt status update values. + default: closing +state_open: + description: The payload that represents the open state. required: false type: string -tilt_status_template: - description: "Defines a [template](/topics/templating/) that can be used to extract the payload for the `tilt_status_topic` topic. " + default: open +state_opening: + description: The payload that represents the opening state. required: false type: string -tilt_min: - description: The minimum tilt value. + default: opening +state_topic: + description: The MQTT topic subscribed to receive cover state messages. Use only if not using `position_topic`. State topic can only read open/close state. Cannot read position state. If `position_topic` is set `state_topic` is ignored. + required: false + type: string +tilt_closed_value: + description: The value that will be sent on a `close_cover_tilt` command. required: false type: integer default: 0 +tilt_command_topic: + description: The MQTT topic to publish commands to control the cover tilt. + required: false + type: string +tilt_invert_state: + description: Flag that determines if open/close are flipped; higher values toward closed and lower values toward open. + required: false + type: boolean + default: false tilt_max: description: The maximum tilt value required: false type: integer default: 100 -tilt_closed_value: - description: The value that will be sent on a `close_cover_tilt` command. +tilt_min: + description: The minimum tilt value. required: false type: integer default: 0 @@ -177,56 +211,22 @@ tilt_optimistic: required: false type: boolean default: "`true` if `tilt_status_topic` is not defined, else `false`" -tilt_invert_state: - description: Flag that determines if open/close are flipped; higher values toward closed and lower values toward open. - required: false - type: boolean - default: false -device_class: - description: Sets the [class of the device](/integrations/cover/), changing the device state and icon that is displayed on the frontend. +tilt_status_template: + description: "Defines a [template](/topics/templating/) that can be used to extract the payload for the `tilt_status_topic` topic. " required: false type: string -json_attributes_topic: - description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-topic-configuration) documentation. +tilt_status_topic: + description: The MQTT topic subscribed to receive tilt status update values. required: false type: string -json_attributes_template: - description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation." - required: false - type: template unique_id: description: An ID that uniquely identifies this cover. If two covers have the same unique ID, Home Assistant will raise an exception. required: false type: string -device: - description: "Information about the device this cover 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." +value_template: + description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value from the payload." required: false - type: map - keys: - identifiers: - description: 'A list of IDs that uniquely identify the device. For example a serial number.' - required: false - type: [list, string] - connections: - description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": ["mac", "02:5b:26:a8:dc:12"]`.' - required: false - type: list - manufacturer: - description: The manufacturer of the device. - required: false - type: string - model: - description: The model of the device. - required: false - type: string - name: - description: The name of the device. - required: false - type: string - sw_version: - description: The firmware version of the device. - required: false - type: string + type: string {% endconfiguration %} ## Examples diff --git a/source/_integrations/fan.mqtt.markdown b/source/_integrations/fan.mqtt.markdown index c5af29e3dabf..49872822848b 100644 --- a/source/_integrations/fan.mqtt.markdown +++ b/source/_integrations/fan.mqtt.markdown @@ -28,78 +28,83 @@ fan: ``` {% configuration %} +availability_topic: + description: The MQTT topic subscribed to receive availability (online/offline) updates. + required: false + type: string command_topic: description: The MQTT topic to publish commands to change the fan state. required: true type: string -name: - description: The name of the fan. - required: false - type: string - default: MQTT Fan -state_topic: - description: The MQTT topic subscribed to receive state updates. +device: + description: "Information about the device this fan 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: string -payload_on: - description: The payload that represents the running state. + type: map + keys: + connections: + description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.' + required: false + type: [list, map] + identifiers: + description: A list of IDs that uniquely identify the device. For example a serial number. + required: false + type: [string, list] + manufacturer: + description: The manufacturer of the device. + required: false + type: string + model: + description: The model of the device. + required: false + type: string + name: + description: The name of the device. + required: false + type: string + sw_version: + description: The firmware version of the device. + required: false + type: string +json_attributes_template: + description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation." required: false - type: string - default: "ON" -payload_off: - description: The payload that represents the stop state. + type: template +json_attributes_topic: + description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-topic-configuration) documentation. required: false type: string - default: "OFF" -state_value_template: - description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value from the state." +name: + description: The name of the fan. required: false type: string -qos: - description: The maximum QoS level of the state topic. - required: false - type: integer - default: 0 + default: MQTT Fan optimistic: description: Flag that defines if lock works in optimistic mode required: false type: boolean default: "`true` if no state topic defined, else `false`." -retain: - description: If the published message should have the retain flag on or not. - required: false - type: boolean - default: true -oscillation_state_topic: - description: The MQTT topic subscribed to receive oscillation state updates. - required: false - type: string oscillation_command_topic: description: The MQTT topic to publish commands to change the oscillation state. required: false type: string -payload_oscillation_on: - description: The payload that represents the oscillation on state. - required: false - type: string - default: oscillate_on -payload_oscillation_off: - description: The payload that represents the oscillation off state. +oscillation_state_topic: + description: The MQTT topic subscribed to receive oscillation state updates. required: false type: string - default: oscillate_off oscillation_value_template: description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value from the oscillation." required: false type: string -speed_state_topic: - description: The MQTT topic subscribed to receive speed state updates. +payload_available: + description: The payload that represents the available state. required: false type: string -speed_command_topic: - description: The MQTT topic to publish commands to change speed state. + default: online +payload_high_speed: + description: The payload that represents the fan's high speed. required: false type: string + default: high payload_low_speed: description: The payload that represents the fan's low speed. required: false @@ -110,74 +115,69 @@ payload_medium_speed: required: false type: string default: medium -payload_high_speed: - description: The payload that represents the fan's high speed. +payload_not_available: + description: The payload that represents the unavailable state. required: false type: string - default: high -speed_value_template: - description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value from the speed payload." + default: offline +payload_off: + description: The payload that represents the stop state. required: false type: string -speeds: - description: "List of speeds this fan is capable of running at. Valid entries are `off`, `low`, `medium` and `high`." + default: "OFF" +payload_on: + description: The payload that represents the running state. required: false - type: [string, list] -availability_topic: - description: The MQTT topic subscribed to receive availability (online/offline) updates. + type: string + default: "ON" +payload_oscillation_off: + description: The payload that represents the oscillation off state. required: false type: string -payload_available: - description: The payload that represents the available state. + default: oscillate_off +payload_oscillation_on: + description: The payload that represents the oscillation on state. required: false type: string - default: online -payload_not_available: - description: The payload that represents the unavailable state. + default: oscillate_on +qos: + description: The maximum QoS level of the state topic. + required: false + type: integer + default: 0 +retain: + description: If the published message should have the retain flag on or not. + required: false + type: boolean + default: true +speed_command_topic: + description: The MQTT topic to publish commands to change speed state. required: false type: string - default: offline -json_attributes_topic: - description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-topic-configuration) documentation. +speed_state_topic: + description: The MQTT topic subscribed to receive speed state updates. required: false type: string -json_attributes_template: - description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation." +speed_value_template: + description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value from the speed payload." required: false - type: template + type: string +speeds: + description: "List of speeds this fan is capable of running at. Valid entries are `off`, `low`, `medium` and `high`." + required: false + type: [string, list] +state_topic: + description: The MQTT topic subscribed to receive state updates. + required: false + type: string +state_value_template: + description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value from the state." + required: false + type: string unique_id: description: An ID that uniquely identifies this fan. If two fans have the same unique ID, Home Assistant will raise an exception. required: false type: string -device: - description: "Information about the device this fan 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: - identifiers: - description: A list of IDs that uniquely identify the device. For example a serial number. - required: false - type: [string, list] - connections: - description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.' - required: false - type: [list, map] - manufacturer: - description: The manufacturer of the device. - required: false - type: string - model: - description: The model of the device. - required: false - type: string - name: - description: The name of the device. - required: false - type: string - sw_version: - description: The firmware version of the device. - required: false - type: string {% endconfiguration %}
diff --git a/source/_integrations/light.mqtt.markdown b/source/_integrations/light.mqtt.markdown index 7da21820e378..5d2270cd6e6a 100644 --- a/source/_integrations/light.mqtt.markdown +++ b/source/_integrations/light.mqtt.markdown @@ -45,19 +45,10 @@ light: ``` {% configuration %} -name: - description: The name of the light. - required: false - type: string - default: MQTT Light -unique_id: - description: An ID that uniquely identifies this light. If two lights have the same unique ID, Home Assistant will raise an exception. +availability_topic: + description: The MQTT topic subscribed to receive availability (online/offline) updates. required: false type: string -command_topic: - description: The MQTT topic to publish commands to change the switch state. - required: true - type: string brightness_command_topic: description: The MQTT topic to publish commands to change the light’s brightness. required: false @@ -91,10 +82,47 @@ color_temp_value_template: description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the color temperature value." required: false type: string +command_topic: + description: The MQTT topic to publish commands to change the switch state. + required: true + type: string +device: + description: 'Information about the device this light 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: + connections: + description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.' + required: false + type: list + identifiers: + description: 'A list of IDs that uniquely identify the device. For example a serial number.' + required: false + type: [string, list] + manufacturer: + description: 'The manufacturer of the device.' + required: false + type: string + model: + description: 'The model of the device.' + required: false + type: string + name: + description: 'The name of the device.' + required: false + type: string + sw_version: + description: 'The firmware version of the device.' + required: false + type: string effect_command_topic: description: "The MQTT topic to publish commands to change the light's effect state." required: false type: string +effect_list: + description: The list of effects the light supports. + required: false + type: [string, list] effect_state_topic: description: The MQTT topic subscribed to receive effect state updates. required: false @@ -103,10 +131,6 @@ effect_value_template: description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the effect value." required: false type: string -effect_list: - description: The list of effects the light supports. - required: false - type: [string, list] hs_command_topic: description: "The MQTT topic to publish commands to change the light's color state in HS format (Hue Saturation). Range for Hue: 0° .. 360°, Range of Saturation: 0..100. @@ -122,6 +146,19 @@ hs_value_template: description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the HS value." required: false type: string +json_attributes_template: + description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation." + required: false + type: template +json_attributes_topic: + description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-topic-configuration) documentation. + required: false + type: string +name: + description: The name of the light. + required: false + type: string + default: MQTT Light on_command_type: description: "Defines when on the payload_on is sent. Using `last` (the default) will send any style (brightness, color, etc) topics first and then a `payload_on` to the `command_topic`. Using `first` will send the `payload_on` and then any style topics. Using `brightness` will only send brightness commands instead of the `payload_on` to turn the light on." required: false @@ -131,16 +168,26 @@ optimistic: required: false type: boolean default: "`true` if no state topic defined, else `false`." -payload_on: - description: The payload that represents enabled state. +payload_available: + description: The payload that represents the available state. required: false type: string - default: "ON" + default: online +payload_not_available: + description: The payload that represents the unavailable state. + required: false + type: string + default: offline payload_off: description: The payload that represents disabled state. required: false type: string default: "OFF" +payload_on: + description: The payload that represents enabled state. + required: false + type: string + default: "ON" qos: description: The maximum QoS level of the state topic. required: false @@ -175,6 +222,10 @@ state_value_template: description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the state value. The template should match the payload `on` and `off` values, so if your light uses `power on` to turn on, your `state_value_template` string should return `power on` when the switch is on. For example if the message is just `on`, your `state_value_template` should be `power {{ value }}`." required: false type: string +unique_id: + description: An ID that uniquely identifies this light. If two lights have the same unique ID, Home Assistant will raise an exception. + required: false + type: string white_value_command_topic: description: "The MQTT topic to publish commands to change the light's white value." required: false @@ -204,57 +255,6 @@ xy_value_template: description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the XY value." required: false type: string -availability_topic: - description: The MQTT topic subscribed to receive availability (online/offline) updates. - required: false - type: string -payload_available: - description: The payload that represents the available state. - required: false - type: string - default: online -payload_not_available: - description: The payload that represents the unavailable state. - required: false - type: string - default: offline -json_attributes_topic: - description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-topic-configuration) documentation. - required: false - type: string -json_attributes_template: - description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation." - required: false - type: template -device: - description: 'Information about the device this light 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: - identifiers: - description: 'A list of IDs that uniquely identify the device. For example a serial number.' - required: false - type: [string, list] - connections: - description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.' - required: false - type: list - manufacturer: - description: 'The manufacturer of the device.' - required: false - type: string - model: - description: 'The model of the device.' - required: false - type: string - name: - description: 'The name of the device.' - required: false - type: string - sw_version: - description: 'The firmware version of the device.' - required: false - type: string {% endconfiguration %}
@@ -382,19 +382,10 @@ light: ``` {% configuration %} -name: - description: The name of the light. +availability_topic: + description: The MQTT topic subscribed to receive availability (online/offline) updates. required: false type: string - default: MQTT JSON Light -unique_id: - description: An ID that uniquely identifies this light. If two lights have the same unique ID, Home Assistant will raise an exception. - required: false - type: string -command_topic: - description: The MQTT topic to publish commands to change the light’s state. - required: true - type: string brightness: description: Flag that defines if the light supports brightness. required: false @@ -410,6 +401,39 @@ color_temp: required: false type: boolean default: false +command_topic: + description: The MQTT topic to publish commands to change the light’s state. + required: true + type: string +device: + description: 'Information about the device this light 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: + connections: + description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.' + required: false + type: list + identifiers: + description: 'A list of IDs that uniquely identify the device. For example a serial number.' + required: false + type: [string, list] + manufacturer: + description: 'The manufacturer of the device.' + required: false + type: string + model: + description: 'The model of the device.' + required: false + type: string + name: + description: 'The name of the device.' + required: false + type: string + sw_version: + description: 'The firmware version of the device.' + required: false + type: string effect: description: Flag that defines if the light supports effects. required: false @@ -429,11 +453,39 @@ flash_time_short: required: false type: integer default: 2 +hs: + description: Flag that defines if the light supports HS colors. + required: false + type: boolean + default: false +json_attributes_template: + description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation." + required: false + type: template +json_attributes_topic: + description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-topic-configuration) documentation. + required: false + type: string +name: + description: The name of the light. + required: false + type: string + default: MQTT JSON Light optimistic: description: Flag that defines if the light works in optimistic mode. required: false type: boolean default: "`true` if no state topic defined, else `false`." +payload_available: + description: The payload that represents the available state. + required: false + type: string + default: online +payload_not_available: + description: The payload that represents the unavailable state. + required: false + type: string + default: offline qos: description: The maximum QoS level of the state topic. required: false @@ -453,6 +505,10 @@ state_topic: description: The MQTT topic subscribed to receive state updates. required: false type: string +unique_id: + description: An ID that uniquely identifies this light. If two lights have the same unique ID, Home Assistant will raise an exception. + required: false + type: string white_value: description: Flag that defines if the light supports white values. required: false @@ -463,62 +519,6 @@ xy: required: false type: boolean default: false -hs: - description: Flag that defines if the light supports HS colors. - required: false - type: boolean - default: false -availability_topic: - description: The MQTT topic subscribed to receive availability (online/offline) updates. - required: false - type: string -payload_available: - description: The payload that represents the available state. - required: false - type: string - default: online -payload_not_available: - description: The payload that represents the unavailable state. - required: false - type: string - default: offline -json_attributes_topic: - description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-topic-configuration) documentation. - required: false - type: string -json_attributes_template: - description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation." - required: false - type: template -device: - description: 'Information about the device this light 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: - identifiers: - description: 'A list of IDs that uniquely identify the device. For example a serial number.' - required: false - type: [string, list] - connections: - description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.' - required: false - type: list - manufacturer: - description: 'The manufacturer of the device.' - required: false - type: string - model: - description: 'The model of the device.' - required: false - type: string - name: - description: 'The name of the device.' - required: false - type: string - sw_version: - description: 'The firmware version of the device.' - required: false - type: string {% endconfiguration %}
@@ -678,81 +678,93 @@ light: ``` {% configuration %} -name: - description: The name of the light. +availability_topic: + description: The MQTT topic subscribed to receive availability (online/offline) updates. required: false type: string - default: MQTT Template Light -unique_id: - description: An ID that uniquely identifies this light. If two lights have the same unique ID, Home Assistant will raise an exception. - required: false - type: string -effect_list: - description: List of possible effects. +blue_template: + description: "[Template](/docs/configuration/templating/#processing-incoming-data) to extract blue color from the state payload value." required: false - type: [string, list] -command_topic: - description: The MQTT topic to publish commands to change the light’s state. - required: true type: string -state_topic: - description: The MQTT topic subscribed to receive state updates. +brightness_template: + description: "[Template](/docs/configuration/templating/#processing-incoming-data) to extract brightness from the state payload value." required: false type: string +color_temp_template: + description: "[Template](/docs/configuration/templating/#processing-incoming-data) to extract color temperature from the state payload value." + required: false + type: string +command_off_template: + description: "The [template](/docs/configuration/templating/#processing-incoming-data) for *off* state changes. Available variables: `state` and `transition`." + required: true + type: string command_on_template: description: "The [template](/docs/configuration/templating/#processing-incoming-data) for *on* state changes. Available variables: `state`, `brightness`, `red`, `green`, `blue`, `white_value`, `flash`, `transition` and `effect`." required: true type: string -command_off_template: - description: "The [template](/docs/configuration/templating/#processing-incoming-data) for *off* state changes. Available variables: `state` and `transition`." +command_topic: + description: The MQTT topic to publish commands to change the light’s state. required: true type: string -state_template: - description: "[Template](/docs/configuration/templating/#processing-incoming-data) to extract state from the state payload value." +device: + description: 'Information about the device this light 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: string -brightness_template: - description: "[Template](/docs/configuration/templating/#processing-incoming-data) to extract brightness from the state payload value." + type: map + keys: + connections: + description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.' + required: false + type: list + identifiers: + description: 'A list of IDs that uniquely identify the device. For example a serial number.' + required: false + type: [string, list] + manufacturer: + description: 'The manufacturer of the device.' + required: false + type: string + model: + description: 'The model of the device.' + required: false + type: string + name: + description: 'The name of the device.' + required: false + type: string + sw_version: + description: 'The firmware version of the device.' + required: false + type: string +effect_list: + description: List of possible effects. required: false - type: string -red_template: - description: "[Template](/docs/configuration/templating/#processing-incoming-data) to extract red color from the state payload value." + type: [string, list] +effect_template: + description: "[Template](/docs/configuration/templating/#processing-incoming-data) to extract effect from the state payload value." required: false type: string green_template: description: "[Template](/docs/configuration/templating/#processing-incoming-data) to extract green color from the state payload value." required: false type: string -blue_template: - description: "[Template](/docs/configuration/templating/#processing-incoming-data) to extract blue color from the state payload value." - required: false - type: string -color_temp_template: - description: "[Template](/docs/configuration/templating/#processing-incoming-data) to extract color temperature from the state payload value." +json_attributes_template: + description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation." required: false - type: string -effect_template: - description: "[Template](/docs/configuration/templating/#processing-incoming-data) to extract effect from the state payload value." + type: template +json_attributes_topic: + description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-topic-configuration) documentation. required: false type: string -white_value_template: - description: "[Template](/docs/configuration/templating/#processing-incoming-data) to extract white value from the state payload value." +name: + description: The name of the light. required: false type: string + default: MQTT Template Light optimistic: description: Flag that defines if the light works in optimistic mode. required: false type: string default: "`true` if no state topic or state template is defined, else `false`." -qos: - description: The maximum QoS level of the state topic. - required: false - type: integer - default: 0 -availability_topic: - description: The MQTT topic subscribed to receive availability (online/offline) updates. - required: false - type: string payload_available: description: The payload that represents the available state. required: false @@ -763,43 +775,31 @@ payload_not_available: required: false type: string default: offline -json_attributes_topic: - description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-topic-configuration) documentation. +qos: + description: The maximum QoS level of the state topic. + required: false + type: integer + default: 0 +red_template: + description: "[Template](/docs/configuration/templating/#processing-incoming-data) to extract red color from the state payload value." required: false type: string -json_attributes_template: - description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation." +state_template: + description: "[Template](/docs/configuration/templating/#processing-incoming-data) to extract state from the state payload value." required: false - type: template -device: - description: 'Information about the device this light 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.' + type: string +state_topic: + description: The MQTT topic subscribed to receive state updates. required: false - type: map - keys: - identifiers: - description: 'A list of IDs that uniquely identify the device. For example a serial number.' - required: false - type: [string, list] - connections: - description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.' - required: false - type: list - manufacturer: - description: 'The manufacturer of the device.' - required: false - type: string - model: - description: 'The model of the device.' - required: false - type: string - name: - description: 'The name of the device.' - required: false - type: string - sw_version: - description: 'The firmware version of the device.' - required: false - type: string + type: string +unique_id: + description: An ID that uniquely identifies this light. If two lights have the same unique ID, Home Assistant will raise an exception. + required: false + type: string +white_value_template: + description: "[Template](/docs/configuration/templating/#processing-incoming-data) to extract white value from the state payload value." + required: false + type: string {% endconfiguration %}
diff --git a/source/_integrations/lock.mqtt.markdown b/source/_integrations/lock.mqtt.markdown index 54ff19b31a4c..419e0fe834de 100644 --- a/source/_integrations/lock.mqtt.markdown +++ b/source/_integrations/lock.mqtt.markdown @@ -28,12 +28,49 @@ lock: ``` {% configuration %} +availability_topic: + description: The MQTT topic subscribed to receive availability (online/offline) updates. + required: false + type: string command_topic: description: The MQTT topic to publish commands to change the lock state. required: true type: string -state_topic: - description: The MQTT topic subscribed to receive state updates. +device: + description: 'Information about the device this lock 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: + connections: + description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.' + required: false + type: list + identifiers: + description: 'A list of IDs that uniquely identify the device. For example a serial number.' + required: false + type: [string, list] + manufacturer: + description: 'The manufacturer of the device.' + required: false + type: string + model: + description: 'The model of the device.' + required: false + type: string + name: + description: 'The name of the device.' + required: false + type: string + sw_version: + description: 'The firmware version of the device.' + required: false + type: string +json_attributes_template: + description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation." + required: false + type: template +json_attributes_topic: + description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-topic-configuration) documentation. required: false type: string name: @@ -41,31 +78,31 @@ name: required: false type: string default: MQTT Lock -payload_lock: - description: The payload that represents enabled/locked state. +optimistic: + description: Flag that defines if lock works in optimistic mode. required: false type: string - default: LOCK -payload_unlock: - description: The payload that represents disabled/unlocked state. + default: "`true` if no `state_topic` defined, else `false`." +payload_available: + description: The payload that represents the available state. required: false type: string - default: UNLOCK -state_locked: - description: The value that represents the lock to be in locked state + default: online +payload_lock: + description: The payload that represents enabled/locked state. required: false type: string - default: LOCKED -state_unlocked: - description: The value that represents the lock to be in unlocked state + default: LOCK +payload_not_available: + description: The payload that represents the unavailable state. required: false type: string - default: UNLOCKED -optimistic: - description: Flag that defines if lock works in optimistic mode. + default: offline +payload_unlock: + description: The payload that represents disabled/unlocked state. required: false type: string - default: "`true` if no `state_topic` defined, else `false`." + default: UNLOCK qos: description: The maximum QoS level of the state topic. required: false @@ -76,65 +113,28 @@ retain: required: false type: boolean default: false -value_template: - description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value from the payload." - required: false - type: string -availability_topic: - description: The MQTT topic subscribed to receive availability (online/offline) updates. - required: false - type: string -payload_available: - description: The payload that represents the available state. +state_locked: + description: The value that represents the lock to be in locked state required: false type: string - default: online -payload_not_available: - description: The payload that represents the unavailable state. + default: LOCKED +state_topic: + description: The MQTT topic subscribed to receive state updates. required: false type: string - default: offline -json_attributes_topic: - description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-topic-configuration) documentation. +state_unlocked: + description: The value that represents the lock to be in unlocked state required: false type: string -json_attributes_template: - description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation." - required: false - type: template + default: UNLOCKED unique_id: description: An ID that uniquely identifies this lock. If two locks have the same unique ID, Home Assistant will raise an exception. required: false type: string -device: - description: 'Information about the device this lock 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.' +value_template: + description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value from the payload." required: false - type: map - keys: - identifiers: - description: 'A list of IDs that uniquely identify the device. For example a serial number.' - required: false - type: [string, list] - connections: - description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.' - required: false - type: list - manufacturer: - description: 'The manufacturer of the device.' - required: false - type: string - model: - description: 'The model of the device.' - required: false - type: string - name: - description: 'The name of the device.' - required: false - type: string - sw_version: - description: 'The firmware version of the device.' - required: false - type: string + type: string {% endconfiguration %}
diff --git a/source/_integrations/sensor.mqtt.markdown b/source/_integrations/sensor.mqtt.markdown index f2629506fc81..5da58677dec8 100644 --- a/source/_integrations/sensor.mqtt.markdown +++ b/source/_integrations/sensor.mqtt.markdown @@ -22,46 +22,75 @@ sensor: ``` {% configuration %} -state_topic: - description: The MQTT topic subscribed to receive sensor values. - required: true - type: string -name: - description: The name of the MQTT sensor. +availability_topic: + description: The MQTT topic subscribed to receive availability (online/offline) updates. required: false type: string - default: MQTT Sensor -qos: - description: The maximum QoS level of the state topic. - required: false - type: integer - default: 0 -unit_of_measurement: - description: Defines the units of measurement of the sensor, if any. +device: + description: "Information about the device this sensor 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: string -icon: - description: The icon for the sensor. + type: map + keys: + connections: + description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.' + required: false + type: list + identifiers: + description: A list of IDs that uniquely identify the device. For example a serial number. + required: false + type: [string, list] + manufacturer: + description: The manufacturer of the device. + required: false + type: string + model: + description: The model of the device. + required: false + type: string + name: + description: The name of the device. + required: false + type: string + sw_version: + description: The firmware version of the device. + required: false + type: string +device_class: + description: The [type/class](/integrations/sensor/#device-class) of the sensor to set the icon in the frontend. required: false - type: icon + type: device_class + default: None expire_after: description: Defines the number of seconds after the value expires if it's not updated. required: false type: integer default: 0 -value_template: - description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the value." - required: false - type: template force_update: description: Sends update events even if the value hasn't changed. Useful if you want to have meaningful value graphs in history. reqired: false type: boolean default: false -availability_topic: - description: The MQTT topic subscribed to receive availability (online/offline) updates. +icon: + description: The icon for the sensor. + required: false + type: icon +json_attributes: + description: (Deprecated, replaced by json_attributes_topic) A list of keys to extract values from a JSON dictionary payload and then set as sensor attributes. + required: false + type: [string, list] +json_attributes_template: + description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`." + required: false + type: template +json_attributes_topic: + description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. Implies `force_update` of the current sensor state when a message is received on this topic. required: false type: string +name: + description: The name of the MQTT sensor. + required: false + type: string + default: MQTT Sensor payload_available: description: The payload that represents the available state. required: false @@ -72,56 +101,27 @@ payload_not_available: required: false type: string default: offline -json_attributes_topic: - description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. Implies `force_update` of the current sensor state when a message is received on this topic. +qos: + description: The maximum QoS level of the state topic. required: false + type: integer + default: 0 +state_topic: + description: The MQTT topic subscribed to receive sensor values. + required: true type: string -json_attributes_template: - description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`." - required: false - type: template -json_attributes: - description: (Deprecated, replaced by json_attributes_topic) A list of keys to extract values from a JSON dictionary payload and then set as sensor attributes. - required: false - type: [string, list] unique_id: description: "An ID that uniquely identifies this sensor. If two sensors have the same unique ID, Home Assistant will raise an exception." required: false type: string -device_class: - description: The [type/class](/integrations/sensor/#device-class) of the sensor to set the icon in the frontend. +unit_of_measurement: + description: Defines the units of measurement of the sensor, if any. required: false - type: device_class - default: None -device: - description: "Information about the device this sensor 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." + type: string +value_template: + description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the value." required: false - type: map - keys: - identifiers: - description: A list of IDs that uniquely identify the device. For example a serial number. - required: false - type: [string, list] - connections: - description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.' - required: false - type: list - manufacturer: - description: The manufacturer of the device. - required: false - type: string - model: - description: The model of the device. - required: false - type: string - name: - description: The name of the device. - required: false - type: string - sw_version: - description: The firmware version of the device. - required: false - type: string + type: template {% endconfiguration %} ## Examples diff --git a/source/_integrations/switch.mqtt.markdown b/source/_integrations/switch.mqtt.markdown index 001b70f7d3ff..a2ad182a842f 100644 --- a/source/_integrations/switch.mqtt.markdown +++ b/source/_integrations/switch.mqtt.markdown @@ -28,47 +28,65 @@ switch: ``` {% configuration %} +availability_topic: + description: The MQTT topic subscribed to receive availability (online/offline) updates. + required: false + type: string command_topic: description: The MQTT topic to publish commands to change the switch state. required: false type: string -name: - description: The name to use when displaying this switch. +device: + description: "Information about the device this switch 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: string - default: MQTT Switch + type: map + keys: + connections: + description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.' + required: false + type: list + identifiers: + description: A list of IDs that uniquely identify the device. For example a serial number. + required: false + type: [string, list] + manufacturer: + description: The manufacturer of the device. + required: false + type: string + model: + description: The model of the device. + required: false + type: string + name: + description: The name of the device. + required: false + type: string + sw_version: + description: The firmware version of the device. + required: false + type: string icon: description: Icon for the switch. required: false type: icon -state_topic: - description: The MQTT topic subscribed to receive state updates. - required: false - type: string -state_on: - description: The payload that represents the on state. - required: false - type: string - default: "`payload_on` if defined, else ON" -state_off: - description: The payload that represents the off state. +json_attributes_template: + description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation." required: false - type: string - default: "`payload_off` if defined, else OFF" -availability_topic: - description: The MQTT topic subscribed to receive availability (online/offline) updates. + type: template +json_attributes_topic: + description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-topic-configuration) documentation. required: false type: string -payload_on: - description: The payload that represents enabled state. +name: + description: The name to use when displaying this switch. required: false type: string - default: "ON" -payload_off: - description: The payload that represents disabled state. + default: MQTT Switch +optimistic: + description: Flag that defines if switch works in optimistic mode. required: false - type: string - default: "OFF" + type: boolean + default: "`true` if no `state_topic` defined, else `false`." payload_available: description: The payload that represents the available state. required: false @@ -79,11 +97,16 @@ payload_not_available: required: false type: string default: offline -optimistic: - description: Flag that defines if switch works in optimistic mode. +payload_off: + description: The payload that represents disabled state. required: false - type: boolean - default: "`true` if no `state_topic` defined, else `false`." + type: string + default: "OFF" +payload_on: + description: The payload that represents enabled state. + required: false + type: string + default: "ON" qos: description: The maximum QoS level of the state topic. Default is 0 and will also be used to publishing messages. required: false @@ -94,47 +117,24 @@ retain: required: false type: boolean default: false -value_template: - description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value from the payload." +state_off: + description: The payload that represents the off state. required: false type: string -json_attributes_topic: - description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-topic-configuration) documentation. + default: "`payload_off` if defined, else OFF" +state_on: + description: The payload that represents the on state. required: false type: string -json_attributes_template: - description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation." + default: "`payload_on` if defined, else ON" +state_topic: + description: The MQTT topic subscribed to receive state updates. required: false - type: template -device: - description: "Information about the device this switch 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." + type: string +value_template: + description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value from the payload." required: false - type: map - keys: - identifiers: - description: A list of IDs that uniquely identify the device. For example a serial number. - required: false - type: [string, list] - connections: - description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.' - required: false - type: list - manufacturer: - description: The manufacturer of the device. - required: false - type: string - model: - description: The model of the device. - required: false - type: string - name: - description: The name of the device. - required: false - type: string - sw_version: - description: The firmware version of the device. - required: false - type: string + type: string {% endconfiguration %}
diff --git a/source/_integrations/vacuum.mqtt.markdown b/source/_integrations/vacuum.mqtt.markdown index e7d8048fbfee..fbaa940c1cb0 100644 --- a/source/_integrations/vacuum.mqtt.markdown +++ b/source/_integrations/vacuum.mqtt.markdown @@ -29,152 +29,152 @@ vacuum: Legacy MQTT vacuum configuration section. {% configuration %} -name: - description: The name of the vacuum. - required: false - type: string - default: MQTT Vacuum -schema: - description: The schema to use. - required: false - type: string - default: legacy -supported_features: - description: List of features that the vacuum supports (possible values are `turn_on`, `turn_off`, `pause`, `stop`, `return_home`, `battery`, `status`, `locate`, `clean_spot`, `fan_speed`, `send_command`)." - required: false - type: [string, list] - default: "`turn_on`, `turn_off`, `stop`, `return_home`, `status`, `battery`, `clean_spot`" -command_topic: - description: The MQTT topic to publish commands to control the vacuum. - required: false - type: string -qos: - description: The maximum QoS level of the state topic. - required: false - type: integer - default: 0 -retain: - description: If the published message should have the retain flag on or not. - required: false - type: boolean - default: false -payload_turn_on: - description: The payload to send to the `command_topic` to begin the cleaning cycle. - required: false - type: string - default: turn_on -payload_turn_off: - description: The payload to send to the `command_topic` to turn the vacuum off. - required: false - type: string - default: turn_off -payload_return_to_base: - description: The payload to send to the `command_topic` to tell the vacuum to return to base. - required: false - type: string - default: return_to_base -payload_stop: - description: The payload to send to the `command_topic` to stop the vacuum. - required: false - type: string - default: stop -payload_clean_spot: - description: The payload to send to the `command_topic` to begin a spot cleaning cycle. - required: false - type: string - default: clean_spot -payload_locate: - description: The payload to send to the `command_topic` to locate the vacuum (typically plays a song). +availability_topic: + description: The MQTT topic subscribed to receive availability (online/offline) updates. required: false type: string - default: locate -payload_start_pause: - description: The payload to send to the `command_topic` to start or pause the vacuum. +battery_level_template: + description: Defines a [template](/topics/templating/) to define the battery level of the vacuum. This is required if `battery_level_topic` is set. required: false type: string - default: start_pause battery_level_topic: description: The MQTT topic subscribed to receive battery level values from the vacuum. required: false type: string -battery_level_template: - description: Defines a [template](/topics/templating/) to define the battery level of the vacuum. This is required if `battery_level_topic` is set. +charging_template: + description: Defines a [template](/topics/templating/) to define the charging state of the vacuum. This is required if `charging_topic` is set. required: false type: string charging_topic: description: The MQTT topic subscribed to receive charging state values from the vacuum. required: false type: string -charging_template: - description: Defines a [template](/topics/templating/) to define the charging state of the vacuum. This is required if `charging_topic` is set. +cleaning_template: + description: Defines a [template](/topics/templating/) to define the cleaning state of the vacuum. This is required if `cleaning_topic` is set. required: false type: string cleaning_topic: description: The MQTT topic subscribed to receive cleaning state values from the vacuum. required: false type: string -cleaning_template: - description: Defines a [template](/topics/templating/) to define the cleaning state of the vacuum. This is required if `cleaning_topic` is set. - required: false - type: string -docked_topic: - description: The MQTT topic subscribed to receive docked state values from the vacuum. +command_topic: + description: The MQTT topic to publish commands to control the vacuum. required: false type: string docked_template: description: Defines a [template](/topics/templating/) to define the docked state of the vacuum. This is required if `docked_topic` is set. required: false type: string -error_topic: - description: The MQTT topic subscribed to receive error messages from the vacuum. +docked_topic: + description: The MQTT topic subscribed to receive docked state values from the vacuum. required: false type: string error_template: description: Defines a [template](/topics/templating/) to define potential error messages emitted by the vacuum. This is required if `error_topic` is set. required: false type: string -fan_speed_topic: - description: The MQTT topic subscribed to receive fan speed values from the vacuum. +error_topic: + description: The MQTT topic subscribed to receive error messages from the vacuum. required: false type: string +fan_speed_list: + description: List of possible fan speeds for the vacuum. + required: false + type: [string, list] fan_speed_template: description: Defines a [template](/topics/templating/) to define the fan speed of the vacuum. This is required if `fan_speed_topic` is set. required: false type: string -set_fan_speed_topic: - description: The MQTT topic to publish commands to control the vacuum's fan speed. +fan_speed_topic: + description: The MQTT topic subscribed to receive fan speed values from the vacuum. required: false type: string -fan_speed_list: - description: List of possible fan speeds for the vacuum. +json_attributes_template: + description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation." required: false - type: [string, list] -send_command_topic: - description: The MQTT topic to publish custom commands to the vacuum. + type: template +json_attributes_topic: + description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-topic-configuration) documentation. required: false type: string -availability_topic: - description: The MQTT topic subscribed to receive availability (online/offline) updates. +name: + description: The name of the vacuum. required: false type: string + default: MQTT Vacuum payload_available: description: The payload that represents the available state. required: false type: string default: online +payload_clean_spot: + description: The payload to send to the `command_topic` to begin a spot cleaning cycle. + required: false + type: string + default: clean_spot +payload_locate: + description: The payload to send to the `command_topic` to locate the vacuum (typically plays a song). + required: false + type: string + default: locate payload_not_available: description: The payload that represents the unavailable state. required: false type: string default: offline -json_attributes_topic: - description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-topic-configuration) documentation. +payload_return_to_base: + description: The payload to send to the `command_topic` to tell the vacuum to return to base. required: false type: string -json_attributes_template: - description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation." + default: return_to_base +payload_start_pause: + description: The payload to send to the `command_topic` to start or pause the vacuum. required: false - type: template + type: string + default: start_pause +payload_stop: + description: The payload to send to the `command_topic` to stop the vacuum. + required: false + type: string + default: stop +payload_turn_off: + description: The payload to send to the `command_topic` to turn the vacuum off. + required: false + type: string + default: turn_off +payload_turn_on: + description: The payload to send to the `command_topic` to begin the cleaning cycle. + required: false + type: string + default: turn_on +qos: + description: The maximum QoS level of the state topic. + required: false + type: integer + default: 0 +retain: + description: If the published message should have the retain flag on or not. + required: false + type: boolean + default: false +schema: + description: The schema to use. + required: false + type: string + default: legacy +send_command_topic: + description: The MQTT topic to publish custom commands to the vacuum. + required: false + type: string +set_fan_speed_topic: + description: The MQTT topic to publish commands to control the vacuum's fan speed. + required: false + type: string +supported_features: + description: List of features that the vacuum supports (possible values are `turn_on`, `turn_off`, `pause`, `stop`, `return_home`, `battery`, `status`, `locate`, `clean_spot`, `fan_speed`, `send_command`)." + required: false + type: [string, list] + default: "`turn_on`, `turn_off`, `stop`, `return_home`, `status`, `battery`, `clean_spot`" {% endconfiguration %} ### Legacy configuration example @@ -260,50 +260,32 @@ MQTT payload: State MQTT vacuum configuration section. {% configuration %} -name: - description: The name of the vacuum. - required: false - type: string - default: MQTT Vacuum -schema: - description: The schema to use. +availability_topic: + description: The MQTT topic subscribed to receive availability (online/offline) updates. required: false type: string - default: legacy -supported_features: - description: "List of features that the vacuum supports (possible values are `start`, `stop`, `pause`, `return_home`, `battery`, `status`, `locate`, `clean_spot`, `fan_speed`, `send_command`)." - required: false - type: [string, list] - default: "`start`, `stop`, `return_home`, `status`, `battery`, `clean_spot`" command_topic: description: The MQTT topic to publish commands to control the vacuum. required: false type: string -qos: - description: The maximum QoS level of the state topic. - required: false - type: integer - default: 0 -retain: - description: If the published message should have the retain flag on or not. +fan_speed_list: + description: List of possible fan speeds for the vacuum. required: false - type: boolean - default: false -payload_start: - description: "The payload to send to the `command_topic` to begin the cleaning cycle." + type: [string, list] +json_attributes_topic: + description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-topic-configuration) documentation. required: false type: string - default: start -payload_stop: - description: "The payload to send to the `command_topic` to stop cleaning." +name: + description: The name of the vacuum. required: false type: string - default: stop -payload_return_to_base: - description: The payload to send to the `command_topic` to tell the vacuum to return to base. + default: MQTT Vacuum +payload_available: + description: The payload that represents the available state. required: false type: string - default: return_to_base + default: online payload_clean_spot: description: The payload to send to the `command_topic` to begin a spot cleaning cycle. required: false @@ -314,47 +296,65 @@ payload_locate: required: false type: string default: locate +payload_not_available: + description: The payload that represents the unavailable state. + required: false + type: string + default: offline payload_pause: description: The payload to send to the `command_topic` to pause the vacuum. required: false type: string default: pause -state_topic: - description: The MQTT topic subscribed to receive state messages from the vacuum. State topic is extracting JSON if no `value_template` is defined. +payload_return_to_base: + description: The payload to send to the `command_topic` to tell the vacuum to return to base. required: false type: string -value_template: - description: "Defines a [template](/topics/templating/) to extract possible states from the vacuum." + default: return_to_base +payload_start: + description: "The payload to send to the `command_topic` to begin the cleaning cycle." required: false type: string -set_fan_speed_topic: - description: The MQTT topic to publish commands to control the vacuum's fan speed. + default: start +payload_stop: + description: "The payload to send to the `command_topic` to stop cleaning." required: false type: string -fan_speed_list: - description: List of possible fan speeds for the vacuum. + default: stop +qos: + description: The maximum QoS level of the state topic. required: false - type: [string, list] + type: integer + default: 0 +retain: + description: If the published message should have the retain flag on or not. + required: false + type: boolean + default: false +schema: + description: The schema to use. + required: false + type: string + default: legacy send_command_topic: description: The MQTT topic to publish custom commands to the vacuum. required: false type: string -availability_topic: - description: The MQTT topic subscribed to receive availability (online/offline) updates. +set_fan_speed_topic: + description: The MQTT topic to publish commands to control the vacuum's fan speed. required: false type: string -payload_available: - description: The payload that represents the available state. +state_topic: + description: The MQTT topic subscribed to receive state messages from the vacuum. State topic is extracting JSON if no `value_template` is defined. required: false type: string - default: online -payload_not_available: - description: The payload that represents the unavailable state. +supported_features: + description: "List of features that the vacuum supports (possible values are `start`, `stop`, `pause`, `return_home`, `battery`, `status`, `locate`, `clean_spot`, `fan_speed`, `send_command`)." required: false - type: string - default: offline -json_attributes_topic: - description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-topic-configuration) documentation. + type: [string, list] + default: "`start`, `stop`, `return_home`, `status`, `battery`, `clean_spot`" +value_template: + description: "Defines a [template](/topics/templating/) to extract possible states from the vacuum." required: false type: string {% endconfiguration %} From 508183baf67aaea68c059cdd10c8a83a2b981673 Mon Sep 17 00:00:00 2001 From: SNoof85 Date: Fri, 28 Feb 2020 17:11:06 +0100 Subject: [PATCH 14/23] Fix typo in ZHA doc (#12206) confiure => configure --- source/_integrations/zha.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/zha.markdown b/source/_integrations/zha.markdown index 01bfc94f5059..668149778b99 100644 --- a/source/_integrations/zha.markdown +++ b/source/_integrations/zha.markdown @@ -87,7 +87,7 @@ The success dialog will appear or an error will be displayed in the popup. An er To configure the component, select ZHA on the Integrations page and provide the path to your Zigbee USB stick. -Or, you can manually confiure `zha` section in `configuration.yaml`. The path to the database which will persist your network data is required. +Or, you can manually configure `zha` section in `configuration.yaml`. The path to the database which will persist your network data is required. ```yaml # Example configuration.yaml entry From 09e41fb2f273f2666e8479a174281f17253b460a Mon Sep 17 00:00:00 2001 From: Almog Moyal Date: Fri, 28 Feb 2020 18:14:25 +0200 Subject: [PATCH 15/23] Switcher firmware 3 issue is resolved (#12205) --- source/_integrations/switcher_kis.markdown | 6 ------ 1 file changed, 6 deletions(-) diff --git a/source/_integrations/switcher_kis.markdown b/source/_integrations/switcher_kis.markdown index 57af9f7ec7f3..ed8d80d040c7 100644 --- a/source/_integrations/switcher_kis.markdown +++ b/source/_integrations/switcher_kis.markdown @@ -24,12 +24,6 @@ To retrieve your device's details, please follow the instructions [here](https:/ Please note, for the Switcher-V2-Python script to run successfully, you need to configure your device to work locally.
-
- - Please note, on the original script repository, users recently reported difficulties controlling the device after upgrading the firmware to the new 3.0 version.As this integration is based on that script, please do not upgrade to version 3.0 until this issue is resolved. You can follow the issue [here](https://github.com/NightRang3r/Switcher-V2-Python/issues/3). - -
- ```yaml switcher_kis: phone_id: 'REPLACE_WITH_PHONE_ID' From e66c33ca9c03e7b5860c47cd207ca66fa32cca14 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Fri, 28 Feb 2020 11:44:24 -0800 Subject: [PATCH 16/23] Release 106.2 --- _config.yml | 4 ++-- source/_posts/2020-02-26-release-106.markdown | 20 +++++++++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/_config.yml b/_config.yml index dd405ca3de4a..5c3291d95ec1 100644 --- a/_config.yml +++ b/_config.yml @@ -101,8 +101,8 @@ social: # Home Assistant release details current_major_version: 0 current_minor_version: 106 -current_patch_version: 1 -date_released: 2020-02-27 +current_patch_version: 2 +date_released: 2020-02-28 # Either # or the anchor link to latest release notes in the blog post. # Must be prefixed with a # and have double quotes around it. diff --git a/source/_posts/2020-02-26-release-106.markdown b/source/_posts/2020-02-26-release-106.markdown index 87722b11b551..b99b6aaf5232 100644 --- a/source/_posts/2020-02-26-release-106.markdown +++ b/source/_posts/2020-02-26-release-106.markdown @@ -363,6 +363,26 @@ Experiencing issues introduced by this release? Please report them in our [issue [simplisafe docs]: /integrations/simplisafe/ [unifi docs]: /integrations/unifi/ +## Release 0.106.2 - February 28 + +- Updated frontend to 20200220.5 ([@bramkragten] - [#32312]) ([frontend docs]) +- revent saving/deleting Lovelace config in safe mode ([@balloob] - [#32319]) ([lovelace docs]) +- UniFi - Temporary workaround to get device tracker to mark cli… ([@Kane610] - [#32321]) ([unifi docs]) +- Ensure rest sensors are marked unavailable when http requests… ([@bdraco] - [#32309]) ([rest docs]) + +[#32309]: https://github.com/home-assistant/home-assistant/pull/32309 +[#32312]: https://github.com/home-assistant/home-assistant/pull/32312 +[#32319]: https://github.com/home-assistant/home-assistant/pull/32319 +[#32321]: https://github.com/home-assistant/home-assistant/pull/32321 +[@Kane610]: https://github.com/Kane610 +[@balloob]: https://github.com/balloob +[@bdraco]: https://github.com/bdraco +[@bramkragten]: https://github.com/bramkragten +[frontend docs]: /integrations/frontend/ +[lovelace docs]: /integrations/lovelace/ +[rest docs]: /integrations/rest/ +[unifi docs]: /integrations/unifi/ + ## All changes - Change scan_interval defaults for Tesla ([@alandtse] - [#31194]) ([tesla docs]) (breaking change) From 579ec94ec995ec42b7857e6df244971558368aa0 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Fri, 28 Feb 2020 23:38:12 +0100 Subject: [PATCH 17/23] Community Highlights, 4th edition (#12208) * Community Highlights, 4th edition * Add missing link in last paragraph * Add additional link * Process review suggestions * Process review suggestions --- .../2020-02-28-community-highlights.markdown | 100 ++++++++++++++++++ .../homebyme.png | Bin 0 -> 158685 bytes .../social.png | Bin 0 -> 96207 bytes 3 files changed, 100 insertions(+) create mode 100644 source/_posts/2020-02-28-community-highlights.markdown create mode 100644 source/images/blog/2020-02-28-community-highlights/homebyme.png create mode 100644 source/images/blog/2020-02-28-community-highlights/social.png diff --git a/source/_posts/2020-02-28-community-highlights.markdown b/source/_posts/2020-02-28-community-highlights.markdown new file mode 100644 index 000000000000..2b5118626283 --- /dev/null +++ b/source/_posts/2020-02-28-community-highlights.markdown @@ -0,0 +1,100 @@ +--- +title: "Community Highlights: 4th edition" +description: "3D All the things!" +date: 2020-02-28 00:00:00 +date_formatted: "February 28, 2020" +author: Franck Nijhof +author_twitter: frenck +categories: Community +og_image: /images/blog/2020-02-28-community-highlights/social.png +--- + +For the 4th edition, I thought it fitted to devote the community highlights to 3D! + +_That is actually a lie, the [3rd edition](/blog/2020/02/19/community-highlights/) +would have been much more fitting, but was hijacked by Paulus ;) +At least it's my 3rd community highlight writeup, so that counts, right?_ + +Ready for some highly inspiring and mind-blowing 3D creations? + +## 3D home navigation and control, using Unity + +Are you sure you ready? Because Harrie de Groot created a fully navigatable +3D model of his home using Unity, accessible from within Home Assistant. + +You really **need** to watch the video below now... + +
+ +
+ +Well done, Harrie! That looks slick! + +More details on his creation can be found on the +[Home Assistant Community Forum](https://community.home-assistant.io/t/3d-home-navigation-control-unity-home-assistant/174972). + +## 3D printed interactive floorplan + +If you have been around a bit, you might have come across a screenshot of +someone with an interactive floorplan in Home Assistant. [Ryan Connolly](https://twitter.com/rynam0) +took that idea straight into the real world by 3D printing his floorplan, +wired it, and hooked it up Home Assistant. + +Talking about taking things into another dimension... + + + +### Getting started with your own 3D floorplan + +Ok, so the above two, rather impressive, listings might be a bit out of reach +for the most of us. Still, with some help, you could still achieve some pretty +nice looking 3D floorplans. [Aaron Godfrey](https://github.com/boralyl) wrote a +couple of excellent blog posts on this. + +In his [first blog post](https://aarongodfrey.dev/home%20automation/floorplan-in-home-assistant/), +Aaron shows you what his floorplan looks like + +
+ +
+ +He followed up with two blog posting on how to achieve this: + +- [Tips for creating a Floorplan in Sweet Home 3D](https://aarongodfrey.dev/home%20automation/tips_for_creating_a_3d_floorplan_using_sweethome3d/) +- [Creating an Interactive 3D Floorplan in Home Assistant](https://aarongodfrey.dev/home%20automation/creating-a-3d-floorplan-in-home-assistant/) + +### Bonus tip: HomeByMe + +I've personally got recommended a tool for creating a 3D floorplan with a tool +that is generally lesser-known, but actually pretty awesome! [HomeByMe](https://home.by.me/en/) + +Screenshot of HomeByMe. + +This is a result of a 3D floorplan created with [HomeByMe](https://home.by.me/en/). + +It works fully in the browser and I enjoyed the experience using that. +So credits where credits due: Thanks for recommending me this sweet little +gem [Andrea Donno](https://www.twitter.com/andreadonno)! + +## Got a tip for the next edition? + +Have you seen (or made) something awesome, interesting, unique, amazing, inspirational, unusual or funny, using Home Assistant? + +[Click here to send us your Community Highlight suggestion](/suggest-community-highlight). + +Also, don't forget to share your creations with us via Social Media: + +- Twitter it! Be sure to mention [@home_assistant][twitter] +- Share it on our [Facebook group][facebook-group] +- Post it to our [subreddit][reddit] +- Tag [@homeasssistant][instagram] on Instagram +- Or via chat, drop us a line in the [#lounge at Discord][chat] + +See you next edition! + +[chat]: https://www.home-assistant.io/join-chat +[facebook-group]: https://www.facebook.com/groups/HomeAssistant/ +[instagram]: https://www.instagram.com/homeassistant/ +[reddit]: https://www.reddit.com/r/homeassistant +[twitter]: https://www.twitter.com/home_assistant diff --git a/source/images/blog/2020-02-28-community-highlights/homebyme.png b/source/images/blog/2020-02-28-community-highlights/homebyme.png new file mode 100644 index 0000000000000000000000000000000000000000..f0d0edc79e5b9056ec0d6c1ca7f3b789d71c1893 GIT binary patch literal 158685 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

jxP=P!l~;S9SyKU7 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 O0000KR<$=>XZO8nzF2~;S>RHAX7X$+ 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 z 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 literal 0 HcmV?d00001 From 6fa717ce3635db8a741e2952240fae4e7f891575 Mon Sep 17 00:00:00 2001 From: Koen Kanters Date: Sun, 1 Mar 2020 13:03:04 +0100 Subject: [PATCH 18/23] Fix MQTT trigger automation_type documentation. (#12213) --- source/_integrations/device_trigger.mqtt.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/device_trigger.mqtt.markdown b/source/_integrations/device_trigger.mqtt.markdown index aae461636e5d..2855e697c5b1 100644 --- a/source/_integrations/device_trigger.mqtt.markdown +++ b/source/_integrations/device_trigger.mqtt.markdown @@ -19,7 +19,7 @@ The discovery topic needs to be: `/device_automation/[ Date: Mon, 2 Mar 2020 04:36:43 +1300 Subject: [PATCH 19/23] Corrected the typo of the example configuration (#12218) --- source/_integrations/geonetnz_volcano.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/geonetnz_volcano.markdown b/source/_integrations/geonetnz_volcano.markdown index 3dfe4b2cddc0..927a8b9b242e 100644 --- a/source/_integrations/geonetnz_volcano.markdown +++ b/source/_integrations/geonetnz_volcano.markdown @@ -91,7 +91,7 @@ the standard ones: ```yaml # Example configuration.yaml entry -geonetnz_quakes: +geonetnz_volcano: radius: 100 latitude: -41.2 longitude: 174.7 From b3f7414d1cb5bd1ff7afe6861ea34ca9c39ae49e Mon Sep 17 00:00:00 2001 From: nickrout Date: Mon, 2 Mar 2020 17:41:16 +1300 Subject: [PATCH 20/23] Update updater.markdown (#12219) --- source/_integrations/updater.markdown | 6 ------ 1 file changed, 6 deletions(-) diff --git a/source/_integrations/updater.markdown b/source/_integrations/updater.markdown index aa6593e9a59f..67ccdab88d97 100644 --- a/source/_integrations/updater.markdown +++ b/source/_integrations/updater.markdown @@ -14,12 +14,6 @@ The `updater` binary sensor will check daily for new releases. The state will be The updater integration will also collect basic information about the running Home Assistant instance and its environment. The information includes the current Home Assistant version, the time zone, Python version and operating system information. No identifiable information (i.e., IP address, GPS coordinates, etc.) will ever be collected. If you are concerned about your privacy, you are welcome to scrutinize the Python [source code](https://github.com/home-assistant/home-assistant/tree/dev/homeassistant/components/updater). -

- ## Configuration This integration is by default enabled, unless you've disabled or removed the [`default_config:`](https://www.home-assistant.io/integrations/default_config/) line from your configuration. If that is the case, the following example shows you how to enable this integration manually: From 02c583d1d3bcaae6a4b8632f95945220621087b6 Mon Sep 17 00:00:00 2001 From: kuchel77 <52343790+kuchel77@users.noreply.github.com> Date: Mon, 2 Mar 2020 19:59:49 +1100 Subject: [PATCH 21/23] Add file.write and YAML information - Slack integration (#12210) * Add file.write and YAML information * Fixed data and file order in YAML example. --- source/_integrations/slack.markdown | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/source/_integrations/slack.markdown b/source/_integrations/slack.markdown index e89f5ed0376e..331fcce2ebc3 100644 --- a/source/_integrations/slack.markdown +++ b/source/_integrations/slack.markdown @@ -15,9 +15,9 @@ The `slack` platform allows you to deliver notifications from Home Assistant to 1. Create a [new app](https://api.slack.com/apps) under your Slack.com account 2. Click the `OAuth & Permissions` link in the sidebar, under the Features heading -2. In the Scopes section, add the `chat:write:user` scope, `Send messages as user` -3. Scroll up to `OAuth Tokens & Redirect URLs` and click `Install App` -4. Copy your `OAuth Access Token` and put that key into your `configuration.yaml` file -- see below +3. In the Scopes section, add the `chat:write:user` scope, `Send messages as user`. If you wish to also be able to include files, you will need to include `files:write:user`. If you get a `missing_scope` error when trying to send a message, check these permissions. +4. Scroll up to `OAuth Tokens & Redirect URLs` and click `Install App` +5. Copy your `OAuth Access Token` and put that key into your `configuration.yaml` file -- see below
@@ -132,6 +132,19 @@ Example for posting formatted attachment: } ``` +You can also use YAML to send messages from your automations + +```yaml + + - service: notify.slack + data: + message: "Latest notification" + title: "Latest image" + target: ["#home-assistant"] + data: + file: + path: "/myfile.jpg" +``` Please note that both `message` is a required key, but is always shown, so use an empty (`""`) string for `message` if you don't want the extra text. To use notifications, please see the [getting started with automation page](/getting-started/automation/). From b47c566fd1ad6074ebf26da18f3989852e2aabf9 Mon Sep 17 00:00:00 2001 From: Maikel Punie Date: Mon, 2 Mar 2020 10:07:22 +0100 Subject: [PATCH 22/23] Updated the velbus logo (#12232) --- source/images/supported_brands/velbus.png | Bin 3814 -> 2053 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/source/images/supported_brands/velbus.png b/source/images/supported_brands/velbus.png index 76b24398b3f2575a8bde1ce6f2fd32eee4d080cd..072f9dbc98e94b5a75219539c33ed318841d9fbf 100644 GIT binary patch literal 2053 zcmV+g2>SPlP)Rs;``DNJ&U*UDYybcM;kn0D0000XbW%=J|NsC0|NsC0|NsC0 z|NsC0|NsC0|NsC0|NsC0|NsC00H49oApige3rR#lRCwC#nhBGuC=h_$rd0SgsQZ-Ws51P;Jrn@m1{$4|$7JhodscZO8w%~6*`_rbmqp9nlanLwu z95fCZ2aSWqLF1rt&^TxuG!7aEjf2KPV^=$|_MkDf2a-ii8lY#&(MOs8;{SGx_zF>UD_!12{mPfs$(O+?^ zeqGw3m3mViEI~*)b=cO7ipxWj-d2kOz}{5T>7+v~V4Uj^kSz8V+9?jt8pKi6B%o z94%=?_&nScjq6h$G0cXx9`3C?3czS06joDdfW*jSPG8gD*|#*Pn?_hv2o-d&>V|Ag zttnUhIH_OPlj<^Q#5^eH5gV(agdZi+XF>I!JoKkQO>bI!Nh6!>I(x0ObRIC2tFGpo zBX$~ECaJVT&DeuQr}5~aya?-6ABzkcsTw@CnF<1S&}iN-Q6t7==}9+e@Yk|hQi~Jz zq(K%+B^P~tz(0u03FtGS7cL*-bfQA{BQ;tRd3bK2R+9s4WY#sGsvL(ibeqkc#HQ7SsQwr?c@{YII9FwaNC?_-;#RJ zFeXq!&*4cUu+#XB9F~3_nl4Ob>WRUm605AmHVt!@+S(BBp;7%h4K!(e2F)M@vXNz! zZp%>DXe6c>B`}pQ{YH?6n=@_mdi<+zxd)A6S{Wym=P=SrfDi@J+w3^PO&U;oZoUCe z8mT+)TQn7KC>mE8ac$B_wAa-EQ>lQ*=fOrpTQmfegPPO#q+tZaMT53zsC*vF2uvpN z^(qZPE%|C?8cGTSiQP0Pl!KU7<{OKGRG3%EDh>I^WXLHqHH?2&Xmm0V&k)Mu@hhat zQ0NZC>hUIxO-reMiN-S2=OkREAw%$}#^>maYbTA6lTlkK8RaPrM^OOvMw>J?y(ocl zpnWuK)eV8xXedj0;HyevoivCF9A+AmXQ*^l=zM92e~-qH(bdv`l?IbE^1OA?2*<=% zqtR$O-@$bt+oDlz(nz5k-Ci0}J*dNPK^pAzrXf@MsC_#9MpM13stF>5==zY%o~l|F zF38@R`IZ+=zMvtc?Fyir7TS)W^1}`OunL;HKAMv2i0C01-!O0 zr|(#biSsqY9o@2(nnfzBXUbo+>~V7GM%oRK#`JRHW*K)+C% z!-;jr;Is9W`OqlLQazkzW3#ES0GBN`1^<{vS=!GKTd=(pKcI$EW(}VtS$Y>;;pQYf z6HCi0EroRLI`U!GgmxX8%x}iIJy=da}H*_t!1L2O^Am{MfLO-9_oRPdsIHD%9w$or%dwANZt$Eb&z!}es z-)k_LsPzx_=*J&z-?DzVvs$O&1eGi^4`b_Pb9>3yBJF%K9Aq~}=XUSbc_a8zyGZxp zs>0BI+)`pcxRt+8e&28KwWnu%Qrq8W zw`d?(@>rw6%aylb9|CP|j2kqVY$tqSxvG%c`C)E*xgSMf9+p!&rP#422sz|nC&$7CKyPxZf5sr}uXMri#M4TkWf8rQ$V`X$_u zq;w9jL;WkZvZ2Me%Gz!-9xsv5blm*5d<7Sm@`~3OH0@SI?ITqvSO24asG~@(CH>_x jc+>dbHw=oS{|GPuuKEKMy?BpJ00000NkvXXu0mjfEdc!x literal 3814 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 From 5b31189ffb2269b3f8111ee218fed3b7d2f6586a Mon Sep 17 00:00:00 2001 From: Andrew Date: Mon, 2 Mar 2020 03:30:55 -0600 Subject: [PATCH 23/23] Update supported devices in configuration example (#12228) Add ti_cc --- source/_integrations/zha.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/_integrations/zha.markdown b/source/_integrations/zha.markdown index 668149778b99..aa7c32cb4329 100644 --- a/source/_integrations/zha.markdown +++ b/source/_integrations/zha.markdown @@ -78,7 +78,7 @@ Use the plus button in the bottom right to add a new integration called **ZHA**. In the popup: - USB Device Path - on a Linux system will be something like `/dev/ttyUSB0` -- Radio type - select device type `ezsp`, `deconz` or `xbee` +- Radio type - select device type `ezsp`, `deconz`, `ti_cc`, `xbee` or `zigate` - Submit The success dialog will appear or an error will be displayed in the popup. An error is likely if Home Assistant can't access the USB device or your device is not up to date (see troubleshooting). @@ -104,7 +104,7 @@ If you are use ZiGate, you have to use some special usb_path configuration: {% configuration %} radio_type: - description: One of `ezsp`, `xbee`, `deconz` or `zigate`. + description: One of `deconz`, `ezsp`, `ti_cc`, `xbee` or `zigate`. required: false type: string default: ezsp