Dingpräsenz
Um der großen Bandbreite an Geräten Rechnung zu tragen, die eine Verbindung zu ThingWorx Platform herstellen, wurde das Konzept "verbunden" von "derzeit mittels WebSocket gebunden" in "Verbindungsnormalität" geändert, was auch als Dingpräsenz bezeichnet wird. Dingpräsenz zeigt an, wann die Verbindung eines Dings basierend auf dem erwarteten Verhalten des Geräts "normal" ist.
ThingWorx AlwaysOn-Geräte (die eine ThingWorx Edge SDK-basierte Anwendung oder den ThingWorx Edge MicroServer ausführen) binden WebSockets. Sofern sie nicht für einen bestimmten Zeitraum als offline konfiguriert sind, sind sie immer verfügbar, um Nachrichten von ThingWorx Platform zu empfangen. Die Axeda eMessage Agent Geräte hingegen fragen die Plattform in regelmäßigen Abständen ab ("ping") und können nur dann Nachrichten von der Plattform empfangen, wenn sie verbunden und gebunden sind. Beide Hauptgerätetypen werden von der Dingpräsenz unterstützt.
Dingpräsenz kann über Kategorien von Geräten hinweg verglichen werden und wird von allen ThingWorx Schnittstellen unterstützt. Beispiel: Eine Service-Organisation möchte ein Dashboard erstellen, das alle Geräte angibt, die für Service-Anrufe verfügbar sind, oder alle Geräte, die unerwartet offline sind. Dingpräsenz wird von der ThingWorx SCM-Erweiterung verwendet, um zu ermitteln, ob ein Gerät "normal" verbunden ist (durch Überprüfen einer Eigenschaft namens isReporting), sodass ein Paket für ein Gerät ausgewählt und bereitgestellt werden kann.
Es ist wichtig zu verstehen, dass Dingpräsenz nicht versucht, den allgemeinen Zustand eines Geräts zu diagnostizieren. Dingpräsenz wird als einzelne boolesche Eigenschaft dargestellt, die es ThingWorx ermöglicht, eine einheitliche Oberfläche für die Vielzahl verschiedener Assets anzubieten.
Funktionsweise
Ganz allgemein hat jedes Gerät, das als RemoteThing definiert ist, die folgenden neuen Attribute:
Typ
Name
Beschreibung
Eigenschaft
isReporting
Gibt an, ob ein Gerät basierend auf der angewendeten "Berichterstattungsstrategie" als für "normale" Kommunikation verfügbar erachtet wird.
Eigenschaft
reportingLastChange
Gibt an, wann der isReporting-Wert zuletzt geändert wurde.
Eigenschaft
reportingLastEvaluation
Gibt an, wann die letzte Auswertung für isReporting stattgefunden hat.
Konfiguration
reportingStrategy
Ein Ding, das den Algorithmus definiert, mit dem bestimmt wird, ob ein Gerät Bericht erstattet.
Dienst
EvaluateReporting
Wertet aus, ob ein Gerät Bericht erstattet, und legt die Eigenschaft isReporting entsprechend fest.
Dienst
SetReportingStrategy
Legt die Strategie für die Auswertung fest, ob ein Gerät Bericht erstattet.
Dienst
GetReportingStrategy
Ruft die Strategie ab, mit der aktuell ausgewertet wird, ob ein Gerät Bericht erstattet.
Der genaue Algorithmus zur Bestimmung, ob ein Gerät Bericht erstattet, ist vom jeweiligen ReportingStrategy-Ding abhängig. Der allgemeine Prozess sieht jedoch folgendermaßen aus:
1. Der Dienst EvaluateReporting wird durch ein Ereignis ausgelöst.
2. EvaluateReporting ruft anschließend den Dienst ReportingAlgorithm für das Strategie-Ding auf.
3. ReportingAlgorithm gibt basierend auf dem angegebenen Algorithmus einen booleschen Wert zurück.
4. Die Eigenschaft isReporting wird basierend auf den Ergebnissen des Diensts ReportingAlgorithm festgelegt.
Dienst "EvaluateReporting"
Der Dienst EvaluateReporting verwendet die folgenden Parameter:
eventName – Name des Ereignisses, das die erneute Auswertung des Berichterstattungsstatus bewirkt hat.
eventTime – Zeitpunkt, zu dem das Ereignis eingetreten ist
source – Name des Dings, das das Ereignis generiert hat
sourceProperty – Quelleigenschaft des Ereignisses
eventData – Daten des Ereignisses
Alle Parameter von EvaluateReporting() werden direkt an ReportingStrategy.ReportingAlgorithm() übergeben.
Wenn dieser Dienst ausgeführt wird, während ein Ding gebunden oder seine Bindung aufgehoben wird; gilt Folgendes:
Der eventName lautet BindingEvent.
Die eventData enthalten eine einzelne Zeile mit einem einzelnen Wert unter dem Schlüssel isBound, der angibt, ob die Bindung des Dings gerade hergestellt oder aufgehoben wurde (true für gebunden, false für ungebunden).
Wenn während der Dienstausführung ein Problem auftritt (z.B. in ReportingAlgorithm), wird der Status des Dings in "nicht Bericht erstattend" aktualisiert, und eine Meldung wird in das Anwendungsprotokoll eingefügt.
War dies hilfreich?