BLEビーコン送信設定
IoTデータ⇒送受信設定タブのビーコン送信設定ペインより、ビーコンの送信設定を行うことが出来ます。
ビーコンの送信を行うためには、サービス⇒Dev登録⇒BT I/Fタブより、サービス機能のデバイス登録として使用するBT I/Fが使用するに設定されている必要があります。詳細は、デバイス登録機能のBT I/Fを参照して下さい。
ビーコン送信設定ペインが表示されていない場合は、モジュール設定を参照し、PD Handler BLEを使用するに設定して下さい。
![]()
初期状態のビーコン送信設定は上図のようになっています。ここで、ビーコンデータをクラウド等へ送信する場合には、使用するを選択します。
caution
後述のデバイス情報送信設定で送信対象としているビーコンには、本項は適用されません。
![]()
使用するを選択すると各設定項目が上図のように表示されます。
ビーコン送信設定の設定項目
| 設定項目 | 説明 |
|---|---|
| デバイス番号 | OpenBlocksシリーズのWEB-UI内で管理している番号です。変更はできません。 |
| データ間引間隔 | データを間引くために、入力データを受け取らない時間をmsec単位で設定します。 0の場合、間引きは行われません。 |
| バッファーサイズ | データの最大サイズを設定します。単位はバイトです。 |
| ビーコンソナー機能 | 受信対象となっているビーコンデータ受信時に、ビーコンソナー機能を有効にするか無効にするかを設定します。 *1 |
| 制御タイプ | ビーコンデータを管理する方式を以下から選択します。 各方式については後述のビーコン重複制御アルゴリズムを参照して下さい。
|
| 重複制御時間間隔[ms] | 各制御タイプにて用いる制御時間をmsec単位で設定します。 |
| ペイロード管理 | ビーコンデータをPD Repeaterへ渡す際に、ビーコンの各情報を付随させるかを選択します。
|
| データフィルタ機能 | 送信対象のビーコンを選別するフィルタ機能を使用するか設定します。 |
| データフィルタ | 送信対象のビーコンを選別するフィルタを設定します。 データプレフィックスに16進ASCII文字列でフィルタ条件を入力すると、ビーコンのアドバタイズ情報を前方一致で比較し一致したもののみを送信先へ送信します。なお、 追加ボタンにて最大5つまで登録できます。 |
| 受信信号強度閾値フィルタ設定 | 受信対象とするビーコンの信号強度閾値フィルタを使用するか設定します。 |
| 受信信号強度閾値 | 受信対象とするビーコンの信号強度を設定します。 |
| 固定情報付与(JSON) | データに付加する静的情報をJSON文字列で設定します。 |
| 送受信先設定 | データの送受信先を選択します。 送受信設定にて使用するに設定した送受信先が選択できるようになります。 チェックを付けると送受信先固有の設定項目が表示されます。 送受信先固有の設定については、送受信先毎の設定を参照して下さい。 |
info
- ビーコンソナー機能を有効にしUSBスピーカー(型番:MM-SPU8BK)を接続した状態で、受信対象(データフィルタ及び受信信号強度閾値フィルタについても考慮)となっているビーコンデータを受信した場合、スピーカーから検出音が鳴ります。
なお、FX1及びDX1では本機能は未対応です。
- FW7のPD Handler BLEではビーコンの自動パースは行われません。大量のセンサー付きビーコンをパース付きで処理する必要がある場合にはLuaカスタムが必要となります。
ビーコンのフィルタリング
まず、アドバタイジングパケットのフォーマットについて説明します。
アドバタイジングパケットは以下のフォーマットで構成されています。
| AD Structure 1 | AD Structure 2 | ... | AD Structure N | 00...00 |
|---|
各AD Structureのフォーマットは以下となります。
| Length | AD Type | AD Data |
|---|---|---|
| 1 octet | 1 octet | [Length - 1] octet |
ビーコンは、iBeaconフォーマットを採用している製品が多いです。(このiBeaconをベースに解説します。)
iBeaconのアドバタイジングパケットのフォーマットは以下となります。
| Byte(s) | Name | Value |
|---|---|---|
| 0 | Length | 0x02 |
| 1 | AD Type | 0x01 |
| 2 | AD Data | 0x06 |
| 3 | Length | 0x1A |
| 4 | AD Type | 0xFF |
| 5 | Company ID[0] | 0x4C |
| 6 | Company ID[1] | 0x00 |
| 7 | Beacon Type[0] | 0x02 |
| 8 | Beacon Type[1] | 0x15 |
| 9-24 | Proximity UUID | 0xnn..nn |
| 25-26 | Major | 0xnnnn |
| 27-28 | Minor | 0xnnnn |
| 29 | Measured Power | 0xnn |
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受信例
そしてビーコンセンサーの場合で、Major / Minor部分をセンサー値へパースする必要がある場合は、別項のビーコンセンサーとして登録しLua言語を使ってパースします。
※詳細に関しては、製品の仕様書で個々に確認して下さい。
ビーコン重複制御アルゴリズム
- この説明における前提となる設定
- ビーコンの送信間隔 = 1秒
- 重複制御時間間隔(CHt)= 5秒
- インターバルトランスファー
ビーコンを受信している間は、指定された一定間隔で送信プログラムへ送信します。
- エントリーポイントトランスファー
(CHt時間内の一時非受信は退場扱いとしない)
- インアウトステータストランスファー
(CHt時間内の一時非受信は退場扱いとしない)
