Skip to content

Latest commit

 

History

History
483 lines (393 loc) · 41.5 KB

README.md

File metadata and controls

483 lines (393 loc) · 41.5 KB

Message format

Each message could be decomposed as follow:

╔═══════╦══════════╦════════╦════════════╦═════════╦═════╦════════════════════════════════╦══════════╦═════╗
║ start ║ version? ║ length ║     ?      ║ counter ║ sep ║            payload             ║ checksum ║ end ║
╠═══════╬══════════╬════════╬════════════╬═════════╬═════╬════════════════════════════════╬══════════╬═════╣
║ d0c0  ║       02 ║     12 ║ 0000000000 ║      00 ║ fe  ║ 12040601010f7401f0             ║       64 ║ e0  ║
║ d0c0  ║       02 ║     12 ║ 0000000000 ║      00 ║ fe  ║ 12050601010f7401f0             ║       65 ║ e0  ║
║ d0c0  ║       02 ║     18 ║ 0000000000 ║      01 ║ fe  ║ 14040c170115180105190127fd0102 ║       37 ║ e0  ║
║ d0c0  ║       02 ║     18 ║ 0000000000 ║      01 ║ fe  ║ 14050c170115180105190127fd0102 ║       36 ║ e0  ║
║ …     ║          ║        ║            ║         ║     ║                                ║          ║     ║
╚═══════╩══════════╩════════╩════════════╩═════════╩═════╩════════════════════════════════╩══════════╩═════╝
  • Fields start, end, sep, version? seems static
  • Counter is incrementing for each new message
  • when one of the two cards receives a message, it sends back the same message but increasing the ack value
  • checksum the CheckSum 8 Xor of the all columns before
  • length, count from here to end of message (including checksum and end)

Payload

Each payload may be decomposed in command, sub

╔══════╦════════╦══════════╦══════╦══════════╦══╦══════════╦══════╦═══════╦══╦══════════╦══════╦════════╦══╦═══╗
║ type ║ length ║ register ║ size ║  value   ║  ║ register ║ size ║ value ║  ║ register ║ size ║ value  ║  ║   ║
╠══════╬════════╬══════════╬══════╬══════════╬══╬══════════╬══════╬═══════╬══╬══════════╬══════╬════════╬══╬═══╣
║ 1204 ║ 06     ║ 01       ║   01 ║ 0f       ║  ║ 74       ║   01 ║ 0f    ║  ║          ║      ║        ║  ║   ║
║ 1205 ║ 06     ║ 01       ║   01 ║ f0       ║  ║ 74       ║   01 ║ 0f    ║  ║          ║      ║        ║  ║   ║
║ 1204 ║ 09     ║ f7       ║   00 ║ 54455353 ║  ║ 74       ║   01 ║ 0f    ║  ║          ║      ║        ║  ║   ║
║ 1403 ║ 2d     ║ 32       ║   01 ║ fe       ║  ║ f6       ║   01 ║ fe    ║  ║ f4       ║   03 ║ 150224 ║  ║ … ║
╚══════╩════════╩══════════╩══════╩══════════╩══╩══════════╩══════╩═══════╩══╩══════════╩══════╩════════╩══╩═══╝

Types

HID

  • 1202: WIFI -> AC: Request internal registers
  • 1203: AC -> WIFI: ack - Request internal registers
  • 1204: WIFI -> AC: Send user commands
  • 1205: AC -> WIFI: ack - user commands
  • 1206: AC -> WIFI: current AC registers
  • 1207: WIFI -> AC: ack - values from AC

Config

  • 1302: WIFI -> AC: Request internal registers
  • 1303: AC -> WIFI: ack - Request internal registers
  • 1304: WIFI -> AC: Set internal registers
  • 1305: AC -> WIFI: ack - Set internal registers

Internals

  • 1402: WIFI -> AC: Request internal registers
  • 1403: AC -> WIFI: ack - Request internal registers
  • 1404: WIFI -> AC: wifi module status
  • 1405: AC -> WIFI: ack - wifi module status

Registers table

