Skip to content

Commit 994c78c

Browse files
committed
v2.1.21
1 parent 36f20f1 commit 994c78c

4 files changed

Lines changed: 14 additions & 5 deletions

File tree

meshtastic_listener/__main__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -465,7 +465,8 @@ def __handle_text_message__(self, packet: dict) -> None:
465465
)
466466

467467
except UnknownCommandError as e:
468-
self.__send_messages__(text=str(e), destinationId=payload.fromId)
468+
# don't advertise that we exist if someone is just testing commands on other nodes
469+
logging.warning(str(e))
469470

470471
if isinstance(response, str):
471472
logging.info(self.__sanitize_string__(f'Replying to {payload.fromId}: {response}'))

meshtastic_listener/commands/cmd_handler.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import inspect
33
from time import time
44
from datetime import timedelta
5+
from statistics import mean
56

67
from meshtastic_listener.data_structures import MessageReceived, NodeHealthCheck
78
from meshtastic_listener.listener_db.listener_db import ListenerDb, Waypoints
@@ -86,12 +87,20 @@ def cmd_traceroute_health(self) -> str:
8687
target_id=node.nodeNum,
8788
lookback_ts=lookback_ts
8889
)
90+
8991
if len(results) == 0:
9092
response += f'{node.shortName}: No traces\n'
9193
else:
94+
hops = []
95+
for r in results:
96+
if r.tracerouteDetails and 'routeBack' in r.tracerouteDetails:
97+
hops.append(len(r.tracerouteDetails.get('routeBack', [])))
98+
avg_hops = round(mean(hops), 2) if len(hops) > 0 else 0
99+
92100
successes = sum(1 for r in results if r.rxTime is not None)
93101
percentage = int((successes / len(results)) * 100)
94-
response += f'{node.shortName}: {successes}/{len(results)} {percentage}%\n'
102+
snr = f'{int(mean(r.snrAvg for r in results if r.snrAvg is not None))}dB SNR' if successes > 0 else ''
103+
response += f'{node.shortName}: {successes}/{len(results)} {percentage}% {snr} {avg_hops} hops\n'
95104
return response.strip()
96105

97106
# def cmd_subscriptions(self, context: MessageReceived) -> str:
@@ -171,6 +180,5 @@ def handle_command(
171180
return self.cmd_help()
172181

173182
case _:
174-
logger.warning(f'Unknown command: {command}')
175183
raise UnknownCommandError(f'Unknown command: {command}')
176184
return None

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "meshtatic_listener"
3-
version = "2.1.20"
3+
version = "2.1.21"
44
description = "A server for connecting to a Meshtastic device and responding to commands."
55
authors = [{ name = "Michael Gillett", email = "51103663+migillett@users.noreply.github.com" }]
66
requires-python = ">=3.10,<3.14"

uv.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)