LINE発のIoTプラットフォーム「LINE Things」とは何か?
開発手順、実装方法を解説

モノからつながる世界・モノから広がる世界へ LINEが手がけるIoTへの取り組みとその未来

LINE DEVELOPER DAY 2018
に開催
2018年11月21日、LINE株式会社が主催するエンジニア向け技術カンファレンス「LINE DEVELOPER DAY 2018」が開催されました。4度目の開催となる今回のテーマは「Next LINE」。メッセージアプリだけでなく、さまざまなサービスの開発や新たな技術領域への投資を行っているLINEが目指すビジョンについて、エンジニアたちの技術的知見や挑戦を通して紹介します。セッション「モノからつながる世界・モノから広がる世界へ LINEが手がけるIoTへの取り組みとその未来」に登壇したのはLINE株式会社 Developer Product室の高久裕央氏。LINEとIoT機器、Clovaとの連携機能を実現する開発者向けプロダクトの紹介や、開発手順・実装方法を解説します。講演資料はこちら
提供:LINE株式会社

LINEが手がけるIoTの世界

高久裕央氏:みなさん、こんにちは。LINE株式会社の高久です。

普段はLINE Platformを活用した開発者向けプロダクト、いわゆるDeveloper Productsのプロダクトマネジメントを担当しています。本日は、LINEが手掛ける家電連携やBLE(Bluetooth Low Energy)を活用したデバイス連携など、IoTへの取り組みについてご紹介します。

とはいっても、あまり難しく捉えていただきたくはありません。簡単にいうと、みなさんがIoTのサービスを世に送り出したいと考えた時に、LINEにどんなお手伝いができるのかをご紹介していきます。本日紹介する開発者向けプロダクトには、企業で取り組めるプロダクトもありますし、個人で取り組めるプロダクトもあります。ぜひ、本セッションの後に、みなさんも何か試してみてください。

いくつかのプロダクトについては、概要だけをご説明します。詳細については、デベロッパーサイトをご覧ください。「LINE Developers」で検索していただけると、すぐに見つかると思いますので、ぜひ、ご活用ください。

本日は、みなさんに3つの話をしていきます。

まず、LINEがなぜIoTに取り組むのか。次に、LINEプラットフォームやClovaを活用したIoTサービスの事例について。そして最後に、本日リリースすることになりました新しいプロダクト「LINE Things」についてです。

「LINE Things」でどんなことができるのか。どうやって実装するのか。何を目指しているのかを説明していきますので、最後までおつき合いください。

なぜLINEがIoTに取り組むのか

それではまず、なぜLINEがIoTに取り組むのかについてです。言い換えれば、みなさんがなぜLINEを使う必要があるのかを説明していきます。みなさんは、ご家庭やオフィスで、家電や電子機器をスマートスピーカーやスマートフォンと連携して使っていますか?

本日は、インターネットに接続されるこれらの家電や電子機器を総称して「IoTデバイス」と呼ばせてください。みなさんの身の周りにも、IoTサービスや、いわゆる「IoTデバイス」を見る機会、触れる機会が増えてきているんじゃないかと思います。私も家では、デレビやエアコン(の電源)をスマートフォンやスマートスピーカーを使って付けていますし、運動量計を付けて、毎日どれぐらい歩いたのか、どれぐらいジョギングしたのかといったことを確認しています。

リモコンを探す手間が省けたり、運動量のように毎日記録するものだと、自動で記録してくれるので非常に便利で、日々の生活に欠かせないものになってきています。一方で、IoTサービスが普及するにつれて、いくつかの課題も見えてきたと考えています。

例えばシェアリングです。

スマートロックを家族で使おうとした時に、家族全員が同じように使うのは難しくないですか? 本日、ここにお越しいただいているみなさんは、ITリテラシーが非常に高い方だと思います。

スマートロックを設定して、アプリをダウンロード、インストールして、アプリを設定して、アプリを操作する。難なくこなせるのではないかと思います。ですが、それをご家族やご友人、ご親戚の方に使ってもらおうと思うと、一気にハードルが上がるのではないでしょうか。新しいものへの拒否反応もあるでしょうし、設定のどこかで挫折してしまうというパターンもあると思います。共有すること、使ってもらうことの難しさが課題の1つではないかと考えています。

次に、一度だけ、もしくはたまにしか利用しないというケースがあります。

個人の利用だけでなく公共の施設などでも、IoTを活用したサービスが次々と生まれています。例えば、宿泊施設で鍵を開けたり、テレビやエアコンを付けたりできるアプリがあります。美術館やイベント会場で作品をインタラクティブに楽しむためのアプリもあります。これらのアプリはとても便利で楽しく、それ自体は良いことなのですが、その時にしか使いません。

果たしてダウンロードする必要があるのか。もっと気軽に利用できる方法はないのか。これも課題の1つではないでしょうか? これからますますIoTサービスが普及し、人々の生活に浸透していくためには、いま挙げたような課題を解消し、少しでも多くの人が利用しやすい環境を作っていく必要があると考えています。

いつもと同じように使えて学習コストが少ない。みんなで使えて、誰もが持っているのでシェアしやすい。すぐに使えて、ダウンロードの必要がない。これらの課題を解決する方法がないかと考えた時に、LINEにできることがあるのではないかと考えました。一言でいってしまうと「みなさん、LINEを使っていますよね?」ということです。この優位性をIoTの分野でも活かすことができるのではないかと考えています。

加えて、これから紹介する開発者向けのプロダクトを組み合わせることで、IoTサービスが提供できるだけではなく、ユーザーとのコミュニケーションを促進したり、新しい価値を提供したりすることが可能になります。

「Messaging API」でIoT機器を操作する

では、LINEプラットフォームを活用した、IoTサービスの事例をご紹介します。最初にご紹介するのは、「Messaging API」です。

「Messaging API」は、一言でいうと、LINE内で動くbotを作れるAPIです。ユーザーとのコミュニケーションの入り口として、メールや電話では実現できなかった手軽なコミュニケーションが実現できるということで、多くの開発者の方に利用いただいています。

では、事例を見ていきましょう。パナソニック株式会社様では、「CLUB Panasonic(クラブパナソニック)」のLINE公式アカウントで、録画機向けのサービスを提供しています。

トーク上でテレビ番組を検索することができ、そこから録画予約ができます。単に録画機能を提供するということではなく、トークルームでのコミュニケーションの延長線上で録画予約ができるようになっています。

このようなユーザー体験を提供できるのが、「Messaging API」の強みではないかと考えています。

では、次の事例を見ていきましょう。イッツ・コミュニケーションズ株式会社様は、LINEを活用した家電連携サービス「インテリジェントホーム」を提供しています。

いくつかの機能を動画でご紹介します。「まとめて オン」という機能では、LINEのトークルームにあるリッチメニューのボタンをタップするだけで、照明やエアコンがセットされます。

「デバイスからの通知」という機能では、ドアが開くとLINEに通知がきます。

加えて、備え付けカメラの映像が届きます。この事例を見ていただくとわかると思うのですが、LINEと連携して家電を操作するだけではなく、さまざまな通知を受け取ったり、誰が開けたかがわかるように動画を送信するなど、「Messaging API」を使うことで、プラスアルファの新しい価値を提供しています。

今ご紹介した事例の大まかなシステム構成図です。

LINE側が提供している機能は「Messaging API」です。つまり、サードパーティの開発者が、デバイスとサーバーを接続するための仕組みを持っているということになります。このタイプの利用では、自社でIoTサービスを既に提供していて、その追加機能としてLINEとの連携サービスを提供しているというケースが多く見られます。

Clovaを介してIoT機器を操作する

次に「Clova」での家電連携についてご紹介します。まず、機能を説明し、その後事例をご紹介します。「Clova」では、みなさんが思い思いの音声サービスを開発できるよう「Clova Extensions Kit」を提供しております。

開発キットを使うことで、「Clova」ユーザーに、さまざまな音声体験を提供することができます。この開発キットを使って、家電連携サービスを開発することももちろん可能なのですが、「Clova」では、家電連携に特化した「Clova Home」というエクステンションを提供しています。

「Clova Home」では、ClovaユーザーとCloveエクステンション開発者の双方にとってメリットのある機能を提供しています。

