Aktoren (Actors) und Initiatoren (Initiators)
Um FabAccess erweiterbar zu halten, basiert die Steuerung externer Geräte wie Wifi-Schaltsteckdosen oder Türschlössern auf einem Aktoren- und Initiatorenkonzept.
Aktoren (Actors)
Aktoren in FabAccess haben die Aufgabe, die digitalen Zustände von Ressourcen in reale Zustände umzusetzen. Vom Server aus werden die Übergänge der Traits (Eigenschaften) an kleine Skripte oder Prozesse weitergegeben, die entsprechend darauf reagieren.
Aktoren erhalten vom Server Mitteilungen über Änderungen an Ressourcen, beispielsweise wenn eine Ressource ausgeliehen wird, und passen dann den realen Zustand der Ressource an. Dadurch wird die Ressource für Nutzer freigeschaltet. Darüber hinaus ermöglichen Aktoren die Steuerung zusätzlicher Anzeigen wie Maschinenampeln oder Displays.
Aktoren werden an Ressourcen (Maschinen) gebunden.
gebunden(Mapping actor_connections).
Initiatoren (Initiators)
Mit Initiatoren werden reale Zustände auf die digitalen Zustände in FabAccess abgebildet. Initiatoren sind Plugins, die den Status einer Ressource aktiv verändern können, also zum Beispiel von Free
auf InUse
setzen.
Initiatoren werden an Ressourcen (Maschinen) gebunden.gebunden (Mapping init_connections).
Initiatoren ermöglichen beispielsweise durch das Festlegen von Zeitschaltungen die automatische Rückgabe von Ressourcen, wenn sie nicht mehr verwendet werden, oder Türkontakte, die den aktuellen Zustand der Tür übertragen können, und FabAccess kann entsprechend darauf reagieren. Sie fungieren sozusagen als Callbacks. Die Auslösevents (Trigger) sind in der Regel asynchron, von der App entkoppelt und lösen automatisiert aus.
Mit Initiatoren können im einfachsten Fall auch Initialzustände an Ressourcen übersendet werden, nachdem bffhd neugestartet wurde. So können u.a. bestimmte Dinge automatisch ein-/ausgeschalten bzw. in einen fest definierten Ausgangszustand versetzt werden. Ein Beispiel dafür findet sich in Initiator: Generisches Python-Template für "Process".
Wie wird das genutzt?
Das Einbinden von Aktoren und Initiatoren geschieht in der Hauptkonfiguration bffh.dhall
.
Eine Sammlung von Initiatoren und Aktoren ist hier zu finden.