MESH ブロックのソフトウェアバージョンについて
この通信仕様は MESH ブロックソフトウェアのバージョン 1.2.5 以上に対応しています。それよりも古いバージョンではこの通信仕様では正しく動作しない場合があります。
バージョンの確認方法やアップデート方法はこちらをご覧ください。
MESH ブロックとの通信方式
Bluetooth® 標準規格 Ver. 4.0(Bluetooth® Low Energy、以下 BLE)で通信を行います。
MESH ブロックの発見
MESH ブロックの電源を入れると BLE ペリフェラル(Peripheral)として起動し、以下の情報をアドバタイズします。
定義 |
値 |
---|---|
Flags |
General Discoverable Mode, |
Manufacturer Specific Data |
0x012D(Company ID) |
Complete List of 128bit Service UUIDs |
72c90001-57a9-4d40-b746-534e22ec9f9e |
Complete Local Name |
MESH-100XXyyyyyyy |
Complete Local Name
「MESH-100」+「XX(大文字のアルファベット 2 文字)」+「yyyyyyy(7 桁の数字)」の全 17 文字から構成されます。
XX にはブロックの種類を示す ID、yyyyyyy にはブロック固有のシリアルナンバーが入ります。これは電源を入れなおしても不変な値のため、ブロックを複数台同時に運用する際の個体識別に役立ちます。
シリアルナンバーは MESH ブロック本体の背面に記載されています。(SN:yyyyyyy の形式)
変数 |
タイプ |
内容 |
例 |
---|---|---|---|
XX |
英字大文字 2 文字 |
ブロックの種類を示す ID |
BU(ボタンブロック) |
yyyyyyy |
数字 7 桁 |
ブロック固有のシリアルナンバー |
1234567 |
Complete Local Name の例は以下のとおりです。
MESH-100BU1234567 |
MESH-100TH0000001 |
MESH-100GP9999999 |
ブロックの種類を示す ID とブロックの種類の対応は以下のとおりです。
ID |
ブロックの種類 |
---|---|
BU |
ボタン |
LE |
LED |
AC |
動き |
MD |
人感 |
PA |
明るさ |
TH |
温度・湿度 |
GP |
GPIO |
MESH ブロックの機能利用
ブロックの各種機能は、以下のサービス(service)に含まれる特性(characteristic)上で、通信仕様により定義されたバイト列「コマンドフレーム」を送受信することで、制御や情報の取得を行います。
プロパティ |
値 |
---|---|
Type |
Primary Service |
Service UUID |
72c90001-57a9-4d40-b746-534e22ec9f9e |
Characteristics UUID |
72c90004-57a9-4d40-b746-534e22ec9f9e(Write) |
|
72c90002-57a9-4d40-b746-534e22ec9f9e(Write Without Response) |
|
72c90005-57a9-4d40-b746-534e22ec9f9e(Indicate) |
|
72c90003-57a9-4d40-b746-534e22ec9f9e(Notify) |
各特性は以下のいずれかの特性プロパティを持ちます。コマンドフレームの送受信どちらを行うかによって、使用する特性が異なります。
-
MESH ブロックの通信仕様では、ブロックの機能ごとではなく、ブロックに対する操作(送信、受信)で特性を使い分けます。
-
ブロックへの指示・設定などの書き込み操作には「Write」もしくは「Write Without Response」を使用します。
-
センサーデータやブロックの状態の受信には「Notify」を使用します。
-
ブロックとの初期通信には「Indicate」を使用します。
-
特性プロパティ |
用途 |
使い方 |
---|---|---|
書き込み |
ブロックへの指示・設定などの書き込み操作 |
コマンドフレームを送信し、ブロックを制御します。 初回接続時にも使用します。 |
応答なし書き込み |
ブロックへの指示・設定などの書き込み操作 |
コマンドフレームを送信し、ブロックを制御します。書き込み時の確認応答(ACK)が不要な場合はこちらを使用してください。 |
通告 |
MESHブロックとの初期通信 |
コマンドフレームを受信し、ブロックの状態を取得します。通知の受信時にブロック側へ確認応答(ACK)を返します。 初回接続時に使用します。 |
通知 |
センサーデータやブロックの状態の受信 |
コマンドフレームを受信し、ブロックの状態を取得します。 |