Modelo de programación de AWS IoT 1-Click - AWS IoT 1-Click

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Modelo de programación de AWS IoT 1-Click

Para crear aplicaciones con dispositivos de AWS IoT 1-Click, los programadores utilizan laAPI de dispositivos de AWS IoT 1-Clicky laAPI de proyectos de AWS IoT 1-Click. La API de dispositivos interactúa con el componente de dispositivos de AWS IoT 1-Click y controla los eventos provenientes de los dispositivos. Estos eventos incluyen la habilitación y deshabilitación de los dispositivos, así como la definición de formatos de eventos y de las acciones (funciones de Lambda) que estos activan. La API de dispositivos está estrechamente ligada a los componentes de AWS ubicados en la región en la que el fabricante ha registrado los dispositivos. Es por eso queRegiones de dispositivos de AWSPuede ser diferente de la región en la que el cliente utiliza los dispositivos. La API de proyectos interactúa con el servicio de proyectos de AWS IoT 1-Click y se utiliza para administrar dispositivos de AWS IoT 1-Click, lo que permite:

  • Agrupar dispositivos en proyectos.

  • Crear plantillas utilizadas para establecer acciones para todos los dispositivos del proyecto.

  • Definir atributos que almacenan datos contextuales pertinentes para el proyecto.

Puede utilizar el modelo de programación de AWS IoT 1-Click para programar dispositivos individuales mediante la API de dispositivos. En este caso, utilizará el tipo de dispositivo de AWS IoT 1-Click. La API define formatos de eventos estándar y una lista de métodos que conforman la interfaz de programación para todos los dispositivos de ese tipo. Para invocar métodos pertenecientes a un determinado tipo de dispositivo, un programador puede utilizar la API de InvokeDeviceMethod y especificar el método de dispositivo como parámetro.

Por ejemplo, todos los dispositivos de AWS IoT 1-Click con el tipo de dispositivo «botón» emiten eventos asociados a clics y disponen de métodos para establecer funciones de devolución de llamada que se invocan al hacer clic en el dispositivo. Para obtener información acerca de la interfaz de botones, consulte Interfaces por tipo de dispositivo. A continuación se muestra el código para establecer esta función de devolución de llamada:

String methodParameters = mapper.writeValueAsString( SetOnClickCallbackRequestParameters.builder() .deviceId(deviceId) .callback(DeviceCallback.builder() .awsLambdaArn(“arn:aws:lambda:us-west-2:123456789012:MyButtonListener”) .build()) .build()); InvokeDeviceMethodRequest request = new InvokeDeviceMethodRequest() .withDeviceMethod(new DeviceMethod() .withDeviceType("button") .withMethodName("setOnClickCallback")) .withDeviceMethodParameters(methodParameters);

Utilice la API de proyectos para programar una flota de dispositivos. Utilice las API para definir primero el aspecto de las ubicaciones, incluidas las plantillas de dispositivos y los atributos para cada ubicación. Tras hacer esto, cree ubicaciones con ID de dispositivo específicos. Cada ubicación sigue la misma plantilla. A continuación se indica código de muestra para hacerlo:

final Map<String, String> callbacks = new HashMap<>(); callbacks.put("onClickCallback", "arn:aws:lambda:us-west-2:123456789012:MyButtonListener"); final DeviceTemplate item = DeviceTemplate.builder() .withDeviceType(“button”) .withCallbackOverrides(callbacks) .build(); final Map<String, DeviceTemplate> deviceTemplateMap = new HashMap<>(); deviceTemplateMap.put(“MyDevice”, item); final Map<String, String> placementDefaultAttributes = new HashMap<>(); placementDefaultAttributes.put(“location”, “Seattle”) request = CreateProjectRequest.builder() .withProjectName(“HelloWorld”) .withDescription(“My first project!”) .withPlacementTemplate(PlacementTemplate.builder() .withDefaultAttributes(placementDefaultAttributes) .withDeviceTemplates(deviceTemplateMap) .build()) .build(); projectsClient.createProject(request)

Eventos de devolución de llamada de AWS IoT 1-Click

AWS IoT 1-Click le permite suscribirse a eventos de dispositivo mediante el registro de devoluciones de llamada. Un ejemplo de una devolución de llamada es una función de AWS Lambda, que es de su propiedad y que ha implementado usted, el cliente de AWS IoT 1-Click. Esta devolución de llamada se invoca cada vez que hay un evento disponible para que lo consuma. Para obtener información sobre los eventos y sus cargas útiles, consulte las secciones Eventos de AWS IoT 1-Click y Eventos de Health de AWS IoT 1-Click.

Eventos de AWS IoT 1-Click

Los dispositivos de tipo button publican un evento de clic cada vez que se hace clic en ellos. Puede suscribirse a este evento mediante las siguientes acciones:

  • Llamar al método SetOnClickCallback del dispositivo en un dispositivo.

  • Configurar correctamente el proyecto asociado, como se muestra en el ejemplo de código de creación de proyecto anterior.

En el ejemplo siguiente, tenga en cuenta que la sección placementInfo solo está presente cuando el dispositivo tiene una ubicación asociada. Para obtener más información, consulte Proyectos, plantillas y ubicaciones.

{ "deviceEvent": { "buttonClicked": { "clickType": "SINGLE", "reportedTime": "2018-05-04T23:26:33.747Z" } }, "deviceInfo": { "attributes": { "key3": "value3", "key1": "value1", "key4": "value4" }, "type": "button", "deviceId": " G030PMXXXXXXXXXX ", "remainingLife": 5.00 }, "placementInfo": { "projectName": "test", "placementName": "myPlacement", "attributes": { "location": "Seattle", "equipment": "printer" }, "devices": { "myButton": " G030PMXXXXXXXXXX " } } }

Eventos de Health de AWS IoT 1-Click

Los dispositivos publican un evento de estado basándose en los parámetros de estado calculados por el servicio de AWS IoT 1-Click, pero usted establece los umbrales correspondientes. El siguiente ejemplo representa la carga JSON de un evento de estado para el dispositivo G030PMXXXXXXXXXX con una duración restante del 10 % (tenga en cuenta el par clave-valor "remainingLifeLowerThan":10).

{ "deviceEvent": { "deviceHealthMonitor": { "condition": { "remainingLifeLowerThan": 10 } } }, "deviceInfo": { "attributes": { "key2": "value2", "key1": "value1", "projectRegion": "us-west-2" }, "type": "button", "deviceId": "G030PMXXXXXXXXXX", "remainingLife": 5.4 } }

Métodos de dispositivo

Los métodos de dispositivo de AWS IoT 1-Click son API que admiten ciertos tipos de dispositivo, según se muestra en la siguiente tabla. Se puede recuperar la lista completa de métodos de dispositivo llamando a GetDeviceMethods.

Tipo de dispositivo Método del método Descripción

device

getDeviceHealthParameters

Obtiene los parámetros de estado del dispositivo, como remainingLife.

device

setDeviceHealthMonitorCallback

Establece la ejecución de una devolución de llamada cuando los parámetros de estado del dispositivo estén por debajo de un límite.

device

getDeviceHealthMonitorCallback

Recibe la llamada de devolución configurada que se ejecuta cuando los parámetros de estado están por debajo de un límite.

button

setOnClickCallback

Configura la ejecución de una devolución de llamada una vez que se ha hecho clic en el botón.

button

getOnClickCallback

Recibe la devolución de llamada configurada que se ejecuta cuando se hace clic en el botón.