I’ve put together an external ESPHome component that talks to Hoymiles HM-series microinverters over an nRF24L01+ radio. It reads live AC and DC telemetry and can send an active power limit command. The ESP talks to the inverter directly over its own radio, so there’s nothing else to install or connect to first.
This is a clean room implementation watching a an Ahoy communication. The source was useful as a reference to check details like byte order, channel hopping, and CRC parameters, but nothing copied from it. Underneath it’s plain ESPHome code: an SPI-driven nRF24 radio, a request state machine that runs asynchronously so it never blocks the ESPHome loop, and a small table-driven decoder covering the three HM channel families (1, 2, and 4 DC inputs).
The only one I have to test against is an HM-1200, so that’s what I can say telemetry and the power-limit command actually work on. On/off, restart, and proper multi-inverter scheduling aren’t implemented yet.
If you run Hoymiles HM inverters and want to try an ESPHome-native path to them, I’d be glad to hear what breaks: GitHub - swifty99/dtu-esphome: conver ahoy dtu to an ESPhome component · GitHub