╔═══════╦═══════════════════════════╦══════╦══════════╦══════╦══════╦═════════╗
║ Group ║           Name            ║ Mode ║ Register ║ Size ║ Type ║ Comment ║
╠═══════╬═══════════════════════════╬══════╬══════════╬══════╬══════╬═════════╣
║ 12    ║ AC_FUN_ENABLE             ║ (RW) ║ 01       ║ 01   ║ bool ║         ║
║ 12    ║ AC_FUN_POWER              ║ (RW) ║ 02       ║ 01   ║ bool ║         ║
║ 12    ║ ?                         ║ (?)  ║ 41       ║ 01   ║      ║ 0x15?   ║
║ 12    ║ AC_FUN_OPMODE             ║ (RW) ║ 43       ║ 01   ║ enum ║         ║
║ 12    ║ AC_FUN_COMODE             ║ (RW) ║ 44       ║ 01   ║ enum ║         ║
║ 12    ║ AC_FUN_TEMPSET            ║ (RW) ║ 5a       ║ 01   ║ byte ║ range   ║
║ 12    ║ AC_FUN_TEMPNOW            ║ (R)  ║ 5c       ║ 01   ║ byte ║         ║
║ 12    ║ AC_FUN_WINDLEVEL          ║ (RW) ║ 62       ║ 01   ║ enum ║         ║
║ 12    ║ AC_FUN_DIRECTION          ║ (RW) ║ 63       ║ 01   ║ enum ║         ║
║ 12    ║ AC_FUN_SLEEP              ║ (RW) ║ 73       ║ 01   ║      ║         ║
║ 12    ║ "BIP ON AC"               ║ (W)  ║ 74       ║ 01   ║      ║ f0      ║
║ 12    ║ ?                         ║ (?)  ║ ea       ║ 01   ║      ║         ║
║ 12    ║ AC_FUN_ERROR              ║ (RW) ║ f7       ║ (?)  ║ char ║         ║
║ ═════ ║ ═════════════════════════ ║ ════ ║ ════════ ║ ════ ║ ════ ║ ═══════ ║
║ 13    ║ AC_ADD_AUTOCLEAN          ║ (RW) ║ 32       ║ 01   ║ enum ║         ║
║ 13    ║ AC_ADD_SETKWH             ║ (RW) ║ 40       ║ 01   ║      ║         ║
║ 13    ║ AC_ADD_CLEAR_FILTER_ALARM ║ (RW) ║ 44       ║ 01   ║      ║         ║
║ 13    ║ AC_ADD_STARTWPS           ║ (RW) ║ 43       ║ 01   ║      ║         ║
║ 13    ║ AC_ADD_SPI                ║ (RW) ║ 75       ║ 01   ║      ║         ║
║ 13    ║ AC_OUTDOOR_TEMP           ║ (R)  ║ 76       ║ 01   ║ byte ║         ║
║ 13    ║ AC_COOL_CAPABILITY        ║ (R)  ║ 77       ║ 02   ║      ║         ║
║ 13    ║ AC_WARM_CAPABILITY        ║ (R)  ║ 78       ║ 02   ║      ║         ║
║ 13    ║ AC_ADD_APMODE_END         ║ (W)  ║ ?        ║ (?)  ║      ║         ║
║ ═════ ║ ═════════════════════════ ║ ════ ║ ════════ ║ ════ ║ ════ ║ ═══════ ║
║ 14    ║ ?                         ║ W?   ║ 17       ║ 01   ║      ║         ║
║ 14    ║ ?                         ║ W?   ║ 18       ║ 01   ║      ║         ║
║ 14    ║ ?                         ║ W?   ║ 19       ║ 01   ║      ║         ║
║ 14    ║ AC_ADD2_USEDWATT          ║ (R)  ║ 32       ║ 01   ║      ║         ║
║ 14    ║ AC_SG_WIFI                ║ (W)  ║ 37       ║ 01   ║ bool ║         ║
║ 14    ║ AC_SG_INTERNET            ║ (W)  ║ 38       ║ 01   ║ bool ║         ║
║ 14    ║ AC_ADD2_OPTIONCODE        ║ (R)  ║ 39       ║ 02   ║      ║         ║
║ 14    ║ AC_ADD2_USEDPOWER         ║ (R)  ║ e0       ║ 04   ║ int4 ║         ║
║ 14    ║ AC_ADD2_USEDTIME          ║ (R)  ║ e4       ║ 04   ║ int4 ║         ║
║ 14    ║ AC_ADD2_FILTER_USE_TIME   ║ (R)  ║ e6       ║ 02   ║ int2 ║         ║
║ 1404  ║ AC_ADD2_CLEAR_POWERTIME   ║ (RW) ║ e8       ║ 01   ║      ║ 1406 R  ║
║ 1404  ║ AC_ADD2_FILTERTIME        ║ (RW) ║ e9       ║ 01   ║ enum ║ 1406 R  ║
║ 1404  ║ AC_ADD2_OUT_VERSION       ║ (R)  ║ f3       ║ 03   ║ char ║ 1406 R  ║
║ 1406  ║ AC_ADD2_PANEL_VERSION     ║ (R)  ║ f4       ║ 03   ║ char ║         ║
║ 1406  ║ AC_FUN_MODEL              ║ (R)  ║ f5       ║ 01   ║      ║         ║
║ 1406  ║ AC_ADD2_VERSION           ║ (RW) ║ f6       ║ 02   ║      ║ 1402 request mac ║
║ 1404  ║ AC_SG_MACHIGH             ║ (W)  ║ f7       ║ 01   ║      ║         ║
║ 1404  ║ AC_SG_MACMID              ║ (W)  ║ f8       ║ 01   ║      ║         ║
║ 1404  ║ AC_SG_MACLOW              ║ (W)  ║ f9       ║ 01   ║      ║         ║
║ 1404  ║ AC_SG_VENDER01 (mac)      ║ (W)  ║ fa       ║ 01   ║      ║         ║
║ 1404  ║ AC_SG_VENDER02 (mac)      ║ (W)  ║ fb       ║ 01   ║      ║         ║
║ 1404  ║ AC_SG_VENDER03 (mac)      ║ (W)  ║ fc       ║ 01   ║      ║         ║
║ 14    ║ ?                         ║ (?)  ║ fd       ║ 01   ║      ║         ║
╚═══════╩═══════════════════════════╩══════╩══════════╩══════╩══════╩═════════╝

