Update: Battery Optimizer v3.4.0 mit allen Fixes und Features

This commit is contained in:
felix.zoesch
2025-12-12 08:20:19 +01:00
commit d2a41aad2d
78 changed files with 18053 additions and 0 deletions

25
ess_set_power.py Normal file
View File

@@ -0,0 +1,25 @@
# /config/pyscript/ess_set_power.py
import struct
@service
def ess_set_power(hub="openEMS", slave=1, power_w=0.0):
"""
706 = SetActivePowerEquals (float32 BE)
Laden = negativ, Entladen = positiv.
"""
ADDR_EQUALS = 706
def float_to_regs_be(val: float):
b = struct.pack(">f", float(val)) # Big Endian
return [(b[0] << 8) | b[1], (b[2] << 8) | b[3]] # [hi, lo]
try:
p = float(power_w)
except Exception:
p = 0.0
regs = float_to_regs_be(p)
log.info(f"OpenEMS ESS Ziel: {p:.1f} W -> {ADDR_EQUALS} -> {regs}")
service.call("modbus", "write_register", hub=hub, slave=slave, address=ADDR_EQUALS, value=regs)