Replacing my Rachio with a Custom Sprinkler Controller, Part I: Hardware

My Rachio sprinkler controller unexpectedly died so I decided to build my own using an off-the-shelf microcontoller, ESPHome, and Home Assistant.