Files
Donavan Fritz 52d09a4b8d 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) <noreply@anthropic.com>
2026-06-15 22:51:44 -05:00

88 lines
4.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Home Assistant
<overview>
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"}`.
</overview>
<thermostats>
## 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 15,7,8,9 (temp sensors are bridged
endpoint-101 sub-devices of their thermostat node).
`script.set_away_temperatures` (HVAC 5578 / in-floor 55) and
`script.set_occupied_temperatures` (HVAC 6876 / 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.
</thermostats>
<matter-outage>
## 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 ~12 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).
</matter-outage>
<dashboard>
## 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.
</dashboard>