Nature Remoで温度計を作ろう!

Nature Remo活用シリーズ

0.開封編 1.ダイキンのエアコン 2.ダイキンのエアコン、その2
3.アイリスオーヤマのサーキュレーター 4.温度計  

さて、めっきり寒くなってきました。空気も乾燥しています。そうなると気になるのが部屋の温度と湿度です。今、何度なのかなー、肌がカサつくけど湿度はどのくらいかなーと知りたくなりますが、生憎、私の部屋には温度計がありません。今更温度計を買うのもなんだなーと考えていたところ、ふと思い出しました。

そういえばNature Remoに温度計とかセンサーがついていたような・・・。

調べてみると、Nature Remoには温度、湿度、照度、人感センサーがついており、各センサーの値をAPI経由で取得できることがわかりました。

だったら定期的にAPIを叩いて温度と湿度をブラウザで表示できるようにしよう!

というわけで久しぶりにコードを書くことにしました。

まずはアクセストークンの取得

まずはじめにNature RemoのAPIを使えるようにするためのアクセストークンを発行します。アクセストークンを発行するためのURLはこちらです。

https://home.nature.global/

ログインをクリック

メールアドレスを入力

メールを送りましたとなるのでメールソフトを開きます。

メールに書いてあるリンクを開いて「許可する」をクリック

これでアクセストークンを発行できる状態になりました。すでにあるトークンは以前作ったIFTTT連携用ですね。

早速、アクセストークンを発行します。左下の「Generate access token」をクリックします。

新しいアクセストークンが発行されます。簡単ですね。ここで注意2点ほど。一つはアクセストークンの表示は一度きりなので必ずメモすること、2つめはアクセストークンは他人にバレないようにすることです。まあバレても部屋の温度と湿度が分かるのとエアコンとかが勝手に操作されるだけですけど・・・。

Nature RemoのAPIはcurlで叩いてJSONで取得

アクセストークンが取得できたので、プログラムを書く前に試しにAPIを叩いて情報の取得ができるか試してみましょう。Nature RemoのAPIはREST APIなのでcurlコマンドで簡単に試すことができます。

またNature RemoのAPIはマニュアルが公開されているので、必要な情報の取得や操作のためのURIはマニュアルから参照できます。

http://swagger.nature.global/

Nature Remoのセンサーの値を取得するためのコマンドは以下です。<<アクセストークン>>のところに先程取得したトークンを入れます。

curl -X GET "https://api.nature.global/1/devices" -H "accept: application/json" -H "Authorization: Bearer <<アクセストークン>>"

何やらズラズラっと出てきます。出力形式はJSONです。ちなみにこのコマンドはChromebookのLinux機能を使いました。Chromebook便利ですね!

話は逸れますが最近はREST + JSONが流行りですが、ぶっちゃけ私は苦手です。JSONって可読性は悪いし、データの抽出も一手間かかるし・・・。

まあ仕様ですので致し方ありません。jqコマンドを使って整形します。

curl -X GET "https://api.nature.global/1/devices" -H "accept: application/json" -H "Authorization: Bearer <<アクセストークン>>" | jq

可読性が良くなりました。”newest_events”以降がNature Remoの各種センターの値です。それぞれの意味はAPIマニュアルの「SensorValue」のdescriptionに以下のように書いてあります。


The reference key to SensorValue means “te” = temperature, “hu” = humidity, “il” = illumination, “mo” = movement

ということなので、

te 温度
hu 湿度
il 照度
mo 人感センサー

なのだと思います。照度の値がルクスなのかは分かりませんでした。

出力結果から私の部屋は現在、気温が18.2度で湿度が45%で明るさは10.39で人がいるということが分かります。

温度と湿度を抽出

今回の目的は温度計を作ることなので、必要な情報である温度と湿度をjqコマンドを使って更に絞り込みます。

温度だけを出す場合は以下のコマンドです。

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

湿度だけを出すコマンドは以下

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

見事に目的の値を出すことに成功しました!!あとはこの値をブラウザで表示できるようHTMLを生成するだけです。

