Add script to create and install avahi service unit
Intended to setup Zeroconf/mDNS for HA discovery
This commit is contained in:
@@ -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
|
||||||
Reference in New Issue
Block a user