アプリケーション開発
オートメーション機能の利用方法
オートメーション機能概要
オートメーション機能は、あらかじめレシピとして定義された自動判定処理(if-then ルール)を有効にすることで、ユーザがその自動判定処理を利用する仕組みです。
例えば、「もし部屋の温度がXX以上なら、XXのエアコンを起動する(XXはパラメータで可変)」といった内容のレシピが定義されている場合、以下の図のように同一レシピからパラメータを変更した複数のオートメーションを作り出すことが可能です。
また、一括制御として利用することも可能であり、条件を満たした場合に「家の全ての照明を消す」のように複数デバイスの制御も可能です。
ステップ1:レシピの登録
レシピの登録手順を説明します。
前提条件
- IoTアクセス制御エンジンのアカウント登録が済んでいること。
参考:IoTアクセス制御エンジンへのログイン(https://docs.dsymphony.com/db_operation_light_1.html) - オートメーションに利用するデバイスの登録が済んでいること。
IoTアクセス制御エンジンへのログイン
PCまたはスマートフォン/タブレットのブラウザから公式ダッシュボードにアクセスしてログインします。
ブラウザを起動して「https://console.dsymphony.com」にアクセスします。
公式ダッシュボードご利用にあたっての注意
- ご使用のブラウザでプライバシーモード(プライベートブラウジング、シークレットモード等)を有効にしている場合、ダッシュボードの機能が正常に動作しないことがあります。プライバシーモードを無効にしてご利用いただくことを推奨します。
- 公式ダッシュボードにはPC版とモバイル版の表示が用意されています。本サイトではPC版の画面を使用して説明しています。モバイル版でメニューを表示させたいときは、画面左上の
を押してください。
以下のいずれかのボタンを押します。
-
登録済みのアカウントでログインする場合
[ログイン]を押します。手順④に進んでください。 -
初めてログインする場合
[Googleアカウントで登録]、[dアカウントで登録]、[Facebookアカウントで登録]、[LINEアカウントで登録]のいずれかを押します。
各アカウントのログイン画面が表示されます。以降の操作は、画面の指示に従ってください。
アカウントの作成が完了すると下記の画面が表示されます。[ログイン]を押します。
ログインが完了すると下記の画面が表示されます。内容を確認し、登録したアカウントに応じて[Googleアカウントでログイン]、[dアカウントでログイン]、[Facebookアカウントでログイン]、[LINEアカウントでログイン]のいずれかを押します。
前回ログインから24時間経過しているかログアウト時にアクセストークンを無効化した場合、この操作が必要です。
これで、IoTアクセス制御エンジンにログインできました。
レシピの登録
レシピの登録を行います。
メニュー内の[レシピ登録一覧]を押します。
[レシピ登録]を押します。
レシピ登録画面が表示されるので、レシピ名、レシピカテゴリ、レシピ概要、ソースコードを入力します。
本チュートリアルで使用しているソースコードは、次の通りです (詳細はステップ3で解説します)。
「温度が閾値以上の場合にエアコンを起動するとともにSlackに通知する」というレシピです。
{
"description": "温度が閾値以上の場合にエアコンを起動するとともにSlackに通知する",
"recipeVersion": "0.1",
"parameters": {
"getTemperatureThingId": {
"type": "string",
"description": "温度取得APIを実行するデバイスのthingId",
"required": true
},
"putAirConditionerThingId": {
"type": "string",
"description": "エアコン起動APIを実行するデバイスのthingId",
"required": true
},
"thresholdValue": {
"type": "string",
"description": "トリガーを実行する閾値となる温度の値",
"required": true
},
"slackWebhookUrl": {
"type": "string",
"description": "SlackのWebhook のURL",
"required": true
},
"slackMessage": {
"type": "string",
"description": "Slackに通知するメッセージ",
"default": "部屋の温度が閾値以上となったため、エアコンを起動しました。",
"required": true
}
},
"dataSourceSteps": [
{
"id": "12345678901",
"name": "温度取得APIを実行",
"description": "",
"action": "symphony:runDeviceApiGet",
"inputs": {
"path": "/temperature",
"thingId": "{{ getTemperatureThingId }}",
"queryParameters": []
}
}
],
"triggerSteps": {
"switchTrigger": {
"id": "12345678902",
"name": "温度の確認",
"description": "",
"action": "symphony:switchDeviceApiResponse",
"inputs": {
"parameterName": "temperature",
"type": "integer",
"format": "int32",
"targetDataSourceId": "12345678901",
"conditionals": [
{
"value": "{{ thresholdValue }}",
"conditional": "GreaterThanOrEqualTo",
"targetActionIds": ["12345678903", "12345678904"]
}
]
}
}
},
"actionSteps": [
{
"id": "12345678903",
"name": "エアコンの起動APIを実行",
"description": "",
"action": "symphony:runDeviceApiPut",
"inputs": {
"path": "/airConditioner",
"thingId": "{{ putAirConditionerThingId }}",
"bodyParameters": []
}
},
{
"id": "12345678904",
"name": "Slackに通知",
"description": "",
"action": "symphony:notifySlack",
"inputs": {
"message": "{{ slackMessage }}",
"slackWebhookUrl": "{{ slackWebhookUrl }}"
}
}
]
}
ソースコードは、jsonファイルを[ファイル追加]ボタンからアップロードすることも可能です。
レシピカテゴリの違いについては、以下の通りです。
インスタント:
- GET API によって実行が可能です。
- 当該オートメーションは1度のみ実行されます。
モニタリング:
- PUT API によって開始、DELETE API によって停止が可能です。
- 開始を行うと停止されるまで決められた周期で定期的に動作を行います。
入力が完了したら、[登録]を押します。
登録が完了すると、レシピ登録一覧に登録したレシピが表示されます。
[詳細]を押すと、登録情報変更や削除が可能です。