{ pkgs, ... }: { imports = [ ./ac.nix # ./aeg.nix ./battery.nix ./ecovacs.nix ./enocean.nix ./ldap.nix ./light.nix ./locks.nix ./multimedia.nix ./notify.nix ./pc.nix ./presence.nix ./pushover.nix ./roborock.nix ./scene-switch.nix ./sleep.nix ./snapcast.nix ]; services.home-assistant = { enable = true; }; services.home-assistant.extraComponents = [ "mobile_app" "shopping_list" "backup" "denonavr" "androidtv" "rainbird" ]; services.home-assistant.config = let hiddenEntities = [ "sensor.last_boot" "sensor.date" ]; in { homeassistant = { name = "Home"; latitude = "!secret home_latitude"; longitude = "!secret home_longitude"; # elevation = "!secret home_elevation"; unit_system = "metric"; time_zone = "Europe/Vienna"; country = "AT"; }; automation = "!include automations.yaml"; frontend = { }; http = { use_x_forwarded_for = true; trusted_proxies = [ "127.0.0.1" "::1" ]; }; history.exclude = { entities = hiddenEntities; domains = [ "automation" "updater" ]; }; "map" = { }; enocean = { device = "/dev/serial/by-id/usb-EnOcean_GmbH_EnOcean_USB_300_DC_FT5OI9YG-if00-port0"; }; # logbook.exclude.entities = "hiddenEntities"; logger = { default = "info"; }; #icloud = { # username = "!secret icloud_email"; # password = "!secret icloud_password"; # with_family = true; #}; network = { }; zeroconf = { }; system_health = { }; default_config = { }; system_log = { }; sensor = [ { platform = "template"; sensors.bedtime_alarm = { friendly_name = "Bedtime Alarm"; value_template = "09:00"; }; } ]; }; services.nginx.virtualHosts."home-assistant.cloonar.com" = { forceSSL = true; enableACME = true; acmeRoot = null; extraConfig = '' proxy_buffering off; ''; locations."/".extraConfig = '' proxy_pass http://127.0.0.1:8123; proxy_set_header Host $host; proxy_redirect http:// https://; proxy_http_version 1.1; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; ''; }; sops.secrets."home-assistant-secrets.yaml" = { owner = "hass"; path = "/var/lib/hass/secrets.yaml"; restartUnits = [ "home-assistant.service" ]; }; users.users.hass.extraGroups = [ "dialout" ]; networking.firewall = { allowedUDPPorts = [ 5683 ]; }; }