also - her is the blueprint added with Illumance, isn’t it?
Nice thanks a lot.
This blueprint almost fulfills all my needs, thanks a lot @networkingcat!
The only thing I would like to be able to set is are different waiting times, like 180 seconds during evening, 60 seconds during nighttime and like 600 seconds during the day.
How could this be accomplished?
Hi I just worked this out, its anything below the the angle and the light will work, here is a link to work out your suns angle. i only just realised that the sun never goes above 15 deg at this time of year where i live.
The angle is the Altitude:
The combination of this and Wyze integration finally working well means that my Ring doorbell motion sensor turns on the Wyze bulbs over the door. Excellent! I have had IFTTT doing it for a long time, and have now moved it into HA.
Thanks!
Hey! Tell me, is it possible in this template to implement the inclusion of a street lamp in time, as an example from 21-00 to 6-00, without a motion sensor.
I’ve been using this for a while. Today ALL of my YAMA automations just stopped working with the following error:
Error: In ‘template’ condition: UndefinedError: ‘dict object’ has no attribute ‘to_state’
I don’t have any idea what is going on with them. I can’t create a new one, alter existing ones to work, etc.
Restarting Core made this go away. I have no idea what could have caused it to stop
I’m wondering if i am doing this right as nobody else is reporting the problem i am having. I have this set to trigger my garage lights on motion. It is set to turn off after 10 minutes. As soon as the light turns off, this registers as a motion and it reactivates the lights again. I would expect almost everyone else to have run into this issue?
Automation is broken as of February 2022
Error: In 'template' condition: UndefinedError: 'dict object' has no attribute 'to_state'
in action choose step.
Look at @Jared_Heath post just above. Looks like a core restart solved the problem.
Works fine for me too btw.
Would be great to add an Illuminance condition check
Would activate on Motion only if Illuminance < X Lux
I know this is in other Blueprints, but YAMA is simply better all around and would be perfect with this last addition.
this isn’t really a solution. Why would you want a switch to act as a light if it can’t be dimmed? This automation should definitely expose switches.
I‘ve switched my light automations to the Node Red add-on, not only is it way more flexible and powerful that way but also the flow logic is much better represented and very intuitive…
I will move all more complex automations to Node Red for sure.
I believe I fixed this by changing the motion sensor group (trigger) into a binary_sensor
Hallo @ all
can someone help me I would like to change the scene for morning, day etc. into an action light.turn_on.
When I do that the template does not work anymore. I did not want to create countless scenes but write it directly in the automation.
Just wanted to say thanks. Tried a few of these and this one fits my needs and just works. Thanks mate,
To get this kind of solution, I’m using the automation blocker now related to the measured lux, but this gives me the following problem:
- There is not enough light f.i. because of a dark clouds, so threshold binary sensor turns true, YAMA runs when motion is detected and neatly turns the lights on;
- Within the waiting period the cloud has gone, so now there is enough light to make the threshold sensor turn off and thus the YAMA being blocked.
- lights will simply never turn off until a new motion is detected.
So, in the threshold sensor I’ve set the hysteresis to 100lux, but even when setting this to a real high number it would only decrease the changes but never take away the possibility of the error.
So yeah, please add the optional lux check only in the turning on sequence instead of the whole YAMA and also have the automation do a run when the blocking condition changes to false.
Hi
I’m trying to make some modifications here and even if all seems to be OK, it doesn’t work.
My goal is to start AMBIENT SCENE based on sun elevation and end by time.
Just, when trigger comes, no automation finishes with no action taken.
blueprint:
name: YAMA Falo
description: >
# YAMA V10
Turn on lights or scenes when motion is detected.
Four different scenes can be defined depending on time of day.
For Details see this forum post:
https://community.home-assistant.io/t/yama-yet-another-motion-automation-scenes-ambient-light-and-some-conditions/257062?u=networkingcat
Capabilitys:
- Trigger on motion (in fact can be triggered by anything that switches between “on” and off")
- Wait time for turning off
- Only run if entity is in desired state (optional)
- Sun elevation check (optional)
- 4 Scenes for different times of day (optional)
- Ambient support with time frame (optional)
- Default scene when motion stops (optional)
- “no motion blocker” with user choosable state (optional)
domain: automation
source_url: https://gist.github.com/networkingcat/a1876d7e706e07c8bdcf974113940fb8
input:
motion_entity:
name: Motion Sensor
description: Motion Sensor or a group with Motion Sensors (But can be anything switching between "on" and "off")
selector:
entity:
domain: binary_sensor
device_class: motion
light_target:
name: Light
selector:
target:
entity:
domain: light
#added from other blueprint
illuminance_sensor:
name: (OPTIONAL) Illuminance sensor
description: This sensor will be used to determine the illumination.
default:
selector:
entity:
domain: sensor
device_class: illuminance
illuminance_cutoff:
name: (OPTIONAL) Illuminance cutoff value
description: This input_number will be used to compare to the current illumination to determine if it is low.
default:
selector:
number:
min: 0
max: 3600
unit_of_measurement: lux
#till here
no_motion_wait:
name: Wait time
description: Time to leave the light on after last motion is detected.
default: 120
selector:
number:
min: 0
max: 3600
unit_of_measurement: seconds
automation_blocker:
name: Automation Blocker (Optional)
description: Only run if this boolean is in desired state (see next input)
default:
selector:
entity:
automation_blocker_boolean:
name: Automation Blocker Chooser (Optional)
description: Desired state of automation blocker, choose on for on and off for off
default: false
selector:
boolean:
no_motion_blocker:
name: No Motion Blocker (Optional)
description: No motion sequence is not run if this boolean is in desired state (see next input)
default:
selector:
entity:
no_motion_blocker_boolean:
name: No Motion Chooser (Optional)
description: Desired state of no motion blocker, choose on for on and off for off
default: false
selector:
boolean:
elevation_check:
name: Sun elevation check (Optional)
description: This is the angle between the sun and the horizon. Negative values mean the sun is BELOW the horizon.
default: none
selector:
number:
min: -90
max: 90
unit_of_measurement: degrees
scene_ambient:
name: Ambient Scene (Optional)
description: Scene for ambient state. Will be activated when no motion is detected.
default: scene.none
selector:
entity:
domain: scene
sun_scene_ambient_start:
name: Ambient time frame start (Optional)
description: Time from which on ambient scene will be activated
default: none
selector:
number:
min: -90
max: 90
unit_of_measurement: degrees
time_scene_ambient_end:
name: Ambient time frame end (Optional)
description: Time from which on ambient scene will be not activated
default: "00:00:00"
selector:
time:
scene_morning:
name: Scene for the morning (Optional)
default: scene.none
selector:
entity:
domain: scene
time_scene_morning:
name: Time for the morning scene (Optional)
description: A time input which defines the time from which on the scene will be activated if motion is detected.
default: "00:00:00"
selector:
time:
scene_day:
name: Scene for the bright day (Optional)
default: scene.none
selector:
entity:
domain: scene
time_scene_day:
name: Time for the day scene (Optional)
description: A time input which defines the time from which on the scene will be activated if motion is detected.
default: "08:00:00"
selector:
time:
scene_evening:
name: Scene for the evening (Optional)
default: scene.none
selector:
entity:
domain: scene
time_scene_evening:
name: Time for the evening scene (Optional)
description: A time input which defines the time from which on the scene will be activated if motion is detected.
default: "21:00:00"
selector:
time:
scene_night:
name: Scene for the dark night (Optional)
default: scene.none
selector:
entity:
domain: scene
time_scene_night:
name: Time for the night scene (Optional)
description: A time input which defines the time from which on the scene will be activated if motion is detectedd.
default: "23:00:00"
selector:
time:
scene_no_motion:
name: Default scene for no motion (Optional)
description: Set this Scene if you want to activate a scene if motion stops
default: scene.none
selector:
entity:
domain: scene
mode: restart
max_exceeded: silent
variables:
#added from other blueprint
illuminance_currently: !input illuminance_sensor
illuminance_cutoff: !input illuminance_cutoff
#till here
scene_ambient: !input scene_ambient
scene_morning: !input scene_morning
scene_day: !input scene_day
scene_evening: !input scene_evening
scene_night: !input scene_night
automation_blocker: !input automation_blocker
automation_blocker_boolean : !input automation_blocker_boolean
no_motion_blocker: !input no_motion_blocker
no_motion_blocker_boolean: !input no_motion_blocker_boolean
elevation_check: !input elevation_check
scene_no_motion: !input scene_no_motion
motion_entity: !input motion_entity
trigger:
- platform: state
entity_id: !input motion_entity
from: "off"
to: "on"
- platform: state
entity_id: !input motion_entity
from: "on"
to: "off"
for: !input no_motion_wait
# All Conditions must be true
condition:
# Check if automation blocker exist or is in desired state, otherwise do not run
- condition: or
conditions:
- "{{ automation_blocker == none }}"
- "{{ automation_blocker_boolean and states[automation_blocker].state == 'on' }}"
- "{{ not automation_blocker_boolean and states[automation_blocker].state == 'off' }}"
# Check if elevation input exist or is below desired value, otherwise do not run
- condition: template
value_template: "{{ (elevation_check == none) or (state_attr('sun.sun','elevation') <= elevation_check | float(90)) }}"
action:
- choose:
# Trigger to state == "on"
- conditions:
- condition: template
value_template: "{{ trigger.to_state.state == 'on' }}"
#added from other blueprint
- condition: template
value_template: "{{ (illuminance_currently == none) or (illuminance_cutoff == none) or (states[illuminance_currently].state | int < states[illuminance_cutoff].state | int) }}"
#till here
sequence:
- choose:
# Morning Scene
- conditions:
- "{{ scene_morning != 'scene.none'}}"
- condition: time
after: !input time_scene_morning
before: !input time_scene_day
sequence:
- scene: !input scene_morning
# Day Scene
- conditions:
- "{{ scene_day != 'scene.none'}}"
- condition: time
after: !input time_scene_day
before: !input time_scene_evening
sequence:
- scene: !input scene_day
# Evening Scene
- conditions:
- "{{ scene_evening != 'scene.none'}}"
- condition: time
after: !input time_scene_evening
before: !input time_scene_night
sequence:
- scene: !input scene_evening
# Night Scene
- conditions:
- "{{ scene_night != 'scene.none'}}"
- condition: time
after: !input time_scene_night
before: !input time_scene_morning
sequence:
- scene: !input scene_night
# If State -> "On" defaulting to turn light on
default:
- service: light.turn_on
target: !input light_target
# Trigger to state = "off"
- conditions:
- condition: template
value_template: "{{ trigger.to_state.state == 'off' }}"
# Check if no motion blocker exist or in in desired state, otherwise do not run any no motion action
- condition: or
conditions:
- "{{ no_motion_blocker == none }}"
- "{{ no_motion_blocker_boolean and states[no_motion_blocker].state == 'on' }}"
- "{{ not no_motion_blocker_boolean and states[no_motion_blocker].state == 'off' }}"
sequence:
- choose:
# Used if ambient scene is true and in ambient scene time frame
- conditions:
- "{{ scene_ambient != 'scene.none' }}"
- condition: time
before: !input time_scene_ambient_end
- condition: template
value_template: "{{ (sun_scene_ambient_start == none) or (state_attr('sun.sun','elevation') <= sun_scene_ambient_start | float(90)) }}"
sequence:
- scene: !input scene_ambient
# Used if default no motion scene is set
- conditions:
- "{{ scene_no_motion != 'scene.none' }}"
sequence:
- scene: !input scene_no_motion
# If State -> "off" default to turn lights off
default:
- service: light.turn_off
target: !input light_target
Any ideas what I did wrong?
Gents, anyone?
Having some issues that started recently. I was using Node-RED for my bathroom motion lights. And was working great. Somewhere over the last week or two, it stopped turning off the lights. So then I have been turning them off with either the dashboard or with the Zigbee light switch.
I found this blueprint and decided to try it, and it turns them on. BUUUUT doesn’t turn them off. The trace makes it appears that it completely bypasses the “Off” leg.
I just want to figure this out.