DEYE-controller
A library and simple tools for interaction with DEYE hybrid inverters
The communication with the inverter requires a SOLARMAN datalogger
pysloarmanv5 based library
- Command line tools (exposed after install):
deye-read - read everything from the inverter (use –help for filters/options)
deye-regcheck - for quick check on specific register(s)
deye-scan is a scanner for dataloggers in the local network (not DEYE related)
deye-regwrite - for writing to individual registers
- Monkey patching:
direct value assignment on read for the Register and RegistersGroup types (see the examples dir)
- Tested with:
SUN-12K-SG04LP3 / LSW-3
INSTALL
pip install deye-controller
TODO List
Support single phase inverters, eventually with auto detection.
Examples
After version 0.2.0 PySolarmanV5 can be patched for even easier reading see here
Basic usage:
read a register from the inverter
>>> from deye_controller import HoldingRegisters, WritableRegisters >>> from pysolarmanv5 import PySolarmanV5 >>> inv = PySolarmanV5('192.168.1.100', 2712345678) >>> register = HoldingRegisters.BMSBatteryCapacity >>> res = inv.read_holding_registers(register.address, register.len) >>> register.value = res[0] if register.len == 1 else res >>> print(register.description, register.format(), register.suffix) bms_battery_SOC 24 % >>> inv.disconnect()write
>>> from deye_controller import HoldingRegisters, WritableRegisters >>> from pysolarmanv5 import PySolarmanV5 >>> inv = PySolarmanV5('192.168.1.100', 2712345678) >>> register = WritableRegisters.SellModeSOC3 >>> register.set(23) >>> inv.write_multiple_holding_registers(register.address, [register.modbus_value]) 1 >>> inv.disconnect()SellMode programming:
>>> from deye_controller import SellProgrammer >>> prog = SellProgrammer('192.168.1.108', 2799999999) >>> prog.show_as_screen() ____________________________________________________ | Grid | Gen | Time | Pwr | SOC % | | | | 00:00 | 03:00 | 3500 | 100% | | | | 03:00 | 04:00 | 3500 | 30% | | | | 04:00 | 05:00 | 3500 | 30% | | | | 05:00 | 10:00 | 3500 | 30% | | | | 10:00 | 23:00 | 3500 | 100% | | | | 23:00 | 00:00 | 3500 | 30% | ---------------------------------------------------- >>> prog.update_program(3, start_t='6:30', power=2500, soc=35, grid_ch=True) Program updated >>> prog.show_as_screen() # For visual confirmation of the settings ____________________________________________________ | Grid | Gen | Time | Pwr | SOC % | | | | 00:00 | 03:00 | 3500 | 100% | | | | 03:00 | 04:00 | 3500 | 30% | | | | 04:00 | 06:30 | 3500 | 30% | | ✓ | | 06:30 | 10:00 | 2500 | 35% | | | | 10:00 | 23:00 | 3500 | 100% | | | | 23:00 | 00:00 | 3500 | 30% | ---------------------------------------------------- >>> prog.upload_settings() # In order to upload the settings to the inverter >>> prog.disconnect() # Needed if PySolarmanV5 >= 3.0.0
Notes
It is possible the inverter to be completely deactivated by writing 0 to register 80 WritableRegisters.SwitchOnOff.set(False) but it will raise an alarm and will show error F19. The normal state is restored as soon as the register is set to its default value 1.
The WritableRegisters.GridExportLimit register can be used if the grid export is not desired when the battery is charged and the PV generation exceeds the load.
Metadata
Release files for deye-controller 0.2.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| deye_controller-0.2.4.tar.gz | 20.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| deye_controller-0.2.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 44.4 kB
Release files / deye_controller-0.2.4.tar.gz
| Download URL | deye_controller-0.2.4.tar.gz |
|---|---|
| Size | 20.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2624bbd69088cbcd2896714937256dec78f8bdcfef96bf082acc5fe8e580f323
|
|
BLAKE2b-256 checksum How to use checksums |
4fa774439b31d8f94567e4b809dd2ea618a2e894ec08c728f3c999950dff39ad
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.1.4 CPython/3.13.7 Linux/6.19.8-lqx2-1-liquorix
|
Release files / deye_controller-0.2.4-py3-none-any.whl
| Download URL | deye_controller-0.2.4-py3-none-any.whl |
|---|---|
| Size | 24.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
58b2cebd6941f4ff118bdc8ab3f2efdcb51fbcce60795849c04405360e0e9cbb
|
|
BLAKE2b-256 checksum How to use checksums |
09a089b42927332b9d70a9069ddf216de5c7758688174ba5c97085e4fb96aa87
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.1.4 CPython/3.13.7 Linux/6.19.8-lqx2-1-liquorix
|