Skip to content

Add ThinQ2 device handler for LG DLE7300WE dryer (RV13U6AM8W_D_US_WIFI)#78

Open
brystmar wants to merge 2 commits into
anszom:masterfrom
brystmar:feature/dryer-RV13U6AM8W_D_US_WIFI
Open

Add ThinQ2 device handler for LG DLE7300WE dryer (RV13U6AM8W_D_US_WIFI)#78
brystmar wants to merge 2 commits into
anszom:masterfrom
brystmar:feature/dryer-RV13U6AM8W_D_US_WIFI

Conversation

@brystmar

Copy link
Copy Markdown

Adds support for the LG DLE7300WE dryer (internal model RV13U6AM8W_D_US_WIFI, deviceType 202, ThinQ2 Wi-Fi module).

What this adds

A new device handler that parses the AA/BB-framed status packets (0xEC dual-record and 0xEB single-record) to expose the following Home Assistant sensors:

Sensor Type Notes
Phase sensor (enum) Off, Starting, Paused, Drying, Cooldown, Finishing
Remaining minutes sensor (duration) Byte 4 of current record
Power binary_sensor Derived: on when phase ≠ 0
Start time sensor (timestamp) Derived: recorded when phase transitions from 0
Stop time sensor (timestamp) Derived: recorded when phase transitions back to 0

Notes

  • The 0xEC packet carries two back-to-back 29-byte records (current + previous); only the current (first) record is used.
  • Unlike the companion washer handler, the dryer has no sub-minute seconds field — its MQTT update cadence aligns with whole-minute decrements.
  • The dryer does not force a Wi-Fi reconnect at end-of-cycle; it simply returns to phase 0x00 after a cooldown (0x33) and brief transitional (0x04) state.
  • Companion PR for the LG WT7300CW washer: Add ThinQ2 device handler for LG WT7300CW washer (T1789EFH_F) #77

@anszom anszom left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add an unit test here as well.

Comment thread cloud/devices/RV13U6AM8W_D_US_WIFI.ts Outdated
Comment on lines +76 to +83
if (this.lastPhase === 0 && phase !== 0) {
this.startTime = new Date().toISOString()
this.publishProperty('start_time', this.startTime)
} else if (this.lastPhase !== 0 && phase === 0) {
this.stopTime = new Date().toISOString()
this.publishProperty('stop_time', this.stopTime)
}
this.lastPhase = phase

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the same "post-processing" comment applies here, see the other PR for details.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in d0fc978.

Comment thread cloud/devices/RV13U6AM8W_D_US_WIFI.ts Outdated
…min, add tests

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

@brystmar brystmar left a comment

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed start_time and stop_time sensors and the lastPhase tracking logic behind them. These were derived from phase transitions, not device-reported values, making them unreliable across reconnects.

Renamed remaining_time_min to remaining_time.

Add 17 unit tests including 8 real validated captures from a live LG DLE7300WE, covering all mapped phases (Off, Starting, Drying, Paused, Cooldown) and documenting two current parser limitations: the truncated single-record cooldown EC, and the three-record power-off EC are silently ignored by the parser.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants