Wd 01 gde irrigation controller (#5794)
Hi team! I'm adding support for the WD-01GDE Dual Irrigation Controller
The basic controls for watering are fully operational, but I'm
encountering a couple of edge cases regarding the countdown timer
behavior and the schedule DP formatting for Home Assistant user
experience.
Device Info & Basic Setup
Product ID: cgz1qpr1aeladx2t
Model: WD-01GDE (Dual Zone / 2-way valve)
Supported Features (Working):
Manual Valve control (switch_1 / switch_2)
Protection Mode (switch_3)
Pump Force selector (power_level_a / power_level_b, values: 1 to 3)
Device logs & Fault indicators (run_log, switch_log_a/b, fault)
Timer irrigation (seting seconds to irrigate before stoping)
Decoded Schedule Binary Format (timer1 / timer2, DPs 101/102)
I have successfully reverse-engineered the 12-byte raw/base64 binary
schedule payload:
Byte 0 : Enable switch (0x01 = On, 0x00 = Off)
Byte 1 : Unknown / Entry Index (Always 0x00)
Byte 2 : Day Mask + Repeat flag (Bit 7: Mon ... Bit 1: Sun | Bit 0:
Repeat)
Byte 3 : Start Hour (0-23)
Byte 4 : Start Minute (0-59)
Byte 5 : Unknown / Padding (Always 0x00)
Bytes 6-7 : Duration in minutes
Bytes 8-9 : Duration in seconds
Bytes 10-11: Padding (Always 0x00)
Example Decoded Payload:
AQAACAEAAgAAAAAA → 01 00 00 08 01 00 02 00 00 00 00 00 (Enabled, Once,
08:01, 2s)
Current Issues & Need Guidance / Help
Issue A: Countdown Timer (woter_timer1 / woter_timer2, DPs 103/104)
No State Reset: When setting a duration (e.g., 120 seconds), the device
opens the valve and automatically stops after 120 seconds. However, DP
103/104 remains at 120 in the device state.
Because the entity state doesn't reset to 0, Home Assistant won't let
users trigger another 120-second cycle without setting a different value
first.
Value 0 Behavior: Setting woter_timer = 0 makes the device water
indefinitely instead of stopping the active cycle or clearing the timer.
Question: How should we handle this in tuya-local? Should woter_timer be
exposed strictly as a number entity with a range starting at 1 (to
prevent accidental infinite watering), or is there a standard pattern in
tuya-local to send a transient duration command that resets after
completion?
Issue B: Setting Schedules from Home Assistant
The schedules (timer1/timer2) work fine if configured via raw Base64
string through a text entity using type: base64.
However, this is not user-friendly for end users in HA.
Question: Is there any built-in mechanism or recommended integration
pattern in tuya-local to map a 12-byte raw payload into user-editable HA
UI components (like separate time, select for days, and number
entities)? Or is exposing the raw/base64 text entity as category: config
the current limitation for raw-schedule Tuya DPs?
Issue C: Unknown DP Functionality
DP 107 (set_cut_time): Tested setting 1 while watering for 5s; it did
not limit or cut off the watering duration. Has anyone seen this DP in
other Tuya irrigation controllers?
Any feedback or suggestions on how to best structure these DPs in the
YAML profile would be greatly appreciated!