diff --git a/Gemfile b/Gemfile index bda3f75098c..e08d61455ce 100644 --- a/Gemfile +++ b/Gemfile @@ -18,7 +18,7 @@ group :jekyll_plugins do gem 'jekyll-commonmark', '1.3.1' end -gem 'sinatra', '2.0.8.1' +gem 'sinatra', '2.1.0' gem 'nokogiri', '1.10.10' # Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem diff --git a/Gemfile.lock b/Gemfile.lock index 3111dee22e0..b3f27a004e3 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -81,7 +81,7 @@ GEM forwardable-extended (~> 2.6) public_suffix (4.0.6) rack (2.2.3) - rack-protection (2.0.8.1) + rack-protection (2.1.0) rack rake (13.0.1) rb-fsevent (0.10.4) @@ -100,10 +100,10 @@ GEM ffi (~> 1.9) sassc (2.4.0-x64-mingw32) ffi (~> 1.9) - sinatra (2.0.8.1) + sinatra (2.1.0) mustermann (~> 1.0) - rack (~> 2.0) - rack-protection (= 2.0.8.1) + rack (~> 2.2) + rack-protection (= 2.1.0) tilt (~> 2.0) stringex (2.8.5) terminal-table (1.8.0) @@ -130,7 +130,7 @@ DEPENDENCIES nokogiri (= 1.10.10) rake (= 13.0.1) sass-globbing (= 1.1.5) - sinatra (= 2.0.8.1) + sinatra (= 2.1.0) stringex (= 2.8.5) tzinfo (~> 2.0) tzinfo-data diff --git a/source/_docs/automation/trigger.markdown b/source/_docs/automation/trigger.markdown index 85ea844e05a..7c68d27bf30 100644 --- a/source/_docs/automation/trigger.markdown +++ b/source/_docs/automation/trigger.markdown @@ -152,9 +152,68 @@ automation: from: "not_home" # Optional to: "home" +``` - # If given, will trigger when state has been the to state for X time. - for: "01:10:05" +#### Holding a state + +You can use `for` to have the state trigger only fire if the state holds for some time. + +This example fires, when the entity state changed to `"on"` and holds that +state for 30 seconds: + +```yaml +automation: + trigger: + platform: state + entity_id: light.office + # Must stay "on" for 30 seconds + to: "on" + for: "00:00:30" +``` + +You can also fire the trigger when the state value changed from a specific +state, but hasn't returned to that state value for the specified time. + +This can be useful, e.g., checking if a media player hasn't turned "off" for +the time specified, but doesn't care about "playing" or "paused". + +```yaml +automation: + trigger: + platform: state + entity_id: media_player.kitchen + # Not "off" for 30 minutes + from: "off" + for: "00:30:00" +``` + +Please note, that when using `from`, `to` and `for`, only the value of the +`to` option is considered for the time specified. + +In this example, the trigger fires if the state value of the entity remains the +same for `for` the time specified, regardless of the current state value. + +```yaml +automation: + trigger: + platform: state + entity_id: media_player.kitchen + # The media player remained in its current state for 1 hour + for: "01:00:00" +``` + +When the `attribute` option is specified, all of the above works, but only +applies to the specific state value of that attribute. + +For example, this trigger only fires if the boiler was heating for 10 minutes: + +```yaml +automation: + trigger: + platform: state + entity_id: climate.living_room + attribute: hvac_action + state: "heating" ``` You can also use templates in the `for` option. diff --git a/source/_docs/scripts/conditions.markdown b/source/_docs/scripts/conditions.markdown index f02f38f72e1..74ffbd3886f 100644 --- a/source/_docs/scripts/conditions.markdown +++ b/source/_docs/scripts/conditions.markdown @@ -225,6 +225,17 @@ condition: state: heat ``` +Finally, the `state` option accepts helper entities (also known as `input_*` +entities). The condition will pass if the state of the entity matches the state +of the given helper entity. + +```yaml +condition: + condition: state + entity_id: alarm_control_panel.home + state: input_select.guest_mode +``` + ### Sun condition #### Sun state condition diff --git a/source/_integrations/camera.markdown b/source/_integrations/camera.markdown index 4e9ecdc6317..ab1382f388c 100644 --- a/source/_integrations/camera.markdown +++ b/source/_integrations/camera.markdown @@ -14,7 +14,7 @@ The camera integration allows you to use IP cameras with Home Assistant. If your camera supports it, and the [`stream`](/integrations/stream) integration is setup, you will be able to stream your cameras in the frontend and on supported media players. -This option will keep the stream alive, and preload the feed on Home Assistant startup. This will result in reduced latency when opening the stream in the frontend, as well as when using the `play_stream` service or Google Assistant integration. It does, however, utilize more resources on your machine, so it is recommended to check CPU usage if you plan to use this feature. +The `Preload stream` option will start the camera feed on Home Assistant startup and continue to keep the stream alive. This will result in reduced latency when opening the stream in the frontend, as well as when using the `play_stream` service or Google Assistant integration. It does, however, utilize more resources on your machine, so it is recommended to check CPU usage if you plan to use this feature.
diff --git a/source/_integrations/devolo_home_control.markdown b/source/_integrations/devolo_home_control.markdown
index bded4431b74..6a50223ff9e 100644
--- a/source/_integrations/devolo_home_control.markdown
+++ b/source/_integrations/devolo_home_control.markdown
@@ -42,8 +42,10 @@ The integration provides support for the following Z-Wave devices:
- devolo Door/Window Contact
- devolo Flood Sensor
+- devolo Key-Fob Switch
- devolo Motion Sensor
- devolo Smoke Detector
+- devolo Wall Switch
- Fibaro Floor Sensor
- Fibaro Motion Sensor
- Fibaro Smoke Sensor
diff --git a/source/_integrations/logi_circle.markdown b/source/_integrations/logi_circle.markdown
index 66cced5bff2..f5778bcb0a6 100644
--- a/source/_integrations/logi_circle.markdown
+++ b/source/_integrations/logi_circle.markdown
@@ -32,7 +32,7 @@ The `logi_circle` implementation allows you to integrate your [Logi Circle](http
* At the time you submit your request to Logitech, you need to demonstrate that you have exclusive control of the fully qualified domain name in your redirect URI. An active Home Assistant instance at the redirect URI will suffice. If you don't want to expose your Home Assistant instance publicly, you may also place a static page at the redirect URI with a short message that you will manage redirection of the authorization token to your local Home Assistant instance. Free static hosts that issue subdomains for hosting (e.g., Netlify) are permitted.
* As the redirect URI must be public facing, no local/reserved TLDs are permitted (eg. .local, .localhost, .example, etc. are not allowed).
-Please note that the turn-around time for API access takes a few business days after which you will be contacted by Logitech using the email address you provided in the form.
+Please note that the turn-around time for API access takes up to a month after which you will be contacted by Logitech using the email address you provided in the form.
## Configuration
diff --git a/source/_integrations/plugwise.markdown b/source/_integrations/plugwise.markdown
index 4bda94c1517..b92b0547d70 100644
--- a/source/_integrations/plugwise.markdown
+++ b/source/_integrations/plugwise.markdown
@@ -45,6 +45,8 @@ The Plugwise Smile(s) present in your network will be automatically detected via
Repeat the above procedure for each Smile gateway (i.e., if you have an Adam setup and a P1 DSMR you'll have to add two integrations).
+After adding the Plugwise integration(s), the default Smile-data refresh-interval can be changed by pressing the "OPTIONS" button: change the number via the up- or down-button and press "SUBMIT".
+