Edited at

LINE ThingsやLINE Beaconの立ち位置おさらいなど #linedc #linethings

LINE Things LIFF版、LINE Things 自動通信版、LINE BeaconなどIoT関連のネタが増えて来ているのでその辺のおさらいをしていきます。

背景としては、「LINE ThingsってLINE Beaconと何が違うの?」って声が割とあった印象で、一旦整理しておくといいかもと思った感じです。

今回はここの図のイメージが伝われば良い気がしています。



この資料について



自己紹介


  • のびすけ(n0bisuke)

  • dotstudio,inc



  • LINE API Experts

  • Microsoft MVP (Node.js)

  • デジタルハリウッド大学大学院教員

  • 国内最大のIoTコミュニティIoTLT主催



LINE Things

LINEアプリと外部のBluetoothデバイスを連携させることができる仕組みです。

よくある間違いとしてあるやつですが、 LINE Thingsというデバイスの名前では無いです。(ただ、公式の開発ボードはあります。)

LINE Thingsを使うことで、Wi-FIやLTEなどの通信機能が無いデバイスでも、LINE(アプリを入れたスマホ)がハブとなってインターネットに接続することができます。

区別が分かりにくい上にやれること的に別物感強いと個人的に思ってるのでこの投稿では、 従来のLINE ThingsをLINE Things LIFF、自動通信機能をLINE Things Messageと呼ぶことにします。


参考: ここ1週間 LINE Thingsで5つのデバイス 触ってみたのでまとめてみる #iotlt




LINE Thingsの特徴が生きそうなユースケースイメージ

基本的にはBLEの利点である、省電力や電波環境などが挙げられそうです。


  • Wi-Fiが無い環境

  • LTEなどの通信回線が届かない環境

  • 電源が十分に確保できない環境

山の中や農業系で利用できる可能性がありますね。


  • 定期的に人の出入りがあるケース

LINEアプリをハブにしてデータ通信を行うので、人が全く通らないケースだと厳しいかもしれません。


  • データを即座に反映させたいケース

LINE Things LIFFの場合は、BLEで直接ペアリングするため(たぶん)インターネット側にデータをあげないで即座にデータ反映が出来て反応が早いです。



それぞれの立ち位置など

基本的にはLINE Messaging APIの傘下にあるイメージです。

なので利用にあたり、LINE BOTを作るのが前提になります。




  • 追記: 一応、公式見解っぽいコメントもらいました。



LINE Things LIFF


  • LINEとデバイスがBLEで接続できる技術。

  • APIの立ち位置としてはMessaging API > LIFF > LINE Things LIFFという階層イメージです。

  • WebBluetoothの仕様を参考に作られているので、詳細はWebBluetoothの仕様を確認すると良さそう。

  • LIFFアプリ内でブラウザのJavaScriptを用いて開発するのが特徴



  • 基本はBLEのGATTプロファイルで出来ることが出来る


    • ペリフェラルになることはできない(ホストのみ)







LINE Beacon


  • LINE BOTにビーコンとの接続通知をすることが出来る仕組み

  • LINE Thingsが出る前からあった

  • LINEアプリを立ち上げてなくても利用可能

  • 簡単な通知に向いている

  • APIの立ち位置としてはMessaging API > LINE Beaconという階層イメージです。

  • イベントとしてはEnterのみが基本なので簡単な入退室管理や店舗のスタンプカードシステムなどに使えそう

  • デバイス側での細かい処理は出来ない。その場合はLINE Thingsを使った方が良さそう

  • 公式デバイスがある





LINE Simple Beacon


  • LINE Beaconを独自のデバイスに入れ込むことが出来る仕様。

  • ラズパイやESP32系、MacやWindowsなどでも実装可能

  • 基本はデバイス版のLINE Beaconと変わらず


参考: ラズベリーパイでLINE Beaconが作成可能に!「LINE Simple Beacon」仕様を公開しました




LINE Things Message (自動通信機能)


  • LINEとデバイスがBLEで接続できる技術。

  • LINEアプリを立ち上げてなくても利用可能

  • APIの立ち位置としてはMessaging API > (LIFF) > LINE Things Messageという階層イメージです。

  • LIFFをカッコ書きにしていますが、LIFFの開発は一切行わずに扱うことができるのでカッコ書きにしています。

  • LINE Beaconよりも複雑な処理をしたいときに良さそう

  • あまり良くないけど、無限連続通知ができる(後述)



リスト化して比較してみる

LINE Things LIFF
LINE Things Message
LINE Beacon(公式デバイス)
LINE Simple Beacon

フロント開発

-
-
-

サーバーサイド開発
-


メッセージ通知(アプリ起動の必要なし)
-


自由度



設定難易度



デバイス側実装
必要
必要
不要
必要

コスト
1500~5000円程度
1500~5000円程度
5400円
1500~5000円程度



LINE Things Messageをもう少し深く

LINE Things LIFFやLINE Beaconはリリースから時間が経っていて情報が割と出てそうなので、LINE Things Messsageに関して深掘りします。


LINE Things 自動通信機能がリリースされました & 使い方紹介



用語など

LINE Things Messageで新しく出てくる概念・言葉としてシナリオセット、シナリオ、トリガー、アクションがあります。

階層構造にするとこんな感じの認識です。


  • シナリオセット


    • シナリオ


      • トリガー

      • アクション






トリガーとアクションは、何をしたら何を行う。といったinとoutの処理のことです。

トリガーとアクションをひとまとまりにしたものがシナリオ。シナリオを複数まとめたものがシナリオセットです。図にするとこんなイメージ。





トリガー

現状だとこの二つのみの模様です。


  • IMMEDIATE

  • BLE_NOTIFICATION

実際はだいたいBLE_NOTIFICATIONになるような気がします。



アクション


  • SLEEP

  • GATT_READ

  • GATT_WRITE

データの読み込みだけの場合はアクションは無しでも設定できます。


この辺はまだそこまで触りきれてないのでもっと追っていきたい。




注意点


LINE Thingsをユーザーに有効にさせましょう


  • 使うにはこのリンクを一旦踏んで有効にする必要がある模様。


https://line.me/R/nv/things/deviceLink?route=line-things-starter



  • これで一度有効にするとLINEアプリの設定画面にLINE Thingsの項目が追加されます。

  • ここへの導線を用意しておかないとBOTの友達追加QRだけでは利用できないので注意



無限連続通知が出来るのでこれも注意。

仕様変更があるのか分かりませんが、現時点だと ユーザーに対して無限連続通知が出来ます。

BLEのNotifyを無限ループで発火させてしまうとめちゃ通知くるので注意しましょう。(注意されました)

最初、アドバタイズパケットをそのまま通知しちゃってるのかと思ってましたが、デバイス側のソースコードの実装問題でした。


資料: さおりからのLINEがヤバイ




まとめ


  • LINE ThingsとLINE Beaconは別物

  • LINE Things LIFFとLINE THings Messageも使い勝手的に別物

  • LINE ThingsもLINE BeaconもLINE BOTの仲間です。

  • LINE THings Messageの構成要素


    • シナリオセット


      • シナリオ


        • トリガー

        • アクション







  • 用途に合わせてLINE BeaconとLINE Thingsは使い分けしましょう


    • シンプルな使い方だとLINE Beaconの方が簡単に出来る場合もあります。





参考