Nature Remo 3 本体のセンサーの情報を jq で絞り込み取得する
どうも、かげさんです(^^)/
あなたがこの記事を読んでいるのは何回目でしょうか?
初めての方、いらっしゃい!
複数回目の方、再訪問ありがとです(・∀・)
「Nature Remo Cloud API について(その2)」にも記載したように Remo の newest_events の部分が、Nature Remo 3 本体のセンサーの情報で val が値である。
・hu:湿度(humidity)
・il:照度(illuminance)
・mo:人感(motion)
・te:温度(temperature)
jq を使うことでそれぞれの値を絞り込んで取得できます。
湿度センサーの値取得
curl -X GET "https://api.nature.global/1/devices" -H "accept: application/json" -H "Authorization: Bearer XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" | jq .[].newest_events.hu.val
2022/02/13追記 湿度センサーがない Nature Remo mini シリーズでは取得できません。
照度センサーの値取得
curl -X GET "https://api.nature.global/1/devices" -H "accept: application/json" -H "Authorization: Bearer XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" | jq .[].newest_events.il.val
2022/02/13追記 照度センサーがない Nature Remo mini シリーズでは取得できません。
人感センサーの値取得
curl -X GET "https://api.nature.global/1/devices" -H "accept: application/json" -H "Authorization: Bearer XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" | jq .[].newest_events.mo.val
2022/02/13追記 人感センサーがない Nature Remo mini シリーズでは取得できません。
温度センサーの値取得
curl -X GET "https://api.nature.global/1/devices" -H "accept: application/json" -H "Authorization: Bearer XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" | jq .[].newest_events.te.val
補足の追記
▼2022/02/12 追記ここから
curl -X GET "https://api.nature.global/1/devices" -H "accept: application/json" -H "Authorization: Bearer XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" | jq .[].newest_events.hu.val
ちなみに、この記述は Nature Remo 本体を持っていて、かつ、Nature Remo の製品が1つだけのときに湿度だけ出力されます。
Nature Remo の製品が複数あるときにこの記述をすると、こんな出力になります。
curl -X GET "https://api.nature.global/1/devices" -H "accept: application/json" -H "Authorization: Bearer XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" | jq .[].newest_events.hu.val
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1081 100 1081 0 0 1081 0 0:00:01 --:--:-- 0:00:01 1503
null
47
Nature Remo 3 の湿度センサーの値は47%
それは良いとしてその前のnullは何でしょう?
かげさんの場合、Nature Remo の製品(Nature Remoデバイス)を2つ持っています。
- Nature Remo 3
- Nature Remo E lite
Nature Remo Cloud API について(その2)のようにjqによる絞り込みを入れない時は、こうなります。
curl -X GET "https://api.nature.global/1/devices" -H "accept: application/json" -H "Authorization: Bearer XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" | jq .
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1081 100 1081 0 0 1081 0 0:00:01 --:--:-- 0:00:01 1356
[
{
"name": "Remo E lite",
"id": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"created_at": "2022-01-25T14:43:37Z",
"updated_at": "2022-01-25T14:44:04Z",
"mac_address": "XX:XX:XX:XX:XX:XX",
"bt_mac_address": "XX:XX:XX:XX:XX:XX",
"serial_number": "4W1XXXXXXXXXXX",
"firmware_version": "Remo-E-lite/1.3.9",
"temperature_offset": 0,
"humidity_offset": 0,
"users": [
{
"id": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"nickname": "かげさん",
"superuser": true
}
],
"newest_events": {}
},
{
"name": "Remo",
"id": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"created_at": "2021-06-20T10:07:47Z",
"updated_at": "2022-02-10T14:19:51Z",
"mac_address": "XX:XX:XX:XX:XX:XX",
"bt_mac_address": "XX:XX:XX:XX:XX:XX",
"serial_number": "1W3XXXXXXXXXXX",
"firmware_version": "Remo/1.6.6",
"temperature_offset": 0,
"humidity_offset": 0,
"users": [
{
"id": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"nickname": "かげさん",
"superuser": true
}
],
"newest_events": {
"hu": {
"val": 41,
"created_at": "2022-02-05T14:06:34Z"
},
"il": {
"val": 64,
"created_at": "2022-02-05T14:10:32Z"
},
"mo": {
"val": 1,
"created_at": "2022-02-05T14:05:42Z"
},
"te": {
"val": 20.4,
"created_at": "2022-02-05T14:09:34Z"
}
}
}
]
name のところを見てもらうと Remo E lite 、Remo の順になっています。そして、Remo E lite の方にある newest_events には hu も val もありません。つまりデータが存在しない = null となります。
湿度取得の curl コマンドの jq の部分だけ見てみます。
jq .[].newest_events.hu.val
後ろの方、.newest_events.hu.val は、newest_events 内の hu 内の val という意味です。
前の方の .[] は、ルート(最上位階層)内の全配列という意味です。
配列番号は 0 から始まります。配列部分は、上述の jq の絞り込みを入れない場合の最上位階層は [ から始まるので、次の階層 { の中が0番目の配列になります。つまり、name が Remo E lite の部分です。同様に1番目の配列は、name が Remo の部分になります。
ということで、かげさんが Nature Remo 3 本体の湿度を取得したい場合は、jq の部分をこのように記述する必要があります。
jq .[1].newest_events.hu.val
hu:湿度センサーの値なので hu の部分を il に変えると照度センサーの値、 mo に変えると人感センサーの値、te に変えると温度センサーの値が取得できます。
▲2022/02/12 追記ここまで
ここまではOKだ
コメント
このブログの新着コメントをRSSリーダに登録する為のxml