Added exeption for all reading

This commit is contained in:
Simon 2023-03-20 08:58:39 +01:00
parent fbe885b92c
commit 289afca88d
1 changed files with 36 additions and 36 deletions

View File

@ -41,52 +41,52 @@ async def main():
status = await inverter_client.get( status = await inverter_client.get(
ReadRegister.inverter_reg_status, slave_id ReadRegister.inverter_reg_status, slave_id
) )
except ReadException as error:
LOGGER.error(f"Can't read register, {ReadRegister.inverter_reg_status}. "
f"Error code: {error}. Sleep for 10 min")
await asyncio.sleep(10*60) # Sleep 5 min
LOGGER.info(f"-- INVERTER -- Status: {status}") LOGGER.info(f"-- INVERTER -- Status: {status}")
if ( if (
status.value == rv.DEVICE_STATUS_DEFINITIONS.get(0x0200) status.value == rv.DEVICE_STATUS_DEFINITIONS.get(0x0200)
or FORCE_GET or FORCE_GET
): # Inverter is active, Get data ): # Inverter is active, Get data
LOGGER.info("-- INVERTER -- Send measured values") LOGGER.info("-- INVERTER -- Send measured values")
for register in ReadRegister.reg_to_read_measured: for register in ReadRegister.reg_to_read_measured:
result = await get_inverter_data(inverter_client, register)
send_data(
mqtt_client,
format_data_to_serialized_json(result),
f"measure/{result.name}",
)
if count == 6: # Every 1 min
LOGGER.info("-- INVERTER -- Send calculated values")
for register in ReadRegister.reg_to_read_calculated:
result = await get_inverter_data(inverter_client, register) result = await get_inverter_data(inverter_client, register)
send_data( send_data(
mqtt_client, mqtt_client,
format_data_to_serialized_json(result), format_data_to_serialized_json(result),
f"calculated/{result.name}", f"measure/{result.name}",
) )
if count == 6: # Every 1 min
LOGGER.info("-- INVERTER -- Send calculated values")
for register in ReadRegister.reg_to_read_calculated:
result = await get_inverter_data(inverter_client, register)
send_data(
mqtt_client,
format_data_to_serialized_json(result),
f"calculated/{result.name}",
)
if count == 30: # Every 5 min if count == 30: # Every 5 min
LOGGER.info("-- INVERTER -- Send status/alarm") LOGGER.info("-- INVERTER -- Send status/alarm")
for register in ReadRegister.reg_to_read_status: for register in ReadRegister.reg_to_read_status:
result = await get_inverter_data(inverter_client, register) result = await get_inverter_data(inverter_client, register)
send_data( send_data(
mqtt_client, mqtt_client,
format_data_to_serialized_json(result), format_data_to_serialized_json(result),
f"status/{result.name}", f"status/{result.name}",
) )
count = 0 count = 0
else: else:
LOGGER.debug("-- INVERTER -- Not Active, No need to read values") LOGGER.debug("-- INVERTER -- Not Active, No need to read values")
count += 1 count += 1
LOGGER.info(f"Sleeping {REQUEST_INTERVAL}") LOGGER.info(f"Sleeping {REQUEST_INTERVAL}")
await asyncio.sleep(REQUEST_INTERVAL) await asyncio.sleep(REQUEST_INTERVAL)
except ReadException as error:
LOGGER.error(f"Can't read register, {ReadRegister.inverter_reg_status}. "
f"Error code: {error}. Sleep for 10 min")
await asyncio.sleep(60) # Sleep 1 min
def send_data( def send_data(