まず、ユーザーは家電を使うために別々のスキルを呼び出す必要がなくなります。Custom Extensionsを使って、メーカーが別々にスキルを開発すると「ねえ、Clova、A社のスキルを開いてライトを付けて」「ねえ、Clova、B社のスキルを開いてエアコンを付けて」というように、いちいちスキル名を呼び出す必要があります。

これが「ねえ、Clova、ライトを付けて」「ねえ、Clova、エアコンを付けて」といったように、簡単に呼び出せるようになります。

次に、スキルごとの発話の違いについてです。みなさんはふだん意識することはないと思いますが、同じものを別々の呼び方で呼んでいることがあると思います。例えば、天井についているこの明かり。みなさんは何と呼びますか? 「ライト」「照明」「電気」など、いろんな言い方があると思います。

では、これを付ける時に何と言いますか? 「付ける」「オン」「明るくして」。いろんな言い方があると思います。メーカーが提供するスキルごとに、この発話のパターンが違ったら困りませんか? 「Clova Home」では、この音声対応モデルがすでに提示されていますので、このような発話の違いに対応しています。ユーザーも開発者も、発話の違いを意識することなく利用することができます。

最後に、メーカーを跨いだ一括操作についてです。「ねえ、Clova、ただいま」といったら、メーカーにかかわらず、ライト、エアコン、テレビなどを付けることができます。このように家電を簡単に利用できるキットを「Clova Home」は提供しています。それでは、「Clova Home」を活用してテレビを付ける様子をご覧ください。

ご覧のように、少ない発話でテレビを付けることができます。現在はスマートスピーカーからのみの操作となりますが、来年からはLINEのトークルームからも「Clova Home」を操作できるようになります。

ご覧いただいているように、ユーザーへの確認やフィードバックにも対応しているため、エアコンなどの遠隔操作も可能です。来年のリリースをご期待ください。

BLEでIoTを小さく始める

ここまでは、サードパーティの開発者が、自社でデバイスとサーバーを接続する仕組みを構築している事例を紹介してきました。

みなさんの中には、この構築に掛かるコストが負担になると考えていらっしゃる方がいるかもしれません。「Webサービスを提供しているけれど、小さくIoTを始めたい」と考えている方もいらっしゃるかもしれません。LINEでは、もう1つの連携手段であるBLE(Bluetooth Low Energy)を活用した、開発者向けプロダクトを提供しています。

先ほどお話ししたように、小さくIoTを始めてみたいと考えている人には、おすすめのオプションです。

具体的に何がおすすめなのか、次のスライドでご紹介します。

BLEを活用するメリットはいくつかあります。まず、先ほどお話ししたように、デバイスとサーバーをインターネット経由で接続する仕組みの構築にかかるコストが不要になります。デバイスについても、SIMやWi-Fiモジュールを搭載する必要がなくなります。これにより、ウエアラブルデバイスのように、常に持ち歩くものや、インターネット接続環境がない施設での利用が可能になります。

LINE Beaconが可能にしたことと、新たに生まれた課題

これらの利点を活用したプロダクトをLINEは提供しています。それが「LINE Beacon」です。

「LINE Beacon」では、「LINE Beacon」のBeacon端末から発信されたシグナルを、LINEアプリが受信し、それを起点にさまざまなアクションを提供しています。まずは「LINE Beacon」のシステム構成を説明します。

「LINE Beacon」では、先ほどまでのシステム構成とは異なり、デバイスがLINEアプリと直接通信を行います。

LINEアプリがインターネットへの入り口となり、通信内容に対応した情報が、webhook経由/Messaging APIを介して、サーバーに送信されます。例えば、お店に「LINE Beacon」を設置することで、来店したお客さまだけに特別なメッセージを送ることができるようになります。「LINE Beacon」を活用すると、その場所に最適化された情報をユーザーに提供することが可能になります。

一方、この「LINE Beacon」が普及したことで、われわれは開発者のみなさんから、新しい種類の問い合わせを受けるようになります。それは、LINEアプリを通してBLE通信を行う、新しい可能性についての言及でした。「LINE Beacon」は、企業などがお店に設置することで、不特定多数の人たちへのアテンションを行うことを目的としています。そのため「LINE Beacon」が電波を出し、LINEアプリがそれを受信しますが、この機能に特化したサービスを提供しています。また、高い安全性を担保するため、LINEが決めた仕様に沿って作られたデバイスのみが利用可能です。