Note: mac are bound to Samsung So we'll use the same thre start bytes and concatenate with the last 3 bytes from hardware used. Note2: What is the exact meaning of AC_FUN_ENABLE?

1204 Commands

Note: Most 1204 also pass the register 74 with always the same value. Note edit: 74 register should be the AC "BIP"

AC_FUN_ENABLE

Who knows?!

╔═════════╦═════════╦══════════╦════════╦═══════╦══════════╦════════╦═══════╗
║         ║ length  ║ register ║ length ║ value ║ register ║ length ║ value ║
╠═════════╬═════════╬══════════╬════════╬═══════╬══════════╬════════╬═══════╣
║ Enable  ║      06 ║       01 ║     01 ║ 0f    ║       74 ║     01 ║ 0f    ║
║ Disable ║      06 ║       01 ║     01 ║ f0    ║       74 ║     01 ║ 0f    ║
╚═════════╩═════════╩══════════╩════════╩═══════╩══════════╩════════╩═══════╝

AC_FUN_POWER

Power on AC

╔═════╦═════════╦══════════╦════════╦═══════╦══════════╦════════╦═══════╗
║     ║ length  ║ register ║ length ║ value ║ register ║ length ║ value ║
╠═════╬═════════╬══════════╬════════╬═══════╬══════════╬════════╬═══════╣
║ Off ║      06 ║       02 ║     01 ║ 0f    ║       74 ║     01 ║ 0f    ║
║ On  ║      06 ║       02 ║     01 ║ f0    ║       74 ║     01 ║ 0f    ║
╚═════╩═════════╩══════════╩════════╩═══════╩══════════╩════════╩═══════╝

AC_FUN_OPMODE

Runin mode (heat/cool/dry/…)

