Skip to content

Commit 5d504d9

Browse files
lxsaahclaude
andcommitted
docs(weather-mesh): record 042 OSS implementation status + mesh-mode usage
Plan 042 status now reflects the implemented OSS work packages (WP1, WP3's 043 doc, WP4, WP5, WP6 and the verification follow-ups); the demo README documents the opt-in public-mesh mode (MESH_SLOTS/MQTT_URL/AIMX_BIND, the weather-station join loop, gamma's MESH_CONFIG build embedding) alongside the unchanged local demo. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 parent 6524f17 commit 5d504d9

2 files changed

Lines changed: 29 additions & 1 deletion

File tree

docs/plan/042-public-weather-mesh-flagship.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
**Design:** [042 — Public weather mesh flagship](../design/042-public-weather-mesh-flagship.md)
44

5-
**Status:** 📝 Planned
5+
**Status:** 🚧 OSS work packages implemented 2026-07-09 (WP1, WP3's 043 doc, WP4, WP5, WP6 — plus the mqtts:// TLS-transport fix in the Tokio MQTT client the WP1 premise relied on, a read-only AimX TCP endpoint in the hub's mesh mode so the §7 `aimdb record list` loop has a server, and CLI observability metadata so signal gauges round-trip). External WPs (WP2 broker, WP3 provisioning service, WP8 website) and WP7 (Embassy TLS) remain open.
66

77
This plan translates the design's sequencing (§10) into concrete work packages
88
(WPs). Each WP is marked by where the work happens:

examples/weather-mesh-demo/README.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ A distributed weather monitoring mesh demonstrating AimDB's multi-tier architect
2727
| `weather-station-alpha` | Tokio (Linux Edge) | Real weather data (Open-Meteo API) |
2828
| `weather-station-beta` | Tokio (Linux Edge) | Synthetic sensor data |
2929
| `weather-station-gamma` | Embassy (STM32H563ZITx) | Portable/remote MCU sensor (hardware) |
30+
| `weather-station` | Tokio (anywhere) | Public-mesh station, driven by a `station.toml` profile |
3031
| `weather-mesh-common` | no_std compatible | Shared contracts and configuration |
3132
| `mqtt` | Eclipse Mosquitto | Message bus for all nodes |
3233

@@ -110,6 +111,33 @@ cargo build --release
110111
probe-rs run --chip STM32H563ZITx target/thumbv8m.main-none-eabihf/release/weather-station-gamma
111112
```
112113

114+
## Public mesh mode (design 042)
115+
116+
The same crates also run the hosted public mesh anyone can join
117+
([design 042](../../docs/design/042-public-weather-mesh-flagship.md)). The
118+
local demo above is unchanged; mesh mode is opt-in per environment variable:
119+
120+
- **Hub**`MESH_SLOTS=64 cargo run -p weather-hub` replaces the three-enum
121+
configuration with a bounded pool of string-keyed slot records
122+
(`station.{slot}.temperature/humidity/dew_point` from
123+
`station/{slot}/…` topics; dew point derived at the hub). `MQTT_URL` takes
124+
a full connector URL (e.g. `mqtts://hub-sub:…@…:8883` for EMQX Cloud), and
125+
a read-only AimX endpoint is served at `AIMX_BIND`
126+
(default `127.0.0.1:7433`) for `aimdb record list/get/watch`.
127+
- **Station** — the three-command join loop
128+
([format doc 043](../../docs/design/043-join-endpoint-v1.md)):
129+
130+
```bash
131+
aimdb join https://mesh.aimdb.dev # writes station.toml
132+
cargo run -p weather-station -- --config station.toml
133+
aimdb record list --connect tcp://aimdb.dev:7433
134+
```
135+
136+
- **MCU station** — same profile, consumed at build time:
137+
`MESH_CONFIG=../station.toml cargo run --release` inside
138+
`weather-station-gamma` (plain-TCP brokers only until the Embassy MQTT
139+
client speaks TLS — design 042 §8.1).
140+
113141
## Inspecting with VS Code Copilot
114142

115143
The weather mesh exposes an AimX API socket that Copilot can read through MCP (Model Context Protocol). Simply ask Copilot in natural language:

0 commit comments

Comments
 (0)