温度・湿度ブロックは入力として使用できる温度・湿度センサーを 1 つ備えています。
ブロックの制御に使用する特性(characteristic)は MESH ブロックの機能利用を、具体的な接続の流れは接続方法を参照してください。
- 書き込み
- 通知
書き込み
Event Type ID 一覧
Event Type ID |
書き込みイベントの種類 |
説明 |
---|---|---|
0x00 |
モード設定 |
通知モードの設定 |
モード設定
温度・湿度ブロックの通知を設定します。
データ位置 |
内容 |
例(下線 は固定値) |
---|---|---|
0 |
0x01 |
|
1 |
0x00(モード設定) |
|
2 |
0x01(任意の ID) |
|
3 |
LSB 0x2C、MSB 0x81(30 ℃) |
|
4 |
||
5 |
LSB 0xB4、MSB 0x80(18 ℃) |
|
6 |
||
7 |
LSB 0x64、MSB 0x00(100 %) |
|
8 |
||
9 |
LSB 0x32、MSB 0x00(50 %) |
|
10 |
||
11 |
0x00(温度センサー値が上限値をこえたら通知+下限値を下回ったら通知) |
|
12 |
0x01(湿度センサー値が上限値をこえたら通知+下限値以内に入ったら通知) |
|
13 |
0x01(温度センサー値が反応したら通知) |
|
14(最終データ) |
0x7B |
LSBおよびMSBに関しては、リトルエンディアンを参照してください。
リクエストID
通知に設定する ID です。特定の通知設定とその通知の対応を確認する識別子として使用します。
表記 |
値の範囲 |
---|---|
10進数 |
0 ~ 255 |
16進数 |
0x00 ~ 0xFF |
必要のない場合は、0x00 を指定します。設定時に現在の状態を受け取りたい場合や、複数の状態設定通知を連続して書き込む場合は、通知設定ごとに任意の ID を設定してください。
通知は、直近の設定時間以内に検出が1度でもあれば検出とみなして応答しますが、タイマー割り込みの間隔である 50 ms 程度ずれる可能性があります。
複数の通知モードを組み合わせる場合、一部の通知で指定した値が返らないことがあります。詳細は通知モードを確認してください。
温度通知イベントの範囲(上限値・下限値)
温度換算で -10.0 ~ 50.0 [℃] に相当します。
温度の正と負で設定値と温度の関係式が異なり、以下で表されます。
-
正の温度の場合:設定値 = 10 × 温度
-
負の温度の場合:設定値 = 10 × 温度 + 65,536
下限値を上限値より大きい値で設定した場合、自動的に下限値と上限値が逆転します。
表記 |
値の範囲 |
---|---|
10進数 |
0 ~ 500(0~50 [℃] の範囲) 65,436 ~ 65,535(-10 ~ -0.1 [℃] の範囲) |
16進数 |
0x0000 ~ 0x01F4(0~50 [℃] の範囲) 0xFF9C ~ 0xFFFF(-10 ~ -0.1 [℃] の範囲) |
湿度通知イベントの範囲(上限値・下限値)
相対湿度 0 ~ 100 [%] に相当します。
下限値を上限値より大きい値で設定した場合、自動的に下限値と上限値が逆転します。
表記 |
値の範囲 |
---|---|
10進数 |
0 ~ 100 |
16進数 |
0x0000 ~ 0x0064 |
通知イベントの通知条件(温度・湿度)
上限値を上位4ビット、下限値を下位4ビットで指定します。
例:0x10(センサー値が上限値以下になったらイベント発生+下限値を下回るとイベント発生)
上位4ビット:上限値
値 |
モード |
---|---|
0 |
センサー値が上限値を上回ったらイベント発生 |
1 |
センサー値が上限値以下になったらイベント発生 |
下位4ビット:下限値
値 |
モード |
---|---|
0 |
センサー値が下限値を下回ったらイベント発生 |
1 |
センサー値が下限値以上になったらイベント発生 |
例:指定範囲と設定値の関係
通知モード
ブロックから通知が送信されるタイミングを設定します。
値 |
モード |
---|---|
0x00 |
通知停止、または通知モード未設定時(初期値) |
0x01 |
温度センサー値が反応したら通知 |
0x02 |
湿度センサー値が反応したら通知 |
0x04 |
温度センサー値が変化したら通知 |
0x08 |
湿度センサー値が変化したら通知 |
0x10 |
現在の値を 1 回通知 |
0x20 |
50 [ms] 毎に取得したデータを毎回通知 |
複数の通知モードを組み合わせる場合は通知モードの和を設定します。
例:0x19(温度センサー値が反応+湿度センサー値が変化+現在の検知状態を 1 回、それぞれ通知)
通知モードを組み合わせる場合は、一部の通知が指定したリクエスト ID で返らない場合があります。
-
1 回通知(0x10)を他の通知モードを組み合わせる場合、1 回通知のみが指定したリクエストIDで返ります。例えば 0x11 の場合は、最初の1回(0x10 相当)分だけが指定したリクエストIDで返り、以降(0x01 相当)は リクエスト ID が 0x00 で返ります。
-
1 回通知(0x10)と毎回通知(0x20)を同時に設定する際は、0x30 の場合のみ 0x20 が無効となり 1 回しか通知されません。
温度・湿度ブロックの場合、通知モードを設定する順番によっては、以前の通知が停止する場合があります。
-
毎回通知(0x20)を含む通知モードで動作している場合、1 回通知(0x10)を含む通知モードを設定すると、毎回通知が止まります。
-
毎回通知(0x20)を継続したい場合は、1 回通知(0x10)を設定した通知の取得後に、再度毎回通知を含む通知モードを設定しなおしてください。
通知
Event Type ID 一覧
Event Type ID |
通知イベントの種類 |
説明 |
---|---|---|
0x00 |
状態通知 |
検知状態を通知 |
状態通知
温度・湿度センサーの検知状態を通知します。
データ位置 |
内容 |
例(下線 は固定値) |
---|---|---|
0 |
0x01 |
|
1 |
0x00 (状態通知) |
|
2 |
0x01(任意の ID) |
|
3 |
0x01(検知) |
|
4 |
LSB 0x2C、MSB 0x81(30℃) |
|
5 |
||
6 |
LSB 0x32、MSB 0x00(50%) |
|
7 |
||
8(最終データ) |
0xE2 |
LSBおよびMSBに関しては、リトルエンディアンを参照してください。
リクエストID
モード設定で設定された値が入ります。
通知モード
モード設定で設定された値が入ります。
温度センサー値
温度換算で -10.0 ~ 50.0 [℃] に相当します。
温度の正と負で温度センサー値と温度の関係式が異なり、以下で表されます。
-
値が 0~500 の場合:温度(正の温度)= 温度センサー値 ÷ 10
-
値が 65,436~65,535の場合:温度(負の温度)=(温度センサー値 - 65536)÷ 10
表記 |
値の範囲 |
---|---|
10進数 |
0 ~ 500(0~50 [℃] の範囲) 65,436 ~ 65,535(-10 ~ -0.1 [℃] の範囲) |
16進数 |
0x0000 ~ 0x01F4(0~50 [℃] の範囲) 0xFF9C ~ 0xFFFF(-10 ~ -0.1 [℃] の範囲) |
湿度センサー値
相対湿度 0 ~ 100 [%] に相当します。
センサーの仕様より極端に乾燥・湿潤な環境では範囲外の値が返ることがあります。
表記 |
値の範囲 |
---|---|
10進数 |
0 ~ 100 |
16進数 |
0x0000 ~ 0x0064 |