Diivoo / Tuya / Smart Home Hose Water Valve

Hi everyone,

I wanted to share a project I have been working on: diivoo2mqtt, a Home Assistant add-on for controlling DIIVOO irrigation timers locally.

The goal is simple: keep using the DIIVOO gateway and valves, but remove the vendor cloud from normal operation.

Repository: GitHub - Technerd-SG/hassio-diivoo2mqtt · GitHub
Webflasher for ESP: DIIVOO2MQTT Gateway Flasher

Background

DIIVOO’s gateway is based on an ESP32 and a CMT2300A sub-GHz radio chip. The stock firmware talks to DIIVOO’s cloud, and the cloud then controls the valves.

I hate the cloud, so I started reverse-engineering the radio side. I captured the SPI traffic between the ESP32 and the radio chip with a logic analyzer and rebuilt the important parts of the protocol from those captures.

The result is a custom ESP32 firmware plus a Home Assistant add-on:


Home Assistant <-> MQTT <-> diivoo2mqtt <-> ESP32 gateway <-> DIIVOO valves

The ESP32 gateway becomes a local radio bridge. The add-on handles the protocol, device state, MQTT discovery and the web UI.

Current features

  • Local on/off control for each valve channel

  • Configurable watering duration

  • Watering schedules

  • Mist/intermittent watering mode

  • Rain pause / rain delay

  • Battery and status updates

  • Remaining watering time

  • MQTT auto-discovery in Home Assistant

  • Built-in web UI via Ingress

  • Automatic gateway discovery with mDNS

  • OTA firmware updates after the initial USB flash

  • Multiple gateways in one setup

  • Diagnostic export for unsupported device variants

Supported hardware

| Model | Zones | Status |

| — | —: | — |

| WT-07W | 1 | Supported |

| WT-09W | 2 | Help wanted |

| WT-11W(1) | 3 | Supported |

| WT-13W | 4 | Supported |

The WT-09W 2-zone model is the main missing one at the moment. The add-on can export diagnostic pairing logs from the web UI, so adding support should only require a capture from a real device.

Installation

Add this repository to your Home Assistant Add-on Store:


https://github.com/Technerd-SG/hassio-diivoo2mqtt

Then install the add-on, configure your MQTT broker, and start it.

You also need to flash the DIIVOO gateway once with the custom firmware. There is a browser-based flasher here:


https://technerd-sg.github.io/hassio-diivoo2mqtt/webflasher/

You need a 3.3V USB-to-serial adapter for the first flash. After that, updates can be installed over the air from the add-on UI.

Help wanted

If you own the WT-09W 2-zone timer, I would be very interested in a diagnostic export from the add-on. No protocol knowledge is needed: pair the device, download the diagnostic log from the web UI, and attach it to a GitHub issue.

This is an unofficial community project and not affiliated with DIIVOO. Flashing custom firmware is always at your own risk.