diff --git a/modules/system.py b/modules/system.py index 68090a9..28990b6 100644 --- a/modules/system.py +++ b/modules/system.py @@ -1120,7 +1120,7 @@ last_alerts = { "wx": {"time": 0, "message": ""}, "volcano": {"time": 0, "message": ""}, } -def should_send_alert(alert_type, new_message, min_interval=60): +def should_send_alert(alert_type, new_message, min_interval=1): now = time.time() last = last_alerts[alert_type] # Only send if message is new or enough time has passed @@ -1141,7 +1141,9 @@ def handleAlertBroadcast(deviceID=1): overdueAlerts = format_overdue_alert() if overdueAlerts: logger.debug("System: Adding overdue checkin to emergency alerts") - if should_send_alert("overdue", overdueAlerts, min_interval=3600): + if should_send_alert("overdue", overdueAlerts): + last_alerts["overdue"]["time"] = time.time() + last_alerts["overdue"]["message"] = overdueAlerts send_message(overdueAlerts, emergency_responder_alert_channel, 0, emergency_responder_alert_interface) # Only allow API call every 20 minutes @@ -1162,7 +1164,6 @@ def handleAlertBroadcast(deviceID=1): if volcanoAlertBroadcastEnabled: volcanoAlert = get_volcano_usgs(latitudeValue, longitudeValue) - # Send alerts using should_send_alert alert_types = [ ("fema", alertFema, ipawsAlertEnabled), ("uk", alertUk, ipawsAlertEnabled), @@ -1172,7 +1173,9 @@ def handleAlertBroadcast(deviceID=1): ] for alert_type, alert_msg, enabled in alert_types: if enabled and alert_msg and NO_ALERTS not in alert_msg and ERROR_FETCHING_DATA not in alert_msg: - if should_send_alert(alert_type, alert_msg, min_interval=1200): + if should_send_alert(alert_type, alert_msg): + last_alerts[alert_type]["time"] = time.time() + last_alerts[alert_type]["message"] = alert_msg send_message(alert_msg, emergency_responder_alert_channel, 0, deviceID) except Exception as e: logger.error(f"System: Error in handleAlertBroadcast: {e}")