BLEビーコン送信設定

WEB-UIのIoTデータ送受信設定タブのビーコン送信設定メニューより、ビーコンの送信設定を行うことが出来ます。
ビーコンの送信を行うためには、WEB-UIのサービス基本BT I/Fタブより、サービス機能の基本設定としBT I/F (hci0)が使用するに設定されている必要があります。 サービス機能の基本設定については、スタートアップガイドサービス機能を参照して下さい。
ビーコン送信設定メニューが表示されていない場合は、アプリ設定を参照し、PD Handler BLEを使用するに設定して下さい。

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

caution

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

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

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

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

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

ビーコンは、ほとんどの製品がiBeaconフォーマットを採用しています。(このiBeaconをベースに解説します。)
iBeaconは前項で説明されている"Manufacturer Specific Data"部分の16進ASCII文字列の先頭4文字が"0201"(2バイト)となっている場合にiBeaconと考えてください。
ここから続く46文字(23バイト)文字が大体固定値になっています。(割と多い)
この中身はiBeacon製品毎にまちまちなのですがこの範囲へUUIDなどが書き込まれています。
ここまで全部で16進ASCII文字で50文字(25バイト)になります。
そして51文字目~54文字目(26バイト目と27バイト目)がMajor Number、55文字目~58文字目(28バイト目と29バイト目)がMinor Numberとなっており、iBeaconセンサーではここにセンサー値や識別子などが書き込まれている製品が多いです。

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

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

そしてビーコンセンサーの場合で、Major / Minor部分をセンサー値へのパースが必要な場合は、別項のビーコンセンサーとして登録しLUA言語を使ってパースします。
※全てのiBeaconセンサーのMajor / Minorの位置が26バイト目~29バイト目あるわけではないので、製品の仕様書で個々に確認してください。

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

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

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

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