Workflow Beispiele

Ich eröffne hier mal einen Thread für Workflows, wenn jemand von Euch eine Problemstellung mit Hilfe eines SubWorkflows gelöst hat und diesen der Allgemeinheit zur Verfügung stellen möchte, dann bitte gerne hier posten.

Importieren eines SubWorkflows ist mittlerweile direkt im Repository möglich, einfach das Modul auf die Zeichenfläche ziehen und einen Workflow auswählen:
image

Fragen zu einem Workflow bitte immer in einem eigenen Thread stellen :wink:

1 „Gefällt mir“

Abschaltverzögerung

Der Status eines Sensors (Bewegungsmelder oder ähnliches) soll bei Aktivierung eine Beleuchtung ansteuern und bei Deaktivierung verzögert ausschalten.

Eingänge:

  • Sensor Status - Statusvariable (Boolean) eines Sensors, der das Licht ansteuern soll.
  • Nachlaufzeit (Sekunden) - Zeit in Sekunden für die Abschaltverzögerung

Ausgänge:

  • Licht Status - Schaltausgang für die Ansteuerung der Beleuchtung

Workflow:
Abschaltverzögerung_2023-01-31.zip (1,7 KB)

Screenshots:

Bewegungsmelder mit Treppenhausautomat

Einschalten einer Beleuchtung:

  • Aktivierung des Bewegungsmelders
  • Helligkeitssensor unter bestimmten Limit
  • Locked/Sperre des Bewegungsmelders nicht aktiv
  • Letzte Änderung der Sperrvariable ist älter als 10 Sekunden (damit das Licht nicht angeht wenn man den Lock deaktivert und den Raum verlässt)

Ausschalten der Beleuchtung

  • x Sekunden nach Deaktivierung des Bewegungsmelders
  • Sperre nicht aktiv

Eingänge:

  • Melder Aktualisierung - Status des Melders wurde gerade geändert
  • Melder Status - Aktueller Status des Melders
  • Helligkeit Wert - Aktueller Wert des Helligkeitssensors
  • Helligkeit Limit - Limit für die Auswertung des Helligkeitssensors
  • Locked Zeitstempel - Zeitstempel letzte Aktualisierung des Locked Status
  • Locked Status - Aktueller Status der Sperrvariable
  • Licht Status - Aktueller Status der Beleuchtung
  • Timer Sekunden - Zeit in Sekunden für die Abschaltverzögerung

Ausgänge:

  • Licht - Schaltausgang für die Ansteuerung der Beleuchtung
  • Offene Sekunden - Verbleibende Zeit in Sekunden bis zum Ausschalten der Beleuchtung (wird alle 5 Sekunden aktualisiert)

Workflow:
BWM_2023-01-26.zip (3,2 KB)

Screenshots:

1 „Gefällt mir“

Überwachung einer Variable

Die zyklische Befüllung einer Variable soll überwacht werden, wenn die letzte Aktualisierung der Variable länger als x Sekunden zurückliegt, soll eine Alarmierung erfolgen.

Eingänge:

  • Letzte Aktualisierung - Timestamp der letzten Aktualisierung der Variable, die überwacht werden soll.
  • Limit in Sekunden - Zeit in Sekunden nach der eine Alarmierung erfolgen soll.
  • Intervall in Sekunden - Intervall für die Überprüfung der Variable
  • Alarm bereits aktiv - Statusvariable für die Alarmierung, diese Variable wird auch am Ausgang für die Zuweisung des aktiven Alarms verwendet.

Ausgänge:

  • Alarm Status - liefert immer den aktuellen Status der Variable Überwachung
  • Alarm Ein/Aus - liefert true oder false wenn sich der Status ändert

Workflow:
WatchdogMissingValue_2023-02-28.zip (2,4 KB)

Screenshots:

im aktuellen Beispiel soll die Variable alle 5 Sekunden einen neuen Wert liefern, der Workflow läuft alle 60 Sekunden und wenn länger als 30 Sekunden kein Wert geliefert wurde, wird das Skript „AlarmByPowerMeter“ aufgerufen.

Licht bei Betätigung der Türglocke ein/ausschalten:

Bei Betätigung der Türglocke soll eine Beleuchtung 2x Blinken.

Eingänge:

  • Licht Status - Status Variable der Beleuchtung
  • Türglocke aktiviert - Trigger der Türglocke
  • Bedingung - zusätzliche Bedingung, die erfüllt sein muss, damit die Beleuchtung angesteuert wird.

Ausgänge:

  • Licht Status - Ausgang für die Ansteuerung der Beleuchtung

Workflow:
TürglockeLicht_2023-02-28.zip (2,0 KB)

Screenshots:

Im aktuellen Beispiel wird die Status Variable bei TRUE und Aktualisierung als Trigger an den Subworkflow übergeben.
Die Statusvariable ist der Online Zustand meines Laptops, das Licht soll nur dann blinken, wenn der Laptop online ist (Hintergrund: durch das Headset höre ich die Türklingel manchmal nicht :slight_smile: )

1 „Gefällt mir“

Max/Min Werte einer Variable:

Der Workflow ermittelt die Max/Min Werte einer Variable aus den historischen Daten.

Eingänge:

  • ID der Variable
  • Aggregationslevel - Wert für Aggregation (1=24 Stunden, 2=Woche, 3=Monat, 4=Jahr)

Ausgänge:

  • Minimum - Minimaler Wert im Zeitraum (aktuell nur Tag)
  • Maximum - Maximaler Wert im Zeitraum
  • Durchschnitt - Durchschnittlicher Wert im Zeitraum

Workflow:
VariableMaxMin_2023-03-17.ipsWorkflow (7,5 KB)

Screenshots:

Aggregationslevel kann ich diesem Beispiel natürlich auch durch eine Konstante ersetzt werden, alternativ kann der gewünschte Wert auch direkt als Workflow Parameter übergeben werden.

Anbei auch noch eine Variante, die den aktuellen Tag von 00:00 bis aktuell auswertet:

VariableMaxMinDay_2023-03-12.ipsWorkflow (6,2 KB)