fix(home-assistant): wire automation/script/scene !include directives

UI-saved automations land in /var/lib/hass/automations.yaml, but HA
won't load them unless configuration.yaml has \`automation: !include
automations.yaml\`. The Nix-managed config didn't have it, so HA's
post-save reload found no automations and timed out.

The NixOS HA module's renderYAMLFile post-processes the generated YAML
to convert quoted bang-strings into real YAML tags (see the sed step
in nixos/modules/services/home-automation/home-assistant.nix), so a
plain Nix string is enough — no escape-hatch needed.

Pre-create the three include targets via systemd.tmpfiles so HA
doesn't fail at startup if the user hasn't saved anything yet.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
marthsincemelee
2026-05-10 21:50:41 +02:00
parent 96fbeb04ef
commit d1299ed112
@@ -41,8 +41,19 @@ in
unit_system = "metric";
};
mobile_app = {};
automation = "!include automations.yaml";
script = "!include scripts.yaml";
scene = "!include scenes.yaml";
};
# `!include` targets must exist or HA fails at startup. Create them empty
# so HA's UI editor can write to them; `f` only acts if the file is absent.
systemd.tmpfiles.rules = [
"f /var/lib/hass/automations.yaml 0644 hass hass - []"
"f /var/lib/hass/scripts.yaml 0644 hass hass - {}"
"f /var/lib/hass/scenes.yaml 0644 hass hass - []"
];
services.openthread-border-router = {
enable = true;
package = pkgs.unstable.openthread-border-router;