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
theCheckSum 8 Xor
of the all columns beforelength
, count from here to end of message (includingchecksum
andend
)
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 ║ ║ … ║
╚══════╩════════╩══════════╩══════╩══════════╩══╩══════════╩══════╩═══════╩══╩══════════╩══════╩════════╩══╩═══╝
1202
: WIFI -> AC: Request internal registers1203
: AC -> WIFI: ack - Request internal registers1204
: WIFI -> AC: Send user commands1205
: AC -> WIFI: ack - user commands1206
: AC -> WIFI: current AC registers1207
: WIFI -> AC: ack - values from AC
1302
: WIFI -> AC: Request internal registers1303
: AC -> WIFI: ack - Request internal registers1304
: WIFI -> AC: Set internal registers1305
: AC -> WIFI: ack - Set internal registers
1402
: WIFI -> AC: Request internal registers1403
: AC -> WIFI: ack - Request internal registers1404
: WIFI -> AC: wifi module status1405
: AC -> WIFI: ack - wifi module status
╔═══════╦═══════════════════════════╦══════╦══════════╦══════╦══════╦═════════╗
║ 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
?
Note: Most 1204
also pass the register 74
with always the same value.
Note edit: 74
register should be the AC "BIP"
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 ║
╚═════════╩═════════╩══════════╩════════╩═══════╩══════════╩════════╩═══════╝
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 ║
╚═════╩═════════╩══════════╩════════╩═══════╩══════════╩════════╩═══════╝
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 ║
╚══════╩═════════╩══════════╩════════╩═══════╩══════════╩════════╩═══════╝
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 ║
╚═══════════╩═════════╩══════════╩════════╩═══════╩══════════╩════════╩═══════╝
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 ║
╚══════╩═════════╩══════════╩════════╩═══════╩══════════╩════════╩═══════╝
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 ║
╚═══════╩═════════╩══════════╩════════╩═══════╩══════════╩════════╩═══════╝
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 ║
╚══════════╩═════════╩══════════╩════════╩═══════╩══════════╩════════╩═══════╝
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 ║
╚═════╩═════════╩══════════╩════════╩═══════╩══════════╩════════╩═══════╝
╔════════════════════════════════════════════════════════════════════════╦════════════╦══════════╦════════╦══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╦══════════╦════════╦═══════╗
║ ║ 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 ║
╚════════════════════════════════════════════════════════════════════════╩════════════╩══════════╩════════╩══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╩══════════╩════════╩═══════╝
╔══════════════════╦═════════╦══════════╦════════╦══════════╗
║ ║ 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 ║
╚══════════════════╩═════════╩══════════╩════════╩══════════╝
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 ║
╚═══════════════════════════╩═════════╩══════════╩═══════╝
TODO: Check
╔═════╦══════════╦════════╦═══════╗
║ ║ register ║ length ║ value ║
╠═════╬══════════╬════════╬═══════╣
║ On ║ 32 ║ 01 ║ 22 ║
║ Off ║ 32 ║ 01 ║ 23 ║
╚═════╩══════════╩════════╩═══════╝
TODO: Check
╔═════╦══════════╦════════╦═══════╗
║ ║ register ║ length ║ value ║
╠═════╬══════════╬════════╬═══════╣
║ … ║ 40 ║ ? ║ ║
║ ║ 40 ║ ? ║ ║
╚═════╩══════════╩════════╩═══════╝
TODO: Check
╔═════╦══════════╦════════╦═══════╗
║ ║ register ║ length ║ value ║
╠═════╬══════════╬════════╬═══════╣
║ 0 ║ 44 ║ 01 ║ 00 ║
║ … ║ ║ ║ ║
║ 255 ║ 44 ║ 01 ║ ff ║
╚═════╩══════════╩════════╩═══════╝
TODO: Check
╔═════╦══════════╦════════╦═══════╗
║ ║ register ║ length ║ value ║
╠═════╬══════════╬════════╬═══════╣
║ On ║ 75 ║ 01 ║ 0f ║
║ … ║ ║ ║ ║
║ Off ║ 75 ║ 01 ║ f0 ║
╚═════╩══════════╩════════╩═══════╝
TODO: Check
╔═══╦══════════╦════════╦═══════╗
║ ║ register ║ length ║ value ║
╠═══╬══════════╬════════╬═══════╣
║ … ║ ║ ║ ║
╚═══╩══════════╩════════╩═══════╝
╔═════════╦══════════╦════════╦═══════╗
║ ║ register ║ length ║ value ║
╠═════════╬══════════╬════════╬═══════╣
║ Direct ║ 43 ║ 01 ║ 20 ║
║ Default ║ 43 ║ 01 ║ 0f ║
╚═════════╩══════════╩════════╩═══════╝
╔══════╦══════════╦════════╦═══════╗
║ ║ register ║ length ║ value ║
╠══════╬══════════╬════════╬═══════╣
║ 16°C ║ 76 ║ 01 ║ 10 ║
║ 17°C ║ 76 ║ 01 ║ 11 ║
║ … ║ ║ ║ ║
║ 28°C ║ 76 ║ 01 ║ 1c ║
╚══════╩══════════╩════════╩═══════╝
TODO: Check
╔═══╦══════════╦════════╦═══════╗
║ ║ register ║ length ║ value ║
╠═══╬══════════╬════════╬═══════╣
║ … ║ ║ ║ ║
╚═══╩══════════╩════════╩═══════╝
TODO: Check
╔═══╦══════════╦════════╦═══════╗
║ ║ register ║ length ║ value ║
╠═══╬══════════╬════════╬═══════╣
║ … ║ ║ ║ ║
╚═══╩══════════╩════════╩═══════╝
TODO: Check ╔═══╦══════════╦════════╦═══════╗ ║ ║ register ║ length ║ value ║ ╠═══╬══════════╬════════╬═══════╣ ║ … ║ ║ ║ ║ ╚═══╩══════════╩════════╩═══════╝
TODO: Check
╔═══╦══════════╦════════╦═══════╗
║ ║ register ║ length ║ value ║
╠═══╬══════════╬════════╬═══════╣
║ … ║ ║ ║ ║
╚═══╩══════════╩════════╩═══════╝
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 ║ ? ║
╚═════════════════════════╩═════════╩══════════╩════════╩═══════════╝
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 ║ ║
╚═════════════════════════╩═════════╩══════════╩════════╩══════════╩═════════════════════════════════════╝
Is connected to wifi
╔═════╦═════════╦══════════╦════════╦═══════╗
║ ║ length ║ register ║ length ║ value ║
╠═════╬═════════╬══════════╬════════╬═══════╣
║ On ║ 03 ║ 37 ║ 01 ║ 0f ║
║ Off ║ 03 ║ 37 ║ 01 ║ f0 ║
╚═════╩═════════╩══════════╩════════╩═══════╝
Is connected to internet
╔═════╦═════════╦══════════╦════════╦═══════╗
║ ║ length ║ register ║ length ║ value ║
╠═════╬═════════╬══════════╬════════╬═══════╣
║ On ║ 03 ║ 38 ║ 01 ║ 0f ║
║ Off ║ 03 ║ 38 ║ 01 ║ f0 ║
╚═════╩═════════╩══════════╩════════╩═══════╝
╔═════╦═════════╦══════════╦════════╦═══════╦══════════╦════════╦═══════╗
║ ║ 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 ║
╚═════╩═════════╩══════════╩════════╩═══════╩══════════╩════════╩═══════╝
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 ║
╚════════════════╩═════════╩══════════╩════════╩═══════╝