Skip to content

Conversation

@the2masters
Copy link
Contributor

@the2masters the2masters commented Nov 1, 2024

Ich habe das Solis-Modul solange verändert, bis es mit meinem Hybrid-Wechselrichter läuft. Siehe Fehlerreport: https://forum.openwb.de/viewtopic.php?p=118743#p118743

Wahrscheinlich brauchen wir auch #1989

The Solis support was created based on Fox ESS. It looks like the
creator missed to adjust the modbus address for SOC, it's 33139 based
on a register map I got from solis support.

Total discharge energy is also in kWh, not 1/10kWh units.
Every modbus query fails, as all registers need to be read as input
registers (code 0x04), instead of holding register.
right now I get the following error:
UnboundLocalError: local variable 'power' referenced before assignment

Fix it by moving some code around.
@the2masters the2masters mentioned this pull request Nov 1, 2024
Comment on lines 25 to 34
powerreg = 33057
exportedreg = 33029

if self.version == SolisVersion.inverter:
power = client.read_holding_registers(3004, ModbusDataType.UINT_32, unit=unit) * -1
# Unit 1kWh
exported = client.read_holding_registers(3008, ModbusDataType.UINT_32, unit=unit) * 1000
elif self.version == SolisVersion.hybrid:
power = client.read_holding_registers(33057, ModbusDataType.UINT_32, unit=unit) * -1
# Unit 1kWh
exported = client.read_holding_registers(33029, ModbusDataType.UINT_32, unit=unit) * 1000
powerreg = 3004
exportedreg = 3008

power = client.read_input_registers(powerreg, ModbusDataType.UINT_32, unit=unit) * -1
# Unit 1kWh
exported = client.read_input_registers(exportedreg, ModbusDataType.UINT_32, unit=unit) * 1000
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Macht das gleiche ist aber konsistent zu anderen Modulen

if self.version == SolisVersion.inverter:
    power = client.read_input_registers(3004, ModbusDataType.UINT_32, unit=unit) * -1
    exported = client.read_input_registers(3008, ModbusDataType.UINT_32, unit=unit) * 1000
elif self.version == SolisVersion.hybrid:
    power = client.read_input_registers(33057, ModbusDataType.UINT_32, unit=unit) * -1
    exported = client.read_input_registers(33029, ModbusDataType.UINT_32, unit=unit) * 1000

@LKuemmel LKuemmel merged commit ec23648 into openWB:master Nov 7, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants