Verwenden Sie AWS IoT Events zur Überwachung Ihrer IoT-Geräte - AWS IoT Events

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwenden Sie AWS IoT Events zur Überwachung Ihrer IoT-Geräte

Sie können AWS IoT Events damit Ihre Geräte oder Prozesse überwachen und bei wichtigen Ereignissen Maßnahmen ergreifen. Gehen Sie dazu wie folgt vor:

Eingaben erstellen

Sie müssen über eine Möglichkeit verfügen, mit der Ihre Geräte und Prozesse Telemetriedaten abrufen können. AWS IoT Events Sie tun dies, indem Sie Nachrichten als Eingaben an AWS IoT Events senden. Sie können Nachrichten auf verschiedene Arten als Eingaben senden:

  • Verwenden Sie die BatchPutMessageOperation.

  • Definieren Sie eine iotEventsRegelaktion für die AWS IoT Core Regel-Engine. Die Regelaktion leitet Nachrichtendaten aus Ihrer Eingabe an. AWS IoT Events

  • Verwenden Sie in die CreateDatasetOperation AWS IoT Analytics, um einen Datensatz mit zu erstellen. contentDeliveryRules Diese Regeln spezifizieren die AWS IoT Events Eingabe, an die der Inhalt des Datensatzes automatisch gesendet wird.

  • Definieren Sie eine iotEventsAktion in einem AWS IoT Events Detektormodell onExit oder in einem transitionEvents Ereignis. onInput Informationen über die Instanz des Detektormodells und das Ereignis, das die Aktion ausgelöst hat, werden als Eingabe mit dem von Ihnen angegebenen Namen an das System zurückgemeldet.

Bevor Ihre Geräte Daten auf diese Weise senden, müssen Sie einen oder mehrere Eingänge definieren. Geben Sie dazu jeder Eingabe einen Namen und geben Sie an, welche Felder in den eingehenden Nachrichtendaten von der Eingabe überwacht werden. AWS IoT Events erhält seine Eingabe in Form von JSON Nutzdaten aus vielen Quellen. Jede Eingabe kann eigenständig bearbeitet oder mit anderen Eingaben kombiniert werden, um komplexere Ereignisse zu erkennen.

Erstellen Sie ein Detektormodell

Definieren Sie mithilfe von Zuständen ein Detektormodell (ein Modell Ihrer Ausrüstung oder Ihres Prozesses). Für jeden Zustand definieren Sie eine bedingte (boolesche) Logik, die die eingehenden Eingaben auswertet, um signifikante Ereignisse zu erkennen. Wenn ein Ereignis erkannt wird, kann es den Status ändern oder mithilfe anderer AWS Dienste benutzerdefinierte oder vordefinierte Aktionen auslösen. Sie können zusätzliche Ereignisse definieren, die Aktionen auslösen, wenn Sie einen Status betreten oder verlassen und optional, wenn eine Bedingung erfüllt ist.

In diesem Tutorial senden Sie eine SNS Amazon-Nachricht als Aktion, wenn das Modell in einen bestimmten Status eintritt oder diesen verlässt.

Überwachen Sie ein Gerät oder einen Prozess

Wenn Sie mehrere Geräte oder Prozesse überwachen, geben Sie in jeder Eingabe ein Feld an, das das jeweilige Gerät oder den Prozess identifiziert, von dem die Eingabe stammt. (Siehe das key Feld unterCreateDetectorModel.) Wenn ein neues Gerät identifiziert wird (ein neuer Wert wird in dem Eingabefeld angezeigt, das durch den identifiziert wirdkey), wird ein Detektor erzeugt. (Jeder Detektor ist eine Instanz des Detektormodells.) Dann reagiert der neue Detektor weiterhin auf Eingaben von diesem Gerät, bis sein Meldermodell aktualisiert oder gelöscht wird.

Wenn Sie einen einzelnen Prozess überwachen (auch wenn mehrere Geräte oder Unterprozesse Eingaben senden), geben Sie kein eindeutiges key Identifikationsfeld an. In diesem Fall wird ein einzelner Detektor (Instanz) erstellt, wenn die erste Eingabe eintrifft.

Senden Sie Nachrichten als Eingaben an Ihr Detektormodell

