{ lib, config, pkgs, ... }: with lib; let haCfg = config.pub-solar.home-assistant; cfg = config.pub-solar.home-assistant.zigbee2mqtt; in { config = mkIf (haCfg.enable && cfg.enable) { networking.firewall.allowedTCPPorts = [ 8080 # zigbee2mqtt ]; #services.udev.extraRules = ''KERNEL=="${cfg.device}", OWNER="zigbee2mqtt", GROUP="zigbee2mqtt"''; services.zigbee2mqtt = { enable = true; settings = { frontend = true; permit_join = false; homeassistant = true; mqtt = { user = "z2m"; password = "!secrets.yaml mqtt_password"; }; serial = { port = cfg.device; adapter = mkIf (cfg.adapter != null) cfg.adapter; }; }; }; }; }