スマートホーム ロック ガイド

デバイスタイプ

action.devices.types.LOCK ロックは、ロック(施錠)、ロック解除、ロック状態の報告を行うことができます。ロック解除はセキュリティ上重要なアクションであり、2 要素認証が必須となる場合があります。2 要素認証をご覧ください。

このタイプは、ロックアイコンといくつかのロックタイプの類義語 / 別名がデバイスに与えられることを示します。

これらは、このタイプのデバイスに推奨されるトレイトですが、利用可能なすべてのトレイトの中から、既存の製品機能に最適な組み合わせを自由に選ぶことができます。

必須の属性、EXECUTE、QUERY などの実装の詳細については、個別のトレイトのドキュメントをご覧ください。

SYNC リクエストとレスポンスの例

これは上記のデバイスタイプとトレイトを使った例です。SYNC レスポンスの作成方法を理解するためのものです。トレイトを追加または削除した場合は、その変更を反映するように修正する必要があります。

リクエスト
{
    "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
    "inputs": [{
      "intent": "action.devices.SYNC"
    }]
}
Node.jsレスポンス
'use strict';

const {smarthome} = require('actions-on-google');
const functions = require('firebase-functions');

const app = smarthome();

app.onSync((body, headers) => {
  return {
    requestId: body.requestId,
    payload: {
      agentUserId: '1836.15267389',
      devices: [{
        id: '123',
        type: 'action.devices.types.LOCK',
        traits: [
          'action.devices.traits.LockUnlock',
        ],
        name: {
          defaultNames: ['Sirius Cybernetics Corporation Lock'],
          name: 'Front Door Lock',
          nicknames: ['Front Door']
        },
        willReportState: true,
        deviceInfo: {
          manufacturer: 'Sirius Cybernetics Corporation',
          model: '233451',
          hwVersion: '3.2',
          swVersion: '11.4'
        },
        customData: {
          fooValue: 74,
          barValue: true,
          bazValue: 'lambtwirl'
        }
      }]
    }
  };
});

// ...

exports.smarthome = functions.https.onRequest(app);
Javaレスポンス
@NotNull
@Override
public SyncResponse onSync(@NotNull SyncRequest syncRequest, @Nullable Map<?, ?> headers) {
  Payload payload = new Payload();
  payload.setAgentUserId("1836.15267389");
  payload.setDevices(new Device[] {
      new Device.Builder()
          .setId("123")
          .setType("action.devices.types.LOCK")
          .addTrait("action.devices.traits.LockUnlock")
          .setName(
              Collections.singletonList("Sirius Cybernetics Corporation 33321"),
              "front door lock",
              Collections.singletonList("front door")
          )
          .setWillReportState(true)
          .setDeviceInfo("Sirius", "492134", "3.2", "11.4")
          .setCustomData(new JSONObject()
              .put("fooValue", 74)
              .put("barValue", true)
              .put("bazValue", "lambtwirl")
              .toString()
          )
          .build()
  });
  return new SyncResponse(syncRequest.getRequestId(), payload);
}
JSONレスポンス
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "agentUserId": "1836.15267389",
    "devices": [
      {
        "id": "123",
        "type": "action.devices.types.LOCK",
        "traits": [
          "action.devices.traits.LockUnlock"
        ],
        "name": {
          "defaultNames": [
            "Sirius Cybernetics Corporation Lock"
          ],
          "name": "Front Door Lock",
          "nicknames": [
            "Front Door"
          ]
        },
        "willReportState": true,
        "deviceInfo": {
          "manufacturer": "Sirius Cybernetics Corporation",
          "model": "233451",
          "hwVersion": "3.2",
          "swVersion": "11.4"
        },
        "customData": {
          "fooValue": 74,
          "barValue": true,
          "bazValue": "lambtwirl"
        }
      }
    ]
  }
}
バリデータ

デバイスエラー

エラーと例外の全リストをご覧ください。