AWS IoT 1-Click プログラミングモデル - AWS IoT 1-Click

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS IoT 1-Click プログラミングモデル

AWS IoT 1-Click デバイスを使用してアプリケーションを構築するには、プログラマーはAWS IoT 1-Click デバイス APIAWS IoT 1-Click プロジェクトの API。デバイス API は AWS IoT 1-Click デバイスコンポーネントとやり取りし、デバイスからのイベントを処理します。これらのイベントには、デバイスの有効化と無効化、イベントフォーマットの定義、およびそれらがトリガーするアクション (Lambda 関数) が含まれます。デバイス API は、製造元がデバイスを登録したリージョンに存在している AWS コンポーネントと緊密に連携しています。これは、AWS デバイスリージョンのお客様がデバイスを使用しているリージョンと異なる場合があります。プロジェクト API は AWS IoT 1-Click プロジェクトサービスとやり取りし、AWS IoT 1-Click デバイスを合計して管理するために使用されます。これにより、次のことが可能になります。

  • デバイスをプロジェクトにグループ化します。

  • プロジェクト内のすべてのデバイスのアクションを設定するために使用するテンプレートを作成します。

  • プロジェクトに関連するコンテキストデータを格納する属性を定義します。

AWS IoT 1-Click プログラミングモデルを使用して、デバイス API を使用して個々のデバイスをプログラムできます。この場合、AWS IoT 1-Click デバイスタイプを使用します。API は、標準イベント形式とそのタイプのすべてのデバイスのプログラミングインターフェイスを形成するメソッドのリストを定義します。特定のデバイスタイプに関連するメソッドを呼び出すために、プログラマーは、InvokeDeviceMethod API を使用し、パラメータとしてデバイスメソッドを指定できます。

たとえば、デバイスタイプ「ボタン」を持つすべての AWS IoT 1-Click デバイスは、クリックに関連するイベントを発行し、デバイスがクリックされたときに呼び出されるコールバック関数を設定するメソッドを持っています。ボタンインターフェイスの詳細については、「デバイスタイプごとのインターフェイス」を参照してください。このコールバック関数を設定するコードは次のとおりです。

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

プロジェクト API を使用して多数のデバイスをプログラムします。API を使用して、最初に、各プレイスメントのデバイステンプレートや属性など、各プレイスメントの外観を定義します。完了したら、特定のデバイス ID でプレイスメントを作成します。各プレイスメントは同じテンプレートに従います。これを行うためのサンプルコードは次のとおりです。

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)

AWS IoT 1-Click コールバックイベント

AWS IoT 1-Click では、コールバックを登録することでデバイスイベントをサブスクライブできます。コールバックの例としては、AWS IoT 1-Click のお客様が所有し実装する AWS Lambda 関数があります。このコールバックは、イベントが発生するたびに呼び出され、使用されます。イベントとそのペイロードの詳細については、AWS IoT 1-Click イベント セクションおよび AWS IoT 1-Click Health スイベント セクションを参照してください。

AWS IoT 1-Click イベント

button タイプのデバイスは、クリックされるたびにクリックイベントを発行します。このイベントにサブスクライブするには、次の方法があります。

  • デバイス上のデバイス SetOnClickCallback メソッドを呼び出します。

  • 前述のプロジェクトコード作成例に示すように、関連するプロジェクトを適切に設定します。

以下の例では、placementInfo セクションは、デバイスに関連付けられたプレイスメントがある場合にのみ存在することに注意してください。詳細については、「「プロジェクト、テンプレート、およびプレイスメント」」を参照してください。

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

AWS IoT 1-Click Health スイベント

AWS IoT 1-Click サービスによって計算されたヘルスパラメータに基づいてヘルスイベントを発行しますが、対応するしきい値を設定します。次の例では、残りライフが 10% ("remainingLifeLowerThan":10 というキーと値のペアに注目) であるデバイス G030PMXXXXXXXXXX のヘルスイベントの JSON ペイロードを表します。

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

デバイスのメソッド

AWS IoT 1-Click デバイスメソッドは、次の表に示す、特定のデバイスの種類でサポートされている API です。任意のデバイスでサポートされているデバイスメソッドの詳細な一覧は、GetDeviceMethods を呼び出して取得できます。

デバイスタイプ メソッド名 説明

device

getDeviceHealthParameters

remainingLife など、デバイスのヘルスパラメータを取得します。

device

setDeviceHealthMonitorCallback

デバイスのヘルスパラメータがしきい値を下回ったときに呼び出されるようにコールバックを設定します。

device

getDeviceHealthMonitorCallback

ヘルスパラメータがしきい値を下回ったときに呼び出される、設定済みのコールバックを取得します。

button

setOnClickCallback

ボタンがクリックされたときに呼び出されるようにコールバックを設定します。

button

getOnClickCallback

ボタンをクリックしたときに呼び出される、設定済みのコールバックを取得します。