Intellidwell Logo Docs
Store ↗

Local API & Developer Guide

The Intellidwell Sprinkler Controller exposes a clean REST API on your local network, enabling custom scheduling, automated integrations, and scripting.

Local HTTP REST API

All REST calls should be made to the local IP address assigned to your controller.

1. Fetch System Status

Returns the current state of all relays, active timers, CPU/Wi-Fi parameters, and sequential queue metrics.

http request
GET http:///api/status
json response
{
  "relay_states": [0, 1, 0, 0, 0, 0, 0, 0, 0, 0],
  "timers": {
    "1": 248
  },
  "queue": {
    "active": false,
    "steps": [],
    "current_index": 0,
    "remaining_seconds": 0
  }
}

2. Activate Zone with Timer

Starts a timed zone irrigation cycle. Zone indexes are 0-indexed (0 to 9).

http request
GET http:///relay-timer//

3. Cancel Zone Timer

Cancels any active timer running on a specific zone and turns off the relay.

http request
GET http:///cancel-timer/

4. Direct Relay Control

Directly toggle a relay state manually. State parameter must be on or off.

http request
GET http:///relay//

5. Set Rain Delay

Halts all scheduled irrigation activities for a specified number of days.

http request
GET http:///set-rain-delay/

6. Reboot Controller

Performs a hardware reset cycle on the ESP32 chip.

http request
POST http:///restart

Serial Reprogramming Guide

If you need to manually flash MicroPython or install raw firmware modules, you can connect to the controller's internal header pins using a USB-to-UART serial bridge (such as an FTDI adapter).

Header Pin Configuration:

  • VCC: Connect to 3.3V power (Do not use 5V)
  • GND: Connect to Common Ground
  • TX: Connect to UART Bridge RX
  • RX: Connect to UART Bridge TX
  • IO0: Tie to Ground during boot to enter flashing mode

Flashing MicroPython with esptool:

bash
# 1. Erase flash
esptool.py --chip esp32 --port /dev/ttyUSB0 erase_flash

# 2. Write firmware image
esptool.py --chip esp32 --port /dev/ttyUSB0 --baud 460800 write_flash -z 0x1000 esp32-20250912-v1.22.bin