Validatie & opslaan
Bij het opslaan wordt elke gewijzigde functie gecontroleerd:
- Verplichte ingang niet gekoppeld — een verplichte poort heeft geen bron.
- Type mismatch — een verbinding of koppeling waarvan de types niet overeenkomen (en er geen typeconversie is gekozen).
- Verboden doel — een uitgang die verwijst naar een object waarnaar niet mag worden geschreven.
- Cyclus zonder tijdsblok — een feedbacklus die oneindig zou lopen; voeg een tijdsblok in om dit geldig te maken.
Opslaan is altijd toegestaan — maar een functie die niet door de validatie komt, wordt uitgeschakeld opgeslagen ("uitgeschakeld door validatie") en wordt pas uitgevoerd zodra u het probleem verhelpt. Het resultaat wordt gemeld ("Opgeslagen. Eén functie bevat fouten en blijft uitgeschakeld.") en het validatiepaneel toont elk probleem en wijst direct naar de betreffende kaart, poort of verbinding.
📘 Opmerking: Dit is een bewuste keuze: u kunt aan het einde van de werkdag een half afgewerkt schema opslaan zonder de reeds werkende functies te verstoren.

Monitoring & onderhoud
Schakel het canvas over naar Monitor om de logica live te volgen: actuele waarden verschijnen op poorten en verbindingen, en elke kaart krijgt een statusvoettekst:
| Status | Betekenis |
|---|---|
| OK | Loopt normaal; toont het tijdstip van de laatste uitvoering. |
| SUSPENDED | Gepauzeerd door een handmatige overschrijving vanuit de app (een bewoner heeft het rolluik handmatig bediend). Toont de resterende afteltijd en een knop Nu hervatten. |
| DISABLED | Uitgeschakeld — door u of door de validatie. |
| ERROR | Er is iets mis, beschreven in duidelijke taal — bijv. een ontbrekende ingangswaarde: "sensor zwijgt al 18 min — uitgang vastgehouden". |
Uitvoeringsgeschiedenis. Open de geschiedenis van een functie om de recente uitvoeringen te bekijken — telkens met de ingangswaarden en de gegenereerde uitgangen — en exporteer het logboek. Dit biedt direct het antwoord op "waarom bewogen de rolluiken om 14:02?".
Testuitvoering / simulatie. Om te testen zonder te wachten op reële omstandigheden, forceert u een ingangswaarde:
- Open het testvenster van de functie en selecteer de ingangspoort.
- Voer de geforceerde waarde in en een Terugzetten na-tijd (standaard 15 minuten, maximaal 1 uur).
- Klik op Waarde forceren. De poort wordt gemarkeerd met SIM; de werkelijke koppeling eronder blijft onaangetast.
De server zet de geforceerde waarde automatisch terug via een eigen timer — een gesloten browsertabblad kan een simulatie dus niet actief achterlaten — en zowel de start als het einde van de simulatie worden vastgelegd in de uitvoeringsgeschiedenis.
Een functie verwijderen. Bij het verwijderen verschijnt eerst een impactdialoogvenster: welke functies de uitgangen gebruiken en welke gematerialiseerde widgets zijn aangemaakt — voor elke widget kiest u om deze te behouden (deze blijft bestaan als een normaal virtueel apparaat) of eveneens te verwijderen.

Veiligheidsmechanismen
De engine beschermt de installatie tegen logische fouten:
- Lussen onderbreken — een limiet op de doorgiftediepte voorkomt dat ketens die via apparaten een lus vormen, oneindig blijven lopen.
- Frequentiebegrenzing — een op hol geslagen functie (20 uitvoeringen binnen 10 seconden) wordt automatisch 60 seconden gepauzeerd en gemarkeerd in de monitormodus, om overbelasting van de bus te voorkomen.
- Dimensie — een richtlijn is circa 200 functies per installatie. Boven die limiet is het raadzaam functies samen te voegen (één berekende waarde met 8 ingangen in plaats van een optelboom) en te evalueren of bepaalde logica beter in de apparaten zelf kan worden ondergebracht.
📘 Opmerking: Deze mechanismen beperken schade, maar vervangen geen goed installatieontwerp. Alles wat fail-safe moet zijn (wind, vorst) moet ook in de parameters van de actor zelf worden geconfigureerd.