Nature Remo API

参考

ブログもとに試す

API解説のブログを参考に試してみる。

home.nature.global につなぎ、アクセストークンを発行する。 なお、アクセストークンは決して漏らしてはならない。 ここではローカルファイルシステムにna.txtとして保存して利用することにする。

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
$ curl -X GET "https://api.nature.global/1/devices" -H "accept: application/json" -k --header "Authorization: Bearer `cat na.txt`" | jq
[
{
"name": "リビング",
"id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"created_at": "xxxxxxxxxxxxxxxxxxxx",
"updated_at": "xxxxxxxxxxxxxxxxxxxx",
"mac_address": "xxxxxxxxxxxxxxxxxx",
"serial_number": "xxxxxxxxxxxxxxxxxxxxx",
"firmware_version": "Remo/1.0.62-gabbf5bd",
"temperature_offset": 0,
"humidity_offset": 0,
"users": [
{
"id": "xxxxxxxxxxxxxxxxxxxxxxx",
"nickname": "xxxxxxxxxxxxxxxxxxx",
"superuser": xxxxxx
}
],
"newest_events": {
"hu": {
"val": 20,
"created_at": "xxxxxxxxxxxxxxx"
},
"il": {
"val": 104.4,
"created_at": "xxxxxxxxxxxxxxxxxx"
},
"te": {
"val": 22.2,
"created_at": "xxxxxxxxxxxxxxxxxxxxxx"
}
}
}
]
1
$ curl -X GET "https://api.nature.global/1/appliances" -H "accept: application/json" -k --header "Authorization: Bearer `cat na.txt`" | jq

センサーの値を取り出してみる

Nature Remo で温度超過時にアラート通知をする を参考に試す。 先の例と同様に、/1/devicesを叩くと、その戻りの中にセンサーの値が含まれているようだ。 そこでjqコマンドを使って取り出す。

1
$ curl -X GET "https://api.nature.global/1/devices" -H "accept: application/json" -k --header "Authorization: Bearer `cat na.txt`" | jq '.[].newest_events'

結果の例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"hu": {
"val": 20,
"created_at": "2019-01-18T15:01:43Z"
},
"il": {
"val": 104.4,
"created_at": "2019-01-18T13:26:58Z"
},
"te": {
"val": 21,
"created_at": "2019-01-18T14:24:23Z"
}
}

これを保存しておけばよさそう。

Python化

curl to python のサイトを利用し、上記curlをPythonスクリプトに変換した。

ローカルAPIを試してみる

Remoを探すため、公式サイトでは以下のように示されていた。

1
% dns-sd -B _remo._tcp

代わりに以下のコマンドで確認した。

1
2
dobachi@home:~$ avahi-browse _remo._tcp
+ xxxxx IPv4 Remo-xxxxxx _remo._tcp local
共有