{ 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} ''; }; }; }