Diese Woche möchte ich eine Möglichkeit vorstellen, wie man mit einem Türkontakt automatisch den Anwesenheitsstatus ändern kann.

Prinzipiell eine simple Aufgabe, wenn da nicht der Umstand wäre, dass man beim Verlassen des Hauses und öffnen der Haustüre nicht gleich wieder den Status auf Anwesend setzen möchte.

Letztendlich muss man im Workflow 3 Bedingungen abfragen:

  1. Türkontakt hat ausgelöst
  2. Anwesenheitsstatus ungleich Anwesend
  3. Letzte Änderung des Anwesenheitstatus länger als zB 5 Minuten her.

Hier die einzelnen Schritte für eine Realisierung:

Auslösung des Türkontakts ermitteln:

Workflow_Presence_CheckSensor

Letzte Änderung des Anwesenheitsstatus länger als 5 Minuten zurück:

Hier ist wichtig zu wissen, dass die Veränderung von Zeitstempeln in den Workflows bzw. in PHP durch addieren von Sekunden möglich ist. Wenn der Wert der letzten Änderung + 300 Sekunden kleiner ist als der aktuelle Zeitstempel, dann ist die letzte Änderung des Anwesenheitsstatus bereits länger als 5 Minuten her.

Workflow_Presence_CheckLastChange

Anwesenheitsstatus ungleich Status „Anwesend“:

Der Wert 0 für „Anwesend“ kann natürlich bei jedem abweichen und folgt der Logik des jeweiligen Benutzers.

Workflow_Presence_CheckPresence

Diese 3 Bedingungen werden mit einem UND verbunden:

Workflow_Presence_Und

Bei Eintreffen aller Bedingungen wird der Anwesenheitsstatus auf „Anwesend“ gesetzt:

Workflow_Presence_ChangePresence

Hier nochmals der gesamte Workflow im Edit bzw. Live Modus:

Workflow_Presence_FinalEdit1

Workflow_Presence_FinalLive1