feat 🔌 shelly-mcp + TP17 Shelly-Migration VLAN1→VLAN30; TP14.3 dormante Stacks bereitgestellt
TP17 (neu): shelly-mcp (eigenbau, FastMCP StreamableHTTP :3030 + Status/Health-Seite, in .claude/launch.json) mit Tools discover/get/set_sta[guarded]/verify/reservation_plan. Recon: 16 Shellys live, alle Gen3/4 (RPC WiFi.SetConfig, auth=off). Inventar-Fix: s6/kueche_kuehlschrank MAC 0c:72… → real d0:cf:13:d8:18:fc. TP14.3: 7 dormante Stacks als .new.yml bereitgestellt (nur lokal, gitignored) — SSoT in docs/teilprojekte.md nachgezogen. mcp/INVENTORY.md: shelly-mcp-Zeile + Richtungsentscheid „MCPs zentral, nicht Client; MikroMCP+shelly-mcp sind pragmatische Interims, später zusammenziehen". .gitignore: __pycache__/*.pyc. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
35
mcp/shelly/README.md
Normal file
35
mcp/shelly/README.md
Normal file
@@ -0,0 +1,35 @@
|
||||
# shelly-mcp — Shelly-Verwaltung & VLAN1→VLAN30-Migration (TP17)
|
||||
|
||||
Tooling, um die ~26 Shellys von der alten cudy-WLAN/VLAN1 (`10.40.41.2xx`) auf die
|
||||
IOT-SSID **`dirtyvader-iot`** (VLAN30, `dhcp-v30`/pool-v30) umzuklemmen und danach
|
||||
dauerhaft zu verwalten. Steuerung/Status: `docs/teilprojekte.md` → **TP17**.
|
||||
|
||||
## Ist-Stand (Recon 2026-07-11)
|
||||
- **16 live**, alle **Gen3/Gen4** → uniforme RPC-API (`WiFi.SetConfig`), `auth=off`.
|
||||
Kein Gen1-Sonderfall.
|
||||
- **10 nicht erreichbar:** `weihnachten_*` (s1/s2/s3, saisonal ausgesteckt) +
|
||||
s12/s14/s16/s18/s22/s23 (aus / DHCP-drift). s24 hat keine MAC im Inventar.
|
||||
- Recon-Snapshot: `python3 discover.py 10.40.41.180-250 --json`.
|
||||
|
||||
## Migrationsmechanismus (per Gerät)
|
||||
Gen2+ RPC (HTTP POST `http://<ip>/rpc`):
|
||||
```
|
||||
WiFi.SetConfig {"config":{"sta":{"ssid":"dirtyvader-iot","pass":"<PSK>","enable":true}}}
|
||||
```
|
||||
→ `Shelly.Reboot` (oder greift nach kurzer Zeit selbst) → Gerät verschwindet aus VLAN1,
|
||||
kommt per `dhcp-v30` auf `10.40.30.x` (mit MAC-Reservierung = stabile IP).
|
||||
|
||||
⚠️ **Falsches PSK → Gerät geht in AP-Mode (SSID `Shelly*`) → physischer Reset nötig.**
|
||||
Immer erst `WiFi.GetStatus`/`Sys.GetStatus` gegenchecken, Pilot vor Batch.
|
||||
|
||||
## Dateien
|
||||
- `discover.py` — read-only Sweep, identifiziert Shellys per `/shelly`, matcht MAC gegen
|
||||
`inventory/bf.csv`, meldet DHCP-Drift und Inventar-Lücken. Basis des MCP-`discover`-Tools.
|
||||
- `server.py` — (in Arbeit) MCP-Server: `discover` / `get` / `set_sta` (Migration, guarded) / `verify`.
|
||||
|
||||
## Rollout-Reihenfolge (User-Entscheid: Pilot→Rest, Reservierungen je MAC)
|
||||
1. VLAN30-DHCP-Reservierungen je MAC anlegen (MikroMCP `manage_dhcp_lease`).
|
||||
2. **Pilot** 2–3 unkritische Always-on (z.B. `bad_luefter` .233 / `technik_pve` .222) umklemmen.
|
||||
3. VLAN30-Reachability + HA/ioBroker-Wiederanbindung verifizieren.
|
||||
4. Rest in Batches; `weihnachten_*` beim nächsten Einstecken.
|
||||
5. cudy-Alt-WLAN abbauen; DNS/Inventar/`docs/ip-plan.md` nachziehen.
|
||||
Reference in New Issue
Block a user