All checks were successful
		
		
	
	Check flake / build-amd64-linux (push) Successful in 1m23s
				
			
		
			
				
	
	
		
			103 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			103 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| {
 | |
|   inputs,
 | |
|   config,
 | |
|   lib,
 | |
|   pkgs,
 | |
|   ...
 | |
| }:
 | |
| 
 | |
| {
 | |
|   services.mosquitto = {
 | |
|     enable = true;
 | |
|     listeners = [
 | |
|       {
 | |
|         acl = [ "pattern readwrite #" ];
 | |
|         omitPasswordAuth = true;
 | |
|         port = 1883;
 | |
|         settings = {
 | |
|           allow_anonymous = true;
 | |
|         };
 | |
|       }
 | |
|     ];
 | |
|   };
 | |
| 
 | |
|   age.secrets."files/services/zigbee2mqtt/secret.yaml" = {
 | |
|     file = "${inputs.secrets}/files/services/zigbee2mqtt/secret.yaml.age";
 | |
|     path = "${config.services.zigbee2mqtt.dataDir}/secret.yaml";
 | |
|     owner = "zigbee2mqtt";
 | |
|     group = "zigbee2mqtt";
 | |
|   };
 | |
| 
 | |
|   services.zigbee2mqtt = {
 | |
|     package = pkgs.unstable.zigbee2mqtt;
 | |
|     enable = true;
 | |
|     dataDir = "/var/lib/zigbee2mqtt";
 | |
|     settings = {
 | |
|       homeassistant = lib.optionalAttrs config.services.home-assistant.enable {
 | |
|         discovery_topic = "homeassistant";
 | |
|         status_topic = "hass/status";
 | |
|       };
 | |
|       availability = true;
 | |
|       frontend = true;
 | |
|       device_options = {
 | |
|         retain = true;
 | |
|       };
 | |
|       serial = {
 | |
|         port = "/dev/serial/by-id/usb-Silicon_Labs_Sonoff_Zigbee_3.0_USB_Dongle_Plus_0001-if00-port0";
 | |
|         adapter = "zstack";
 | |
|       };
 | |
|       advanced = {
 | |
|         channel = 20;
 | |
|         network_key = "!secret.yaml network_key";
 | |
|         pan_id = 13001;
 | |
|         ext_pan_id = [
 | |
|           79
 | |
|           1
 | |
|           73
 | |
|           47
 | |
|           250
 | |
|           136
 | |
|           124
 | |
|           222
 | |
|         ];
 | |
|         transmit_power = 20;
 | |
|       };
 | |
|       mqtt = {
 | |
|         version = 5;
 | |
|         server = "mqtt://localhost:1883";
 | |
|       };
 | |
|     };
 | |
|   };
 | |
| 
 | |
|   environment.persistence."/persist".directories = [
 | |
|     {
 | |
|       directory = config.services.zigbee2mqtt.dataDir;
 | |
|       user = "zigbee2mqtt";
 | |
|       group = "zigbee2mqtt";
 | |
|       mode = "0700";
 | |
|     }
 | |
|     {
 | |
|       directory = config.services.mosquitto.dataDir;
 | |
|       user = "mosquitto";
 | |
|       group = "mosquitto";
 | |
|       mode = "0700";
 | |
|     }
 | |
|   ];
 | |
| 
 | |
|   modules.services.borgmatic.directories = [
 | |
|     config.services.mosquitto.dataDir
 | |
|     config.services.zigbee2mqtt.dataDir
 | |
|   ];
 | |
| 
 | |
|   services.home-assistant = {
 | |
|     config.mqtt = { };
 | |
|     extraComponents = [
 | |
|       "mqtt"
 | |
|       "mqtt_eventstream"
 | |
|       "mqtt_json"
 | |
|       "mqtt_room"
 | |
|       "mqtt_statestream"
 | |
|     ];
 | |
|   };
 | |
| }
 |