コマンドを実行するトリガー
コマンドを自動実行する場合、実行するコマンドのテンプレートと実行条件をトリガーに設定します。
トリガーの定義
トリガーの定義は、以下のフィールドを使ってリクエストボディーに記述します。
フィールド | 必須項目か? | 説明 |
---|---|---|
triggersWhat |
◯ | トリガーが実行する対象。コマンドを実行する場合は "COMMAND" を指定します。 |
predicate |
◯ | トリガー実行条件。定義方法については トリガーの実行条件 を参照してください。 |
command |
◯ | トリガー実行条件が満たされた際に実行するコマンド。定義方法については下記の表を参照してください。 |
title |
トリガーのタイトル(最大 50 文字まで) | |
description |
トリガーの説明(最大 200 文字まで) | |
metadata |
トリガーのメタデータ(JSONObject 形式) |
command
内は次のように定義します。
フィールド | 必須項目か? | 説明 |
---|---|---|
actions |
◯ | コマンドで送信するアクションの配列。コマンドの送信 の例では 3 つのアクション(turnPower 、setPresetTemperature 、setFanSpeed )がコマンドとして送信されています。また例示されているように、各アクションに対してパラメーターを設定できます。 |
issuer |
◯ | コマンド発行者。対象となる Thing のオーナーである必要があります。ユーザー ID かグループ ID のいずれかが指定可能です。ユーザー ID の場合は user:、グループ ID の場合は group: をプレフィックスとしてつけてください。 |
schema 、schemaVersion |
◯ | スキーマ名とバージョン。スキーマバージョンの不一致を検出するための情報です(詳細は こちら をご覧ください)。 |
target |
ステートの取得元の Thing と、コマンドの送信先の Thing が異なる場合、送信先の Thing を指定します。両方の Thing とも同じオーナーである必要があります。 | |
title |
コマンドのタイトル(最大 50 文字まで)。 | |
description |
コマンドの説明(最大 200 文字まで)。 | |
metadata |
コマンドのメタデータ(JSONObject 形式) |
トリガーの登録に成功すると、Thing Interaction Framework は triggerID を払い出します。triggerID は次のように 201 応答として返されます。
HTTP/1.1 201 Created
Content-Type: application/json
{
"triggerID": "{TRIGGER_ID}"
}
時間条件(単発)のトリガーの登録
単発の時間条件を持つトリガーの登録例を以下に挙げます。
curl -v -X POST \
-H "Authorization: Bearer {ACCESS_TOKEN}" \
-H "X-Kii-AppID: {APP_ID}" \
-H "X-Kii-AppKey: {APP_KEY}" \
-H "Content-Type: application/json" \
"https://api-jp.kii.com/thing-if/apps/{APP_ID}/targets/thing:{THING_ID}/triggers" \
-d '{
"triggersWhat": "COMMAND",
"predicate": {
"eventSource": "SCHEDULE_ONCE",
"scheduleAt": 1483150970386
},
"command": {
"schema": "SmartLight",
"schemaVersion": 1,
"issuer": "user:{USER_ID}",
"actions": [
{"setLightColor": {"lightColor": "333"}}
]
},
"title": "Example #1",
"description": "Execute the command at the designated time",
"metadata": {
"color": "red",
"hex": "#333"
}
}'
Thing オーナーのアクセストークンを指定してください。また {THING_ID}
を対象となる Thing の thingID に差し替えてください。
時間条件(繰り返し)のトリガーの登録
繰り返しの時間条件を持つトリガーの登録例を以下に挙げます。
curl -v -X POST \
-H "Authorization: Bearer {ACCESS_TOKEN}" \
-H "X-Kii-AppID: {APP_ID}" \
-H "X-Kii-AppKey: {APP_KEY}" \
-H "Content-Type: application/json" \
"https://api-jp.kii.com/thing-if/apps/{APP_ID}/targets/thing:{THING_ID}/triggers" \
-d '{
"triggersWhat": "COMMAND",
"predicate": {
"eventSource": "SCHEDULE",
"schedule": "0 9 * * *"
},
"command": {
"schema": "SmartLight",
"schemaVersion": 1,
"issuer": "user:{USER_ID}",
"actions": [
{"setLightColor": {"lightColor": "333"}}
]
},
"title": "Example #2",
"description": "Execute the command on the scheduled interval",
"metadata": {
"color": "red",
"hex": "#333"
}
}'
Thing オーナーのアクセストークンを指定してください。また {THING_ID}
を対象となる Thing の thingID に差し替えてください。
実行時間の設定方法については、時間条件(繰り返し) を参照してください。
ステート条件のトリガーの登録
ステート条件を持つトリガーの登録例を以下に挙げます。
curl -v -X POST \
-H "Authorization: Bearer {ACCESS_TOKEN}" \
-H "X-Kii-AppID: {APP_ID}" \
-H "X-Kii-AppKey: {APP_KEY}" \
-H "Content-Type: application/json" \
"https://api-jp.kii.com/thing-if/apps/{APP_ID}/targets/thing:{THING_ID}/triggers" \
-d '{
"triggersWhat": "COMMAND",
"predicate": {
"eventSource": "STATES",
"condition": {"type": "eq", "field": "power", "value": true},
"triggersWhen": "CONDITION_CHANGED"
},
"command": {
"schema": "SmartLight",
"schemaVersion": 1,
"issuer": "user:{USER_ID}",
"target": "thing:{TARGET_THING_ID}",
"actions": [
{"setLightColor": {"lightColor": "333"}}
]
},
"title": "Example #3",
"description": "Execute the command when the state condition is met",
"metadata": {
"color": "red",
"hex": "#333"
}
}'
Thing オーナーのアクセストークンを指定してください。また {THING_ID}
を対象となる Thing の thingID に差し替えてください。