Files
bf-infra/mcp/shelly
Christoph Emsenhuber 2135772e04 feat 🔌 TP17 GO: 16 Shellys VLAN1→VLAN30 (Anker-Verfahren) + eco-Policy; TP17.2/TP19 angelegt
- migrate.py: anker-sicherer Runner (AP-Anker vor sta-Write, deanchor, auth, table)
- 16 Shellys migriert (Pilot+2 Wellen), 22/26 auf VLAN30, VLAN1 shelly-frei
- eco-Policy RSSI-basiert (AN >= -80, AUS < -80), provisorisch bis TP3.3
- bf.csv: 22 Shelly-Zeilen .41→.30, Section→IOT
- TP17.2 (Geräte-PW, zurückgestellt/Kosmetik) + TP19 (cudy-Teardown + VLAN1-Retirement) angelegt
- Verlorene Küchen-Shelly via HA identifiziert (Plug S Gen3, e4:b0:63:e4:1a:b8, bogus-IP 10.95.10.206 auf elektrosmog.c) → Remote-Recovery-Plan in TP19

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-13 17:27:56 +02:00
..

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 — MCP-Server: discover / get / set_sta (WLAN→VLAN30, guarded) / set_auth (einheitliches Admin-PW SHELLY_DEVICE_PW, guarded, Digest-Auth-Fallback) / verify / reservation_plan. Go-Runbook: docs/tp17-shelly-go-runbook.md.

Rollout-Reihenfolge (User-Entscheid: Pilot→Rest, Reservierungen je MAC)

  1. ✅ VLAN30-DHCP-Reservierungen je MAC (liegen; s6-MAC 2026-07-11 gefixt).
  2. Pilot unkritischer Always-on (set_sta) → VLAN30-Verify → set_auth (Admin-PW) → HA-Credential.
  3. VLAN30-Reachability + HA/ioBroker-Wiederanbindung verifizieren (Entities bleiben unverändert).
  4. Rest in Batches; saisonale (weihnachten_*, Twinkly, Creality) beim nächsten Einstecken.
  5. cudy-Alt-WLAN abbauen; DNS/Inventar/docs/ip-plan.md nachziehen.

Status/Detail: 6/26 schon auf VLAN30, 16 morgen. Volle Runbook-Tabelle + Netz-Abgleich in docs/tp17-shelly-go-runbook.md.