Added exeption for all reading
This commit is contained in:
parent
fbe885b92c
commit
289afca88d
72
src/main.py
72
src/main.py
|
|
@ -41,52 +41,52 @@ async def main():
|
|||
status = await inverter_client.get(
|
||||
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 (
|
||||
status.value == rv.DEVICE_STATUS_DEFINITIONS.get(0x0200)
|
||||
or FORCE_GET
|
||||
): # Inverter is active, Get data
|
||||
LOGGER.info("-- INVERTER -- Send measured values")
|
||||
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:
|
||||
if (
|
||||
status.value == rv.DEVICE_STATUS_DEFINITIONS.get(0x0200)
|
||||
or FORCE_GET
|
||||
): # Inverter is active, Get data
|
||||
LOGGER.info("-- INVERTER -- Send measured values")
|
||||
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"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
|
||||
LOGGER.info("-- INVERTER -- Send status/alarm")
|
||||
for register in ReadRegister.reg_to_read_status:
|
||||
result = await get_inverter_data(inverter_client, register)
|
||||
send_data(
|
||||
mqtt_client,
|
||||
format_data_to_serialized_json(result),
|
||||
f"status/{result.name}",
|
||||
)
|
||||
count = 0
|
||||
else:
|
||||
LOGGER.debug("-- INVERTER -- Not Active, No need to read values")
|
||||
if count == 30: # Every 5 min
|
||||
LOGGER.info("-- INVERTER -- Send status/alarm")
|
||||
for register in ReadRegister.reg_to_read_status:
|
||||
result = await get_inverter_data(inverter_client, register)
|
||||
send_data(
|
||||
mqtt_client,
|
||||
format_data_to_serialized_json(result),
|
||||
f"status/{result.name}",
|
||||
)
|
||||
count = 0
|
||||
else:
|
||||
LOGGER.debug("-- INVERTER -- Not Active, No need to read values")
|
||||
|
||||
count += 1
|
||||
count += 1
|
||||
|
||||
LOGGER.info(f"Sleeping {REQUEST_INTERVAL}")
|
||||
await asyncio.sleep(REQUEST_INTERVAL)
|
||||
LOGGER.info(f"Sleeping {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(
|
||||
|
|
|
|||
Loading…
Reference in New Issue