Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
7.0 KiB
Home Assistant
HA OS at `home.thelonglakelodge.com`, proxied via fritzlab sjc001 remote-proxy to `172.24.24.50:8123` (also directly reachable on the lab network). Supervisor Observer on `:4357` (read-only health, no auth). API token in `~/.env` as `HA_TOKEN` (long-lived admin token — core API + service calls + Supervisor: WS `{"type":"supervisor/api","endpoint":...}` for JSON endpoints, REST `/api/hassio/addons//logs` for text logs; `/api/error_log` is 404 — use WS `system_log/list`). No SSH (`:22` closed, no terminal addon). No automatic backups configured (`backup/info` → 0 backups).Local control via WebSocket: wss://home.thelonglakelodge.com/api/websocket,
auth with {"type":"auth","access_token":HA_TOKEN}. Useful WS cmds:
config_entries/get, config/device_registry/list, config/entity_registry/list,
matter/node_diagnostics{device_id}, lovelace/config{url_path:null} /
lovelace/config/save. Addon control via REST service:
POST /api/services/hassio/addon_restart {"addon":"core_matter_server"}.
The 8 Nest thermostats appear via two independent paths:
- Cloud (Google Nest) —
nestintegration, entitiesclimate.*_google_nest(+climate.lodge_basement= Basement Living Room) and per-zonesensor.*_temperature/sensor.*_humidity. Reliable; cloud-dependent. - Matter (local) —
matterintegration via thecore_matter_serveraddon, entitiesclimate.*_nest. Local control, but see incident below.
8 zones: Office, Kitchen, Bunkhouse Kitchen (forced-air "HVAC"); Eat-in Kitchen,
Primary Bathroom, Basement Living Room, Basement Bedroom, Tub Room (in-floor heat).
Matter fabric id 1E5211CA4C7B5275, node ids 1–5,7,8,9 (temp sensors are bridged
endpoint-101 sub-devices of their thermostat node).
script.set_away_temperatures (HVAC 55–78 / in-floor 55) and
script.set_occupied_temperatures (HVAC 68–76 / in-floor 67) set all zones,
targeting by label: hvac (3 forced-air) and in_floor_heat (5 in-floor),
both applied to the cloud *_google_nest devices (resolved in-script via
label_devices(..) | map('device_entities') | ... | select('match','climate')
since the labels are on devices, not entities). Commands are serialized one
zone at a time with an 8 s delay — firing all 8 at once trips the Google Nest
SDM per-user ExecuteDeviceCommand rate limit (429 RESOURCE_EXHAUSTED). (Matter copies carry parallel
matter_hvac / matter_in_floor_heat labels — used by the scripts before the
2026-06-15 repoint to cloud.) google_nest labels all 8 cloud devices.
At 2026-06-15 13:53 UTC an HA Core/Supervisor restart (Supervisor → 2026.06.1)
left the core_matter_server addon (v8.5.0) with an empty fabric — all 11
Matter devices report node_not_found, all 59 climate.*_nest etc. entities
unavailable. Integration reconnects fine (config entry loaded); the server
simply has zero nodes. Addon restart + config-entry reload do NOT restore them
(storage lost, not transient), and there is no backup to restore from.
Cloud Nest is unaffected → thermostat control intact via *_google_nest.
Recovery = re-commission each thermostat on-site (non-destructive, no factory reset needed — Nest supports Matter multi-admin):
- On lodge WiFi, Google Home app (lodge account) → tap thermostat → Settings → "Linked Matter apps & services" → "Link apps & services" → generate a Matter setup code (11-digit / QR). Code is single-use, ~5 min TTL.
- HA → Settings → Devices & Services → Matter → Add device → enter the code. Wait ~1–2 min; node appears (bridged temp sensor comes with it).
- Repeat per thermostat (one code at a time). Rename to match.
- Delete the stale unavailable Matter devices afterward.
Then re-point dashboard climate tiles back to
climate.*_nestif local control is wanted (see dashboard note).
Addon core_matter_server 9.0.4 = matter.js server (schema 11). The 9.0.0
migration from the Python server lost the fabric — new fabric_id 2; the old
fabric 1E5211CA4C7B5275 is gone. All 8 Nest thermostats need re-commissioning
onto the new fabric. DONE: Lodge Kitchen (node 16, climate.lodge_kitchen_nest,
device labeled matter_nest+matter_hvac, bridged temp sensor "Kitchen").
REMAINING (blocked until someone is on the lodge network to generate codes):
Office, Primary Bathroom, Bunkhouse Kitchen, Eat-in Kitchen, Basement Bedroom,
Tub Room, Basement Living Room. All stale old-fabric devices
deleted from the registry.
Procedure (requires phone ON the lodge network — Google Home refuses to generate a Matter code off-network, verified 2026-07-05; commissioning itself is then drivable remotely via WS):
- Google Home app (lodge account) → thermostat → Settings → Linked Matter apps & services → Link apps & services → 11-digit code (single-use, ~5 min).
- WS
{"type":"matter/commission","code":"<code>"}(or HA UI Add device). - Rename device to " Nest", label
matter_nest+matter_hvac(Office, Kitchen, Bunkhouse Kitchen) ormatter_in_floor_heat(the 5 in-floor zones), rename climate entity toclimate.<zone>_nest.
GOTCHA — "Address unreachable" / commission timeout: the matter.js server's
sockets can wedge when the addon starts at host boot (observed: fe80 dial to
the Nest unreachable for hours, 1 of 1 attempt(s) failed, 1 discovered).
FIX: restart the Matter Server addon, then retry — same address connects fine.
Restart the addon BEFORE a commissioning session if the host rebooted since
the addon last restarted. Network is NOT the issue (Nests + HA share the flat
vino 172.24.24.0/24; vino has no IPv6 RA so everything is fe80 + IPv4).
Backups: first-ever backup taken 2026-07-05 ("pre-matter-recommission", hassio.local, unprotected). Automatic backups still NOT configured — set up Settings → System → Backups automatic schedule (the June fabric loss was unrecoverable because there were zero backups).
## Main Lovelace (`lovelace` / "Overview", storage mode)Views: main (single grid card, columns:1, headed sections: locks/lights,
Helpful Scripts, Water Sensors, then climate as three 2-col thermostat-card
grids — Lodge HVAC (office, kitchen), In-Floor Heat (5 in-floor zones),
Bunkhouse (bunkhouse kitchen)),
Environmentals (history page), and Lock Management. Edit via
lovelace/config / lovelace/config/save (WS).
HVAC climate tiles point at the cloud *_google_nest entities (repointed
off the dead Matter *_nest during the 2026-06-15 outage). The Environmentals
page is three per-category vertical-stacks (Lodge HVAC / In-Floor Heat /
Bunkhouse), each with Temperature, Humidity, and Heating/Cooling history-graphs
(72h) scoped to that category's entities.
If Matter is re-commissioned and local control is preferred, repoint these back.