What's Nature Bath ?
「Nature Bath」とは、毎回様々なゲストをお呼びして各回のトピックについて語り合うMeetupです。カジュアルな雰囲気でインタラクティブに参加者のみなさまと親交を深められるような会にしたいと思っています。森林浴(Forest Bath)からとった「Nature Bath」はMeetupを通して、Natureについても少しでも理解を深めてもらえればという思いで命名しました。
第三回目となる今回のNature Bathは、元DeNA取締役CTO兼Nature技術顧問の川崎修平さんをゲストに迎え、「スマートフォンアプリで物理デバイスを動かす面白さ」をテーマに、Nature代表取締役CEO塩出、ソフトウェアエンジニア亀田と共にディスカッションしました。IoTという物理デバイスがあるからこその楽しさや難しさに迫ります。
“IoT屋さん”にとどまらない。Natureが取り組んでいることとは?
Nature株式会社 代表取締役CEO
塩出 晴海
13才の頃にインベーダーゲームを自作、2008年にスウェーデン王立工科大学でComputer Scienceの修士課程を修了、その後3ヶ月間洋上で生活。三井物産に入社し、途上国での電力事業投資・開発等を経験。2016年ハーバード・ビジネス・スクールでMBA課程を修了。ハーバード大在学中にNatureを創業。
塩出:弊社はIoTのスマートリモコンを開発販売している会社というイメージが強いと思いますが、これらの事業をスタートさせた原体験は、電力にあります。僕は元々総合商社の三井物産で電力領域の事業開発に携わっていました。このスライドのFounding Storyの通り、その当時現場で感じた違和感から、電力をクリーンエネルギーだけでまかなえるような世界を作りたいと思い、Natureをスタートしました。
塩出:では、なぜIoTデバイスなのか?今まで電気の世界は、需要側は好きに動いて供給側を合わせていくという仕組みでした。しかし、最近ではIoTデバイスも普及し、様々な家電製品をインターネットに繋ぐことができる時代になりました。それをうまく活用して、電力の需要をコントロールすることができたら1年で数百時間しか使われていないような非効率な発電所をリプレイスし、効率がよくクリーンな仮想発電所をIoTで実現できるのではないか?そんな想いから、エアコンに繋がるIoTデバイスの開発をスタートしました。
弊社は「自然との共生をテクノロジーでドライブする」をミッションに掲げ、最終的には「IoTプロダクトを使ってクリーンエネルギーへのシフトを加速させる」ことをビジョンとしています。その為に、まずはNature Remoでホームオートメーションに特化して、たくさんのエアコンをインターネットに繋ぐことに注力しています。そして昨年の末から「Nature Remo E」という新しいデバイスの販売をスタートしました。これは、太陽光システムや蓄電池、スマートメーターと連携できるデバイスです。ゆくゆくは、これらNature Remoシリーズをマイクログリッドオペレーターとして活用することで、仮想発電所の実現を目指しています。
スマホアプリでIoTの物理デバイスを動かす面白さ
元・株式会社ディー・エヌ・エー取締役CTO
川崎 修平
元DeNAの取締役CTO。「Mobage」や「モバオク」を独力3ヶ月で開発。東京大学大学院の博士課程に在学中の2002年より、株式会社ディー・エヌ・エーにアルバイト入社し、07年には取締役に就任。規格外の発想力・開発力・スピードで同社のサービスの開発をリード。Natureの技術顧問。
「モバゲー」や「SHOWROOM」とは一味違うIoT開発。趣味が高じて電気工事士に
川崎:IoTに携わる前は、「モバゲー」や「SHOWROOM」といったスマートフォンなどネットで完結するサービスをずっと作っていました。最後に「Anyca」というCtoCのカーシェアサービスの事業に携わったのですが、もう少し物理デバイスについて詳しければ、より良いデバイスの選び方や、UXを改善することができたのではと思うことがありました。
それを機に、子どもの学習管理やピアノを弾いた時間を計測するなど、趣味で電子工作をするようになりました。自分用には、ミニ四駆のラップタイムを測るデバイスを作ったりもしています(笑)。これまでは、何かアイデアが浮かんでもその実現に物理デバイスが必要な場合には、断念せざるを得ませんでした。しかし、自ら電子工作に取り組むようになってからは非常に選択肢が広がりました。そこから、だんだん家の中のあらゆるものをコントロールしたくなってきて、電気工事士の資格を取りました。
電子工作を学んでからは、スマートフォンが別のものに見えてきました。
Remoはスマートフォンアプリを介して動いていますが、スマートフォンはいろんなセンサーの塊で、出力機であり、マイクもついていて、ネットと繋がり処理することもできる。Remoを触ってからスマートフォンが物理デバイスだと認識するようになりました。
Nature Remoってどうなの?
私の生活には、echoやRemoなどといったIoT機器が溶け込んでいます。Remoは製品としてのベースがしっかりできていて、学習させたり、その先の機能でも安定して使えるため、家の中のコントロールはかなりRemoに頼っていますね。顧問の立場ですが、ひとりのユーザーとしても便利に使わせてもらっています(笑)。
Natureにおけるアプリ開発について
Nature株式会社 Software Engineer
亀田 京介
面白法人カヤックにて、フロントエンドエンジニアとして多数のサービス・アプリを開発。あるアプリの技術において世界でたったの3人(社)しか開発できないうちの1人という特殊能力の持ち主。
亀田:では、僕からは「Natureにおけるアプリ開発について」LTを始めて行きたいと思います。余談ですが、川崎さんのお話を聞いていて、Nature Remoを触るとAndroidやiOSのデバイスがセンサーの塊だとおっしゃっていて、僕も同じように思っていたので、なんだか嬉しくなりました(笑)。
スマートフォンアプリからみたNature Remoのシステム
亀田:ではまずは、Nature Remoとスマホの連携技術をご紹介します。
まず、なぜスマホとIoT機器を連携する必要があるのかというと、連携させなければその機器が誰のものか分からないからです。スマホとの連携動作をすることでこの機器はあなたのものです、ということが分かります。
Nature Remo連携に必要な技術
亀田:その連携に必要な技術は、主に二つあります。
まず、IoT機器がWi-Fiアクセスポイントになるという方法です。これは、Remoの第一世代、第二世代、miniお使いになった方はわかるかもしれませんが、Remoをセットアップする際に「Remo-xxxxxxx」というRemoWi-Fiに一度繋ぐ工程があります。それによってRemo内部のWebサーバーを起動させ、アクセスポイントとなります。この連携方法は、httpでのやり取りに手慣れたエンジニアにとっては楽ですが、ユーザーさんにとっては一度アプリを離れる必要があるため、そこで躓いてしまう方もいますね。もう一つの連携方法として、IoT機器がBLEperipheralになるという方法があります。この場合だと、セットアップをアプリ内で完結させることができるのでユーザーさんにとっては非常に楽になります。
前者のWi-Fiアクセス方式ではいくつかの問題がありました。それはインターネットに繋がっていないアクセスポイントに繋げると30秒程度で自動で以前のWi-Fiアクセスポイントに切り替わってしまうということでした。セットアップに慣れている社内メンバーは気がつくのに時間がかかってしまいましたが、Andoroid10以降ではアプリ内でネットワークを設定できるようになりました。これによってユーザーさんはWi-Fiの画面に遷移せずに設定できるようになりこれらの問題は回避されました
また、iOS14でも問題がありました。それはローカルネットワークでの通信の前に認証が求められることになったという変更点についてです。これはどういうことかといいますと、Wi-Fiで繋いでHTTPでやり取りする時に、本当に繋いでいいの?と警告が出るようになりました。ユーザーさんが認証しているのか?認証の状況をとることができないのですが、現状はRemoの複合的な情報を見て判断しています。この、iOS14の発表が深夜の3時だったので大変でしたね。
スマートフォンアプリでNatureRemoを動かす面白さ
亀田:トレンドとしての面白さは、iOS/AndroidがIoTの機器のサポートを拡充していく流れと、Connected Home over IPというプロジェクトによって、iOS/Androidを超えて、様々なIT機器メーカーが家庭内の機械を共通かつオープンなもので動かしていく流れが進んでいることです。またエンジニアとしては、そのようなIoTの流れがきている中で、連携技術に触れることができて、自分で作ったIoT機器がアプリから動かせるのは物凄い楽しさとなっています。
今後必要とされるIoTとの連携技術
亀田:IoTを動かすとなると、普段のアプリ開発で触らない技術であったり、スマートフォンとIoTに加えてサーバーも絡んできて大掛かりなシステムをうまく動かしていくことになります。
亀田:例として赤外線信号を送信するためには、データはスマートフォンから指令を出して、APIのサーバーを通ってストリームから、RemoにWebソケットでエアコンをつけてという命令がきます。
亀田:ただ、これだけではなくて、逆にエアコンをつけた結果をアプリに通知するためにストリームサーバーにいってゴニョゴニョしてアプリ側にWebソケットで戻ってくる。これはアプリ開発ではないデータの流れになっています。スマートフォンからRest APIの結果が回り回ってWebソケット経由でアプリに戻ってくる。
またRestAPIだけでなくてNature Remoの独自のセンサーのイベントもウェブソケットでアプリにどんどん流れてくるというパターンがあります。こういった複雑になりがちなアプリの状態管理を、いかに綺麗に扱うかというのは技術的な楽しさがあります。
Nature Remoユーザーのほとんどは、家電を1日一回は操作するはずなので、自分が作ったものを毎日の生活に自然に取り入れて、その中で改良のアイディアやユーザーの意見を取り入れて反映取り入れることができるのが、シンプルに楽しいですね。
「Talk session」ご質問にお答えします!
ここからは、ご参加いただいた皆様からの疑問や質問にお答えするトークセッション行いましたので、その一部をご紹介します。
物理デバイスだからこその課題はありますか?
亀田:物理的なデバイスなのでデータのやりとりだけには収まらない様々なエッジケースがあるところが難しさですね。ルーターやリモコンとかのいろんな機器があるので、どこに原因があるのかがなかなかわからないことも課題になります。
川崎さん:亀田さんもおっしゃっていましたが、Anycaのときに思ったのは、繋がらないとなったときの問題の切り分けが難しいことですね。そこができるだけシンプルになるような設計をしないといけない。また、セキュリティ周りのところですね。いくら暗号化すると言っても現物の中にキーが入ってしまうので、中に入れる情報の暗号化に関しては、セキュアにしながらの設計が慣れていないと難しいかもしれないですね。
IoTの面白さはどのようなところでしょうか?
川崎さん:リソースの制約や電池の持ち、処理速度の違いなどの制約が多い中で、どうやってここの性能を上げるか、メモリの使用効率を上げるかなど、パズルチックな昔ながらのエンジニアとしての腕の発揮のしどころが多く、ノスタルジックでありエンジニアっぽいというところが個人的に楽しいです。
亀田:何度川崎さんの話に頷いたことか。という感じなのですが、パズル的な面白さはありRemo3の開発で、頭を振り絞ってコードを書いたのが非常に楽しかったですね。繰り返しになってしまいますが、目の前にあるものが動くことがシンプルに面白い。自分のスマホからボタンを押したらちゃんと動く、作ったものが動く喜びが現実の世界に作用していくことが、最大の面白さだと思っています。
おわりに
Natureでは、エンジニアを募集しています!Nature Remoという物理デバイスをを扱いつつも、ソフトウェア的な継続的改善のマインドセットやプラクティスを武器としています。少しでも興味がある方は、ぜひご応募をお待ちしております!
また、年内は毎週Meetupを開催予定ですので、ぜひイベントへのご参加もお待ちしています!