diff --git a/custom_components/solarman/api.py b/custom_components/solarman/api.py index 63827e1d..3cc0e69b 100644 --- a/custom_components/solarman/api.py +++ b/custom_components/solarman/api.py @@ -227,6 +227,26 @@ async def async_get(self, runtime = 0): return self.get_result() # Service calls + async def service_read_holding_register(self, register, value): + _LOGGER.debug(f'Service Call: read_holding_registers : [{register}], value : [{value}]') + try: + await self.async_connect() + await self.read_holding_registers(register, value) + except Exception as e: + _LOGGER.warning(f"Service Call: read_holding_registers : [{register}], value : [{value}] failed. [{format_exception(e)}]") + await self.async_disconnect() + return + + async def service_read_multiple_holding_registers(self, register, values): + _LOGGER.debug(f'Service Call: read_multiple_holding_registers: [{register}], values : [{values}]') + try: + await self.async_connect() + await self.read_multiple_holding_registers(register, values) + except Exception as e: + _LOGGER.warning(f"Service Call: read_multiple_holding_registers: [{register}], values : [{values}] failed. [{format_exception(e)}]") + await self.async_disconnect() + return + async def service_write_holding_register(self, register, value): _LOGGER.debug(f'Service Call: write_holding_register : [{register}], value : [{value}]') try: @@ -246,3 +266,4 @@ async def service_write_multiple_holding_registers(self, register, values): _LOGGER.warning(f"Service Call: write_multiple_holding_registers: [{register}], values : [{values}] failed. [{format_exception(e)}]") await self.async_disconnect() return +