Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@
## Live systems and safety

- Live ESPHome configuration is on the NAS at
`/volume1/docker/homeassistant/esphome/`; HA configuration is at
`/volume1/docker/homeassistant/homeassistant/`.
`/volume1/home-assistant/esphome/config/`; HA configuration is at
`/volume1/home-assistant/homeassistant/config/`.
- NAS access is read-only unless Florent explicitly authorizes a write, cache
purge, compile, upload, or flash.
- Validate exactly one canary before any fleet rollout. Never infer successful
Expand Down
6 changes: 3 additions & 3 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,9 @@ are in `docs/upstreaming-strategy.md` (`infra-3rr.26`); query GitHub or
Do not infer the host type from a `/volume1/` path — that convention is not a
vendor signature. Operational lessons (ACL/permission quirks, safe-write
playbooks) live in the KB corpus `/home/flow/claude_project/knowledge-base/bundle/`.
- ESPHome configs: `/volume1/docker/homeassistant/esphome/`
- HA configs: `/volume1/docker/homeassistant/homeassistant/`
- Plant label images: `/volume1/docker/homeassistant/esphome/plant_labels/`
- ESPHome configs: `/volume1/home-assistant/esphome/config/`
- HA configs: `/volume1/home-assistant/homeassistant/config/`
- Plant label images: `/volume1/home-assistant/esphome/config/plant_labels/`
- **Read-only by default** — write only on explicit user confirmation

## Device inventory
Expand Down
4 changes: 2 additions & 2 deletions docs/pull-ota-eval.md
Original file line number Diff line number Diff line change
Expand Up @@ -192,10 +192,10 @@ is legacy PlatformIO). Sketch of a post-build hook:
```bash
# On the NAS, run after each Device Builder build of a pilot device
DEV=<device>
BIN="/volume1/docker/homeassistant/esphome/.esphome/build/$DEV/build/firmware.ota.bin"
BIN="/volume1/home-assistant/esphome/config/.esphome/build/$DEV/build/firmware.ota.bin"
WEB=/volume1/web/smartplant
VER=$(yq -r '.esphome.project.version // .substitutions.project_version' \
/volume1/docker/homeassistant/esphome/$DEV.yaml)
/volume1/home-assistant/esphome/config/$DEV.yaml)
MD5=$(md5sum "$BIN" | awk '{print $1}')
cp "$BIN" "$WEB/firmware.ota.bin"
jq -n --arg v "$VER" --arg md5 "$MD5" \
Expand Down
2 changes: 1 addition & 1 deletion examples/multi-device/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -223,7 +223,7 @@ Standard fleet rollout after a merged package change:
cancels in-flight Device Builder jobs and disarms queued updates, so run it
before, never during, a batch. Before `reset`, confirm the pool still holds
only the pinned receiver (read-only, prints no key material):
`ssh ugreen "sudo python3 -c 'import json;d=json.load(open(\"/volume1/docker/homeassistant/esphome/.offloader_pairings.json\"));print(\"local_in_pool\",d[\"include_local_in_pool\"]);[print(p[\"pin_sha256\"],p[\"status\"],p[\"enabled\"],p[\"label\"]) for p in d[\"pairings\"]]'"`
`ssh ugreen "sudo python3 -c 'import json;d=json.load(open(\"/volume1/home-assistant/esphome/config/.offloader_pairings.json\"));print(\"local_in_pool\",d[\"include_local_in_pool\"]);[print(p[\"pin_sha256\"],p[\"status\"],p[\"enabled\"],p[\"label\"]) for p in d[\"pairings\"]]'"`
Run `$S --receiver-pin <pin> reset` for each additional approved peer.
2. `$S status` — confirm which devices show `expected != deployed`.
3. `$S update all` — waits up to 75 min for each device's hourly maintenance
Expand Down
4 changes: 2 additions & 2 deletions scripts/esphome_fleet_update.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ async def main():


def secret(name):
path = "/volume1/docker/homeassistant/esphome/secrets.yaml"
path = "/volume1/home-assistant/esphome/config/secrets.yaml"
with open(path, encoding="utf-8") as handle:
for line in handle:
key, separator, value = line.partition(":")
Expand All @@ -84,7 +84,7 @@ def secret(name):


def secret(name):
path = "/volume1/docker/homeassistant/esphome/secrets.yaml"
path = "/volume1/home-assistant/esphome/config/secrets.yaml"
with open(path, encoding="utf-8") as handle:
for line in handle:
key, separator, value = line.partition(":")
Expand Down
Loading