╔══════╦═════════╦══════════╦════════╦═══════╦══════════╦════════╦═══════╗
║      ║ length  ║ register ║ length ║ value ║ register ║ length ║ value ║
╠══════╬═════════╬══════════╬════════╬═══════╬══════════╬════════╬═══════╣
║ Cool ║      06 ║       43 ║     01 ║ 12    ║       74 ║     01 ║ 0f    ║
║ Dry  ║      06 ║       43 ║     01 ║ 22    ║       74 ║     01 ║ 0f    ║
║ Wind ║      06 ║       43 ║     01 ║ 32    ║       74 ║     01 ║ 0f    ║
║ Heat ║      06 ║       43 ║     01 ║ 42    ║       74 ║     01 ║ 0f    ║
║ Auto ║      06 ║       43 ║     01 ║ e2    ║       74 ║     01 ║ 0f    ║
╚══════╩═════════╩══════════╩════════╩═══════╩══════════╩════════╩═══════╝

AC_FUN_COMODE

Confort mode?

╔═══════════╦═════════╦══════════╦════════╦═══════╦══════════╦════════╦═══════╗
║           ║ length  ║ register ║ length ║ value ║ register ║ length ║ value ║
╠═══════════╬═════════╬══════════╬════════╬═══════╬══════════╬════════╬═══════╣
║ Off       ║      06 ║       44 ║     01 ║ 12    ║       74 ║     01 ║ 0f    ║
║ TurboMode ║      06 ║       44 ║     01 ║ 22    ║       74 ║     01 ║ 0f    ║
║ Smart     ║      06 ║       44 ║     01 ║ 32    ║       74 ║     01 ║ 0f    ║
║ Sleep     ║      06 ║       44 ║     01 ║ 42    ║       74 ║     01 ║ 0f    ║
║ Quiet     ║      06 ║       44 ║     01 ║ 52    ║       74 ║     01 ║ 0f    ║
║ SoftCool  ║      06 ║       44 ║     01 ║ 62    ║       74 ║     01 ║ 0f    ║
║ WindMode1 ║      06 ║       44 ║     01 ║ 82    ║       74 ║     01 ║ 0f    ║
║ WindMode2 ║      06 ║       44 ║     01 ║ 92    ║       74 ║     01 ║ 0f    ║
║ WindMode3 ║      06 ║       44 ║     01 ║ a2    ║       74 ║     01 ║ 0f    ║
╚═══════════╩═════════╩══════════╩════════╩═══════╩══════════╩════════╩═══════╝

AC_FUN_TEMPSET (from 16°C to 28°C)

Temparature set

╔══════╦═════════╦══════════╦════════╦═══════╦══════════╦════════╦═══════╗
║      ║ length  ║ register ║ length ║ value ║ register ║ length ║ value ║
╠══════╬═════════╬══════════╬════════╬═══════╬══════════╬════════╬═══════╣
║ 16°C ║      06 ║ 5a       ║     01 ║ 10    ║       74 ║     01 ║ 0f    ║
║ 17°C ║      06 ║ 5a       ║     01 ║ 11    ║       74 ║     01 ║ 0f    ║
║ …    ║         ║          ║        ║       ║          ║        ║       ║
║ 28°C ║      06 ║ 5a       ║     01 ║ 1c    ║       74 ║     01 ║ 0f    ║
╚══════╩═════════╩══════════╩════════╩═══════╩══════════╩════════╩═══════╝

AC_FUN_WINDLEVEL

Wind level

╔═══════╦═════════╦══════════╦════════╦═══════╦══════════╦════════╦═══════╗
║       ║ length  ║ register ║ length ║ value ║ register ║ length ║ value ║
╠═══════╬═════════╬══════════╬════════╬═══════╬══════════╬════════╬═══════╣
║ Auto  ║      06 ║       62 ║     00 ║    00 ║       74 ║     01 ║ 0f    ║
║ Low   ║      06 ║       62 ║     01 ║    12 ║       74 ║     01 ║ 0f    ║
║ Mid   ║      06 ║       62 ║     01 ║    14 ║       74 ║     01 ║ 0f    ║
║ High  ║      06 ║       62 ║     01 ║    16 ║       74 ║     01 ║ 0f    ║
║ Turbo ║      06 ║       62 ║     01 ║    18 ║       74 ║     01 ║ 0f    ║
╚═══════╩═════════╩══════════╩════════╩═══════╩══════════╩════════╩═══════╝

