handled offline time with timer instead of loop counts

This commit is contained in:
2026-04-18 21:47:00 +05:30
parent 7bfbde6d2d
commit d236804b69

14
main.py
View File

@@ -4,6 +4,7 @@ import os
from dotenv import load_dotenv from dotenv import load_dotenv
import logging import logging
import signal import signal
import time
load_dotenv() load_dotenv()
@@ -43,8 +44,8 @@ signal.signal(signal.SIGINT, handle_shutdown)
def main(): def main():
with serial.Serial(device_name, 115200, timeout=1) as ser: with serial.Serial(device_name, 115200, timeout=1) as ser:
inverter_offline_counter = 0
shutdown_triggered = False shutdown_triggered = False
inverter_online = True
while running: while running:
line = ser.readline().decode(errors="ignore").strip() line = ser.readline().decode(errors="ignore").strip()
if line == "": if line == "":
@@ -52,13 +53,16 @@ def main():
continue continue
elif line == "0": elif line == "0":
logger.debug("Inverter Online") logger.debug("Inverter Online")
inverter_offline_counter = 0 inverter_online = True
elif inverter_offline_counter >= shutdown_timer: elif not inverter_online:
if time.time() - last_online > shutdown_timer:
shutdown_triggered = True shutdown_triggered = True
break break
else: else:
inverter_offline_counter += 1 if inverter_online:
logger.info(f"Running on UPS reserve, offline for {inverter_offline_counter}s") inverter_online = False
last_online = time.time()
logger.info(f"Running on UPS reserve, offline for {time.time()-last_online}s")
if shutdown_triggered: if shutdown_triggered:
logger.info(f"Inverter offline for {shutdown_timer} seconds") logger.info(f"Inverter offline for {shutdown_timer} seconds")