Nature RemoのAPIでターミナルから家電を操作してみた
周囲で空前の音声で家電を動かすブームがきているのですが、2018年1月30日にNature RemoのAPIが公開されたのを教えていただいたのでざっと叩いてみました。
Nature Remo
スマホアプリやスマートスピーカーなどをトリガーに赤外線を発信できるデバイスです。
簡単に行ってしまえば「赤外線リモコンで操作できる」ものを「リモコン以外から操作できるようにする」やつです。 APIの公開によってIFTTTの連携を使わずにアプリケーションとの組み込みが直接行えるようになるのではないでしょうか。
API仕様を眺めてみる
主にユーザ、家電、Remo本体の参照や登録、赤外線の送信などが行えるようです。
APIというよりRemo自体がそういうものなのだと思いますが、エアコン関連が充実しています。
公式のAPIの仕様はこちらです。
やってみた
とりあえずコマンドラインから家電を操作してみたいと思います。
必要なもの
- いずれかの家電を登録済みのNature Remo
アクセストークンの取得
https://home.nature.global/にアクセスし、トークンを取得します。
トークンが取得できました。
APIを叩いてみる
- ※以下のコマンド実行結果では一部Jsonを整形/値のマスキングをしています。
- ※
{$TOKEN}には取得したTOKENを入力してください。
自分の情報を取得
1 2 3 4 5 | $ curl -H 'Authorization: Bearer{$TOKEN}'-H "accept: application/json" -X GET{"id":"xxxxxxx","nickname":"じゅん"} |
登録された家電一覧を取得
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 | $ curl -H 'Authorization: Bearer{$TOKEN}'-H "accept: application/json" -X GET[ { "aircon": null, "device": { "created_at": "2018-01-28T07:43:17Z", "firmware_version": "Remo/1.0.62-gabbf5bd", "humidity_offset": 0, "id": "xxxxx", "name": "Remo", "temperature_offset": 0, "updated_at": "2018-01-30T14:46:39Z" }, "id": "xxxxx", "image": "ico_ac_1", "model": null, "nickname": "電気", "settings": null, "signals": [ { "id": "xxxxx_light", "image": "ico_lightup", "name": "電気" } ], "type": "IR" }, { "aircon": { "range": { "fixedButtons": [ "power-off" ], "modes": { "auto": { "dir": [ "auto", "swing" ], "temp": [ "-5", "-4", "-3", "-2", "-1", "0", "1", "2", "3", "4", "5" ], "vol": [ "1", "auto" ] }, "blow": { "dir": [ "auto" ], "temp": [ "" ], "vol": [ "auto" ] }, "cool": { "dir": [ "auto", "swing" ], "temp": [ "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32" ], "vol": [ "1", "2", "3", "4", "5", "6", "auto" ] }, "dry": { "dir": [ "auto", "swing" ], "temp": [ "-2", "-1", "0", "1", "2" ], "vol": [ "" ] }, "warm": { "dir": [ "auto", "swing" ], "temp": [ "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30" ], "vol": [ "1", "2", "3", "4", "5", "6", "auto" ] } } }, "tempUnit": "c" }, "device": { "created_at": "2018-01-28T07:43:17Z", "firmware_version": "Remo/1.0.62-gabbf5bd", "humidity_offset": 0, "id": "xxxxx", "name": "Remo", "temperature_offset": 0, "updated_at": "2018-01-30T14:46:39Z" }, "id": "xxxxx", "image": "ico_ac_1", "model": { "id": "xxxxx", "image": "ico_ac_1", "manufacturer": "daikin", "name": "Daikin AC 001", "remote_name": "arc446a4", "series": "Daikin AC" }, "nickname": "Daikin AC 001", "settings": { "button": "", "dir": "", "mode": "auto", "temp": "-5", "updated_at": "2018-01-30T14:46:38Z", "vol": "" }, "signals": [], "type": "AC" }] |
登録済みのエアコンと照明の情報が取得できました。エアコンの情報はかなりリッチですね。
照明をつけてみる
https://api.nature.global/1/appliancesのレスポンスに含まれる「電気」のidを指定してAPIを実行します。
1 2 3 4 5 6 7 | $ curl -H 'Authorization: Bearer{$TOKEN}'-H "accept: application/json" -X POST"https://api.nature.global/1/signals/{$電気のid(xxxxx_light)}/send"-H "accept: application/json" -H "Content-Type:application/x-www-form-urlencoded"{} |
※ 部屋の照明が消えました
参考ページ
感想
現時点では謎のアイデアばかり思いつきますが、ものすごく夢が広がりそうです。 curlで照明をコントロールするのは大分不思議な気持ちです。
わたしからは以上です。