Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove not needed StorEdge class #111

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 5 additions & 46 deletions src/solaredge_modbus/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -200,8 +200,6 @@ def __init__(
timeout=TIMEOUT, retries=RETRIES, unit=UNIT,
parent=False
):
self.little_endian_registers = set()

if parent:
self.client = parent.client
self.mode = parent.mode
Expand Down Expand Up @@ -268,7 +266,8 @@ def __repr__(self):

def _read_holding_registers(self, address, length):
# Check if the register needs little endian
wordorder = Endian.LITTLE if address in self.little_endian_registers else self.wordorder
wordorder = Endian.LITTLE
self.wordorder

for i in range(self.retries):
if not self.connected():
Expand All @@ -288,7 +287,8 @@ def _read_holding_registers(self, address, length):

def _write_holding_register(self, address, value, dtype):
# Determine byte order based on address
wordorder = Endian.LITTLE if address in self.little_endian_registers else self.wordorder
wordorder = Endian.LITTLE
self.wordorder

# Use dtype and wordorder to encode the value properly
encoded_value = self._encode_value(value, dtype, wordorder)
Expand Down Expand Up @@ -466,22 +466,6 @@ def __init__(self, *args, **kwargs):

super().__init__(*args, **kwargs)

# A dictionary to hold registers that require different wordorder
milkotodorov marked this conversation as resolved.
Show resolved Hide resolved
self.little_endian_registers = {
0xf700, # export_control_mode
0xf701, # export_control_limit_mode
0xf702, # export_control_site_limit
0xe004, # storage_control_mode
0xe005, # storage_ac_charge_policy
0xe006, # storage_ac_charge_limit
0xe008, # storage_backup_reserved_setting
0xe00a, # storage_default_mode
0xe00B, # rc_cmd_timeout
0xe00d, # rc_cmd_mode
0xe00e, # rc_charge_limit
0xe010 # rc_discharge_limit
}

self.registers = {
# name, address, length, register, type, target type, description, unit, batch
"c_id": (0x9c40, 2, registerType.HOLDING, registerDataType.STRING, str, "SunSpec ID", "", 1),
Expand Down Expand Up @@ -561,7 +545,7 @@ def __init__(self, *args, **kwargs):
"storage_ac_charge_limit": (0xe006, 2, registerType.HOLDING, registerDataType.FLOAT32, float, "Storage AC Charge Limit", "", 6),
"storage_backup_reserved_setting": (0xe008, 2, registerType.HOLDING, registerDataType.FLOAT32, float, "Storage Backup Reserved Setting", "%", 6),
"storage_default_mode": (0xe00a, 1, registerType.HOLDING, registerDataType.UINT16, int, "Storage Charge/Discharge Default Mode", "", 6),
"rc_cmd_timeout": (0xe00B, 2, registerType.HOLDING, registerDataType.UINT32, int, "Remote Control Command Timeout", "s", 6),
"rc_cmd_timeout": (0xe00b, 2, registerType.HOLDING, registerDataType.UINT32, int, "Remote Control Command Timeout", "s", 6),
"rc_cmd_mode": (0xe00d, 1, registerType.HOLDING, registerDataType.UINT16, int, "Remote Control Command Mode", "", 6),
"rc_charge_limit": (0xe00e, 2, registerType.HOLDING, registerDataType.FLOAT32, float, "Remote Control Command Charge Limit", "W", 6),
"rc_discharge_limit": (0xe010, 2, registerType.HOLDING, registerDataType.FLOAT32, float, "Remote Control Command Discharge Limit", "W", 6)
Expand Down Expand Up @@ -691,31 +675,6 @@ def __init__(self, offset=False, *args, **kwargs):
"energy_reactive_scale": (0x9d64 + self.offset, 1, registerType.HOLDING, registerDataType.SCALE, int, "Energy (Reactive) Scale Factor", "", 3)
}

class StorEdge(SolarEdge):

def __init__(self, *args, **kwargs):
self.model = "StorEdge"
self.wordorder = Endian.LITTLE

super().__init__(*args, **kwargs)

self.registers = {
"export_control_mode": (0xe000, 1, registerType.HOLDING, registerDataType.UINT16, int, "Export Control Mode", EXPORT_CONTROL_MODE_MAP, 1),
"export_control_limit_mode": (0xe001, 1, registerType.HOLDING, registerDataType.UINT16, int, "Export Control Limit Mode", EXPORT_CONTROL_LIMIT_MAP, 1),
"export_control_site_limit": (0xe002, 2, registerType.HOLDING, registerDataType.SEFLOAT, float, "Export Control Site Limit", "", 1),

"storedge_control_mode": (0xe004, 1, registerType.HOLDING, registerDataType.UINT16, int, "StorEdge Control Mode", STOREDGE_CONTROL_MODE, 1),
"storedge_ac_charge_policy": (0xe005, 1, registerType.HOLDING, registerDataType.UINT16, int, "StorEdge AC Charge Policy", STOREDGE_AC_CHARGE_POLICY, 1),
"storedge_ac_charge_limit": (0xe006, 2, registerType.HOLDING, registerDataType.SEFLOAT, float, "StorEdge AC Charge Limit (kWh or %)", "", 1),
"storedge_backup_reserved": (0xe008, 2, registerType.HOLDING, registerDataType.SEFLOAT, float, "StorEdge Backup Reserved (%)", "", 1),

"storedge_remote_default_command_mode": (0xe00a, 1, registerType.HOLDING, registerDataType.UINT16, int, "StorEdge Default Charge Mode", STOREDGE_CHARGE_DISCHARGE_MODE, 1),
"storedge_remote_command_timeout": (0xe00b, 2, registerType.HOLDING, registerDataType.UINT32, int, "StorEdge Remote Command Timeout", "", 1),
"storedge_remote_command_mode": (0xe00d, 1, registerType.HOLDING, registerDataType.UINT16, int, "StorEdge Remote Command Mode", STOREDGE_CHARGE_DISCHARGE_MODE, 1),
"storedge_remote_charge_limit": (0xe00e, 2, registerType.HOLDING, registerDataType.SEFLOAT, float, "StorEdge Remote Command Charge Limit", "", 1),
"storedge_remote_discharge_limit": (0xe010, 2, registerType.HOLDING, registerDataType.SEFLOAT, float, "StorEdge Remote Command Discharge Limit", "", 1),
}

class Battery(SolarEdge):

def __init__(self, offset=False, *args, **kwargs):
Expand Down