Add script to create and install avahi service unit

Intended to setup Zeroconf/mDNS for HA discovery
This commit is contained in:
imonlinux
2025-09-14 12:01:14 -07:00
committed by GitHub
parent 4610c546ce
commit fa82a56831
+33
View File
@@ -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=" <txt-record>platform=linux</txt-record>
"
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+=" <txt-record>mac_${i}=${mac}</txt-record>
"
TXT+=" <txt-record>net_${i}=${net}</txt-record>
"
LIST+="${i},"
done
LIST=${LIST%,}
cat >/etc/avahi/services/esphome-lva.service <<XML
<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">${NAME}</name>
<service>
<type>_esphomelib._tcp</type>
<port>${PORT}</port>
<txt-record>ifaces=${LIST}</txt-record>
${TXT} </service>
</service-group>
XML