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.