From fa82a56831a059f94b36118671f4c5cb06f481cd Mon Sep 17 00:00:00 2001
From: imonlinux <39863321+imonlinux@users.noreply.github.com>
Date: Sun, 14 Sep 2025 12:01:14 -0700
Subject: [PATCH] Add script to create and install avahi service unit
Intended to setup Zeroconf/mDNS for HA discovery
---
script/gen-esphome-avahi.sh | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)
create mode 100644 script/gen-esphome-avahi.sh
diff --git a/script/gen-esphome-avahi.sh b/script/gen-esphome-avahi.sh
new file mode 100644
index 0000000..0600c23
--- /dev/null
+++ b/script/gen-esphome-avahi.sh
@@ -0,0 +1,33 @@
+#!/usr/bin/env bash
+set -euo pipefail
+PORT=6053
+NAME="%h (Linux Voice Assistant)"
+
+mapfile -t IFACES < <(ip -o link show up | awk -F': ' '{print $2}' | grep -v '^lo$')
+
+TXT=" platform=linux
+"
+LIST=""
+for i in "${IFACES[@]}"; do
+ mac=$(cat "/sys/class/net/$i/address")
+ if [ -d "/sys/class/net/$i/wireless" ] || [[ $i == wl* ]]; then net=wifi; else net=ethernet; fi
+ TXT+=" mac_${i}=${mac}
+"
+ TXT+=" net_${i}=${net}
+"
+ LIST+="${i},"
+done
+LIST=${LIST%,}
+
+cat >/etc/avahi/services/esphome-lva.service <
+
+
+ ${NAME}
+
+ _esphomelib._tcp
+ ${PORT}
+ ifaces=${LIST}
+${TXT}
+
+XML