Inhalt dieser Seite
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
Technische Einschränkungen:
Die gleiche Variable darf nicht mit einem Ein- [u]und[/u] Ausgang verbunden sein. Will man einen Wert durchschleifen, so muss eine zusätzliche Variable verwendet werden und zB per Latch der Variablenwert durchgereicht werden.
Damit das Hinzufügen, Umbenennen oder Entfernen von Ein- und Ausgängen uneingeschränkt funktioniert, dürfen Variablennamen, die mit Ein oder Ausgängen verknüpft sind, nicht Teil voneinander sein. Die Bezeichnung des Eingangs ist dabei egal.
d.h. $Input1 und $Input2 ist ok, aber $Input und $Input2 ist unzulässig, da Input Teil von Input2 ist.
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).
0 Kommentare