created: 2022-06-03T08:38:44.909Z

NatureRemo で家電を curl から操作できるようにする

暑くなってきて、NatureRemoで扇風機をつけたり消したりしたくなった。

トークンを取得

こちらのページからトークンを払い出すことができる。とても簡単で素晴らしいと思った。

appliances(登録して操作できるようになっている機器)を一覧する

curl -H "Authorization: Bearer $NATURE_REMO_TOKEN" \
    -H "accept: application/json" \
    "https://api.nature.global/1/appliances"

取得したものから目当てのデバイスを見つける

jq で探すと楽。

$ cat /tmp/_.json | jq '.[] | select(.nickname | test("サーキュレーター"))'
{
  "aircon": null,
  "device": {
    "created_at": "2019-12-09T14:08:13Z",
    "firmware_version": "Remo/1.0.79-gbbc1234",
    "humidity_offset": 0,
    "id": "433ba565-d471-1234-900f-ba6c7511fe83",
    "mac_address": "2c:f4:32:2d:23:9c",
    "name": "リモ",
    "serial_number": "1W219090001234",
    "temperature_offset": 0,
    "updated_at": "2022-06-02T12:23:24Z"
  },
  "id": "6b72d00d-e906-1234-b0d9-7b257aasdf91a9",
  "image": "ico_fan",
  "model": null,
  "nickname": "ファミリールームサーキュレーター",
  "settings": null,
  "signals": [
    {
      "id": "a231c133-6d83-43d6-b5f8-90dasfb037fff",
      "image": "ico_on",
      "name": "オン"
    },
    {
      "id": "7dc5af79-2f71-4414-9869-0bd9a393asdf79",
      "image": "ico_timer",
      "name": "タイマー"
    }
  ],
  "type": "IR"
}

赤外線を発射するAPIを叩く

赤外線をsendするためのsignal APIを叩く。

パラメータはないがPOSTリクエストにするのに注意。

curl -XPOST -H "Authorization: Bearer $NATURE_REMO_TOKEN" \
    -H "accept: application/json" \
    "https://api.nature.global/1/signals/${NATURE_REMO_CIRC_SIG_ON}/send"

参考

その他

ちなみに Nature Remo の Local API というのがあるが、これはおそらくだいたいの人が期待するようなものではない。デバッグ的な機能のようだ。

直近に受信した赤外線を返すAPIのようです。永続化はされてないようで、そのうちクリアされて404が返るようになります。