From df0ae875dedf1bfea90189616a942ca38c09c029 Mon Sep 17 00:00:00 2001 From: Mortdecai Date: Thu, 22 Oct 2026 22:57:45 -0400 Subject: [PATCH] =?UTF-8?q?docs:=20HA=20VM=20lost=20IPv4=20=E2=80=94=20roo?= =?UTF-8?q?t=20cause=20of=20months-long=20TV=20outage;=20pinned=20.146?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 (1M context) --- .claude/handoffs/2026-10-22-ha-lost-ipv4.md | 31 +++++++++++++++++++++ DECISIONS.md | 2 ++ 2 files changed, 33 insertions(+) create mode 100644 .claude/handoffs/2026-10-22-ha-lost-ipv4.md diff --git a/.claude/handoffs/2026-10-22-ha-lost-ipv4.md b/.claude/handoffs/2026-10-22-ha-lost-ipv4.md new file mode 100644 index 0000000..13e45e3 --- /dev/null +++ b/.claude/handoffs/2026-10-22-ha-lost-ipv4.md @@ -0,0 +1,31 @@ +# Handoff: "hasn't worked in months" = HA VM had no IPv4 + +## Root cause +HA VM 706 (pve173) was running but had **no IPv4 on enp0s18** — only IPv6 (ULA +fd70:582a:b527:d4c8:fdaf:a8f9:f05a:40b6). DHCP method `auto`, empty address list. +Uptime 57d at discovery → lease lost around late Aug 2026; why it never renewed is +**unknown**. Effect: HA couldn't reach Mosquitto (.154), Caddy couldn't reach .146, +Google Home → HA dead. The lgtv bridge on steel141 was healthy the whole time +(polling correctly, connected to broker) — it just never received a command. + +## Fix (2026-10-22) +1. Omada reservation: `network-tools/omada_reserve_ip.py reserve BC:24:11:3F:DC:7B 192.168.0.146` +2. Re-ran DHCP from HA (`ha network update enp0s18 --ipv4-method auto`) → got .43 + (router kept the existing lease; one disable/auto cycle didn't change it). +3. Set HAOS static: `ha network update enp0s18 --ipv4-method static --ipv4-address + 192.168.0.146/24 --ipv4-gateway 192.168.0.1 --ipv4-nameserver 192.168.0.1`. +4. `ha core restart`. + +## Verified +- .146 pings; hass.sethpc.xyz → 200. +- `switch.big_tv_lg_tv` = off (matches TV) → MQTT path is live. + +## Not verified / open +- **Seth to test**: "Hey Google, turn on the TV" (not done by me at 23:00). +- Projector `media_player.mitsubishi_projector` unavailable — projector itself is + off the network (PJLink :4352 closed, inactive in Omada). Probably powered off at + the wall; separate from this outage. +- `media_player.lg_webos_tv_cd04` unavailable is expected while the TV is off. +- Stale .43 lease will just expire. +- Recovery path if HA goes dark again: reach it over IPv6 ULA above + (`ssh seth@`, `bash -lc "ha network info"`). diff --git a/DECISIONS.md b/DECISIONS.md index 2b08db2..e3bc2fa 100644 --- a/DECISIONS.md +++ b/DECISIONS.md @@ -47,6 +47,8 @@ Format: `YYYY-MM-DD: — ` *not* part of smart-home linking — don't touch it (shared project runs WP Mail SMTP). Full detail + security-cleanup list in `.claude/handoffs/2026-06-06-*.md`. +- 2026-10-22: HA VM 706 pinned to 192.168.0.146 twice over — Omada DHCP reservation (MAC BC:24:11:3F:DC:7B) AND HAOS static IPv4 (`ha network update enp0s18 --ipv4-method static`) — HA had silently lost its IPv4 lease (~Aug 2026; IPv6-only, uptime 57d), cutting it off from MQTT/Caddy/Google: the "TV hasn't worked in months" outage. Static removes the DHCP dependency; reservation keeps the router from handing .146 to anyone else. + ## Deferred / Rejected - **DHCP reservation for the TV (static IP):** not done — Pi-hole doesn't run DHCP (router does), so it's Seth's action on the router. The cached-IP probe