Skip to content

Latest commit

 

History

History
68 lines (45 loc) · 2.32 KB

README.md

File metadata and controls

68 lines (45 loc) · 2.32 KB

RaspberryPi based python script to control Hoymiles HM-* inverters

This script allows you to receive and control commands and data from your Hoymiles inverter with RaspberryPi

WORK IN PROGRESS

How to use

  • Get RaspberryPi with nRF24L01+ board
  • pip3 install circuitpython-nrf24l01 Adafruit-Blinka crcmod
  • Modify inverter_ser to your inverters serial number
  • Optional: modify nrf.channel to one of [3,23,40,61,75] if you dont get a response to the time package

What works

  • Receive Packages from Hoymiles
  • Send Control Packages
    • Power Limit (non + persistent)
    • On/OFF
  • Send request data packages
  • Assemble multiple packages into one data package
  • Re-request missing packages
  • Check CRC's

Limitations

  • Currently you can send/receive just to/from one inverter at a time
  • Data received back from the inverter is checked and assembled but not really parsed yet

Examples

setPowerLimit(inverter_serial, 50) -> limit power to 50 watt non-persistently

setPowerLimit(inverter_serial, 50, True) -> limit power to 50% of max power non-persistently

setPowerLimit(inverter_serial, 50, True, True) -> limit power to 50% of max power persistently

sendControl(inverter_serial, CMD.OFF) -> inverter turns off

sendControl(inverter_serial, CMD.ON) -> inverter turns on

sendTime(inverter_ser) -> inverter responds with a complete data package

Supported inverters

All inverters of the HM-* series should be supported

  • HM-1500
  • HM-1200
  • HM-800
  • HM-600
  • HM-300 ?

Hardware

For this script to work you need a RaspberryPi with nRF24L01+ board attached to pins 15-24

image

The Board design can be found here https://oshwlab.com/kned/nrf24l01 you can Order it here for 2$ or use your own manufacturer with gerber files in the repo

Additionally you need a nRF24L01+ SMD board (Ebay, Aliexpress...) and one 100uF 16V Capacitor

For the pinout see https://circuitpython-nrf24l01.readthedocs.io/en/latest/#pinout (SpiDev mode is used)

Special thanks to

https://github.com/lumapu/ahoy

https://github.com/tbnobody/OpenDTU

and https://www.mikrocontroller.net/