# 自動通信の準備をする

LINE Things Developer Trial提供終了のお知らせ

LINE Things Developer Trialについて、誠に勝手ながら2024年3月31日をもちまして提供を終了いたします。提供終了に伴い、2024年4月1日以降はAPIの呼び出しや、デバイスとの接続が出来なくなります。

ご不明な点がございましたら、お問い合わせフォーム (opens new window)からご連絡ください。

ご利用いただいているお客様には多大なご迷惑をお掛けすることとなり、誠に申し訳ございません。何卒ご理解を賜りますよう、よろしくお願い申し上げます。

自動通信を利用するためには、あらかじめシナリオの集合(シナリオセット)をLINEプラットフォームに登録します。

自動通信の概要

自動通信を利用するための流れは、以下のとおりです。

  1. 自動通信向けシナリオ管理APIを使って、シナリオセットをLINEプラットフォームに登録します。

  2. エンドユーザーがLINEとデバイスを連携したときに、LINEプラットフォームに登録されたシナリオセットがLINEに登録されます。

    LINEに自動通信のシナリオセットが登録されると、連携済みのデバイスが常にスキャンされます。

  3. LINEがデバイスを見つけると自動的に接続し、シナリオセットの内容に基づいて通信が実行されます。

  4. シナリオごとに1つの実行結果が、Messaging APIのチャネルのWebhook URLに送信されます。

    詳しくは、「LINE Thingsシナリオ実行イベントを受け取る」を参照してください。

ここでは、LINEプラットフォームに登録するシナリオとシナリオセットについて説明します。

# シナリオ (Scenario)

シナリオは、「デバイスとLINEとの通信手順」を定義したデータです。以下の2つのデータから構成されています。

  • トリガー(Trigger):実行の起点
  • アクション(Action):実行内容

# トリガー (Trigger)

トリガーには、以下の条件からいずれか1つを設定します。このトリガーを実行の起点とし、アクションが開始されます。

  • IMMEDIATE:デバイスとLINEが接続されると、すぐにアクションを実行する

  • BLE_NOTIFICATION:指定したGATT Characteristicの通知を受けたときに、アクションを実行する

    通知のペイロードは、アクション実行結果とあわせてLINEに送信されます。

# アクション (Action)

アクションには、以下のいずれかを順番に複数実行する手順を登録します。

  • GATT_READ:指定したGATT Characteristicからデータを取得する

    読み取ったデータは、シナリオ実行結果と共に送信されます

  • GATT_WRITE:指定したGATT Characteristicにデータを書き込む

  • SLEEP:一定時間待つ

# シナリオの例

トリガーとアクションを組み合わせたものが、1つのシナリオです。たとえば、以下のようなシナリオを作成できます。

  • 接続後すぐに、GATT Characteristicからデータを取得し、データを書き込む

    • トリガー:IMMEDIATE
    • アクション:GATT_READ、GATT_WRITE
  • 指定したGATT Characteristicの通知を受けたときに、GATT Characteristicからデータを取得し、データを書き込む

    • トリガー:BLE_NOTIFICATION
    • アクション:GATT_READ、GATT_WRITE

# シナリオセット

シナリオセットは、複数のシナリオを組み合わせたデータです。複雑な通信を実行する手順を実現できます。

シナリオセットは、プロダクト情報ごとに1つ設定できます。シナリオセットを登録するには、自動通信向けシナリオ管理APIを使います。詳しくは、「自動通信向けシナリオ管理API」を参照してください。

注意

ユーザーごとやデバイスごとに、シナリオセットや通信の内容を変更することはできません。

# シナリオセットの設定と更新

エンドユーザーが、LINEとデバイスを連携する前に、シナリオセットをプロダクト情報に登録します。

プロダクト情報に登録されたシナリオセットは、エンドユーザーが、LINEとデバイスを連携したときに、LINEに登録されます。

LINEに自動通信のシナリオセットが登録されると、連携済みのデバイスが常にスキャンされます。デバイスが見つかったら自動的に接続され、シナリオセットの内容に基づいて通信が実行されます。

エンドユーザーがLINEとデバイスを連携したあとに、開発者がシナリオセットを更新した場合は、以下の条件に従ってシナリオセットが更新されます。

  • エンドユーザーがLINEの[連携可能なデバイス]を表示した
  • シナリオセットが最後にLINEに登録されてから24時間以上経過している

# デバイスとの接続の切断と再接続(autoClose、suppressionInterval)

シナリオセットには、デバイスとの接続の切断と再接続に関する2つのパラメータを指定できます。

  • autoClose:trueを指定すると、シナリオセット内のすべての実行中シナリオを実行後に、デバイスとの接続を切断する。falseの場合、デバイスとの接続を維持する(常時接続)
  • suppressionInterval:autoClose = trueの場合、接続を切断したあと再接続を抑制する時間を指定する

これらのパラメータの扱いには注意があります。詳しくは、「自動通信を利用する際の注意点について」を参照してください。

# シナリオセットの例

シナリオセットの例を紹介します。自動通信向けシナリオ管理APIについて詳しくは、『LINE Things APIリファレンス』の「自動通信向けシナリオ管理API」を参照してください。

# 例1

GATT Characteristicからの通知を待ち受けます。

  • パラメータ:シナリオセット実行後も接続を維持する(常時接続)
  • シナリオ1
    • トリガー:BLE_NOTIFICATION
    • アクション:なし。通知されたペイロードだけを利用する
{
  "autoClose": false,
  "suppressionInterval": 0,
  "scenarios": [
    {
      "trigger": {
        "type": "BLE_NOTIFICATION",
        "serviceUuid": "91E4E176-D0B9-464D-9FE4-52EE3E9F1552",
        "characteristicUuid": "62FBD229-6EDD-4D1A-B554-5C4E1BB29169"
      },
      "actions": [
      ]
    }
  ]
}

# 例2

接続後すぐにアクションを実行し、接続を切断します。

  • パラメータ:シナリオセット実行後、自動的に接続を切断する。切断後1時間は再接続を抑制する
  • シナリオ1
    • トリガー:IMMEDIATE
    • アクション:以下の手順を順番に実行する
      1. GATT_READ:指定したGATT Characteristicからデータを取得する
      2. 5秒の SLEEP
      3. GATT_WRITE:指定したGATT Characteristicに"6AMAAA=="([0xe8, 0x03, 0x00, 0x00]、32bit Integerで1000)を書き込む
{
  "autoClose": true, 
  "suppressionInterval": 3600000,  
  "scenarios": [
    {
      "trigger": {
        "type": "IMMEDIATE"        
      },                                                      
      "actions": [                                                  
        {
          "type": "GATT_READ",
          "serviceUuid": "7B3D6B30-8F8C-4549-A4F5-66B1F435FA8F",
          "characteristicUuid": "90EC53BA-1DBE-4AE2-B762-7C1FEA00F380"
        },
        {
          "type": "SLEEP",
          "sleepMillis": 5000
        },
        {
          "type": "GATT_WRITE",
          "serviceUuid": "7B3D6B30-8F8C-4549-A4F5-66B1F435FA8F",
          "characteristicUuid": "5486C1A0-0EC2-4073-9C38-755D21EFE090",
          "data": "6AMAAA=="
        }
      ]
    }
  ]
}