diff options
Diffstat (limited to 'krebs/2configs/shack/glados/default.nix')
-rw-r--r-- | krebs/2configs/shack/glados/default.nix | 147 |
1 files changed, 147 insertions, 0 deletions
diff --git a/krebs/2configs/shack/glados/default.nix b/krebs/2configs/shack/glados/default.nix new file mode 100644 index 00000000..53d6e6f4 --- /dev/null +++ b/krebs/2configs/shack/glados/default.nix @@ -0,0 +1,147 @@ +{ config, pkgs, lib, ... }: +let + unstable = import (pkgs.fetchFromGitHub { + owner = "nixos"; + repo = "nixpkgs"; + rev = (lib.importJSON ../../../nixpkgs-unstable.json).rev; + sha256 = (lib.importJSON ../../../nixpkgs-unstable.json).sha256; + }) {}; +in { + services.nginx.virtualHosts."hass.shack" = { + serverAliases = [ "glados.shack" ]; + locations."/" = { + proxyPass = "http://localhost:8123"; + extraConfig = '' + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + + proxy_buffering off; + ''; + }; + }; + imports = [ + ./multi/shackopen.nix + ./multi/wasser.nix + ./multi/schlechte_luft.nix + ./multi/rollos.nix + + ./switch/power.nix + + ./sensors/power.nix + ./sensors/mate.nix + ./sensors/darksky.nix + ./sensors/spaceapi.nix + ./sensors/sensemap.nix + + ./automation/shack-startup.nix + ./automation/party-time.nix + ./automation/hass-restart.nix + + ]; + services.home-assistant = + { + enable = true; + autoExtraComponents = true; + package = unstable.home-assistant.overrideAttrs (old: { + doInstallCheck = false; + }); + config = { + homeassistant = { + name = "Glados"; + time_zone = "Europe/Berlin"; + latitude = "48.8265"; + longitude = "9.0676"; + elevation = 303; + auth_providers = [ + { type = "homeassistant";} + { type = "trusted_networks"; + trusted_networks = [ + "127.0.0.1/32" + "10.42.0.0/16" + "::1/128" + "fd00::/8" + ]; + } + ]; + }; + # https://www.home-assistant.io/components/influxdb/ + influxdb = { + database = "glados"; + host = "influx.shack"; + component_config_glob = { + "sensor.*particulate_matter_2_5um_concentration".override_measurement = "2_5um particles"; + "sensor.*particulate_matter_10_0um_concentration".override_measurement ="10um particles"; + }; + tags = { + instance = "wolf"; + source = "glados"; + }; + }; + esphome = {}; + api = {}; + mqtt = { + broker = "localhost"; + port = 1883; + client_id = "home-assistant"; + keepalive = 60; + protocol = 3.1; + discovery = true; #enable esphome discovery + discovery_prefix = "homeassistant"; + birth_message = { + topic = "glados/hass/status/LWT"; + payload = "Online"; + qos = 1; + retain = true; + }; + will_message = { + topic = "glados/hass/status/LWT"; + payload = "Offline"; + qos = 1; + retain = true; + }; + }; + light = []; + media_player = [ + { platform = "mpd"; + name = "lounge"; + host = "lounge.mpd.shack"; + } + { platform = "mpd"; + name = "kiosk"; + host = "lounge.kiosk.shack"; + } + ]; + + camera = []; + frontend = { }; + config = { }; + sun = {}; + http = { + base_url = "http://hass.shack"; + use_x_forwarded_for = true; + trusted_proxies = "127.0.0.1"; + }; + #conversation = {}; + + history = {}; + logbook = {}; + #recorder = {}; + + logger.default = "info"; + + tts = [ + { platform = "google_translate"; + service_name = "say"; + language = "de"; + cache = true; + time_memory = 57600; + } + ]; + device_tracker = []; + }; + }; +} |