Nature Remo API でエアコンを操作する


概要

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

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

f:id:yuu2634:20180131225118p:plain


事前準備

API 関連の用語、作業時に少しハマったので記録しておきます。

  • Device: Nature Remo 本体
  • Appliance: Remo に登録済みの機器


また、Nature Remo API のアクセストークンが必要です。前回の記事で紹介しています。 blog.yuu26.com


Appliance ID 確認

操作する機器を特定するために、Appliance ID を確認します。我が家の Remo で言うと、左上の エアコン に当たる機器を探します。

f:id:yuu2634:20180131214758j:plain


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 にエンドポイントを作成。(認証ヘッダも追加) f:id:yuu2634:20180131224502p:plain


Slack の Slash Command で呼び出せるように設定。 f:id:yuu2634:20180131225047p:plain


これで、Slack から気軽にエアコンの電源を入れられます。 f:id:yuu2634:20180131225118p:plain


まとめ

  • Nature Remo API でエアコンを操作しました
  • Remo のリモコン操作を API 経由で実行できます
  • Webhook 連携などを活用すると様々な応用が効きます

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