Fusion/Diagnose und Fehlersuche
Das /log lesen
Das Gerät führt ein kleines Protokoll im Speicher (die letzten 40 Einträge, nach einem Neustart leer). Es lässt sich im Browser öffnen:
- im Normalbetrieb:
http://wettercube-fusion.local/log(auch über „Log ansehen“ in der Karte Firmware-Update der Web-Oberfläche) - im Einrichtungsmodus (Handy am Netz „WetterCube-Fusion-Setup“):
http://192.168.4.1/log
| Zeile im Kopf | Bedeutung |
|---|---|
| Version | installierte Firmware |
| Freier Heap | freier interner RAM: aktuell, tiefster Stand seit dem Start und größter zusammenhängender Block. Für HTTPS werden etwa 40–50 KB am Stück gebraucht |
| PSRAM | freier externer RAM (von 8 MB), tiefster Stand, größter freier Block |
| Uptime | Minuten seit dem Start |
| LVGL-Speicher | freier Speicher im LVGL-Pool (192 KB, liegt im PSRAM) und größter freier Block |
| Letzter Neustart | Strom angeschlossen, Software-Neustart (z. B. nach Update), Absturz, Watchdog oder Brownout |
| WLAN beim Start | Dauer und Signalstärke oder der Fehlergrund (z. B. „Netzwerk nicht gefunden“, „Passwort?“) |
| WLAN jetzt | Netzwerk, Signalstärke und IP-Adresse |
| Standort | Stadt mit Koordinaten (0,0000 heißt: noch nicht gefunden) |
| Letzter erfolgreicher Abruf | je Quelle (Wetter, DWD-Pollen, Pollen/Luft, DWD-Warnungen, Karte, Biowetter), wie lange er her ist |
| Einstellungen | ob WLAN-Daten gespeichert sind, Ort, belegte NVS-Einträge |
| Letzte /api/ampel-Anfrage | wie lange her sich die WetterAmpel gemeldet hat |
| Update | installierte und neueste bekannte Version, letzte Prüfung |
Darunter stehen die letzten 40 Ereignisse, neueste zuerst, mit Uhrzeit (oder Sekunden seit dem Start, solange die Uhr nicht synchronisiert ist). Erfolgreiche Abrufe werden nicht einzeln protokolliert, nur Fehler und Besonderheiten:
| Eintrag | Bedeutung |
|---|---|
[Boot] v…, Neustart-Grund: … |
Start mit Grund des Neustarts |
[Karte] Dekodiere … / lodepng malloc fehlgeschlagen: … Bytes / PNG-Dekodierung fehlgeschlagen (83) |
Warnkarte: Größe und freier PSRAM vor dem Dekodieren; bei Fehler 83 steht die Größe des Blocks, der nicht mehr am Stück frei war (nach 2 Minuten erneuter Versuch) |
[OTA] Neue Firmware, wird nach gesundem Start als gueltig markiert / Start gesund: Firmware v… als gueltig markiert |
Rollback-Schutz: neue Firmware läuft auf Probe, nach 60 s gilt sie als gültig (siehe Wiederherstellung) |
[OTA] Rollback: Version … ist nicht gestartet, die vorherige laeuft |
das letzte Update ist nicht gestartet, die vorherige Version läuft wieder |
Firmware-Slot: app0 (gueltig), andere Version im Slot app1: … / Notfall-App: Version … installiert |
Kopf des Logs: laufender Slot, Zustand, Version im anderen Slot und Zustand der Notfall-App; Notfall-Kopie der Firmware auf der Karte: … zeigt die „letzte gute Version“ auf der Karte
|
[Notfall] Wechsel in die Wiederherstellung (Grund …) / [Notfall] … Abstürze in Folge: Hinweis … |
die Wiederherstellung wurde gestartet bzw. der Absturz-Hinweis gezeigt |
[Karte] erkannt: bereit, … GB frei / nicht erkannt |
Speicherkarte gefunden bzw. nicht vorhanden (optional, siehe Speicherkarte); die Zeile „Speicherkarte“ im Kopf des Logs zeigt den Status |
[Boot] Zuletzt aktiv vor dem Neustart: … |
nur nach einem Absturz (Panic, Watchdog, Brownout): die letzte Tätigkeit, z. B. „Karte: PNG dekodieren“ oder „Screen: Temperaturverlauf“; steht auch als Zeile „Zuletzt aktiv vor dem Neustart“ im Kopf des Logs |
[WLAN] verbunden nach 1.9 s, Signal -63 dBm |
WLAN steht |
[WLAN] Versuch 1 fehlgeschlagen: … / Verbindung beim Start fehlgeschlagen … |
WLAN nicht erreicht, mit Grund; danach öffnet sich das Portal und versucht es regelmäßig erneut |
[WLAN] Netzwerk gewechselt zu '…', Neustart |
WLAN-Wechsel über die Web-Oberfläche |
[WLAN] getrennt, verbinde neu |
die Verbindung riss im Betrieb ab |
[Start] mDNS: …, [WebUI] http://….local |
Name und Web-Oberfläche sind erreichbar; bei Fehlschlag steht „mDNS konnte nicht gestartet werden“ (dann nur per IP) |
[Portal] … |
Einrichtungsportal: Start, verbundene Geräte, Anfragen |
[Zeit] NTP-Synchronisation fehlgeschlagen |
die Uhrzeit konnte nicht geholt werden |
[Geo] Suche 'Berlin' / Gefunden: 52.5200, 13.4050 |
Stadt wurde gefunden |
[Geo] Fehlgeschlagen fuer '…': kein Treffer |
Stadtname nicht gefunden (Umlaute? Tippfehler?) |
[Geo] Fehlgeschlagen fuer '…': HTTP -1 oder JSON-Fehler |
keine Verbindung bzw. Antwort nicht lesbar |
[Config] gespeichert / Standort geaendert: … |
Änderungen über die Web-Oberfläche |
[Sicherung] … Einstellungen wiederhergestellt, Neustart |
eine Sicherung wurde eingespielt |
[Wetter] HTTP …, TLS …, SRAM frei … / JSON-Parse fehlgeschlagen |
Wetter-Abruf fehlgeschlagen, mit TLS-Fehler und Speicherstand |
[Pollen] …, [Luft] …, [Bio] …, [DWD-Warn] …, [Karte] … |
Abruffehler der jeweiligen Quelle mit Grund; [Karte] 1000x… in … ms zeigt eine erfolgreich geladene Karte
|
[Update] Pruefung: installiert …, verfuegbar … |
Versionsprüfung (siehe Updates) |
[OTA] Lade …, … Bytes geschrieben, Neustart |
Update läuft bzw. ist fertig |
[OTA] Fehler: … |
Update fehlgeschlagen |
Absturz-Aufzeichnung
Stürzt das Gerät ab (Panic), merkt es sich Ursache, Aufgabe und Rücksprung-Adressen und schreibt sie beim nächsten Start ins /log und auf die Speicherkarte, zum Beispiel:
[Boot] v0.9.4, Neustart-Grund: ABSTURZ (Panic) [Boot] Zuletzt aktiv vor dem Neustart: UI: Temperaturverlauf [Absturz] LoadProhibited, Aufgabe 'main', Adresse 0x4200c9b5, Ausnahme 28 [Absturz] Rücksprünge: 0x4200c9b5 0x420364ae 0x420c9d1c ...
Wer einen Absturz melden will, kopiert die Zeilen mit [Boot] und [Absturz] in das Issue. Mit den Adressen lässt sich der Absturz bis auf die Zeile im Programm zurückverfolgen. Die Aufzeichnung gibt es ab Version 0.9.4 (bei Abstürzen davor steht nur „Zuletzt aktiv vor dem Neustart“). Zum Prüfen der Aufzeichnung löst POST /api/absturztest?ja=1 absichtlich einen Absturz aus.
Serieller Monitor
Alle Log-Meldungen erscheinen zusätzlich im Seriellen Monitor (115200 Baud, Ausgabe über den USB-UART des Boards). Nach dem Öffnen das Board einmal neu starten, damit die Meldungen vom Start an sichtbar sind.
Typische Probleme
| Problem | Ursache und Abhilfe |
|---|---|
| Gerät zeigt den Einrichtungsmodus, obwohl das WLAN eingerichtet war | Die Zugangsdaten sind noch gespeichert. Router erreichbar? 2,4-GHz-WLAN aktiv? Das Gerät versucht es von selbst erneut. Im /log steht der Grund unter „WLAN beim Start“
|
| Aussetzer, Neustarts | Im /log „Letzter Neustart: BROWNOUT“? Dann ein Netzteil mit mindestens 5 V / 2 A und ein kurzes Kabel verwenden
|
| Warnkarte bleibt leer oder veraltet | Im /log nach [Karte] suchen: „Download fehlgeschlagen“ heißt, der DWD-Server war nicht erreichbar (neuer Versuch nach 2 Minuten). „PNG-Dekodierung fehlgeschlagen (83)“ bedeutet zu wenig Speicher am Stück: bis v0.3.9 im LVGL-Pool, bis v0.3.15 bei jeder Aktualisierung nach dem Start, weil die alte Karte noch im PSRAM lag. Beides ist behoben (v0.3.10, v0.3.16)
|
| Wetterwerte stehen still | /log ansehen: Abruffehler stehen dort mit Speicherstand
|
| Update-Symbol erscheint nicht | Es erscheint nur, wenn eine neuere Version veröffentlicht ist. In der Web-Oberfläche erzwingt „Auf Updates prüfen“ eine sofortige Prüfung |
| Update bricht mit „download error“ ab | GitHub Pages liefert die neue Firmware manchmal erst nach einigen Minuten. Kurz warten und wiederholen |
| Stadt wird nicht gefunden | Umlaute weglassen (Munchen, Koln), Namen prüfen. Im Log steht bei [Geo] der Grund
|
| Uhrzeit falsch / Nachtmodus greift nicht | Die Zeit kommt per NTP und braucht Internet. Im /log „WLAN jetzt“ und [Zeit] prüfen
|
| Ampel zeigt dauerhaft dieselbe Farbe | „Letzte /api/ampel-Anfrage“ im /log prüfen: deutlich über 30 s heißt, die Ampel meldet sich nicht (WLAN oder Gerät prüfen)
|