From da3f365faa354b96b0f5fe72a87f5cbff287d626 Mon Sep 17 00:00:00 2001 From: reachableceo Date: Wed, 2 Sep 2026 17:33:21 -0500 Subject: [PATCH] =?UTF-8?q?docs(agents):=20field=20lessons=20=E2=80=94=202?= =?UTF-8?q?026-09-02=20HA=20deep=20session?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AGENTS.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/AGENTS.md b/AGENTS.md index d65a942..af23fd0 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -702,3 +702,26 @@ Production lives on a Cloudron VPS in Reston VA. See the index and infrastructure summary. All work is tracked in [Redmine](https://projects.knownelement.com) (version: Potential to Kinetic Ready, due 2026-09-30). +- **HA 2026.8 snmp platform traps:** temperature/current-classed sensors with + `state_class: measurement` + non-numeric render ('unknown') are dropped AT + ADD-TIME (ValueError) when a host is asleep — entity vanishes entirely. Fix: + no state_class (stats live in VM) + templates render EMPTY on no-match. +- **Legacy snmp extend OID encoding:** suffix = strlen + ASCII decimal per + char ("garagepdu" = 9.103.97.114.97.103.101.112.100.117 — count carefully). +- **Old APC PDUs (AOS ~2.7):** SNMPv1 only; subtree WALKS die silently, small + single-table walks + GETs work. Garage AP7830 current OID: + .1.3.6.1.4.1.318.1.1.12.2.3.1.1.2.1 (tenths of amps). Relay pattern via + tsys-librenms (the allowed poller vantage) for v1-only/ACL-locked gear. +- **Debian snmpd on monitoring VMs:** snmpd may fail to bind 127.0.0.1:161 + (exit 1, "Error opening specified endpoint") when something squats + localhost — bind only the LAN/TS addresses in agentaddress. +- **iDRAC6/7 SNMP:** agents exist but hw MIB tables unpopulated on old fw; + IPMI SDR via iDRAC SSH (`racadm`, one command per exec, legacy syntax on + iDRAC6: `racadm config -g cfgOobSnmp -o ...`) is the data path. +- **jq in one-liner state checks:** use `.state` — not `.s` — a wrong key + silently returns null and looks like an entity outage (cost an hour tonight). +- **HA config flows are REST** (`POST /api/config/config_entries/flow`), + not websocket; websocket only monitors. ha-ws-call.py + REST flow are the + two levers for agent-driven HA setup. +- **mvdan/sh `source a b` silently ignores file b** — source env files + one per line.