diff --git a/machines/raspite/configuration.nix b/machines/raspite/configuration.nix index 4173275..5c2dfe5 100644 --- a/machines/raspite/configuration.nix +++ b/machines/raspite/configuration.nix @@ -6,7 +6,7 @@ }: { - imports = [ ./services/hass.nix ]; + imports = [ ./hass.nix ]; commonSettings = { nix.enable = true; diff --git a/machines/raspite/hass.nix b/machines/raspite/hass.nix new file mode 100644 index 0000000..f7b682e --- /dev/null +++ b/machines/raspite/hass.nix @@ -0,0 +1,54 @@ +{ config, pkgs, ... }: +{ + services.home-assistant = { + enable = true; + openFirewall = false; + config = { + default_config = { }; + http = { + server_host = "127.0.0.1"; + use_x_forwarded_for = true; + trusted_proxies = [ "127.0.0.1" ]; + }; + }; + extraPackages = + python3Packages: with python3Packages; [ + # speed up aiohttp + isal + zlib-ng + ]; + }; + + services.esphome = { + enable = true; + openFirewall = false; + }; + + users.groups.dialout.members = config.users.groups.wheel.members; + + services.mosquitto = { + enable = true; + }; + + services.zigbee2mqtt = { + enable = true; + settings = { + home-assistant = config.services.home-assistant.enable; + permit_join = true; + serial = { + port = "/dev/ttyUSB0"; + }; + }; + }; + + networking.firewall.allowedTCPPorts = [ 8443 ]; + + services.caddy = { + enable = true; + virtualHosts = { + "raspite.coho-tet.ts.net".extraConfig = '' + reverse_proxy ${config.services.home-assistant.config.http.server_host}:${toString config.services.home-assistant.config.http.server_port} + ''; + }; + }; +} diff --git a/machines/raspite/services/hass.nix b/machines/raspite/services/hass.nix deleted file mode 100644 index df46d8f..0000000 --- a/machines/raspite/services/hass.nix +++ /dev/null @@ -1,207 +0,0 @@ -{ config, pkgs, ... }: -{ - services.home-assistant = { - enable = true; - openFirewall = false; - config = { - default_config = { }; - http = { - server_host = "127.0.0.1"; - use_x_forwarded_for = true; - trusted_proxies = [ "127.0.0.1" ]; - }; - }; - extraPackages = - python3Packages: with python3Packages; [ - # speed up aiohttp - isal - zlib-ng - ]; - extraComponents = [ - "mqtt" - "roborock" - ]; - }; - - services.esphome = { - enable = true; - openFirewall = false; - }; - - users.groups.dialout.members = config.users.groups.wheel.members; - - services.mosquitto = { - enable = true; - }; - - services.zigbee2mqtt = { - enable = true; - package = pkgs.zigbee2mqtt_2; - settings = { - home-assistant = config.services.home-assistant.enable; - serial = { - adapter = "zstack"; - port = "/dev/ttyUSB0"; - }; - frontend = { - enabled = true; - port = 15313; - host = "127.0.0.1"; - }; - advanced = { - log_level = "debug"; - availability = { - # Periodically check whether devices are online/offline - enabled = true; - }; - channel = 11; - homeassistant_legacy_entity_attributes = false; - homeassistant_legacy_triggers = false; - legacy_api = false; - legacy_availability_payload = false; - }; - device_options = { - legacy = false; - }; - devices = { - "0x000d6f001673c5d4" = { - friendly_name = "小次卧开关"; - }; - "0x000d6f001673c1df" = { - friendly_name = "衣帽间开关"; - }; - "0x000d6f0014cbc2c6" = { - friendly_name = "主卧床头开关"; - }; - "0x8cf681fffe0a5e38" = { - friendly_name = "玄关开关"; - description = "1: 玄关灯 2: 书房灯"; - }; - "0x8cf681fffe0d9f1c" = { - friendly_name = "客厅开关1"; - description = "1: 轨道灯东 2: 轨道灯西"; - }; - "0x000d6f00167839ff" = { - friendly_name = "客厅开关2"; - description = "1: 客厅射灯北 2: 客厅射灯南"; - }; - "0x8cf681fffe0db266" = { - friendly_name = "客厅开关3"; - description = "过道射灯"; - }; - "0x8cf681fffe0d9ccb" = { - friendly_name = "客厅开关4"; - description = "1.厨房射灯"; - }; - "0x000d6f001673c512" = { - friendly_name = "小过道开关"; - }; - "0xa4c13815e2f92d74" = { - friendly_name = "客厅格栅灯"; - transition = 1; - }; - "0x540f57fffe54ced3" = { - friendly_name = "书房灯西南"; - transition = 1; - }; - "0x540f57fffe54c8d4" = { - friendly_name = "书房灯东北"; - transition = 1; - }; - "0x540f57fffe54c82b" = { - friendly_name = "书房灯西北"; - transition = 1; - }; - "0x540f57fffe5210bc" = { - friendly_name = "书房灯东南"; - transition = 1; - }; - "0x540f57fffe54c851" = { - friendly_name = "鞋柜灯"; - transition = 1; - }; - "0x540f57fffe54ce63" = { - friendly_name = "入户灯"; - transition = 1; - }; - "0x540f57fffe54c8ce" = { - friendly_name = "影壁灯"; - transition = 1; - }; - "0xa4c138693a2afad7" = { - friendly_name = "次卧泛光灯"; - transition = 1; - }; - "0x540f57fffe54c826" = { - friendly_name = "厨房水池灯"; - transition = 1; - }; - "0x540f57fffe521114" = { - friendly_name = "厨房灯"; - transition = 1; - }; - "0x540f57fffe54c86b" = { - friendly_name = "过道灯西"; - transition = 1; - }; - "0x540f57fffe54c82e" = { - friendly_name = "过道灯东"; - transition = 1; - }; - "0x540f57fffe5210e3" = { - friendly_name = "客卫洗手池射灯"; - transition = 1; - }; - "0xfc4d6afffe6eb9e3" = { - friendly_name = "客卫镜前灯"; - }; - "0x540f57fffe5210cf" = { - friendly_name = "客厅射灯北1"; - transition = 1; - }; - "0x540f57fffe54c8bb" = { - friendly_name = "客厅射灯北2"; - transition = 1; - }; - "0x540f57fffe5210db" = { - friendly_name = "客厅射灯北3"; - transition = 1; - }; - "0x540f57fffe54cec5" = { - friendly_name = "客厅射灯南1"; - transition = 1; - }; - "0x540f57fffe520d1d" = { - friendly_name = "客厅射灯南2"; - transition = 1; - }; - "0x540f57fffe54c966" = { - friendly_name = "客厅射灯南3"; - transition = 1; - }; - "0x540f57fffe520ceb" = { - friendly_name = "小次卧射灯北"; - transition = 1; - }; - "0x540f57fffe5210cd" = { - friendly_name = "小次卧射灯南"; - transition = 1; - }; - }; - }; - }; - - networking.firewall.allowedTCPPorts = [ 8443 ]; - - services.caddy = { - enable = true; - virtualHosts = { - "raspite.coho-tet.ts.net".extraConfig = '' - reverse_proxy ${config.services.home-assistant.config.http.server_host}:${toString config.services.home-assistant.config.http.server_port} - ''; - "https://raspite.coho-tet.ts.net:8080".extraConfig = '' - reverse_proxy ${config.services.zigbee2mqtt.settings.frontend.host}:${toString config.services.zigbee2mqtt.settings.frontend.port} - ''; - }; - }; -} diff --git a/modules/nixos/default.nix b/modules/nixos/default.nix index 5d34dc6..33929ce 100644 --- a/modules/nixos/default.nix +++ b/modules/nixos/default.nix @@ -6,7 +6,6 @@ ./common-settings/nix-conf.nix ./common-settings/proxy-server.nix ./common-settings/mainland.nix - ./common-settings/network.nix ./disk-partitions ./restic.nix ./monitor