Add support for F_C__Y___W.A__QEUK washing machine - #136
Conversation
LG front-loading washer (A-generation UK), using a 62-byte AABB status packet (0x20 0xEC subtype) with a compact 32-byte variant (0x20 0xEB) sent after commands/reconnect, and a 3-byte door-state packet (0x20 0xD8) that is the authoritative door-lock source during Off/Ready. Exposes power, status, course, temp, spin, remote_start, door_lock, child_lock, steam, wrinkle_care, active, pre_state, tub_clean, initial/remaining/delay time, and error/error_message — all offsets confirmed against live packet captures, including a real dE2 (door lock error) capture. Also fixes send_packet to emit uppercase hex, matching what this device's firmware expects on the wire. Developed with the assistance of Claude (Anthropic), using live packet captures analysed and cross-checked against known machine settings and HA UI state. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
I'm not aware of those, but I haven't tried running on Windows. What are you referring to? |
|
Sorry, should've been more specific. Both are on master/upstream too (I checked with a clean upstream/master checkout before making any changes), just Windows-specific: tests/bridge/util.test.ts → "subprocess rejects signals and spawn failures" tests/management/device-monitor.test.ts → "device monitor detaches device and manager listeners after a real WebSocket close" Neither touches the washer device code, and both reproduce identically on a bare upstream/master checkout, so they're pre-existing and out of scope for this PR. |
Summary
0x20 0xECstatus packet, the compact 32-byte0x20 0xEBvariant, and the 3-byte0x20 0xD8door-state packet.dE2(door lock error) capture.send_packetincloud/thinq2/device.tsto emit uppercase hex, which this device's firmware requires.This was developed with the assistance of Claude (Anthropic) — packet captures were analysed and offsets cross-verified against known settings and HA UI state interactively.
Test plan
tests/cloud/devices/F_C__Y___W.A__QEUK.test.ts— 38/38 passing, covering all decoded fields, the 0xD8 door-lock precedence rules, 0xE2 packet ignoring, and the error/error_message decodingmaster)