Debugging
Neu (09.11.2026) – Parsefehler im Widget
Bei einer ungültigen SVGANIMATE-Formel zeigt das Widget bis zu drei Zeilen der Parser-Fehlermeldung in Rot in der Kachel an (Quelle: gSvg.cpp, paintFormula). Typische Ursache: fehlendes ; am Ende einer Anweisung. Bei ungültigem SVGEVENT erscheint keine solche Anzeige (Aussage Hartwig Weidacher, 09.11.2026).
Werkzeuge
| Mittel | Wirkung |
|---|---|
DEBUG(var1, var2, …); |
schreibt : var1=<wert>, var2='<text>' als Debugmeldung. Strings werden in '…' ausgegeben, Zahlen mit %g. |
$.SYS.DEBUG.<text> := 1; |
schreibt <text> ins Log, mit Präfix <Gerätename>[station.device]: |
<ALIAS>.Q, .EC, .EN, .L |
Qualität, Fehlerzähler, Fehlernummer und Datenlänge einer Funktion |
<ALIAS>.HTTP_CODE, .HTTP_DATA |
REST: Statuscode und Rohantwort |
<ALIAS>.MQTT_DATA, .MQTT_CONNECTION |
MQTT: letzte Nachricht und Verbindungsstatus |
<ALIAS>.URL / .LC |
zuletzt gesendete URL bzw. letztes Kommando |
DeviceLib-Debugger
Wird der Geräte-Debugger aktiviert, sendet der Controller die Debugmeldungen als JSON (controllerID, messages[] mit timestamp, level = DEBUG/INFO/WARNING/ERROR und message) an den DeviceLib-Debugger-Server. Wie der Debugger im System eingeschaltet wird, ist zu klären. Der Bezug zu den *GENERAL-Keys DEV_DEBUG und DEBUGPORT ist im Code nicht belegt.
Vorgehen
- Erst die Verbindung prüfen:
$.CONNECTSTATE, bei MQTT.MQTT_CONNECTION. - Dann die Rohdaten:
DEBUG(DATA.L, DATA.Q, DATA.EC);. - Danach die Umrechnung: einzelne Zwischenvariablen per
DEBUG();ausgeben. - Bei REST zusätzlich
DEBUG(R.HTTP_CODE, R.URL);.
Tip
Debugausgaben in schnell pollenden Funktionen erzeugen viel Log. Nach der Inbetriebnahme sollten sie entfernt oder per Merker begrenzt werden.