そこで私たちは、BLEが持つ可能性をもっと活かせるプロダクトについて、検討を始めることにしました。コーヒーマシンと連携してコーヒーを入れたり、LINEアプリで宅配ボックスを開錠したり、体重計と連携して体重を量ったり……これらを実現するためには、BLEでの双方通信を実現する必要がありました。

また、多くのデバイスで利用できることも重要でした。他にも、ポケットにスマートフォンを入れた状態でスマートロックを開錠したり、腕に付けた運動量計から心拍数を自動で取得し、その状態に合わせた情報をLINEに通知したり……これらを実現するためには、わざわざLINEアプリを立ち上げなくても、BLE通信ができなければいけません。

さまざまな検討が行われ、開発がスタートしました。

LINE Thingsとは何か?

われわれが作成した仕様がLINEアプリで実現できるのか。その実現の可能性を検討したいと考え、メンバーが開発したデバイスを使った実証実験を行い、約1年間の開発の末、今日、新しく開発者向けプロダクトをリリースすることになりました。それが「LINE Things」です。

「LINE Things」は、先ほど挙げたような、新たな課題に対応すべく開発されました。

コーヒーを入れたり、宅配ボックスを開錠したり、心拍数を自動で取得し、状態に合わせたアドバイスを届けたりと、ユースケースを挙げ始めるときりがありません。今までは、体重や運動量を確認するために、専用のアプリを作成していましたが、それがLINEで実現できるようになります。「LINE Things」の登録や、最低限、連携に必要な技術仕様などはありますが、それらを満たしていれば利用可能です。

では、次のスライドで「LINE Things」の機能の概要を説明します。

「LINE Things」とは「Messaging API」と「LIFF (リフ)」が連携し、BLE通信機能を開発者であるみなさんに提供します。「LIFF 」については後ほど詳しくご紹介しますので、今のところはLINE内で動くウェブアプリのプラットフォームと覚えてください。機能の紹介についても、次のスライドで紹介しますので、ここでは「Messaging API」と「LIFF」を使うというところまで、押さえておいてください。

「LINE Things」では、デバイス連携機能、LIFF BLE、自動BLE通信という、3つの機能を提供します。デバイス連携機能では、「LINE Things」で利用できるデバイスの登録・管理を行い、スマートフォンとデバイスとのペアリングやLINEへの登録を行います。

これにより、次の2つの機能が利用できるようになります。LIFF BLEを使うと、「LIFF」でのBLE通信が可能となります。「LIFF」については、次のスライドで説明します。自動BLE通信では、LINEアプリとデバイスが、ユーザーの操作なしにBLE通信を行うことができるようになります。まず「LIFF」の概要を説明して、その後、それぞれの機能を紹介していきます。

デバイス連携とLIFF BLE

「LIFF」は、「LINE Front-end Framework」の略で、LINE内で動くWebアプリのプラットフォームです。

ご覧のように、LINEとシームレスなWebアプリを作成することができます。

基本はWebアプリなのですが、LINEが提供するいくつかの機能を利用することができます。LIFF BLEもその1つとなります。では、デバイス連携とLIFF BLEをご紹介します。実際に動いている様子をご覧いただいたほうが早いと思いますので、体重計とLINEを連携し、体重計からデータを取得する様子をご覧ください。(スライドの)向かって左側がBLE通信を行える体重計。右側にLINEアプリが表示されています。

最初は右側のアプリを見てください。LINEアプリの右上にある、友だち追加ボタンをタップし、QRコードを読み込むと、利用規約画面が表示されます。同意すると、デバイス連携画面が表示されます。デバイス連携画面では、ペアリング可能なデバイスがあると、「連携可能なデバイス」に表示されます。「連携可能なデバイス」に表示されるためには、「LINE Things」のプロダクトの登録が必要ですのでご注意ください。

