Struktur diese Kapitels
Seitenhierarchie | ||
---|---|---|
|
Inhalt dieser Seite
Inhalt |
---|
Häufige Fehlerquellen
...
Nachfolgend sind typische Fehler aufgezeigt, entweder ein Schließen des Logikeditors verhindern oder beim Speichern der Logik auftreten.
Die Fehleranzeigen des Logikeditors werden laufend verbessert. Sollte keine (oder keine eindeutige) Fehlermeldung erscheinen, empfiehlt es sich einzelne Abschnitte auszukommentieren und erneut zu speichern.
Formale Fehler:
Die verwendeten Variablennamen sind nicht identisch, resp. nicht definiert (Fehlermeldung:
c[k.name] is undefined
)Level (Variable) nicht definiert - der LE sagt hier nicht welche Deklaration fehlt
[---Der Default-Wert--] im LEVEL-Array stimmt nicht mit dem Datentyp überein (bspw.
false
bei einer Variablen vom Typ integer.Bool mit 0 initialisiert statt "false", also ["$Open","bool",0] statt ["$Open","bool",false] (sehr böse, da es nur beim Speichern einen Fehler gibt)
Komma am Ende eines Blocks zuviel
"$" vergessen bei der Verwendung/Deklaration, also ["Open","bool",false] statt ["$Open","bool",false] (ebenfalls ganz böse, da Du das tausend mal übersiehst)
Eckige Klammer zuviel/zuwenig
Ab hier Steinbruch (, d.h. blosse Grundlage für die weitere redaktionelle Bearbeitung)
Variablen, deren Inhalt man testen möchte, an zusätzliche Ausgänge ausgeben.
einem Bitte die technischen Einschränkungen in Variablennamen berücksichtigen: Technische Einschränkungen
Division durch einen Wert 0.
Fehlersuche
Bei lauffähigen Logiken, die nicht das gewünschte Verhalten zeigen ist ein systematisches Vorgehen unabdingbar.
Ein/Ausgänge abkoppeln oder beim Erstellen mit dem Verknüpfen abwarten.
Im Dokmode Eingänge durchtesten und das Ergebnis an den Ausgängen prüfen.
Interne Variablen, deren Inhalt geprüft werden sollen, können durch zusätzliche Ausgänge ausgeben werden.
Im Dokmode kann mittels Grafana die Logik geprüft werden. Dies ist insbesondere bei einer hohen Anzahl an internen Variablen oder Verwendung von Teitfunktionen sinnvoll.
Einem Logikausgang als weiteres Objekt eine Zeitreihe hinzufügen, um die Ergebnisse der Logik langfristig zu betrachten (bei KNX-Objekten auch Busmonitor des TWS).