From 4f9e7d521e00ea5058280b4e74f203885ab73e55 Mon Sep 17 00:00:00 2001 From: reachableceo Date: Wed, 2 Sep 2026 17:24:19 -0500 Subject: [PATCH] feat(pdu): garage PDU SNMP relay on tsys-librenms (AP7830 v1-only) [#344] MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 💘 Generated with Crush Assisted-by: Crush:glm-5.2 --- dcinfra/sensors/pdu/garage-pdu-relay.sh | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 dcinfra/sensors/pdu/garage-pdu-relay.sh diff --git a/dcinfra/sensors/pdu/garage-pdu-relay.sh b/dcinfra/sensors/pdu/garage-pdu-relay.sh new file mode 100644 index 0000000..86cb6fd --- /dev/null +++ b/dcinfra/sensors/pdu/garage-pdu-relay.sh @@ -0,0 +1,20 @@ +#!/bin/bash +# garage-pdu-relay: expose APC AP7830 metered output current via snmpd extend. +# +# Relay pattern (founder ruling 2026-09-02): the garage PDU speaks SNMPv1 +# only, walks die on its old AOS, and its ACL admits the LibreNMS VM vantage. +# This relay runs ON tsys-librenms; HA polls the relay via the fleet snmpd +# extend (same rails as drac-extend). Output: "output_amps ". +set -euo pipefail + +PDU_HOST="${PDU_HOST:-pfv-garage-pdu-1.knel.net}" +COMMUNITY="${PDU_COMMUNITY:-kn3lmgmt}" +OID=".1.3.6.1.4.1.318.1.1.12.2.3.1.1.2.1" + +raw=$(snmpget -v1 -c "$COMMUNITY" -On -Ov "$PDU_HOST" "$OID" 2>/dev/null \ + | grep -oE '[0-9]+$') || true +if [ -z "${raw:-}" ]; then + echo "output_amps unavailable" + exit 0 +fi +awk -v t="$raw" 'BEGIN { printf "output_amps %.1f\n", t/10 }'