「連携可能なデバイス」に体重計が表示され、その体重計をタップするとペアリングが行われ、LINEアプリとの連携処理が開始されます。連携では、LINEアプリが体重計のデバイス情報を取得し、「LINE Things」に登録します。これにより、体重計を使って「LINE Things」の機能を利用できるようになります。「今すぐ利用」をタップすると、「LIFF」が立ち上がります。

この動画ではBLE通信を使い、体重計からデータを取得して、「LIFF」に体重計を表示しています。体重計に乗ると、その重さが計測され、データがBLE通信でLINEアプリに送信されて、「LIFF」に反映されています。いかがですか? QRコードを読み込んで、体重計からデータを取得するまでは、スムーズに行えているのではないかと思います。アプリをダウンロードしたりするのに比べて、簡単に利用できる様子をご覧いただきました。

先ほどの画面遷移を機能別にまとめます。

デバイス連携機能はLINEアプリが行うため、みなさんの開発は不要です。LIFF BLEを開いてからは、みなさんが自由に開発することができます。

LIFF BLEの仕組み

では、LIFF BLEはどのように動いているのか。次のスライドで見ていきましょう。

LIFF BLEにおいて、デバイスとLINEアプリとのBLE通信を行うのが、「BLE Native Component」です。デバイスとBLE通信を行う責務を持っており、BLE通信を行うために必要な機能を提供しています。LIFF SDKは、LIFFアプリ。つまり開発者のみなさんが、BLE通信を行うために必要な、JavaScriptの関数を提供しています。開発者のみなさんがLIFF SDKの関数を実行すると、LIFF SDKがBLE Native ComponentにBLE通信の実行を依頼します。

これにより、開発者のみなさんはBLEの細かい仕様について考える必要がなくなります。ですので、開発者に必要な実装は、JavaScriptに書かれたこれだけのコードです。

実装を見ていきたいと思いますが、BLEでの通信についても併せて説明したいと思いますので、まずデバイスに接続するまでの工程を説明し、その後、その実装を見ていきます。

まず、デバイスに接続する工程です。

最初にデバイスがシグナルを出します。これをアドバタイジングといいます。LINEアプリは、このアドバタイジングを監視しています。これをスキャニングといいます。LINEアプリはスキャニングでデバイスを見つけると、接続のためのリクエストを行います。これがコネクトです。デバイスへの接続は、これから説明するデバイスのデータにアクセスするために必要な手続きです。では、この実装を見ていきましょう。

いま説明した処理を行っているのが、この2行になります。

デバイスからの信号をスキャンしてデバイスを見つけるのが、requestDeviceメソッドです。見つけたデバイスに接続を行うのがconnectメソッドです。これにより、データアクセスが可能になります。では、次にデバイスへのデータアクセスについて見ていきます。データアクセスについては、3つの方法「Read、Write、Notify」が用意されています。

Readは値を取得し、デバイスからバッテリー残量を見る時などに利用します。Writeは値の書き込みで、デバイスのディスプレイに表示する文字列を書き込む時などに利用することができます。Notifyはデバイスから任意のタイミングで送られてくる値を取得します。先ほどの体重計に乗ったタイミングで、インジケーターが動きましたが、あれがNotifyです。Pub/Subモデルにも似たもので、通知して欲しい値がある場所を購読すると、値が変化されたタイミングで通知が届く仕組みです。

データアクセスの実装について

では、次にデータアクセスの実装について説明します。

まずBLE通信でデータのやり取りを行うには、このようにアドレス的なIDを指定していきます。characteristicsという変数をご覧いただけるかと思いますが、この変数にデータアクセスすることで、値を読み込んだり書き込んだりすることができます。

では、それぞれのデータアクセスの実装を見ていきます。

まずはデータ取得からです。characteristicsという変数のreadValueメソッドを使って、データ取得を行っています。

次に書き込みです。

characteristicsという変数のwriteValueメソッドを使って書き込みを行っています。最後にNotifyです。

先ほど体重計に乗ったタイミングでインジケーターが動いていた、あの処理を実現するためにNotifyを起動します。

値が変わったら通知をもらうために、characteristicsという変数のaddEventListenerメソッドを使って登録を行います。startNotificationsメソッドを使って監視を始めます。以上が必要となる実装です。いかがでしょうか? 非常に簡単にデバイスとのBLE通信が実現できるのがおわかりいただけたのではないでしょうか。

