Share via


Sensorintegration als Kunde

Führen Sie die Schritte aus, um die Integration mit einem Sensorpartner zu ermöglichen, damit der Partner die Daten in Ihre Data Manager for Agriculture-Instanz übertragen kann.

Jeder Sensorpartner hat eine eigene Multimandanten-Microsoft Entra-App erstellt und veröffentlicht auf der Data Manager for Agriculture-Plattform. Der Sensorpartner, der standardmäßig auf der Plattform unterstützt wird, ist Davis Instruments (sensorPartnerId: DavisInstruments).

Um mit der Verwendung der an Bord befindlichen Sensorpartner zu beginnen, müssen Sie dem Sensorpartner zustimmen, damit sie mit der Anzeige App Registrationsbeginnen. Die schritte, die Sie ausführen müssen:

  1. Melden Sie sich mit den Anmeldeinformationen "Globaler Administrator" oder "Privilegierter Rollenadministrator" bei Azure-Portal an.

  2. Klicken Sie für Davis Instruments auf diesen Link , um ihre Zustimmung zu erteilen.

  3. Auf der Seite "Berechtigungsüberprüfung" fordert die Microsoft Entra-App mindestens die Berechtigung "Benutzerprofil lesen" an. Diese Berechtigungsstufe reicht für die Sensorintegration in Data Manager for Agriculture aus.

  4. Klicken Sie auf die Schaltfläche "Annehmen", um der Administratorzustimmung zuzustimmen.

  5. Suchen Sie Davis Instruments WeatherLink Data Manager for Agriculture Connector nun auf der Seite unter "Alle Anwendungen" ( App Registrations dargestellt mit einem generischen Partner im Bild).

    Screenshot showing the partners message.

  6. Kopieren Sie die Anwendungs-ID (Client-ID) für die spezifische Partner-App, auf die Sie Zugriff gewähren möchten.

Schritt 2: Hinzufügen einer Rollenzuweisung zur Partner-App

Der nächste Schritt besteht darin, rollen im Azure-Portal zuzuweisen, um die Autorisierung für die Sensorpartneranwendung bereitzustellen. Data Manager für Landwirtschaft verwenden Azure RBAC zum Verwalten von Autorisierungsanforderungen.

Melden Sie sich bei Azure-Portal an, und navigieren Sie zu Ihrer Ressourcengruppe, in der Sie die Ressource "Data Manager for Agriculture" erstellt haben.

Hinweis

Wenn Sie die erstellte Ressource "Data Manager for Agriculture" nicht finden, müssen Sie auf der Registerkarte "Ressourcengruppe" das Kontrollkästchen "Ausgeblendete Typen anzeigen" aktivieren.

Sie finden die Menüoption IAM (Identity Access Management) auf der linken Seite des Optionsbereichs wie in der Abbildung dargestellt:

Screenshot showing role assignment.

Klicken Sie auf "Rollenzuweisung hinzufügen>", diese Aktion öffnet einen Bereich auf der rechten Seite des Portals, wählen Sie die Rolle aus der Dropdownliste aus:

  • AgFood Platform Sensor Partner Contributor - verfügt über alle Berechtigungen in den CRU-Vorgängen (Create, Read, Update), die spezifisch für Sensoren sind.

Führen Sie die folgenden Schritte aus, um die Rollenzuweisung abzuschließen:

  1. Wählen Sie die Erwähnung ed-Rolle aus.

  2. Wählen Sie im Abschnitt „Zugriff zuweisen zu“ die Option Benutzer, Gruppe oder Dienstprinzipal aus.

  3. Fügen Sie den Namen oder die ID des Sensorpartners in den Abschnitt "Auswählen" ein (wie in der Abbildung dargestellt).

  4. Klicken Sie auf Speichern, um die Rolle zuzuweisen.

Screenshot showing app selection for authorization.

Dieser Schritt stellt sicher, dass der Sensorpartner-App Zugriff (basierend auf der zugewiesenen Rolle) auf Azure Data Manager for Agriculture Resource gewährt wurde.

