#meshing-around BBS/utility BOT
1 messages · Page 5 of 1
2025-01-01 17:48:55,372 | ERROR | System: communicating with interface1, trying to reconnect: Timed out waiting for an acknowledgment
2025-01-01 17:48:55,373 | ERROR | System: closing interface1: [Errno 32] Broken pipe
If the API can’t hold the pipe I can’t either
Something is funky
4400? Something like that
You see it on logs at boot of meshD
Did you use localhost as the IP?
Not a flapping WiFi ip
Sorry, I'm wrapping up for tonight.
You will need to install as a venv or —break-system-packages
The command to install Python bits is pip install -r requirements.txt
Are you on a pi?
yesh I'm a pi4b. I've got it going somewhat when I send a text or some output - I loose connectivity on the phone app. a reboot brings everything back up again. I've snipit's of code in the scripts to get this far. Learning alot!
ls config.ini CONTRIBUTING.md entrypoint.sh launch.sh mesh_bot.py path requirements.txt config.old data etc LICENSE modules pong_bot.py runShell.sh config.template Dockerfile install.sh logs news.txt README.md sysEnv.sh
sudo apt install mesh_bot.py Reading package lists... Done Building dependency tree... Done Reading state information... Done E: Unable to locate package mesh_bot.py
`pip install -r requirements.txt
error: externally-managed-environment
× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
python3-xyz, where xyz is the package you are trying to
install.`
python and pip work and are up to date.
If you install on a pi you will need to choose the option given in the install.sh to use venv or —break-system-packages
Linux is the os, python is the core and pip installs library modules for use by applications like mesh-bot
Pip install demands override when not using a venv in raspos to keep things from going crazy
This environment is externally managed ╰─> To install Python packages system-wide, try apt install python3-xyz, where xyz is the package you are trying to install. If you wish to install a non-Debian-packaged Python package, create a virtual environment using python3 -m venv path/to/venv. Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make sure you have python3-full installed. For more information visit http://rptl.io/venv note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages. hint: See PEP 668 for the detailed specification. Which bot do you want to install as a service? Pong Mesh or None? (pong/mesh/n) Pong bot is a simple bot for network testing, Mesh bot is a more complex bot more suited for meshing around Mesh bot Do you want to add a user (meshbot) no login, for the bot? (y/n)yes service files updated ./install.sh: line 197: [: too many arguments ./install.sh: line 205: [: too many arguments Config file updated for embedded Installation complete!
i get this when I used install.sh
sudo apt install pipx && pipx install "meshtastic[cli]"
this worked...
I can run commands. try and send text. see my node etc
meshtastic -s --info Connected to radio Owner: wh6gxzmesh (gxzm) My info: { "myNodeNum": 2734752213
ran this command it worked.
python3 -m venv path/to/venv.
#path/to/venv/bin/python -bash: path/to/venv/bin/python: Is a directory
sudo lheard sudo: lheard: command not found
I think I found what I need.
pip install -U -r requirements.txt --break-system-packages
This install line worked. Still working with other issues...
like if I run a command - then I loose the phone app connection to the node.
I seem to be hitting the "wall" with this vritual env. i'm running a desktop ver- of pi os. allstar 3.0 and i'm thinking of running a lite ver of pi and just your BOT- a lot of work but, i'm playing
sudo ./launch.sh Virtual environment not found, this tool just launches the .py in venv
Ah, are you trying to connect to the node that the bot is using too?
Same rules apply with the bot as with the phones and other app/client interfaces - only one at a time
The all star OS might be locked down or not have all the packages. I will get a video of a good install so you can compare, I will dig around for an Allstar image see if it’s hard
As mentioned by Tom it’s one client only (so you need to dedicate a node to the bot)
If you can launch meshbot
./mesh_bot.py
Or python mesh_bot.py
@heady raven
here is a typical install - this uses venv
this is what it should look like
the error at the end is because I have no node on that serial port
but shows the bot starts and its working
I saw multiple allstar projects? if you can link me to your image file I can see if the bot will hack into it
Oh sorry I just wiped it out so I can install an operating system that doesn’t have a desktop environment and then I’m going to install the bot etc. first and then maybe all star. I had All-Star running for giggles. I’m guessing there are some library etc. especially it just didn’t get a virtual environment going
Cool just looked at your video. Yeah, I achieve that through a long path but the virtual environment in the link was my issue. I’ll keep you updated now that I’ve done the install. I work through this faster.
Sorry, voice texting. Poor grandma. 🙃 haha
Send screenshots or errors if you get stuck. And yes installing venv and geopi/via pip. Can cause big hiccups on some systems like all star. They package it light and tight
The installer validated works in diet pi
I will and mahalo for the utility bot 🙃 I’m learning a lot and enjoying myself
Awesome! Your welcome! 🤙
pi os lite- up to this point the install went with smiles...
lol
you broke it by typing "Mesh bot"
@gentle kestrel you should prob change those if statements to something like if [[ $bot =~ "mesh" ]]
or if [[ $(echo ${bot} | grep -i mesh) ]]
I tried it without the typing the "mesh bot" the earlier error. the virtual env... 🤪
Do you want to install the bot in a python virtual environment? (y/n)yes Skipping virtual environment... Are you on Raspberry Pi(debian/ubuntu)? should we add --break-system-packages to the pip install command? (y/n)yes error: externally-managed-environment × This environment is externally managed ╰─> To install Python packages system-wide, try apt install python3-xyz, where xyz is the package you are trying to install.
thats not an error, thats how i think all linux distros do it now
you should be using the venv
/meshing-around/venv $ ls bin include lib lib64 pyvenv.cfg
yup
anything that gets pip installed goes in there
basically if you install meshing-around with a venv, and also install someotherpythonprogram with a venv, theyll be separate/compartmentalized
that way if meshing requires pyephem 0.9.2 and someotherpythonprogram requires pyephem 0.9.0 and they changed commands in that update, it wont break one of those python programs
meshing can "use" that venv and the stuff inside by sourcing meshing-around/venv/bin/activate to pick it up
sudo ./mesh_bot.py Traceback (most recent call last): File "/home/wh6gxz/meshing-around/./mesh_bot.py", line 10, in <module> from modules.system import * File "/home/wh6gxz/meshing-around/modules/system.py", line 4, in <module> import meshtastic.serial_interface #pip install meshtastic ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ModuleNotFoundError: No module named 'meshtastic'
meshtastic usage: meshtastic
meshtasit is working...
And I just put a patch in for what I’m calling POSIX, compliance vs my Python like batch statements catching yes or y now
Module not found says the CLI isn’t working
Or venv is bad
Did you launch venv with launch.sh
i think he didnt do the venv on install, scrolling up
dont think he went back and redid it, so its global
Also appears to be package managing a lot
Dad jokes isn’t in a deb I don’t think
Why I don’t package deployment
I stick with pip for now
maybe the option to not use a venv should be removed, and the process should just be python3 -m venv meshing-around && cd meshing-around && pip3 install -r requirements.txt and then proceed
Try a new git pull I corrected some inputs for different bash use
Yea I may do that
to be safe you may also want to catch the full path of the venv dir so you can invoke it via systemctl
in case the user gets jazzy and puts the venv somewhere weird
It should be
idk if you do this already or if its up to the user to invoke
if venv is in ~ and meshing-around is in /opt or some jazz?
actually if you create it in the script then its irrelevant
carry on
Well funny you say it ```bash
check if we are in /opt/meshing-around
if [ $program_path != "/opt/meshing-around" ]; then
printf "\nIt is suggested to project path to /opt/meshing-around\n"
printf "Do you want to move the project to /opt/meshing-around? (y/n)"
read move
if [ "$move" = "y" ] || [ "$move" = "yes" ]; then
sudo mv $program_path /opt/meshing-around
cd /opt/meshing-around
printf "\nProject moved to /opt/meshing-around. re-run the installer\n"
exit 0
fi
fi
See how GHZ process flows now
I wasn’t catching yes only y
It blew past venv install
Like you said default the other way to venv
ah yeah for catching input i always use grep as i dont trust the user to be literal
Should have done that yea
if [[ $(echo ${reply} | grep -i "^y") ]]
that way if theyre being cheeky and type "ye" itll still work
or even yasssss
and if you catch for n itll get no to nuu to nyet
oh yeah that's already playing better....
Do you want to add a user (meshbot) no login, for the bot? (y/n)yes useradd: user 'meshbot' already exists Added user meshbot with no home directory Added meshbot to dialout, tty, and bluetooth groups Permissions set for meshbot on logs and data directories service files updated ./install.sh: line 197: [: too many arguments ./install.sh: line 205: [: too many arguments Config file updated for embedded Installation complete!
what did you reply with when it asked if you wanted the mesh bot
Well looks like it should run now
because its a simple if statement so i wonder if you have a space in your input or something
I will grep it as well
i did... and...
sudo ./mesh_bot.py Traceback (most recent call last): File "/opt/meshing-around/./mesh_bot.py", line 10, in <module> from modules.system import * File "/opt/meshing-around/modules/system.py", line 4, in <module> import meshtastic.serial_interface #pip install meshtastic ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ModuleNotFoundError: No module named 'meshtastic'
$bot no good
"${bot}" good
Try launch.sh
yup because it failed with your reply for mesh bot and didnt run the setup fully
sudo ./launch.sh
Please provide a bot to launch (pong/mesh) or a report to generate (html/html5)
@gentle kestrel sent a PR
changed all the variable checks
wait
missed one
there ya go
Nice thanks @odd void
Felt lucky haven’t heard from @heady raven for a second and pressed a release
What's Changed
new feature, external bash script access by @SpudGunMan in #98
sysenv new command using bash for enviroment data
Update install.sh by @joshbowyer in #101 and also bugwork by WH6...
Still stuck on few things. Mahalo for all your awesome support. I've gotten further.
This your first rodeo with venv?
You need to be in the venv to use it
Cat launch.sh
It hopefully will help shed some light on what is going on
You’re running a virtual python stack in the “shell” rooted in venv folder in the mesh-bot project created by install.sh
So use the venv you need to activate (sets the py environment to this new venv path)
You will see your shell prompt change if you do it manually
The reason you see -break system packages errors
Debian has sort of said, use venv now please
It makes for a more stable os over all
If you are embedded in the classic definition on luckfox or a pi, venv isn’t as needed
I don’t like remembering to launch /activate
venv and docker allow some isolation from the os
sudo ./launch.sh Please provide a bot to launch (pong/mesh) or a report to generate (html/html5) wh6gxz@wh6gxzmesh:/opt/meshing-around $ sudo ./mesh_bot.py Traceback (most recent call last): File "/opt/meshing-around/./mesh_bot.py", line 10, in <module> from modules.system import * File "/opt/meshing-around/modules/system.py", line 4, in <module> import meshtastic.serial_interface #pip install meshtastic ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ModuleNotFoundError: No module named 'meshtastic'
Is there and running...
/opt/meshing-around/venv/bin $ ls activate activate.fish config.ini mesh-analysis mesh-tunnel pip pip3.11 pyserial-ports python3 tabulate activate.csh Activate.ps1 dadjokes meshtastic normalizer pip3 pyserial-miniterm python python3.11
You ran it directly again
The launch command is missing $1
Then you ran meshbot direct
To enter venv source venv/bin/activate
you need to stay in venv while you test
Or remeber to ./launch.sh mesh
Two words
.
I just pushed a reminder error
Also config.ini now has sysloglevel = DEBUG
Jan 02 20:06:19 wh6gxzmesh systemd[1]: mesh_bot.service: Start request repeated too quickly. Jan 02 20:06:19 wh6gxzmesh systemd[1]: mesh_bot.service: Failed with result 'exit-code'. Jan 02 20:06:19 wh6gxzmesh systemd[1]: Failed to start mesh_bot.service - MESH-BOT.
sudo journalctl -u mesh_bot.service
Got a few more install improvements in as well as some errors for all this
mahalo the updates and logging!
Don’t you have the account the service is running as member of tty or dialout to access the serial
yeah - i'm the user... odd
I don’t know error 111 off hand but I know it happened as the bot was trying to access it the first time
And any errors thrown here are normally permissions or config.ini errors
You can look in mesh-bot/logs
There is a only the bot log and I assume it crashes 111 interface as well
It may have longer lines
sudo ./launch.sh mesh & [1] 2810 wh6gxz@wh6gxzmesh:/opt/meshing-around $ 2025-01-03 01:01:33,316 | DEBUG | System: Creating new data/bbsdb.pkl 2025-01-03 01:01:33,316 | DEBUG | System: Creating new data/bbsdm.pkl 2025-01-03 01:01:33,395 | DEBUG | System: Initializing Interface1 2025-01-03 01:01:33,397 | CRITICAL | System: script abort. Initializing Interface1 [Errno 111] Connection refused [1]+ Done sudo ./launch.sh mesh
Looks like permissions issues
Connection refused isn’t my code saying that, but meshtastic API
I don’t know what this command was for sudo ./launch.sh mesh & [1] 2810 or where it came from but it’s not me
Are you running the installer? You don’t need to sudo everything
@gentle kestrel maybe this should all be handled by the install.sh script without asking the user
create the venv and source activate
Yea just need to press y a few times
I tested on a diet pi and raspos it lights right up
There is other custom work being done, the script will handle it all and load up meshbot user
Variants are embedded where dependency are all external
It just sets up configs
Next is install local
And finally the most common venv
New installer even gives you notes for documentation of service copy and paste into a run book
I've reinstalled this more times than I should 🤪 I often get the sames issue. PIP, Meshtastic, BOT error. Having t run sudo for most things...
wh6gxz@wh6gxzmesh:~ $ sudo systemctl daemon-reload wh6gxz@wh6gxzmesh:~ $ sudo systemctl enable mesh_bot.service wh6gxz@wh6gxzmesh:~ $ sudo systemctl status mesh_bot.service × mesh_bot.service - MESH-BOT Loaded: loaded (/etc/systemd/system/mesh_bot.service; enabled; preset: enabled) Active: failed (Result: exit-code) since Fri 2025-01-03 06:54:04 HST; 31min ago Duration: 367ms Main PID: 615 (code=exited, status=0/SUCCESS) CPU: 347ms
Jan 03 06:54:04 wh6gxzmesh systemd[1]: mesh_bot.service: Scheduled restart job, restart counter is at 5.
Jan 03 06:54:04 wh6gxzmesh systemd[1]: Stopped mesh_bot.service - MESH-BOT. Jan 03 06:54:04 wh6gxzmesh systemd[1]: mesh_bot.service: Start request repeated too quickly. Jan 03 06:54:04 wh6gxzmesh systemd[1]: mesh_bot.service: Failed with result 'exit-code'. Jan 03 06:54:04 wh6gxzmesh systemd[1]: Failed to start mesh_bot.service - MESH-BOT. Jan 03 07:24:56 wh6gxzmesh systemd[1]: /etc/systemd/system/mesh_bot.service:22: Failed to parse service type, ignoring: notify #try si> Jan 03 07:25:15 wh6gxzmesh systemd[1]: /etc/systemd/system/mesh_bot.service:22: Failed to parse service type, ignori
What’s the OS, still another embedded system? Or vanilla
chmod 777
I'm actually pretty good at this.. pi lite - it installs without "issue" running it is another story.
Did you say yes to stuff and let it set up a meshbot user
no chmod - i'm the only user.
yes.. let me show you what it does...
#./install.sh ######################## Meshing Around Installer ######################## This script will try and install the Meshing Around Bot and its dependencies.Installer works best in raspian/debian/ubuntu, if there is a problem, try running the installer again. Checking for dependencies... Install path not writable, try running the installer with sudo
#sudo ./install.sh ######################## Meshing Around Installer ######################## This script will try and install the Meshing Around Bot and its dependencies.Installer works best in raspian/debian/ubuntu, if there is a problem, try running the installer again. Checking for dependencies... Are You installing into an embedded system like a luckfox? (y/n)
Without throwing bunch of data- the result is this...
service files updated to start mesh bot service: systemctl start mesh_bot Config file updated for embedded To install the mesh_bot service and keep notes, copy and paste the following commands: sudo cp /opt/meshing-around/mesh_bot.service /etc/systemd/system/mesh_bot.service sudo systemctl daemon-reload sudo systemctl enable mesh_bot.service sudo systemctl start mesh_bot.service sudo systemctl status mesh_bot.service To see logs and stop the service: sudo journalctl -u mesh_bot.service sudo systemctl stop mesh_bot.service sudo systemctl disable mesh_bot.service Installation complete! wh6gxz@wh6gxzmesh:/opt/meshing-around $
sudo systemctl status mesh_bot.service × mesh_bot.service - MESH-BOT Loaded: loaded (/etc/systemd/system/mesh_bot.service; enabled; preset: enabled) Active: failed (Result: exit-code) since Fri 2025-01-03 06:54:04 HST; 41min ago Duration: 367ms Main PID: 615 (code=exited, status=0/SUCCESS) CPU: 347ms Jan 03 06:54:04 wh6gxzmesh systemd[1]: mesh_bot.service: Scheduled restart job, restart counter is at 5. Jan 03 06:54:04 wh6gxzmesh systemd[1]: Stopped mesh_bot.service - MESH-BOT. Jan 03 06:54:04 wh6gxzmesh systemd[1]: mesh_bot.service: Start request repeated too quickly. Jan 03 06:54:04 wh6gxzmesh systemd[1]: mesh_bot.service: Failed with result 'exit-code'. Jan 03 06:54:04 wh6gxzmesh systemd[1]: Failed to start mesh_bot.service - MESH-BOT. Jan 03 07:24:56 wh6gxzmesh systemd[1]: /etc/systemd/system/mesh_bot.service:22: Failed to parse service type, ignoring: notify #try si> Jan 03 07:25:15 wh6gxzmesh systemd[1]: /etc/systemd/system/mesh_bot.service
can you run sudo journalctl -u mesh_bot
-- Boot 344f46248bd04f9bb5b8bc0b104cb112 --
Jan 03 01:12:33 wh6gxzmesh systemd[1]: Started mesh_bot.service - MESH-BOT.
Jan 03 01:12:34 wh6gxzmesh bash[577]: Traceback (most recent call last):
Jan 03 01:12:34 wh6gxzmesh bash[577]: File "/opt/meshing-around/mesh_bot.py", line 14, in <module>
Jan 03 01:12:34 wh6gxzmesh bash[577]: from modules.log import *
Jan 03 01:12:34 wh6gxzmesh bash[577]: File "/opt/meshing-around/modules/log.py", line 72, in <module>
Jan 03 01:12:34 wh6gxzmesh bash[577]: file_handler_sys = TimedRotatingFileHandler('logs/meshbot.log', when='midnight', backupCount>
Jan 03 01:12:34 wh6gxzmesh bash[577]:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^>
Jan 03 01:12:34 wh6gxzmesh bash[577]: File "/usr/lib/python3.11/logging/handlers.py", line 214, in init
Jan 03 01:12:34 wh6gxzmesh bash[577]: BaseRotatingHandler.init(self, filename, 'a', encoding=encoding,
Jan 03 01:12:34 wh6gxzmesh bash[577]: File "/usr/lib/python3.11/logging/handlers.py", line 58, in init
Jan 03 01:12:34 wh6gxzmesh bash[577]: logging.FileHandler.init(self, filename, mode=mode,
Jan 03 01:12:34 wh6gxzmesh bash[577]: File "/usr/lib/python3.11/logging/init.py", line 1181, in init
Jan 03 01:12:34 wh6gxzmesh bash[577]: StreamHandler.init(self, self._open())
Jan 03 01:12:34 wh6gxzmesh bash[577]: ^^^^^^^^^^^^
Jan 03 01:12:34 wh6gxzmesh bash[577]: File "/usr/lib/python3.11/logging/init.py", line 1213, in _open
Jan 03 01:12:34 wh6gxzmesh bash[577]: return open_func(self.baseFilename, self.mode,
Jan 03 01:12:34 wh6gxzmesh bash[577]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Jan 03 01:12:34 wh6gxzmesh bash[577]: PermissionError: [Errno 13] Permission denied: '/opt/meshing-around/logs/meshbot.log'
Jan 03 01:12:34 wh6gxzmesh systemd[1]: mesh_bot.service: Control process exited, code=exited, status=1/FAILURE
Jan 03 01:12:34 wh6gxzmesh systemd[1]: mesh_bot.service: Failed with result 'exit-code'.
Jan 03 01:12:35 wh6gxzmesh systemd[1]: mesh_bot.service: Scheduled restart job, restart counter is at 1.
lines 1-26
long file sorry
4 or 5 clean installs...
This is the only way I could get meshtastic and the cli working...
Using pipx as an alternative to pip3 if externally-managed-environment error is encountered sudo apt install pipx && pipx install "meshtastic[cli]" If using pipx it may be necessary to update $PATH by running: pipx ensurepath
externally-managed-environment error is encountered... the error that dogs me the most...
./launch.sh
Please provide a bot to launch (pong/mesh) or a report to generate (html/html5)
./mesh_bot.py
Traceback (most recent call last): File "/opt/meshing-around/./mesh_bot.py", line 14, in <module> from modules.log import * File "/opt/meshing-around/modules/log.py", line 72, in <module> file_handler_sys = TimedRotatingFileHandler('logs/meshbot.log', when='midnight', backupCount=log_backup_count) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/logging/handlers.py", line 214, in __init__ BaseRotatingHandler.__init__(self, filename, 'a', encoding=encoding, File "/usr/lib/python3.11/logging/handlers.py", line 58, in __init__ logging.FileHandler.__init__(self, filename, mode=mode, File "/usr/lib/python3.11/logging/__init__.py", line 1181, in __init__ StreamHandler.__init__(self, self._open()) ^^^^^^^^^^^^ File "/usr/lib/python3.11/logging/__init__.py", line 1213, in _open return open_func(self.baseFilename, self.mode, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ PermissionError: [Errno 13] Permission denied: '/opt/meshing-around/logs/meshbot.log' wh6gxz@wh6gxzmesh:/opt/meshing-around $
the big offender
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
PermissionError: [Errno 13] Permission denied: '/opt/meshing-around/logs/meshbot.log'
wh6gxz@wh6gxzmesh:/opt/meshing-around $
Ironically I've gotten pretty fast at the install... the directions work etc.. can go from 0 to hero in maybe a 1/2hr... 
I feel like you are inflicting pain on yourself, and not following the suggestions offered here. I hope that I'm wrong.
- Start over using a Debian based OS that isn't a light version of anything on your Raspberry Pi. The docker version is using a base of Debian Bookworm, but Ubuntu should also be fine so that would be the most recommended.
- Run the install script as documented in the repo at https://github.com/SpudGunMan/meshing-around. You should allow it to create a user for security reasons. Don't use sudo unless the documentation calls for it.
- Launch it using the launch.sh script and add an argument to call the specific bot you want. I'm assuming in this case it is the mesh bot, so use
./launch.sh meshwithout quotes.
@gentle kestrel please correct me where I'm wrong. I run mine from docker and haven't looked back.
I have followed that url faithfully done that...
maybe docker version 🤪
yeah I follwed those to the "t" a few times. Didn't install the docker ver- ran sudo only when there was no other way...
This is the error: PermissionError: [Errno 13] Permission denied: '/opt/meshing-around/logs/meshbot.log'
its in all of your log output
the install.sh script probably needs to ensure permissions are set correctly for /opt/meshing-around
can you do a sudo ls -l /opt/meshing-around real quick for me
yeah I think the permisions get foofed somewhere.
sudo ls -l /opt/meshing-around
total 240
-rw-r--r-- 1 root root 6896 Jan 3 07:33 config.ini
-rw-r--r-- 1 root root 6901 Jan 3 01:26 config.old
-rw-r--r-- 1 root root 6911 Jan 3 00:40 config.template
-rw-r--r-- 1 root root 118 Jan 3 00:40 CONTRIBUTING.md
drwxr-xr-x 2 meshbot meshbot 4096 Jan 3 01:01 data
-rw-r--r-- 1 root root 640 Jan 3 00:40 Dockerfile
-rw-r--r-- 1 root root 233 Jan 3 00:40 entrypoint.sh
drwxr-xr-x 3 root root 4096 Jan 3 07:33 etc
-rwxr-xr-x 1 root root 10693 Jan 3 00:40 install.sh
-rwxr-xr-x 1 root root 807 Jan 3 00:40 launch.sh
-rw-r--r-- 1 root root 35148 Jan 3 00:40 LICENSE
drwxr-xr-x 2 meshbot meshbot 4096 Jan 3 01:01 logs
-rwxr-xr-x 1 root root 67007 Jan 3 00:40 mesh_bot.py
drwxr-xr-x 4 root root 4096 Jan 3 01:01 modules
-rw-r--r-- 1 root root 25 Jan 3 00:40 news.txt
-rwxr-xr-x 1 root root 20682 Jan 3 00:40 pong_bot.py
-rw-r--r-- 1 root root 23683 Jan 3 00:40 README.md
-rw-r--r-- 1 root root 124 Jan 3 00:40 requirements.txt
-rw-r--r-- 1 root root 182 Jan 3 00:40 runShell.sh
-rw-r--r-- 1 root root 1204 Jan 3 00:40 sysEnv.sh
drwxr-xr-x 5 root root 4096 Jan 3 00:41 venv
huh its all root
except meshbot
@gentle kestrel these should all be meshbot:meshbot right?
I don't I saw a "chown" "chmod" in the script... looked through most of them... took awhile.
sudo chown -R meshbot. /opt/meshing-around
chown: warning: '.' should be ':': ‘meshbot.’
sudo ls -l /opt/meshing-around
total 240
-rw-r--r-- 1 meshbot meshbot 6896 Jan 3 07:33 config.ini
-rw-r--r-- 1 meshbot meshbot 6901 Jan 3 01:26 config.old
-rw-r--r-- 1 meshbot meshbot 6911 Jan 3 00:40 config.template
-rw-r--r-- 1 meshbot meshbot 118 Jan 3 00:40 CONTRIBUTING.md
drwxr-xr-x 2 meshbot meshbot 4096 Jan 3 01:01 data
-rw-r--r-- 1 meshbot meshbot 640 Jan 3 00:40 Dockerfile
-rw-r--r-- 1 meshbot meshbot 233 Jan 3 00:40 entrypoint.sh
drwxr-xr-x 3 meshbot meshbot 4096 Jan 3 07:33 etc
-rwxr-xr-x 1 meshbot meshbot 10693 Jan 3 00:40 install.sh
-rwxr-xr-x 1 meshbot meshbot 807 Jan 3 00:40 launch.sh
-rw-r--r-- 1 meshbot meshbot 35148 Jan 3 00:40 LICENSE
drwxr-xr-x 2 meshbot meshbot 4096 Jan 3 01:01 logs
-rwxr-xr-x 1 meshbot meshbot 67007 Jan 3 00:40 mesh_bot.py
drwxr-xr-x 4 meshbot meshbot 4096 Jan 3 01:01 modules
-rw-r--r-- 1 meshbot meshbot 25 Jan 3 00:40 news.txt
-rwxr-xr-x 1 meshbot meshbot 20682 Jan 3 00:40 pong_bot.py
-rw-r--r-- 1 meshbot meshbot 23683 Jan 3 00:40 README.md
-rw-r--r-- 1 meshbot meshbot 124 Jan 3 00:40 requirements.txt
-rw-r--r-- 1 meshbot meshbot 182 Jan 3 00:40 runShell.sh
-rw-r--r-- 1 meshbot meshbot 1204 Jan 3 00:40 sysEnv.sh
drwxr-xr-x 5 meshbot meshbot 4096 Jan 3 00:41 venv
thats fine, idk why bash whines about that syntax but its valid
try restarting the service now
`systemctl status mesh_bot.service
× mesh_bot.service - MESH-BOT
Loaded: loaded (/etc/systemd/system/mesh_bot.service; enabled; preset: enabled)
Active: failed (Result: exit-code) since Fri 2025-01-03 08:05:57 HST; 1min 39s ago
Duration: 1.066s
Process: 1117 ExecStart=/usr/bin/bash launch.sh mesh (code=exited, status=0/SUCCESS)
Process: 1121 ExecStop=pkill -f mesh_bot.py (code=exited, status=1/FAILURE)
Main PID: 1117 (code=exited, status=0/SUCCESS)
CPU: 1.072s
Jan 03 08:05:57 wh6gxzmesh systemd[1]: mesh_bot.service: Scheduled restart job, restart counter is at 5.
Jan 03 08:05:57 wh6gxzmesh systemd[1]: Stopped mesh_bot.service - MESH-BOT.
Jan 03 08:05:57 wh6gxzmesh systemd[1]: mesh_bot.service: Consumed 1.072s CPU time.
Jan 03 08:05:57 wh6gxzmesh systemd[1]: mesh_bot.service: Start request repeated too quickly.
Jan 03 08:05:57 wh6gxzmesh systemd[1]: mesh_bot.service: Failed with result 'exit-code'.
Jan 03 08:05:57 wh6gxzmesh systemd[1]: Failed to start mesh_bot.service - MESH-BOT.`
Jan 03 08:08:27 wh6gxzmesh systemd[1]: Started mesh_bot.service - MESH-BOT. Jan 03 08:08:27 wh6gxzmesh bash[654]: 2025-01-03 08:08:27,981 | DEBUG | System: Initializing Interface1 Jan 03 08:08:27 wh6gxzmesh bash[654]: 2025-01-03 08:08:27,982 | CRITICAL | System: script abort. Initializing Interface1 [Errno 111] C> Jan 03 08:08:28 wh6gxzmesh systemd[1]: mesh_bot.service: Control process exited, code=exited, status=1/FAILURE Jan 03 08:08:28 wh6gxzmesh systemd[1]: mesh_bot.service: Failed with result 'exit-code'. Jan 03 08:08:28 wh6gxzmesh systemd[1]: mesh_bot.service: Consumed 1.028s CPU time. Jan 03 08:08:28 wh6gxzmesh systemd[1]: mesh_bot.service: Scheduled restart job, restart counter is at 4. Jan 03 08:08:28 wh6gxzmesh systemd[1]: Stopped mesh_bot.service - MESH-BOT. Jan 03 08:08:28 wh6gxzmesh systemd[1]: mesh_bot.service: Consumed 1.028s CPU time. Jan 03 08:08:28 wh6gxzmesh systemd[1]: Started mesh_bot.service - MESH-BOT. Jan 03 08:08:29 wh6gxzmesh bash[659]: 2025-01-03 08:08:29,412 | DEBUG | System: Initializing Interface1 Jan 03 08:08:29 wh6gxzmesh bash[659]: 2025-01-03 08:08:29,414 | CRITICAL | System: script abort. Initializing Interface1 [Errno 111] C> Jan 03 08:08:29 wh6gxzmesh systemd[1]: mesh_bot.service: Control process exited, code=exited, status=1/FAILURE
systemctl status mesh_bot.service
don't need sudo
do sudo journalctl -u mesh_bot again now
-- Boot 344f46248bd04f9bb5b8bc0b104cb112 --
Jan 03 01:12:33 wh6gxzmesh systemd[1]: Started mesh_bot.service - MESH-BOT.
Jan 03 01:12:34 wh6gxzmesh bash[577]: Traceback (most recent call last):
Jan 03 01:12:34 wh6gxzmesh bash[577]: File "/opt/meshing-around/mesh_bot.py", line 14, in <module>
Jan 03 01:12:34 wh6gxzmesh bash[577]: from modules.log import *
Jan 03 01:12:34 wh6gxzmesh bash[577]: File "/opt/meshing-around/modules/log.py", line 72, in <module>
Jan 03 01:12:34 wh6gxzmesh bash[577]: file_handler_sys = TimedRotatingFileHandler('logs/meshbot.log', when='midnight', backupCount>
Jan 03 01:12:34 wh6gxzmesh bash[577]:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^>
Jan 03 01:12:34 wh6gxzmesh bash[577]: File "/usr/lib/python3.11/logging/handlers.py", line 214, in init
Jan 03 01:12:34 wh6gxzmesh bash[577]: BaseRotatingHandler.init(self, filename, 'a', encoding=encoding,
Jan 03 01:12:34 wh6gxzmesh bash[577]: File "/usr/lib/python3.11/logging/handlers.py", line 58, in init
Jan 03 01:12:34 wh6gxzmesh bash[577]: logging.FileHandler.init(self, filename, mode=mode,
Jan 03 01:12:34 wh6gxzmesh bash[577]: File "/usr/lib/python3.11/logging/init.py", line 1181, in init
Jan 03 01:12:34 wh6gxzmesh bash[577]: StreamHandler.init(self, self._open())
Jan 03 01:12:34 wh6gxzmesh bash[577]: ^^^^^^^^^^^^
Jan 03 01:12:34 wh6gxzmesh bash[577]: File "/usr/lib/python3.11/logging/init.py", line 1213, in _open
Jan 03 01:12:34 wh6gxzmesh bash[577]: return open_func(self.baseFilename, self.mode,
Jan 03 01:12:34 wh6gxzmesh bash[577]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Jan 03 01:12:34 wh6gxzmesh bash[577]: PermissionError: [Errno 13] Permission denied: '/opt/meshing-around/logs/meshbot.log'
Jan 03 01:12:34 wh6gxzmesh systemd[1]: mesh_bot.service: Control process exited, code=exited, status=1/FAILURE
Jan 03 01:12:34 wh6gxzmesh systemd[1]: mesh_bot.service: Failed with result 'exit-code'.
Jan 03 01:12:35 wh6gxzmesh systemd[1]: mesh_bot.service: Scheduled restart job, restart counter is at 1.
DOE!
ok same error lol, run sudo ls -l /opt/meshing-around/logs/meshbot.log
its probably not writable
sudo ls -l /opt/meshing-around/logs/meshbot.log
-rw-r--r-- 1 meshbot meshbot 2159 Jan 3 08:08 /opt/meshing-around/logs/meshbot.log
hmm no, that doesnt make sense... its rw by meshbot
change it just to see
sudo chmod 775 /opt/meshing-around/log/meshbot.log
Same errors on the most part 🤪 I will do one more clean install when I understand why I run across some of these issues. 😎
why not try this, nuke it with sudo rm -rf /ope/meshing-around, then clone the repo fresh, and run install.sh as sudo, and when asked to do a venv choose yes
something is very borked
going to work soon... I'll start over... give my brain sometime to think about this... HUG mahalo you all for being part of this... I'm learning a lot - I believe I can make this work... stay with me
btw I've started fresh several times to produce similar issues. the recent install works, say "successful" then I get to this... I don't give up 🙃
we'll get it figured out
if its happening to you it will/can happen to others so best to figure it out and get it fixed
I agree %100 - I do know what I'm doing kinda 🙃 actually I was in systems administration for years before I became a nurse. Phone company, DOD. LIFE. 
it looked like just ability to write logs was failing was all
Install try’s
sudo chown -R $whoami:$whoami $program_path/logs
sudo chown -R $whoami:$whoami $program_path/data
i already had him do that
I would assume similar permissions for /dev/tty was also issue
the entire meshing-around dir as meshbot:meshbot
and then changing the logfile to 775 didnt help either
for whatever reason it cant access that logfile
Yikes
when a user defines a custom user to run as, the systemd service invokes it as that user right?
99% sure the answer is yes
It should on first launch the real user typically needs to auth it once
Did a clean install of the pi lite os. updated it. no issues...
sudo apt-get install python3 python3-pip
git clone https://github.com/spudgunman/meshing-around
later today...
Looking at your script I see...
sudo chown -R $whoami:$whoami $program_path/logs sudo chown -R $whoami:$whoami $program_path/data echo "Permissions set for meshbot on logs and data directories"
I'm going to work for real. be back on this later today... with aloha
Shouldn’t need wget preferably use git
The releases are, but development is constant
I'll be your tester...
🤪 I don't see an installed for meshtastic cli? I'm probabaly missing it somewhere.
I used this to do that...
sudo apt install pipx && pipx install "meshtastic[cli]"
I have not done that this time around- although I like using the cli
it works...
Can't use this command...
pip3 install --upgrade "meshtastic[cli]"
I can run pip on the command line - pip3 installs 🤪
I'm guessing then running this is not getting in the way of your install?
sudo apt install pipx && pipx install "meshtastic[cli]"
I found this when I got this error...
Using pipx as an alternative to pip3 if externally-managed-environment error is encountered
it probably would as its using pip3 with venv?
idk how pipx works on the backend though
I'll do BOT install clean and go from there. Got to pry my hands away from this. good times... 🤪 💯
pull a new installer its got some new stuff
I'm ready for it 💯 I've got a fresh install of pi os lite - I'll let you know how it goes. 
I burned a SD card last night to check that distro out specifically! 🤙 will get around to it today sometime to test it more
I can't wait to try it out! I'll keep u posted 💯 
Ollama didn’t load in lite (Ollama issue) but mesh-bot seemed to load fine
is there an option to complete ignore group channels, answering and triggering only via dm?
Yes
# ignoreDefaultChannel, the bot will ignore the default channel set above ignoreDefaultChannel = True
and # if False will respond on all channels but the default channel respond_by_dm_only = True
yeah, i assumed the option only applies to the Primary channel
The combo will prevent any channel response
Yea, there is a limit I’m noticing it’s only the default aka index 0 I assumed any other channels people want the bot to listen to
for me i'ts channel 1 i'd try to ignore
Yes just set the default channel to 1 in config.ini and the other two options true
i just set it accordingly, hope it works 🙂
i'ts very useful to interact with something when nobody is there
thanks for the project!
Totally, welcome have fun!
Jan 04 19:08:12 wh6gxzmesh systemd[1]: Started mesh_bot.service - MESH-BOT. Jan 04 19:08:12 wh6gxzmesh python3[604]: Important dependencies are not met, try install.sh Jan 04 19:08:12 wh6gxzmesh python3[604]: Did you mean to './launch.sh mesh' using a virtual environment. Jan 04 19:08:12 wh6gxzmesh systemd[1]: mesh_bot.service: Main process exited, code=exited, status=1/FAILURE Jan 04 19:08:12 wh6gxzmesh systemd[1]: mesh_bot.service: Failed with result 'exit-code'. Jan 04 19:08:13 wh6gxzmesh systemd[1]: mesh_bot.service: Scheduled restart job, restart counter is at 5. Jan 04 19:08:13 wh6gxzmesh systemd[1]: Stopped mesh_bot.service - MESH-BOT. Jan 04 19:08:13 wh6gxzmesh systemd[1]: mesh_bot.service: Start request repeated too quickly. Jan 04 19:08:13 wh6gxzmesh systemd[1]: mesh_bot.service: Failed with result 'exit-code'. Jan 04 19:08:13 wh6gxzmesh systemd[1]: Failed to start mesh_bot.service - MESH-BOT.
so I downloaded rasp-os-lite today git clone, install.sh, said yes to everything and it just worked, ollamma didnt go but..thats not me
says there Important dependencies are not met, try install.sh
Did you mean to './launch.sh mesh' using a virtual environment
I for sure saw the log fire and I for sure ran venv when i tested today
are you in UTF-8
did you modify pi-lite?
yeah I follow this- not hard. no tricks- and i get the above. pi lite... no sudo really
it fails at launch
yea I tested this working good today on pi lite OS
can you screenshot how you run it
./launch.sh
Virtual environment not found, this tool just launches the .py in venv
Jan 04 19:19:15 wh6gxzmesh systemd[1]: mesh_bot.service: Start request repeated too quickly.
Jan 04 19:19:15 wh6gxzmesh systemd[1]: mesh_bot.service: Failed with result 'exit-code'.
Jan 04 19:19:15 wh6gxzmesh systemd[1]: Failed to start mesh_bot.service - MESH-BOT.
Jan 04 19:25:54 wh6gxzmesh systemd[1]: /etc/systemd/system/mesh_bot.service:22: Failed to parse service type, ignoring: notify #try simpl>
Virtual environment not found, this tool just launches the .py in venv
did you remember to install.sh
once its working you can forget about it just .. backup!
whats that look like?
I ran it .. like 4 hours ago
this isnt install.sh
it sounds like git didnt git anything ever
if you not just goofin, I ran this exact setup and if I do it again and it works .. then what?
that looks nice
ran it again...
Failed to enable unit: Unit file .service.service does not exist.
Failed to start .service.service: Unit .service.service not found.
cp: cannot stat '/opt/meshing-around/etc/.service': No such file or directory
Detected embedded skipping venv this isnt rasp-os-lite
did you embed the stuff needed first by saying yes
or are you saying my "I said yes to everything" literally
say no to embedded
if you pull fresh it will now say Are You installing into an embedded system like a luckfox? most should say no here (y/n)
yes luckfox...
so not a pi-lite?
you shouldnt see the question ever in a luckfox unless your in OLD code like 5+ days old
it uses the hostname
logic no compute
are you testing the limits of the script?
ok i'm doing that wiith no--n the installing running more like I would expect it-
I dont know what you interfacing with at all
the screenshots of some stuff and not others suggests other things really
its sus level 4
it was the firefox selection... I have a pi - it's no-
something as simple as yes no firefox... I do know a nit about linux...
well you got that far, your dooin fine think less about what you dont know and more about what you want to do 🙂
yeah I do... EAS Alerting NOAA EAS Networking to name a few
for the foxbuntu OS on luckfox MCU this is in progress now
yeah this is running in ways it never did. wow the first line firefox... wow killed me. yeah mesh bot bro
Do you want to install the LLM Ollama components? (y/n)yes
yeah I can do this dispite the trip ups...
For now I'm only going to run meshing-around on this OS. I have a variety of server envs. on other pi's and in the cloud to do other things with. 🙃
Mahalo for sticking with me- I have to say all this time it was that simple choice of Firefox? yes-no... somehow I didn't get WHAT - yes/no - meant on a pi os 🤪 hmm simple thing with consequences... ☠️
systemctl status mesh_bot.service
● mesh_bot.service - MESH-BOT
Loaded: loaded (/etc/systemd/system/mesh_bot.service; enabled; preset: enabled)
Active: active (running) since Sat 2025-01-04 22:10:55 HST; 19min ago
Main PID: 643 (bash)
Tasks: 5 (limit: 3915)
CPU: 20.562s
CGroup: /system.slice/mesh_bot.service
├─643 /usr/bin/bash launch.sh mesh
└─649 python3 mesh_bot.py

2734752213
wh6gxzmesh
12:07 AM
🏓PONG SNR:6.5 RSSI:-23
Can I bring this graphic in pi OS?
It’s possible yes, tbd as it depends on more stuff needed for install
Yeah, it's working pretty good... again, MAHALO NUI loa for sticking on it... The alpha ver- of linux creates theses nodes? num on the bottom - they go away when you refresh the node. I don't see it on the ios app. there is a bit of buggyness on the send. You don't always see a check on normal text, it will sen anyway or- it will send and not be acknowledge from a node I see... buggy. weird buggyness with node behavior at times- resolves...
If you request weather is it from your location ?
yes
the bot is running near by this node- when i invoke a cmd - afterward I can get this a message dimmed and yet it sends, or one that sends and not received by a node- odd. did not happen until the bot ran in the hood... weird. I don't think it a BOT issue. it's something... it does work. 🤪
wh6gxzmesh
08:12 AM
ToDay Isolated shwrs. Mostly sunny, with a high near 69. Calm wind becoming S 5 to 7 mph in the afternoon. Chance of precip is 20%.
ToNight Isolated shwrs. Partly cloudy, with a low around 56. SW wind around 6 mph becoming calm. Chance of precip is 20%.
Mon Isolated shwrs. Sunny, with a high near 69. S SE wind 5 to 7 mph becoming calm in the afternoon. Chance of precip is 20%.
yeah in my experience the web client has a lot of issues like that
Remember if the bot and the web client are running on the same node, they're fighting for control
yeah I've noticed that
I wonder how that might change in the next update... also linux mesh making new nodes in the alhpa- ver they go away on the reload. that's linux -- for ya at this time- having fun.
the web client via heltec, g2 etc. node - and then theres linux running on a web client...
“The” Next update of the firmware?
I recommend leaving the radio used by the bot alone. If you want to message others, it is best to do from a separate node. @stone lance is correct about the fight for control. While you are connected to it, the bot will not be able to respond.
Yeah, that’s what I found out.
I tried to run it as a client and now it is better running as you say🙃
It just pretty much runs alone. Runs on the Heltec T114v2. I’m gonna let it roll.
a new lab branch in test, has a new interface initalize sequence. most notable its expanded for 9 interfaces
I havent actually tested it but I saw 4 working somewhere
Hey @gentle kestrel some feedback on the EAS WX: it's hard to be useful in its current form due to the alerts not including the region for the advisories. I dont know how to handle this well with how the locations are specified. But I got this alert, and it's hard to tell how relevant or important this is with how my bot covers a ton of areas:
2025-01-05 13:20:25,053 | INFO | Device:1 Channel:0 Chunker1/2 SendingChannel: 🚨 2 EAS WX ALERT: Flood Advisory issued Jan 5 at 3:07PM CST until Jan 5 at 5:00PM CST by NWS Memphis TN
2025-01-05 13:20:25,053 | INFO | Device:1 Channel:0 Chunker2/2 SendingChannel: Wind Advisory issued Jan 5 at 3:06PM CST until Jan 6 at 12:00AM CST by NWS Memphis TN
the regions are defined by the CAP
and filtered by SAME
there is some expanded area details I think.. but they are very verbose sometimes
all that to say, I am putting the quick data in as provided
Understood -- Im just saying that the message that's sent is not very useful without including details of the location for the advisory
NWS Memphis TN isnt a location?
Thats the issuing office
as defined by the SAME filter yea
The best example of this is tornados, where it really doesnt matter at all except for where it's issued
The current approach pretty much forces me to only subscribe to one SAME
is there a SAME code which would always apply to that case?
and then also tell other people, who get these messages, that they're not relevant to them unless they live in ___
but even that's not obvious from the message that's sent
realistically there is 1-2 packets at 160charcters from a fed feed
yeah, all of this points to me just needing to disable this feature
the data provided is the data provided and all
ehhh, the data provided includes location, let me find the equivalent data for those messages.
I have found it depends on the reporting party yes
there is no reason it cant be added, but its gotta be there to add
I dont see any active alerts to check for this value to add
I thought I got it first whack as good as it could be, the SAME codes was the filter I used
Ill find some for ya in ~4 hours
And I have some examples of how NOAA built their slack bot summarizing these too, btw.
if there is specific parsing of the API and examples to filter, be interested to pull that in
my area this alerting isnt used well at all
the other day one old cell got an AMBER alert I didnt see it on the FEMA page .. I didnt know wtf strange
could it ask geopy the city/county of the coordinates and tack that on to the alerts?
yes but when I sampled a few dozen alerts the geo polygon and such was a real mess didnt seem like all departments use it and so I slacked in making a "am i in the polygon"
i dont know the value of EAS so thats a big one, we get "wind warning" and thats about it its 50% accurate and only really happens this time of year
no geo tag its all on the SAME value
yea those values are not always there or sometimes assuemd via SAME from what I can tell
I need examples for the API directly
(no alerts right now federally to show)
Yeah sounds good, Ill investigate and even ask NOAA if I need to
when an alert comes in I will ping ya
I dont see them in the evening as much so could be tomorrow morning
I am watching https://apps.fema.gov/IPAWSOPEN_EAS_SERVICE/rest/feed
which will give child URL for alerts
those child URL's are the ones with content
also of note the EAS weather alerts from https://api.weather.gov/alerts/active.atom?point=
those are set for the GPS location of the bot
they work for a geo radius as per NOAA API
for my area i find EAS-NOAA > IPAWS for weather alerts
ahhh, OK, here's the api schema: https://api.weather.gov/openapi.json
properties.areaDesc is what we want, I believe.
roger, and I am sending data like this getWeatherAlertsNOAA(lat=0, lon=0,
the exact is alert_url = "https://api.weather.gov/alerts/active.atom?point=" + str(lat) + "," + str(lon)
so you get the data for that
ok, I also mistook FEMA vs NOAA alerts when you first mentioned it
if you have any better ideas please
I thought the geo alert_url = "https://api.weather.gov/alerts/active.atom?point=" + str(lat) + "," + str(lon) was good enough
if there is more data in that I can add
Yeah the targeting there is fine
for sure !
the catch 22 I had was: cap:areaDescIdaho Palouse; Lower Garfield and Asotin Counties; Washington Palouse</cap:areaDesc>
this is almost a packet its self Idaho Palouse; Lower Garfield and Asotin Counties; Washington Palouse
and I am worrysome about replacing words in the names of places .. so any input on how to better handle this is wonderful
check the latest pull on main, its part of lab
I added a comment for ya to test
line 365 or so should have a block you can replace delete #old and un# the #new, on main or switch to lab
here is the current lab Chunker1/2 SendingChannel: Dense Fog Advisory issued Jan 5 at 3:12PM PST until Jan 6 at 12:00AM PST by NWS Spokane WA. Idaho Palouse; Lower Garfield and Asotin Counties; Washington Palous
you will see it chunked it
the last e darnit .. its alaways .. one more
would it be stupid to camel case the or strip spaces from area desc?
i dont hate it ```
SendingChannel: Dense Fog Advisory issued Jan 5 at 3:12PM PST until Jan 6 at 12:00AM PST by NWS Spokane WA. IdahoPalouse;LowerGarfieldandAsotinCounties;WashingtonPalouse
@broken mountain 👀
here is an alert```
2025-01-05 16:00:06,548 | DEBUG | Location:Broadcasting weather alerts
2025-01-05 16:00:17,420 | DEBUG | System: Splitting #chunks: 2, Total length: 170
2025-01-05 16:00:17,420 | INFO | Device:1 Channel:2 Chunker1/2 SendingChannel: 🚨 1 EAS WX ALERT: Dense Fog Advisory issued Jan 5 at 3:12PM PST until Jan 6 at 12:00AM PST by NWS Spokane WA.
2025-01-05 16:00:17,421 | INFO | Device:1 Channel:2 Chunker2/2 SendingChannel: IdahoPalouse;LowerGarfieldandAsotinCounties;WashingtonPalouse
this is on lab, if you think of any improvments for sure add them (try and synch from lab)
Aha I didnt realize till I read this source, SAME is only used for fema ipaws eh
just got a fema alert on the phone over here. would be neat to integrate that too 🙂
https://www.fema.gov/about/openfema/api hold my beer
Be mindful first that there's https://apps.fema.gov/IPAWSOPEN_EAS_SERVICE/rest/feed integrated today, search through the sauce
@gentle kestrel this is gunna continue to be a nightmare I think, I have a kinda wild idea though that since NWS already is giving us a geojson with the geometry, maybe we can use that to come up with our own area description that's more terse.
ridiculously complex problem
Another idea, though idk how to do it, would be to grab other media releases that the offices do that correspond with specific alerts. Their twitter posts tend to be pretty concise and they do a good job of balancing how to use their chars.
hehe you see why i held back on it, I do think the new lab has a good enhancments you raised
its gunna be nutty though when you get an alert for 20 counties
it should be now enable fema ipaws
I was gonna monitor it and see how bad it gets this week. a local admin list to shorten words commonly used locally might help a lot
like is county ok to shorten to CO.
is that ok in colorado?
is LA confusing for los ang and louisiana
No what I mean is, often that field lists county names
yea I camelCased it for now IdahoPalouse;LowerGarfieldandAsotinCounties;WashingtonPalouse
Here's an areaDesc on an active alert I'm in:
"DeSoto; Marshall; Benton; Tippah; Alcorn; Tishomingo; Tunica; Tate; Prentiss; Coahoma; Quitman; Panola; Lafayette; Union; Pontotoc; Lee; Itawamba; Tallahatchie; Yalobusha; Calhoun; Chickasaw; Monroe; Shelby; Fayette; Hardeman; McNairy; Hardin"
yea .. if you have any good ideas
Thats what Im toying with
NWS does a good job of picking out the best summary in their media products, but I think that depends on the human in the loop and they tailor it for each.
I do like the NWS reports they do have a feel of human
if you have sentinel enabled and its using the default channel 9 it will crash the node firmware.. I jsut updated the template but this was a goof up for sure. someone asked why I used 9 and .. there was no good reason and I see now its bad haha
lab is reasonable stable .. testing features with new refactors still
Louisiana calls it a Parish instead of County by the way. Just thought I'd add to the complexity. 😉
Oh hi, why don't you take the current string length, chop it up by max length, and then cut down by spaces?
I've got code somewhere that does that
the problem is its crazy long sometimes
just the added weight of another packet can be a lot in hops
Mmhmm, fair.
I haven't been able to test a lot of stuff lately due to my node antennas on these heltecs being trash lmao
I got a RAK on the way with plans for a decent antenna and a waterproof box
Might see if I can install it on the roof of work or at our TX site :3
nice! just get it up high somewhere and it normally will do ok @fallow crystal
Mmhmm!
For the Heltecs, got them decently high and I can see other nodes but TX range is less than 500 feet
I live across the street from my job and was getting little to no signal from the roof with Heltec-Heltec comms
Ooof, antenna outside?
As close as I can get my home nodes, sticking out an open window
Actually it’s more like 1000 feet LoS but
apparently the Heltec V3's antennas are tuned for somewhere in-between the 800 and 900 mhz bands and preform crappily on both of em
The farthest I can hear with the Stock antenna is about 1.7 miles (2.8km), but that's hit or miss at a very poor SNR, and I can't talk that far.
You'd have to be within 1000 feet of my nodes
well thats not bad, and yea you will enjoy a better antenna for sure
remember to stay legal
Oh 100%, I am a licensed HAM so I know how interesting the FCC is :3
new in lab: There is a web-server module you can run python modules/web.py from the project root directory and it will serve up the web content. by default. http://localhost:8420
I won't say what I actually call the beady antenna that came with my heltec, but it kicked the crap out of what came with the t-echo. Aside from the N-Type antennas it has been the best so far.
im really happy with the new lab build and interface work it seems stable so far Im gonna let it ride for a few days and pull it in to main
I have tested 2 interfaces .. i just assume 9 work will try 3 later (2 radio and a mqtt)
if anyone uses sentinal feature please let me know its still working well
I refactored it hard
works for me but .. at the moment I forget how it worked on dual radio before need to check I didnt make a mess
and if anyone goes nuts with testing high node count. please let me know haha I dont have the setup at the moment to test harder
like how bad is cpu and such if you ask for LLM from 4 bots or wiki query from 4 monitoring the same channel
issue a bbslink on a private frequency and see how bad it gets
can meshtastic or mesh-bot be ddos?
new docker stuff is on lab now
yes, and it wouldnt be too hard to do
unless, UNLESS, you set the bbs node as ROUTER_LATE or something
then it doesnt gaf about tx windows (as i understand it)
maybe a dev will correct me
@midnight oxide youre online, does router_late bypass tx window entirely or does it only skip the timing delay process
my understanding was it adds an offset to the timeslot calcultion to broadcast behind a client.
but i ony skimmed that changeset 🙂
nothing authoriative here.
It still cares. It avoids the early router/repeater tx window entirely. If it hears another node rebroadcasting, then it will also avoid the standard client tx window, and will offset to a second window of the same size after that, with the same timing behavior.
It achieves this by adding an offset equal to the worst-case CLIENT upon overhearing a duplicate transmission of the packet.
@gentle kestrel
I found this resource for finding local alert sources for different places.
https://alert-hub.s3.amazonaws.com/cap-sources.html
https://alert-hub.s3.amazonaws.com/cap-feeds.html
Hope this helps
They all also use the Common Alerting Protocol standards between them, so should be easy enough to integrate :3
Yea thanks! I was trying to see how valuable they are. And eventually write something up to parse this list
I heard there was a ftp for Germany for example are these CAP as valuable as that?
Well, these CAP servers all serve emergency and meteorological info in a standardized format, so if you write a generic CAP parser you would only need a single parser for any of the multitude of countries
Mostly a matter of testing and confirming it’s valuable data
Being hosted on Amazon and it says it’s “free” it also looks like a exposed managed service API
Reliance of the data is important
If I build something and it’s pulled a week later or no one uses it ever because it’s junk alerts
No one has said oh yea this looks like good data which would be handy in my area
Like the gov.uk it seemingly wasn’t interesting to any users
And it seems like anyone wanting to report is also interested in building their own way to handle it
Pure slacking on my behalf
Oh I wasn’t actually talking about pulling from the alert hub api, more like using their list as a reference for making a CAP parser
I could look into making a general alerts plugin but I’ve been swamped with life and work lately aaa
But it would be parsing the alert hub URL?
I don’t think the CAP feeds are public sourced it’s all proprietary
They have sources in the sources page
and CAP is an open protocol
All the feeds those people use are public
Isn’t the source 100% internal aws?
I can’t find any of these feeds anywhere but that page
Why I wasn’t eager yet to slurp them
Not all of them it seems
CAP Canada I know is open, as well as a few of the others
I'll look into it tomorrow, I am off of work and I can see if I can make my own list
I asked in the Canada social if it would be cool to have a feed and I was told it’s on phones and not wanted so I didn’t bother
I think they thought of it like NPAS, where NPAS can get annoying.
the NAAD feed has much more than what goes over NPAS, just like what NWS sends versus what is sent over IPAWS and NOAA Weather Radio
This is awesome
the German data is available from https://www.dwd.de/EN/ourservices/opendata/opendata.html and is declared public domain.
Free provision of spatial data of the DWD via the DWD's Open Data Server https://opendata.dwd.de
the actual data is at https://opendata.dwd.de/
on its Open Data server at https://opendata.dwd.de.
Access is granted without registration. The following terms of use apply:
https://www.dwd.de/EN/service/copyright/copyright_node.html.```
appears to be the source of the CAP anyway
here is a live element
the CAP is in english I notice vs native language
yes, that's the source. on the opendata server you find smaller chunked cap files. and also the description of the dwd variant format in both DE amd EN
I just saw a PR for https://nina.api.bund.dev/
So that will be given priority for DE area
NINA is one of the consumers of the DWD CAP data. They host a superset of stuff. DWD only provides severe weather data, NINA also accumulates achtual emergency warnings from local responders. Like 'close windows, fire with heavy smoke in your area'
Cool that sounds better, similar to the fema feed here in states. Will be getting those bits in soon
That’s part of the CAP standard, normally if you have a separate language you have to tag it.
If you happen to be testing lab branch it just got major refactoring for the multi interface
Docker is also building a basic image again
seems stable enough.. main got a major overhaul for multiple nodes up to 9
lab has the new NINA alerts in testing NINA alerts in main
they do need confirmed tested good
only things I havent fully vetted yet is the new Docker ideas @broken mountain but the rest is in main
I also havent actually tested the NINA alerts
and I havent validated high scores in blackjack and few others, as working perfect in multiple interface (like a user playing on radio #4 and correctly logging your HS name)
if anyone finds a bug I left a DEBUG note to say "this dont work" I just dont have time right now to get a high score on interface <2
Remind me, is it able to work with nodes over network?
I hope so 🤞your new PCB requires it 😉
Meshtastic API limits are the guiding factor
I don’t know how well or if 9 network attached nodes play well
I know 2 will
I do limit to a single BLE interface still
Aloha all, hopefully this not to duh of a Q how do you get this - looked at the files which are in default. tried a few urls etc. I want to start using this - mahalo
Check this out see if it helps get ya online https://github.com/SpudGunMan/meshing-around/blob/main/logs/README.md
I have a Python web server in modules which if launched from the project root will serve it up. Or you can point your own web server to the index or you can move the whole web output somewhere
I don’t have detailed instruction for any service or chron to automate the details at the moment leaving it to end user
Ru talking about this python modules/web.py ?
Yea it serves up the index file for ya (or should)
? python modules/web.py
If you run it somehow different it won’t likely find webroot on its own
python modules/web.py I pulled this from your docs
yea if you need to python3 vs python change that
yeah I tried
#find -name web.py didn't see it - maybe I'll try to point my own web server to the index ../etc/www
So I found your web.py script on your GitHub. I'm going to copy it over to my local directory and run it. See what happens.
Whoa how did I never know there was a web interface for meshingaround....
Do a git pull update to latest code
(Works if you git cloned)
Mahalo spudgunman for you help!
putting in a request for one of the greatest BBS games from back in the day Legend of the Red Dragon :p
Psh, Tradewars
I have thought about adding a custom game. bits of code stashed all over.
If I get time this weekend gonna try and add a checkin /out idea
Not as fun but, been preoccupied with #1329096340700921898 Which gives an embedded platform to goof with, mesh-bot on rails in a way
A portable bot brings new ideas for fun
@craggy bobcat I have inital working concept for checkin/out now
# CheckList Checkin/Checkout
[checklist]
enabled = False
checklist_db = data/checklist.db
commands checkin checkout
this OG chat is now implimented
another idea pressed in ```ini
[qrz]
QRZ Hello to new nodes with message
enabled = False
qrz_db = data/qrz.db
qrz_hello_string = "send CMD or DM me for more info."
this isnt QRZ.com but the Q code for who is calling
if any text message is RX the bot will respond one time only with a canned message
Cleaned up a stack of bugs and enhanced those features some more they turned out real nice I think
I am getting this error during installation, venv method. I installed sqlite3, but I still get the error. Anyone know?
Let me remove it, I think it’s native and I shouldn’t have put it there at all
I am using Ubuntu btw
Pull a change or remove it from requirements locally
Nice yea just made sure it’s working here. Slacked off and didn’t before!
@brittle atlas thanks for catching it
All working fine. Thanks! 👍
I've been running the BOT for awhile now- I'm good! Having fun exploring the options. BTW: for those intreseted in installing this - do it... yeah I had a background in IT a long time ago - I'm nurse dude, if I can do it.. Mahalo spudgunman 🤙
I reticulated some splines
Hi @gentle kestrel, does the EAS Alerts functionality (https://github.com/spudgunman/meshing-around?tab=readme-ov-file#eas-alerts) of your Mesh Bot project cover any Common Alerting Protocol (CAP) (https://www.undrr.org/early-warnings-for-all/common-alerting-protocol) compliant rss/atom feed?
There's lots of them worldwide:
The Common Alerting Protocol (CAP) is the international standard format for emergency alerting and public warning. It has been developed by the Organization for the Advancement of Structures Information Standards and adopted by the International Telecommunication Union (ITU).
CAP is something every provider of a feed interprets in his own way. IIRC the bot consumes a CAP compatible feed for the german NINA alert system.
but it's not as simple as saying 'this is a CAP feed, please use this now'
I would like to be able to parse more but right now as mentioned it’s only a few sources and haven’t yet built a any parser
there's too much wiggle room in the specs for an universal CAP parser. especially the state machine is open to interpretation.
(e.g. what happens if warning levels increase, decrease or are revoked?)
Damn. I was hoping it would be easy.
Same, do you have one you want? @round skiff I assume NZ?
What about tides, know of a local gps to tide could also possibly sniff
The CAP (Common Alerting Protocol) xml feeds I wish to use are:
https://api.geonet.org.nz/cap/1.2/GPA1.0/feed/atom1.0/quake
https://alerts.metservice.com/cap/rss
https://alerthub.civildefence.govt.nz/rss/pwp
The CAP-NZ Technical Standard is here:
hosted on this page:
https://www.civildefence.govt.nz/cdem-sector/guidelines/common-alerting-protocol
The metservice one would be most useful, followed by geonet, then the civil defence one.
For NZ tides, try tides.niwa.co.nz
For example, https://tides.niwa.co.nz/?latitude=-37.283&longitude=174.655&numberOfDays=5&startDate=2025-01-25 returns a sexy chart and a table.
The niwa developer api is available here:
Common Alerting Protocol (CAP) is an international, non-proprietary digital message format for exchanging all-hazard emergency alerts.
That tide api looks nice 👍
The other feeds look like work haha 🤪
If you see an alert if you can copy the entire output and dump here or anywhere I am, so I can use it as a template to scrape the good data for mesh
Will try to get at least the main feed. and tide should be easy
https://www.metservice.com/about/common-alerting-protocol gives an example of a heavy rain warning, although their example is embedded as an image. 🤦♂️
Further info on the GeoNet service:
https://api.geonet.org.nz/#quakecapfeed
Contains an example.
That's for quakes and eruptions, which are somewhat common in NZ.
Do they replicate these quake ones on other systems?
The biggest issue is if you have 3 alerts let’s say go off multiple feeds it’s gonna make a hell of a mess in mesh
I actually have a earthquake map silly script been running for years now
I pondered it in the bot but, normally don’t need a warning in text you HAD an earthquake haha - your case is more noteworthy of pre warning but - I would assume the other service would advise - thin the alerts to “need to know”
My understanding is the geonet api is for all quakes, regardless of how minor:
https://www.geonet.org.nz/earthquake gives a pretty map of all our constant shaking.
I think (not sure) that if the event it significant enough, it'll trigger other warnings to be issued.
Like, if a huge quake happens elsewhere in the Pacific, wave height sensors will trigger a tsunami alert.
I would expect the metro alert to fire off, right?
I added all this to my feature list list anyway
This is a new enhancement, if this made sense above. I should have done this a while ago
Cmd is my replacement for the word help
I didn’t want to have anyone say or use “help” unless they need it
Including all dialog or bot interface
I fell back to CMD no good reason
It prints on mesh as CMD? So it won’t dupe another bot
@gentle kestrel
https://alerts.metservice.com/cap/atom (/cap/atom and /cap/rss both work)
Has a current warning. Captured to .txt (attached), as it was too big to paste here.
fun fact i just learned, if you have something such as the meshing-around bot running on your device, meshsense will not work
Each application needs exclusive access to protobuff which isn’t supported in the api today.
I saw roadmap for future changes which will allow multiple connections
If you wish to do this today using a local MQTT server to consolidate apps to node is needed
Not complaining just mentioning in case others run into my problem
I rebooted and forgot I stopped but didnt disable meshing-around (testing) and was confused
Same issues will happen if you manage a device via CLI and have BLE open to the same node or if you try and change things via admin too much while the bot is running. Serial device and all
The UK alerts don’t work at all that website I’m using isn’t ideal for scrape
This is the first alert I have seen on the page and ooof
what website/page are you scraping?
got a specific link?
i have a regex fetish and scrape websites with bash. i may be insane enough to be of assistance.
And the presentation on the website isn’t ideal at all https://www.gov.uk/alerts/current-alerts
The biggest issue I see it’s very verbose and not directly stating the issue
Also it’s broken up into 3 paragraphs “upper” “middle” and “lower” haha
Can I trust middle will always have the content?
The data likely sits here <p class="govuk-body-l govuk-!-margin-bottom-4">A RED warning for wind has been issued. Extremely strong winds associated with Storm Éowyn are expected to cause significant disruption from 10am on Friday 24 January 2025. Strong winds can present a danger to life, causing flying debris, falling trees and large waves around coastal areas. Stay indoors if you can. It is unsafe to drive in these conditions. Avoid coastal areas.</p>
But that’s a lot of text
Also there are 4 div’s named the same thing - oooof
And to state “where in the world”
I would need to also send <h2 class="alerts-alert__title govuk-heading-s govuk-!-margin-bottom-3">
<span class="govuk-visually-hidden">Emergency alert sent to </span>Argyll and Bute, City of Edinburgh, Clackmannanshire, Dumfries and Galloway, East Ayrshire, East Dunbartonshire, East Lothian, East Renfrewshire, Falkirk, Fife, Glasgow City, Inverclyde, Midlothian, North Ayrshire, North Lanarkshire, Renfrewshire, Scottish Borders, South Ayrshire, South Lanarkshire, Stirling, West Dunbartonshire and West Lothian
</h2>
ok heres the gross way to do it in bash, it works well though
curl -s https://www.gov.uk/alerts/current-alerts | egrep -A1 "(alerts-alert__title|govuk-body-l)" | sed 's/<[^>]*>//g' | sed '/^$/d' | sed '/^[-]/d' | sed 's/^[[:blank:]]*\(Emergency alert sent to .*$\)/\1/' | sed 's/[[:blank:]]*\(Issued by the .*$\)/\1\n/'
basically what youll want to parse for is:
alerts-alert__title the line following this is the title you want
govuk-body-l the only occurrences of this class are the contents you want
from there just strip it
those two classes/divs are unique to the data you want
@gentle kestrel let it be known that i may provide jank but its quality jank
Haha nice! Can’t get the bash into python well at that stage might as well use alert.txt for it all
Govuk-body-l is huge!
Like 5-8 mesh bubbles at 160
I may revert this UK.gov
There is also no way to GeoLocate with this web data
Finding a good way to handle the Amazon CAP page would be a better working model
I'll tap up that blogger, see if he can think of a better source.
Can bribe him with a node 😉
the last paragraph is worthless, that can obv be omitted
and yeah ideally youd do it somehow in python... but i have a hammer
and brother, everythings a nail
Indeed it is! Haha
Hey folks, I know we have chatted a while ago about mqtt functionality. I’m happy with how it works! But with chunked messages, only one messages comes over mqtt. Is there a solution for this that I’ve missed?
Thanks for the awesome app!
How are you set up? I moved my dev work into all software radio with MQTT on the same box so, I do test with MQTT full time now
Raspberry pi with node connected via serial. Internet through network connection
But what where isn’t getting these messages? I can’t replicate
I’ll get some better data and get back to you. Thanks!
When I’m on MQTT and send the ‘Wx’ command, the bot sends multiple messages. I only receive the first.
And apparently I have to tweak some settings so it syncs time properly. 🤷♂️
I assume your radio is connected via tcp (WiFi?) to MQTT?
Tell me more about the radio node what’s its mode
Node is in client. And is connected via WiFi tcp to MQTT.
Where is the MQTT something is bunching up, how’s the antennas of all this stuff in relation to each other
I don’t suspect the bot is the issue per se, you can add a delay for packets and that might help (on config.ini) ```ini
delay in seconds for response to avoid message collision
responseDelay = 1.2
delay in seconds for splits in messages to avoid message collision
splitDelay = 0.0
The splitDelay, try some values like 0.2 or 0.8 and see if it helps
I’m using a stock heltec v3 with the stock antenna. It is yards away from any other nodes.
I tried changing the split delay. That helped with out of order packets over RF, but had no effect on MQTT.
I may have to play around the meshtasticd and get that up and running. It’s not a huge deal, just one of those little things that’s bugging me.
Is the bot directly connected to the node or MQTT?
Something is odd, I don’t get out of order or missing
Bot connected to node.
So I actually redacted this as working but - what if you turn on serial echo in firmware settings
Also what firmware rev?
2.5.15. I just upgraded to 2.5.18 since I had to check serial configuration, haven’t checked if that fixed problem.
I am getting this error when running the mesh bot. Not sure what the issue is. I tried the env option and without too. with or without the meshbot user. Not sure whats wrong. any ideas? Ubuntu
Can you try starting it manually to see how it loads? If a venv use launch.sh mesh. Or check out the logs/ directory and the mesh-bot.log to see what dumped out
It works fine when I run sudo ./launch.sh
It seems to fail on the reboot
'chris@serverN100:/opt/meshing-around$ sudo ./launch.sh mesh
2025-01-29 18:00:48,971 | DEBUG | System: Initializing Interfaces
2025-01-29 18:00:50,491 | DEBUG | System: Initalized Radio Device1 Node Number: 3663944680
Meshtastic Autoresponder Bot CTL+C to exit
2025-01-29 18:00:50,492 | INFO | System: Autoresponder Started for Device1 EI3HBB - home ,3HBB. NodeID: 3663944680, !da635be8
2025-01-29 18:00:50,492 | DEBUG | System: Logging System Logs to disk
2025-01-29 18:00:50,492 | DEBUG | System: BBS Enabled, data/bbsdb.pkl has 1 messages. Direct Mail Messages waiting: 0
2025-01-29 18:00:50,492 | DEBUG | System: Celestial Telemetry Enabled
2025-01-29 18:00:50,492 | DEBUG | System: Location Telemetry Enabled using NOAA API
2025-01-29 18:00:50,492 | DEBUG | System: Dad Jokes Enabled!
2025-01-29 18:00:50,492 | DEBUG | System: Games Enabled!
2025-01-29 18:00:50,492 | DEBUG | System: Wikipedia search Enabled
2025-01-29 18:00:50,492 | DEBUG | System: MOTD Enabled using Thanks for using MeshBOT! Have a good day!
2025-01-29 18:00:50,492 | DEBUG | System: Sentry Mode Enabled 100m radius reporting to channel:2
2025-01-29 18:00:50,492 | DEBUG | System: Store and Forward Enabled using limit: 3
2025-01-29 18:00:50,492 | DEBUG | System: Respond by DM only
' All good with a manual launch
After a reboot I check the status.... `chris@serverN100:/opt/meshing-around/logs$ sudo systemctl status mesh_bot.service
× mesh_bot.service - MESH-BOT
Loaded: loaded (/etc/systemd/system/mesh_bot.service; enabled; preset: enabled)
Active: failed (Result: exit-code) since Wed 2025-01-29 18:05:58 GMT; 2min 1s ago
Duration: 399ms
Process: 1803 ExecStart=/usr/bin/bash launch.sh mesh (code=exited, status=0/SUCCESS)
Process: 1847 ExecStop=pkill -f mesh_bot.py (code=exited, status=1/FAILURE)
Main PID: 1803 (code=exited, status=0/SUCCESS)
CPU: 399ms
Jan 29 18:05:58 serverN100 systemd[1]: mesh_bot.service: Scheduled restart job, restart counter is at 5.
Jan 29 18:05:58 serverN100 systemd[1]: mesh_bot.service: Start request repeated too quickly.
Jan 29 18:05:58 serverN100 systemd[1]: mesh_bot.service: Failed with result 'exit-code'.
Jan 29 18:05:58 serverN100 systemd[1]: Failed to start mesh_bot.service - MESH-BOT.
chris@serverN100:/opt/meshing-around/logs$ cd ..
` Manual launch is good ' chris@serverN100:/opt/meshing-around$ sudo ./launch.sh mesh
2025-01-29 18:09:44,882 | DEBUG | System: Initializing Interfaces
2025-01-29 18:09:46,971 | DEBUG | System: Initalized Radio Device1 Node Number: 3663944680
Meshtastic Autoresponder Bot CTL+C to exit
2025-01-29 18:09:46,972 | INFO | System: Autoresponder Started for Device1 EI3HBB - home ,3HBB. NodeID: 3663944680, !da635be8
2025-01-29 18:09:46,972 | DEBUG | System: Logging System Logs to disk
2025-01-29 18:09:46,972 | DEBUG | System: BBS Enabled, data/bbsdb.pkl has 1 messages. Direct Mail Messages waiting: 0
2025-01-29 18:09:46,972 | DEBUG | System: Celestial Telemetry Enabled
^Z
[1]+ Stopped sudo ./launch.sh mesh
'
There is nothing recent in the meshbot.log
Permissions or service issue? Looks like the bot is ok
Remeber you need write to log and data directory for the service run as
Also install.sh should handle all this I haven’t tested for a bit last I did on a diet pi
Gotcha, I will give it a go again later 🙂 . I changed over to Ubuntu as I got a better mini-pc, that's when the trouble started. Everything was fine with Diet-pi.
It’s the latest firmware. 2.5.18? I think. And I turned on serial.echo. That didnt work.
I also did a factory reset and re configured radio. I thought it might have been a problem with node, since the bot shows that it is sending the messages. That didn’t help either.
Screenshot of the log. FWIW
Success!!!! I changed splitDelay to 3.0. And it works. Interestingly, there is definitely not a 3 second delay between chunks.
It’s in milliseconds, and it won’t take much, glad it’s resolved!
I will test a mainline Ubuntu and raspian asap, weekend soon
I got it running at start up in the end, using rc.local, not ideal, but it works! No idea why systemd/systemctl doesn't work properly on my machine. permissions like you said probably. Deepseek guided me through it haha
Haha nice 👍
Would there be a way to send out the weather forecast on LongFast twice a day with your bot? The mesh here is very quiet, some traffic would be good.
The schedule function is what you want to use
Also, the new QRZ welcome tool would be handy
I haven’t been able to test well yet, in a large mesh it’s messy
In a small one it’s nice
… I should add a learn mode to it to catch up without saying hello to everything …
Boop
[qrz]
training = True # Training mode will not send the hello message to new nodes, use this to build up database
For the people who work with ollama 🙂
i use this as my goto chat environment since it is easy to change models and other settings
enjoy folks 🙂
Hey, I got a good nerd-dad joke for you:
Why do hipsters hate calculus?
||They find it too derivative||
Aloha - curious, all the sudden the wx cmd - got error reporting data. I didn't change anything... amy thoughts? other cmd's work
Reporting or fetching?
If you see a warning on the screen saying error fetching data try increasing the urlTimeout (config.ini)
NOAA is big and the service is free, the internet and .gov under heavy stress technically. Your geographic area sees more delay
Yeah that's what I got- I'll try that mahalo
INFO | Device:1 Channel: 0 Received DM: wx From: wh6gxz-> Feb 16 07:35:09 wh6gxzmesh bash[656]: 2025-02-16 07:35:09,483 | ERROR | Location:Bad weather data from NOAA
hmmm
/etc/systemd/system/mesh_bot.service:22: Failed to parse service type, ignoring: notify #try simple if any problem
increased the urlTimeout to 20
Maybe they got a visit from DOGE 😏
Possibly but it’s domestic so less likely it’s being gutted, this is also an API so interesting it’s bad
Is TCP online?
the WXA cmd works
Did you go offshore and there might be no location data? (Still odd)
good i'm glad it's not me... hihi 🤪
if there's issues with a service that's another thing
It’s works fine for me but, wondering if you are in some unique location which returned an error from noaa for data
Looking at code this is a error for “there was nothing”
Is that page working ok for you
Just tried it = it works...
INFO | Device:1 Channel: 0 Received DM: wx From: wh6gxz-ecom Feb 16 07:50:49 wh6gxzmesh bash[656]: 2025-02-16 07:50:49,172 | ERROR | Location:Bad weather data from NOAA Feb 16 07:50:50 wh6gxzmesh bash[656]: 2025-02-16 07:50:50,374 | INFO | Device:1 Sending DM: error fetching data To: wh6gxz-ecom
This seems like a internet connectivity issue, I see report data for the Hawaiian islands ok
There is a “lot going on” in the world right now
truth - the pi is on the internet other CMD's work...
It’s just your area
I can replicate it data is missing from the noaa page
Is this new as of today, I’m sort of wanting to wait a few hours see if it’s resolved
Mahalo for that! It started late last night- I use wx all the time. I had used the cmd earlier that day. 
I'm doing a presentation today with a few HAMS at Big Island Radio Club -about meshtastic- going to show a few people meshing-around 
Agg of course, looking at it it’s presenting data like it’s knows I’m scraping the webpage
It’s only your area this is a problem it seems, oooof
I'll ask some of the other hams they run weather stations etc. check aprs
got some feed back from some other mesh heads- having the same issues. also. moon, tide others work
For your state the webpage changed
They put the data into a collapsed table and it’s just not there in a scrape at the moment it seems
Either it’s a temporary issue for the rest of the day
Or it’s someone trying to prevent this
good csi brah! I'm suspicious - don't mess with the data doge
I also see this on the backend "detail": "Forecasts for marine areas are not yet supported by this API.",
@heady raven try a new pull I did a full refactor didn’t test your location yet but it’s a major change anyway
No more html
Your area is still wonky
So thanks for the note and push to switch to this new? API let’s hope you get data values back soon?
I get this all over Hawaii "detail": "The requested forecast grid was issued 2025-02-14T18:02:41+00:00 and has expired.
I made the change
`# NOAA weather forecast days, the first two rows are today and tonight
NOAAforecastDuration = 3
number of weather alerts to display
NOAAalertCount = 2`
INFO | Device:1 Channel:0 Ignoring Message: yah wonder how long to traves vs how long y> Feb 16 08:49:44 wh6gxzmesh bash[651]: 2025-02-16 08:49:44,054 | INFO | Device:1 Channel:0 Ignoring Message: zodiac inbound From: Tavis T-Echo Feb 16 09:11:08 wh6gxzmesh systemd[1]: /etc/systemd/system/mesh_bot.service:22: Failed to parse service type, ignoring: notify #try simple if any problems Feb 16 09:12:57 wh6gxzmesh bash[651]: 2025-02-16 09:12:57,459 | INFO | Device:1 Channel: 0 Received DM: wx From: wh6gxz-ecom Feb 16 09:12:59 wh6gxzmesh bash[651]: 2025-02-16 09:12:59,088 | ERROR | Location:Bad weather data from NOAA Feb 16 09:13:00 wh6gxzmesh bash[651]: 2025-02-16 09:13:00,289 | INFO | Device:1 Sending DM: error fetching data To: wh6gxz-ecom
Yea we can just wait and see for the moment I think
I'm heading out to do the meshtastic presentation. Take care spudgunman. I'll keep my eye out 🤙
Did a bit of Meshing Around just now, and got a weird effect with the chunker.
Is this cos I've got a shorter chunk size or something?
Haha Presidents’ Day. Yea I have messed about with it a lot, at what point is the line cut for delivery of a packet
It’s always one more character
If on the defaults of 160 Wikipedia isn’t ideal, frankly nothing large text is
I could force it passed into like a LLM but sometimes it’s also a mess that way
In this specific example the sentences are defined by a period and I split up the paragraph which is till too long so each sentence is forced into a cut due to overruns.
I let it overflow by like 3? Characters but in this case it’s an example of just how bad it can get
I can go back to ignoring sentences like it was before
Sending bulk volumes of text isn’t what meshtastic is powerful at currently
I may go back to just cutting it and ignoring sentences
I am getting a very high CPU usage after a while. On reboot it is fine for at least a few hours, but some time later it always runs the CPU to high levels. any idea?
How or what is your radio?
First guess if software it’s loss of connection via tcp to meshtastic D
If so put mesh service dependent on meshtasticD
Not network stack
Try a new pull, I removed .?! Logic and it seems better
Hawaii still has issues on API, of note I didn’t even see a forecast for the 15th and now it’s 16th expired
aloha all wx is back... mahalo for working with me on that yesterday spudgunman
Oh yea? It’s working?
tried it last night- it was hihi
I possibly had used a bad API call from yesterdays test, cache issue
Is it possible to ignore all eas nws messages containing a certain word like the test feature? When the river gets up, nws blows us up with river flood alerts for sometimes weeks on end. I'm miles from and hundreds of feet above said river.
wx and wxc aren't working for me again... odd
Yea, got an example of a message?
I think they have issues
It’s still the weekend and all let’s see how the week plays out
I actually don't sorry. It's usually a spring issue. I'm just trying to plan ahead. I'll check back.
It would be easy to add a ignore value yea, just was wondering if it had something obvious could trap
I understand. Thanks.
If you change branch (git checkout lab)to lab you can test this idea now
# Ignore any headline that includes followig word list
ignoreFEMAword = True
ignoreFEMAwords = test,exercise
thanks. I'll try tomorrow.
Also try riverFlow command
When it failed for me I was 3 hours ahead and it expired, but was still valid for you. I wonder if this is a time zone issue haha
(on noaa servers)
yeah its back - just ran some cmd before I 💤
🤙
Volcano, Hi
meshsense- just another thing I play with hihi
Hey! Just got this thing set up on my Windows desktop remotely (I don't have access to my Linux box or Pi right now). I had to edit settings.py, line 39, to change config.read(config_file) to config.read(config_file, encoding='utf-8') to avoid a decoding error that would overwrite my modified config with the default one. Figured I should probably ask here so pulling updates later doesn't cause any conflicts - is there an "official" workaround for this? Or is it just a Windows Thing™ resulting from the code being written and tested on Linux?
I just haven’t got around to trying in windows myself. Thanks for the feedback! It’s now in main
WinBlows you mean ?
It’s such a difficult product anymore. Today I was hit in the head with newest windows on install encrypts drive
If Microsoft released windows code name longhorn instead of vista the world might be a better place .
At least if they left things alone for a while, LTR isn’t long enough
Fantastic! Figured I would check just in case. Thanks a bunch!
Seems to be working great under Windows so far aside from that one thing
Though I just noticed when I got to my PC here that it fails to log anything with an emoji in it, throwing another encoding error
Fixed on my end in modules/log.py by adding encoding='utf-8' as an argument to the TimedRotatingFileHandler objects on lines 72 and 79
If I find any other Windows-related issues I'll just open a PR at this point, haha
Same name on GitHub?
yup, I use dj505 pretty much everywhere
Nice I tagged ya and added those values to the log write, thanks!
These are all in main now
Awesome!
thanks for approving the PR!
Yea! Thanks for fun idea! I tinkered with it a little already! @tacit brook
great 😀
it is nice that the bot is so modular and allowing us to easily add features
I also later on thought it should show the word when you didn't get it.
nice that you added it
and telling the user to type 'end' 👍
that is pretty rad!
Let me know how it works out!
I think i'm going to try the qrz.py as well for each new module I need an entry in the config.ini yes?
Yea do a git pull, and check the template for what you don’t have it will default a lot of stuff
like [qrz]
`# QRZ Hello to new nodes with message
enabled = False
qrz_db = data/qrz.db
qrz_hello_string = "send CMD or DM me for more info."
Training mode will not send the hello message to new nodes
training = True`
does it need to be in a paarticular space in the ini file?
no
It may also add the minimal needed at the bottom
i modified the config.ini added the .py files ran the cmd and...
`Feb 23 18:47:18 wh6gxzmesh bash[9655]: 2025-02-23 18:47:18,359 | WARNING | Device:1 Ignoring DM: hamtest From: hawaiimeshmap
Feb 23 18:47:18 wh6gxzmesh bash[9655]: 2025-02-23 18:47:18,801 | INFO | Device:1 Sending DM: What do bees do after they are married? They go on a honeym>
🤪
You need to do a git pull yes
There is a few files it will update
If you haven’t for a while might backup your .ini as well
yeah it's been awhile...
From the directory it’s in now, assuming you did a git clone originally to get it just do a git pull
Feb 23 19:33:44 wh6gxzmesh bash[842]: PermissionError: [Errno 13] Permission denied: 'config.ini' Feb 23 19:33:44 wh6gxzmesh systemd[1]: mesh_bot.service: Control process exited, code=exited, status=1/FAILURE Feb 23 19:33:44 wh6gxzmesh systemd[1]: Failed to start mesh_bot.service - MESH-BOT
Looks like it’s trying to add the new options for you but can’t due to write permissions
You can give it write to that file/directory or add them from template
Or run it manually once
they added the options but some of the files are owned by root others are by wh6gxz me who is the only owner root
Well, however it irons out it’s just permissions, the bot will try to add the missing sections to the ini till they are found
Do a diff on config.template and config.ini
See what your missing and add it
I’m not sure why you have a permissions on the .ini looks like your user account owns it unless it’s running as something else
I see meshbot there as well
Do the old chmod +777 config.ini
Feb 23 19:55:28 wh6gxzmesh bash[1807]: 2025-02-23 19:55:28,950 | INFO | Device:1 Chunker1/6 Sending DM: 📻New technician quiz started, 'end' to exit. To:> Feb 23 19:55:29 wh6gxzmesh bash[1807]: 2025-02-23 19:55:29,053 | INFO | Device:1 Chunker2/6 Sending DM: What is the resistance of a circuit in which a cu> Feb 23 19:55:29 wh6gxzmesh bash[1807]: 2025-02-23 19:55:29,155 | INFO | Device:1 Chunker3/6 Sending DM: A. 3 ohms To: hawaiimeshmap Feb 23 19:55:29 wh6gxzmesh bash[1807]: 2025-02-23 19:55:29,257 | INFO | Device:1 Chunker4/6 Sending DM: B. 30 ohms To: hawaiimeshmap Feb 23 19:55:31 wh6gxzmesh bash[1807]: 2025-02-23 19:55:31,559 | INFO | Device:1 Chunker5/6 Sending DM: C. 93 ohms To: hawaiimeshmap Feb 23 19:55:31 wh6gxzmesh bash[1807]: 2025-02-23 19:55:31,660 | INFO | Device:1 Chunker6/6 Sending DM: D. 270 ohms To: hawaiimeshmap
That did it BRAH!
wierd the permissions changes ehh. the diff was no issues. MAHALO for what you do!
gxzm: Game over. Score: 0 73! 😿You did not pass the technician exam. You may want to study None.
Haha I didn't take answer it. cool...
Admittedly I haven’t played past about 12 questions
I got my general lic- a little over a year ago... qrz is interesting. say hello- not the qrz that hams are familiar with
Qrz like who is calling me, yes I thought about the website confusion of names but went with it anyway
yeah it works bro- we call qrz "who's calling" this is wh6gxz qrz?
Yea like the bot is QRZ?
When HAM's do DX'ing HF long distance radio - we call out something like - this is wh6gxz qrz...
"Q" code for "Who is calling me?" like I think you said earlier. Nice bro
some ham tools would be neat
like 'gimme my gridsquare' or 'dipole calculator 906.875' or 'repeaters city, state'
The only tool I don’t have in that list is a antenna calculator
Whereami includes grid, and Rlist gives repeaters
i saw rlist...forgot about that one i guess. had no idea whereami did that, sweet!
def dipole(frequency):
length = 468 / frequency
element = length / 2
return(round(length,2), round(element,2))```
```In [2]: dipole(906.875)
Out[2]: (0.52, 0.26)```
overall length and individual element lenght in feet
I'll take a stab at making a command later 🙂
Nice! If you need help holla’ @dusky abyss can set up a branch for you or whatever with the bot side
Also think about adding multiple calculation, dipole, jpole, 1/4 wave ground
Ohms law and parallel resistor, series capacitor if you feel spicy
I do feel like most LLM will do poorly at those
Without a tool_math
Eirp calculator might also be handy
But fitting all this into like one command calc dipole 14.070 or calc eirp 100w 5db
Aloha I have a friend who has a node that when he writes a command in a sentence he gets a DM - say like test. He doesn't want the bot to respond. Wants me to move to another channel. Others are ok with it. I guess I could move it to another channel... thoughts/experiences. I have a channel two called volcano... channel 0 people can use it...
you can set the friend to ignore on the bot node
I could set it to ignore him? I know the phone app- can ignore a node...
yep, the "node" is still a node, but it's got a bot in charge. Pause the bot service, connect via phone and add them to the ignore list, then it'll ignore and drop their packets
Or spud could program up somethng?
I could set the channel to 1 'volcano' is what i call it - to get the bot off the primary channel?
[general] respond_by_dm_only = True *defaultChannel = 1* ignoreDefaultChannel = False # ignoreDefaultChannel, the bot will ignore the default channel set above
Going nowhere fast 🙃
No clue what I did here. Everything else seems to work, even remote admin.
Have you tried restarting the service?
Yea, several times
And stopping the service and then just running the bot directly, and watching the output?
oh, i meant the meshtasticd service
i'm not running the bot as a service
maybe thats my problem
Nah, it can't be, because I still don't get acks with the bot stopped but meshtasticd running
I'm trying to remember the steps I usually get suggested to check the bot is working...
but meshtasticd isn't acking the dms
Oh, good point
Can you log into the node with e.g. android and see what's occurring?
just tried contact on it. I can successfully send a message from the pi node to my main, but not back
I had similar issues before with radioless meshtasticd also
ughh...its my stupid neighbor again I think
moved both to slot 60 and everything works as expected 😢
can't wait for a new sync word
ooh, maybe next hop will help
I'll try that tomorrow 🤞
Default channel is the shared channel, most people share the public default. Tell the other fella to block you
You would put the channel you want to ignore in the settings
Is it some weird config? Do you see any of this on the logs? If not network config?
yeah i told him to do that- other people use it with aloha. mesh out!
I believe so, but out of my control. Someone has an mqtt linked repeater on a pre 2.2.12 firmware nearby and it apparently disrupts more than I thought
Ooo damn
My thought is, it's replaying my packet the instant it sees it over mqtt, which throws out a 0 hop packet
I just had to climb a tower to update my 2.3.13 was t fun
bbs_ban_list now is expanded to block any command to the bot effectively ignoring them @heady raven
mahalo bro - I'm getting some grief from a few people...
I find they run in packs like hyenas
I did minimal testing, sounds like your situation may be spicy so if you see a hiccup send logs. git pull will update and if you need node ID’s remeber you can whois
Huge mahalo for what you do! I've learned a lot working with meshing-around... A few of the guys hacked it up just to prove they could I guess. I'll let you know how it goes. 🤙
Fun! Yea interested to see
Aloha. Did the git pull. Cool! Do I do this?
[bbs] enabled = True bbs_ban_list = !a2ed9124, !7f49bee6 " or 2135539430, blah instead... bbs_admin_list = bbslink_enabled = False bbslink_whitelist =
Based on the node info from the meshbot.py
I think I'll choose this format 2135539430,2135539440 blahblah
follow-up added a few nodes to the "ban list" lets see what happens...

Aloha, we've had some issues and quarrels about DMs being sent by the bot due to it picking up words from an "innocent" message. We made changes to a local copy where all commands begin with an exclamation mark, e.g. "!wxc". Please consider prepending commands with some special character that may even be configured during install.sh. Mahalo !
It should not be up to people who get the DMs, to have to go and block the bot node.
Rather, it should not be as easy to trigger the bot.
I just ignoreDefaultChannel = True and all is good 🙂
It's up to you, the person hosting this, to configure it for your use-case and mesh, IMHO 😉
If people are mad, it's not spuds fault
There where two people affected out of over 100+ nodes by a dm from the bot -they are within RF of my bot. With spuds help I have fixed that I hope.
No It's not spuds fault. It's no ones fault - it's a hobby, and maybe a living someday for some.
I appreciate what spud does
and have learned a lot and had fun thanks to SPUDS. 💯
Some people don't want any internet on meshtastic MQTT - nothing is going to change that. The voices are loud...
If the person hosting it, is not willing to make changes, then it's not the recipient's fault, nor spudman's fault.
The proper approach is make the bot less trigger-friendly
With LoRa you only have to whisper. We can be heard below the noise 🙃
I didn’t add the “send the shrek script to a node DM” code hehe
I do agree blocking public is worth while in messy meshes
I will look to add a command qualifier like !
Spud - as for me - in my mesh reality - there are 100+ nodes on my node list - and just a few nodes (2 maybe 3 depending on propagation) have the RF to even gain access to the gxzm bot...
BTW: The last pull may have worked for the two bothered
...and Stefan is in Kona, he has no RF to any of my nodes. I'm in Volcano
***At issue for some people: ***When a node with the right amount of RF says a CMD in the body of a text like "ping" let's say
then that NODE with the RF will get a DM from gxzm bot.😎 Some people like that 🙃 others ☠️ well you are hearing from them. 💯 it's all good. Mahalo 🤙 it takes a --node hihi
While I'm not personally affected (yet, as the RF mesh grows), I'm speaking up bc of common sense, and being good radio operators. I also offered a solution. Being unrepentent about even bothering one person for weeks is not the way to go. If everyone adopts an attitude of "I can do whatever I want", then we're done here.
Can I ask what commands it DM’s have caused the weeks of duress?
Early on we talked about only triggering on single-word commands. What about bringing that back as an option for public channels?
Usually it's "test" I think? Some other users will "ping" each other manually and I know it's triggered on that. I think a stray wx or something else was in there for me once but I cleared my history since then. FWIW the response DMs are less irritating to me than seeing other people's commands clutter up the primary channel. When I was testing/playing with a BBS node it never crossed my mind to actively respond to messages in the primary channel, is there a use case that demanded that behavior rather than punting most or all queries/commands to the bot to be DMs?
(also I'm kinda playing the Devil's advocate here -- trying to help find a solution, not really an aggrieved party. So feel free to ignore my questions since they more-or-less come without standing)
Sometimes it's fun to have it pull up the weather or a wiki entry on a shared channel.
I'll let @broken fossil and Luke comment.
The code is customisable - when I get around to it, I move a lot of commands off the response list for PSK channels into DM-only
Nobody needs to get a dad joke DM when telling the neighbours that their football team are a joke.
The primary channel should be off limits by default
What if your primary channel, like mine, is a private channel?
play on a secondary one
From my perspective it would be useful to have the bot "announce" once every few days/weeks. Then listen for commands on the DM side. If spamming isn't a concern, there could even be commands that request a reply/broadcast to the primary channel, if there's a desire to send out urgent weather messages, etc. But why automate that?
This can all be solved by editing the configuration. That's why it's there 🙂
there's only one primary channel,whether you configure it on channel id 0 or 1000
Good question. I think we are using "primary" and "default primary" interchangeably.
it's on slot 20
um...no
um yes. use channel id <> 0 and frequency slot 20. that's your primary / long fast
BBL
0 is the one and only primary, no matter what the channel name, key, or lora slot is
I guess the potential "solutions" to how to handle bot traffic depend on a lot of these details. Either I can change my primary channel away (I do this already) and not use LongFast as a secondary channel at all (I probably won't do this anytime soon), or the bot node can do the same, or one of us can move to a different mesh/preset/frequency entirely. It can't reasonably be programmed into the bot, I think, to only use another channel (or even any channel at all) and completely avoid putting traffic onto the default channel (which will likely change over time based on other factors like LoRa presets) or a region's main channel. I believe the right way is to have very limited channel interaction and primarily operate via DM, which is why I was asking about use cases that wouldn't be appropriate for.
At this point I'm not sure how else to say to configure your bot how you want it. Good luck, goodbye.
I think I'm saying the same thing. These are not really bot problems but social problems.
for the default channel, see this setting:
https://github.com/SpudGunMan/meshing-around/blob/66f937a645d3402be6a5e1e4d50de74990205f4c/config.template#L31
Right on... as traffic increase on the primary channel on BI - I'm going to move my bot over to what a call volcano channel. there's no people there- BOTS want to be social hihi it's meant to add value to the mesh experience not exasperated people 💯
yea, my bot node has our Groupname-test channel as primary, then LongFast and Groupname as secondary 🙂
Big island meshtastic network is growing mainly on the Hilo side.
I'm in Volcano. Luke and I bath in each others RF
. Otherwise very few nodes even have the RF to reach my BOT.
Geography on BI is challenging so the base stations really provide the coverage - with lots of black holes.
Hopefully in time that will change and we will all learn and develop the meshtastic reality together - we collaborate meaningfully.
This was in the way it’s detected by Python words or stream
Ping catches
Pingme won’t
Isn’t respond by dm only default?
I could easily just add a ignore all channels
That might work today, I would need to look
Well..
You could add a switch to reject messages longer than the cmd being issued. Would work for all the single-word commands, at least.
Just chucking ideas out there. Not saying they're good ones 😉
Well the two I got so far is
- check ignore channel is multi/list possible
- add option for !cmd
The second one I need think about more but the ignore channel is easy to add more
I guess I'm not sure, I should install the software and play myself. My understanding was that it listens on a channel and responds via DM, rather than listen on DM and respond on DM
Thanks @gentle kestrel let us know when you've got something to test and I'll volunteer to help @heady raven give it a test
Spudgunman I'll say it again - MAHALO for all you do for the Meshtastic community - many of us are grateful for your skills and support to open source meshtastic. I owe you a cup of coffee! Or something like that. For whatever it's worth you have my 100% support. 💯 
Glad it’s fun stuff! I got those two items in now
I haven't had any complaints from our community only compliments for the test/ping responses ... I have never seen it posting to the default channel ... so why do people complain?
They don't like getting a DM from it?
Point them to this, and move on. https://meshtastic.org/docs/configuration/radio/lora/#ignore-incoming-array
Understanding the LoRa configuration settings on your Meshtastic device including region, modem, hop limit, and more.
When using the sentry module, does it still use the location in config.ini as the center of the detection radius if I have a fixed position set through the mobile app on the node itself? I just realized I haven't been getting any messages on the channel I set, lol
I'm curious, are these test/ping queries being sent to the default LongFast channel?
it replies privately
Right -- but does everyone see everyone else's commands/queries to the bot? Or is the bot only listening somewhere other than a widely used/generic chat channel?
Ok -- so that's 100% the concern with the mesh here, that it is listening to the default primary channel and people are sending it commands there (intentionally and otherwise).
but if someone sends a message to longfast (or any other channel where the bot is added) with some keywords like "test/ping/ack" then it will reply but not on longfast directly to you
and personally i think this is a useful feature
Ahh okay so "when you interect with the bot you have to send a direct message" isn't true
well if you want to intentionally interact with it then you have to dm it
most people requesting an ack probably does not care if it is a human or bot responding
but it does break one of the bot rules of only speak when spoken to (well that was one of the rules when developing IRC bots back in the day)
That's fair -- but when someone asks for the weather or tide forecast or ask whois we don't want to all see their request, and that's been happening on our mesh. Not a huge issue, but if we had a more dense mesh or someone set up another bot, etc. it could get irritating. Thanks for the extra info, I think it will help us work out advice for configuring bots here in future
ah I get you
and it is configurable ...
[general]
if False will respond on all channels but the default channel
respond_by_dm_only = True
Allows auto-ping feature in a channel, False forces to 1 ping only
autoPingInChannel = False
defaultChannel is the meshtastic default public channel, e.g. LongFast (if none use -1)
defaultChannel = 0
ignoreDefaultChannel, the bot will ignore the default channel set above
ignoreDefaultChannel = False
and by default it is configured as dm only
I set my long name on the node to "I'm a bot (Send cmd in DM)". It helped people understand a bit more.
uses the .ini file value only. Realistically having a phone connected and the API as well causes hiccups fyi (global issue)
Understood, thanks!
I don't normally have a phone connected, just the bot script. Phone is just for checking in every once in a while when the script isn't running
Here's Nurse dude's change in the .ini file to make the "few" happy...
It takes a village...
What I did.
[general] respond_by_dm_only = True autopinginchannel = False defaultchannel = 0 ignoredefaultchannel = True
Yep- that simple...
Have an awesome aloha FRIDAZE and mesh on
File "/home/skot/meshing-around/mesh_bot.py", line 1492, in <module>
asyncio.run(main())
File "/usr/lib/python3.11/asyncio/runners.py", line 190, in run
return runner.run(main)
^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/asyncio/runners.py", line 118, in run
return self._loop.run_until_complete(task)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/asyncio/base_events.py", line 653, in run_until_complete
return future.result()
^^^^^^^^^^^^^^^
File "/home/skot/meshing-around/mesh_bot.py", line 1482, in main
await asyncio.gather(meshRxTask, watchdogTask)
File "/home/skot/meshing-around/modules/system.py", line 1206, in watchdog
handleAlertBroadcast(i)
File "/home/skot/meshing-around/modules/system.py", line 735, in handleAlertBroadcast
alertWx = alertBrodcastNOAA()
^^^^^^^^^^^^^^^^^
NameError: name 'alertBrodcastNOAA' is not defined```
hmm, had location configured, but disabled. maybe it must be enabled for this to work and its not just for the telemetry?
enabled = True```
seems to have fixed it...
Nice, I put a work around for this to function seamlessly now