MeshWatch - Testing and monitoring tool

I created a project called MeshWatch (originally MeshTalk, but that name was already in use). I use this tool to decode the messages being sent amongst the devices in my mesh. Packets are decoded and displayed in real time. There is a test function as well that will send out X messages every Y seconds. This is useful when moving devices around to see if they can still communicate. Each node in the mesh can be displayed along with their distance from the base (the node MeshWatch is attached to).

Feature suggestions are more than welcom.

meshtalk packet keys


Meshtalk help window send message

8 Likes

Does it work on a Mac?

How difficult would be adding a “host” paramenter and feed it to the meshtastic calls (equivalent to meshtastic --host 192.168.1.X parameter)? Would be neat to be able to run over IP besides direct USB connection.

I get

/Library/Frameworks/Python.framework/Versions/3.9/bin/python3: can't find '__main__' module in '/Users/garth/Documents/source/meshtalk'

Replacing line 1482: interface = meshtastic.SerialInterface()
with: interface = meshtastic.TCPInterface("192.168.1.X")

besides is getting a few lines in the Data Packets window with “RAW value not yet suported by DecodePacket function”, seems to work.

Wow, that is really cool. I’ll make a note of that in GitHub as a future enhancement.

As for the “Raw value…” that is an message generated whenever one of the payload packets is encountered. I am pretty sure both an encoded and a plain text value are sent, so it is not like we are missing any data. Something for me to look into of course as time permits.

1 Like

Hey Garth, I have made man updates to the main code. Can you try running from the main repository?

Works good now on my M1 Mac mini, connected to a RAK device, T-Beam and T-Echo devices. Logs always crashes for me.

That is great to hear! Any feedback is always welcome.

emoji receive well, but I can’t send them :grinning:

For those having stability issues, I happened to trip over this:

curses — Terminal handling for character-cell displays — Python 3.10.0 documentation

A bug in ncurses, the backend for this Python module, can cause SegFaults when resizing windows. This is fixed in ncurses-6.1-20190511. If you are stuck with an earlier ncurses, you can avoid triggering this if you do not call addstr() with a str that has embedded newlines. Instead, call addstr() separately for each line.

1 Like

There have been some breaking changes to meshtastic python, I’ve added a PR:

1 Like

Hi all !
I’m doing my first tests between 2 ttgo T-beam modules.

Test 1
If the Tbeam “A” connected in usb sends meshtastic --sendtext hello then the Tbeam “B” connected in bluetooth with android receives my message well.

Test 2
I want to use the “MeshWatch” script.
This script launches well but dies quickly with the following error:
python3 meshwatch.py -s “test”


ERROR - Function ( main ) has encountered an error.
module ‘meshtastic’ has no attribute ‘SerialInterface’

TRACE
Traceback (most recent call last):
File “meshwatch.py”, line 1481, in main
interface = meshtastic.SerialInterface()
AttributeError: module ‘meshtastic’ has no attribute ‘SerialInterface’

Additonal info: Main function


My computer knowledge is so limited that the information given is not enough for me to understand … which I did not do (or did badly!)
Thank you very much for your help :slight_smile:

ps : I use Ubuntu 18.04

I’m getting the same thing here with Mint 19.3 and Python 3.6.

See PlumRugOfDoom’s post directly above for the fix

1 Like

you need to fix two lines of code in meshwatch.py:

or just download it from my repo instead:

1 Like

Thanks for your return @PlumRugOfDoom :+1:

Thanks a lot @Toby1234 :cowboy_hat_face:

Nice, programm. but now we have version 2.0.10 currently install. there also some new traceroute functions, and other stuff. maybe it’is possible to create real network analyse tool, what can show problems … with some node …