Letztes Update 2021/04/11 14:47
Things sind die Entitäten1), die einem System physisch hinzugefügt werden können und die möglicherweise viele Funktionen in einem bereitstellen können. Es ist wichtig zu beachten, dass Things keine Geräte sein müssen, sondern auch einen Webdienst oder eine andere verwaltbare Informations- und Funktionsquelle darstellen können. Aus Anwendersicht sind sie für den Einrichtungs- und Konfigurationsprozess relevant, nicht jedoch für den Betrieb.
Things können Konfigurationseigenschaften haben, die optional oder obligatorisch sein können. Solche Eigenschaften können grundlegende Informationen wie eine IP-Adresse, ein Zugriffstoken für einen Webdienst, oder eine gerätespezifische Konfiguration sein, die sein Verhalten ändert.
Things bieten „Channels“, die die verschiedenen Funktionen darstellen, die das Thing bietet. Wenn das Thing die physische Einheit oder Informationsquelle ist, ist der Channeleine konkrete Funktion dieses Things . Eine physische Glühbirne kann einen Farbtemperaturchannel und einen Farbchannel haben, die beide die Funktionalität eines Glühbirnen-Thing für das System bereitstellen. Für Informationsquellen kann das Thing das lokale Wetter mit Informationen von einem Webdienst mit verschiedenen Channels wie Temperatur, Druck und Luftfeuchtigkeit sein.
Channels sind mit Items verknüpft, wobei solche Verknüpfungen der Klebstoff zwischen der virtuellen und der physischen Schicht sind. Sobald eine solche Verbindung hergestellt ist, reagiert ein Thing auf Ereignisse, die für ein Element gesendet wurden, das mit einem seiner Channels verknüpft ist. Ebenso sendet es aktiv Ereignisse für Items, die mit seinen Channels verknüpft sind.
Eine besondere Art von Thing ist eine „Bridge“. Bridges sind Dinge, die dem System hinzugefügt werden müssen, um Zugriff auf andere Thing zu erhalten. Ein typisches Beispiel für eine Bridge ist ein IP-Gateway für ein nicht IP-basiertes Hausautomationssystem oder eine Webdienstkonfiguration mit Authentifizierungsinformationen, die möglicherweise von diesem Webdienst benötigt werden.
Da viele Dinge automatisch entdeckt werden können, stehen spezielle Mechanismen zur Verfügung, die sich mit dem Umgang mit Automatisch entdeckten Dingen befassen.
Jedes Ding hat ein Statusobjekt, mit dessen Hilfe mögliche Probleme mit dem Gerät oder Dienst identifiziert werden können. Die folgende Tabelle gibt einen Überblick über die verschiedenen Status:
Status | Beschreibung |
---|---|
UNINITIALIZED | Dies ist der Anfangsstatus eines Things, wenn es hinzugefügt oder das Framework gestartet wird. Dieser Status wird auch zugewiesen, wenn der Initialisierungsprozess fehlgeschlagen ist oder die Bindung nicht verfügbar ist. An Channels gesendete Befehle werden nicht verarbeitet. |
INITIALIZING | Dieser Status wird zugewiesen, während die Bindung das Thing initialisiert. Es hängt von der Bindung ab, wie lange der Initialisierungsprozess dauert. An Channels gesendete Befehle werden nicht verarbeitet. |
UNKNOWN | Der Handler ist vollständig initialisiert, kann jedoch aufgrund der Art des dargestellten Geräts / Dienstes noch nicht wirklich sagen, ob das Thing ONLINE oder OFFLINE ist. Daher funktioniert das Thing möglicherweise bereits richtig und kann Befehle verarbeiten oder auch nicht. Das Framework darf jedoch Befehle senden, da einige funkbasierte Geräte möglicherweise ONLINE geschaltet werden, wenn ein Befehl an sie gesendet wird. Der Handler sollte darauf achten, das Thing so schnell wie möglich auf ONLINE oder OFFLINE umzustellen. |
ONLINE | Es wird davon ausgegangen, dass das durch eine Sache dargestellte Gerät / Dienst ordnungsgemäß funktioniert und Befehle verarbeiten kann. |
OFFLINE | Es wird angenommen, dass das durch eine Sache dargestellte Gerät / Dienst nicht richtig funktioniert und möglicherweise keine Befehle verarbeitet. Das Framework darf jedoch Befehle senden, da einige funkbasierte Geräte möglicherweise zu ONLINE zurückkehren, wenn ein Befehl an sie gesendet wird. |
REMOVING | Das durch eine Sache dargestellte Gerät / Dienst sollte entfernt werden, aber die Bindung hat das Löschen noch nicht bestätigt. Einige Bindungen müssen mit dem Gerät kommunizieren, um es vom System zu trennen. Die Sache funktioniert wahrscheinlich nicht und Befehle können nicht verarbeitet werden. |
REMOVED | Dieser Status zeigt an, dass das durch eine Things dargestellte Gerät / Dienst aus dem externen System entfernt wurde, nachdem das REMOVED vom Framework initiiert wurde. Normalerweise ist dieser Status ein Zwischenstatus, da das Ding aus der Datenbank entfernt wird, nachdem dieser Status zugewiesen wurde. |
Die Status UNINITIALIZED, INITIALIZING und REMOVING werden vom Framework festgelegt, während die Status UNKNOWN, ONLINE und OFFLINE aus einer Bindung zugewiesen werden.
Zusätzlich wird der Status REMOVED durch die Bindung festgelegt, um anzuzeigen, dass der Entfernungsprozess abgeschlossen wurde, d.h., die Sache muss zuvor im Status REMOVING gewesen sein.
Das folgende Diagramm zeigt die zulässigen Statusübergänge:
Der Anfangsstatus einer Sache ist UNINITIALIZED. Von UNINITIALIZED geht das Ding in INITIALIZING. Wenn die Initialisierung fehlschlägt, kehrt das Ding zu UNINITIALIZED zurück. Wenn die Initialisierung erfolgreich ist, setzt die Bindung den Status des Things auf UNKNOWN, ONLINE oder OFFLINE, was bedeutet, dass der Thing-Handler vollständig initialisiert ist. Von einem dieser Status kann das Thing in UNINITIALIZED, REMOVING oder REMOVED zurückkehren. Die Status REMOVING und REMOVED können auch von jedem anderen Status aus erreicht werden.
Ein Status wird mit einem Statusdetailobjekt weiter detailliert. In der folgenden Tabelle sind die verschiedenen Statusdetails für jeden Status aufgeführt:
UNINITIALIZED | NONE | Keine weiteren Statusdetails verfügbar. |
HANDLER_MISSING_ERROR | Der Handler kann nicht initialisiert werden, da die verantwortliche Bindung nicht verfügbar ist oder nicht gestartet wurde. | |
HANDLER_REGISTERING_ERROR | Der Handler ist in der Dienstregistrierungsphase fehlgeschlagen. | |
HANDLER_CONFIGURATION_PENDING | Der Handler ist registriert, kann jedoch aufgrund fehlender Konfigurationsparameter nicht initialisiert werden. | |
HANDLER_INITIALIZING_ERROR | Der Handler ist in der Initialisierungsphase fehlgeschlagen. | |
BRIDGE_UNINITIALIZED | Die mit diesem Thing verknüpfte Brücke wird nicht initialisiert. | |
DISABLED | Das Thing wurde explizit deaktiviert. | |
INITIALIZING | NONE | Keine weiteren Statusdetails verfügbar. |
UNKNOWN | NONE | Keine weiteren Statusdetails verfügbar. |
ONLINE | NONE | Keine weiteren Statusdetails verfügbar. |
CONFIGURATION_PENDING | Das Thing wartet darauf, Konfigurationsinformationen auf ein Gerät zu übertragen. Einige Bindungen müssen mit dem Gerät kommunizieren, um sicherzustellen, dass die Konfiguration akzeptiert wird. | |
OFFLINE | NONE | Keine weiteren Statusdetails verfügbar. |
COMMUNICATION_ERROR | Fehler bei der Kommunikation mit dem Gerät. Dies kann ein vorübergehender Fehler sein. | |
CONFIGURATION_ERROR | Ein Problem mit der Konfiguration einem Thing verhindert die Kommunikation mit dem dargestellten Gerät oder Dienst. Dieses Problem kann durch Neukonfiguration des Things behoben werden. | |
BRIDGE_OFFLINE | Angenommen, das Thing ist offline, weil die entsprechende Brücke offline ist. | |
FIRMWARE_UPDATING | Das Thing wird derzeit einem Firmware-Update unterzogen. | |
DUTY_CYCLE | Das Thing befindet sich derzeit im Status DUTY_CYCLE, was bedeutet, dass es für die weitere Verwendung gesperrt ist. | |
GONE | Das Thing wurde von der Brücke oder dem Netzwerk, zu dem es gehört, entfernt und steht nicht mehr zur Verfügung. Der Benutzer kann nun das Thing aus dem System entfernen. | |
REMOVING | NONE | Keine weiteren Statusdetails verfügbar. |
REMOVED | NONE | Keine weiteren Statusdetails verfügbar. |
Die Übersetzung steht unter der EPLv2 Lizenz.