AC_FUN_DIRECTION

Wind direction

╔══════════╦═════════╦══════════╦════════╦═══════╦══════════╦════════╦═══════╗
║          ║ length  ║ register ║ length ║ value ║ register ║ length ║ value ║
╠══════════╬═════════╬══════════╬════════╬═══════╬══════════╬════════╬═══════╣
║ Off      ║      06 ║       63 ║     01 ║ 12    ║       74 ║     01 ║ 0f    ║
║ Indirect ║      06 ║       63 ║     01 ║ 21    ║       74 ║     01 ║ 0f    ║
║ Direct   ║      06 ║       63 ║     01 ║ 31    ║       74 ║     01 ║ 0f    ║
║ Center   ║      06 ║       63 ║     01 ║ 41    ║       74 ║     01 ║ 0f    ║
║ Wide     ║      06 ║       63 ║     01 ║ 51    ║       74 ║     01 ║ 0f    ║
║ Left     ║      06 ║       63 ║     01 ║ 61    ║       74 ║     01 ║ 0f    ║
║ Right    ║      06 ║       63 ║     01 ║ 71    ║       74 ║     01 ║ 0f    ║
║ Long     ║      06 ║       63 ║     01 ║ 81    ║       74 ║     01 ║ 0f    ║
║ SwingUD  ║      06 ║       63 ║     01 ║ 92    ║       74 ║     01 ║ 0f    ║
║ SwingLR  ║      06 ║       63 ║     01 ║ a2    ║       74 ║     01 ║ 0f    ║
║ Rotation ║      06 ║       63 ║     01 ║ b2    ║       74 ║     01 ║ 0f    ║
║ Fixed    ║      06 ║       63 ║     01 ║ c2    ║       74 ║     01 ║ 0f    ║
╚══════════╩═════════╩══════════╩════════╩═══════╩══════════╩════════╩═══════╝

AC_FUN_SLEEP

TODO: To validate

╔═════╦═════════╦══════════╦════════╦═══════╦══════════╦════════╦═══════╗
║     ║ length  ║ register ║ length ║ value ║ register ║ length ║ value ║
╠═════╬═════════╬══════════╬════════╬═══════╬══════════╬════════╬═══════╣
║   0 ║      06 ║       73 ║     01 ║ 00    ║       74 ║     01 ║ 0f    ║
║ 255 ║      06 ║       73 ║     01 ║ ff    ║       74 ║     01 ║ 0f    ║
╚═════╩═════════╩══════════╩════════╩═══════╩══════════╩════════╩═══════╝

AC_FUN_ERROR

╔════════════════════════════════════════════════════════════════════════╦════════════╦══════════╦════════╦══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╦══════════╦════════╦═══════╗
║                                                                        ║ length     ║ register ║ length ║                                                                    value                                                                     ║ register ║ length ║ value ║
╠════════════════════════════════════════════════════════════════════════╬════════════╬══════════╬════════╬══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╬══════════╬════════╬═══════╣
║ NULL                                                                   ║ 09         ║ f7       ║     04 ║ 4e554c4c                                                                                                                                     ║       74 ║     01 ║ 0f    ║
║ TEST                                                                   ║ 09         ║ f7       ║     04 ║ 54455354                                                                                                                                     ║       74 ║     01 ║ 0f    ║
║ MY_ERROR_MESSAGE                                                       ║ 15         ║ f7       ║     10 ║ 4d59204552524f52204d455353414745                                                                                                             ║       74 ║     01 ║ 0f    ║
║ 0123456789012345678901234567890123456789012345678901234567890123456789 ║ 4b         ║ f7       ║     46 ║ 30313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839 ║       74 ║     01 ║ 0f    ║
╚════════════════════════════════════════════════════════════════════════╩════════════╩══════════╩════════╩══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╩══════════╩════════╩═══════╝

1206 Commands