Es gibt mehrere Möglichkeiten, eine Nachricht von einem Gerät oder Prozess als Eingabe in einen AWS IoT Events Detektor zu senden, ohne dass Sie die Nachricht zusätzlich formatieren müssen. In diesem Tutorial verwenden Sie die AWS IoT Konsole, um eine AWS IoT Events Aktionsregel für die AWS IoT Core Regel-Engine zu schreiben, in AWS IoT Events die Ihre Nachrichtendaten weitergeleitet werden. Dazu identifizieren Sie die Eingabe anhand des Namens. Anschließend verwenden Sie weiterhin die AWS IoT Konsole, um einige Nachrichten zu generieren, an die Sie als Eingaben weitergeleitet werden AWS IoT Events.

Woher wissen Sie, welche Zustände Sie in einem Detektormodell benötigen?

Um zu bestimmen, welche Zustände Ihr Detektormodell haben sollte, entscheiden Sie zunächst, welche Maßnahmen Sie ergreifen können. Wenn Ihr Auto beispielsweise mit Benzin betrieben wird, schauen Sie bei Fahrtantritt auf die Tankanzeige, ob Sie tanken müssen. Hier haben Sie eine Aktion: Sagen Sie dem Fahrer, er solle „Gas holen“. Ihr Meldermodell benötigt zwei Zustände: „Auto benötigt keinen Kraftstoff“ und „Auto benötigt Kraftstoff“. Im Allgemeinen möchten Sie einen Status für jede mögliche Aktion und einen weiteren für den Fall definieren, dass keine Aktion erforderlich ist. Das funktioniert auch dann, wenn die Aktion selbst komplizierter ist. Möglicherweise möchten Sie Informationen darüber suchen, wo sich die nächstgelegene Tankstelle oder der günstigste Preis befindet, und diese Informationen hinzufügen, aber Sie tun dies, wenn Sie die Nachricht „Geh tanken“ senden.

