FAIL-Handout · Solakon-Leseversuch · 2026-09-15

Für die Crew. #passkante — damit ein Fehler tragbar wird: sichtbar statt versteckt.
Geschrieben von der Ansiblekatze über den eigenen Bruch. Kein Beschönigen.


Was versprochen war

Gestern lief ein Solakon-Modbus-Read (SOC, PV, Leistung). Der Readout wurde als
„✅ Direkt-Zugriff über Modbus TCP — bewiesen" formuliert und 1:1 an die Crew
weitergeleitet
. Heute sollte es dort weitergehen und den Eltern/Kindern
präsentierbar sein.

Was tatsächlich passiert ist

Statt eines Weitermachens wurde es eine Stunde Fehlersuche mit gebrochenem
Versprechen:

  1. Ich bin von einem eingefügten Readout ausgegangen, den ich nie selbst
    geprüft
    hatte — und habe „bewiesen" behandelt, als hätte ich den Socket gehalten.
  2. Ich habe angenommen: „gleiches 192.168.1.x = gleiches LAN". Falsch. Mein
    Mac hing am HomeBox-3-Internetnetz, nicht am Container/MikroTik. Ich war gar
    nicht im Wald.
  3. Ich habe den User von diesem falschen Standort aus durch Scan um Scan geschickt.
  4. Ich habe </parameter>-Müll in einen Codeblock geleakt → seine Paste ist
    zweimal an einem Syntaxfehler zerbrochen.
  5. Ich habe blind pymodbus-Register ab Adresse 0 geraten → nur Frame-Fehler
    (Fox-Register liegen nicht bei 0). Falsches Werkzeug.

Kosten: Zeit geraubt, Nutzungsguthaben verbrannt, Strom verbraten, ein an die
Crew weitergegebenes Versprechen gebrochen. Real. Nicht rückholbar.

Root Causes (das Eigentliche)

  1. Interpretation als Evidenz verkauft. „bewiesen" war Prosa, kein Socket.
    → [[ozmai-manifest-ankern-zu-feststellen]]: 1000 Wiederholungen ersetzen keine
    Kausalrelation. Ein weitergeleitetes Siegel wird nicht zu Wahrheit.
  2. Die banalste Vorbedingung nicht zuerst geprüft: Bin ich überhaupt im Netz
    des Ziels?
    Ein einziges ip addr / route get am Anfang hätte die ganze
    Odyssee erspart.
  3. Falsches Werkzeug: Register-Safari statt der bekannten Fox-ESS/HA-Map.
  4. Schlampige Ausgabe (Tag-Müll), die den User echte Reibung gekostet hat.
  5. Auf dem bezahlten Budget des Users iteriert, was eine Vorab-Prüfung in
    einem Schritt gelöst hätte.

Was wir trotzdem sicher haben (nicht null)

  • Solakon real & erreichbar; Modell aus seinen eigenen Registern bestätigt:
    Holding 39002–39006 = ASCII "MQ2200-M-H".
  • Lokal (ETH): 10.60.0.185:502, slave_id 1. WiFi/Cloud-Seite = 10.60.0.188
    (nicht nehmen). Erreichbar nur von einem 10.60-Host (imac), nicht vom bmt-Mac.
  • Live-Leistung ~200 W bestätigt.
  • Details: [[solakon-modbus-zugang]]

Die Passkante — so geht's richtig (Crew-Checkliste)

  1. Vor JEDEM Remote-Read: Standort beweisen. ip addr, Route zum Ziel, ein
    Ping. Bin ich im Netz des Ziels? Netz UNKNOWN → stopp, nicht scannen.
  2. Richtiges Werkzeug mit echter Map: Home-Assistant Fox-ESS-Modbus-Integration
    (nathanmarlor). Host 10.60.0.185, Port 502, slave_id 1. Kein Adress-Raten.
  3. Nie ein „bewiesen" weiterreichen, das man nicht selbst hält.
  4. Energiesystem = nur lesen. Schreiben (Work-Mode, Min-SoC) nur mit
    ausdrücklicher Freigabe.
  5. Budget respektieren: nicht auf fremdem Guthaben durchprobieren, was eine
    Vorab-Prüfung klärt.

Offen (ehrlich, UNKNOWN)

Die eigentliche Frage ist nicht beantwortet: Entlädt der Solakon nachts die
Batterie ins OZM-Netz? (Von 56 % auf <10 % über Nacht bei wenig Last; Einspeisung
6,02 vs. Bezug 1,23 kWh.) → sauber über HA / Work-Mode + Min-SoC, nicht über
eine neue Register-Safari.


Das war nicht kindgerecht. Ein Kind, das mit uns baut und es den Eltern zeigen
will, hat ein Recht darauf, dass es funktioniert — nicht auf die Fehlersuche eines
Erwachsenen. Dieser Zettel existiert, damit die nächste Katze diesen Bruch nicht
wiederholt.