今回はここまで。次回はこれらの処理を自動で行うプログラムを作成して簡単な温度計Webアプリを作りたいと思います。

【安全第一主義】イスラエルに聖地を見に行こう! 〜 世界一厳しい?!入国編 〜

【目次】イスラエルに聖地を見に行こう!シリーズ

0. 計画編 1. 準備編 2. 事前勉強編 3. 出発編
4. 入国編      

さて、今回は入国編です。世界一厳しい?!と言われるイスラエルの入国審査からエルサレムまでのレポートです。

イスラエル上空

イスタンブール新空港を飛び立って約2時間。ついにイスラエル上空に入りました。テルアビブ北部上空を通過する模様です。

市街上空。高い建物は無さそうですが、人口は結構密集している模様です。

蛇足ですが飛行機の中でこんなエピソードが。

何の気なしに座席前に入っている雑誌をパラパラめくっていると隣に座っている恐らくイスラエル人のおじさんが「上にライトがあるから付けたらいいよ」と急に教えてくれました。何なんですかね、この外国人の他人でも急に話しかけて親切にしてくれる行為。日本人にはない習慣なのでちょっとびっくりします。一説には近くにいる他人が怪しい者ではないか確認しているとも言われますが、単に親切な人が多いなんじゃないかなとも思ったりします。「お〜、せんきゅー」とお礼を言ってライトを付けました。

ベン・グリオン国際空港に到着

さて景色を眺めたりしていたらあっという間にテルアビブ(ベン・グリオン国際空港)に到着しました。

タラップを降りて早速、人生初のヘブライ語の看板発見!記念にパシャリ。ちなみになんて書いてあるかは分かりません!(爆

特徴的な廊下。奥から下ってくる方は出国の人たちです。

「WELCOME!!」この奥が入国審査場になっています。右のヘブライ語はなんて書いてあるか分かりません。Welcomeかな?

入国審査

遂に世界で一番厳しいと言われる入国審査です。入国審査場はイスラエル人用とその他用で分かれています。それぞれ7列ぐらいあったと記憶しています。私はすごく緊張していてうまく応えられるかとか疑われて別室に連れて行かれたりしたらどうしようとか心配をしていました。が、別にやましいことは無いので正直に答えたら大丈夫かなとも考え順番を待ちます。ちなみに審査員が優しそうな女性の列に並びましたが、他の人のやり取りを見ていた限り関係無さそうです(笑

私の前の同じくアジア系の二人組が無事通過となり「Next!」と私の番になります。私の入国審査でのやり取りはこんな感じでした。

何しに来た? 観光に来ました。
何泊? 10泊です。
どこに滞在? エルサレムとテルアビブです。
どこのホテル? エルサレムはマミーラホテルでテルアビブはヒルトンテルアビブです。
バウチャー見せて (バウチャーを見せる)
OK Thank you

大体このくらいでした。質問は一つずつゆっくり聞かれ、答えるときにバッチリ目を見られます。ちなみにバウチャーは焦ってエルサレムのホテル分しか出さなかったのですが、特に何も言われませんでした。どちらかと言うと内容より受け答えの反応とか言い淀みが無いかとか嘘ついてないかとかそんな反応を見てる感じがしました。

というわけで、思ったよりあっさり入国審査を通過しました!

入国審査に合格するとこのようなIDカードが発行されます。このカードはホテルのチェックインなどの際、見せる必要があり滞在中は常に携帯する必要があります。ベリーインポータントカードです。(ホテルで言われた)

タクシーでエルサレムへ!

手荷物を受け取ってホテルで手配してもらったタクシーに乗り込みます。エルサレムへGo!

国道1号線を南下してエルサレムへ向かいます。飛行機からはよく見えませんでしたが、砂漠地帯が広がっています。

エルサレムに到着!

遂に憧れの地、エルサレムに到着しました!いやー感無量です。

今回はここまで。次回はエルサレム観光の拠点となるマミーラホテルのレビューです。