Schritt 3: Aktivieren der Sensorintegration

  1. Sie müssen die Sensorintegration aktivieren, bevor Sie Anrufe initiieren. In diesem Schritt sind interne Azure-Ressourcen für die Sensorintegration in Ihrer Data Manager for Agriculture-Instanz erforderlich. Sie können dies tun, indem Sie den folgenden Armclient-Befehl ausführen.

    armclient patch /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.AgFoodPlatform/farmBeats/<farmbeats-instance-name>?api-version=2021-09-01-preview "{properties:{sensorIntegration:{enabled:'true'}}}"
    

    Beispielausgabe:

    {
      "id": "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.AgFoodPlatform/farmBeats/<farmbeats-instance-name>",
      "type": "Microsoft.AgFoodPlatform/farmBeats",
      "sku": {
        "name": "A0"
      },
      "systemData": {
        "createdBy": "<customer-id>",
        "createdByType": "User",
        "createdAt": "2022-03-11T03:36:32Z",
        "lastModifiedBy": "<customer-id>",
        "lastModifiedByType": "User",
        "lastModifiedAt": "2022-03-11T03:40:06Z"
      },
      "properties": {
        "instanceUri": "https://<farmbeats-instance-name>.farmbeats.azure.net/",
        "provisioningState": "Succeeded",
        "sensorIntegration": {
          "enabled": "True",
          "provisioningState": "**Creating**"
        },
        "publicNetworkAccess": "Enabled"
      },
      "location": "eastus",
      "name": "myfarmbeats"
    }
    
  2. Der Auftrag kann einige Minuten dauern. Um den Status des Auftrags zu kennen, können Sie den folgenden Armclient-Befehl verwenden:

    armclient get /subscriptions/<subscription-id>/resourceGroups/<resource-group-name> /providers/Microsoft.AgFoodPlatform/farmBeats/<farmbeats-instance-name>?api-version=2021-09-01-preview
    
  3. Um den status "abgeschlossen" zu überprüfen, sehen Sie sich das attribut "provisioningState " an. Der Status muss im vorherigen Schritt von "Erstellen" in "Erfolgreich" geändert werden.

    Beispielausgabe:

    {
      "id": "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.AgFoodPlatform/farmBeats/<farmbeats-instance-name>",
      "type": "Microsoft.AgFoodPlatform/farmBeats",
      "sku": {
        "name": "A0"
      },
      "systemData": {
        "createdBy": "<customer-id>",
        "createdByType": "User",
        "createdAt": "2022-03-11T03:36:32Z",
        "lastModifiedBy": "<customer-id>",
        "lastModifiedByType": "User",
        "lastModifiedAt": "2022-03-11T03:40:06Z"
      },
      "properties": {
        "instanceUri": "https://<customer-host-name>.farmbeats.azure.net/",
        "provisioningState": "Succeeded",
        "sensorIntegration": {
          "enabled": "True",
          "provisioningState": "**Succeeded**"
        },
        "publicNetworkAccess": "Enabled"
      },
      "tags": {
        "usage": "<sensor-partner-id>"
      },
      "location": "eastus",
      "name": "<customer-id>"
    }
    

Nachdem der Schritt zur Sensorintegration abgeschlossen ist, können Sie jetzt Sensorintegrationsobjekte erstellen.

Schritt 4: Erstellen eines Integrationsobjekts

Verwenden Sie die SensorPartnerIntegrations Auflistung, und rufen Sie die SensorPartnerIntegrations_CreateOrUpdate-API auf, um ein Integrationsobjekt für einen bestimmten Sensorpartner zu erstellen. Jeder einzelne Kunde eines Sensorpartners (z. B. Davis) benötigt eine eindeutige Integrations-ID, die in ihrem Data Manager for Agriculture-Ressourcen erstellt wurde.

Es gibt zwei verschiedene Pfade, die Sie auswerten müssen:

  • Wenn Sie die Besitzer der Sensoren sind, die von den Sensorpartnern bereitgestellt werden, erstellen Sie nur ein Integrationsobjekt (ID) für Ihr Konto mit Sensorpartner.

  • Wenn Ihre Endbenutzer (d. h. Landwirte/Einzelhändler/Agronomisten) die Sensoren besitzen, erstellen Sie für jeden Endbenutzer ein eindeutiges Integrationsobjekt (ID), da jeder Endbenutzer über eigene Konten mit dem Sensorpartner verfügt.

API-Endpunkt: PATCH /sensor-partners/{sensorPartnerId}/integrations/{integrationID}

Ein Abschnitt, der den Zustimmungslink anfordert, ist Teil des Sensorpartnerintegrationsflusses. Dieser Zustimmungslink ist eine Möglichkeit, um Sensorpartner zu überprüfen, ob der Kunde ein gültiger Benutzer des Diensts ist. Die Sensorintegration ist an den Zustimmungsschlüssel gebunden.

Unser Sensorpartner Davis Instruments verwendet diese Benutzeroberfläche, um das Einrichten und Anfordern des Zustimmungslinks zu ermöglichen.

Sensorpartner rufen den check-consent API-Endpunkt auf, um die Gültigkeit zu überprüfen. Um einen Zustimmungslink zu generieren, müssen Sie die SensorPartnerIntegrations_GenerateConsentLink API verwenden und die im Schritt (3) erstellte Integrations-ID angeben. Als Antwort erhalten Sie eine Zeichenfolge namens consentLink. Kopieren Sie diese Zeichenfolge, und geben Sie sie dem Sensorpartner zur weiteren Überprüfung zur Verfügung. Wenn Sie Sensoren von Davis Instruments verwenden, folgen Sie den Anweisungen auf dieser Seite.

API-Endpunkt: PATCH /sensor-partners/{sensorPartnerId}/integrations/{integrationId}/: generate-consent-link

In diesem Schritt wird der Abschluss des Sensorpartners aus Kundenperspektive markiert. , rufen Sie alle erforderlichen Informationen ab, um Ihre API-Endpunkte aufzurufen, um Sensormodell, Gerätemodell, Sensoren und Geräte zu erstellen. Die Partner können nun Sensorereignisse mithilfe der für jede Sensor-ID generierten Verbindungszeichenfolge pushen.

Der letzte Schritt besteht darin, mit dem Verbrauch von Sensorereignissen zu beginnen. Bevor Sie die Ereignisse verwenden, müssen Sie eine Zuordnung jeder Sensor-ID zu einer bestimmten Partei-ID und Ressource (Feld, Saisonfeld) erstellen.

Schritt 6: Erstellen der Sensorzuordnung

Verwenden Sie die Sammlung, rufen Sie die SensorMappingsSensorMappings_CreateOrUpdate API auf, um eine Zuordnung für jeden Sensor zu erstellen. Die Zuordnung ist nichts anderes als das Zuordnen einer Sensor-ID zu einer bestimmten PartyID und einer Ressource(Feld, Saisonfeld usw.). PartyID und Ressourcen sind bereits im Data Manager for Agriculture System vorhanden. Diese Zuordnung stellt sicher, dass Sie als Plattform Datenwissenschaftsmodelle um eine gemeinsame Geometrie der Ressourcen- und Partydimension erstellen können. Jede Datenquelle (Satellit, Wetter, Farmbetrieb) ist an eine Partei und Ressource gebunden. Wenn Sie dieses Zuordnungsobjekt auf einer Sensorebene einrichten, nutzen Sie alle agronomischen Anwendungsfälle, um von Sensordaten zu profitieren.

API-Endpunkt: PATCH /sensor-mappings/{sensorMappingId}

Schritt 7: Nutzen von Sensorereignissen

Verwenden Sie die SensorEvents Sammlung, um die API aufzurufen SensorEvents_List und daten zu nutzen, die von Ihren Sensoren übertragen werden. Sie müssen die folgenden Informationen angeben:

  • sensorId (gibt an, für welchen Sensor die Daten angezeigt werden sollen)
  • sensorPartnerId (gibt an, welcher Sensorpartner diese Daten pusht)
  • startDateTime & endDateTime (Zeitbereichsfilter stellen sicher, dass Daten auf die angeforderte Zeitleiste segmentiert werden)

API-Endpunkt: GET /sensor-events

Nächste Schritte

  • Testen Sie hier unsere APIs.