Validierung & Speichern
Beim Speichern wird jede geänderte Funktion überprüft:
- Erforderlicher Eingang nicht verbunden – ein Pflicht-Port besitzt keine Quelle.
- Typenkonflikt – eine Verbindung oder Verknüpfung, deren Typen nicht übereinstimmen (und keine Typumwandlung gewählt wurde).
- Unzulässiges Ziel – ein Ausgang verweist auf ein Objekt, das er nicht beschreiben darf.
- Schleife ohne Zeitbaustein – eine Rückkopplungsschleife, die unbegrenzt laufen würde; fügen Sie einen Zeitbaustein ein, um sie zuzulassen.
Das Speichern ist immer möglich – eine Funktion, die die Validierung nicht besteht, wird jedoch deaktiviert gespeichert („durch Validierung deaktiviert“) und erst ausgeführt, wenn Sie den Fehler beheben. Das Ergebnis wird gemeldet („Gespeichert. Eine Funktion weist Probleme auf und bleibt ausgeschaltet.“) und das Validierungsfenster listet jedes Problem auf und verweist exakt auf die Karte, den Port oder die Verbindung.
📘 Hinweis: Dies ist beabsichtigt: Sie können am Ende des Tages ein halbfertiges Logikblatt speichern, ohne laufende Funktionen zu beeinträchtigen.

Überwachung & Wartung
Schalten Sie die Arbeitsfläche auf Monitor, um die Logikausführung zu beobachten: Live-Werte erscheinen an Ports und Verbindungen, und jede Karte erhält eine Statuszeile:
| Status | Bedeutung |
|---|---|
| OK | Läuft normal; zeigt den Zeitpunkt der letzten Ausführung an. |
| SUSPENDED | Durch einen manuellen Eingriff über die App pausiert (ein Bewohner hat die Jalousie manuell bedient). Zeigt den verbleibenden Countdown und die Schaltfläche Jetzt fortsetzen. |
| DISABLED | Ausgeschaltet – durch Sie oder durch die Validierung. |
| ERROR | Ein Problem im Klartext – z. B. ein veralteter Eingangswert: „Sensor seit 18 Min. inaktiv – Ausgangswert gehalten“. |
Ausführungsverlauf. Öffnen Sie den Verlauf einer Funktion, um deren letzte Ausführungen zu sehen – jeweils mit den Eingangswerten und den erzeugten Ausgängen – und exportieren Sie das Protokoll. Dies liefert die Antwort auf die Frage: „Warum sind die Jalousien um 14:02 Uhr gefahren?“.
Testauslösung / Simulation. Um Logiken ohne reale Bedingungen zu testen, erzwingen Sie einen Eingangswert:
- Öffnen Sie den Testauslöse-Dialog der Funktion und wählen Sie den Eingangs-Port.
- Geben Sie den erzwungenen Wert und eine Dauer für Zurücksetzen nach ein (Standard: 15 Minuten, maximal 1 Stunde).
- Klicken Sie auf Wert erzwingen. Der Port wird mit SIM markiert; die reale Verknüpfung bleibt im Hintergrund unverändert.
Der Server setzt den erzwungenen Wert über einen eigenen Timer zurück – ein geschlossener Browser-Tab kann keine Simulation dauerhaft aktiv lassen – und Start sowie Ende der Simulation werden im Ausführungsverlauf erfasst.
Löschen einer Funktion. Vor dem Löschen erscheint ein Auswirkungsdialog: Welche Funktionen nutzen deren Ausgänge und welche materialisierten Widgets wurden erstellt – für jedes Widget wählen Sie, ob es behalten (als normales virtuelles Gerät) oder ebenfalls gelöscht werden soll.

Sicherheitsgrenzen
Die Logik-Engine schützt die Installation vor Fehlern in der Programmierung:
- Schleifenunterbrechung – eine Begrenzung der Weiterleitungstiefe verhindert, dass Ketten über Geräte hinweg endlos laufen.
- Ratenbegrenzung – eine unkontrolliert laufende Funktion (20 Ausführungen innerhalb von 10 Sekunden) wird automatisch für 60 Sekunden pausiert und im Monitor-Modus markiert, anstatt den Bus zu überlasten.
- Dimensionierung – als Richtwert gelten etwa 200 Funktionen pro Installation. Darüber hinaus empfiehlt sich eine Zusammenfassung (ein berechneter Wert mit 8 Eingängen statt eines Summenbaums) sowie die Prüfung, ob Teile der Logik direkt in die Geräte gehören.
📘 Hinweis: Diese Schutzmechanismen begrenzen Schäden; sie ersetzen jedoch keine sorgfältige Planung. Alle sicherheitskritischen Funktionen (Wind, Frost) müssen zusätzlich in den Parametern des Aktors selbst abgesichert sein.