added keyboard interupt handling

This commit is contained in:
2026-04-17 02:21:35 +05:30
parent c4dd0a138c
commit ac931feb47

44
main.py
View File

@@ -28,23 +28,27 @@ ntfy_token = os.environ['NTFY_Token']
device_name = os.environ['device_name']
shutdown_timer = int(os.environ['shutdown_timer'])
with serial.Serial(device_name, 115200, timeout=1) as ser:
inverter_offline_counter = 0
while True:
if ser.readline().decode().strip() == "0":
logger.debug("Inverter Online")
inverter_offline_counter = 0
elif inverter_offline_counter >= shutdown_timer:
break
else:
inverter_offline_counter += 1
logger.info(f"Running on UPS reserve, offline for {inverter_offline_counter}s")
logger.info(f"Inverter offline for {shutdown_timer} seconds")
requests.post("https://ntfy.fieryeagle.org/Internet-Alerts",
data="Inverter offline, shutting down".encode(encoding='utf-8'),
headers={
"Title": "Hydrogen running on reserve power",
"Authorization": f"Bearer {ntfy_token}"
}
)
os.system("shutdown now")
try:
with serial.Serial(device_name, 115200, timeout=1) as ser:
inverter_offline_counter = 0
while True:
if ser.readline().decode().strip() == "0":
logger.debug("Inverter Online")
inverter_offline_counter = 0
elif inverter_offline_counter >= shutdown_timer:
break
else:
inverter_offline_counter += 1
logger.info(f"Running on UPS reserve, offline for {inverter_offline_counter}s")
logger.info(f"Inverter offline for {shutdown_timer} seconds")
requests.post("https://ntfy.fieryeagle.org/Internet-Alerts",
data="Inverter offline, shutting down".encode(encoding='utf-8'),
headers={
"Title": "Hydrogen running on reserve power",
"Authorization": f"Bearer {ntfy_token}"
}
)
os.system("shutdown now")
except KeyboardInterrupt:
logger.info("Exiting gracefully")
exit()