2018年7月28日土曜日

Nature Remoを購入&APIでデータ取得テスト

今年の夏はとにかく暑い。。家に帰ったら30℃超え当たり前の日が続いており、
どうにか出来ないかと考えていたら、ツイッターでNature Remo miniの
発売開始セールとやらを見かけたので調べてみた。
どうやらスマホで自宅の家電を制御出来るデバイスのようだ。
その中でもエアコン設定がある程度細かく制御出来るようなので、
藁にもすがる思いで購入する事にした。せっかくなので温度だけでなく
湿度も知りたかったのでNature Remoの方を購入した。

中を開けると小さい本体、USBケーブル、ACアダプタ、説明書、
壁面に貼りつけるための両面テープが入っていた。


さっそく説明書どおりにWiFiの接続設定を済ませ、XZ1 compactに
Nature Remoアプリをインストールして、エアコンとシーリングライトの
設定を行った。設定は画面に従って本体にリモコンの赤外線を飛ばせば、
エアコンはプリセットのものですぐ認識された。シーリングライトは
消灯や調光、全光、タイマーなどを1つ1つ設定した。
設定後の画面は以下の通り。


エアコンは電源のON/OFF、温度設定、冷房/暖房/ドライ、風量の調整が可能。


実際に仕事帰りにスマホでエアコンをONにして、家に着いたらちょうどいい
室温になって助かっている。他にも自宅からXメートルに入ったらエアコンを
ONにする等のルールを設定出来たり、部屋の照度も分かるようになっている。

また、機器を制御するためのAPIが公開されていたので、
試しにコマンドを実行してセンサーの値を取得してみた。
実行環境はWindows10のWSL(Ubuntu)で、コマンドはcurlとjqを使用した。
<アクセストークン>には開発者用サイトで生成したアクセストークンを指定する。

username@hostname:~$ curl -X GET "https://api.nature.global/1/devices" -H "accept: application/json" -k --header "Authorization: Bearer <アクセストークン>" | jq .[].newest_events[].val
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   491  100   491    0     0    420      0  0:00:01  0:00:01 --:--:--   420
70
139.8
27.79

こんな感じで下の3行が上から順に湿度、照度、温度となっている。
また下記のようなシェルスクリプトをループ実行させてCSV出力すれば
時系列のデータが取得出来る。

#!/bin/bash

TMPFILE="tmpdata.txt"
CSVFILE="valdata.csv"
TMPDATA=""
DATE=`date +"%Y/%m/%d %T"`
DATE=`echo "\"$DATE\""`

curl -X GET "https://api.nature.global/1/devices" -H "accept: application/json" -k --header "Authorization: Bearer <アクセストークン>" | jq .[].newest_events[].val > $TMPFILE

while read LINE
do
    TMPDATA=`echo "$TMPDATA \"$LINE\""`
done < $TMPFILE

TMPDATA=`echo $TMPDATA | tr ' ' ','`
echo "$DATE,$TMPDATA" >> $CSVFILE

rm -f $TMPFILE

exit 0;
username@hostname:~$ watch -n 20 ./test.sh

username@hostname:~$ cat valdata.csv
"2018/07/28 19:55:53","70","139.6","26.6"
"2018/07/28 19:56:14","70","139.6","26.6"
"2018/07/28 19:56:35","70","139.6","26.6"
"2018/07/28 19:56:57","70","139.6","27.2"
"2018/07/28 19:57:18","70","139.6","27.79"
"2018/07/28 19:57:39","70","139.6","27.79"
"2018/07/28 19:58:01","70","139.6","27.79"
"2018/07/28 19:58:22","70","139.6","27.79"
"2018/07/28 19:58:43","70","139.6","27.79"

今のところはスマホでエアコンをON/OFFする事くらいしか役に立っていないが、
ルールやAPIが拡張されればさらに便利で楽しめるデバイスになりそうだ。

ちなみにNature Remo本体の設置場所によってセンサーの値が微妙に変わったり、
値の粒度が大雑把なのが少し気になる。もう少しセンサーが細かく働いてくれるといいのだが。

0 件のコメント:

コメントを投稿