In diesem Tutorial erfahren Sie, wie Sie eine unter Linux oder Windows ausgeführte IoT Plug & Play-Beispielgeräteanwendung mit einem IoT Hub verbinden
In diesem Tutorial erfahren Sie, wie Sie eine IoT Plug & Play-Beispielgeräteanwendung erstellen, mit Ihrem IoT-Hub verbinden und die von ihm gesendeten Telemetriedaten mithilfe des Tools Azure IoT-Explorer anzeigen können. Die Beispielanwendung ist in C geschrieben und im Azure IoT-Geräte-SDK für C enthalten. Ein Lösungsentwickler kann das Tool Azure IoT-Explorer verwenden, um mehr über die Funktionen eines IoT Plug & Play-Geräts zu erfahren, ohne Gerätecode anzeigen zu müssen.
Voraussetzungen
Vergewissern Sie sich, dass Sie Ihre Umgebung eingerichtet haben (einschließlich Ihres IoT-Hubs), bevor Sie den Vorgang fortsetzen.
Sie können dieses Tutorial unter Linux oder Windows durcharbeiten. Die Shellbefehle in diesem Tutorial entsprechen der Linux-Konvention für die Pfadtrennzeichen /
. Wenn Sie den Anleitungen unter Windows folgen, sollten Sie diese Trennzeichen durch \
ersetzen.
Die Voraussetzungen sind je nach Betriebssystem unterschiedlich:
Linux
In diesem Tutorial wird davon ausgegangen, dass Sie Ubuntu Linux nutzen. Die Schritte in diesem Tutorial wurden unter Ubuntu 18.04 getestet.
Installieren Sie die folgende Software in Ihrer lokalen Linux-Umgebung, um dieses Tutorial unter Linux durchzuarbeiten:
Installieren Sie GCC, Git, cmake und alle erforderlichen Abhängigkeiten mit dem Befehl apt-get
:
sudo apt-get update
sudo apt-get install -y git cmake build-essential curl libcurl4-openssl-dev libssl-dev uuid-dev
Überprüfen Sie, ob die Version von cmake
höher als 2.8.12 und die Version von GCC höher als 4.4.7 ist.
cmake --version
gcc --version
Windows
Installieren Sie die folgende Software in Ihrer lokalen Windows-Umgebung, um dieses Tutorial unter Windows durcharbeiten zu können:
- Visual Studio (Community, Professional oder Enterprise): Stellen Sie sicher, dass Sie die Workload Desktopentwicklung mit C++ aktivieren, wenn Sie Visual Studio installieren.
- Git.
- CMake.
Laden Sie den Code herunter.
In diesem Tutorial wird eine Entwicklungsumgebung vorbereitet, die Sie zum Klonen und Erstellen des Azure IoT Hub-Geräte-SDK für C verwenden können.
Öffnen Sie eine Eingabeaufforderung in einem Verzeichnis Ihrer Wahl. Führen Sie den folgenden Befehl zum Klonen des GitHub-Repositorys für das Azure IoT-C-SDK und die zugehörigen Bibliotheken an diesem Speicherort aus:
git clone https://github.com/Azure/azure-iot-sdk-c.git
cd azure-iot-sdk-c
git submodule update --init
Sie sollten damit rechnen, dass die Ausführung dieses Vorgangs mehrere Minuten in Anspruch nimmt.
Erstellen des Codes
Sie können den Code erstellen und ausführen, indem Sie Visual Studio oder cmake
in der Befehlszeile verwenden.
Verwenden von Visual Studio
Öffnen Sie den Stammordner des geklonten Repositorys. Nach einigen Sekunden werden über die CMake-Unterstützung in Visual Studio alle Komponenten erstellt, die Sie zum Ausführen und Debuggen des Projekts benötigen.
Wenn der Vorgang in Visual Studio abgeschlossen ist, navigieren Sie im Projektmappen-Explorer zum Beispiel iothub_client/samples/pnp/pnp_simple_thermostat/.
Klicken Sie mit der rechten Maustaste auf die Datei pnp_simple_thermostat.c, und wählen Sie Debugkonfiguration hinzufügen aus. Wählen Sie Default (Standard) aus.
In Visual Studio wird die Datei launch.vs.json geöffnet. Bearbeiten Sie diese Datei wie im folgenden Codeausschnitt gezeigt, um die erforderlichen Umgebungsvariablen festzulegen. Sie haben sich nach Abschluss des Vorgangs Einrichten Ihrer Umgebung für die IoT Plug & Play-Schnellstarts und -Tutorials die Bereichs-ID und den Primärschlüssel für die Registrierung notiert:
{ "version": "0.2.1", "defaults": {}, "configurations": [ { "type": "default", "project": "iothub_client\\samples\\pnp\\pnp_simple_thermostat\\pnp_pnp_simple_thermostat.c", "projectTarget": "", "name": "pnp_simple_thermostat.c", "env": { "IOTHUB_DEVICE_SECURITY_TYPE": "DPS", "IOTHUB_DEVICE_DPS_ID_SCOPE": "<Your ID scope>", "IOTHUB_DEVICE_DPS_DEVICE_ID": "my-pnp-device", "IOTHUB_DEVICE_DPS_DEVICE_KEY": "<Your enrollment primary key>" } } ] }
Klicken Sie mit der rechten Maustaste auf die Datei pnp_simple_thermostat.c, und wählen Sie Als Startelement festlegen aus.
Wenn Sie die Codeausführung in Visual Studio verfolgen möchten, fügen Sie der Funktion
main
in der Datei pnp_simple_thermostat.c einen Breakpoint hinzu.Sie können das Beispiel jetzt über das Menü Debuggen ausführen und debuggen.
Das Gerät ist jetzt zum Empfangen von Befehlen und Eigenschaftsaktualisierungen bereit und hat damit begonnen, Telemetriedaten an den Hub zu senden. Behalten Sie die Ausführung des Beispiels während der nächsten Schritte bei.
Verwenden von „cmake“ zum Erstellen des Codes
Mithilfe des Befehlszeilenprogramms „cmake“ können Sie den Code erstellen:
Erstellen Sie im Stammordner des Geräte-SDK den Unterordner cmake, und navigieren Sie zu diesem Ordner:
cd azure-iot-sdk-c mkdir cmake cd cmake
Führen Sie die folgenden Befehle aus, um das SDK und die Beispiele zu erstellen:
cmake -Duse_prov_client=ON -Dhsm_type_symm_key=ON -Drun_e2e_tests=OFF .. cmake --build .
Ausführen des Gerätebeispiels
In Einrichten Ihrer Umgebung haben Sie vier Umgebungsvariablen erstellt, um das Beispiel so zu konfigurieren, dass der Device Provisioning-Dienst (Device Provisioning Service, DPS) zum Herstellen einer Verbindung mit Ihrem IoT-Hub verwendet wird:
- IOTHUB_DEVICE_SECURITY_TYPE mit dem Wert
DPS
- IOTHUB_DEVICE_DPS_ID_SCOPE mit dem Bereich „DPS-ID“.
- IOTHUB_DEVICE_DPS_DEVICE_ID mit dem Wert
my-pnp-device
. - IOTHUB_DEVICE_DPS_DEVICE_KEY mit dem Primärschlüssel für die Registrierung.
- IOTHUB_DEVICE_DPS_ENDPOINT mit dem Wert
global.azure-devices-provisioning.net
.
Weitere Informationen zur Beispielkonfiguration finden Sie in der Beispiel-Infodatei.
Gehen Sie folgendermaßen vor, um die Beispielanwendung im SDK auszuführen, mit der ein IoT Plug & Play-Gerät simuliert wird, das Telemetriedaten an Ihren IoT-Hub sendet:
Navigieren Sie im Ordner cmake zu dem Ordner, der die ausführbare Datei enthält, und führen Sie diese aus:
# Bash
cd iothub_client/samples/pnp/pnp_simple_thermostat/
./pnp_simple_thermostat
REM Windows
cd iothub_client\samples\pnp\pnp_simple_thermostat\Debug
.\pnp_simple_thermostat.exe
Tipp
Wenn Sie die Codeausführung in Visual Studio unter Windows verfolgen möchten, fügen Sie der Funktion main
in der Datei main
einen Haltepunkt hinzu.
Das Gerät ist jetzt zum Empfangen von Befehlen und Eigenschaftsaktualisierungen bereit und hat damit begonnen, Telemetriedaten an den Hub zu senden. Behalten Sie die Ausführung des Beispiels während der nächsten Schritte bei.
Überprüfen des Codes mithilfe von Azure IoT-Explorer
Überprüfen Sie nach dem Start des Geräteclientbeispiels mithilfe von Azure IoT-Explorer, ob das Beispiel funktioniert.
Öffnen Sie den Azure-IoT-Explorer.
Wenn Sie Ihrem IoT-Hub noch keine Verbindung hinzugefügt haben, wählen Sie auf der Seite IoT-Hubs die Option + Verbindung hinzufügen aus. Geben Sie die Verbindungszeichenfolge für den zuvor erstellten IoT-Hub ein, und wählen Sie Speichern aus.
Klicken Sie auf der Seite IoT Plug and Play Settings (IoT Plug & Play-Einstellungen) auf + Hinzufügen > Lokaler Ordner, und wählen Sie den lokalen Ordner models aus, in dem Sie Ihre Modelldateien gespeichert haben.
Klicken Sie auf der Seite IoT-Hubs auf den Namen des Hubs, den Sie verwenden möchten. Eine Liste der Geräte wird angezeigt, die beim IoT-Hub registriert sind.
Klicken Sie auf die Geräte-ID des Geräts, das Sie zuvor erstellt haben.
Im Menü auf der linken Seite werden die verschiedenen Arten von Informationen angezeigt, die für das Gerät verfügbar sind.
Wählen Sie IoT Plug and Play components (IoT Plug & Play-Komponenten) aus, um die Modellinformationen für Ihr Gerät anzuzeigen.
Sie können die verschiedenen Komponenten des Geräts anzeigen. Die Standardkomponente und alle zusätzlichen Komponenten. Wählen Sie eine Komponente aus, mit der Sie arbeiten möchten.
Wählen Sie die Seite Telemetrie und dann Start aus, um die vom Gerät für diese Komponente gesendeten Telemetriedaten anzuzeigen.
Wählen Sie die Seite Eigenschaften (mit Schreibschutz) aus, um die für diese Komponente gemeldeten schreibgeschützten Eigenschaften anzuzeigen.
Navigieren Sie zur Seite Properties (writable) (Eigenschaften (schreibbar)), um die schreibbaren Eigenschaften anzuzeigen, die Sie für diese Komponente aktualisieren können.
Wählen Sie eine Eigenschaft nach ihrem Namen aus, geben Sie einen neuen Wert ein, und wählen Sie Update desired value (Gewünschten Wert aktualisieren) aus.
Klicken Sie auf die Schaltfläche Aktualisieren, damit der neue Wert angezeigt wird.
Wählen Sie die Seite Befehle aus, um alle Befehle für diese Komponente anzuzeigen.
Wählen Sie den zu testenden Befehl aus, und legen Sie ggf. den Parameter fest. Wählen Sie Befehl senden aus, um den Befehl auf dem Gerät aufzurufen. Sie können sehen, dass Ihr Gerät auf den Befehl im Eingabeaufforderungsfenster antwortet, in dem der Beispielcode ausgeführt wird.
Überprüfen des Codes
In diesem Beispiel wird ein einfacher IoT Plug & Play-Thermostat implementiert. Das Thermostatmodell verwendet keine IoT Plug & Play-Komponenten. Die DTDL-Modelldatei für den Thermostat definiert die vom Gerät implementierten Telemetriedaten, Eigenschaften und Befehle.
Der Gerätecode verwendet die Standardfunktion zum Herstellen einer Verbindung mit Ihrem IoT-Hub:
deviceHandle = IoTHubDeviceClient_CreateFromConnectionString(connectionString, MQTT_Protocol)
Das Gerät sendet die Modell-ID des in der Verbindungsanforderung implementierten DTDL-Modells. Ein Gerät, das eine Modell-ID sendet, ist ein IoT Plug & Play-Gerät:
static const char g_ModelId[] = "dtmi:com:example:Thermostat;1";
...
IoTHubDeviceClient_SetOption(deviceHandle, OPTION_MODEL_ID, modelId)
Der Code, der Eigenschaften aktualisiert, Befehle verarbeitet und Telemetriedaten sendet, ist identisch mit dem Code für ein Gerät, das keine IoT Plug & Play-Konventionen verwendet.
Im Code werden JSON-Objekte mithilfe der Parson-Bibliothek in den von Ihrem IoT-Hub gesendeten Nutzlasten analysiert:
// JSON parser
#include "parson.h"
Bereinigen von Ressourcen
Wenn Sie mit den Schnellstartanleitungen und Tutorials fertig sind, lesen Sie Bereinigen von Ressourcen.
In diesem Tutorial erfahren Sie, wie Sie eine IoT Plug & Play-Beispielgeräteanwendung erstellen, mit Ihrem IoT-Hub verbinden und die von ihm gesendeten Telemetriedaten mithilfe des Tools Azure IoT-Explorer anzeigen können. Die Beispielanwendung wurde in C# geschrieben und ist im Azure IoT-SDK für C# enthalten. Ein Lösungsentwickler kann mithilfe von Azure IoT-Explorer mehr über die Funktionen eines IoT Plug & Play-Geräts erfahren, ohne Gerätecode anzeigen zu müssen.
Voraussetzungen
Vergewissern Sie sich, dass Sie Ihre Umgebung eingerichtet haben (einschließlich Ihres IoT-Hubs), bevor Sie den Vorgang fortsetzen.
Sie können dieses Tutorial unter Linux oder Windows durcharbeiten. Die Shellbefehle in diesem Tutorial entsprechen der Linux-Konvention für die Pfadtrennzeichen /
. Wenn Sie den Anleitungen unter Windows folgen, sollten Sie diese Trennzeichen durch \
ersetzen.
Laden Sie den Code herunter.
In diesem Tutorial bereiten Sie eine Entwicklungsumgebung vor, die Sie zum Klonen und Erstellen des Azure IoT-SDK für C#-Repositorys verwenden können.
Öffnen Sie eine Eingabeaufforderung in einem Ordner Ihrer Wahl. Führen Sie den folgenden Befehl aus, um das GitHub-Repository Microsoft Azure IoT-SDK for C# (.NET) an diesem Speicherort zu klonen:
git clone https://github.com/Azure/azure-iot-sdk-csharp
Erstellen des Codes
Jetzt können Sie das Beispiel erstellen und ausführen. Führen Sie die folgenden Befehle zum Erstellen des Beispiels aus:
cd azure-iot-sdk-csharp/iothub/device/samples/solutions/PnpDeviceSamples/Thermostat
dotnet build
Ausführen des Gerätebeispiels
Führen Sie den folgenden Befehl zum Ausführen des Beispiels aus:
dotnet run
Das Gerät ist jetzt zum Empfangen von Befehlen und Eigenschaftsaktualisierungen bereit und hat damit begonnen, Telemetriedaten an den Hub zu senden. Behalten Sie die Ausführung des Beispiels während der nächsten Schritte bei.
Überprüfen des Codes mithilfe von Azure IoT-Explorer
Überprüfen Sie nach dem Start des Geräteclientbeispiels mithilfe von Azure IoT-Explorer, ob das Beispiel funktioniert.
Öffnen Sie den Azure-IoT-Explorer.
Wenn Sie Ihrem IoT-Hub noch keine Verbindung hinzugefügt haben, wählen Sie auf der Seite IoT-Hubs die Option + Verbindung hinzufügen aus. Geben Sie die Verbindungszeichenfolge für den zuvor erstellten IoT-Hub ein, und wählen Sie Speichern aus.
Klicken Sie auf der Seite IoT Plug and Play Settings (IoT Plug & Play-Einstellungen) auf + Hinzufügen > Lokaler Ordner, und wählen Sie den lokalen Ordner models aus, in dem Sie Ihre Modelldateien gespeichert haben.
Klicken Sie auf der Seite IoT-Hubs auf den Namen des Hubs, den Sie verwenden möchten. Eine Liste der Geräte wird angezeigt, die beim IoT-Hub registriert sind.
Klicken Sie auf die Geräte-ID des Geräts, das Sie zuvor erstellt haben.
Im Menü auf der linken Seite werden die verschiedenen Arten von Informationen angezeigt, die für das Gerät verfügbar sind.
Wählen Sie IoT Plug and Play components (IoT Plug & Play-Komponenten) aus, um die Modellinformationen für Ihr Gerät anzuzeigen.
Sie können die verschiedenen Komponenten des Geräts anzeigen. Die Standardkomponente und alle zusätzlichen Komponenten. Wählen Sie eine Komponente aus, mit der Sie arbeiten möchten.
Wählen Sie die Seite Telemetrie und dann Start aus, um die vom Gerät für diese Komponente gesendeten Telemetriedaten anzuzeigen.
Wählen Sie die Seite Eigenschaften (mit Schreibschutz) aus, um die für diese Komponente gemeldeten schreibgeschützten Eigenschaften anzuzeigen.
Navigieren Sie zur Seite Properties (writable) (Eigenschaften (schreibbar)), um die schreibbaren Eigenschaften anzuzeigen, die Sie für diese Komponente aktualisieren können.
Wählen Sie eine Eigenschaft nach ihrem Namen aus, geben Sie einen neuen Wert ein, und wählen Sie Update desired value (Gewünschten Wert aktualisieren) aus.
Klicken Sie auf die Schaltfläche Aktualisieren, damit der neue Wert angezeigt wird.
Wählen Sie die Seite Befehle aus, um alle Befehle für diese Komponente anzuzeigen.
Wählen Sie den zu testenden Befehl aus, und legen Sie ggf. den Parameter fest. Wählen Sie Befehl senden aus, um den Befehl auf dem Gerät aufzurufen. Sie können sehen, dass Ihr Gerät auf den Befehl im Eingabeaufforderungsfenster antwortet, in dem der Beispielcode ausgeführt wird.
Überprüfen des Codes
In diesem Beispiel wird ein einfacher IoT Plug & Play-Thermostat implementiert. Das in diesem Beispiel implementierte Modell verwendet keine IoT Plug & Play-Komponenten. Die DTDL-Modelldatei (Digital Twins Definition Language) für das Thermostat definiert die vom Gerät implementierten Telemetriedaten, Eigenschaften und Befehle.
Der Gerätecode stellt mithilfe der Standardmethode CreateFromConnectionString
eine Verbindung mit Ihrem IoT-Hub her. Das Gerät sendet die Modell-ID des in der Verbindungsanforderung implementierten DTDL-Modells. Ein Gerät, das eine Modell-ID sendet, ist ein IoT Plug & Play-Gerät:
private static void InitializeDeviceClientAsync()
{
var options = new ClientOptions
{
ModelId = ModelId,
};
s_deviceClient = DeviceClient.CreateFromConnectionString(s_deviceConnectionString, TransportType.Mqtt, options);
s_deviceClient.SetConnectionStatusChangesHandler((status, reason) =>
{
s_logger.LogDebug($"Connection status change registered - status={status}, reason={reason}.");
});
}
Die Modell-ID wird im Code gespeichert, wie im folgenden Codeausschnitt zu sehen ist:
private const string ModelId = "dtmi:com:example:Thermostat;1";
Der Code, der Eigenschaften aktualisiert, Befehle verarbeitet und Telemetriedaten sendet, ist identisch mit dem Code für ein Gerät, das keine IoT Plug & Play Konventionen verwendet.
Im Beispiel werden JSON-Objekte mithilfe einer JSON-Bibliothek in den von Ihrem IoT-Hub gesendeten Nutzlasten analysiert:
using Newtonsoft.Json;
...
DateTime since = JsonConvert.DeserializeObject<DateTime>(request.DataAsJson);
Bereinigen von Ressourcen
Wenn Sie mit den Schnellstartanleitungen und Tutorials fertig sind, lesen Sie Bereinigen von Ressourcen.
In diesem Tutorial erfahren Sie, wie Sie eine IoT Plug & Play-Beispielgeräteanwendung erstellen, mit Ihrem IoT-Hub verbinden und die von ihm gesendeten Telemetriedaten mithilfe des Tools Azure IoT-Explorer anzeigen können. Die Beispielanwendung wurde in Java geschrieben und ist im Azure IoT-Geräte-SDK für Java enthalten. Ein Lösungsentwickler kann mithilfe von Azure IoT-Explorer mehr über die Funktionen eines IoT Plug & Play-Geräts erfahren, ohne Gerätecode anzeigen zu müssen.
Voraussetzungen
Vergewissern Sie sich, dass Sie Ihre Umgebung eingerichtet haben (einschließlich Ihres IoT-Hubs), bevor Sie den Vorgang fortsetzen.
Sie können dieses Tutorial unter Linux oder Windows durcharbeiten. Die Shellbefehle in diesem Tutorial entsprechen der Linux-Konvention für die Pfadtrennzeichen /
. Wenn Sie den Anleitungen unter Windows folgen, sollten Sie diese Trennzeichen durch \
ersetzen.
Installieren Sie die folgende Software in Ihrer lokalen Entwicklungsumgebung, um dieses Tutorial durcharbeiten zu können:
Laden Sie den Code herunter.
In diesem Tutorial wird eine Entwicklungsumgebung vorbereitet, die Sie zum Klonen und Erstellen des Azure IoT Hub-Geräte-SDKs für Java verwenden können.
Öffnen Sie eine Eingabeaufforderung in einem Verzeichnis Ihrer Wahl. Führen Sie den folgenden Befehl zum Klonen des GitHub-Repositorys für Azure IoT-Java-SDKs und die zugehörigen Bibliotheken an diesem Speicherort aus:
git clone https://github.com/Azure/azure-iot-sdk-java.git
Erstellen des Codes
Navigieren Sie im geklonten Java SDK-Repository zum Stammordner des Thermostatbeispiels, und erstellen Sie es:
cd azure-iot-sdk-java/device/iot-device-samples/pnp-device-sample/thermostat-device-sample
mvn clean package
Ausführen des Gerätebeispiels
In Einrichten Ihrer Umgebung haben Sie vier Umgebungsvariablen erstellt, um das Beispiel so zu konfigurieren, dass der Device Provisioning-Dienst (Device Provisioning Service, DPS) zum Herstellen einer Verbindung mit Ihrem IoT-Hub verwendet wird:
- IOTHUB_DEVICE_SECURITY_TYPE mit dem Wert
DPS
- IOTHUB_DEVICE_DPS_ID_SCOPE mit dem Bereich „DPS-ID“.
- IOTHUB_DEVICE_DPS_DEVICE_ID mit dem Wert
my-pnp-device
. - IOTHUB_DEVICE_DPS_DEVICE_KEY mit dem Primärschlüssel für die Registrierung.
- IOTHUB_DEVICE_DPS_ENDPOINT mit dem Wert
global.azure-devices-provisioning.net
.
Weitere Informationen zur Beispielkonfiguration finden Sie in der Beispiel-Infodatei.
Führen Sie die Anwendung aus dem Ordner \device\iot-device-samples\pnp-device-sample\thermostat-device-sample aus:
mvn exec:java -Dexec.mainClass="samples.com.microsoft.azure.sdk.iot.device.Thermostat"
Das Gerät ist jetzt zum Empfangen von Befehlen und Eigenschaftsaktualisierungen bereit und hat damit begonnen, Telemetriedaten an den Hub zu senden. Behalten Sie die Ausführung des Beispiels während der nächsten Schritte bei.
Überprüfen des Codes mithilfe von Azure IoT-Explorer
Überprüfen Sie nach dem Start des Geräteclientbeispiels mithilfe von Azure IoT-Explorer, ob das Beispiel funktioniert.
Öffnen Sie den Azure-IoT-Explorer.
Wenn Sie Ihrem IoT-Hub noch keine Verbindung hinzugefügt haben, wählen Sie auf der Seite IoT-Hubs die Option + Verbindung hinzufügen aus. Geben Sie die Verbindungszeichenfolge für den zuvor erstellten IoT-Hub ein, und wählen Sie Speichern aus.
Klicken Sie auf der Seite IoT Plug and Play Settings (IoT Plug & Play-Einstellungen) auf + Hinzufügen > Lokaler Ordner, und wählen Sie den lokalen Ordner models aus, in dem Sie Ihre Modelldateien gespeichert haben.
Klicken Sie auf der Seite IoT-Hubs auf den Namen des Hubs, den Sie verwenden möchten. Eine Liste der Geräte wird angezeigt, die beim IoT-Hub registriert sind.
Klicken Sie auf die Geräte-ID des Geräts, das Sie zuvor erstellt haben.
Im Menü auf der linken Seite werden die verschiedenen Arten von Informationen angezeigt, die für das Gerät verfügbar sind.
Wählen Sie IoT Plug and Play components (IoT Plug & Play-Komponenten) aus, um die Modellinformationen für Ihr Gerät anzuzeigen.
Sie können die verschiedenen Komponenten des Geräts anzeigen. Die Standardkomponente und alle zusätzlichen Komponenten. Wählen Sie eine Komponente aus, mit der Sie arbeiten möchten.
Wählen Sie die Seite Telemetrie und dann Start aus, um die vom Gerät für diese Komponente gesendeten Telemetriedaten anzuzeigen.
Wählen Sie die Seite Eigenschaften (mit Schreibschutz) aus, um die für diese Komponente gemeldeten schreibgeschützten Eigenschaften anzuzeigen.
Navigieren Sie zur Seite Properties (writable) (Eigenschaften (schreibbar)), um die schreibbaren Eigenschaften anzuzeigen, die Sie für diese Komponente aktualisieren können.
Wählen Sie eine Eigenschaft nach ihrem Namen aus, geben Sie einen neuen Wert ein, und wählen Sie Update desired value (Gewünschten Wert aktualisieren) aus.
Klicken Sie auf die Schaltfläche Aktualisieren, damit der neue Wert angezeigt wird.
Wählen Sie die Seite Befehle aus, um alle Befehle für diese Komponente anzuzeigen.
Wählen Sie den zu testenden Befehl aus, und legen Sie ggf. den Parameter fest. Wählen Sie Befehl senden aus, um den Befehl auf dem Gerät aufzurufen. Sie können sehen, dass Ihr Gerät auf den Befehl im Eingabeaufforderungsfenster antwortet, in dem der Beispielcode ausgeführt wird.
Überprüfen des Codes
In diesem Beispiel wird ein einfacher IoT Plug & Play-Thermostat implementiert. Das in diesem Beispiel implementierte Modell verwendet keine IoT Plug & Play-Komponenten. Die DTDL-Modelldatei für das Thermostat definiert die vom Gerät implementierten Telemetriedaten, Eigenschaften und Befehle.
Der Gerätecode verwendet die Standardklasse DeviceClient
zum Herstellen einer Verbindung mit Ihrem IoT-Hub. Das Gerät sendet die Modell-ID des in der Verbindungsanforderung implementierten DTDL-Modells. Ein Gerät, das eine Modell-ID sendet, ist ein IoT Plug & Play-Gerät:
private static void initializeDeviceClient() throws URISyntaxException, IOException {
ClientOptions options = new ClientOptions();
options.setModelId(MODEL_ID);
deviceClient = new DeviceClient(deviceConnectionString, protocol, options);
deviceClient.registerConnectionStatusChangeCallback((status, statusChangeReason, throwable, callbackContext) -> {
log.debug("Connection status change registered: status={}, reason={}", status, statusChangeReason);
if (throwable != null) {
log.debug("The connection status change was caused by the following Throwable: {}", throwable.getMessage());
throwable.printStackTrace();
}
}, deviceClient);
deviceClient.open();
}
Die Modell-ID wird im Code gespeichert, wie im folgenden Codeausschnitt zu sehen ist:
private static final String MODEL_ID = "dtmi:com:example:Thermostat;1";
Der Code, der Eigenschaften aktualisiert, Befehle verarbeitet und Telemetriedaten sendet, ist identisch mit dem Code für ein Gerät, das keine IoT Plug & Play Konventionen verwendet.
Im Beispiel werden JSON-Objekte mithilfe einer JSON-Bibliothek in den von Ihrem IoT-Hub gesendeten Nutzlasten analysiert:
import com.google.gson.Gson;
...
Date since = new Gson().fromJson(jsonRequest, Date.class);
Bereinigen von Ressourcen
Wenn Sie mit den Schnellstartanleitungen und Tutorials fertig sind, lesen Sie Bereinigen von Ressourcen.
In diesem Tutorial erfahren Sie, wie Sie eine IoT Plug & Play-Beispielgeräteanwendung erstellen, mit Ihrem IoT-Hub verbinden und die von ihm gesendeten Telemetriedaten mithilfe des Tools Azure IoT-Explorer anzeigen können. Die Beispielanwendung wurde in Node.js geschrieben und ist im Azure IoT-Geräte-SDK für Node.js enthalten. Ein Lösungsentwickler kann mithilfe von Azure IoT-Explorer mehr über die Funktionen eines IoT Plug & Play-Geräts erfahren, ohne Gerätecode anzeigen zu müssen.
Voraussetzungen
Vergewissern Sie sich, dass Sie Ihre Umgebung eingerichtet haben (einschließlich Ihres IoT-Hubs), bevor Sie den Vorgang fortsetzen.
Sie können dieses Tutorial unter Linux oder Windows durcharbeiten. Die Shellbefehle in diesem Tutorial entsprechen der Linux-Konvention für die Pfadtrennzeichen /
. Wenn Sie den Anleitungen unter Windows folgen, sollten Sie diese Trennzeichen durch \
ersetzen.
Für dieses Tutorial muss sich Node.js auf Ihrem Entwicklungscomputer befinden. Sie können die neueste empfohlene Version für mehrere Plattformen von nodejs.org herunterladen.
Mit dem folgenden Befehl können Sie die aktuelle Node.js-Version auf Ihrem Entwicklungscomputer überprüfen:
node --version
Laden Sie den Code herunter.
In diesem Tutorial wird eine Entwicklungsumgebung vorbereitet, die Sie zum Klonen und Erstellen des Azure IoT Hub-Geräte-SDKs für Node.js verwenden können.
Öffnen Sie eine Eingabeaufforderung in einem Verzeichnis Ihrer Wahl. Führen Sie den folgenden Befehl aus, um das GitHub-Repository Microsoft Azure IoT SDK for Node.js an diesem Speicherort zu klonen:
git clone https://github.com/Azure/azure-iot-sdk-node
Installieren der erforderlichen Bibliotheken
Sie verwenden das Geräte-SDK, um den enthaltenen Beispielcode zu erstellen. Die von Ihnen erstellte Anwendung simuliert ein Gerät, mit dem eine Verbindung mit einem IoT-Hub hergestellt wird. Die Anwendung sendet Telemetriedaten und Eigenschaften und empfängt Befehle.
Wechseln Sie in einem lokalen Terminalfenster zum Ordner Ihres geklonten Repositorys, und navigieren Sie zum Ordner /azure-iot-sdk-node/device/samples/javascript. Führen Sie dann den folgenden Befehl aus, um die erforderlichen Bibliotheken zu installieren:
npm install
Ausführen des Beispielgeräts
In diesem Beispiel wird ein einfacher IoT Plug & Play-Thermostat implementiert. Das in diesem Beispiel implementierte Modell verwendet keine IoT Plug & Play-Komponenten. Die DTDL-Modelldatei für den Thermostat definiert die vom Gerät implementierten Telemetriedaten, Eigenschaften und Befehle.
Öffnen Sie die Datei pnp_simple_thermostat.js. In dieser Datei können Sie folgende Aktionen sehen:
- Importieren der erforderlichen Schnittstellen
- Schreiben eines Updatehandlers für Eigenschaften und eines Befehlshandlers
- Verarbeiten gewünschter Eigenschaftenpatches und Senden von Telemetriedaten
- Optional können Sie Ihr Gerät mithilfe des Azure Device Provisioning-Diensts (DPS) bereitstellen.
In der Hauptfunktion können Sie sehen, wie alles zusammengestellt wird:
- Erstellen Sie das Gerät aus Ihrer Verbindungszeichenfolge, oder stellen Sie es mithilfe von DPS bereit.)
- Verwenden Sie die Option modelID, um das IoT Plug & Play-Gerätemodell anzugeben.
- Aktivieren Sie den Befehlshandler.
- Senden Sie Telemetriedaten vom Gerät an Ihren Hub.
- Rufen Sie den Gerätezwilling ab, und aktualisieren Sie die gemeldeten Eigenschaften.
- Aktivieren Sie den Updatehandler für gewünschte Eigenschaften.
In Einrichten Ihrer Umgebung haben Sie vier Umgebungsvariablen erstellt, um das Beispiel so zu konfigurieren, dass der Device Provisioning-Dienst (Device Provisioning Service, DPS) zum Herstellen einer Verbindung mit Ihrem IoT-Hub verwendet wird:
- IOTHUB_DEVICE_SECURITY_TYPE mit dem Wert
DPS
- IOTHUB_DEVICE_DPS_ID_SCOPE mit dem Bereich „DPS-ID“.
- IOTHUB_DEVICE_DPS_DEVICE_ID mit dem Wert
my-pnp-device
. - IOTHUB_DEVICE_DPS_DEVICE_KEY mit dem Primärschlüssel für die Registrierung.
- IOTHUB_DEVICE_DPS_ENDPOINT mit dem Wert
global.azure-devices-provisioning.net
.
Weitere Informationen zur Beispielkonfiguration finden Sie in der Beispiel-Infodatei.
Führen Sie die Beispielanwendung zum Simulieren eines IoT Plug & Play-Geräts aus, das Telemetriedaten an Ihren IoT-Hub sendet. Um die Beispielanwendung auszuführen, verwenden Sie den folgenden Befehl:
node pnp_simple_thermostat.js
Sie sehen die folgende Ausgabe. Das bedeutet, dass das Gerät mit dem Senden von Telemetriedaten an den Hub begonnen hat und jetzt zum Empfangen von Befehlen und Eigenschaftenaktualisierungen bereit ist.
Behalten Sie die Ausführung des Beispiels während der nächsten Schritte bei.
Überprüfen des Codes mithilfe von Azure IoT-Explorer
Überprüfen Sie nach dem Start des Geräteclientbeispiels mithilfe von Azure IoT-Explorer, ob das Beispiel funktioniert.
Öffnen Sie den Azure-IoT-Explorer.
Wenn Sie Ihrem IoT-Hub noch keine Verbindung hinzugefügt haben, wählen Sie auf der Seite IoT-Hubs die Option + Verbindung hinzufügen aus. Geben Sie die Verbindungszeichenfolge für den zuvor erstellten IoT-Hub ein, und wählen Sie Speichern aus.
Klicken Sie auf der Seite IoT Plug and Play Settings (IoT Plug & Play-Einstellungen) auf + Hinzufügen > Lokaler Ordner, und wählen Sie den lokalen Ordner models aus, in dem Sie Ihre Modelldateien gespeichert haben.
Klicken Sie auf der Seite IoT-Hubs auf den Namen des Hubs, den Sie verwenden möchten. Eine Liste der Geräte wird angezeigt, die beim IoT-Hub registriert sind.
Klicken Sie auf die Geräte-ID des Geräts, das Sie zuvor erstellt haben.
Im Menü auf der linken Seite werden die verschiedenen Arten von Informationen angezeigt, die für das Gerät verfügbar sind.
Wählen Sie IoT Plug and Play components (IoT Plug & Play-Komponenten) aus, um die Modellinformationen für Ihr Gerät anzuzeigen.
Sie können die verschiedenen Komponenten des Geräts anzeigen. Die Standardkomponente und alle zusätzlichen Komponenten. Wählen Sie eine Komponente aus, mit der Sie arbeiten möchten.
Wählen Sie die Seite Telemetrie und dann Start aus, um die vom Gerät für diese Komponente gesendeten Telemetriedaten anzuzeigen.
Wählen Sie die Seite Eigenschaften (mit Schreibschutz) aus, um die für diese Komponente gemeldeten schreibgeschützten Eigenschaften anzuzeigen.
Navigieren Sie zur Seite Properties (writable) (Eigenschaften (schreibbar)), um die schreibbaren Eigenschaften anzuzeigen, die Sie für diese Komponente aktualisieren können.
Wählen Sie eine Eigenschaft nach ihrem Namen aus, geben Sie einen neuen Wert ein, und wählen Sie Update desired value (Gewünschten Wert aktualisieren) aus.
Klicken Sie auf die Schaltfläche Aktualisieren, damit der neue Wert angezeigt wird.
Wählen Sie die Seite Befehle aus, um alle Befehle für diese Komponente anzuzeigen.
Wählen Sie den zu testenden Befehl aus, und legen Sie ggf. den Parameter fest. Wählen Sie Befehl senden aus, um den Befehl auf dem Gerät aufzurufen. Sie können sehen, dass Ihr Gerät auf den Befehl im Eingabeaufforderungsfenster antwortet, in dem der Beispielcode ausgeführt wird.
Bereinigen von Ressourcen
Wenn Sie mit den Schnellstartanleitungen und Tutorials fertig sind, lesen Sie Bereinigen von Ressourcen.
In diesem Tutorial erfahren Sie, wie Sie eine IoT Plug & Play-Beispielgeräteanwendung erstellen, mit Ihrem IoT-Hub verbinden und die von ihm gesendeten Telemetriedaten mithilfe des Tools Azure IoT-Explorer anzeigen können. Die Beispielanwendung wurde für Python geschrieben und ist im Azure IoT Hub-Geräte-SDK für Python enthalten. Ein Lösungsentwickler kann mithilfe von Azure IoT-Explorer mehr über die Funktionen eines IoT Plug & Play-Geräts erfahren, ohne Gerätecode anzeigen zu müssen.
Voraussetzungen
Vergewissern Sie sich, dass Sie Ihre Umgebung eingerichtet haben (einschließlich Ihres IoT-Hubs), bevor Sie den Vorgang fortsetzen.
Für dieses Tutorial benötigen Sie auf Ihrem Entwicklungscomputer Python. Prüfen Sie das Azure IoT Python SDK auf die aktuellen Python-Versionsanforderungen. Sie können Ihre Python-Version mit dem folgenden Befehl überprüfen:
python --version
Die neueste empfohlene Version kann für mehrere Plattformen von python.org heruntergeladen werden.
Installieren Sie das Paket in Ihrer lokalen Python-Umgebung wie folgt:
pip install azure-iot-device
So klonen Sie das Python SDK IoT-Repository:
git clone --branch v2 https://github.com/Azure/azure-iot-sdk-python
Ausführen des Beispielgeräts
Der Ordner azure-iot-sdk-python\samples\pnp enthält den Beispielcode für das IoT Plug & Play-Gerät. In diesem Tutorial wird die Datei simple_thermostat.py verwendet. Dieser Beispielcode implementiert ein IoT Plug & Play-kompatibles Gerät und verwendet die Clientbibliothek des Azure IoT-Python-Geräts.
Öffnen Sie die Datei simple_thermostat.py in einem Text-Editor. Beachten Sie folgende Besonderheiten der Datei:
Definiert einen einzelnen Gerätezwilling-Modellbezeichner (Device Twin Model Identifier, DTMI), der den Thermostat eindeutig darstellt. Ein DTMI muss dem Benutzer bekannt sein und variiert je nach Szenario der Geräteimplementierung. Im aktuellen Beispiel stellt das Modell einen Thermostat dar, der über Telemetriedaten, Eigenschaften und Befehle im Zusammenhang mit der Temperaturüberwachung verfügt.
Verfügt über Funktionen zum Definieren von Befehlshandlerimplementierungen. Sie schreiben diese Handler, um zu definieren, wie das Gerät auf Befehlsanforderungen antwortet.
Verfügt über eine Funktion zum Definieren einer Befehlsantwort. Sie erstellen Befehlsantwortfunktionen, um eine Antwort zurück an Ihren IoT-Hub zu senden.
Definiert eine Listenerfunktion für die Eingabetastatur, mit der Sie die Anwendung beenden können.
Verfügt über eine main-Funktion. Die main-Funktion erfüllt folgende Aufgaben:
Verwendet das Geräte-SDK zum Erstellen eines Geräteclients und zum Herstellen einer Verbindung mit Ihrem IoT-Hub.
Aktualisiert Eigenschaften. Das Modell Thermostat definiert
targetTemperature
undmaxTempSinceLastReboot
als die beiden Eigenschaften für das Thermostat. Eigenschaften werden mit derpatch_twin_reported_properties
-Methode aktualisiert, die auf demdevice_client
definiert ist.Beginnt mit dem Lauschen auf Befehlsanforderungen mithilfe der execute_command_listener-Funktion. Die Funktion richtet einen „Listener“ ein, um auf Befehle vom Dienst zu lauschen. Beim Einrichten des Listeners geben Sie die Werte
method_name
,user_command_handler
undcreate_user_response_handler
an.- Die Funktion
user_command_handler
definiert, was das Gerät tun soll, wenn es einen Befehl empfängt. - Die Funktion
create_user_response_handler
erstellt eine Antwort, die an Ihren IoT-Hub gesendet wird, wenn ein Befehl erfolgreich ausgeführt wird. Sie können diese Antwort im Portal anzeigen.
- Die Funktion
Beginnt mit dem Senden von Telemetriedaten. pnp_send_telemetry ist in der Datei „pnp_methods.py“ definiert. Im Beispielcode wird eine-Schleife verwendet, um diese Funktion alle acht Sekunden aufzurufen.
Deaktiviert alle Listener und Tasks und beendet die Schleife, wenn Sie Q oder q drücken.
In Einrichten Ihrer Umgebung haben Sie vier Umgebungsvariablen erstellt, um das Beispiel so zu konfigurieren, dass der Device Provisioning-Dienst (Device Provisioning Service, DPS) zum Herstellen einer Verbindung mit Ihrem IoT-Hub verwendet wird:
- IOTHUB_DEVICE_SECURITY_TYPE mit dem Wert
DPS
- IOTHUB_DEVICE_DPS_ID_SCOPE mit dem Bereich „DPS-ID“.
- IOTHUB_DEVICE_DPS_DEVICE_ID mit dem Wert
my-pnp-device
. - IOTHUB_DEVICE_DPS_DEVICE_KEY mit dem Primärschlüssel für die Registrierung.
- IOTHUB_DEVICE_DPS_ENDPOINT mit dem Wert
global.azure-devices-provisioning.net
.
Weitere Informationen zur Beispielkonfiguration finden Sie in der Beispiel-Infodatei.
Nachdem Sie den Code gesehen haben, verwenden Sie den folgenden Befehl, um das Beispiel auszuführen:
python simple_thermostat.py
Sie sehen die folgende Ausgabe. Das bedeutet, dass das Gerät Telemetriedaten an den Hub sendet und jetzt zum Empfangen von Befehlen und Eigenschaftenaktualisierungen bereit ist:
Listening for command requests and property updates
Press Q to quit
Sending telemetry for temperature
Sent message
Behalten Sie die Ausführung des Beispiels während der nächsten Schritte bei.
Überprüfen des Codes mithilfe von Azure IoT-Explorer
Überprüfen Sie nach dem Start des Geräteclientbeispiels mithilfe von Azure IoT-Explorer, ob das Beispiel funktioniert.
Öffnen Sie den Azure-IoT-Explorer.
Wenn Sie Ihrem IoT-Hub noch keine Verbindung hinzugefügt haben, wählen Sie auf der Seite IoT-Hubs die Option + Verbindung hinzufügen aus. Geben Sie die Verbindungszeichenfolge für den zuvor erstellten IoT-Hub ein, und wählen Sie Speichern aus.
Klicken Sie auf der Seite IoT Plug and Play Settings (IoT Plug & Play-Einstellungen) auf + Hinzufügen > Lokaler Ordner, und wählen Sie den lokalen Ordner models aus, in dem Sie Ihre Modelldateien gespeichert haben.
Klicken Sie auf der Seite IoT-Hubs auf den Namen des Hubs, den Sie verwenden möchten. Eine Liste der Geräte wird angezeigt, die beim IoT-Hub registriert sind.
Klicken Sie auf die Geräte-ID des Geräts, das Sie zuvor erstellt haben.
Im Menü auf der linken Seite werden die verschiedenen Arten von Informationen angezeigt, die für das Gerät verfügbar sind.
Wählen Sie IoT Plug and Play components (IoT Plug & Play-Komponenten) aus, um die Modellinformationen für Ihr Gerät anzuzeigen.
Sie können die verschiedenen Komponenten des Geräts anzeigen. Die Standardkomponente und alle zusätzlichen Komponenten. Wählen Sie eine Komponente aus, mit der Sie arbeiten möchten.
Wählen Sie die Seite Telemetrie und dann Start aus, um die vom Gerät für diese Komponente gesendeten Telemetriedaten anzuzeigen.
Wählen Sie die Seite Eigenschaften (mit Schreibschutz) aus, um die für diese Komponente gemeldeten schreibgeschützten Eigenschaften anzuzeigen.
Navigieren Sie zur Seite Properties (writable) (Eigenschaften (schreibbar)), um die schreibbaren Eigenschaften anzuzeigen, die Sie für diese Komponente aktualisieren können.
Wählen Sie eine Eigenschaft nach ihrem Namen aus, geben Sie einen neuen Wert ein, und wählen Sie Update desired value (Gewünschten Wert aktualisieren) aus.
Klicken Sie auf die Schaltfläche Aktualisieren, damit der neue Wert angezeigt wird.
Wählen Sie die Seite Befehle aus, um alle Befehle für diese Komponente anzuzeigen.
Wählen Sie den zu testenden Befehl aus, und legen Sie ggf. den Parameter fest. Wählen Sie Befehl senden aus, um den Befehl auf dem Gerät aufzurufen. Sie können sehen, dass Ihr Gerät auf den Befehl im Eingabeaufforderungsfenster antwortet, in dem der Beispielcode ausgeführt wird.
Bereinigen von Ressourcen
Wenn Sie mit den Schnellstartanleitungen und Tutorials fertig sind, lesen Sie Bereinigen von Ressourcen.
Wenn Sie für eingeschränkte Geräte entwickeln, können Sie IoT Plug & Play zusammen mit Folgendem verwenden:
Dieser Artikel enthält Links und Ressourcen für diese eingeschränkten Szenarien.
Voraussetzungen
Viele der folgenden Beispiele erfordern ein bestimmtes Hardwaregerät, und die Voraussetzungen für die einzelnen Beispiele unterscheiden sich. Klicken Sie jeweils auf den Link für das entsprechende Beispiel, um ausführliche Anweisungen zu Voraussetzungen, zur Konfiguration und zum Build zu erhalten.
Verwenden des SDK for Embedded C
Das SDK for Embedded C bietet eine schlanke Lösung zum Verbinden von eingeschränkten Geräten mit Azure IoT-Diensten, einschließlich der Verwendung der IoT Plug & Play-Konventionen. Die folgenden Links führen zu Beispielen für MPU-basierte Geräte und für Schulungs- und Debugzwecke.
Verwenden eines MPU-basierten Geräts
Ein vollständiges End-to-End-Tutorial mit dem SDK für Embedded C, Device Provisioning Service und IoT Plug & Play auf einem MPU-Gerät finden Sie unter Bereitstellen des Microchip PIC-IoT Wx-Entwicklungsboards für das Herstellen einer Verbindung mit Azure IoT-Diensten.
Beispiele zur Einführung
Das SDK for Embedded C-Repository enthält mehrere Beispiele zur Verdeutlichung der Verwendung von IoT Plug & Play:
Hinweis
Diese Beispiele werden zu Schulungs- und Debugzwecken bei der Ausführung unter Windows und Linux gezeigt. In einem Produktionsszenario sind die Beispiele nur für eingeschränkte Geräte vorgesehen.
Verwenden von Eclipse ThreadX
Eclipse ThreadX umfasst eine vereinfachte Schicht, die native Konnektivität zu Azure IoT-Clouddiensten hinzufügt. Diese Schicht bietet einen einfachen Mechanismus zum Verbinden eingeschränkter Geräte mit Azure IoT und verwendet zugleich die erweiterten Funktionen von Eclipse ThreadX. Weitere Informationen finden Sie in der Eclipse ThreadX-Übersicht.
Toolketten
Die Eclipse ThreadX-Beispiele stehen mit verschiedenen Kombinationen aus IDE und Toolkette zur Verfügung, etwa:
- IAR: Embedded Workbench-IDE von IAR
- GCC/CMake: Erstellen von Builds auf der Grundlage des Open-Source-Buildsystems CMake und der GNU Arm Embedded-Toolkette.
- MCUExpresso: MCUXpresso-IDE von NXP
- STM32Cube: STM32Cube-IDE von STMicroelectronics
- MPLAB: MPLAB X-IDE von Microchip
Beispiele
Die folgende Tabelle enthält Beispiele, die den Einstieg für verschiedene Geräte mit Eclipse ThreadX und IoT Plug & Play zeigen:
Hersteller | Sicherungsmedium | Beispiele |
---|---|---|
Microchip | ATSAME54-XPRO | GCC/CMake • IAR • MPLAB |
MXCHIP | AZ3166 | GCC/CMake |
NXP | MIMXRT1060-EVK | GCC/CMake • IAR • MCUXpresso |
STMicroelectronics | 32F746GDISCOVERY | IAR • STM32Cube |
STMicroelectronics | B-L475E-IOT01 | GCC/CMake • IAR • STM32Cube |
STMicroelectronics | B-L4S5I-IOT01 | GCC/CMake • IAR • STM32Cube |
Nächste Schritte
In diesem Tutorial haben Sie erfahren, wie ein IoT Plug & Play-Gerät mit einem IoT-Hub verbunden wird. Weitere Informationen zum Erstellen einer Lösung, die mit Ihren IoT Plug & Play-Geräten interagiert, finden Sie im folgenden Artikel: