Intégration des capteurs en tant que client

Suivez les étapes d’intégration à un partenaire de capteur pour permettre au partenaire de commencer à envoyer (push) les données dans votre instance Data Manager for Agriculture.

Chaque partenaire de capteur a sa propre application Microsoft Entra multilocataire créée et publiée sur la plateforme Data Manager for Agriculture. Le partenaire de capteur pris en charge par défaut sur la plateforme est Davis Instruments (sensorPartnerId : DavisInstruments).

Pour commencer à utiliser les partenaires de capteurs à bord, vous devez donner votre consentement au partenaire de capteur afin qu’il commence à s’afficher.App Registrations Les étapes à suivre :

  1. Connectez-vous à Portail Azure à l’aide des informations d’identification « Global Administration istrator » ou « Privileged Role Administration istrator ».

  2. Pour Davis Instruments, cliquez sur ce lien pour fournir le consentement.

  3. Sur la page de révision des autorisations, l’application Microsoft Entra demande une autorisation minimale de « lire le profil utilisateur ». Ce niveau d’autorisation est suffisant pour l’intégration des capteurs à Data Manager for Agriculture.

  4. Cliquez sur le bouton « Accepter » pour accorder le consentement de l’administrateur.

  5. À présent, recherchez Davis Instruments WeatherLink Data Manager for Agriculture Connector sous l’onglet Toutes les applications dans App Registrations la page (illustré avec un partenaire générique dans l’image).

    Screenshot showing the partners message.

  6. Copiez l’ID d’application (client) de l’application partenaire spécifique à laquelle vous souhaitez fournir l’accès.

Étape 2 : Ajouter une attribution de rôle à l’application partenaire

L’étape suivante consiste à attribuer des rôles dans le Portail Azure pour fournir l’autorisation à l’application partenaire de capteur. Data Manager pour l’agriculture utilise Azure RBAC pour gérer les demandes d’autorisation.

Connectez-vous à Portail Azure et accédez à votre groupe de ressources où vous avez créé la ressource Data Manager for Agriculture.

Remarque

Dans l’onglet groupe de ressources, si vous ne trouvez pas la ressource Data Manager for Agriculture créée, vous devez activer les types masqués case activée box.

Vous trouverez l’option de menu IAM (Identity Access Management) sur le côté gauche du volet d’options, comme indiqué dans l’image :

Screenshot showing role assignment.

Cliquez sur Ajouter une > attribution de rôle, cette action ouvre un volet sur le côté droit du portail, puis choisissez le rôle dans la liste déroulante :

  • Contributeur partenaire de capteur AgFood Platform - dispose de tous les privilèges dans les opérations CRU (Créer, Lire, Mettre à jour) spécifiques aux capteurs.

Pour effectuer l’attribution de rôle, procédez comme suit :

  1. Choisissez le rôle mentionné.

  2. Choisissez Utilisateur, groupe ou principal de service dans la section Attribuer l’accès à.

  3. Collez le nom ou l’ID de l’application partenaire du capteur dans la section Sélectionner (comme illustré dans l’image).

  4. Cliquez sur Enregistrer pour attribuer le rôle.

Screenshot showing app selection for authorization.

Cette étape garantit que l’application partenaire de capteur a reçu l’accès (en fonction du rôle attribué) à Azure Data Manager for Agriculture Resource.

