3 Commits

2 changed files with 68 additions and 51 deletions

View File

@ -25,4 +25,13 @@ The automation also obeys a toggle helper to enable/disable motion activation. T
This automation can retry a scene multiple times in a row to help overcome buggy/slow networks or lights that fail to set brightness/color correctly when first turned on. This automation can retry a scene multiple times in a row to help overcome buggy/slow networks or lights that fail to set brightness/color correctly when first turned on.
## Disclaimer
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
By using this software you agree to the disclaimer.

View File

@ -128,7 +128,7 @@ blueprint:
When activating a scene, try this many times in a row. When activating a scene, try this many times in a row.
This is sometimes useful when the network seems buggy or laggy, This is sometimes useful when the network seems buggy or laggy,
or for certain lights that fail to correctly apply brightness/color when first turning on. or for certain lights that fail to correctly apply brightness/color when first turning on.
default: 1 default: 1
selector: selector:
number: number:
@ -138,22 +138,22 @@ blueprint:
mode: box mode: box
# on_just_before_off_seconds: on_just_before_off_seconds:
# name: "\"On\" just before \"Off\"" name: "\"On\" just before \"Off\""
# description: > description: >
# When the "Off" scene is about to be shown, you may wish to quickly show the "On" scene for a number of seconds just before. When the "Off" scene is about to be shown, you may wish to quickly show the "On" scene for a number of seconds just before.
# This is sometimes helpful to mitigate an issue where the "On" scene doesn't apply all colors and settings correctly from an "Off" state. This is sometimes helpful to mitigate an issue where the "On" scene doesn't apply all colors and settings correctly from an "Off" state.
# Set this to a value greater than 0 to enable. Set this to a value greater than 0 to enable.
# A value of 0 will disable this feature. A value of 0 will disable this feature.
# Note that sometimes, a value that is too short (e.g., 1) may also cause issues. Note that sometimes, a value that is too short (e.g., 1) may also cause issues.
#
# default: 1 default: 1
# selector: selector:
# number: number:
# min: 1 min: 1
# max: 86400 max: 86400
# step: 1 step: 0.1
# mode: box mode: box
enabled_helper: enabled_helper:
@ -204,7 +204,7 @@ variables:
delay_seconds_max: !input delay_seconds_max delay_seconds_max: !input delay_seconds_max
notice_seconds: !input notice_seconds notice_seconds: !input notice_seconds
warning_seconds: !input warning_seconds warning_seconds: !input warning_seconds
# on_just_before_off_seconds: !input on_just_before_off_seconds on_just_before_off_seconds: !input on_just_before_off_seconds
enabled_helper: !input enabled_helper enabled_helper: !input enabled_helper
disabled_scene: !input disabled_scene disabled_scene: !input disabled_scene
debug_mode: !input debug_mode debug_mode: !input debug_mode
@ -278,11 +278,11 @@ action:
name: "Delay seconds" name: "Delay seconds"
message: "Delay seconds is: {{ states[delay_seconds_helper].state }}" message: "Delay seconds is: {{ states[delay_seconds_helper].state }}"
# - alias: "Debug log the on_just_before_off_seconds value" - alias: "Debug log the on_just_before_off_seconds value"
# service: logbook.log service: logbook.log
# data: data:
# name: "Debug: On just before off seconds" name: "Debug: On just before off seconds"
# message: "On just before off is: {{ on_just_before_off_seconds }} " message: "On just before off is: {{ on_just_before_off_seconds }} "
# Take actions based on whether the "Enabled helper" was just toggled on or off # Take actions based on whether the "Enabled helper" was just toggled on or off
# Action #1 # Action #1
@ -309,6 +309,14 @@ action:
name: "Debug: Disabled scene" name: "Debug: Disabled scene"
message: "Disabled scene is currently set to: {{ disabled_scene }}" message: "Disabled scene is currently set to: {{ disabled_scene }}"
# If the enabled helper is OFF, we should start by resetting
# the countdown timer to default
- alias: "Reset countdown timer when enabled helper is switched OFF."
service: input_number.set_value
data:
entity_id: !input delay_seconds_helper
value: "{{ delay_seconds_default }}"
# In "auto" mode, activate the ON or OFF scene based on whether motion is currently detected # In "auto" mode, activate the ON or OFF scene based on whether motion is currently detected
# Also use "auto" mode if motion activation is ENABLED. # Also use "auto" mode if motion activation is ENABLED.
- alias: "auto mode: Activate ON scene, if motion is currently detected, otherwise activate the OFF scene" - alias: "auto mode: Activate ON scene, if motion is currently detected, otherwise activate the OFF scene"
@ -674,34 +682,34 @@ action:
# Finally, we decide to actually turn off the lights with the "Off" scene. # Finally, we decide to actually turn off the lights with the "Off" scene.
# Maybe turn on the "On" scene just before the "Off" scene, if the user enabled this option # Maybe turn on the "On" scene just before the "Off" scene, if the user enabled this option
# - if: - if:
# - condition: template - condition: template
# value_template: "{{ on_just_before_off_seconds > 0 }}" value_template: "{{ on_just_before_off_seconds > 0 }}"
# then: then:
# - alias: "Log the number of on-before-off seconds" - alias: "Log the number of on-before-off seconds"
# if: if:
# - condition: template - condition: template
# value_template: "{{ debug_mode == true }}" value_template: "{{ debug_mode == true }}"
# then: then:
# service: logbook.log service: logbook.log
# data: data:
# name: "On-Before-Off seconds" name: "On-Before-Off seconds"
# message: "Will turn on for {{ on_just_before_off_seconds }} seconds before off." message: "Will turn on for {{ on_just_before_off_seconds }} seconds before off."
# - service: scene.turn_on - service: scene.turn_on
# target: target:
# entity_id: !input scene_on entity_id: !input scene_on
# - alias: "Wait a second to set the \"On\" scene." - alias: "Wait a second to set the \"On\" scene."
# delay: delay:
# seconds: "{{ on_just_before_off_seconds }}" seconds: "{{ on_just_before_off_seconds }}"
# else: else:
# - if: - if:
# - condition: template - condition: template
# value_template: "{{ debug_mode == true }}" value_template: "{{ debug_mode == true }}"
# then: then:
# - service: logbook.log - service: logbook.log
# data: data:
# name: "Won't run on-before-off" name: "Won't run on-before-off"
# message: "Won't run on-before-off because seconds was less than 1" message: "Won't run on-before-off because seconds was less than 1"
- alias: "Activate Scene: Off (Done)" - alias: "Activate Scene: Off (Done)"
repeat: repeat: