Skip to content

Appliance:Y_V8_F___W.B_2QEUK

swarp22 edited this page Jul 22, 2026 · 1 revision

ThinQ Model ID: Y_V8_F___W.B_2QEUK Platform: thinq2 Device type: washer/dryer combo (LG W4WR70E61, article F4Y7ERP1W.ABWQPDG)

Communicates with the "AABB" protocol. Closely related to F_V8_Y___W.B_2QEUK and Y_V8_Y___W.B32QEUK: the control commands are identical, only the status frame layout differs. All offsets below were verified on a single unit (firmware clip_hna 2.11.207) across three fully captured wash cycles, including one complete wash+dry cycle.

Packet format

device-to-cloud messages

This model emits two status-frame variants, both starting with 0x20 and carrying 0x01 at byte 8: a 53-byte packet (single block, status block at offset S = 15) and a 92-byte packet (double block: previous + current state, current block at S = 54). A practical rule: S = (length > 73) ? 54 : 15. Fields relative to the block start S:

[S+0]        state           -> STATES[]
[S+1][S+2]   remaining time  -> hours, minutes
[S+3][S+4]   initial time    -> hours, minutes
[S+5]        course          -> COURSES[]   (0x13 = Wash+Dry; 0x3a is labelled "AI Wash"
                                             on this unit's panel — course names are
                                             model-dependent)
[S+6]        error           -> ERRORS[]
[S+8]        spin            -> SPINS[]
[S+9]        temperature     -> TEMPERATURES[]
[S+11]       drying mode     -> DRYING_MODES[]  (0x00 off, 0x02 auto, ...)
[S+15]       flags           -> bit 0x40 set = remote start armed
[S+19]       door            -> bit 0x40 set = unlocked (inverted: cleared = locked)
[S+28][S+29] energy          -> uint16 big-endian, Wh, resets to 0 at cycle start

Note: this differs from Y_V8_Y___W.B32QEUK, where spin/temp sit at +9/+10 and remote-start is bit 0x02 of the lock byte, and from F_V8_Y___W.B_2QEUK, which uses an 80-byte frame with fixed offsets. On this _V8_F_ variant spin/temp are at +8/+9, remote-start is bit 0x40 of byte S+15, and the door lock is a separate byte (S+19).

The energy counter was verified against a full wash+dry cycle: it climbed monotonically to 2162 Wh (wash phases 283 Wh, drying 1879 Wh). The energy offset of the sibling models (buf[71]*256+buf[72]) does not apply to this variant.

79-byte configuration packet (byte 8 = 0x02)

[19]   wash cycle counter (increments by 1 after each completed cycle)

cloud-to-device messages

exit sleep mode

F02A0100

Send it only once, and only while the machine is actually asleep — sending it to an awake (or still-booting) machine acts as a power toggle and turns the machine OFF.

Sleep behaviour observed on this unit:

  • An awake machine streams informational packets roughly every 1.5 s. A sleeping machine is completely silent (the MQTT connection stays open).
  • The machine can enter sleep as early as ~11 minutes after the last interaction (not only after the often-quoted 15–20 minutes). It announces sleep with a zeroed status packet (state = Ready, course = 0) — this packet is a reliable "machine is now asleep" marker.
  • Commands sent to a sleeping controller are ignored. The Wi-Fi module may still emit packets in response, which is easily mistaken for the machine being awake.
  • Waking clears the program pre-selection, so the course data must be (re)sent before starting (see below).
  • The physical remote-start arming (which the user must activate on the panel; LG safety requirement) can expire, e.g. after ignored start attempts or a spontaneous wake. Commands are then silently ignored until the user re-arms the machine.

turn off

F024010100

pause

F024040100

start (default program)

F024050100

⚠️ This starts the machine's default program, not the program the user pre-selected on the panel — the same limitation seen with the official ThinQ cloud API.

start a specific program (program-preserving)

To start a chosen program you must (a) re-download the course with WMDownload and then (b) start it with WMStart:

WMDownload:  F0 25 03 15  + <16-byte body>
WMStart:     F0 26        + <16-byte body>

16-byte body layout:

[0]      course         (0x13 = Wash+Dry, ...)
[1]      0x03           (constant)
[2]      spin           (SPINS index, e.g. 0x09 = 1200 rpm, 0x0a = 1400 rpm)
[3]      temperature    (TEMPERATURES index, e.g. 0x03 = 30 °C)
[4]      0x01           (rinse, constant)
[5]      drying mode    (DRYING_MODES index: 0x00 = off, 0x02 = auto, 0x03..0x07 = timed)
[6]      delayed start  (in HOURS; must be 0x00 for an immediate start)
[7..9]   0x00
[10]     options        (0x42 observed for "AI Wash", 0x02 for Wash+Dry)
[11..15] program-specific tail

Two pitfalls worth highlighting:

  • Byte [5] is the drying stage. With [5] = 0x00 a Wash+Dry course (0x13) runs wash-only (~2 h) — the machine accepts the command and displays "Wash + Dry", but skips drying entirely. [5] = 0x02 (auto) produces the full wash+dry cycle (~4 h, verified end to end including the Drying phase).
  • Byte [6] is a delayed-start time in hours, not an option flag. A stray 0x02 here delays the start by 2 hours (state goes to Delayed).

Verified bodies (1400 rpm, 30 °C):

AI Wash:              F0 26 3a030a03010000000000420000000000
Wash+Dry (auto dry):  F0 26 13030a03010200000000022000010100

Full sequence to start the machine from standby with the chosen program:

  1. if asleep, send F02A0100 once and wait until the machine reports state = Ready again;
  2. send WMDownload (F0 25 03 15 + body);
  3. a few seconds later send WMStart (F0 26 + body).

WMStart only takes effect while the machine is physically armed for remote start.

Clone this wiki locally