LoginSignup
0
0

More than 1 year has passed since last update.

NatureRemo APIをInsomniaクライアントを介して叩いてみた

Posted at

はじめに

スマートハウスにして日々の生活を便利にしたくて、Nature Remo 3 を買った。
赤外線リモコンで操作できる家電については、スマホアプリor WebAPIからコマンドを送れるという。

今回は、InsomniaというWebAPIを設計/デバッグ/テストするデスクトップツールを介して、
WebAPIを叩いて、テレビをON/OFFさせてみる。

この記事の前提条件

  • Nature Remo 3の初期設定が完了して、テレビ(本記事で触る家電)との連携がすでにできていること
  • Insomniaをインストールしていること

参照情報

大まかな流れ

  1. アクセストークンを発行
  2. OAuth2の設定でアクセストークンを指定
  3. Nature API仕様(クラウド)を元にGET/POSTする

アクセストークンの発行

OAuth2の設定

Nature API仕様(クラウド)の"Authorize"という鍵マークボタンを押すと、
Token URLが記載されていた。

image.png

このToken URLに、さきほど発行したアクセストークンを送信すれば良いので、
InsomniaのOAuth2タブにて、GRANT TYPEをClient Credentialsにして下記の通り設定すると良かった。

image.png

"https://api.nature.global/1/users/me" にGETリクエストを投げて、200が帰ってくれば認証成功となる。

室内の温度を取得してみる

"https://api.nature.global/1/devices" にGETリクエストを投げると、下記が帰ってきた。

...
			"hu": {
				"val": 36,
				"created_at": "2022-03-20T01:59:17Z"
			},
			"il": {
				"val": 173,
				"created_at": "2022-03-20T01:59:11Z"
			},
			"mo": {
				"val": 1,
				"created_at": "2022-03-20T01:54:24Z"
			},
			"te": {
				"val": 24,
				"created_at": "2022-03-20T01:43:16Z"
			}
...

API仕様の末尾にModels仕様が記載されていて、
Devicesレスポンスから、temperature,humiditym illumination, movementが取得できることがわかった。
API仕様書内のDeviceはNatureRemoのことを指しているようだ。

image.png

接続機器のIDを取得する

"https://api.nature.global/1/appliances" にGETリクエストを投げることで、Nature Remoに登録済みの家電一覧が取得できる。

その中からテレビに対応するApplianceのidを取得する。

image.png

取得したテレビのApplianceのidを介して制御

"https://api.nature.global/1/appliances/<テレビのApplianceのid>/tv" にPOSTリクエストを送信することで、テレビのON/OFFができる。
Quearyとして、buttonに制御したいキーを設定(今回はpower)する必要がある。

この制御できるキーは、"/1/appliances" のレスポンス一覧に含まれている。

image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0