gps: modem GNSS -> gpsd -> OwnTracks/MQTT publisher
EC25-AF GNSS wiring (udev hotplug into gpsd) plus van-gps-owntracks, a port of the wayback-era gps_to_owntracks.py: apt-only deps (python3-gps instead of pip-only gpsdclient, paho 2.x callback API), broker secrets moved out of the code into /etc/van-gps/config.json (0600, seeded from a sanitized example), gpsd host now localhost. client_id is vanq-wan — a legacy client still holds vanq on the broker and shared IDs get kicked in a connect/disconnect loop. Exit-on-disconnect + systemd Restart=always is the reconnect logic. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
d2a2b19b85
commit
8d5415f326
@@ -71,6 +71,25 @@ install -D -m0644 cockpit/cockpit-session-nofile.conf /etc/systemd/system/cockpi
|
||||
command -v grpcurl >/dev/null 2>&1 \
|
||||
|| echo " -> grpcurl missing (Starlink card will say so): install linux_arm64 binary from github.com/fullstorydev/grpcurl/releases"
|
||||
|
||||
echo "== gps (cellular modem GNSS -> gpsd) =="
|
||||
if dpkg -s gpsd >/dev/null 2>&1; then
|
||||
install -D -m0644 gps/77-modem-gps.rules /etc/udev/rules.d/77-modem-gps.rules
|
||||
install -D -m0644 gps/gpsd.default /etc/default/gpsd
|
||||
udevadm control --reload
|
||||
else
|
||||
echo " -> gpsd not installed (apt install gpsd gpsd-clients) — skipping GPS setup"
|
||||
fi
|
||||
# OwnTracks publisher: gpsd fix -> MQTT (broker + creds live only on the
|
||||
# system, 0600 — same pattern as pushover.json).
|
||||
install -D -m0755 gps/van-gps-owntracks /usr/local/sbin/van-gps-owntracks
|
||||
install -D -m0644 gps/van-gps-owntracks.service /etc/systemd/system/van-gps-owntracks.service
|
||||
if [ ! -f /etc/van-gps/config.json ]; then
|
||||
install -D -m0600 gps/config.json.example /etc/van-gps/config.json
|
||||
echo " -> seeded /etc/van-gps/config.json (EDIT IT: add MQTT username + password)"
|
||||
fi
|
||||
python3 -c 'import paho.mqtt' 2>/dev/null \
|
||||
|| echo " -> python3-paho-mqtt missing (apt install python3-paho-mqtt) — van-gps-owntracks won't start"
|
||||
|
||||
echo "== thermal monitor =="
|
||||
install -D -m0755 power/van-thermal /usr/local/sbin/van-thermal
|
||||
install -D -m0644 power/thermal-config.json /etc/van-thermal/config.json
|
||||
@@ -102,11 +121,12 @@ systemctl daemon-reexec
|
||||
# its wait-online would just stall network-online.target. NM-wait-online covers WANs.
|
||||
systemctl mask systemd-networkd-wait-online.service >/dev/null 2>&1 || true
|
||||
systemctl unmask hostapd >/dev/null 2>&1 || true
|
||||
systemctl enable regdomain.service hostapd hostapd-2g van-ap-dnsmasq nftables systemd-networkd van-failover van-thermal van-ap-watchdog van-ap-watchdog-2g >/dev/null 2>&1 || true
|
||||
systemctl enable regdomain.service hostapd hostapd-2g van-ap-dnsmasq nftables systemd-networkd van-failover van-thermal van-ap-watchdog van-ap-watchdog-2g van-gps-owntracks >/dev/null 2>&1 || true
|
||||
# bluetooth: host BlueZ serves the onboard hci0 to the HA container over D-Bus
|
||||
systemctl enable --now bluetooth >/dev/null 2>&1 || true
|
||||
systemctl start homeassistant || echo " -> homeassistant failed to start (podman/quadlet — check journalctl -u homeassistant)"
|
||||
systemctl restart van-thermal
|
||||
systemctl restart van-gps-owntracks
|
||||
# Pick up unmanaged-devices changes so NM releases/keeps the right interfaces.
|
||||
nmcli general reload 2>/dev/null || systemctl reload NetworkManager 2>/dev/null || true
|
||||
# restart in dependency order: bridge + members first, then hostapd enslaves the
|
||||
|
||||
Reference in New Issue
Block a user