Um zu entscheiden, welchen Status Sie als Nächstes eingeben möchten, schauen Sie sich die Eingaben an. Die Eingaben enthalten die Informationen, die Sie benötigen, um zu entscheiden, in welchem Zustand Sie sich befinden sollten. Um eine Eingabe zu erstellen, wählen Sie eines oder mehrere Felder in einer von Ihrem Gerät oder Prozess gesendeten Nachricht aus, die Ihnen bei der Entscheidung helfen. In diesem Beispiel benötigen Sie eine Eingabe, die Ihnen den aktuellen Kraftstoffstand („Prozent voll“) anzeigt. Vielleicht sendet Ihnen Ihr Auto mehrere verschiedene Nachrichten mit jeweils unterschiedlichen Feldern. Um diese Eingabe zu erstellen, müssen Sie die Nachricht und das Feld auswählen, das den aktuellen Füllstand der Gasanzeige anzeigt. Die Länge der Reise, die Sie unternehmen werden („Entfernung zum Ziel“), kann aus Gründen der Übersichtlichkeit fest codiert werden. Sie können Ihre durchschnittliche Reisedauer verwenden. Auf der Grundlage der Eingabe führen Sie einige Berechnungen durch (wie viele Gallonen entspricht dieser volle Prozentsatz? ist die durchschnittliche Reisedauer größer als die Meilen, die Sie zurücklegen können, wenn man die Gallonen berücksichtigt, die Sie haben, und Ihren durchschnittlichen „Meilen pro Gallone“. Sie führen diese Berechnungen durch und senden bei Ereignissen Nachrichten.

Bisher haben Sie zwei Zustände und eine Eingabe. Sie benötigen ein Ereignis im ersten Status, das die Berechnungen auf der Grundlage der Eingabe durchführt und entscheidet, ob in den zweiten Status übergegangen werden soll. Das ist ein Übergangsereignis. (transitionEventsbefinden sich in der onInput Ereignisliste eines Bundesstaates. Beim Empfang einer Eingabe in diesem ersten Zustand wechselt das Ereignis in den zweiten Status, sofern der Zustand des Ereignisses erfüllt condition ist.) Wenn Sie den zweiten Status erreichen, senden Sie die Nachricht, sobald Sie den Status betreten. (Sie verwenden ein onEnter Ereignis. Beim Eintritt in den zweiten Status sendet dieses Ereignis die Nachricht. Sie müssen nicht warten, bis eine weitere Eingabe eintrifft.) Es gibt auch andere Arten von Ereignissen, aber das ist alles, was Sie für ein einfaches Beispiel benötigen.

Die anderen Arten von Ereignissen sind onExit undonInput. Sobald eine Eingabe eingeht und die Bedingung erfüllt ist, führt ein onInput Ereignis die angegebenen Aktionen aus. Wenn ein Vorgang seinen aktuellen Status verlässt und die Bedingung erfüllt ist, führt das onExit Ereignis die angegebenen Aktionen aus.

Fehlt dir etwas? Ja, wie kehrt man zum ersten Zustand „Auto braucht keinen Treibstoff“ zurück? Nachdem Sie Ihren Benzintank gefüllt haben, zeigt der Eingang einen vollen Tank an. In Ihrem zweiten Zustand benötigen Sie ein Übergangsereignis, das zum ersten Zustand zurückkehrt. Dieses Ereignis tritt ein, wenn die Eingabe empfangen wird (in den onInput: Ereignissen des zweiten Zustands). Es sollte in den ersten Zustand zurückkehren, wenn die Berechnungen ergeben, dass Sie jetzt genug Benzin haben, um dorthin zu gelangen, wo Sie hin möchten.

Das sind die Grundlagen. Einige Detektormodelle werden komplexer, wenn sie Zustände hinzufügen, die wichtige Eingaben widerspiegeln, nicht nur mögliche Aktionen. In einem Detektormodell, das die Temperatur erfasst, könnten beispielsweise drei Zustände vorliegen: ein „normaler“ Zustand, ein „zu heißer“ Zustand und ein Zustand mit „potenziellem Problem“. Sie gehen in den potenziellen Problemzustand über, wenn die Temperatur über ein bestimmtes Niveau steigt, aber noch nicht zu heiß geworden ist. Sie möchten keinen Alarm senden, es sei denn, die Temperatur bleibt länger als 15 Minuten bei dieser Temperatur. Wenn sich die Temperatur vorher wieder normalisiert hat, geht der Melder wieder in den Normalzustand über. Wenn der Timer abläuft, wechselt der Melder in den zu heißen Zustand und sendet einen Alarm, nur um vorsichtig zu sein. Sie könnten dasselbe tun, indem Sie Variablen und einen komplexeren Satz von Ereignisbedingungen verwenden. Oft ist es jedoch einfacher, einen anderen Status zu verwenden, um die Ergebnisse Ihrer Berechnungen tatsächlich zu speichern.

Woher wissen Sie, ob Sie eine oder mehrere Instanzen eines Detektors benötigen?

Um zu entscheiden, wie viele Instanzen Sie benötigen, fragen Sie sich: „Was möchten Sie wissen?“ Nehmen wir an, Sie möchten wissen, wie das Wetter heute ist. Regnet es (Bundesstaat)? Müssen Sie einen Regenschirm mitnehmen (Aktion)? Sie können einen Sensor verwenden, der die Temperatur meldet, einen anderen, der die Luftfeuchtigkeit meldet, und andere, die den Luftdruck, die Windgeschwindigkeit und -richtung sowie den Niederschlag melden. Sie müssen jedoch alle diese Sensoren gemeinsam überwachen, um den Wetterzustand (Regen, Schnee, Bewölkung, Sonne) und die entsprechenden Maßnahmen zu ermitteln (nehmen Sie sich einen Regenschirm oder tragen Sie Sonnencreme auf). Trotz der Anzahl der Sensoren möchten Sie, dass eine Melderinstanz den Wetterstatus überwacht und Sie darüber informiert, welche Maßnahmen zu ergreifen sind.

Wenn Sie jedoch für die Wettervorhersage in Ihrer Region verantwortlich sind, verfügen Sie möglicherweise über mehrere Instanzen solcher Sensoranordnungen, die sich an verschiedenen Orten in der Region befinden. Die Menschen an jedem Standort müssen wissen, wie das Wetter an diesem Ort ist. In diesem Fall benötigen Sie mehrere Instanzen Ihres Melders. Die von jedem Sensor an jedem Standort gemeldeten Daten müssen ein Feld enthalten, das Sie als key Feld festgelegt haben. Dieses Feld ermöglicht es, eine Melderinstanz für den Bereich AWS IoT Events zu erstellen und diese Informationen dann weiterhin an diese Melderinstanz weiterzuleiten, sobald sie eintreffen. Keine ruinierten Haare oder sonnenverbrannten Nasen mehr!

Im Grunde benötigen Sie eine Melderinstanz, wenn Sie eine Situation (einen Prozess oder einen Standort) überwachen müssen. Wenn Sie viele Situationen (Standorte, Prozesse) überwachen müssen, benötigen Sie mehrere Melderinstanzen.