From 36c7096120a7531d94c0a252750946ff9ecc2338 Mon Sep 17 00:00:00 2001 From: Jack O'Sullivan Date: Mon, 10 Mar 2025 01:28:14 +0000 Subject: [PATCH] nixos/home/hass: Home Assistant CLI and automation fix --- .../home/palace/vms/sfh/containers/hass.nix | 14 +++++++++++++- secrets/hass/cli-token.txt.age | 16 ++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 secrets/hass/cli-token.txt.age diff --git a/nixos/boxes/home/palace/vms/sfh/containers/hass.nix b/nixos/boxes/home/palace/vms/sfh/containers/hass.nix index 5691cfc..572b5ab 100644 --- a/nixos/boxes/home/palace/vms/sfh/containers/hass.nix +++ b/nixos/boxes/home/palace/vms/sfh/containers/hass.nix @@ -45,6 +45,12 @@ in let inherit (lib) mkMerge mkIf mkForce; inherit (lib.my) networkdAssignment; + + hassCli = pkgs.writeShellScriptBin "hass-cli" '' + export HASS_SERVER="http://localhost:${toString config.services.home-assistant.config.http.server_port}" + export HASS_TOKEN="$(< ${config.age.secrets."hass/cli-token.txt".path})" + exec ${pkgs.home-assistant-cli}/bin/hass-cli "$@" + ''; in { config = { @@ -54,7 +60,11 @@ in secrets = { key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGpYX2WbYwUqHp8bFFf0eHFrqrR8xp8IheguA054F8V4"; - files = { }; + files = { + "hass/cli-token.txt" = { + owner = config.my.user.config.name; + }; + }; }; firewall = { @@ -65,6 +75,7 @@ in environment = { systemPackages = with pkgs; [ usbutils + hassCli ]; }; @@ -96,6 +107,7 @@ in ipv6.address ]; }; + automation = "!include automations.yaml"; }; extraComponents = [ "default_config" diff --git a/secrets/hass/cli-token.txt.age b/secrets/hass/cli-token.txt.age new file mode 100644 index 0000000..d966d43 --- /dev/null +++ b/secrets/hass/cli-token.txt.age @@ -0,0 +1,16 @@ +-----BEGIN AGE ENCRYPTED FILE----- +YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IFQrc2JHQSBmTlVp +RnlKNE9ySGo4L2h3VXBXRzIyZGdqU0RtUWk4ZmJVcGNKZ3BqTmpjCjJtQjUyTmJN +dkpsbVI3M01mQlNPSEI0U1lVeUJTMVlXUlpheGxVblhUbUkKLT4gWDI1NTE5IG5K +K0F3QWxJaW5CbW5TZElEVklIeUJxS0JCc2IxaFI5dVZrbDc3NDZGV2MKOVR6M0k5 +eW5HWDQrT3Rtb0tIM1EyajI1V0dKbHBLb0tVNU9nb21OUjcxYwotPiA5anw6bk56 +dC1ncmVhc2UgPCVeLiZyIH4KTGFRWHBGZFBJUElONUZLb3pJeXNZeXhoakYwT3BM +TW9kUXBhOGhNbHh1Q1RPRTlCRnhSckg5NEUxWk5MVHJucQp4YlFDcVRzK2V5bWVT +V0xLQjN1SjVTaWNJajJaTjRrQTd2VHlMRy82TExXbAotLS0gVE5YZVhTWXl4VUN2 +WUpidkJLV1JDU0R2QkdHZE5ZbCt2K2FlbGNjK0ZlNApzDh+kgAy4SBqC51mJi+VX +ON8wbwLVTQRs1H30eyWNzt/3MO++eS4AoZUKQZUxURwXfhV0t0zd5/MlByBsqaHR ++W6O/9Dp8e/8GYSX3D892r1LKN0AYHgcKeKwEtJojt5CTNJS2IgU6UxZhTliqAEc +NkfxvcoAEHhGhPOudEIX2SgjrgVGJA8MYm6/46zAolZws3TWim3NEgJpb9tWXpvi +1f/MXuxiowplF+PqCsd1EGzpXKsvADq6Rwyxpo6CbJzrq+GhFrTHF+LRkzjWx6JE +LUsZwDqOZUY= +-----END AGE ENCRYPTED FILE-----