@@ -70,15 +70,21 @@ def set_power_limit(self, power_limit: Optional[int]) -> None:
7070 # wiederholt auf Stop setzen damit sich Register nicht zurücksetzt
7171 log .debug ("Aktive Batteriesteuerung. Batterie wird auf Stop gesetzt und nicht entladen" )
7272 packed = struct .pack ('>f' , 0.0 )
73- registers = [int .from_bytes (packed [0 :2 ], 'big' ), int .from_bytes (packed [2 :4 ], 'big' )]
73+ if self .endianess == Endian .Little :
74+ registers = [int .from_bytes (packed [2 :4 ], 'little' ), int .from_bytes (packed [0 :2 ], 'little' )]
75+ else :
76+ registers = [int .from_bytes (packed [0 :2 ], 'big' ), int .from_bytes (packed [2 :4 ], 'big' )]
7477 self .client .write_registers (1034 , registers , data_type = ModbusDataType .FLOAT_32 , unit = unit )
7578 elif power_limit < 0 :
7679 log .debug (f"Aktive Batteriesteuerung. Batterie wird mit { power_limit } W entladen für den Hausverbrauch" )
7780 # Die maximale Entladeleistung begrenzen auf 7000W
7881 power_value = float (min (abs (power_limit ), 7000 )) * - 1
7982 log .debug (f"Aktive Batteriesteuerung. Batterie wird mit { power_value } W entladen für den Hausverbrauch" )
8083 packed = struct .pack ('>f' , power_value )
81- registers = [int .from_bytes (packed [0 :2 ], 'big' ), int .from_bytes (packed [2 :4 ], 'big' )]
84+ if self .endianess == Endian .Little :
85+ registers = [int .from_bytes (packed [2 :4 ], 'little' ), int .from_bytes (packed [0 :2 ], 'little' )]
86+ else :
87+ registers = [int .from_bytes (packed [0 :2 ], 'big' ), int .from_bytes (packed [2 :4 ], 'big' )]
8288 self .client .write_registers (1034 , registers , data_type = ModbusDataType .FLOAT_32 , unit = unit )
8389
8490 def power_limit_controllable (self ) -> bool :
0 commit comments