Skip to content

Commit

Permalink
Throw ValueError or unknown setting.
Browse files Browse the repository at this point in the history
  • Loading branch information
mletenay committed May 25, 2024
1 parent 11db632 commit f7b04f4
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 1 deletion.
1 change: 1 addition & 0 deletions goodwe/dt.py
Original file line number Diff line number Diff line change
Expand Up @@ -200,6 +200,7 @@ async def _read_setting(self, setting: Sensor) -> Any:
if ex.message == ILLEGAL_DATA_ADDRESS:
logger.debug("Unsupported setting %s", setting.id_)
self._settings.pop(setting.id_, None)
raise ValueError(f'Unknown setting "{setting.id_}"')
return None

async def write_setting(self, setting_id: str, value: Any):
Expand Down
4 changes: 3 additions & 1 deletion goodwe/es.py
Original file line number Diff line number Diff line change
Expand Up @@ -220,9 +220,11 @@ async def read_setting(self, setting_id: str) -> Any:
elif setting_id.startswith("modbus"):
response = await self._read_from_socket(self._read_command(int(setting_id[7:]), 1))
return int.from_bytes(response.read(2), byteorder="big", signed=True)
else:
elif setting_id in self._settings:
all_settings = await self.read_settings_data()
return all_settings.get(setting_id)
else:
raise ValueError(f'Unknown setting "{setting_id}"')

async def _read_setting(self, setting: Sensor) -> Any:
count = (setting.size_ + (setting.size_ % 2)) // 2
Expand Down
1 change: 1 addition & 0 deletions goodwe/et.py
Original file line number Diff line number Diff line change
Expand Up @@ -628,6 +628,7 @@ async def _read_setting(self, setting: Sensor) -> Any:
if ex.message == ILLEGAL_DATA_ADDRESS:
logger.debug("Unsupported setting %s", setting.id_)
self._settings.pop(setting.id_, None)
raise ValueError(f'Unknown setting "{setting.id_}"')
return None

async def write_setting(self, setting_id: str, value: Any):
Expand Down
16 changes: 16 additions & 0 deletions tests/stability_check.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,21 @@ async def pymodbus(ip):
i += 1


async def read_modbus_range(ip, port, register, length):
inverter = await goodwe.connect(host=ip, port=port, family="ET", timeout=1, retries=3)
# inverter.set_keep_alive(False)

i = 1
while True:
logger.info("################################")
logger.info(" Request %d", i)
logger.info("################################")
await goodwe.protocol.ModbusRtuReadCommand(0xf7, register, length).execute(
goodwe.protocol.UdpInverterProtocol(ip, port, 1, 3))
await asyncio.sleep(5)
i += 1


async def get_runtime_data(ip, port):
inverter = await goodwe.connect(host=ip, port=port, family="ET", timeout=1, retries=3)
# inverter.set_keep_alive(False)
Expand All @@ -68,4 +83,5 @@ async def get_runtime_data(ip, port):


# asyncio.run(pymodbus('127.0.0.1'))
# asyncio.run(read_modbus_range('192.168.2.14', 8899, 35100, 125))
asyncio.run(get_runtime_data('127.0.0.1', 502))

0 comments on commit f7b04f4

Please sign in to comment.