From fe17df85d239090a5eab78e401fe8e2252bc736a Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Wed, 8 Dec 2021 13:36:33 +0100 Subject: [PATCH] 2021.12: Button section --- .../_posts/2021-12-11-release-202112.markdown | 49 +++++++++--------- source/images/blog/2021-12/buttons.png | Bin 0 -> 12485 bytes 2 files changed, 25 insertions(+), 24 deletions(-) create mode 100644 source/images/blog/2021-12/buttons.png diff --git a/source/_posts/2021-12-11-release-202112.markdown b/source/_posts/2021-12-11-release-202112.markdown index 0cb502630f6..4dbdb836921 100644 --- a/source/_posts/2021-12-11-release-202112.markdown +++ b/source/_posts/2021-12-11-release-202112.markdown @@ -72,34 +72,35 @@ All configuration related items, neatly organized in a single place 🤘 ## The button entity -Introducing a new revolutionary entity: the button entity. -Yes, it's a button. What can you do with it? Click it! +Introducing a new entity: the button entity. +Yes, it's a button. What can you do with it? Press it! -Support has been added to Google Assistant, Alexa, HomeKit & MQTT as well. +We already have a switch entity in Home Assistant, but a switch has a state; +switches are either on or off. A button, however, is a push-button, like a +stateless or momentary switch. -Implementations in this release: +Button entities can be provided by integrations and can be used for things like: -- Add Button platform to KNX integration ([@farmio] - [#59082]) ([knx docs]) -- Add button entity platform (restart button) to WLED ([@frenck] - [#59086]) ([wled docs]) -- Add button support to Google Assistant ([@frenck] - [#60158]) ([google_assistant docs]) -- Add button platform to Elgato ([@frenck] - [#59628]) ([elgato docs]) -- Add WLED firmware upgrade button ([@frenck] - [#59793]) ([wled docs]) -- Add button entities to Renault ([@epenet] - [#59383]) ([renault docs]) (breaking-change) -- Add button to litterrobot ([@natekspencer] - [#59734]) ([litterrobot docs]) (breaking-change) -- Add button support to HomeKit ([@frenck] - [#60165]) ([homekit docs]) -- Add Button platform to Nanoleaf ([@milanmeu] - [#60169]) ([nanoleaf docs]) -- Add tolo button platform ([@MatthiasLohr] - [#60345]) ([tolo docs]) -- Esphome/button ([@jesserockz] - [#60522]) ([esphome docs]) -- Add button platform to Tuya ([@frenck] - [#60304]) ([tuya docs]) -- Add button to trigger ota firmware update for Shelly devices ([@mib1185] - [#58757]) ([shelly docs]) -- Add `button` platform to NAM integration ([@bieniu] - [#60410]) ([nam docs]) -- Add reboot button to Shelly devices ([@mib1185] - [#60417]) ([shelly docs]) -- Add button support to Alexa ([@frenck] - [#60163]) ([alexa docs]) +

+Examples use cases of button entities +Examples use cases of button entities. +

- +All things that can be triggered from Home Assistant, but are not really have +on or off state. + +We have added support for this button entity to Google Assistant, Alexa and +HomeKit; allowing you to "press" those buttons from your favorite voice +assistant. + +For this release, MQTT & KNX added support for providing buttons. The Shelly, +WLED, Elgato, Litter-Robot, TOLO Sauna, Tuya, Renault and NAM integrations +have added button entities. + +Additionally, [ESPHome 2021.12](https://esphome.io/changelog/2021.12.0.html) +has added full support for buttons too! Besides adding a restart button, +you can now create button entities from ESPHome to trigger something on +your DIY project from Home Assistant. ## Local only users diff --git a/source/images/blog/2021-12/buttons.png b/source/images/blog/2021-12/buttons.png new file mode 100644 index 0000000000000000000000000000000000000000..08b5749a7afac18ec84f9aa9471c59e42ec1c91b GIT binary patch literal 12485 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 literal 0 HcmV?d00001