I tried this, but when I have a nap in the afternoon all hell breaks loose.
Add a time condition.
Got mine a week or two ago and didn’t tell my wife. She picked up on it pretty quickly lol when things just started happening around bedtime.
Normally I get a “that’s neat” or something like that when I add a new automation. This one she said was probably her favorite yet. Especially as we have a kiddo on the way in a month. Going to be really helpful for nightlights and whatnot as we’re up and down all night.
The calibration is a bit wonky. But I eventually got it working well. I’m extremely happy with it and so is my wife.
RIght now I’ve got it:
- Turning on “nightlight” mode for the under-bed lightstrip. Dim enough to see with at night, dark enough to never wake anyone up.
- I turn on the bedroom fan when everyone is in bed and all other conditions are met. Sometimes we like to watch TV in bed at night but don’t want the bedtime routine to kick on. So i set it to wait for the power sensor on the TV to drop below like 5 W when both sides are occupied and then it starts. I also have it run some check around the house to make sure lights are off and the house is in night mode.
- It’s an incredibly powerful presence prior for any bayesian sensors or Area Occupancy sensors.
I really should add a power switch to my coffee maker…

arms the alarm in night mode, turns off all the lights that might be on
Nice. I already cover this stuff based on my watch starting / stopping sleep tracking.
The audio messages are pretty cool though since I wouldn’t mind doing the same based on actually getting out of bed rather than stopping the sleep tracking.
Just two standard Zigbee LED light strips. They’re separately controlled. They start at the headboard side of the bed in the corners and I just trimmed them to “meet in the middle” at the footboard end.
Got them for something like $6-$8 a piece on AliExpress (obviously before the tariff wars began lol).
Glad you liked it, and thanks for the compliment!
This is my bedtime house check script that I run in my goodnight script.
sequence:
- choose:
- conditions:
- condition: state
entity_id: binary_sensor.all_secure_night
state: "off"
sequence:
- action: assist_satellite.announce
metadata: {}
data:
message: >
{{ ['Goodnight both. The house is secure. So get a good nights
sleep.',
'Sleep well both. Safe in the knowledge that the house is secure.',
'Goodnight you two. Barn door protocol initiated and all is secure.'
] | random }}
preannounce: false
target:
entity_id: assist_satellite.jarvis_main_bedroom_assist_satellite
default:
- action: script.jarvis_speech_engine_v3_0
data:
where: master bedroom
type: announcement
message: |
{% set window_count = expand('binary_sensor.all_secure_night')
| selectattr('state','eq','on')
| list
| count %}
{% set windows = expand('binary_sensor.all_secure_night')
| selectattr('state','eq','on')
| map(attribute='name')
| list
| join(' and ') %}
{%- if window_count == 1 %}
{% set is_are = ' is ' %}
{% set has_have = ' has ' %}
{%- else -%}
{% set is_are = ' are ' %}
{% set has_have = ' have ' %}
{%- endif -%}
{{ 'Hold on a minute you two. The house is not yet secure. The ' ~ windows ~ is_are + 'open.' }}
description: ""
It obviously contains a few things you’ll need to create yourself, but you’ll get the basic idea from this.