From 52d09a4b8dfc6eb6f33a3a616506ed468dc731af Mon Sep 17 00:00:00 2001 From: Donavan Fritz Date: Mon, 15 Jun 2026 22:51:08 -0500 Subject: [PATCH] docs(home-assistant): add HA reference for the lodge Covers access (WS/REST API, no SSH, no backups), the dual Nest integration (cloud Google Nest + local Matter), the 2026-06-15 Matter fabric loss and on-site recommission steps, the temp scripts (label-driven, serialized to dodge the Nest SDM 429), and the Lovelace dashboard layout. Registered in SKILL.md references. Co-Authored-By: Claude Opus 4.8 (1M context) --- SKILL.md | 7 +++ reference/home-assistant.md | 87 +++++++++++++++++++++++++++++++++++++ 2 files changed, 94 insertions(+) create mode 100644 reference/home-assistant.md diff --git a/SKILL.md b/SKILL.md index c8d6a80..5edf8c4 100644 --- a/SKILL.md +++ b/SKILL.md @@ -37,6 +37,13 @@ user-invocable: true keywords=["boat", "dock, "launch"] /> + + + + +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 user token — has core API + service calls, but NOT the +`/api/hassio/*` Supervisor proxy → 401). 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"}`. + + + +## Nest thermostats are integrated TWICE + +The 8 Nest thermostats appear via two independent paths: +- **Cloud (Google Nest)** — `nest` integration, entities `climate.*_google_nest` + (+ `climate.lodge_basement` = Basement Living Room) and per-zone + `sensor.*_temperature` / `sensor.*_humidity`. Reliable; cloud-dependent. +- **Matter (local)** — `matter` integration via the `core_matter_server` addon, + entities `climate.*_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. + + + +## Matter fabric loss (2026-06-15) + +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): +1. 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. +2. HA → Settings → Devices & Services → Matter → Add device → enter the code. + Wait ~1–2 min; node appears (bridged temp sensor comes with it). +3. Repeat per thermostat (one code at a time). Rename to match. +4. Delete the stale unavailable Matter devices afterward. +Then re-point dashboard climate tiles back to `climate.*_nest` if local control +is wanted (see dashboard note). + + + +## 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. +