#meshing-around BBS/utility BOT

1 messages · Page 6 of 1

dusky abyss
#

Awesome! I'm glad it wasn't something bigger. Thinking I'm not going to be able to use this tho...it's been going off all hours of the night 🙃

#

230am, 520am, 940am, and like an hour ago lol

#

We know when the naders are close anyway

dusky abyss
#

nws alerts

gentle kestrel
#

You in a storm?

#

My area is mostly wind alerts

dusky abyss
#

wind, blizzard, ice

#

it seems to repeat when they re-issue them

gentle kestrel
#

Yea they can get chatty sometimes when weather is weathering. If it changes or you restart the bot yes

gentle kestrel
#

Each one is changed

#

They do that when they panic

#

Life safety and all

dusky abyss
#

yea, we just get so many here in the spring in tornado alley, I don't wanna annoy people

#

like i said, we know when the naders are near by so many other means 🙂

gentle kestrel
#

Setup an alert channel and let people subscribe as they want

dusky abyss
#

but I'm glad I helped squash a bug

gentle kestrel
#

This way you can mute alerts easy as well

dusky abyss
#

yea, its on my prv channel for now. I may do some tweaking

#

get wild with datetime or something 😛

gentle kestrel
#

Yea if you think of something handy I’m only preventing 1:1 messages from being rebroadcast if alerts are squelched what’s the point

#

I do find fema alerts to be better but not as Wx focused

#

Why the combo is there

dusky abyss
#

Gotta head out for work, but somehow I have the next 4 days off, so maybe I'll get bored

#

ttfn!

gentle kestrel
#

Nice, holla if you need help!

dusky abyss
#

woke up to 14 alerts 🤣

gentle kestrel
#

I don’t think they goof off when rhey go wild with alerts like that

#

Facts are old people run out of heater oil

#

And the excessive alerts are to remind everyone like media and such seriously we are alerting you

dusky abyss
#

turns out the alert I really needed was "Go down the street and gather your trash and recycle bins"

#

they're everywhere LOL! got the closest neighbor's too, but there's others in the street, up in yards, against a truck hahaha

gentle kestrel
#

Haha if your near Colorado Springs the alerts for blizzards fires and wind that’s nuts

#

I don’t mean to down play the number of alerts you got but - only shark nado sounds more bad

#

🦈🌪️

dusky abyss
#

Nice! we've got high wind advisory, winter weather advisory, and blizzard warning in kc

gentle kestrel
#

well it’s a wild early spring this way 60* and I’m out for a kayak. If you have a kayak and a hill it makes a super sled

#

Don’t travel on the interstate

dusky abyss
#

I wish I had a kayak. I could probably fashion a sail and travel down the ice covered street

gentle kestrel
#

All the storms the wind may blow one your way keep the hatches battened down and keep watch 🛶

midnight oxide
#

see, that's what i meant when i was talking about 'lifecycle management' of warnings in the CAP files. Some do it properly and tag them as new, update or end-of-warning. so you can select whether you want to disseminate updates (and ends) or not.

gentle kestrel
#

For sure, and these alerts are from the older SAME system not the new CAP system so it’s even more crazy

#

Like when Hawaii had issues there .. I am not watching close but I think they just moved to a new API same time the bot did, I don’t recall public access when I originally wrote the Wx commands the best data I found was web scrape still

#

I will double check if there was any metadata which might be handy I did just rush a 1:1 refactor

dusky abyss
#

about to head out, but just noticed this...

#
2025-03-06 23:40:04,605 |    DEBUG | System: iPAWS Error extracting alert data: https://apps.fema.gov/IPAWSOPEN_EAS_SERVICE/rest/eas/300114865922
2025-03-06 23:40:04,839 |    DEBUG | System: report this to discord - iPAWS No description for alert: Local Area Emergency
Traceback (most recent call last):
  File "/home/skot/meshing-around/mesh_bot.py", line 1493, 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 1483, in main
    await asyncio.gather(meshRxTask, watchdogTask)
  File "/home/skot/meshing-around/modules/system.py", line 1213, in watchdog
    handleAlertBroadcast(i)
  File "/home/skot/meshing-around/modules/system.py", line 751, in handleAlertBroadcast
    alertFema = getIpawsAlert(latitudeValue,longitudeValue, shortAlerts=True)
    ^^^^^^^^^