Étape 3 : Activer l’intégration du capteur

  1. Vous devez activer l’intégration des capteurs avant de lancer des appels. Cette étape provisionne les ressources Azure internes requises pour l’intégration des capteurs dans votre instance Data Manager for Agriculture. Pour ce faire, exécutez la commande armclient suivante.

    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'}}}"
    

    Exemple de sortie :

    {
      "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. Le travail peut prendre quelques minutes. Pour connaître l’état du travail, vous pouvez utiliser la commande armclient suivante :

    armclient get /subscriptions/<subscription-id>/resourceGroups/<resource-group-name> /providers/Microsoft.AgFoodPlatform/farmBeats/<farmbeats-instance-name>?api-version=2021-09-01-preview
    
  3. Pour vérifier l’état terminé, examinez l’attribut provisioningState . L’état doit passer à « Réussi » de « Création » à l’étape précédente.

    Exemple de sortie :

    {
      "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>"
    }
    

Une fois l’étape d’intégration de capteur terminée, vous pouvez désormais créer des objets d’intégration de capteur.

Étape 4 : Créer un objet d’intégration

Utilisez la SensorPartnerIntegrations collection et appelez l’API SensorPartnerIntegrations_CreateOrUpdate pour créer un objet d’intégration pour un partenaire de capteur donné. Chaque client d’un partenaire de capteur (par exemple : Davis) a besoin d’un ID d’intégration unique créé dans sa ressource Data Manager for Agriculture.

Il existe deux chemins d’accès différents que vous devez évaluer :

  • Si vous êtes propriétaire des capteurs fournis par les partenaires de capteur, créez un seul objet d’intégration (ID) pour votre compte avec le partenaire de capteur.

  • Si vos utilisateurs finaux (c’est-à-dire agriculteurs/détaillants/agronomistes) possèdent les capteurs, créez un objet d’intégration unique (ID) pour chaque utilisateur final, car chaque utilisateur final possède ses propres comptes avec le partenaire de capteur.

Point de terminaison de l’API : PATCH /sensor-partners/{sensorPartnerId}/integrations/{integrationID}

Une section demandant le lien de consentement fait partie du flux d’intégration du partenaire de capteur. Ce lien de consentement permet aux partenaires de capteur de valider si le client est un utilisateur valide du service. L’intégration du capteur est liée à la clé de consentement.

Notre partenaire de capteur Davis Instruments utilise cette interface utilisateur pour activer la configuration et demander le lien de consentement.

Les partenaires de capteur appellent le point de terminaison de l’API check-consent pour vérifier la validité. Pour générer un lien de consentement, vous devez utiliser l’API SensorPartnerIntegrations_GenerateConsentLink et fournir l’ID d’intégration créé à partir de l’étape (3). En réponse, vous obtenez une chaîne appelée consentLink. Copiez cette chaîne et l’avez fournie au partenaire du capteur pour une validation supplémentaire. Si vous utilisez des capteurs de Davis Instruments, suivez les instructions de cette page.

Point de terminaison de l’API : PATCH /sensor-partners/{sensorPartnerId}/integrations/{integrationId}/ : generate-consent-link

Cette étape marque l’achèvement de l’intégration du partenaire de capteur du point de vue du client. , obtenez toutes les informations requises pour appeler vos points de terminaison d’API pour créer un modèle de capteur, un modèle d’appareil, des capteurs et des appareils. Les partenaires peuvent désormais envoyer (push) des événements de capteur à l’aide du chaîne de connexion généré pour chaque ID de capteur.

La dernière étape consiste à commencer à consommer des événements de capteur. Avant de consommer les événements, vous devez créer un mappage de chaque ID de capteur à un ID de partie et une ressource spécifiques (Champ, Champ saisonnier).

Étape 6 : Créer un mappage de capteur

Utilisez la SensorMappings collection, appelez l’API SensorMappings_CreateOrUpdate pour créer un mappage pour chacun des capteurs. Le mappage n’est rien d’autre que l’association d’un ID de capteur à un Id PartyID spécifique et à une ressource (champ, champ saisonnier, etc.). PartyID et les ressources sont déjà présentes dans le système Data Manager for Agriculture. Cette association garantit que, en tant que plateforme, vous pouvez créer des modèles de science des données autour d’une géométrie commune de la dimension de ressource et de partie. Chaque source de données (satellite, météo, exploitation agricole) est liée à une ressource et à une partie. Lorsque vous établissez cet objet de mappage au niveau d’un capteur, vous alimentez tous les cas d’usage agronomiques pour tirer parti des données de capteur.

Point de terminaison de l’API : PATCH /sensor-mappings/{sensorMappingId}

Étape 7 : Consommer des événements de capteur

Utilisez la SensorEvents collection pour appeler l’API SensorEvents_List et consommer des données envoyées par vos capteurs. Vous devez fournir les informations suivantes

  • sensorId (spécifie le capteur pour lequel les données doivent être affichées)
  • sensorPartnerId (spécifie quel partenaire de capteur envoie (push) ces données)
  • startDateTime &endDateTime (filtres d’intervalle de temps vérifient que les données sont segmentées pour les chronologie demandées)

Point de terminaison d’API : GET /sensor-events

Étapes suivantes

  • Testez nos API ici.