diff --git a/config.template b/config.template index 1da8971..8a2e47b 100644 --- a/config.template +++ b/config.template @@ -103,6 +103,8 @@ SentryChannel = 2 SentryHoldoff = 9 # list of ignored nodes numbers ex: 2813308004,4258675309 sentryIgnoreList = +# HighFlying Node alert, if the node is above 2,000 meters +highFlyingAlert = True [bbs] enabled = True diff --git a/modules/settings.py b/modules/settings.py index 3583da4..6f79ba4 100644 --- a/modules/settings.py +++ b/modules/settings.py @@ -235,6 +235,7 @@ try: sentryIgnoreList = config['sentry'].get('sentryIgnoreList', '').split(',') sentry_radius = config['sentry'].getint('SentryRadius', 100) # default 100 meters email_sentry_alerts = config['sentry'].getboolean('emailSentryAlerts', False) # default False + highfly_enabled = config['sentry'].getboolean('highFlyingAlert', True) # default True # location location_enabled = config['location'].getboolean('enabled', True) diff --git a/modules/system.py b/modules/system.py index 79aba54..69ee994 100644 --- a/modules/system.py +++ b/modules/system.py @@ -978,6 +978,13 @@ def consumeMetadata(packet, rxNode=0): for key in keys: positionMetadata[nodeID][key] = position_data.get(key, 0) + + # if altitude is over 2000 send a log and message for high-flying nodes + if position_data.get('altitude', 0) > 2000 and highfly_enabled: + logger.warning(f"System: High Altitude {position_data['altitude']}m on Device: {rxNode} NodeID: {nodeID}") + if antiSpam and nodeID != globals().get(f'myNodeNum{rxNode}'): + send_message(f"High Altitude {position_data['altitude']}m on Device: {rxNode} NodeID: {nodeID}", secure_channel, 0, rxNode) + time.sleep(responseDelay) # Keep the positionMetadata dictionary at a maximum size of 20 if len(positionMetadata) > 20: