BLEビーコン送信設定

IoTデータ⇒送受信設定タブのビーコン送信設定ペインより、ビーコンの送信設定を行うことが出来ます。
ビーコンの送信を行うためには、サービス⇒Dev登録⇒BT I/Fタブより、サービス機能のデバイス登録として使用するBT I/Fが使用するに設定されている必要があります。詳細は、デバイス登録機能BT I/Fを参照して下さい。
ビーコン送信設定ペインが表示されていない場合は、モジュール設定を参照し、PD Handler BLEを使用するに設定して下さい。

初期状態の送信先設定は上図のようになっています。ここで、ビーコンデータをクラウド等への送信する場合には、送信するを選択します。

caution

後述のデバイス情報送信設定で送信対象としているビーコンには、本項は適用されません。

送信するを選択すると各設定項目が上図のように表示されます。

ビーコン送信設定の設定項目

設定項目説明
デバイス番号OpenBlocksシリーズのWEB-UI内で管理している番号です。変更はできません。
データ間引間隔データを間引くための入力データを受け取らない時間をmsec単位で設定します。
0の場合、間引きは行われません。
バッファーサイズデータの最大サイズを設定します。単位はバイトです。
ビーコンソナー機能受信対象となっているビーコンデータを受信した際にビーコンソナーを有効無効かを設定します。 *1
制御タイプビーコンデータを管理する方式を以下から選択します。
各方式については後述のビーコン重複制御アルゴリズムを参照して下さい。
  1. インターバルトランスファー
  2. エントリーポイントトランスファー
  3. インアウトステータストランスファー
重複制御時間間隔[ms]各制御タイプにて用いる制御時間をmsec単位で設定します。
ペイロード管理ビーコンデータをPD Repeaterへ渡す際に、ビーコンの各情報を付随させるかを選択します。
data :
アドバタイズデータ(16進ASCII)
localname :
デバイス名
type :
データ種別
データフィルタ機能送信対象のビーコンを選別するフィルタを設定します。
データプレフィックスに16進ASCII文字列でフィルタ条件を入力すると、ビーコンのアドバタイズ情報を前方一致で比較し一致したもののみを送信先へ送信します。
  • 追加ボタンにて、複数登録できます。
受信信号強度閾値フィルタ設定受信対象とするビーコン の信号強度閾値フィルタを使用するか設定します。
受信信号強度閾値受信対象とするビーコンの信号強度を設定します。
固定情報付与(JSON)データに付加する静的情報をJSON文字列で設定します。
送信先設定使用するを選択した送信先に対してチェックボックスが選択できるようになります。
チェックを付けた送信先に対して、送信を行います。
チェックをつけると送信先固有の設定項目が表示されます。送信先固有の設定については、送受信先毎の設定を参照して下さい。
info
  1. ビーコンソナー機能を有効にしUSBスピーカー(型番:MM-SPU8BK)を接続した状態にて、受信対象(データフィルタ及び受信信号強度閾値フィルタについても考慮)となっているビーコンデータを受信した場合にはスピーカーから検出音が鳴ります。
    なお、FX1及びDX1では本機能は未対応です。
  • FW5のPD Handler BLEではビーコンの自動パースは行われません。大量のセンサー付きビーコンをバース付きで処理する必要がある場合にはLuaカスタムが必要となります。

ビーコンのフィルタリング

まず、アドバタイジングパケットのフォーマットについて説明します。
アドバタイジングパケットは以下のフォーマットで構成されています。

AD Structure 1AD Structure 2...AD Structure N00...00

各AD Structureのフォーマットは以下となります。

LengthAD TypeAD Data
1 octet1 octet[Length - 1] octet

ビーコンは、iBeaconフォーマットを採用している製品が多いです。(このiBeaconをベースに解説します。)
iBeaconのアドバタイジングパケットのフォーマットは以下となります。

Byte(s)NameValue
0Length0x02
1AD Type0x01
2AD Data0x06
3Length0x1A
4AD Type0xFF
5Company ID[0]0x4C
6Company ID[1]0x00
7Beacon Type[0]0x02
8Beacon Type[1]0x15
9-24Proximity UUID0xnn..nn
25-26Major0xnnnn
27-28Mimor0xnnnn
29Measured Power0xnn

AD Type: 0x01はFlags、AD Type: 0xFFはManufacturer Specificと定義されています。
製品により、Byte 2のAD Dataの値は0x06ではない場合もあります。
また、Byte 5,6のCompany ID(0x004C)はAppleのCompany IDとなっており、ここが製造メーカのCompany IDとなっている場合もあります。
Proximity UUIDまでの16進ASCII文字で50文字(25バイト)が固定値になっている場合が多いです。

このため特定メーカーでかつ特定製品のiBeaconをフィルターするには、前項のデータフィルタ機能有効にして、プレフィックス文字列に先頭からの50文字を設定します。
(前もってフィルターなしで該当するビーコンのデータを受信し、そのログでビーコンデータの文字列が確認できますので、そこからプレフィックスとなる文字列を取り出すと良いです。)

エイブリックのバッテリレス漏水センサ(S-CBTGAAAC)はMajorまで製品共通の為、16進文字の50文字をフィルタ条件とすることで全てのバッテリレス漏水センサーが取得できます。
バッテリレス漏水センサの場合の設定するプレフィックス:0201041aff310702155d490d6c7eb9474e816045bde999119a
また、 このバッテリレス漏水センサはMinorにシリアルNoが入っており、特定のビーコン1個として識別する場合は58文字をフィルタ条件にすると良いです。

インタープロのHibeaconもiBeaconフォーマットなので、同じように16進文字の50文字でフィルタ条件を設定できます。
ハイビーコンの場合の設定するプレフィックス:0201061aff4c00021500000000017c1001b000001c4db7979b
なお、ハイビーコンの個別判別は、deviceIDを使います。

Hibeacon受信例

{
"time":"2021-10-22T16:30:03.965+09:00",
"deviceId":"588e81a556ab",
"rssi":-29,
"type":"iBeacon",
"data":"0201061aff4c00021500000000017c1001b000001c4db7979b03700363d0"
}

そしてビーコンセンサーの場合で、Major / Minor部分をセンサー値へのパースが必要な場合は、別項のビーコンセンサーとして登録しLUA言語を使ってパースします。
※詳細に関しては、製品の仕様書で個々に確認して下さい。

ビーコン重複制御アルゴリズム

  • この説明における前提となる設定
    • ビーコンの送信間隔 = 1秒
    • 重複制御時間間隔(CHt)= 5秒
  1. インターバルトランスファー
    ビーコンを受信している間は、指定された一定間隔で送信プログラムへ。

  1. エントリーポイントトランスファー
    (CHt時間内の一時非受信は退場扱いとしない)

  1. インアウトステータストランスファー
    (CHt時間内の一時非受信は退場扱いとしない)