/* * remote-controller IR signals * by uratan! 2010.10.22 */
こんなヤツです。東芝製、型番は「VBR」。太陽電池+充電池駆動です。
使い方というか、モードは以下の通り。
モードを変えたり温度を変えたりした場合、運転中であればボタン押下とともに 赤外線が飛びますが、運転停止中はリモコンの表示(内部状態)が変わるだけです。 よく出来てる。
- 運転/停止ボタンにて 動作を開始・停止する。
- 運転モードは AI自動/冷房/ドライ/暖房/送風 の 5種類。
- 冷房/ドライ/暖房 においては温度設定ができる。
- AI自動 においては 標準設定+前後 2レベルの計 5レベルの補正が選べる。
- 風量は 微/弱/強/自動 の 4種類。
- ルーバー ボタンにてルーバーの状態が変わる。
エアコン本体からリモコンへの帰りの通信は無いようでハンドシェイクしている わけではなさそうですので、このリモコンがコントローラとして完全に独立 かつ最上位を占めるみたいです。
温度センサーも内蔵されていて温度表示もされますが、エアコン制御に 関連しているかまではわかりません。
モードが多いので冗長になりますが、調べた範囲の波形を示します。 個別のパルスのつくりは以下の通りです。
以下、波形は 1パケット分なのですが、同じ内容のパケットを 2回繰り返すのが基本のようです。 ただし「ルーバー」ボタンのみ例外で、繰り返しなしのシングルパケットでした。
4.24msec 2.20ms 1.08ms ---+ +------------+ +------+ +--+ +- | | | | | | | | | | | | | | | | +----------------------------+ +-+ +-+ +-+ 4.68msec 720usec |<========================================>|<======>|<==>| "L" "2_" "1"
運転 @ ドライ、風量:自動、28℃
L2_12_2_112_112_112_2_12_1112_2_2_2_2_2_2_2_111112_11112_1112_2_2_2_12_2_
停止 @ ドライ、風量:自動、28℃
L2_12_2_112_112_112_2_12_12_2_2_2_12_2_2_11112_112_2_2_111111112_2_2_2_2_
26℃→27℃ @ ドライ
L2_12_2_112_112_112_2_12_1112_2_2_2_2_2_2_2_111112_112_12_1112_2_12_12_2_
27℃→26℃ @ ドライ
L2_12_2_112_112_112_2_12_1112_2_2_2_2_2_2_2_111112_2_12_12_11112_12_12_2_
28℃→29℃ @ ドライ
L2_12_2_112_112_112_2_12_1112_2_2_2_2_2_2_2_111112_12_112_1112_12_2_12_2_
29℃→28℃ @ ドライ
L2_12_2_112_112_112_2_12_1112_2_2_2_2_2_2_2_111112_11112_1112_2_2_2_12_2_
ドライ→暖房 @ 28℃
L2_12_2_112_112_112_2_12_2_12_2_2_2_2_2_12_1111112_1112_2_1112_2_2_112_2_
暖房→送風 @ 28℃
L2_12_2_112_112_112_2_12_2_12_2_2_2_2_2_12_1111112_2_2_112_111112_2_12_2_
送風→AI自動 @ 28℃
L2_12_2_112_112_112_2_12_1112_2_2_2_2_2_2_2_1111112_112_1112_12_2_12_2_2_
AI自動→冷房 @ 28℃
L2_12_2_112_112_112_2_12_2_12_2_2_2_2_2_12_1111112_111111112_2_2_2_2_2_2_
冷房 17℃
L2_12_2_112_112_112_2_12_2_12_2_2_2_2_2_12_111111111111112_2_2_2_2_2_2_2_
冷房 18℃
L2_12_2_112_112_112_2_12_2_12_2_2_2_2_2_12_1111111112_11112_2_2_12_2_2_2_
冷房 19℃
L2_12_2_112_112_112_2_12_2_12_2_2_2_2_2_12_111111112_2_11112_2_112_2_2_2_
冷房 20℃
L2_12_2_112_112_112_2_12_2_12_2_2_2_2_2_12_111111112_111112_2_12_2_2_2_2_
冷房 21℃
L2_12_2_112_112_112_2_12_2_12_2_2_2_2_2_12_11111112_2_111112_112_2_2_2_2_
冷房 22℃
L2_12_2_112_112_112_2_12_2_12_2_2_2_2_2_12_11111112_2_2_11112_1112_2_2_2_
冷房 23℃
L2_12_2_112_112_112_2_12_2_12_2_2_2_2_2_12_11111112_12_11112_12_12_2_2_2_
冷房 24℃
L2_12_2_112_112_112_2_12_2_12_2_2_2_2_2_12_11111112_1111112_12_2_2_2_2_2_
冷房 25℃
L2_12_2_112_112_112_2_12_2_12_2_2_2_2_2_12_1111112_2_111111112_2_2_2_2_2_
冷房 26℃
L2_12_2_112_112_112_2_12_2_12_2_2_2_2_2_12_1111112_2_12_1111112_12_2_2_2_
冷房 27℃
L2_12_2_112_112_112_2_12_2_12_2_2_2_2_2_12_1111112_112_111112_2_12_2_2_2_
冷房 28℃
L2_12_2_112_112_112_2_12_2_12_2_2_2_2_2_12_1111112_111111112_2_2_2_2_2_2_
冷房 29℃
L2_12_2_112_112_112_2_12_2_12_2_2_2_2_2_12_1111112_12_1111112_12_2_2_2_2_
冷房 30℃
L2_12_2_112_112_112_2_12_2_12_2_2_2_2_2_12_1111112_12_2_111112_112_2_2_2_
ルーバー @ 冷房 28℃
L2_12_2_112_112_112_2_12_11112_2_2_2_2_2_2_2_11112_2_2_111111112_2_2_2_2_
微風 @ 冷房 28℃
L2_12_2_112_112_112_2_12_2_112_2_2_2_2_12_2_111112_111111112_2_2_2_2_2_2_
弱風 @ 冷房 28℃
L2_12_2_112_112_112_2_12_12_12_2_2_2_2_2_12_111112_111111112_2_2_2_2_2_2_
強風 @ 冷房 28℃
L2_12_2_112_112_112_2_12_112_2_2_2_2_2_2_2_1111112_111111112_2_2_2_2_2_2_
自動 @ 冷房 28℃
L2_12_2_112_112_112_2_12_2_12_2_2_2_2_2_12_1111112_111111112_2_2_2_2_2_2_
ルーバー @ AI自動
L2_12_2_112_112_112_2_12_11112_2_2_2_2_2_2_2_11112_2_2_111111112_2_2_2_2_
設定温度 "標準+" @ AI自動
L2_12_2_112_112_112_2_12_1112_2_2_2_2_2_2_2_111112_2_112_111112_2_12_2_2_
設定温度 "標準++" @ AI自動
L2_12_2_112_112_112_2_12_1112_2_2_2_2_2_2_2_111112_2_12_2_111112_112_2_2_
設定温度 "標準−" @ AI自動
L2_12_2_112_112_112_2_12_1112_2_2_2_2_2_2_2_1111112_12_2_1112_12_112_2_2_
設定温度 "標準−−" @ AI自動
L2_12_2_112_112_112_2_12_1112_2_2_2_2_2_2_2_1111112_2_2_2_1112_11112_2_2_
最初の長い Low+High がヘッダーでしょう。以降、long を '1'、short を '0' とするとして以下のように解釈するものと思われます。
- 1packet はヘッダーに続く 6byte構成で、偶数目のバイトは それぞれ前のバイトデータの反転。つまり
packet:= HEADER + byte1 + ~byte1 + byte3 + ~byte3 + byte5 + ~byte5
- 基本的に同内容の 2packet を連続で送るが、例外として「ルーバー」は 1packet である。
- データの中身(と温度設定など)は以下のような感じか。 ちなみに設定温度範囲は 17〜30℃、また AI自動とドライ時には風量は選べず、自動固定になる。
ex. L2_12_2_112_112_112_2_12_1112_2_2_2_2_2_2_2_111112_11112_1112_2_2_2_12_2_ ↓ ↓ ↓ ↓ ↓ ↓ 10110010 01001101 00011111 11100000 10000100 01111011 ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ byte1 byte3 byte5 | temp / mod ------------------------------------------------ | --------------------- 0xb2 0x7b 0xe0 ... 停止 | 0x0x ... 17℃ 0xb2 0x1f 0xX8 + mod ... 運転:AI自動 | 0x1x ... 18℃ 0xb2 0xXf + flow 0xX0 + temp ... 運転:冷房 | 0x3x ... 19℃ 0xb2 0x1f 0xX4 + temp ... 運転:ドライ | 0x2x ... 20℃ 0xb2 0xXf + flow 0xXc + temp ... 運転:暖房 | 0x6x ... 21℃ 0xb2 0xXf + flow 0xe4 ... 運転:送風 | 0x7x ... 22℃ / −− 0xb2 0x0f 0xe0 ... ルーバー | 0x5x ... 23℃ / − | 0x4x ... 24℃ / 標準 flow | 0xcx ... 25℃ / + --------------- | 0xdx ... 26℃ / ++ 0x9x ... 微風 | 0x9x ... 27℃ 0x5x ... 弱風 | 0x8x ... 28℃ 0x3x ... 強風 | 0xax ... 29℃ 0xbx ... 自動 | 0xbx ... 30℃ (0x1x ... 自動固定) | (0xex ... 別機能指定)
…データのパッキングに今ひとつ脈絡がみえません。