╔══════════════════╦═════════╦══════════╦════════╦══════════╗
║                  ║ length  ║ register ║ length ║  value   ║
╠══════════════════╬═════════╬══════════╬════════╬══════════╣
║                  ║      24 ║          ║        ║          ║
║ AC_FUN_POWER     ║         ║ 02       ║     01 ║ f0       ║
║ ?                ║         ║ 41       ║     01 ║ 32       ║
║ AC_FUN_OPMODE    ║         ║ 43       ║     01 ║ e2       ║
║ AC_FUN_COMODE    ║         ║ 44       ║     01 ║ 12       ║
║ AC_FUN_WINDLEVEL ║         ║ 62       ║     01 ║ 00       ║
║ AC_FUN_DIRECTION ║         ║ 63       ║     01 ║ c2       ║
║ ?                ║         ║ ea       ║     01 ║ fe       ║
║ AC_FUN_TEMPSET   ║         ║ 5a       ║     01 ║ 15       ║
║ AC_FUN_TEMPNOW   ║         ║ 5c       ║     01 ║ 17       ║
║ AC_FUN_SLEEP     ║         ║ 73       ║     01 ║ 00       ║
║ AC_FUN_ERROR     ║         ║ f7       ║     04 ║ 00000000 ║
╚══════════════════╩═════════╩══════════╩════════╩══════════╝

1302 Commands

Request values from AC.

╔═══════════════════════════╦═════════╦══════════╦═══════╗
║                           ║ length  ║ register ║ value ║
╠═══════════════════════════╬═════════╬══════════╬═══════╣
║                           ║      10 ║          ║       ║
║ AC_ADD_AUTOCLEAN          ║         ║       32 ║    00 ║
║ AC_ADD_SETKWH             ║         ║       40 ║    00 ║
║ AC_ADD_CLEAR_FILTER_ALARM ║         ║       44 ║    00 ║
║ AC_ADD_STARTWPS           ║         ║       43 ║    00 ║
║ AC_ADD_SPI                ║         ║       75 ║    00 ║
║ AC_OUTDOOR_TEMP           ║         ║       76 ║    00 ║
║ AC_COOL_CAPABILITY        ║         ║       77 ║    00 ║
║ AC_WARM_CAPABILITY        ║         ║       78 ║    00 ║
╚═══════════════════════════╩═════════╩══════════╩═══════╝

1304 Commands

AC_ADD_AUTOCLEAN

TODO: Check

╔═════╦══════════╦════════╦═══════╗
║     ║ register ║ length ║ value ║
╠═════╬══════════╬════════╬═══════╣
║ On  ║       32 ║     01 ║ 22    ║
║ Off ║       32 ║     01 ║ 23    ║
╚═════╩══════════╩════════╩═══════╝

AC_ADD_SETKWH

TODO: Check

╔═════╦══════════╦════════╦═══════╗
║     ║ register ║ length ║ value ║
╠═════╬══════════╬════════╬═══════╣
║ …   ║       40 ║     ?  ║       ║
║     ║       40 ║     ?  ║       ║
╚═════╩══════════╩════════╩═══════╝

AC_ADD_CLEAR_FILTER_ALARM

TODO: Check

╔═════╦══════════╦════════╦═══════╗
║     ║ register ║ length ║ value ║
╠═════╬══════════╬════════╬═══════╣
║ 0   ║       44 ║     01 ║ 00    ║
║ …   ║          ║        ║       ║
║ 255 ║       44 ║     01 ║ ff    ║
╚═════╩══════════╩════════╩═══════╝

AC_ADD_SPI

TODO: Check

╔═════╦══════════╦════════╦═══════╗
║     ║ register ║ length ║ value ║
╠═════╬══════════╬════════╬═══════╣
║ On  ║       75 ║     01 ║ 0f    ║
║ …   ║          ║        ║       ║
║ Off ║       75 ║     01 ║ f0    ║
╚═════╩══════════╩════════╩═══════╝

AC_ADD_APMODE_END

TODO: Check

╔═══╦══════════╦════════╦═══════╗
║   ║ register ║ length ║ value ║
╠═══╬══════════╬════════╬═══════╣
║ … ║          ║        ║       ║
╚═══╩══════════╩════════╩═══════╝

AC_ADD_STARTWPS

