Nature Remo API でエアコンを操作する(Slackでエアコン操作も)
Nature Remo Cloud API を利用して、エアコンを操作しました。
室温の取得は既にできた ため、次の段階としてリモコン信号の送信にチャレンジです。
今回利用したものは次の通り。
- 初期設定済みの Nature Remo (Nature Remo mini も可)
- Nature Remo Cloud API
- Slack Slash Command (応用編)
事前準備
API 関連の用語、作業時に少しハマったので記録しておきます。
- Device: Nature Remo 本体
- Appliance: Remo に登録済みの機器
また、Nature Remo API のアクセストークンが必要です。前回の記事 で紹介しています。
Appliance ID 確認
操作する機器を特定するために、Appliance ID を確認します。
我が家の Remo で言うと、左上の エアコン に当たる機器を探します。
appliances エンドポイント を利用します。
$ curl -X GET "https://api.nature.global/1/appliances" -H "Authorization: Bearer gyYP(略)"
大量のデータが返ってきますが、nickname
キーをヒントにエアコンを探します。今回は以下の JSON が得られました。
"id": "8870xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
が今回欲しかった Appliance ID です。
Device ID (device.id
) や、Model ID (model.id
) と間違えないように注意。
エアコン電源 ON/OFF
aircon_settings エンドポイント を利用します。URL 内で Appliance ID を指定。
$ curl -X POST "https://api.nature.global/1/appliances/<Appliance ID>/aircon_settings" -d "button=" -H "Authorization: Bearer gyYP(略)"
上手くいけば、部屋のエアコンが 勝手に 起動して驚きます。
POST で button=
を送信していますが、空文字を指定すると電源ON、button=power-off
を指定すると電源OFFらしいです。なぜそんな仕様に……。
温度調整、風量調整、モード変更
temperature=23
で温度を23度に設定、air_volume=1
で風量を1に設定できます。
$ curl -X POST "https://api.nature.global/1/appliances/<確認した ID>/aircon_settings" -d "temperature=23&air_volume=1" -H "Authorization: Bearer gyYP(略)"
operation_mode
で冷房・暖房・ドライ運転なども切り替えられますが、詳細は 公式ドキュメント を参照ください。
応用方法
単純な HTTP リクエストで操作できるので簡単に応用可能です。
例えば、AWS API Gateway にエンドポイントを作成。(認証ヘッダも追加)
Slack の Slash Command で呼び出せるように設定。
これで、Slack から気軽にエアコンの電源を入れられます。
まとめ
- Nature Remo API でエアコンを操作しました
- Remo のリモコン操作を API 経由で実行できます
- Webhook 連携などを活用すると様々な応用が効きます
すでに変なネタを複数考えたので、気が向いたときに実装してみようと思います。
環境を持っている方は、ぜひいろいろお試しください。