Nature Remo API でエアコンを操作する(Slackでエアコン操作も)

Nature RemoTech

Nature Remo Cloud API を利用して、エアコンを操作しました。
室温の取得は既にできた ため、次の段階としてリモコン信号の送信にチャレンジです。

今回利用したものは次の通り。

事前準備

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 連携などを活用すると様々な応用が効きます

すでに変なネタを複数考えたので、気が向いたときに実装してみようと思います。
環境を持っている方は、ぜひいろいろお試しください。