SORACOM LTE-M Button(powered by AWS)でAWS LambdaのFunctionを呼び出すときのevent


SORACOM LTE-M Button(powered by AWS)でAWS LambdaのFunctionを呼び出すときに、
eventとして渡ってくる内容について整理する

前準備

AWS LambdaのFunctionを呼び出す設定

AWS IoT 1-Clickのテンプレート設定で、
アクションに「Lambda 関数の選択」を選択し、実際に動かすLambda関数を指定します。

実際に渡ってくる内容

eventとして連携されてくるjson内容を出力してみた。
これがわかっていると、実機がなくてもLambdaでテスト実装することができる。

{
  "deviceInfo": {
    "deviceId": "****************",
    "type": "button",
    "remainingLife": 76.69762,
    "attributes": {
      "projectRegion": "us-west-2",
      "projectName": "iotbutton_yesno",
      "placementName": "iotbutton_yesno",
      "deviceTemplateName": "iotbutton_yesno"
    }
  },
  "deviceEvent": {
    "buttonClicked": {
      "clickType": "DOUBLE",
      "reportedTime": "2019-12-08T12:34:56.789Z" 
    }
  },
  "placementInfo": {
    "projectName": "iotbutton_yesno",
    "placementName": "iotbutton_yesno",
    "attributes": {}, 
    "devices": {
      "iotbutton_yesno": "****************" 
    }
  }
}

イベント情報を噛み砕いてみる

  • deviceEvent.buttonClicked : ボタン側で起きたイベントの情報
    • clickType : SORACOM LTE-M Buttonがどう押されたか
      • SINGLE : 1回押し
      • DOUBLE : 2回押し
      • LONG : 長押し
    • reportedTime : ボタンが押された時間
    • placementInfo : AWS IoT 1-Clickで登録されているプレイスメントの情報
    • projectName : AWS IoT 1-Clickで紐づけられているプロジェクト
    • placementName : AWS IoT 1-Clickで紐づけられているプレイスメント
    • attributes : AWS IoT 1-Clickのプレイスメントに指定した属性情報(上記の例では設定なし)
    • devices : SORACOM LTE-M Buttonのシリアル番号(※)

上記のイベントを受け取っている設定周りは以下の通り

■SORACOMのコンソール

■AWS IoT 1-Clickのプレイスメント