╔═════════╦══════════╦════════╦═══════╗
║         ║ register ║ length ║ value ║
╠═════════╬══════════╬════════╬═══════╣
║ Direct  ║ 43       ║     01 ║ 20    ║
║ Default ║ 43       ║     01 ║ 0f    ║
╚═════════╩══════════╩════════╩═══════╝

AC_OUTDOOR_TEMP

╔══════╦══════════╦════════╦═══════╗
║      ║ register ║ length ║ value ║
╠══════╬══════════╬════════╬═══════╣
║ 16°C ║ 76       ║     01 ║ 10    ║
║ 17°C ║ 76       ║     01 ║ 11    ║
║ …    ║          ║        ║       ║
║ 28°C ║ 76       ║     01 ║ 1c    ║
╚══════╩══════════╩════════╩═══════╝

AC_COOL_CAPABILITY

TODO: Check

╔═══╦══════════╦════════╦═══════╗
║   ║ register ║ length ║ value ║
╠═══╬══════════╬════════╬═══════╣
║ … ║          ║        ║       ║
╚═══╩══════════╩════════╩═══════╝

AC_WARM_CAPABILITY

TODO: Check

╔═══╦══════════╦════════╦═══════╗
║   ║ register ║ length ║ value ║
╠═══╬══════════╬════════╬═══════╣
║ … ║          ║        ║       ║
╚═══╩══════════╩════════╩═══════╝

AC_ADD2_USEDWATT

TODO: Check ╔═══╦══════════╦════════╦═══════╗ ║ ║ register ║ length ║ value ║ ╠═══╬══════════╬════════╬═══════╣ ║ … ║ ║ ║ ║ ╚═══╩══════════╩════════╩═══════╝

AC_ADD2_VERSION

TODO: Check

╔═══╦══════════╦════════╦═══════╗
║   ║ register ║ length ║ value ║
╠═══╬══════════╬════════╬═══════╣
║ … ║          ║        ║       ║
╚═══╩══════════╩════════╩═══════╝

1402 Commands

Request values from AC. AC will respond with 1403.

╔═════════════════════════╦═════════╦══════════╦════════╦═══════════╗
║                         ║ length  ║ register ║ value  ║  comment  ║
╠═════════════════════════╬═════════╬══════════╬════════╬═══════════╣
║                         ║      16 ║          ║        ║           ║
║ AC_ADD2_USEDWATT        ║         ║ 32       ║     00 ║ ?         ║
║ AC_ADD2_VERSION         ║         ║ f6       ║     00 ║ Confirmed ║
║ AC_ADD2_PANEL_VERSION   ║         ║ f4       ║     00 ║ ?         ║
║ AC_ADD2_OUT_VERSION     ║         ║ f3       ║     00 ║ ?         ║
║ AC_FUN_MODEL            ║         ║ f5       ║     00 ║ ?         ║
║ AC_ADD2_OPTIONCODE      ║         ║ 39       ║     00 ║ ?         ║
║ AC_ADD2_USEDPOWER       ║         ║ e0       ║     00 ║ ?         ║
║ AC_ADD2_USEDTIME        ║         ║ e4       ║     00 ║ ?         ║
║ AC_ADD2_CLEAR_POWERTIME ║         ║ e8       ║     00 ║ ?         ║
║ AC_ADD2_FILTERTIME      ║         ║ e9       ║     00 ║ ?         ║
║ AC_ADD2_FILTER_USE_TIME ║         ║ e6       ║     00 ║ ?         ║
╚═════════════════════════╩═════════╩══════════╩════════╩═══════════╝

1403 Commands

From AC to Wifi. When message received, Wifi module also respond:

