Compartir a través de


Integración de sensores como cliente

Siga los pasos para integrar con un asociado de sensor para permitir que el asociado empiece a insertar los datos en la instancia de Data Manager for Agriculture.

Cada asociado de sensor tiene su propia aplicación microsoft Entra multiinquilino creada y publicada en la plataforma Data Manager for Agriculture. El asociado del sensor admitido de forma predeterminada en la plataforma es Davis Instruments (sensorPartnerId: DavisInstruments).

Para empezar a usar los asociados de sensores incorporados, debe dar su consentimiento al asociado del sensor para que empiecen a aparecer en App Registrations. Los pasos que debe seguir:

  1. Inicie sesión en Azure Portal con las credenciales "Global Administración istrator" o "Privileged Role Administración istrator".

  2. Para Davis Instruments, haga clic en este vínculo para proporcionar consentimiento.

  3. En la página de revisión de permisos, la aplicación Microsoft Entra solicita el permiso mínimo de "leer perfil de usuario". Este nivel de permiso es suficiente para la integración del sensor con Data Manager for Agriculture.

  4. Haga clic en el botón "Aceptar" para conceder el consentimiento del administrador.

  5. Ahora, busque Davis Instruments WeatherLink Data Manager for Agriculture Connector en la pestaña Todas las aplicaciones de la App Registrations página (se muestra con un asociado genérico en la imagen).

    Screenshot showing the partners message.

  6. Copie el identificador de aplicación (cliente) de la aplicación de asociado específica a la que desea proporcionar acceso.

Paso 2: Agregar asignación de roles a la aplicación de asociado

El siguiente paso es asignar roles en Azure Portal para proporcionar autorización a la aplicación del asociado de sensor. Data Manager for Agriculture usa Azure RBAC para administrar solicitudes de autorización.

Inicie sesión en Azure Portal y vaya al grupo de recursos donde creó el recurso Data Manager for Agriculture.

Nota:

Dentro de la pestaña grupo de recursos, si no encuentra el recurso creado de Data Manager for Agriculture, debe habilitar la casilla Mostrar tipos ocultos.

Encontrará la opción de menú IAM (Administración de acceso a identidades) en el lado izquierdo del panel de opciones, tal como se muestra en la imagen:

Screenshot showing role assignment.

Haga clic en Agregar asignación >de roles; esta acción abre un panel en el lado derecho del portal y elige el rol en la lista desplegable:

  • Colaborador asociado de sensor de AgFood Platform: tiene todos los privilegios en las operaciones CRU (Crear, Leer, Actualizar) que son específicas de los sensores.

Para completar la asignación de roles, siga estos pasos:

  1. Elija el rol mencionado.

  2. Elija Usuario, grupo o entidad de servicio en la sección Asignar acceso a.

  3. Pegue el nombre o el identificador de la aplicación del asociado del sensor en la sección Seleccionar (como se muestra en la imagen).

  4. Haga clic en Guardar para asignar el rol.

Screenshot showing app selection for authorization.

Este paso garantiza que se haya concedido acceso a la aplicación de asociado del sensor (en función del rol asignado) a Azure Data Manager for Agriculture Resource.