UnboundLocalError: cannot access local variable 'alertWx' where it is not associated with a value```
#

We'll restart it and see what it looks like in a few hours 🤞

#

looks like it was possibly trying to query an expired alert

gentle kestrel
#

Pushed a fix in so they don’t come back

tidal bane
#

Hi, I am looking for a proxy like software which allows using meshing-around and another TCP client like meshtastic-matrix-relay with one meshtastic node in parallel. I know that there is no support for multiple TCP clients to port 4403. Because when you try two tcp clients you will receive a broke pipe on one of the clients. Does anyone use more than one client?

stone lance
tidal bane
#

Yes, would be an option. I did extend MeshProxy by a single tcp connection to a Meshtastic node and broadcast to the other connected clients. The client connections are serialized but still one client drops the connection. I think I have to discard multiple subscription commands from the clients. But did not find it out yet

odd void
cold jungle
#

hi

odd void
#

You were the one doing multiple api connections with different ports using mdns right?

#

Or multiple radios on the same computer

cold jungle
#

Yes, running 4 meshsticks on a raspberry pi, each on it's own port

odd void
#

I think that may be applicable or helpful to @tidal bane

#

Maybe not 🤷‍♂️

tidal bane
#

mdns sound promising.what does it do on the pi? Port mirroring?

#

or four physical devices on the pi?

cold jungle
#

I was using 4 physical devices but they could be sim radios, or MQTT only

tidal bane
#

What SW is usable for the sim clients on a pi zero 2?

cold jungle
#

linux native works well on a pi zero 2

#

I haven't tried running more than one instance on a zero

#

Though that was my plan

tidal bane
#

Thanks. You have nice setup. I have meshtasticd already running. I think I saw a sim node with Mqtt support on GitHub. I will try to look it up

cold jungle
#

if you have no config file or no lora device in the config file, it'll run in sim mode by default i think.

#

I mean, I know it will. I've been running a luckfox with no radio, only mqtt, for a while now

#

for multiple instances, you'd need to run them with their own vfs and port, like:
./meshtasticd -d /home/pdxlocs/.portduino/vfs4 -p 4406

#

oh and for mdns i have 4 avahi services running:

<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
    <name>Meshtastic-4</name>
    <service protocol="ipv4">
        <type>_meshtastic._tcp</type>
        <port>4406</port>
    </service>
</service-group>
gentle kestrel
#

You can MQTT attach a node and feed multiple softwares into the MQTT system to share one radio across multiple projects as well. Requires a dedicated meshtasticD for the app

heady raven
#

Aloha...
I have a Heltec t114v2 USB to Pi running meshing-around currently. CMD's can be initiated through a secondary channel HawaiiNet, or you can DM the bot.
Tavis and few others have worked on the project to get it off the primary channel. So far so good. We run a private booker bridged - BI to Maui... mesh_hat You can see the project on Liams map... hawaiimeshmap.ddns.net:8080/
I would like to build a dedicated Meshtasticd node using meshing-around with a MeshAdv hat. Upcoming project... MPWRD mesh out

cold jungle
midnight oxide
#

if you have 'headless' things like the BBS, you could package up meshtasticd and the BBS in a docker container and don't have to fiddle with multiple tcp ports getting into each others ways. Attach them all to the same mosquitto with meshtasticd and a real radio.

#

this way every 'virtual' app has its own node number

tidal bane
tidal bane
stone lance
quasi escarp
#

People use MQTT for integration with external applications, remote monitoring, or linking multiple distant networks, but for a resilient, private, and independent mesh, LoRa-only is often the better choice.

#

MQTT integration can bypass the mesh, reducing the incentive to build robust LoRa-based networks.

MQTT is unreliable since it depends on an internet connection that may not be available.

MQTT exposes data to the internet, increasing potential security risks.

MQTT requires an internet connection and a centralized broker, which creates a single point of failure.

stone lance
#

Like, one box, one radio, and a swarm of virtual nodes all talking through the one radio

cold jungle
slow aspen
#

How difficult is it to make my own module for this?

gentle kestrel
#

The hardest part I find it just finding ways to fit the data into small text bubbles

slow aspen
#

oh I'm doing something far, far stupider

gentle kestrel
#

Haha nice

slow aspen
#

my region is having a meetup on monday and I want to see if I can hook up messages to the bot to spit out nametags on my thermal printer

gentle kestrel
#

Fun, if you need help holla

slow aspen
#

I got it working on windows, it should be as easy as converting the win32print functions to CUPS

gentle kestrel
#

Nice, you could realistically also just use the command line tool and send the data into a print that way

#

enable_runShellCmd = False # enables running of bash commands runShell.sh demo for Sysinfo

slow aspen
#

ooooh I'm an idiot

#

no wonder it doesnt work, ive been calling my function print

#

(it's kinda already taken)

#

OK, I think its all kinda working. I wanted to make a module but it cant seem to find the def I wrote. I saw it imports from modules.log, but where is this file so I can ensure my module is in the list?

tacit brook
#

the way i did it was to search for a module that is similar to what I want to do ... and then just created stubs for where my module will go and update them as required

slow aspen
#

I just threw my logic into mesh_bot

#

Not great but it works I guess

tacit brook
#

I guess it will only be an issue if you try to create a PR and @gentle kestrel kicks your ass

slow aspen
#

Yeah its a temporary mod anyway

tacit brook
#

sorry only see now what you are doing

#

that is pretty cool

slow aspen
#

the real challenge will be trying to shoehorn a physical printer onto the femtofox

stone lance
#

Might be better shoving a Femtofox in a printer?

#

🔨

gentle kestrel
raw tulip
#

hello, me again!
hamtest.py needs an encoding="utf-8" argument thrown into the open() statement on line 23 for the script to play nice with Windows lol

slow aspen
#

I installed this on a pi3 (I figure much better odds of shoehorning a printer onto a pi 3 vs a femtofox). Does the install script make a service file for systemctl?

#

oh yeah it does, it's mesh_bot not mesh-bot

slow aspen
slow aspen
#

had to switch to a pi 3 instead of the femto, but it does work

stone lance
#

It's ok, Foxbuntu only just hit alpha.

slow aspen
#

I don't expect paper printing support on the femtofox... ever tbh

#

How many fools besides me try to pipe printers into MT

slow aspen
#

Ah heck I gotta make a PR for this stupid thing now dont I

stone lance
slow aspen
#

Coming soon to a mesh near you

slow aspen
cold jungle
#

I have absolutely no use for a thermal printer but have now found myself pricing them on ebay/amazon.

slow aspen
#

Not all of them have linux drivers fwiw

red talon
#

The best ones have a really dumb UART interface

#

There's even an old HP receipt printer that does serial over IR

#

It's bizarre. There's actually an arduino lib for it

gentle kestrel
lone wolf
#

Suggested schedule item:

I push weather alerts to a different channel using the AQ== key. This allows for an opt-in of the alerts (that can be rather chatty depending on NOAA). We also test our weather alert sirens on Wednesdays at noon. Hence...

schedule.every().wednesday.at("12:00").do(lambda: send_message("Weather alerts available on 'Alerts' channel with 'AQ==' key.", 0, 0, 1))

gentle kestrel
#

Yes that is a fun one thanks @lone wolf will get that in

#

I have been trying to think of a way to make this better for the end user as well (scheduling config) and haven’t yet

#

Limited to editing .py currently

tacit brook
#

which is a problem when we want to pull the latest version 🙂 not a biggy though

gentle kestrel
#

Yea another reason it would be nice

tacit brook
#

used the scheduler this morning for the first time for sending daily weather reports to a private channel ... I was thinking how to accomplish that and was pleasently surprised to see the config already catering for that exact usecase 👍

red talon
gentle kestrel
stone lance
#

Should be easy enough to move that module off into its own .py, and then have it generate only the template at install/pull?

#

Same as the config file.

lone wolf
lone wolf
red talon
#

We are considering using this for some future conferences / events to drive public traffic on longfast to a curated QR / preset

lone wolf
#

Nice!

#

My thought with the QRZ is they don't have to wait on a scheduler to be notified. They'll get the message as soon as they are discovered. (I think.. Looking at the code it may take a message for that discovery to happen.)

stone lance
#

Is that like the text you get when you land in a different country reminding you to dial 112 not 999?

lone wolf
#

I assumed it is a HAM reference. It looks like it just sends a message to a user as soon as they are detected. Example: "Hey! Look at me, I'm a bot."

stone lance
#

Oh, you mean responding to the actual text qrz?

#

Yes, it does that.

#

And ping

#

And test

#

And pong, actually

red talon
#

QSY

lone wolf
gentle kestrel
lone wolf
#

Blink and there is something new here. 😉

lone wolf
gentle kestrel
lone wolf
#

Are any of the scheduled items anything else besides sending a message?

tacit brook
#

not that easy ... not even adding it to the config file would be easy as you will lose a great deal of flexibility the way it works currently is that you can call any handler with any parameters on a schedule ... and even the way the scheduler work is not from strings like crontabs, it is methods on the scheduler object

gentle kestrel
#

Yup, that’s my concern

tacit brook
#

so if you do split the scheduler into its own class you will have to pass references to all the handlers .... which I guess would not be impossible but needs a bit of thinking

gentle kestrel
#

That has been my delay so far as well

lone wolf
#

For my education... What would you be calling besides sending a message? All the other things I can think of that the bot does would either be impractical, or already handled by its own timer. Sorry if this comes across in text as snarky, I'm just trying to learn.

gentle kestrel
#

The biggest issue I had was trying to make a config.ini translate to the almost infinite options in that method

lone wolf
#

Looking through the docs for the schedule module, I see that now.

#

Just "borrow" the user's ollama if it is configured to make sense of what they enter if you can't decipher it. 😉

gentle kestrel
#

Yea haha, I drafted up a few ideas and every iteration I just wasn’t happy with.

mortal shale
#

Has anybody tried running meshing-around on a Femtofox? I love the idea of that combination

slow aspen
#

I'm 99% sure its native to the femto actually

mortal shale
#

Oh, cool!

#

I haven't dug into the code yet, but I'm also really excited about the multi-radio stuff

#

I like the idea of having one BBS that's accessible over both ShortTurbo and VeryLongSlow or something.

odd void
#

Yeah quite a few of us have it running on a fox

heady raven
#

Aloha all... Living on the big island a fellow meshhead mentioned having a "volcano" bot. USGS and the state - puts out notifications about Pele. Living next to Hawaii's Volcano's National Park is a statement after the fact for me hihi
Lot's of people on BI playing with the BOT.... Mahalo

gentle kestrel
#

I am only aware of the noaa Wx alerts for ash as well as the fema alerts.

Is there a noaa data source for volcanos which provides the data needed?

#

Are these alerts the ideal source?

#

I found a CAP feed

gentle kestrel
#
# USGS Volcano alerts Enable USGS Volcano Alert Broadcast
volcanoAlertBroadcastEnabled = True
heady raven
gentle kestrel
#

It may need to have some fine tuning still but seems to alert ok so far

heady raven
gentle kestrel
heady raven
gentle kestrel
#

Also needs a channel value (see template)

#

I had to step away but will circle back, yes it’s easy to add a value just need to think of something useful I agree volcano isn’t an ideal key word

heady raven
# gentle kestrel Yea git pull and add that to your config.ini

Yeah I did the git pull- just didn't change the config.ini yet. 🙃
I'm going to config- volcanoAlert to channel 1 - where are Hawaii Net channel is on. Hawaii's MQTT 🙃 That's where the bot is listening.
I noticed some FEMA stuff in the config.ini.temp I'll have to play with it. 🤙
The only key word I can come up with so far is USGS.... or maybe something fun like USGS pele hihi

gentle kestrel
heady raven
#

# sudo git pull remote: Enumerating objects: 5, done. remote: Counting objects: 100% (5/5), done. remote: Total 5 (delta 4), reused 5 (delta 4), pack-reused 0 (from 0) Unpacking objects: 100% (5/5), 668 bytes | 60.00 KiB/s, done. From https://github.com/spudgunman/meshing-around dc731ae..a8b4362 main -> origin/main Updating dc731ae..a8b4362 Fast-forward modules/locationdata.py | 2 +- modules/system.py | 20 ++++++++++++-------- 2 files changed, 13 insertions(+), 9 deletions(-)
All right.... 🤙

gentle kestrel
#

Added the command valert

heady raven
#

this is WAY cool! I owe you a cup of coffee mesh_hat

fathom ledge
#

Awesome! That will be useful for at least a handful of us! Hopefully not relevant to too many people, but there are a lot of volcanos in the world...

gentle kestrel
lone wolf
#

My last pull was as of March 18th.

I'm seeing an error on startup with the LLM. Due to a power outage the system I have hosting ollama (external computer) was powered off still when the bot came online. That was shown in the logs, but the very next message immediately after showed that the model loaded. It doesn't seem that this is validated before writing to the log.

2025-04-02 19:35:57,817 | WARNING | System: LLM failure: HTTPConnectionPool(host='REDACTED', port=11434): Max retries exceeded with url: /api/generate (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x743444f25400>: Failed to establish a new connection: [Errno 113] No route to host')) 2025-04-02 19:35:57,817 | DEBUG | System: LLM model llama3.1:8b loaded

gentle kestrel
lone wolf
#

Ollama is back online now, so it all shows as normal.

#

The time stamps of those two messages in the log is what concerned me.

gentle kestrel
#

The spin up of ollama at the same time of the request

lone wolf
#

The physical system was still powered off for about 30 minutes before I noticed the log and restarted the bot.

gentle kestrel
lone wolf
#

Story of my life....

gentle kestrel
#

Tidy up the logs

lone wolf
#

Thanks. I'll check it out when the weather alerts calm down. I don't want to do a lot of bot restarts, and annoy my local mesh (more than I already do).

lone wolf
#

Anyway we can clean up the formatting of the QRZ messages? I was told it looks like weird JSON formatting with the shortname.

stone lance
#

The log makes it look weird, cos it has to escape stuff

gentle kestrel
#

New nodes in the mesh, have no ID in the DB either yet, no info packets no name for one of them, yea something to look at

lone wolf
#

Trying to duplicate it now. The upside to have "extra" nodes...

gentle kestrel
#

You would need to clear the bot’s node DB

#

To replicate it quickly anyway

#

Or bring out a new in box node and add to mesh

lone wolf
gentle kestrel
lone wolf
gentle kestrel
#
[scheduler]
# enable or disable the scheduler module
enabled = False
# interface to send the message to
interface = 1
# channel to send the message to
channel = 2
message = "MeshBot says Hello! DM for more info."
# value can be min,hour,day,mon,tue,wed,thu,fri,sat,sun
value =
# interval to use when time is not set (e.g. every 2 days)
interval = 
# time of day in 24 hour format when value is 'day'
time =
#

A basic schedule broadcast message is now in config.ini

#

I don’t have (an idea yet) or code to go advanced here (meaning, broadcast weather or wherever, this would still be advanced code edit)

lone wolf
#

This is all I'll actually need so it's perfect. I just need a "add this channel for weather alert spam" message. I'm paraphrasing of course.

stone lance
slow aspen
#

Weather? I hardly know her!

lunar shore
#

I must be confused about the ignore list. I have been getting lots of freeze and frost warnings and thought i'd try to block them out. They are still broadcasting. Is ignore FEMAwords not for ignoring specific wx alerts as well?

lone wolf
#

FEMA alerts are not weather alerts.

lunar shore
gentle kestrel
#

There is now

#

I don’t have any alerts to test against yet

lunar shore
#

awesome, It seems to send as soon as i restart so i should know in just a few min

lunar shore
#

so far, so good.

#

@gentle kestrel Thanks

gentle kestrel
lunar shore
#

Can confirm it blocked frost warning issued a few hours ago. Awesome, I do not know if case sensitive though as I added "frost" and "Frost" both to list. But I don't need to know. I'm thankful just to have it working.

gentle kestrel
mortal shale
gentle kestrel
mortal shale
#

I didn't want to open a PR for something that small

deep igloo
#

I'm having an issue getting the reporting to work on my Femtofox with meshing-around. When I run web.py I get the following error.

femto@F0X0:/opt/meshing-around$ python3 modules/web.py
Traceback (most recent call last):
File "/opt/meshing-around/modules/web.py", line 56, in <module>
httpd = http.server.HTTPServer((server_ip, PORT), QuietHandle
r)
File "/usr/lib/python3.10/socketserver.py", line 452, in _init
__
self.server_bind()
File "/usr/lib/python3.10/http/server.py", line 137, in server

bind
socketserver.TCPServer.server_bind(self)
File "/usr/lib/python3.10/socketserver.py", line 466, in server
_bind
self.socket.bind(self.server_address)
OSError: [Errno 98] Address already in use

cold jungle
deep igloo
#

Thanks for the suggestion. I just gave it a go, restarted, and I'm getting the same result.

dusky abyss
#

sudo netstat - lnp|grep 8080 ❤️

#

Break is over tho... Good luck! 🤞

gentle kestrel
#

8420 😉

#

It’s a very basic Python tcp socket bind (internal) httpd and I assume is colliding with native yes

#

python3.11/socketserver.py", line 472, in server_bind
self.socket.bind(self.server_address)

gentle kestrel
deep igloo
#

That worked!
Thanks so much

#

On a different note, I noticed something else that may or may not be already known.
When I use the Meshtastic Android app to connect to the femtofox via IP the MeshBot process gets pegged to near 100% CPU usage, and it stays there even after I disconnect the app. Only a service restart of meshing-around fixes it.

gentle kestrel
#

This limitation today is in the API and the foundational components

deep igloo
#

Makes sense, thanks for the clarification.

tacit brook
tacit brook
#

fancy ... I also did not know this existed ... It does look like it is not pulling all the data ... probably needs some love

#

seems only the second dashboard is missing data ... so we should be using report_generator5.py

tacit brook
gentle kestrel
#

The generator5 is HTML5 is all

tacit brook
#

anyone with issues on 2.6.4? sometimes the bot would not respond ... I recevie ack and I can see in the logs the bot thinks it is reponding but the messages never arives at the remote node

#

after donwgrading back to 2.5.20 everything works consistantly and as expected

#

this is on portduino and the bot connecting over tcp to localhost

quasi escarp
gentle kestrel
#

What’s the version of API?

#

I run all 2.6 now hardware and software. I am still on API 2.6.0

#

Only my rak/serial is live in public mesh and it’s also 2.6.4+/2.6api seems to be happy

#

Running client mute with a roof client

#

Also is this on luckfox?

tacit brook
#

how do I know the api version?

gentle kestrel
#

meshtastic - - version

tacit brook
#

this is raspbian lite

#

pi@meshpi:~ $ meshtastic --version 2.6.1

gentle kestrel
#

Try upgrading to 2.6.2 I skipped 2.6.1 myself and just put my production on 2.6.2 I will go for a walk and play some video poker

tacit brook
#

but I think I agree with @quasi escarp maybe give 2.6 a little more time

gentle kestrel
#

Possibly there are changes to network routing which would be good to also give feedback if applicable to #alphanauts-testing

#

I’m putting some 2.6 bots in lab under harder test conditions to see about issues here

#

If you happen to be dooin any fancy stuff like UDP or MqTT good to note

#

Try disable and see if problems continue

gentle kestrel
tacit brook
#

guess not .. replaced it with a more beefy one, and upgraded the meshtastic python library, and upgraded back to 2.6.4

#

let us see

tacit brook
#

okay seem fine now 🤔

tacit brook
#

now that I have the fancy dashboard it bothered me that the map is empty

#

so I did a bit of debugging but I can not see anywhere in your code that you are actually reading latitude and longitude from POSITION_APP

#

in system.py where you handle POSITION_APP ...

#

`keys = ['altitude', 'groundSpeed', 'precisionBits']

