added keyboard interupt handling
This commit is contained in:
44
main.py
44
main.py
@@ -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()
|
||||
Reference in New Issue
Block a user