自動BLE通信はどのように動作しているか?

次に、自動BLE通信についてご紹介します。自動BLE通信では、LINEアプリとデバイスが、ユーザーの操作なしにBLE通信を行います。

こちらもまず動画をご覧いただき、その後、自動BLE通信がどのように動作しているのかを説明していきます。

動画では体重計とLINEを連携し、LINEを操作していない状態で、体重計からデータを取得します。そして、その取得結果を「Messaging API」でLINEに送る様子をご覧いただきます。QRコードを読み込み、利用規約に同意して、デバイス連携画面を開きます。

デバイス連携画面では、体重計とのデバイス連携を行います。連携後、LINEアプリを閉じて体重計に乗ると「あなたの体重は〜」というメッセージが送信されます。LINEアプリを操作することなく、BLE通信が行われる様子をご覧いただきました。

では、自動BLE通信がどのように動作しているのか、次のスライドで見ていきましょう。

自動BLE通信では、あらかじめどのようにデータアクセスするかを、LINEアプリに登録しています。

今ご覧いただいた体重計の場合、Notifyの機能を利用して、デバイスからの通知を監視しています。LINEアプリが開いている・閉じているということに関係なく、体重計に乗ると通知が来る仕組みです。動画では、最後にメッセージが送信されていたと思うのですが、あの部分は「Messaging API」のメッセージ送信機能を利用しています。自動BLE通信では、体重計のデータをwebhook経由でみなさんにお届けするというところまでを行っています。

こちらの開発の詳細については、この機能がリリースされるタイミングで、来年にはドキュメントに掲載しますので、しばしお待ちください。「LINE Things」の技術的な説明は以上となります。

LINE Thingsが目指すこと

それでは、いま説明した「LINE Things」の機能を活用する利点について説明していきたいと思います。みなさんがBLEを活用したサービスを提供したいと考えた時に、いま、ご紹介した機能を使えば、専用のスマートフォンアプリを作る必要はありません。

開発への障壁がぐっと下がるのではないでしょうか。トライアルを使えば、制限はあるものの無料で利用いただくことができます。これにより、製品の試作段階から、開発者がモックを作ってプレゼンをするということも可能だと思います。みんなが知っているLINEアプリですから、モックをシェアしたり、説明したりするのも簡単にできるのではないでしょうか。機能や開発の利点については、ご理解いただけたかと思います。

では少しだけ、この機能を使って何を目指すのかという話をしたいと思います。いま説明したように、体重を量るといった既存のサービスの置き換えとして「LINE Things」を使うという選択肢もあると思います。ただし、最初にお話ししたように、LINEを活用することで、IoTサービスの利用シーンや提供できるサービスの幅は飛躍的に広がるのではないかと考えています。

例えば、保険会社が生命保険を購入したお客さまに、無料で運動量計を配る。その運動量計を使って加入者の健康管理を行い、健康状態によっては、保険料を下げるといった新しいサービスを創出できるかもしれません。利用者、開発者の双方の障壁が減り、そこにみなさんの技術やアイデアが加わることで、新しいビジネスを生み出せるのではないでしょうか。IoTの分野、とくにコンシューマー向けの市場は、まだ初期市場ではないかと考えています。

みなさんとLINEで、この市場を切り開いていきましょう。足早になりましたが、LINEが提供する開発者向けプロダクトを紹介してきました。いかがでしたか? みなさんも取り組んでみたいと思われるプロダクトはありましたでしょうか? ぜひ、この機会にLINEのDeveloper Productsを試してみてください。

以上で、私のセッションを終わりにします。ぜひ、みなさんもLINEのプラットフォームを使って、何か作ってみてください。この後も、さまざまなセッションがありますので、ぜひお楽しみください。どうもありがとうございました。

(会場拍手)

Occurred on , Published at

スピーカー

関連タグ

人気ログ

ピックアップ

編集部のオススメ

ログミーTechをフォローして最新情報をチェックしよう!

人気ログ

ピックアップ

編集部のオススメ

そのイベント、ログしないなんて
もったいない!

苦労して企画や集客したイベント「その場限り」になっていませんか?