Paso 3: Habilitación de la integración del sensor

  1. Debe habilitar la integración del sensor antes de iniciar llamadas. Este paso aprovisiona los recursos internos de Azure necesarios para la integración de sensores en la instancia de Data Manager for Agriculture. Para ello, ejecute el siguiente comando armclient .

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

    Resultados del ejemplo:

    {
      "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. El trabajo puede tardar unos minutos en completarse. Para conocer el estado del trabajo, puede usar el siguiente comando armclient:

    armclient get /subscriptions/<subscription-id>/resourceGroups/<resource-group-name> /providers/Microsoft.AgFoodPlatform/farmBeats/<farmbeats-instance-name>?api-version=2021-09-01-preview
    
  3. Para comprobar el estado completado, examine el atributo provisioningState . El estado debe cambiar a "Correcto" de "Crear" en el paso anterior.

    Resultados del ejemplo:

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

Con el paso de integración del sensor completado, ahora puede crear objetos de integración de sensores.

Paso 4: Creación de un objeto de integración

Use la SensorPartnerIntegrations colección y llame a la API de SensorPartnerIntegrations_CreateOrUpdate para crear un objeto de integración para un asociado de sensor determinado. Cada cliente único de un asociado de sensor (por ejemplo: Davis) necesita un identificador de integración único creado en su recurso de Data Manager for Agriculture.

Hay dos rutas de acceso diferentes que debe evaluar:

  • Si es el propietario de los sensores proporcionados por los asociados del sensor, cree solo un objeto de integración (ID) para su cuenta con el asociado del sensor.

  • Si los usuarios finales (es decir, Farmers/Retails/Agronomists) poseen los sensores, cree un objeto de integración único (ID) para cada usuario final porque cada usuario final tiene sus propias cuentas con el asociado del sensor.

Punto de conexión de API: PATCH /sensor-partners/{sensorPartnerId}/integrations/{integrationID}

Una sección que solicita el vínculo de consentimiento forma parte del flujo de integración del asociado del sensor. Este vínculo de consentimiento es la manera de que los asociados del sensor validen si el cliente es un usuario válido del servicio. La integración del sensor está vinculada a la clave de consentimiento.

Nuestro asociado de sensores Davis Instruments usa esta interfaz de usuario para habilitar la configuración y la solicitud del vínculo de consentimiento.

Los asociados del sensor llaman al check-consent punto de conexión de API para comprobar la validez. Para generar un vínculo de consentimiento, debe usar la SensorPartnerIntegrations_GenerateConsentLink API y proporcionar el identificador de integración creado a partir del paso (3). Como respuesta, obtendrá una cadena denominada consentLink. Copie esta cadena y adítelo al asociado del sensor para realizar una validación adicional. Si usa sensores de Davis Instruments, siga las instrucciones de esta página.

Punto de conexión de API: PATCH /sensor-partners/{sensorPartnerId}/integrations/{integrationId}/: generate-consent-link

Este paso marca la finalización del incorporación del asociado del sensor desde una perspectiva del cliente. , obtenga toda la información necesaria para llamar a los puntos de conexión de API para crear un modelo de sensor, un modelo de dispositivo, sensores y dispositivos. Los asociados ahora pueden insertar eventos de sensor mediante el cadena de conexión generado para cada identificador de sensor.

El último paso consiste en empezar a consumir eventos de sensor. Antes de consumir los eventos, debe crear una asignación de cada identificador de sensor a un identificador de entidad y un recurso específicos (campo, campo de temporada).

Paso 6: Creación de una asignación de sensores

Use la SensorMappings colección y llame a la SensorMappings_CreateOrUpdate API para crear una asignación para cada sensor. La asignación no es más que asociar un identificador de sensor con un PartyID específico y un recurso (campo, campo estacional, etc.). PartyID y recursos ya están presentes en el sistema Data Manager for Agriculture. Esta asociación garantiza que, como plataforma, obtenga modelos de ciencia de datos en torno a una geometría común de la dimensión de recurso y entidad. Cada origen de datos (satélite, tiempo, operaciones de granja) está vinculado a una entidad y a un recurso. Al establecer este objeto de asignación en un nivel de sensor, potencia todos los casos de uso agronómicos para beneficiarse de los datos del sensor.

Punto de conexión de API: PATCH /sensor-mappings/{sensorMappingId}

Paso 7: Consumo de eventos de sensor

Use la SensorEvents colección para llamar a la SensorEvents_List API y consumir los datos insertados por los sensores. Debe proporcionar la siguiente información.

  • sensorId (especifica para qué sensor desea que se muestren los datos)
  • sensorPartnerId (especifica qué asociado de sensor está insertando estos datos)
  • startDateTime y endDateTime (filtros de intervalo de tiempo garantizan que los datos se segmentan a la escala de tiempo solicitada)

Punto de conexión de API: GET /sensor-events

Pasos siguientes

  • Pruebe nuestras API aquí.