Vorgehensweise bei der Erstellung von Custom Logiken
Für die Erstellung von Custom Logiken gibt es keine vorgegebene Vorgehensweise. Nachstehendes Vorgehen hat sich für User Robert_Mini bewährt.
Vorbereitungen:
Der grundsätzlich erste Schritt (und oft auch der schwierigste) ist die Festlegung, was die genaue Funktion der Logik ist. Eine grobe Vorstellung reicht an dieser Stelle nicht mehr aus!
Es ist meist hilfreich, die Logik graphisch aufzuzeichnen oder die Schritte/Logikteile als Text zu beschreiben.
Beispiel Lüftersteuerung im Bad:
Der Lüfter soll bei Überschreiten eines Schwellwertes eingeschaltet werden.
Da die Feuchte über das Jahr schwankt, sollen die Schwellwerte relativ zu einem geglätteten Feuchtewert berechnet werden.
Beim Unterschreiten des Schwellwertes soll der Lüfter nach einer Verzögerung x ausgeschaltet werden.
Mittels Sperreingang soll das Einschalten gesperrt werden bzw. zuvor ausgeschaltet werden, wenn der Lüfter gerade läuft.
Danach werden die Teilschritte grob in Logikelemente aufgeteilt und gegebenenfalls sortiert
Glättung des Messwertes mittels Tiefpass (Modul “lowpass”).
Schwellwerte werden gegenüber dem geglätteten Wert mittels Modul “polynom” berechnet.
Schwellschalter mit dem Modul “comparator”
Timer (Modul “monoflop”) wird durch die fallenden Flanke des Schwellwertes ausgelöst.
Am Ende mittels UND/ODER Bausteinen (Module “and” / “or” den Status des Ausganges abhängig von Schwellwert, Timer und Sperre auswerten und auf den Ausgang schreiben.
Als nächstes haben sich folgende Schritte bewährt:
Eingänge und Ausgänge anlegen
Variablen dafür vergeben => es darf nicht die gleiche Variable mit einem Ein- und Ausgang verbunden sein!
Speichern => Damit überprüft man die obigen Schritte und bekommt gleich ein Look&Feel für die Logikzelle. Zu diesem Zeitpunkt noch keine Objekte mit der Logik verknüpfen.
Schritt für Schritt Module hinzufügen, die Ein- und Ausgänge logisch verbinden. Wenn Zwischenschritte erforderlich sind, dann zusätzliche Variablen dafür verwenden, dies erleichtert die Fehlersuche mittels Dokmode.
Änderungen nach dem ergänzen von 2-3 Modulen speichern. Die Logik wird damit neu gestartet!
Im DokMode testen. Dazu die Eingänge überschreiben und die Reaktion der Ausgänge ggf. auch mit Verzögerungen etc. prüfen. Die Verzögerungen der Timer dazu auf 10-30sec stellen, damit man ausreichend Zeit bei der Beobachtung hat.
Temporär hinzugefügte Ein-/Ausgänge für Zwischenergebnisse können dabei helfen!
Schritt 4-7 wiederholen (insbesondere bei umfangreichen Logiken empfiehlt es sich, die Logik in Teilschritten zu erstellen und zu testen). Erst wenn ein Teil fertig ist, den nächsten erstellen und wiederholt speichern/testen. So wird die Suche nach Syntax-Fehlern oder falschen Verknüpfungen erleichtert.
Wenn die Logik im Test funktioniert, die Ein-/Ausgänge mit der Realwelt verbinden. Entweder über den LE (und neu Speichern) oder die Objektverwaltung (unter laufender Logik!).
Bei komplexeren Logiken empfiehlt es sich den Dokmode noch einige Tage/Wochen aktiviert zu lassen, so dass im Fehlerfall alle Informationen zur Analyse vorhanden sind.
Tutorials: