Modèle de programmation AWS IoT 1-Click - AWS IoT 1-Click

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Modèle de programmation AWS IoT 1-Click

Pour créer des applications à l'aide d'appareils AWS IoT 1-Click, les programmeurs utilisent leAPI AWS IoT 1-Clicket l'API AWS IoT 1-Click. L'API Devices interagit avec le composant AWS IoT 1-Click et gère les événements provenant de ces derniers. Ces événements incluent l'activation et la désactivation des périphériques, et la définition des formats d'événement et des actions (fonctions Lambda) qu'ils déclenchent. L'API Devices est intimement liée aux composants AWS qui résident dans la région dans laquelle le fabricant a inscrit les périphériques. C'est pourquoiRégions AWSpeut être différente des régions dans lesquelles le client utilise les périphériques. L'API Projects interagit avec le service AWS IoT 1-Click Projects et est utilisée pour gérer globalement les périphériques AWS IoT 1-Click Projects, ce qui permet de :

  • Regrouper les appareils en projets.

  • Créer des modèles utilisés pour définir des actions pour tous les appareils du projet.

  • Définir les attributs stockant les données contextuelles pertinentes pour le projet.

Vous pouvez utiliser le modèle de programmation AWS IoT 1-Click pour programmer des périphériques individuellement avec l'API Devices. Dans ce cas, vous utilisez le type de périphérique AWS IoT 1-Click. L'API définit des formats d'événement standard ainsi qu'une liste de méthodes formant l'interface de programmation de tous les périphériques du même type. Afin d'appeler les méthodes relatives à un type d'appareil donné, un programmeur peut se servir de l'API InvokeDeviceMethod et spécifier la méthode d'appareil comme paramètre.

Par exemple, tous les périphériques AWS IoT 1-Click de type « bouton » émettront des événements relatifs aux clics et disposeront de méthodes pour définir des fonctions de rappel invoquées lorsque l'on clique sur le périphérique. Pour de plus amples informations sur l'interface du bouton, veuillez consulter Interfaces par type d'appareil. Voici le code pour définir cette fonction de rappel :

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);

Vous utilisez l'API Projects pour programmer une flotte de périphériques. À l'aide des API, vous définissez d'abord ce à quoi ressemble chaque placement, y compris les modèles et attributs des périphériques de chaque placement. Ceci fait, vous créez des placements avec des ID d'appareil spécifiques. Chaque placement suit le même modèle. Voici l'exemple de code pour le faire :

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)

Événements de rappel AWS IoT 1-Click

AWS IoT 1-Click vous permet de vous abonner à des événements de périphérique en enregistrant des rappels. Un exemple de rappel est une fonction AWS Lambda détenue et implémentée par vous, le client AWS IoT 1-Click. Ce rappel est appelé chaque fois qu'un événement est disponible pour sa consommation. Pour de plus amples informations sur les événements et leurs charges utiles, veuillez consulter les sections Événements AWS IoT 1-Click et Événements de Health AWS IoT 1-Click.

Événements AWS IoT 1-Click

Les appareils de type button publient un événement de clic chaque fois que l'on clique dessus. Vous pouvez vous abonner à cet événement en :

  • Appelant la méthode SetOnClickCallback d'appareil sur un appareil.

  • Configurant correctement le projet associé, comme indiqué dans l'exemple précédent de création d'un code de projet.

Dans le code suivant, notez que la section placementInfo n'est présente que lorsqu'un placement est associé à l'appareil. Pour plus d'informations, consultez Projets, modèles et placements.

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

Événements de Health AWS IoT 1-Click

Les périphériques publient un événement d'état de santé en fonction des paramètres de santé calculés par le service AWS IoT 1-Click, mais vous définissez leurs seuils correspondants. L'exemple suivant représente la charge utile JSON d'un événement d'état de santé pour l'appareil G030PMXXXXXXXXXX avec une durée de vie restante de 10 % (notez la paire clé-valeur "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éthodes de périphérique

Les méthodes de périphérique AWS IoT 1-Click sont des API qui sont prises en charge par un certain type de périphérique, comme illustré dans le tableau suivant. La liste complète des méthodes d'appareil prises en charge par n'importe quel appareil peut être récupérée en appelant GetDeviceMethods.

Type de périphérique Nom de méthode Description

device

getDeviceHealthParameters

Permet d'obtenir les paramètres de santé du périphérique, par exemple remainingLife.

device

setDeviceHealthMonitorCallback

Définit un rappel à appeler lorsque les paramètres de santé du périphérique sont sous un certain seuil.

device

getDeviceHealthMonitorCallback

Obtient le rappel configuré qui est appelé lorsque les paramètres de santé sont sous un certain seuil.

button

setOnClickCallback

Définit un rappel à appeler lorsqu'un utilisateur clique sur le bouton.

button

getOnClickCallback

Permet d'obtenir le rappel configuré qui est appelé lorsqu'un utilisateur clique sur le bouton.