renemarc / home-assistant-config / automations /
๐ Home Assistant configuration for a smart-looking place! ๐
Be sure to โญ๏ธ or ๐ฑ this repo!
To prevent spaghetti code in automations as this project grows, I employ a publishโsubscribe pattern (kind of a lightweight mediator pattern) where some automations will trigger changes on /inputs/input_booleans.yaml
and /inputs/variables.yaml
while others listen to those changes.
For example, one push of a button will lead to enabling the night mode by setting the relevant boolean to true. Every room has an automation that listens to changes on that night mode boolean, and is responsible for turning devices on and off accordingly. This makes every room reactive to one central direction, without having to maintain a monolithic /scripts/go_to_sleep.yaml
that lists all the devices that must be acted upon.
It's a bit like a boss giving orders to managers, and letting them figure out how to best accomplish these goals based on what they know about their respective teams. Less micromanagement = smarter teams.
To help clarify and document this pattern in the files' comments, automations annotated with @publish are the ones that issue orders, and those annotated with @subscribe are listening for such orders. Some automations will be both publishers and subscribers of different orders.
Contains automations related to smart areas.
For automations related to individual smart devices.
For all automations related to modes.
Visual and audio notifications.
Adjust LIFX bulbs colour temperature (CCT) based on cyrcadian rythm.
Adjust LimitlessLED/MiLight colour temperature (CCT) based on cyrcadian rythm.
Start the HomeKit server when everything is ready.
Fetch video and generate images when motion has been detected outside in front.
Reset motion sensor for outside in front.
Toggle the daylight scene.
Toggle the gaming scene.
Toggle the romantic scene.
Manually select a global scene.
Set theme to "normal" during daytime and "dark" during night mode.
Check for new Home Assistant version availability.
Wake up all devices.
Create wallpaper images from cameras.
Update wallpaper images from cameras.
Wake up all devices.
The bulk of the customization is done in /ui-lovelace.yaml
, /customize.yaml
, and /customize_glob.yaml
.