╔═════════════════════════╦═════════╦══════════╦════════╦══════════╦═════════════════════════════════════╗
║                         ║ length  ║ register ║ length ║  value   ║               comment               ║
╠═════════════════════════╬═════════╬══════════╬════════╬══════════╬═════════════════════════════════════╣
║                         ║ 2d      ║          ║        ║          ║                                     ║
║ AC_ADD2_USEDWATT        ║         ║ 32       ║     01 ║ fe       ║                                     ║
║ AC_ADD2_VERSION         ║         ║ f6       ║     01 ║ fe       ║                                     ║
║ AC_ADD2_PANEL_VERSION   ║         ║ f4       ║     03 ║ 150224   ║ (Raw value in XML)                  ║
║ AC_ADD2_OUT_VERSION     ║         ║ f3       ║     03 ║ 130709   ║ (Raw value in XML)                  ║
║ AC_FUN_MODEL            ║         ║ f5       ║     01 ║ 05       ║                                     ║
║ AC_ADD2_OPTIONCODE      ║         ║ 39       ║     02 ║ d0b8     ║                                     ║
║ AC_ADD2_USEDPOWER       ║         ║ e0       ║     04 ║ 0000e635 ║                                     ║
║ AC_ADD2_USEDTIME        ║         ║ e4       ║     04 ║ 00040dcb ║                                     ║
║ AC_ADD2_CLEAR_POWERTIME ║         ║ e8       ║     01 ║ fe       ║                                     ║
║ AC_ADD2_FILTERTIME      ║         ║ e9       ║     01 ║ 03       ║ (00:00 01:180 02:300 03:500 04:700) ║
║ AC_ADD2_FILTER_USE_TIME ║         ║ e6       ║     02 ║ 2710     ║                                     ║
╚═════════════════════════╩═════════╩══════════╩════════╩══════════╩═════════════════════════════════════╝

1404 Commands

AC_SG_WIFI

Is connected to wifi

╔═════╦═════════╦══════════╦════════╦═══════╗
║     ║ length  ║ register ║ length ║ value ║
╠═════╬═════════╬══════════╬════════╬═══════╣
║ On  ║      03 ║       37 ║     01 ║ 0f    ║
║ Off ║      03 ║       37 ║     01 ║ f0    ║
╚═════╩═════════╩══════════╩════════╩═══════╝

AC_SG_INTERNET

Is connected to internet

╔═════╦═════════╦══════════╦════════╦═══════╗
║     ║ length  ║ register ║ length ║ value ║
╠═════╬═════════╬══════════╬════════╬═══════╣
║ On  ║      03 ║       38 ║     01 ║ 0f    ║
║ Off ║      03 ║       38 ║     01 ║ f0    ║
╚═════╩═════════╩══════════╩════════╩═══════╝

AC_ADD2_FILTERTIME

╔═════╦═════════╦══════════╦════════╦═══════╦══════════╦════════╦═══════╗
║     ║ length  ║ register ║ length ║ value ║ register ║ length ║ value ║
╠═════╬═════════╬══════════╬════════╬═══════╬══════════╬════════╬═══════╣
║   0 ║      06 ║ e9       ║     01 ║    00 ║       74 ║     01 ║ 0f    ║
║ 180 ║      06 ║ e9       ║     01 ║    01 ║       74 ║     01 ║ 0f    ║
║ 300 ║      06 ║ e9       ║     01 ║    02 ║       74 ║     01 ║ 0f    ║
║ 500 ║      06 ║ e9       ║     01 ║    03 ║       74 ║     01 ║ 0f    ║
║ 700 ║      06 ║ e9       ║     01 ║    04 ║       74 ║     01 ║ 0f    ║
╚═════╩═════════╩══════════╩════════╩═══════╩══════════╩════════╩═══════╝

Vendor receive

Wifi module mac address

╔════════════════╦═════════╦══════════╦════════╦═══════╗
║                ║ length  ║ register ║ length ║ value ║
╠════════════════╬═════════╬══════════╬════════╬═══════╣
║                ║      12 ║          ║        ║       ║
║ AC_SG_VENDER01 ║         ║ fa       ║     01 ║ f8    ║
║ AC_SG_VENDER02 ║         ║ fb       ║     01 ║ 04    ║
║ AC_SG_VENDER03 ║         ║ fc       ║     01 ║ 2e    ║
║ AC_SG_MACHIGH  ║         ║ f7       ║     01 ║ d8    ║
║ AC_SG_MACMID   ║         ║ f8       ║     01 ║ 3e    ║
║ AC_SG_MACLOW   ║         ║ f9       ║     01 ║ a0    ║
╚════════════════╩═════════╩══════════╩════════╩═══════╝