1{ pkgs, lib, ... }:
2
3let
4 testPort = 6052;
5 unixSocket = "/run/esphome/esphome.sock";
6in
7{
8 name = "esphome";
9 meta.maintainers = with lib.maintainers; [ oddlama ];
10
11 nodes = {
12 esphomeTcp =
13 { ... }:
14 {
15 services.esphome = {
16 enable = true;
17 port = testPort;
18 address = "0.0.0.0";
19 openFirewall = true;
20 };
21 };
22
23 esphomeUnix =
24 { ... }:
25 {
26 services.esphome = {
27 enable = true;
28 enableUnixSocket = true;
29 };
30 };
31 };
32
33 testScript = ''
34 esphomeTcp.wait_for_unit("esphome.service")
35 esphomeTcp.wait_for_open_port(${toString testPort})
36 esphomeTcp.succeed("curl --fail http://localhost:${toString testPort}/")
37
38 esphomeUnix.wait_for_unit("esphome.service")
39 esphomeUnix.wait_for_file("${unixSocket}")
40 esphomeUnix.succeed("curl --fail --unix-socket ${unixSocket} http://localhost/")
41 '';
42}