Nature RemoのAPIを叩く
Nature Remo miniを買ったので、APIを叩いてみる
以下作業手順。
1. アクセストークンの取得
ここにアクセスし、nature remoアカウントでログインする。
ログインするとリクエスト画面になるので、許可するボタンをクリック
「Access tokens」画面になるので、「Generate Access Tokens」ボタンをクリック
するとアクセストークンが表示されるので、これを控える
2. APIを叩く
2.1 デバイス一覧の取得
APIページを参考にAPIを叩いてみる。
まずは登録した機器の一覧を出力。
$tokenに1で取得したアクセストークンを設定した上で、以下コマンドを実行
$ curl https://api.nature.global/1/appliances -H "Authorization: Bearer $token" | jq . % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 2546 100 2546 0 0 3512 0 --:--:-- --:--:-- --:--:-- 3511 [ { "id": "XXXXXXXX-2518-4bd8-XXXX-c571XXXXXXXX", "device": { "name": "RemoLiving", "id": "d9171fca-XXXX-4647-XXXX-XXXXXXXXXXXX", "created_at": "2018-08-19T01:41:11Z", "updated_at": "2018-08-19T08:55:37Z", "firmware_version": "Remo-mini/1.0.87-g8b06f0e", "temperature_offset": 0, "humidity_offset": 0 }, "model": null, "nickname": "電気", "image": "ico_light", "type": "IR", "settings": null, "aircon": null, "signals": [ { "id": "c9d7c6b6-bb22-4b57-8ecc-04683096caee", "name": "オフ", "image": "ico_io" }, { "id": "b67d7329-f5ac-45ca-a87e-468c5210e1a9", "name": "全光", "image": "ico_io" }, { "id": "fa7459bc-5b0c-4d36-bb2c-ab6f59290d66", "name": "光色(青)", "image": "ico_color_blue" }, { "id": "2482b859-5d6e-48f4-9900-93172606e578", "name": "光色(オレンジ)", "image": "ico_color_yellow" }, { "id": "c46b8bfe-5654-41a0-aaac-76bacce73f1e", "name": "明るさ(UP)", "image": "ico_arrow_top" }, { "id": "071c83e9-2070-49ca-8511-c7edec74ed92", "name": "明るさ(down)", "image": "ico_arrow_bottom" } ] }, (以下略) ]
とズラズラっと登録したデバイス情報が取得できた。
2.2 家電の電源ON/OFF
先程取得したdevice情報の中でsignalsのidを使用し電源のON/OFFを試す。
以下コマンド(これでTVの電源ON/OFFができるはず)
$ curl -X POST https://api.nature.global/1/signals/{signalsのid}/send -H "Authorization: Bearer $token
テレビがつけることに成功。
3. scriptから電気の明るさを変える
我が家ではリモコンから電気をONにすると明るすぎるため、毎回リモコンで明るさを調整していた。 (壁のスイッチをON/OFFだと明るさ設定は保たれるので、なにかしらのやりようはある気がしているが、、) 毎回リモコンから実行するのが面倒なため、pythonからapiを複数回叩いて電気の明るさを良い感じに変えるscriptを書いた
import requests import json from time import sleep # APIを呼んで情報取得 headers = { 'accept': 'application/json', 'Authorization': 'Bearer "アクセストークン"', } signal_id = "1a4a72e8-fb56-45b5-9fd8-19a81be8b6de" # 前光でつける signal_id = "b67d7329-f5ac-45ca-a87e-468c5210e1a9" response = requests.post("https://api.nature.global/1/signals/" + signal_id + "/send",headers=headers) # 光色を暖色にするを7回実行 signal_id = "2482b859-5d6e-48f4-9900-93172606e578" for i in range(7): response = requests.post("https://api.nature.global/1/signals/" + signal_id + "/send",headers=headers) sleep(1) # 明るさdownを3回実行 signal_id = "071c83e9-2070-49ca-8511-c7edec74ed92" for i in range(3): response = requests.post("https://api.nature.global/1/signals/" + signal_id + "/send",headers=headers) sleep(1)
次はこのscriptをAmazon Echoから実行できるように設定する