#

`

#

I would have expected to see latitudeI and longitudeI in that list

#

and then when you update positionMetadata add latitudeI / 10000000 and longitudeI / 10000000 as latitude and longitude keys

#

I have patched my bot and now the positions do show up ...

tacit brook
#

and the "whereami" command now also give my exact location

#

` # POSITION_APP packets
if packet_type == 'POSITION_APP':
if debugMetadata: print(f"DEBUG POSITION_APP: {packet}\n\n")
# get the position data
pos_keys = ['latitudeI', 'longitudeI']
keys = ['altitude', 'groundSpeed', 'precisionBits']
position_data = packet['decoded']['position']
try:
if nodeID not in positionMetadata:
positionMetadata[nodeID] = {}

            for key in keys:
                positionMetadata[nodeID][key] = position_data.get(key, 0)
            
            for key in pos_keys:
               coord = position_data.get(key, 0)
               if coord:
                    positionMetadata[nodeID][key[:-1]] = coord / 1e7
    
            # Keep the positionMetadata dictionary at 5 records
            if len(positionMetadata) > 20:
                # Remove the oldest entry
                oldest_nodeID = next(iter(positionMetadata))
                del positionMetadata[oldest_nodeID]
        except Exception as e:
            logger.debug(f"System: POSITION_APP decode error: {e} packet {packet}")`
#

the patched code

gentle kestrel
#

The reporting tool scrapes the log data

#

Specifically when it sees

DEBUG | System: location data for

It will map it

gentle kestrel
#

I can’t find a problem, I did clean up the code a little

#

The addition you have for keys won’t be used by the code

#

The bot is using the nodeDB for its own intelligence of location

#

whereami will give the address and grid if possible

whoami returns a lot more like lat/lon

#

My guess, your bot didn’t have the location data yet?

tacit brook
#

you are correct it does work fine, I was so sure it must have come from POSITION_APP that it is what I searched for and then added latitude and longitude to positionMetadata without knowing where it is even used ... from your nodedb comment above I think I now understand that everything gets dumped into globals()[f"interface{}"] and parsing is handled by the meshtastic library.

quaint hinge
gentle kestrel
#

Odd, I don’t know off hand

#

It’s serving the directory not index.html (has it been generated yet?) @quaint hinge

#

It’s not an automated process yet with femtofox to enable the log scraper. Would be like every day chron to generate a new index file

quaint hinge
#

I was reading your thing. But was confused why it didn't generate the site. It seams so it didnt made it

gentle kestrel
#

Try running as sudo (the HTML generator)

quaint hinge
#

jup that worked

stone lance
gentle kestrel
stone lance
#

I think if it's once per day, it might be ok...

quaint hinge
#

I have the scheduler enabled but its not sending msg. I was reading the examples and still didnt really understood. also looked in the meshbot py file and got even more confused

gentle kestrel
#

(A second channel)

#

The config shown here I expect the message Hello every hour

quaint hinge
gentle kestrel
#

Is the bot responding on the channel?

quaint hinge
#

yes

tacit brook
#

I might be late to the party but this UDP thing in 2.6 is great for hosting bots and other services without having the need of having a dedicated RF node

#

I nice way of getting around that multi connection issue that I often see raised in this channel

gentle kestrel
gentle kestrel
# quaint hinge yes

Try clearing the 24 hour setting - I know it works I get a message every few hours reminding me it works hehe

#

Value 18:50

#

It may clog up the logic I will test this in a bit

quaint hinge
#

ok I did and changed to 5min

#

interval

#

got the msg in channel 1

#

now I want to try messing around with the advacned scheduler

gentle kestrel
#

That is in the Python code today due to its limitless options kinda

#

Basically review the tail end of the python file and un-comment an example line

#

Or modify as needed

quaint hinge
#

do I comment out second pic stuff?

#

from the code it seams like it

gentle kestrel
#

Like if you need a reminder every 2nd Monday this would be the spot

#

I was debating adding more config.ini logic for simple stuff like weather but wasn’t sure if it was wanted / seemed like most wanted just a basic message for config.ini

#

When you commented it was confusing setting up the scheduler. I have had a equal hard time trying to figure out how to present it for easy use

gentle kestrel
#

I just got a weather notice from royal amateurs of Canada. This is odd place to get weather

#

But … the point of the story is, they included a link I previously couldn’t find.

#

It appears they may also have ddos with this off email

#

If that link recovers likely easy to use here in meshbot

gentle kestrel
#

Back online haha yes might be useable

gentle kestrel
#

Not having luck might be setup for no scraping

quaint hinge
burnt fractal
#

I'm going to speak in code like Penn and Teller on 'Fool Us' just in case, because this is undocumented.

I skimmed through here and didn't see anyone discussing, so I hope this isn't a duplicate question.

When doing some post installation shenanighans, I can see that a file needs downloaded and a specific name is given to this file. I can see another function checks for this file, and if it doesn't see this file, and a certain setting isnt there or is false, it does what it says on the tin (function A), but if a certain setting is true then then it does one of a couple things, depending on if a file exist (function B).

Am I understanding correctly what happens here, and with function B enabled there's not a way to call function A, but also function A must be enabled in the bot to use function B?

Sorry for speaking in code here, I just don't want to spoil the fun on undocumented features, but also trying not to botch my config too much. Feel free to DM me if you don't want to discuss in the open, and I can delete this.

#

Or if you like I can just be direct here with what I'm asking

gentle kestrel
burnt fractal
#

Responded to you, thank you

stone lance
#

Seen in the wild - I think it's yours

gentle kestrel
#

¿ako oslík z Macka Pú. stratil som sa.

unborn flint
#

I have googled my fingers raw and can’t seem to find the answer. Mesh-bot was acting squirrelly. So I did the natural thing and rebooted the pi.

While I’m waiting for it to reboot, the bot sends a transmission. I checked and somehow it automatically started on reboot. So I did the humane thing and killed it. It came right back to life.

Is my pi possessed?

I love learning new things.

tacit brook
#

sudo systemctl disable mesh_bot

#

to stop it from comming back

unborn flint
#

Thanks! I was almost there. But I used - instead of _

heady raven
#

aloha - it's nurse dude agian running meshing-around on a femtofox. i've got it going... oh yeah! having a dumb moment. how can i run the bot in the background. I ran this and another cmd. sudo ./launch.sh mesh_bot.py or sudo ./mesh.bot.py &

tacit brook
#

nohup ./launch.sh mesh &

#

you can try that

#

or nohup ./launch.sh mesh > /dev/null 2>&1 &

#

to not show stdout and stderr

heady raven
tacit brook
#

i'm not familiar with femtofox or if it has systemd but if you use the install.sh script on a rpi it installs the systemd scripts and then it installs under /opt and starts on reboot

heady raven
#

getting there... hihi
May 20 12:14:08 wh6gxz-fox bash[1574]: 2025-05-20 12:14:08,637 | CRITICAL | System: abort. Initializing Interface1 [Errno 2] No such file or> May 20 12:14:10 wh6gxz-fox systemd[1]: mesh_bot.service: Control process exited, code=exited, status=1/FAILURE May 20 12:14:10 wh6gxz-fox systemd[1]: mesh_bot.service: Failed with result 'exit-code'. May 20 12:14:10 wh6gxz-fox systemd[1]: mesh_bot.service: Consumed 8.699s CPU time. May 20 12:14:10 wh6gxz-fox systemd[1]: mesh_bot.service: Scheduled restart job, restart counter is at 24. May 20 12:14:10 wh6gxz-fox systemd[1]: Stopped MESH-BOT. May 20 12:14:10 wh6gxz-fox systemd[1]: mesh_bot.service: Consumed 8.699s CPU time. May 20 12:14:10 wh6gxz-fox systemd[1]: Started MESH-BOT.

#

sudo systemctl status mesh_bot.service
`● mesh_bot.service - MESH-BOT
Loaded: loaded (/etc/systemd/system/mesh_bot.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2025-05-20 12:15:37 HST; 7s ago
Main PID: 1872 (bash)
CPU: 5.269s
CGroup: /system.slice/mesh_bot.service
├─1872 /usr/bin/bash launch.sh mesh
└─1874 python3 mesh_bot.py

May 20 12:15:37 wh6gxz-fox systemd[1]: Started MESH-BOT.`

#

I've got to fix this other i'm looping a restart...

#

CRITICAL | System: abort. Initializing Interface1 [Errno 2] No such file or>
May 20 12:17:45 wh6gxz-fox systemd[1]: mesh_bot.service: Control process exited, code=exited, status=1/FAILURE
May 20 12:17:45 wh6gxz-fox systemd[1]: mesh_bot.service: Failed with result 'exit-code'.

gentle kestrel
#

Looks like meshtasticD isn’t running?

#

femto-config has all the setup

heady raven
gentle kestrel
#

If you used the foxbuntu menu to install and ran the bot and then installed it it’s gonna be messy yes

#

Just choose one method (ideally the foxbuntu menu)

heady raven
#

CRITICAL | System: abort. Initializing Interface1 [Errno 2] No such file or > May 20 13:00:12 wh6gxz-fox systemd[1]: mesh_bot.service: Control process exited, code=exited, status=1/FAILURE May 20 13:00:12 wh6gxz-fox systemd[1]: mesh_bot.service: Failed with result 'exit-code'.

heady raven
gentle kestrel
heady raven
gentle kestrel
#

If you cat install.sh it has all the uninstall commands to fully remove

#

Delete it all and try again

heady raven
#

Are You installing into an embedded system like a luckfox or -native? most should say no here (y/n
yes? I said 'yes' and wamO it's running... I'll have to log at the config.ini file to see how it got foofed.
Mahalo bro - for what u DO!

gentle kestrel
#

That works!

heady raven
#

if i have hawaiinet channel - how i output to that and dm? right now i run the cmd and it outputs to dm. this is a private channel i was thinking of outputing th bot info- to it as well

heady raven
#

can i output to the channel only hawaiinet... hmmm

gentle kestrel
#

It will respond on the added channel and ignore the “default 0”

#

So just add a channel to the foxbuntu node @heady raven

#

It should “just work”

gentle kestrel
#

For anyone UDP goofin’
See #meshtasticd message

gentle kestrel
#

Added a highFlyingAlert = true for catching stuff flying around.

@c.murphy360 got the idea from you

#

@urban jasper

heady raven
heady raven
gentle kestrel
urban jasper
#

@gentle kestrel interested to see your results. I know I see flying nodes in my location (near CLE) but rarely get altitude data needed to make the call. Typically I get a flood of new nodes around Lake Erie but the flying node tends to be out of range and I don't get a good position report.

Sometimes I'll get position but altitude is still off. A rabbit hole I should go down sometime is if altitude is using barometric pressure in Meshtastic nodes at all?

gentle kestrel
slow aspen
#

I have two nodes that should be syncing with each other (they both say BBS Link enabled with 1 peers)

#

how long does that take for them to sync

gentle kestrel
#

I don’t recall if there was a retry for lost packets, but I assume it would be what you have experienced

#

May need to be enhanced for some timeout retry

slow aspen
#

oh no they're both in the living room

#

after I posted that I found the scheduler on your readme so Im digesting that

abstract copper
#

Going to try to set this up on a spare pi b at a conference this week.. curious what people will do to it 🙂

abstract copper
#

Looks like people liked a lot of the door games. We got a few ideas on connecting a mud to it

abstract copper
#

I also turned on "command execution" in the hopes that people would try to hack it (it's a security convention, hey!) but realized that just turns on system stats. didn't try much else 🙂

gentle kestrel
#

Nice! Yea it should be safe! Glad it was fun! The problem with a mud is the sheer volume of text

heady raven
#

DA spudgunman you rock!

#

Yeah I'm playing with a few UDP nodes- no LORA radio attached to this node - it's running on a raspberry pi3b+ RASP OS, Meshtasticd daily download- OH YEAH mesh_hat
The BOT output comes from a FemTofox node (on the same network) running meshing-around which has a 5dbi alpha-I've been getting some interesting traces. a mix it seems of UDP - RF and MQTT... 73

gentle kestrel
#

Nice! 73!

lunar shore
#

So cool. I did a git pull the other night but wasn't read up on changes. This surprised me this morning... In a good way. Awesome feature @gentle kestrel @urban jasper Thanks

gentle kestrel
mortal shale
#

I need some way to SSH in over LoRa or something. I borked my config.ini and I'm glad I checked before I deployed the node to my friend's roof

humble roost
#

just got a femtofox pro and was wanting to install meshing around. Got in installed and somewhat setup except for the config.ini. I type in cp config.template config.ini

#

just says no such file or directory

#

Im connecting via TCP

gentle kestrel
humble roost
#

i did

gentle kestrel
#

It should place and start the project for you

#

So if you cd to /opt/meshing-around

humble roost
#

Im admittedly not the best at command line stuff

gentle kestrel
#

Try nano /opt/meshing-around/config.ini or find it with the GUI file explorer

humble roost
#

wait

#

theres a gui file explorer??

gentle kestrel
#

You can use tools to SCP file manage yes

#

WinSCP is popular

humble roost
#

sorry i thought you meany built into femtofox

#

downloading now

#

having issues with it connecting

gentle kestrel
#

Make sure you have a good WiFi connection etc

#

Or network

humble roost
#

wired

gentle kestrel
#

WinSCP uses SSH to connect

#

I think it’s on by default on the femtofox

humble roost
#

keep getting server unexpectedly closed network connection

#

tried ip address and femtofox.local:7681

gentle kestrel
#

Just connect to the IP no port, 7681 where did that come from?

#

You can also use the console and that nano command, on the femtofox command line can you ping your network?

humble roost
#

7681 is for the web interface

#

that worked

#

im in now

#

sorry about this

#

so in the config

#

the interface section

#

is that meaning for on the board itself? communication with radio?

#

or remote connection to pc ?

#

and i need to find the mac address of my radio im guessing?

gentle kestrel
#

The bot communicates with the API which runs firmware which runs the radio

#

It’s a full turn key, should start going once booted with a radio attached

humble roost
#

if i dm the node ping i dont receive anything back

gentle kestrel
#

Check the logs for the bot in /opt/meshing-around/logs

#

Give some idea as to its operation

humble roost
#

ERROR | System: communicating with interface1, trying to reconnect: Timed out waiting for an acknowledgment

gentle kestrel
#

Suggests the meshtasticD isn’t running

#

Everything should be turn key start here so something has gone sour

humble roost
#

I'll do some more digging

gentle kestrel
#

try a reboot (to cycle all services)

humble roost
#

I appreciate the help. I'll give ya a break for now lol

gentle kestrel
#

No worries, there is also #1329096340700921898 I won’t be around the hardware till this evening

#

If you still stuck I can boot a clean copy

stone lance
# humble roost if i dm the node ping i dont receive anything back

Just dropping in on my break. Things to check:

  1. did you configure the node itself first? At first run, it has no radio settings or configuration, so you either need to use usb-config (i.e. pendrive with config file) or run the sfc menu and use the setup wizard to set the radio type, etc.
#
  1. before enabling meshing around, make sure the node itself works - login using web interface or android, or use the contact app to send a few messages and check they're received.
#
  1. once it's sending and getting acks back, then enable Meshing Around.
humble roost
#

I was getting acks when i would message it and I just tested it and it sent out a test message

#

I'll run back through setup and see if i missed something

stone lance
humble roost
#

nothing from the bot

stone lance
#

Oh

#

Twiddle it off and on in the sfc software menu?

humble roost
#

ack meaning i direct messaged it and saw the lock

#

thats next i did an upgrade on meshtasticD

#

its still running

stone lance
#

Hmmm

#

I wonder if spud needs to change something to cope with the changed Meshtasticd location...

#

Ok, I'm out (for now)

humble roost
#

System: abort. Initializing Interface1 [Errno 2] No such file or directory: '/dev/ttyACM0'

#

where Im currently stuck

gentle kestrel
#

type = tcp
hostname = localhost

#

Should have set it for you .. will check it out this evening.

As long as it’s running should be good the location of the meshtastic bin won’t matter

humble roost
#

i uninstalled and reinstalled a few times and have it working currently

#

at least the ping command

gentle kestrel
#

All the others should work if that works

mortal shale
#

Wait is that a real thing?

odd void
#

Its been done before

#

He showed us in one of the femtofox threads a while back

lethal owl
#

I got the bot to work (from a pi 3 over tcp to a tbeam), but when I send a command from another node, and the response requires multiple messages, I get less than 50% of them.

#

the two nodes are close to each other... traceroutes show 6-12 dB

#

is this a known problem? should I try to add some kind of delay between messages?

#

just tested with wx and got messages 1, 4, 7 and 10 out of 10. A previous test got me 1, 8, 9 and 10.

stone lance
#

Also double check you'ee able to send full-length messages. Some radios choke at 150+ characters.

heady raven
#

Time for a dumb question is there a command line? I’m missing to ping another device. I do ping @node the output is in my case MQTT so zero

#

I’ve played around with a few variables. I thought it was time to ask.

#

Have a good aloha Friday mesh heads

gentle kestrel
gentle kestrel
#

Client mute as much as you can

#

I only have one client on my property at one time

gentle kestrel
lethal owl
gentle kestrel
#

It can handle a lot, but every node may have limits. Additionally the actual network needs to handle it as well

#

The bot code is actually throttling every 4 messages in batches to assist the firmware (serial backlog)

#

I lab on a rak and the hv3 which accept packets with no flaws I have sent hundreds of packets

lethal owl
#

I wonder if it's the t-beam

gentle kestrel
#

Having nodes in client mode close to each other won’t help at all

#

Client mute as much as you can

lethal owl
#

the t-beam is in client mute, I also have another node nearby in router late

#

I can't even get the two messages in response to cmd, only get the first or the second but never both

gentle kestrel
#

Likely too close

#

And router late could be delaying those packets with higher db so it wins

#

These are real world experiences the bot was written to help demonstrate and work with

#

There is a section in config.ini to rate limit and not use default values set

gentle kestrel
#

So 0.5

gentle kestrel
heady raven
lethal owl
#

tried splitDelay 0.5 and got more messages thru, but still missed 4 out of 10 on wx

gentle kestrel
#

I do not feel the bot is the issue it’s demoing the network

#

I try my best to keep everything as low as possible, if I was consistently getting 10 packets from Wx I need to correct it

#

I expect 10 only when crazy stuff is going on

#

Normal days should be half that

#

Power off the router and test

#

I will hook a tbeam up asap and slam some packets into it but I don’t think they have any limits to processing (similar to hv3)

lethal owl
#

the router is up on a tree

gentle kestrel
#

Admin switch it mode to mute for a second

lethal owl
#

tried delay up to 3.0s and still missed some, now reduced the chunk to 90 (and 3s delay) and it finally got all messages thru

gentle kestrel
#

The volume of data being passed is being stepped on by the router/repeating

#

Try dropping the delay now

lethal owl
#

yup, that's the next step

gentle kestrel
#

Also it may be fun to experiment with short fast and see how less packet correction gets faster

lethal owl
#

I do think it would be useful to include "chunk details" in the messages (i.e. "1/4") otherwise it's hard to know if you missed some info

gentle kestrel
#

I have thought about this much, it eats up 4 .. space is so limited

lethal owl
#

but if chunking is unreliable, it's important to know if you got incomplete info

#

even if it means sending one extra message in the end

gentle kestrel
#

This is a problem with meshtastic (not chunking) imo the 4 characters add up so that’s 40 extra in this 10 example

#

Data and airspace is expensive if you will

#

10 packets for weather is unusual I expect half

lethal owl
#

right, but if the whole process is unreliable, regardless of who's to blame, then knowing if a message was dropped is very valuable

#

I got missed messages consistently on the two chunk response to cmd

gentle kestrel
#

I hear ya, and requesting the data again or remembering it long enough to handle a request for part 4 of 20 gets complicated

#

I have as well as others done a lot of testing

lethal owl
#

I set the router to client mute, and still cannot get messages reliably unless 3.0s and chunks of 90

#

next will be to test with a different node for the bbs

gentle kestrel
#

One of the major reasons I haven’t “added a mud” or zork or adventure this and that is because it’s just too much data to feed into the mesh at once in long fast defaults

#

Turbo is realistic for more but not hops

#

Medium fast is snappy at one hop

#

And 10 is really pushing it but I have really good success with all bot functions at 1-2 hops over 40mile radius

#

One way you could do this is use the 'test’ function see how big of packets you can send

#

And also use news.txt line number it with 1. 2. 3. So you get packet count and ask for the news it will chunk and you can get consistent data (I kinda wanna see what Wx is making so much noise about!)

#

Try multi ping and see if there is a delay that makes reason

#

3 seconds is huge

humble roost
#

Does the QRZ work whenever a node is discovered by the node?

#

I havent seen it working yet

mortal shale
#

I just noticed the --tunnel command. Could I actually do a very slow SSH over that?

gentle kestrel
#

training = False

#

Will send DM hellos

humble roost
#

Training needs to be set to false?

#

I’ll try that

gentle kestrel
humble roost
#

ok enabled is set to true and training is set to false

#

does it build off of the node db in meshtastic??

gentle kestrel
humble roost
#

and keeps a log in qrz.db?

#

what do i need to view that?

gentle kestrel
#

It’s a sqllite table so any tools which browse or manipulate that data … which I should add to the report viewer @humble roost thanks for the idea!

#

When I get a second it will likely be a new tab on the reporting html

humble roost
#

new build and all. enabled and training is set to false. if i delete the node db in meshtastic settings when nodes are discovered by meshtastic they should get the welcome message? Am i thinking about this correctly???

#

And I appreciate all the help

gentle kestrel
#

And yes thinking correctly

#

No problem!

humble roost
#

still havent seen it work yet

gentle kestrel
#

How big is the qrz.db?

#

Try renaming it .old

humble roost
#

8kb

#

i keep getting permission denied

#

ok I got it renamed but it doesnt look like a new one was created?

gentle kestrel
#

When the bot starts it should say making a new DB

#

If not something is for sure haywire

#

I won’t be home till late this evening but will check I don’t expect this much trouble with it

humble roost
#

did a uninstall/reinstall

#

then a coulple reboots later it gave me the qrz message

gentle kestrel
#

Wacky, but that’s good it’s working!

humble roost
#

usually is for me

#

Thanks for the help

gentle kestrel
# humble roost Thanks for the help

Yea totally, glad it’s working now something must have needed recycled to get the new configs.

I also just updated the html report to include the qrz data it’s nothing exciting but shows the data anyway!

raw tulip
#

Maybe a silly question, but now that I've got an extra radio to play around with, is there an easy way to set up Canadian weather alerts and stuff to be sent out over the mesh? Unless I'm mistaken I'm not sure NOAA covers that

gentle kestrel
#

If you find one (ideally an API) for CAP code alerts would be sweet

#

There is a really nice webpage with alerts and such but it goes to blank data when I use BSoup to scrape

raw tulip
#

Gotcha, that makes sense

#

I'll definitely let you know if I ever stumble across anything

gentle kestrel
#

They are verbose! But the other page listed on the Canada gov page is not found for me

raw tulip
#

Classic lol

gentle kestrel
#

I will dig more when I’m on a computer

#

That page might work

#

I say that every time also

raw tulip
#

Much appreciated 🙏 if it ends up being usable and if you do end up writing something I'd be happy to do some stress testing, provided we get any alerts

gentle kestrel
#

Cool I will holla in the next 48 hours likely

raw tulip
#

It's wildfire season, so lots of air quality advisories lately. If those trigger alerts then we good

gentle kestrel
#

There is so much extra junk in these cap codes

#

They advertise the x/twitter account and emails and talk about service changes and upcoming releases

#

Meanwhile they don’t serve it up as xml but downloaded cap files

#

Oooooof

#

They also use miles in the xml not km hehe

raw tulip
#

💀

gentle kestrel
#

Yea how I felt when I started looking deeper

quasi needle
#

@gentle kestrel just want to say great work on this! I’m really enjoying this and it’s been very useful for testing! Im getting to the point that I have memorised all the dad jokes 😂

heady raven
#

Nurse dude really digs meshing-around. run it on it's own channel. HawaiiNet. People around BI and Maui play with it this @gentle kestrel I've said it before- MESH OUT people... MeshLove mesh_hat

#

have you tried wiki: blahblah?

gentle kestrel
#

I’m using a helper library to handle the rigidness of wiki search

mortal shale
#

What's the preferred way to update? Just git pull?

#

And restart the service

gentle kestrel
#

Otherwise yes

tacit brook
#

it would be nice if there was a command to show the bots current release version ... maybe included in the "sysinfo" command?

gentle kestrel
#

It is using the filemon/enhanced Sysinfo (if you see cpu temp you will now see bot update when git is updated)

tacit brook
#

seems I'm up to date 😉

gentle kestrel
#

Service notice: https://github.com/SpudGunMan/meshing-around/issues/162

tldr 2.7 firmware rate limits now and fix is to delay chunker (splitDelay)

[messagingSettings]
# delay in seconds for response to avoid message collision
responseDelay = 2.2
# delay in seconds for splits in messages to avoid message collision
splitDelay = 2.5
stone lance
#

Ben: "users won't notice the message limits"
Me: "hold my teacup"

#

Meshing Around: "wiki pages go brrrrrrrrrr"

amber badger
#

I think this still leaves open the possibility that two messages will try to go out within the same 2 second window in situations other than when chunking messages to the same user. IE two different client nodes issue a command at ~ the same time. But changing the response delay will prob fix this for 90% of situations.

amber badger
#

(Or the chunker is chunking away on a long message with proper delays for one user and another user issues a command while that's happening)

gentle kestrel
#

Yup this has actually always been an issue due to the serial nature.

#

Any request for internet if it lags too long will also hold things up

#

I have been testing with 2.2 delay on chunk split and used 2.5 to keep enough away from a variable 2 second watchdog across devices

amber badger
#

But in that case, the blocked message will eventually go out, right? Once the previous request has been handled? I don't know much about how the pubsub stuff works so IDK if the possibility exists that one could interrupt another or they could be executed "simultaneously" (subject to python's global interpreter lock).

gentle kestrel
#

So that is the issue i wondered about I felt I could squish 4 packets in a full rate prior and they got in the process loop in firmware ok

Latest throttling protections I am able to get one sendText() in every 2-3 seconds and keep the delivery of the parted message in tact played some games last night

#

The chunkr also was/is throttling at every 4 still

amber badger
#

Okay so looking at the pubsub docs, it looks like this is all synchronous (unless the meshtastic python library is doing some threading, which I don't think it is), so the fact that we sleep for splitDelay after sending each chunk, regardless of whether there's another chunk to send after, will prevent some of what I was concerned about (user A gets a message that needs a lot of chunks, user B needs a message in the middle of that) - in this case user B's message will simply wait until user A's are all sent, including a delay after the last message, so we won't try to send user B's message without waiting for the delay.

But I think we still have an outside chance of dropping a message -

12:01:00 - User A sends "Ping"
12:01:00 - Mesh bot sends "Pong" to user A
12:01:01 - User B sends "Ping"
12:01:01 - Mesh bot sends "Pong" to user B. Less than 2 seconds have passed. Message is throttled and dropped by the firmware. User B never receives "Pong".

#

A dirty fix would be just to move that add another "time.sleep(splitDelay)" to before "return True" the single-shot message sending else branch so it's executed for both the chunk sending as well as the single-shot message sending cases.

gentle kestrel
#

In early testing (meaning ages ago in code) I recall it would cache the inbound message and process it when it could. (Things may be ok)

I do think those sleeps are there now but I’m also not freeing up the loop while sleeping either to process inbound packets.

amber badger
gentle kestrel
#

Putting the response delay at 2 will help this

gentle kestrel
amber badger
#

The existing delay in send_message() won't prevent the case I described above, but there are a lot more time.sleep(splitDelay) calls in the code already than I realized, so it's possible that it's taken care of somewhere else. I'll try some stuff out but it's probably fine!

#

Sorry, responseDelay vs splitDelay, i was confused, you're right I think it's ok 🙂

gentle kestrel
amber badger
#

Haha I was very excited about the BaseUI changes so I updated all my nodes including the BBS one despite it being a bare faketec with no case or display attached, and suddenly my weather reports were missing a bunch 😅. Took a minute to figure out what was going on!

gentle kestrel
#

Patches in for FEMA iPAWS alerting. They now have EN and ES language I hard coded alert feed to EN (if there is need to expand to choices let me know but nothing else is ES why I left it)

Also per suggestion the FIPS code is now used to lower the API data requests on the fema site

#

The alerts also use SAME to further filter as FIPS are wide regions

gentle kestrel
#

Patches in for retry and disconnect problems which have been around since x9 interface hopefully corrected now.

gentle kestrel
#

Ok for real this time I think reconnect is fixed

#

This was 5m old issue due to a typo and not handling onDisconnect correctly

#

I do hope WiFi systems work better now

gentle kestrel
#

New patch in to combine message chunks when possible, holla if problems found

deep igloo
#

Hey @gentle kestrel thanks for the patch to handle the message throttling. It's working great.
On another note, I noticed that after the update I wasn't able to find the setting to change the high flying alert settings (we have mountain nodes that trigger it here in Calgary), copying the settings from config.template caused the mesh bot to fail, so I added a section to the config.ini under sentry to handle it. Seems to be working, let me know if it's the right way to do it. Cheers

gentle kestrel
gentle kestrel
#

delete the [highfly]

deep igloo
#

Ok, but when I did that it caused the bot to fail. I'll try again. Maybe I had a typo.

#

Failed with just removing [highfly]

gentle kestrel
#

I will be back at a keyboard in a bit to check

#

Out field testing code now actually

gentle kestrel
#

Interesting give me a few, to correct the template or the code ha not sure what happened

deep igloo
#

Thanks bunches

gentle kestrel
# deep igloo I am on 1.7.9

Double check you did get a good git pull in might test it manually and it may have been a typo which crashed it there

#

I don’t have a reference to [highfly] in any new code atm so it has to still be a old pull

#

When I first added this I put it in highfly and didn’t want to force a new section to upgrades and here I made a mess anyway doh!

deep igloo
gentle kestrel
narrow imp
#

Random dumb thought coming from #general, once more hardware arrives. CGI server. Meshtastic is far below the packets per second where you'd have problems running a cgi server on a pi or something and it'd mean you could write a BBS in a shell script if you wanted.

#

If nobody else has done it, I might consider doing it, might be a fun toy.

#

Came up mainly cus websocketd crossed my mind again - it's cgi-bin except it does websockets instead of http requests. (http://websocketd.com)

#

Could have it feed in full node data on each request as a bunch of headers pretty easily, including stuff like last seen gps location etc. Chuck it in an LMDB data store and call it a day, and could have it just call a shell script on a pi lol

gentle kestrel
#

The biggest issue is the little volumes of data, with no real ack

#

So framing is needed which eats up space 😦

#

I do think it would be fun to have apps in html5 which use a central server for game play or bbs, in the current scope of meshing-around/bot unlikely to happen

narrow imp
# gentle kestrel The biggest issue is the little volumes of data, with no real ack

I don't mean CGI as in a web server though, I mean the way of operating. The key behind CGI is that each request is handled by calling a short lived process, setting headers in env variables (in this case, identifying info about the remote node) and the message content in stdin, and stdout gets fed back as the response. When the process exits, that's when ya send it.

CGI is normally done by having the response streamed, and closes the TCP connection once the process exits, but that's obviously not going to work here.

#

The idea here isn't to do web, it's to completely abstract away the protocol handling, so the only thing the actual request handler needs to care about is env reading, stdin and stdout. It doesn't need to know how to talk the meshtastic protocol or how to talk to a device to do it.

#

Which us why you get a bunch of them written in perl lmao

gentle kestrel
#

Check out the GitHub. Shows off the basics anyway 🙂

narrow imp
#

I mean yeah but I think it'd be cool to be able to just write a shell script and that be a handler lmao

#

Might try making it when my next thing comes in as I'll have enough range I can actually send replies. Gonna pole mount it.

narrow imp
#

The idea is not needing protobuf. Or UDP.

#

Stdin and stdout is always easier lol

gentle kestrel
#

Well check out the stdout of meshbot!

narrow imp
#

Also means you can update it without restarting anything

narrow imp
gentle kestrel
#

Roger, don’t text and drive

narrow imp
#

Text and eep more, bed is warm and I can't see shit yet

gentle kestrel
#

Set up a meshbot to know when sunrise is

narrow imp
#

@gentle kestrel So I see meshbot here - the difference between meshbot itself and a cgi program is each of the modules would actually just be separate programs/scripts/what have you, and just be executed as they do.
There is also the fact that a lot of the automated systems may not apply here - cgi cannot do long-running processes, it's always 1 request to 1 response. But you could make a request be a message, or just node discovery info, etc etc. You wouldn't be able to do automated/scheduled stuff built in, that would be done with cron and curl or similar, and to make it actively send a message to a different destination, CGI would not work.

But for standard 1 request to 0-1 responses type flows, CGI is nice. Anything else would have to run outside of CGI.

gentle kestrel
#

Meshbot uses Python python

heady raven
#

Hey spudgunman-- should have ask about tsunami warnings...
the shorlines of our islands have been evacuated - sirens about every hour. HAMS are on it-- some live for this... ECOMM
https://40meter.net/
HF with HAMS on NVIS around the state of HI

*** meshing-around out put on my femtofox...

wh6gxz mini mesh 06:14 PM wxa 3717040459 wh6gxz-fox 06:14 PM Tsunami Warning issued Jul 29 at 5:10PM HST by NWS Pacific Tsunami Warning Center

gentle kestrel
#

Didn’t they go off for you?

gentle kestrel
#

This did make me think of another data point needed!

#

NOAA coastal waters forcasting is very handy imo

#

For all the sailors ⛵️

#
[location]
# NOAA Coastal Waters Forecasts Enable NOAA Coastal Waters Forecasts (PZZ)
pzzEnabled = True
# My Forecast Zone ID, https://www.weather.gov/marine select location and then look at the 'Forecast-by-Zone Map' and select PZZ zone
pzzZoneID = 132
# number of data points to return, default is 3
pzzForecastDays = 3
gentle kestrel
#

Did some other housekeeping as well tide and mwx are now a pair of enabled commands

lunar shore
#

Nice. Thanks. The high node ignore list ... .. I just spent a few weeks prob annoying folks by trying to get the altitude dialed in for my area.. planes vs towers vs mobile nodes atop hills and bluffs.. Might have to try that feature. someday.. I thought that chapter was closed. AHH!

#

jk seriousley thanks @gentle kestrel for all you do

heady raven
#

I’ve been busy being a nurse. Can’t wait to try this out Mahalo.

heady raven
# gentle kestrel

I didn't get the EAS info-
got the advisory info- part - the 2nd part.
I just updated the bot - i'm going to play with it. MAHALO BRO! 73

heady raven
#

just curious what I might have done wrong to get output like this
wh6gxz-ube 12:47 PM wxalert 3717040459 wh6gxz-fox 12:47 PM e

gentle kestrel
#

Did the logs show any errors? Or the alert was just e

heady raven
#

Hey spudgunman!
No error that I've seen. Here's the log stuff
LOG output..

`2025-08-02 12:26:14,431 | INFO | Device:1 Channel:1 SendingChannel: MOTD: Mahalo for using HawaiiNet! A hui hoi!

I like my motd message... hihi

*** Here's the wxalert info- no error that I've seen

2025-08-02 12:46:12,367 | INFO | Device:1 Channel:1 ReceivedChannel: wxalert From: wh6gxz-ube
2025-08-02 12:46:15,357 | INFO | Device:1 Channel:1 SendingChannel: e`

#

***From the MUDP app- you and pdxlocations made
been plating with it

RECV from ('192.168.86.39', 4403)] from: 3717040459 to: 4294967295 channel: 98 decoded { portnum: TEXT_MESSAGE_APP payload: "e" bitfield: 1

gentle kestrel
#

Will check further

gentle kestrel
#

Gonna watch this, not sure if the api changed

heady raven
#

Aloha - it looks like the cmd tide got the bot- that was a popular one here on the big island hawaii... maybe i missed something... that happens... any thoughts?

gentle kestrel
#

I don’t expect any issue with the tide command

heady raven
#

haha i just read my earlier post. i must have been tired. mesh_hat
i don't see the 'tide' cmd anymore on the cmd list.
tide cmd doesn't work anymore for me

#

3724247141 wh6gxz-ecom 07:26 AM Tide 3717040459 wh6gxz-fox 07:29 AM Bot CMD?:ping, bbshelp, bbslist, ealert, games, hfcond, joke, messages, moon, motd, satpass, CMD?, sitrep, solar, sun, sysinfo, valert, whereami, whoami, wiki:, wx, wxa, wxalert

#

otherwise it's all good
wh6gxz mini mesh 07:31 AM motd 3717040459 wh6gxz-fox 07:31 AM MOTD: Mahalo for using HawaiiNet! A hui hou.

stone lance
#

Does tide work if it's too far from a point it can report on the tides?

gentle kestrel
#

It will say (should) no stations

gentle kestrel
#

`

NOAA Coastal Data Enable NOAA Coastal Waters Forecasts (PZZ) and tide cmd

pzzEnabled = True

My Forecast Zone ID, https://www.weather.gov/marine select location and then look at the 'Forecast-by-Zone Map' and select PZZ zone

pzzZoneID = 132

number of data points to return, default is 3

pzzForecastDays = 3
`

#

Add that to [location]

#

Since PZZ zone and Tide stations go hand in hand I linked them

#

I just looked at this more and it seems Hawaii uses PHZ localized

#

Either way enable that, I will see what I can do - I need to find a raw product file for Hawaii it seems for the Mwx

#

Use a wild number like 000 or something it should just say no data

heady raven
lapis topaz
#

What's the recommended setup for BBS?

gentle kestrel
gentle kestrel
#

The advantages of Linux native are larger node tables

#

But any node works fine

lapis topaz
gentle kestrel
#

One big question would be how much ollama you want

#

Ideally use ollama off box

gentle kestrel
#

AI 🤖

lapis topaz
#

Oh, what is needed for that ?

gentle kestrel
#

Nothing - goofin’

lapis topaz
#

I have a colo w/ a virtual env..

gentle kestrel
#

Sorry misunderstood - to use ollama just need to have some GPU or CPU

#

It will allow a local LLM to interact as well

#

It’s just for fun but it’s the only resource hog

heady raven
gentle kestrel
#

Nice

heady raven
#

what about meshing-around on a cloud server pointing to a private channel running private broker mqtt... nurse dude Q--

gentle kestrel
#

Also a git pull will bring tide back

#

I need to iron out the coastal stuff for all over somehow

#

Only PNW office has the “ftp”

heady raven
#

Mahalo BRO @gentle kestrel
the tide CMD is back on HawaiiNet channel... for all your BOT and MQTT needs

wh6gxz-fox
4:10 PMAug 4, 2025, 4:10 PM
Tide Data for 2025-08-04
L 05:04 AM, 0.217
H 1:16 PM, 2.395
L 8:31 PM, 0.955
H 11:31 PM, 1.073

lapis topaz
gentle kestrel
#

Linux is the quick way / there is a docker as well if you in windows

lapis topaz
#

Just easier for me to spin up an Ubuntu VM..

gentle kestrel
#

Yea just git clone and either install requirements.txt or install.sh

#

Edit config.ini (copy of config.template) for the serial port

#

start it up and send a ping

lapis topaz
gentle kestrel
#

Any number of ways yes

#

The API supports IP

lapis topaz
#

k

gray igloo
#

this should wotk with meshtasticd right?

#

on the same pi

stone lance
#

Yes

gray igloo
#

Aight

stone lance
heady raven
copper pivot
#

Gotta try this out.

heady raven
#

Aloha Spud - and other MESH DEV heads... or potatoes.
Q: who can I get this on the awesome meshing-around bot
NWS High Surf Advisory for South Facing Shores of Kau, Puna, and Kona Districts o... https://evb.gg/n#e4zddnken6c/0hjOqHuc
Off to a meeting- yeah I work any day of the week

gentle kestrel
#

I don’t see the CWF as part of the API

#

I could be missing it

#

Anywhoo that’s the current status of expanding that report data

heady raven
#

Got the 16gb pi5 going to install meshing-around and Ollama on it. Currently I'm using meshing-around on femtofox - was thinking of linking it to pi5 ala Ollama -
might just prefer having it all under one roof-- 🤔 mesh_hat

gentle kestrel
#

refactored the coastal forcasting a bit so if you used the pzz data marine forecast or tide this is a change

#
# NOAA Coastal Data Enable NOAA Coastal Waters Forecasts and Tide
coastalEnabled = False
# Find the correct costal weather directory at https://tgftp.nws.noaa.gov/data/forecasts/marine/coastal/
# pz = Puget Sound, ph = Honolulu HI, gm = Florida Keys, pk = Alaska
# this map can help https://www.weather.gov/marine select location and then look at the 'Forecast-by-Zone Map'
# myCoastalZone is the .txt file with the forecast data
myCoastalZone = https://tgftp.nws.noaa.gov/data/forecasts/marine/coastal/pz/pzz135.txt
# number of data points to return, default is 3
coastalForecastDays = 3
#

config.ini section for [location]

#

purge the old pzz stuff

heady raven
heady raven
gentle kestrel
#

Goes in [location]

heady raven
#

`# NOAA weather forecast days
NOAAforecastDuration = 3

number of weather alerts to display

NOAAalertCount = 2

use Open-Meteo API for weather data not NOAA useful for non US locations

UseMeteoWxAPI = False

NOAA Hydrology unique identifiers, LID or USGS ID

riverListDefault =

NOAA EAS Alert Broadcast

wxAlertBroadcastEnabled = True

Enable Ignore any message that includes following word list

ignoreEASenable = False
ignoreEASwords = test

EAS Alert Broadcast Channels

wxAlertBroadcastCh = 2

Add extra location to the weather alert

enableExtraLocationWx = False

`

#

this is what i have now- so i'll stick it around here - config restart and oh yeah... hihi

gentle kestrel
#

Yea

heady raven
#

just modified this line. restart the up - State of HawaiiNet has updated costal stuff - mesh_hat

gentle kestrel
#

Sweet! I use it every day now!

heady raven
#

Here's the output for from mine... People around Hawaii use this info- daily...

848259041 wh6gxz-ube 10:37 AM mwx 3717040459 wh6gxz-fox 10:37 AM Fri before stronger ridging then builds by this weekend. $$ .Synopsis for Hawaiian coastal waters... Weak ridging is established over area waters through Wed. A weak trough moves through the region from the W Thu and

#

looks like I need to increase some of the output to get all the data

gentle kestrel
#

I also just pushed a patch to remove the noaa eol $$

heady raven
#

oh- it outputted once this way
wh6gxz-fox 10:33 AM .Synopsis for Hawaiian coastal waters... Weak ridging is established over area waters through Wed. A weak trough moves through the region from the W Thu and Fri before stronger ridging then builds by this weekend. $$ .Synopsis for Hawaiian coastal waters... Weak ridging is established over area waters through Wed. A weak trough moves through the region from the W Thu and Fri before stronger ridging then builds by this weekend. $$
FUN!

heady raven
gentle kestrel
#

No worries, enjoy the surf for me 🙂

heady raven
#

You are Da Spud maN
mwx 3717040459 wh6gxz-fox 10:49 AM .Synopsis for Hawaiian coastal waters... Weak ridging is established over area waters through Wed. A weak trough moves through the region from the W Thu and Fri before stronger ridging then builds by this weekend.

gentle kestrel
#

I would say surfs up but .. surf is not up

heady raven
#

https://tgftp.nws.noaa.gov/data/forecasts/marine/coastal/ph/phz100.txt
The .txt file gets updated daily it appears. should the line here in the .ini file be
https://tgftp.nws.noaa.gov/data/forecasts/marine/coastal/ph/
curious...

#

i changed it to big island hilo .txt. i see output for other islands as well the over all one with a bit less detail. cool stuff

#

wh6gxz-ube
11:41 AM
mwx 3717040459 wh6gxz-fox 11:41 AM .TODAY...E winds 10 to 15 knots, becoming E NE 15 to 20 knots this afternoon. Seas 3 to 5 feet. Wave Detail: S 4 feet at 14 seconds and E SE 3 feet at 7 .Wed...NE winds 15 to 20 knots. Seas 3 to 4 feet. Wave Detail: E 3 feet at 12 seconds. Isolated shwrs. .TONIGHT...E NE winds 15 to 20 knots. Seas 3 to 5 feet. Wave Detail: S 4 feet at 13 seconds and E 3 feet at 7 seconds. seconds. Isolated shwrs.
COOL!

heady raven
#

This is an interesting function.
Maybe something for ecomm - ARES, CERT or something...

gentle kestrel
#

Updates to Sun and Moon / Space module 🌞🌕

quaint hinge
#

what would be the propper way o upgrade while saving the data

#

also when testing one of my nodes arent getting response from it. Both sides nodedb was reset. it insta shows the lined over cloud

gentle kestrel
#

After that a git pull will update

gentle kestrel
quaint hinge
#

ok just forgot some stuff over the past few months. had it runnimg all the time and getting my morning weather

gentle kestrel
#

I have a lab branch up for the new

Ollama model to use (defaults to gemma3:270m)
or using ollamaModel = gemma3:latest

that 270m is 300mb and performs well.

#

These new models don’t system prompt like prior gen. I’m getting the first or second ok but it bonks out after that, it just can’t handle the verbose input it seems

#

Without a classic system prompt also hard (or I don’t have a way yet) to stuff in metadata like context from google

#

Irony ..

#

Anyway something I’m working on, and trying to iron out. Have yet to get tokens to limit with it. If interested to test git pull && git checkout lab

#

Might need a new ollama rev installed but it otherwise should pickup and run

#

I should mention 370m parameters is very small and should load on smaller equipment well, for example its very speedy on a pi5

stone lance
#

Higher ram models, I'm guessing.

stone lance
gentle kestrel
# stone lance Was there another one with more generic context?

For Gemma I think the new light model is the newest build? the trend seems to be to lower the need for a prompt and just let it answer?

The biggest hurdle I see so far is sometimes it will answer with like 3 paragraphs of data, like asking it how to start a fire it just goes nuts with safety I can’t seem to shut it up

#

It will listen to a prompt and work like 1/5 times but also constantly say.

Ok so you want to learn how to start a fire in 450 characters or less here is how..

gentle kestrel
#

But the language back is just blathering LLM, the link to context is not like it was

#

That said the model at 270m isn’t a waste - it’s got a lot of data in it from what I can tell

gentle kestrel
#

Some positives about the new input I read a doc about how tooling is really easy to do

#

If it’s as easy as it shows ..

mortal shale
#

How well tested is the multi-interface stuff?

#

I think I'm seeing a bug where responses only go out on one interface

#

I think it loses track of which device the message comes in on, then always responds on device 1

#

Correction: I think the code that identifies the device isn't working. I have two radios on different presets and messages from both showed up as from Device1

#
  INFO | Device:1 Channel: 0 Received DM: ping From: WJ-Indoor
 DEBUG | System: Bot detected Commands:[{'cmd': 'ping', 'index': 0}] From: WJ-Indoor
  INFO | Device:1 Sending DM: 🏓PONG SNR:2.0 RSSI:-68 To: WJ-Indoor
  INFO | Device:1 Channel:1 ReceivedChannel: ping From: WJ-Indoor
 DEBUG | System: Bot detected Commands:[{'cmd': 'ping', 'index': 0}] From: WJ-Indoor
  INFO | Device:1 Sending DM: 🏓PONG SNR:6.0 RSSI:-64 To: WJ-Indoor
  INFO | Device:1 Channel:0 ReceivedChannel: Ping From: WillBatt
 DEBUG | System: Bot detected Commands:[{'cmd': 'ping', 'index': 0}] From: WillBatt
  INFO | Device:1 Sending DM: 🏓PONG SNR:5.5 RSSI:-53 To: WillBatt
  INFO | Device:1 Channel:1 ReceivedChannel: Ping From: Wija Will
 DEBUG | System: Bot detected Commands:[{'cmd': 'ping', 'index': 0}] From: Wija Will
  INFO | Device:1 Sending DM: 🏓PONG SNR:10.25 RSSI:-47 To: Wija Will
  INFO | Device:1 Channel: 0 Received DM: Ping From: WillBatt
 DEBUG | System: Bot detected Commands:[{'cmd': 'ping', 'index': 0}] From: WillBatt
  INFO | Device:1 Sending DM: 🏓PONG SNR:5.75 RSSI:-49 To: WillBatt

Wija Will and WJ-Indoor are both on MediumFast
WillBatt is on LongFast

gentle kestrel
#

I do use nodes like 1,3,6 just to keep it spicy

mortal shale
#

Hm, could be. I haven't eliminated that

gentle kestrel
#

What’s the interface part of your config.ini look like (I can’t find a issue off hand in testing some pings around the random radios)

#

They go only where I expect

#

(And as I assume others would)

gentle kestrel
#

I got the new Gemma3 to system model a bit, but oh my goodness don’t ask for a recipe it will return a lot of data

stone lance
#

Been there.

#

Tell me how to make Yorkshire puddings, not the history of Yorkshire!

gentle kestrel
#

It’s missing something..

#

But it confidently will give a lot of info

#

Old Gemma used more ‼️🏍️

stone lance
# gentle kestrel

I have no idea what it's trying to make, except seasoned water biscuits...

gentle kestrel
mortal shale
#

I just sent a remote admin command and it murdered the bot's connection to the device. Definitely something to watch out for

#

I didn't think it would do that since it came over LoRa rather than another external device

gentle kestrel
#

Yea limits of connections and if the setting reboots even more fun, also is a mess if you have a mobile connected.

quaint hinge
#

What can I do to see why it failed? I noticed after some time the bot wasn't sending its normal msg so I checked and saw it failed. Tried restarting nothing, no other conflict running, no client connection

gentle kestrel
quaint hinge
#

Before the update was working for months. But now I think like a day or two

gentle kestrel
#

journalctl -u mesh-bot.service or the logs in /opt/meshing-around/logs to get an idea what happened

#

Interface gone offline? Disk space issue?

quaint hinge
gentle kestrel
#

Oops try mesh_bot

quaint hinge
#

Looking at logs and can't find anything wrong. Except no logs from current last fail only yesterdays logs while it was working

gentle kestrel
#

What if you go to /opt/meshing-around and run mesh-bot.py

#

It loads in console?

quaint hinge
quaint hinge
#

Am I dumb or there something wrong with the start

gentle kestrel
#

That error isn’t me I don’t think - looks like a modified file?

#

That / at line one character one is bad

quaint hinge
#

What it should be?

gentle kestrel
#

Delete the / or do a git reset --hard HEAD to remove local changes

quaint hinge
#

Deleted that slash saved and reboot just in case and that slash is back

#

Doing the other command

#

Ok its now running, but after a reboot that slash is back...

#

I need to check what edits the file

gentle kestrel
#

Yea that’s .. interestingly odd

#

I don’t expect anything to add a / to the first position of that file

#

Should start off with a classic Python shebang

#!/

quaint hinge
#

I don't know Python but when I read I understand

#

When I change something in the file it stays changed but that slash still gets added after a reboot

#

Will continue tomorrow

gentle kestrel
#

Permissions problem?

#

Is it there in the file?

#

Very unusual

tacit brook
#

have anyone had an issue where the bot is not responding to messages? I can see in the logs it is receiving the message, and that it thinks it responded but the message is never received

#

it only happens like one out of three messages

tacit brook
gentle kestrel
#

How close are you?

tacit brook
#

couple of meters

gentle kestrel
#

Could be too much gain still

#

Try further away

tacit brook
#

that might make sense

#

let me try

#

hmmm similar results

gentle kestrel
#

Long story short - it looks like a RF issue

#

Part of the purpose of the bot is to examine and understand the network

#

Switch to a channel where there is less overhead of encrypted DM’s

#

(Set up a channel or if no one around disable spam protector and test on default)

#

For example, I never got the 220 🙁

tacit brook
#

cool I'm doing some tests now, I think you are right

stone lance
#

Would be good to ask it for specific packet sizes?

#

I use that test on random radio modules to check they're ok

gentle kestrel
# stone lance 200 is the max 😉

Every day more taxes on the tea! 🫖

The last change was 220 from you now it’s 200!

Could change the logic to be

Test x

If x is over 10, use x for length and not 200/x ?

stone lance
#

Idk, you know me. More complications are possible!

#

Yes, or just cmd Size xxx

#

Size test

#

Idk

tacit brook
#

okay I set all the indoor nodes tx power to 1dbm and it seems to be working better now

gentle kestrel
#

I didn’t correctly adjust last time

gentle kestrel
stone lance
#

I was thinking could ask for airtime test, or something.

#

Or report packet airtime in the packet.

gentle kestrel
#

I miss the days of zero wait between packets

stone lance
#

Packet airtime. There's a formula somewhere.

#

(Payload length + header) x something

gentle kestrel
#

Oh I get ya now ..

gentle kestrel
#

If you got any formula I found a delay.

I remember seeing a time chart once and all this hashed out

tacit brook
#

what a great little stress test TIL 👍

gentle kestrel
#

So I’m debating just moving to the new light model, because it’s 300mb

And it’s funny enough alone.

This would be a big change in that no ‘Google’ used for context for “truth” anymore

#

I would drop the include from requirements, and anyone who uses? A prompt would re add it?

#

If you do use this seriously and these changes would be a mess let me know

#

I will set a config value to easily fallback to gemma2 prompt vs gemma3 “raw” input

stone lance
#

Might get a pi4.

gentle kestrel
#

(Or a 1:1 api project)

stone lance
#

That's pretty funny

gentle kestrel
#

I tried it a few times and it just hangs

#

I asked it about the 30th digit of pi and it gave me a 14 bubble response so; I will be adding a hard limit or possibly recycle it back to condense its self

#

I should say; if you allow public use of this it could get wild. I’m gonna ideally add tooling in

gentle kestrel
#

Gave LLM a little work today (still on lab branch) tidy up the new Gemma prompting

#

Also forgot to mention got this refactored

#

Use a sextant to locate your pirate treasure or something off grid

stone lance
#

What is a pirates favourite letter?

tacit brook
#

r

stone lance
tacit brook
#

talking about guessing letters ...

#

trying out "contact" the curses based meshtastic client

quaint hinge
gentle kestrel
#

Dropped a release with gemma3 light 270(300mb) which can run more places

#

Also lots of other cleanup and a new default mode for commands to be explicit

#

So this ping won’t do anything by default

#

Ping this will

gentle kestrel
#

USGS data feed

heady raven
#

volcanoai is on channel 1 - help-- this is a pi5 16gb- when i get the bot output right and i'm not razzing the public channel - i'm going to enable ollama

gentle kestrel
#

What’s the radio configured for channels on firmware this config excerpt would ignore channel index zero it would listen and respond on DM for channel one

heady raven
#

this works and output to the channel VolcanoAI
not dm

`[general]

if False will respond on all channels but the default channel

respond_by_dm_only = False

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 = True

ignoreChannels is a comma separated list of channels to ignore, e.g. 4,5

ignoreChannels =

require ! to be the first character in a command

cmdBang = False

require explicit command, the message will only be processed if it starts with a command word

explicitCmd = True`

#

worked it out! just needed to play with it...
...and the usual comedy of errors hihi node config