1{
2 lib,
3 pkgs,
4 ...
5}:
6
7{
8 name = "zigbee2mqtt";
9 nodes.machine = {
10 systemd.services.dummy-serial = {
11 wantedBy = [
12 "multi-user.target"
13 ];
14 serviceConfig = {
15 ExecStart = "${pkgs.socat}/bin/socat pty,link=/dev/ttyACM0,mode=666 pty,link=/dev/ttyACM1";
16 };
17 };
18
19 services.zigbee2mqtt.enable = true;
20
21 systemd.services.zigbee2mqtt.serviceConfig.DevicePolicy = lib.mkForce "auto";
22 };
23
24 testScript = ''
25 machine.wait_for_unit("multi-user.target")
26 machine.wait_until_fails("systemctl status zigbee2mqtt.service")
27 machine.succeed(
28 "journalctl -eu zigbee2mqtt | grep 'No valid USB adapter found'"
29 )
30
31 machine.log(machine.succeed("systemd-analyze security zigbee2mqtt.service"))
32 '';
33}