Open4

Nature RemoのAPIを使ってみる

Ryo IshizawaRyo Ishizawa

目標

  • GitHub ActionsからNature RemoのAPIを実行して家電操作したい

モチベーション

  • Nature Remoでのアプリでもスケジュール設定はできるが、筆者はすでに10個以上の設定を入れていてメンテが面倒
  • cronのように設定できるとコマンドのコピペで設定できるので楽そう
  • GitHub Actionsでcronのようにスケジュールを組めるという話を聞いたので試してみる
Ryo IshizawaRyo Ishizawa

APIでエアコンを止めてみる

Token取得

  • 公式ページで、まずはこちらからAPIを実行するのに必要なTokenを利用する

https://home.nature.global/

必要なID情報を取得

  • まずはDevice情報を取得する
    • 以下のコマンドの {Token}に、上記で取得したTokenを入れる
  • 正常に実行できていれば、Device情報が返却される
curl -X GET "https://api.nature.global/1/devices" -H "accept: application/json" -k --header "Authorization: Bearer {Token}"
  • 次にDevice情報内にあるIDを利用して、Appliance(家電)情報を取得する
  • 正常に実行できていれば、Nature Remoに登録済みのAppliance情報が返却される
curl -X POST "https://api.nature.global/1/appliances/{Device ID}/aircon_settings" -H "accept: application/json" -H "Content-Type: application/x-www-form-urlencoded" -d "temperature=23&button=power-off" -k --header "Authorization: Bearer {Token}"

エアコンを止める

  • /1/appliances/{appliance}/aircon_settings を利用することでエアコンを止めることができた
curl -X POST "https://api.nature.global/1/appliances/{Appliance ID}/aircon_settings" -H "accept: application/json" -H "Content-Type: application/x-www-form-urlencoded" -d "button=power-off" -k --header "Authorization: Bearer {Token}"

参考

https://developer.nature.global/

https://qiita.com/sohsatoh/items/b710ab3fa05e77ab2b0a

API詳細は、以下のSwaggerを参照してやりたいことを探す。正直、自分のやり方が正しいのかはよく分かってない。。

https://swagger.nature.global/#/default/post_1_appliances

Ryo IshizawaRyo Ishizawa

APIでエアコンをオンにする

  • -dの中に温度等を設定すれば良い。例えば、「温度25度・冷房・風量1」と設定したいとするとtemperature=25&operation_mode=cool&air_volume=1をリクエストに含めて送信する。
curl -X POST "https://api.nature.global/1/appliances/{Appliance ID}/aircon_settings" -H "accept: application/json" -H "Content-Type: application/x-www-form-urlencoded" -d "temperature=25&operation_mode=cool&air_volume=1"  -k --header "Authorization: Bearer {Token}