The only benefit I see at the moment is, that you have less dependencies in your automation. Even if you are using only the core nodes of Node Red in addition with the HA nodes, you have dependencies to many external libs in the background. And you also have to be sure, that the HA nodes in Node Red are all the time working with the current HA version.
Hi all,
i can absolutly understand you. I switched from node red to Home Assistant automations with the big automation changes and find it kinda ok.
Node red is way more flexible and more important, quite easy to debug.
My first try with Blueprints and debug capabilitys are not that good.
I love the idea of bluebrints but it is lacking some stuff for now. I really think most of this stuff will be added (like a good documentation, versioning)
I will fork yours (really like the scenes, do not need the ambient but it is already in there) and will do some changes that it fits my needs.
@iroQuai I will make a version without lux sensor that you can use if you want
Hi there, loving this blueprint, it covers 90% of my needs for my motion sensor
The only real thing i need is to be able to add a condition, so i can disable the automation when the user changes the lights.
Right now iāve done this with a physical hue button, for which i could make an automation.
But the problem iām running in to, is that when i make an automation that disables the motion automation when a user changes a scene in the hue app, it also triggers when the motion sensor changes the scene.
So, iām in need of a way to add a condition where i can utilize a boolean (toggle) helper, to pre-set if it was the motion sensor or the user that triggered the event, so the automation does not accidentally disable itself when it changes the scene.
Would this be a possibility? Iām a bit new at home assistant so i have not really worked out all the logic yet.
By all rights, a default value of none
should be allowed. It is the accepted way to specify no service or entity_id when used in an automation or script. However, itās not accepted (for whatever reason) in a blueprint.
Iām using light.none
as a default value in a blueprint but the name ānoneā is not magical. The entity_id simply needs to refer to a non-existent entity.
Hopefully, the difficulties encountered by the first generation of blueprint authors will help to introduce improvements in future versions.
Small addition, iāve expanded on the blueprint myself a bit, to allow for such a boolean helper.
Next to that i added a wait time per timeslot for when the lights should be turned off again
I noticed this in your blueprint (lines 201 and 203 and 205):
!input !input no_motion_wait_night
Possibly the result of a search-and-replace that produced doubled !input
keys.
Yea i saw it and fixed it thanks
Still donāt fully have it working, because
{% if (states.sensor.time.state > time_scene_night) and (states.sensor.time.state < time_scene_morning) %}
!input no_motion_wait_night
{% elif (states.sensor.time.state > time_scene_morning) and (states.sensor.time.state < time_scene_evening) %}
!input no_motion_wait_morning
{% else %}
!input no_motion_wait_day
{% endif %}
the input variables inside of the if statement arenāt returning a value, using them like
!input time_scene_night
inside the statements makes no difference, any clues as to how iād fix that? Iām a little stumped and google isnāt really helping me
Hi,
you have to put e.g. !input time_scene_night into a variable before and use the varibale within the template.
variables:
no_motion_wait_night: !input no_motion_wait_night
no_motion_wait_morning: !input no_motion_wait_morning
no_motion_wait_day: !input no_motion_wait_day
{% if (states.sensor.time.state > time_scene_night) and (states.sensor.time.state < time_scene_morning) %}
{{no_motion_wait_night}}
{% elif (states.sensor.time.state > time_scene_morning) and (states.sensor.time.state < time_scene_evening) %}
{{no_motion_wait_morning}}
{% else %}
{{no_motion_wait_day}}
{% endif %}
But it is only an assumption
The !input
tag is used by the YAML processor to perform a substitution. It is designed to assign a value to a key.
The key in the following example is entity_id
entity_id: !input whatever
You have not used !input
in that manner. You have it standing alone within a template.
You must do what dkoehler suggested because it uses the !input
tag to assign a value to a key. Create a variable, assign the selector value to it, then use the variable in the template.
Ok gotcha, makes sens
Iāll expiriment a little more with it
Did you get it working with groups of motion sensors yet? Would it only require broadening the filter on the selector for motion_entity
?
Hi, unfortenately I switched back to node red. Much more comfortable debugging and faster results.
Insanely awesome. Great work.
Thanks for your hard work on this.
Has anybody managed to remove the need to have a light sensor?
You can try YAMA - Yet Another Motion Automation (Scenes, Ambient Light and some Conditions )
It is a fork of this blueprint
Thanks, Iāll take a look
First of all: thanks a lot for this blueprint!! Makes motion controlled lights automation a breeze.
I only have one question: is it possible to create a transition to a scene, to make the lights come on gradually? My yaml skills are not good enough to understand how to do that within this blueprintā¦
Hi,
When it comes to light flux meter, I simply removed all line which corresponds to this entity, butā¦ seems it doesnāt work at allā¦
blueprint:
name: Motion-activated light scene with surrounding light level check and optional
ambient scene
description: Turn on a light scene when motion is detected. Three different scenes
can be defined depending on time of day. Furthermore a source for checking sourrounding
light can be defined to enable light only if it is dark enough.
domain: automation
source_url: https://gist.github.com/incapable/f43f74a0c5f9554b86f31ad0c0584180
input:
motion_entity:
name: Motion Sensor
selector:
entity:
domain: binary_sensor
device_class: motion
# lightsensor_entity:
# name: Illuminance Sensor
# selector:
# entity:
# domain: sensor
# device_class: illuminance
# illuminace_level:
# name: Max Illuminance
# description: Maximal immuminance level in lux. If illuminance is higher, light
# will not be enabled
# default: 600
# selector:
# number:
# min: 0.0
# max: 5000.0
# unit_of_measurement: lux
# mode: slider
# step: 1.0
light_target:
name: Light
selector:
target:
entity:
domain: light
scene_ambient:
name: Ambient Scene (Optional)
description: Scene for ambient state. Will be activated when no motion is detected
and light level is under threshold. Default value = scene.none
default: scene.none
selector:
entity:
domain: scene
time_scene_ambient_start:
name: Ambient time frame start
description: Time from which on ambient scene will be activated
default: 00:00:00
selector:
time: {}
time_scene_ambient_end:
name: Ambient time frame end
description: Time from which on ambient scene will be not activated
default: 00:00:00
selector:
time: {}
scene_morning:
name: Scene for the morning
default: scene.none
selector:
entity:
domain: scene
time_scene_morning:
name: Time for the morning scene
description: A time input which defines the time from which on the scene will
be activated if motion is detected. Default value = scene.none
default: 00:00:00
selector:
time: {}
no_motion_wait_morning:
name: Wait time morning
description: Time to leave the light on after last motion is detected.
default: 120
selector:
number:
min: 0.0
max: 3600.0
unit_of_measurement: seconds
mode: slider
step: 1.0
scene_day:
name: Scene for the bright day
default: scene.none
selector:
entity:
domain: scene
time_scene_day:
name: Time for the day scene
description: A time input which defines the time from which on the scene will
be activated if motion is detected. Default value = scene.none
default: 00:00:00
selector:
time: {}
no_motion_wait_day:
name: Wait time day
description: Time to leave the light on after last motion is detected.
default: 120
selector:
number:
min: 0.0
max: 3600.0
unit_of_measurement: seconds
mode: slider
step: 1.0
scene_evening:
name: Scene for the evening
default: scene.none
selector:
entity:
domain: scene
time_scene_evening:
name: Time for the evening scene
description: A time input which defines the time from which on the scene will
be activated if motion is detected. Default value = scene.none
default: 00:00:00
selector:
time: {}
no_motion_wait_evening:
name: Wait time evening
description: Time to leave the light on after last motion is detected.
default: 120
selector:
number:
min: 0.0
max: 3600.0
unit_of_measurement: seconds
mode: slider
step: 1.0
scene_night:
name: Scene for the dark night
default: scene.none
selector:
entity:
domain: scene
time_scene_night:
name: Time for the night scene
description: A time input which defines the time from which on the scene will
be activated if motion is detectedd. Default value = scene.none
default: 00:00:00
selector:
time: {}
no_motion_wait_night:
name: Wait time night
description: Time to leave the light on after last motion is detected.
default: 120
selector:
number:
min: 0.0
max: 3600.0
unit_of_measurement: seconds
mode: slider
step: 1.0
mode: restart
max_exceeded: silent
variables:
scene_ambient: !input 'scene_ambient'
trigger:
platform: state
entity_id: !input 'motion_entity'
from: 'off'
to: 'on'
action:
- choose:
- conditions:
- condition: time
after: !input 'time_scene_morning'
before: !input 'time_scene_day'
# - condition: numeric_state
# entity_id: !input 'lightsensor_entity'
# below: !input 'illuminace_level'
sequence:
- scene: !input 'scene_morning'
- conditions:
- condition: time
after: !input 'time_scene_day'
before: !input 'time_scene_evening'
# - condition: numeric_state
# entity_id: !input 'lightsensor_entity'
# below: !input 'illuminace_level'
sequence:
- scene: !input 'scene_day'
- conditions:
- condition: time
after: !input 'time_scene_evening'
before: !input 'time_scene_night'
# - condition: numeric_state
# entity_id: !input 'lightsensor_entity'
# below: !input 'illuminace_level'
sequence:
- scene: !input 'scene_evening'
- conditions:
- condition: time
after: !input 'time_scene_night'
before: !input 'time_scene_morning'
# - condition: numeric_state
# entity_id: !input 'lightsensor_entity'
# below: !input 'illuminace_level'
sequence:
- scene: !input 'scene_night'
- service: input_boolean.turn_off
data: {}
entity_id: input_boolean.user_changed_lights
- delay: 00:00:05
- service: input_boolean.turn_on
data: {}
entity_id: input_boolean.user_changed_lights
- wait_for_trigger:
platform: state
entity_id: !input 'motion_entity'
from: 'on'
to: 'off'
- delay: "{% if (states.sensor.time.state > time_scene_night) and (states.sensor.time.state\
\ < time_scene_morning) %} \n !input no_motion_wait_night\n{% elif (states.sensor.time.state\
\ > time_scene_morning) and (states.sensor.time.state < time_scene_evening) %}\n\
\ !input no_motion_wait_morning\n{% else %}\n !input no_motion_wait_day\n{%\
\ endif %}"
- choose:
- conditions:
- '{{ scene_ambient != ''scene.none''}}'
- condition: time
after: !input 'time_scene_ambient_start'
before: !input 'time_scene_ambient_end'
# - condition: numeric_state
# entity_id: !input 'lightsensor_entity'
# below: !input 'illuminace_level'
sequence:
- scene: !input 'scene_ambient'
default:
- service: light.turn_off
target: !input 'light_target'
I have one question:
If I want to select scene based on motion and time, why do I need to select LIGHT SOURCE?
Scene should activate those lights which I want, so? Or itās just that this will TURN OFF all those lights?
At least, this is my understanding because there is no other connection between INPUT and LIGHT TURN OFF.