#meshing-around BBS/utility BOT

1 messages · Page 4 of 1

gentle kestrel
#

Could possibly add a webUI just haven’t for the bulk of it

#

Extra includes etc

sick nymph
#

oh, I did think of one question. currently the library gets mad if the input isn't exactly the SAME string. multimon output usually starts with the encoder and the line(s) of SAME messages start with EAS. This currently seems to make the library mad so we hacked together a script to clean up the data before feeding it through EAS2AText. Do you have any plans to do data cleanup organically? (If not it's cool! I think we have a working solution, we just haven't got to test it on an actual real OTA alert)

gentle kestrel
#

The real OTA data is what I’m finding as the challenging part of this as well, any tips for testing code aside from once a week at noon hehe

sick nymph
#

the only other solutions we've come up with are via an audio file and a legally dubious method that can't simulate a distant station anyway 😅

fallow crystal
sick nymph
digital tartan
fallow crystal
jade briar
#

Been testing auto ping updates. Working well. 50 autoping from 3 devices at same time no problem now.

#

Re the jokes module, were you going to pull the emojis?

gentle kestrel
#

Do a pull 🙂

stone lance
#

Can I make a request?

#

Some kind of length checking cmd?

#

For testing good Vs bad radios

#

Longack or something

#

And maybe the other way around, an autoping, but for really long messages

#

I have about 15 radios I need to test, and it's getting tedious.

gentle kestrel
# stone lance Longack or something

A proper require ack over the air?

one issue I find is the longer or larger messages don’t have airtime to get the ack out, I will test a few ideas see if it hangs up too bad

#

Best case yea should be able quickly add that, worst case might need sent off threaded

jade briar
jade briar
#

I broke it again

#

I think this is because the heltec wifi connection is flakey at the best of times.

#

this was Ping 50 #coverage test dufhfjfjfififufififjrirufjfjfkgckgjcjgkfjdsusysysaqrtiopokkjgdazzbcngmlhofkgigifigiggigigoggifififififififigkmccjcjgjgkfifififfifududshjklllgkgkgkfjfjfjfjfjfififififkfkfkfkfkfif

gentle kestrel
#

This appears to be a loss of TCP

jade briar
#

three nodes hitting poor meshbot at the same time (strees test)

gentle kestrel
#

Haha nice what’s the power to it

jade briar
#

its plugged into a usb charging hub, 2 amps

gentle kestrel
#

That’s just at the limit of ok imo 3 if you can or a stiff 2.5

#

Double so if using a power chomping pi

#

Also if you’re using DNS (meshtastic.local) might be worth some seconds to drop to IP only no name

jade briar
#

ok ill try again, ill plug it onto a portable power pack and see how that goes. oh its just the heltec v3. meshbot is run on synology nas vm runing debian server. conection is via wifi.

#

all static ips

gentle kestrel
#

Oh yea I remember the nas thing now. Can also try flipping the hv3 90 in phase to other stuff see if it helps, make sure the USB supply cable is nice

jade briar
#

USB cable is a good one

#

give me a clue 90 in phase

gentle kestrel
#

Rotate the device 90 degrees

#

All the competing RF just throwing noodles to try and get it stuck

jade briar
#

I think the v3 ethernet was just overwhelmed with the shear volume of traffic. The issue is the code is still running but hung

#

and ill rotate 90 and try again

gentle kestrel
#

Yea it lost the pipe

#

I can’t do much

#

I can edit and dump it but if it’s gone

#

The meshtastic API will try to reconnect but this case it’s gone

#

Aka no route etc

jade briar
#

ok I thought id let you know, was a bit of an extreme test. ill rotate 90 and thrash it again

gentle kestrel
#

Yea good test, in the case of wireless like this to an esp .. it’s difficult if meshtastic api can’t find the device I can’t either

gentle kestrel
#

Also just pushed a optional wantAck

jade briar
#

3 autopings with long message 60-70% charged util. Giving it shit

stone lance
#

Yeah, my roof node is definitely crap

#

and the pi doesn't want to stay on wifi for more than 48 hours...

#

grrrr

gentle kestrel
#

Let me know if that’s what you thinking

jade briar
#

test 4 crashes

#

test4 imediate crash, I have games disabled if that makes any difference

#

require ack is on to

gentle kestrel
#

had sudden fear someone would pull in this window haha

#

Should be good now

jade briar
#

Is scheduler functional?
And where do we add in code now?

gentle kestrel
#

Yes to the scheduler and, add in code? Didn’t understand

jade briar
#

See mesh_bot.py around line 425 to edit the schedule. See schedule documentation for more.
I could be blind but didn't see anything
Leave that for now and I'll have another look at it
I might bang on bbs stuff next see what I can find

gentle kestrel
#

Time has flown its line 1050 now

jade briar
#

Ah that's what I was missing
Thanks
I have a few ideas for bbs but let me play first

gentle kestrel
#

Put some enhanced logic in for the new Buffer Test

#

The user experience is better overall

jade briar
#

bbs stuff looking good so far, looks like you have already done what I was thinking so thats cool

gentle kestrel
#

Awesome, good to hear it’s working well!

#

I got this BufferTest dialed in a bit more it’s a handy idea @stone lance I’m likely going for a drive tomorrow and test this out a bit more

#

One thing this shows off quickly is the difference of medium fast and long fast on data delivery

#

If anyone has a more exciting idea for junk data vs 01010

jade briar
#

crash report

#

thats sending test4

#

or anything after test for that matter

gentle kestrel
#

It has you locked in a game possibly

jade briar
#

test 4 causes this to crash. just done latest pull to

jade briar
gentle kestrel
#

Looking now, the other image looks like it failed?

jade briar
#

first image hung, second crashed

gentle kestrel
#

Yup got em now; hopefully also fixed issues - thank you! @jade briar

jade briar
#

hope you dont mind me being picky

gentle kestrel
#

No, it’s kinda fun of the project is meshing around with it

jade briar
#

yes ive had fun meshing around to

#

im just playing with scheduler, how hard to make a scheduler file for all the stuff thats in mesh_bot?

gentle kestrel
#

Like a test routine of sorts? Or something functional otherwise

#

I have some janky test scrips I could cleanup

#

A config.ini for schedule

jade briar
#

so i dont have to keep editing mesh_bot after a pull, keeps it all in one place so

#

yes

#

that be perfect, that was what I was getting to, haha

gentle kestrel
#

Oh right that is a problem..

jade briar
#

nothing major just improvements

#

test 4 working now

#

and no crash on test4

gentle kestrel
#

I couldn’t think of a way to convert the complex logic of Python schedule into a useable .ini format

I will hunt around for ideas on how to clean this up

jade briar
#

scheduler sending joke to ch every 2 minutes so thats looking good

#

and what is bbs link ?

gentle kestrel
#

So if you had a reason or a need to synchronize two bots

#

I haven’t done a lot of real world testing with that command yet

#

Gotta get a bot on solar

jade briar
#

ok ill leave that for a while

gentle kestrel
#

You can run the command and get the idea of its use

#

It’s like Bbspost but automated

#

The BBS is really intended for a shared campsite or dropping bots on trailheads or off-road info cache

#

“The padlock combo is”
“How to use the bot”
“Directions to camp”
“Bunch of free apples”

jade briar
#

yup I get it

#

also usefull on a mesh though

gentle kestrel
#

Yea I hope it is 👍 I would suggest setting the bbslink on a sysadmin channel as to not confuse people as well

#

So if you had two mesh-bots in a mesh have channel 3 let’s say be “mesh-admin” and it would be set to pass the data out of view for most

jade briar
#

where is the settings for bbs link, its not in config.ini

gentle kestrel
#

I just patched to not use channel 0 as an example

jade briar
#

found it its this command

#

Send bbslink looking for peers every other day at 10:00 using send_message function to channel 3 on device 1

    #schedule.every(2).days.at("10:00").do(lambda: send_message("bbslink MeshBot looking for peers", 3, 0, 1))
#

dont have another bot to test that yet. could spin up another vm i suppose and find another radio. Ill save that for a rainy day. That be tomorrow i suppose. and we meant to be summer

gentle kestrel
#

Yup that’s the one, it initiates the sequence

gentle kestrel
#

Pressed a release

#

Lotta fixes all around

broken sorrel
#

and the reporting tool - what port?

#

just planning out the femtofox web interfaced and trying to avoid collisions

gentle kestrel
broken sorrel
#

ahh, it's not a server itself

#

got it

#

we'll still probably stick ours on 8080 or something

sick nymph
#

@digital tartan hey, finally able to get to play around with the improved version of the script, just testing on the audio file right now. It looks like it doesn't strip out the
Enabled demodulators: EAS EAS (part):
prior to the SAME string. I'm looking through mine and your updates to see if I can find where that's missing

#

although, playing around with just the text file and manipulating that, it's really just the "(part)" that is making EAS2Text mad

#

EAS2Text is happy with:
Enabled demodulators: EAS EAS: ZCZC-WXR-RWT-020103-020209-020091-020121-029047-029165-029095-029037+0030-3650000-KEAX/NWS-

It is not happy with:
Enabled demodulators: EAS EAS (part): ZCZC-WXR-RWT-020103-020209-020091-020121-029047-029165-029095-029037+0030-3650000-KEAX/NWS-

digital tartan
#

oh I see

#

oh lmao also commented out the import when I was testing

sick nymph
#

lolol ope

#

I didn't even notice that lmao

#

Okay yay! Now it's happy!

#

now just to wait until wednesday for real-world test. I'm gonna play around with some other RTL stuff until then to hopefully dial in the settings (and make sure my antenna isn't laying on my desk 😅)

fallow crystal
#

By the way, for you guys, there may be a script that you want to use other than this one that gives a better output for monitoring alerts. It’s the one I tend to use, and I find it way more reliable.
Look into cbs228/sameold, it’s a complete demodulator just like dsame but it uses rust

#

I prefer it because it tends to work a lot better and consistently.

sick nymph
#

yeah but rust is different and scary

gentle kestrel
#

I got them all documented in the EAS notes for the project 🙂

fallow crystal
#

(It also compiles for every platform)

#

Side note on EAS2Text update, new FIPS DB is coming along nice, and Canada support is there too!

fallow crystal
jade briar
#

here is screenshot of bbslink behaviour

#

not 100% I have it set up correct yet

#

2 instances of bot running, 2 radios with the same channel setup. Ch 1 is the bbslink ch

#

once it gets the bbslink command it goes a bit crazy. not sure where it is getting the game stuff from ?

#

and the radios are in the same room , seems to find a few hop counts from someware ?

gentle kestrel
#

Yes that is strange

gentle kestrel
#

Yea for sure was

gentle kestrel
#

Hope that is resolved as well @jade briar

jade briar
#

Ok I'll give it a go

#

got rid of the game and hop stuff, still has a ping pong war

#

its responding to the meshbot message - try sending ping

#

can change the message in config.ini?

jade briar
#

Thats a bit of a bodge way to fix it though

gentle kestrel
#

No it should have caught that all the changes to ping something going down

jade briar
jade briar
jade briar
#

looking good

#

just need to check post propogation between bots now

jade briar
#

yup messages are moving between bots, awesome

gentle kestrel
jade briar
#

one more thing while I think of it

#

what about a limit to the autoping of say only 2 instances at a time. that can quickly over load the mesh and as it grows the chances of lots of people trying at once grows ?

gentle kestrel
jade briar
#

Bbslink update
After playing with 2 bots and bbspost propagation between them;
As the number of posts grow chutil gets way up when bbslink runs. This can be offset by making chunker delay 1 to 2sec. This increases reliability of message transfers and bbslist reading.
Deleting post needs to be done on both bots otherwise when the links run the undelete messages on the other bot get pulled back.
Don't think this is worth worrying about as long as you are awear of it it can be managed.
I was testing with a link freq of 20mins on both bots.
To summarize- its working very well, no crashes.

gentle kestrel
#

I suspected a time buffer was needed I will look at adding one, the delete of posts is an interesting problem, I should also add a note about that yea

I’m not sure its’s ideal to run a sweeping delete, while the post permissions would likely prevent any problem of purging

Having sysop management of the posts seems more important generically

having a post synch-purge logic is possible but like you said is it needed

jade briar
#

running latest pull

#

2 radios, 1 long fast the other short fast, different slots

#

repeater mode enabled with 0,1,2,3,4 channels enabled

#

crash report attatched

#

partial crash, hasnt gone to prompt

gentle kestrel
#

All the RF caused WiFi to dip

#

What’s the power supply to the nodes

jade briar
#

meshbot radio is heltec v3 on usb charging bank talking to nas vm via wifi for code. about 2 amps for heltec so should be heaps.
Call that one a false alarm them

gentle kestrel
#

Did it calm down for you? @jade briar I run medium fast and longfast with no issues I have tested serial and WiFi in this configuration

jade briar
#

Still playing but it looks like it is passing messages across.
Need to hook another radio onto short fast to test properly
The two channels are totally separate and only messages pass between on configured channels?

gentle kestrel
#

Yes copy the string, text messages so more finite, with the advent of 2.5 it gets muddy modifying from headers reflecting packets

jade briar
#

Passing dm would be very difficult id say and keeping them seperate keeps a lot of background activity isolated

gentle kestrel
#

Yea, it could be a real bugger. If you ran the bot on 2.4 modded firmware I did get a nice idea going but the risk to bad keys all over, it’s not a good time for usability possibly later reexamine it

jade briar
#

a bbslink observation.

#

15 odd posts on each bot, chunker delay 2.1 seconds works well and keeps the channel utilization down.

#

I have had it get over 60% if chunker delay is low

#

even 5 seconds for chunker delay if it was coded in as its a background task and gives others a look in?

gentle kestrel
jade briar
gentle kestrel
#

If it’s all a planned architecture anyway two mesh-bots share a back channel for example

jade briar
#

yes i have a bbslink channel only on the 2 bots, this sort of stuff does need some planning. The linking stuff happens in the background so to speak, only indicator is spike in channel util.

#

how many bots do you think the bbslink code will handle?

gentle kestrel
gentle kestrel
#

Put some throttling in as well as locked this feature (bbslink) down. Disabled by default with a optional whitelist

gentle kestrel
#

I did use a 5 second fuse so if your delay is set high, fyi

jade briar
#

Ok I'll give it a go
I think 5sec will be perfect

sick nymph
#

EAS TEST DAY

#

Antenna is in the right spot. Script is set to the correct freq. Now to wait for about 55 more min 😅

gentle kestrel
#

Any success?!

I got this the other day at 2am forgot to mute channel haha

gray igloo
#

haha

sick nymph
#

script caught it

#

AND

#

output to alert.txt without exiting the script!

gentle kestrel
#

Nice!!

digital tartan
#

yay!

#

wait did alert.txt get cut off?

gentle kestrel
#

Yea look like it

#

After Franklin

#

It’s not clear where the breakdown is (could be a new line not reflected on screen) if line.startswith("EAS:") or line.startswith("EAS (part)

#

It’s not collecting all that string or the string broke or the last line isn’t being written

#

The .ogg file should have similar problems ? Did you happen to record the test today

digital tartan
#

it shouldn't. in the first screenshot it says "got message ___" with entirety of the decoded message

#

luckily the original file output.txt got saved

gentle kestrel
#

What’s contents of output.txt @sick nymph

sick nymph
#

It was full after I closed the script I got some weird output standby

gentle kestrel
#

Ahh I was standing outside, with a portapack and .. thought I properly hit the record button but can’t see the lcd in daylight haha and .. didn’t hit record

#

Or it failed .. nothing on sdcsrd

#

Doh! Next Wednesday ..

fallow crystal
#

So, I can’t provide over the air solutions for testing, but if you want to test those systems by patching in an audio source (like web audio) I can provide a test feed

gentle kestrel
#

I just got the one audio sample test. Do you have a collection of random alerts for a wide sample?

#

I tried testing against a YouTube compilation but not sure if I had a error / bad bitrate need to explore more

lone wolf
#

Any chance we can get a unit selector? Metric vs Freedom?
INFO | Device:1 Chunker1/3 Sending DM: Afternoon Partly sunny, with a high near 9. SW wind around 15 km/h, with gusts as high as 25 km/h. To:

#

That was from a wxc command

#

Nevermind. I now see the difference in wx vs wxc.

gentle kestrel
#

There was a lot of request for having both units of mesure, if you also set the metric config.ini it will invert Wx and Wxc behavior

#

I also just fixed a web reporting bug

#

@broken sorrel You mentioned a server a while back and it could have been an issue with the index (just fixed)

gentle kestrel
# broken sorrel I don't follow

You had asked about a port a while back for html components. I noticed there was a problem with index.html as today if this was related by any chance .. wasn’t sure if your question was about a web delivery error or just planning for os purpose

broken sorrel
#

Planning

#

Just want to avoid collision with your stuff

gentle kestrel
#

Got some tweaks into EAS API, adjusted to 20min checks 15min I was seeing API server throttling possibly, enhanced logic for delivery a bit

fallow crystal
#

Curious question,
I noticed for the EAS OTA, you're using RTL -> Multimon -> EAS2Text, then writing the contents to a file to be picked up by the filemon.
Wouldn't it be better to run that RTL -> Multimon (Or SameOld) in a thread, then pass it's into EAS2Text in real time? That way you can cut out the file writes needed, ditch the overhead of monitoring a file for updates, and pipe the output directly into the message handler.
Should be faster too.

#

That's what I did with my software Encoder/Decoder system, in which Samedec was used in a real-time monitoring setup, and it allowed SDR/Direct/Network monitoring for alerts, and then using a queue I could handle messages without dealing with filewrites.

gentle kestrel
#

For the meshbot project I didn’t want to hard code the alert.txt to a single decoder, for example you can send a MMDVM alert of channel use over mesh this way it’s flexible

Now is it worth adding a direct pipe? Possibly! Off hand I don’t know of a quick way to get a source (rtl-multimon) into a .py file. To say I would be adding a large bit into the requirements of project build.

Do you have an example or something I could look at, and any deets on a light plugin for that part also samples to use also welcome to dev into this more! 🙂 @fallow crystal

fallow crystal
#

Hold on while I fetch a project, I am in a meeting at work RN (aaaaa)

gentle kestrel
#

Also just pushed a new “readnews” command which will return the contents of news.txt

The idea being any data the mesh user wants would sit and be pulled from news.txt

This is different from alert which is pushed

You can write a mesh friendly news paper of whatever highlights to return via chunker

fallow crystal
#

https://github.com/A-c0rN/ASMARA/blob/main/asmara.py#L242
This may be a bit overly complicated for this specific usecase (As this is a full system that also encodes said alerts!)
however, this is how I do that:
I create a class-bound object, and bind a samedec process to it, and it'll run happily in the BG listening in on the STDIN pipe (Which is passed through python.

self.__decode__ = Popen(
    ["samedec", "-r", "24000"],
    stdout=PIPE,
    stdin=PIPE,
    stderr=PIPE,
    bufsize=1,
)

I then create a monitor process in much the same way, but mainly for the STDOUT:

## URI STYLE:
## <DEV>|<FREQ>|<TYPE>
## 0|162.4M|fm (NWR on SDR 0)
## 1|93.3M|wfm (93.3 FM on SDR 1)
## 2|710k|am (710 AM on SDR 2)
## Config style: {"SDR": "<URI>"}
cmd = [
    "rtl_fm",
    "-d",
    self.__monitor__["URL"].split("|")[0],
    "-f",
    self.__monitor__["URL"].split("|")[1],
    "-M",
    self.__monitor__["URL"].split("|")[2],
    "-A",
    "fast",
    "-r",
    "24k",
]
if self.__monitor__["URL"].split("|")[2] == "wfm":
    cmd.insert(len(cmd) - 4, "-s")
    cmd.insert(len(cmd) - 4, "170k")
    cmd.insert(len(cmd) - 2, "-E")
    cmd.insert(len(cmd) - 2, "deemp")
self.__stream__ = Popen(
    cmd, 
    stdout=PIPE, 
    stdin=PIPE, 
    stderr=PIPE, 
    bufsize=1
)

Then, with those two objects, you can just take the stdout of the __stream__ object and pipe it into the stdin of the __decode__ object, and monitor the stdout of __decode__ object for alerts.
Run in thread:

while self.run:
    data = self.__stream__.stdout.read(2400 * 4)
    audioSamples = frombuffer(data, dtype=int16)
    self.__decode__.stdin.write(audioSamples)

and also:

while self.run:
    decode = (
        self.__decode__.stdout.readline()
        .decode("utf-8")
        .strip("\n")
    )
GitHub

Automated System for Monitoring And Relaying Alerts - A-c0rN/ASMARA

#

Fair warning:
That code is not documented well... ;-;

#

Side note, since it was recently opened up to the public, another place you can pull for alerts is FEMA’s IPAWS system. It’s the modern day backbone of the Alerting Systems.

#

I can write up a quick example script if you would like.

gentle kestrel
#

Can you pull from it or is it for like tweets from the gov.

fallow crystal
gentle kestrel
#

Any different from the current EAS API?

fallow crystal
#

Shouldn’t be too different, I might be able to pop it beside the NOAA one

#

They also return a very convenient last updated tag

gentle kestrel
#

Ehh needs a authorized API key

fallow crystal
#

It used to, it shouldn’t anymore.

#

I’ll write something up in a moment

gentle kestrel
#

Do you have the feed url?

fallow crystal
#

Yes

gentle kestrel
#

I can’t seem to find it in doc’ all says Gain Access to the Feed

Complete a Memorandum of Agreement (MOA) with the IPAWS Office.

fallow crystal
#

That was the old process, within the last year or so they did away with the MoA needed

gentle kestrel
fallow crystal
#

Yea, the process changed in Feb 2021 where they moved from locally hosted to cloud servers

#

the MoA and needed "Pin" for accessing the feed was to reduce load on the servers

gentle kestrel
#

Feed is the initial and update is only updates to the original report?

#

Tsunami Warning immediate coastal area Douglas County. Stay away from beaches. Yikes!

#

Is there a API decoder ring anywhere to set locations? Appears its national feed?

#

Also noticed it cataloged test as

<responseType>Avoid</responseType>
<urgency>Immediate</urgency>
<severity>Extreme</severity>
<certainty>Observed</certainty>

#

The tsunami is

<urgency>Immediate</urgency>
<severity>Extreme</severity>
<certainty>Observed</certainty>

#

Seems, funky no?

fallow crystal
#

So it is a national feed, most times in the actual feed itself you monitor the statefips label for the state(s) you want to watch for.
the alerts themselves provide the info for where they are, so you can ignore the ones you don't want in a wide area via statefips and in a small area using the alert XML

gentle kestrel
#

Found a <area> with geo which will likely work with mesh ok

fallow crystal
#

example being:
Let's say I want alerts only for my state, and surrounding counties.
I'm in wisconsin (State FIPS 55), and in Milwaukee County (FIPS 079)
So I would only monitor the feed for statefips 55, and alerts containing 055079 in the geocode SAME tab.

gentle kestrel
#

I do like the expanded idea here of more inputs with reporting department

#

There is so much info for thisCAP and PAW but all the dev docs seem hidden

gentle kestrel
#

Nice thank you, wasn’t finding it!

#

I will dink with this a bit see if it can’t replace or be a option for use vs the older EAS-API feed, thanks @fallow crystal

fallow crystal
#

No problem!
I am still working on an upgrade for EAS2Text that will allow it to do some better processing (and be less picky about inputs lmao)

#

You like regex?
^.*?(NNNN|ZCZC)(?:-([A-Za-z0-9]{3})-([A-Za-z0-9]{3})-((?:-?[0-9]{6})+)\+([0-9]{4})-([0-9]{7})-(.{8})-)?.*?$

gentle kestrel
#

No haha but it’s powerful 😀

fallow crystal
#
import re

sameData = "ZCZC-WXR-RWT-020103-020209-020091-020121-029047-029165-029095-029037+0030-3650000-KEAX/NWS-"

reg = r"^.*?(NNNN|ZCZC)(?:-([A-Za-z0-9]{3})-([A-Za-z0-9]{3})-((?:-?[0-9]{6})+)\+([0-9]{4})-([0-9]{7})-(.{8})-)?.*?$"
prog = re.compile(reg, re.MULTILINE)
groups = prog.match(sameData).groups()
print(groups)

Output:

('ZCZC', 'WXR', 'RWT', '020103-020209-020091-020121-029047-029165-029095-029037', '0030', '3650000', 'KEAX/NWS')

gentle kestrel
#

Oh nice, ready to feed right to EAS2Text

fallow crystal
#

not quite, this is a line used in this new EAS2Text that is used to break down the alert

#

that output is already broken into chunks I can process on :3

gentle kestrel
#

Pressed a new release

stone lance
#

@gentle kestrel have you got a Luckfox for testing this on?

gentle kestrel
stone lance
#

It's all cool stuff, obviously.

stone lance
# gentle kestrel I need to check it out, been slacking. watching the work here and there any iss...

Install script borks, unfortunately:

Collecting maidenhead
  Using cached maidenhead-1.7.0.tar.gz (5.8 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting beautifulsoup4
  Using cached beautifulsoup4-4.12.3-py3-none-any.whl (147 kB)
Collecting dadjokes
  Using cached dadjokes-1.3.2-py3-none-any.whl (4.3 kB)
Collecting openmeteo_requests
  Using cached openmeteo_requests-1.3.0-py3-none-any.whl (6.0 kB)
Collecting retry_requests
  Using cached retry_requests-2.0.0-py3-none-any.whl (15 kB)
Collecting numpy
  Using cached numpy-2.1.3.tar.gz (20.2 MB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Installing backend dependencies ... done
  Preparing metadata (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Preparing metadata (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [2 lines of output]

      meson-python: error: Could not find ninja version 1.8.2 or newer.
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.

#

it won't install in a venv, I don't think

gentle kestrel
gentle kestrel
#

Sounded like TC2 bbs was preferred which is cool but; unlikely I will go hard at resolving these issues. Likely rework pong bot to be light weight responder bot less requirements

gentle kestrel
#

I did push a change with dropping ollama requirement

broken sorrel
#

it's just what I've used in the past

gentle kestrel
#

I will do my best to shift it in @broken sorrel

broken sorrel
#

I can give a shot to crosscompiling

gentle kestrel
#

I am refactoring pong to be minimal impact (no exotic importing)

broken sorrel
#

what apt packages are we dependent on?

gentle kestrel
#

Gives something to use for testing against

broken sorrel
#

sudo apt install fonts-noto-color-emoji ninja-build -y
pip install pyephem requests geopy maidenhead beautifulsoup4 dadjokes schedule wikipedia openmeteo_requests retry_requests numpy ollama googlesearch-python
?

#

anything else?

gentle kestrel
#

Apt is dependent on the os management the emoji font for example is just icing.

All the python / pip packages are

Mesh-bot enhancements:

pip install pyephem
pip install requests
pip install geopy
pip install maidenhead
pip install beautifulsoup4
pip install dadjokes
pip install geopy
pip install schedule
pip install wikipedia

For open-meteo use:

pip install openmeteo_requests
pip install retry_requests
pip install numpy

For the Ollama LLM:

pip install googlesearch-python
broken sorrel
#

alright, installing

#

doing it via chroot before building the image, so it's all on my desktop

#

not on the potato

#

it's an amazing little device. But it'

gentle kestrel
#

If you got compile of all requirements except open meteo its a good start

broken sorrel
#

it's no speed demon

#

yeah error

#

something about numpy it don't like

#

and that log file doesn't exist

gentle kestrel
#

Yea it’s a good sized include but it’s only needed for open meteo no?

#

Can you compile all the other bits?

#

If it’s just numpy .. there has to be a hack to better pull the open meteo api

broken sorrel
#

trying now

#

but the name is so cute

#

done all installed

gentle kestrel
broken sorrel
#

is that an apt install?

gentle kestrel
#

Depends on the repo and os, look to see if pip has it first?

broken sorrel
#

ah it's pip

#

installing

#

then will try numpy again

#

it's doing something

gentle kestrel
#

Good news!

broken sorrel
#

numpy built!!!

#

it's cython

gentle kestrel
#

Nice you got 100% build now?

broken sorrel
#

I was just doing the dependencies

#

okay, now I compile the image. Then I can install the bbs itself live on the device

gentle kestrel
#

In theory yea

broken sorrel
#

we put all dependencies for mesh apps in the image

#

so it's all prepped

gentle kestrel
#

Thanks for including the 🥔bot 🙂

broken sorrel
#

will compile the image in a sec

gentle kestrel
#

The less functional pong_bot.py was updated/repaired (it only has logic for basic network tests)

broken sorrel
#

what the heck is zope-interface

#

it's installing extra stuff

#

the ./install.sh

#

and I'm installing out of venv so it can use the preinstalled stuff

#

@gentle kestrel Which bot do you want to install as a service? Pong Mesh or None? (pong/mesh/n)

#

can you explain the choice?

stone lance
#

Mesh is the more complicated one, that has weather, Wikipedia, etc.

#

Not sure if pong has dad jokes

broken sorrel
#

installed mesh

#

if I install the ollama components, does that try to run locally or remotely?

gentle kestrel
gentle kestrel
gentle kestrel
#

A new chunkr revision out enhances logic for better sentence separation with 3 character fuzz (allows exceed the max limit)

gentle kestrel
gentle kestrel
#

sms:
email:
?

jade briar
#

Thought process behind this?
Where you see this going?

gentle kestrel
#

There was a request to have a handoff alert system for sms.

The set commands would keep a email on file basically allowing a quick cross into SMTP

I don’t have a lot of use case myself but its easy to whip in and allows a TDeck to sms text family was what I figured its handy for

As for where it’s going .. I didn’t have much more enhancing for it at the moment (finishing its inclusion) possibly a backhaul for bbs or remote reporting?

gentle kestrel
#

Common words

#

Handling email inbound to the bot sounds horrible so .. likely this will be its only purpose I do have a filter for the from address .. could possibly be two way

#

*reporting sounds possibly handy

#

Other things this could be handy for is setting a capture for “emergency,911,fire,police”

#

If 911 send sms/email to.
also, alert(interface,channel)

jade briar
#

I don't see a lot of use for that either.
Could be a useful way to load up the news text?

gentle kestrel
#

Possibly but that would be external script realistically I goofed with a few ideas for loading a newspaper but nothing exciting enough to put out

#

Might toss a example in for Parsing bbc rss news headlines

broken mountain
#

Have you looked at the workflow that the APRS SMS bot follows?

gentle kestrel
#

The cost factor (vs email only) prohibits this; realistically at this time most meshtastic users are cell phone carriers and in a emergency of no internet for email or cell, who you gonna text via twillo

#

Future meshbot workflow

User sends: setsms [email protected]
User sends: sms: I am ok
Bot, sends email to stored address(s?)

Optionally user sets a email
User sends: setemail [email protected]
User sends: email: warranty expired
Bot, sends email to stored address

User sends: email: [email protected] # hello world
Bot, sends email to address provided

jade briar
#

Bug
Motd $new message
doesn't load up

gentle kestrel
jade briar
#

I'll check
I may have miss typed it

Doesn't look like mistyped admin I'd
I'll do a pull and re install and try again tomorrow
Lots has changed

gentle kestrel
#

More I ponder this more I like the idea of having the sms for tdeck use etc

#

Added
clearsms: - clears all sms email at moment

setsms: address@
will append if already present

#

This feature is really more for private mesh / family use

#

I put a warning this code collects PII, I laughed when GitHub alerted me this bot-code logs PII of location

gentle kestrel
#

(To your disk and log file fyi)

gentle kestrel
#

SMTP code in place any testing welcome

#

Mesh to SMTP only at the time

stone lance
#

Need to have a think about how to handle reactions:

gray igloo
#

Haha

gentle kestrel
#

Also why so much welcome header?

#

When LLM is on it responds like a text message

stone lance
#

LLM is not on

#

And you wrote that!

gentle kestrel
#

Fall back to dad jokes when no ascii in message string

stone lance
#

I wonder if there's any specific indicators of when it's a reaction

gentle kestrel
gentle kestrel
#

There is new logic for better responding when no LLM

#

If dad jokes is enabled it will welcome you and send jokes thereafter

#

If dad jokes is not enabled it just sends the command list

stone lance
#

I haven't updated the bot for a couple of months

#

Waiting for a 🍀🦊🤖

gentle kestrel
#

Should at least try out the ping test command! It’s handy!

broken mountain
#

Hey @gentle kestrel just curious, is there a suggested way to have a node both be an MQTT uplink and be a meshing around node? Is the idea still let the radio itself be responsible for MQTT? And in that case, what's the pattern folks are using when you have a copper ethernet node but only one port to share between rpi+radio? Pull a second cable?

gentle kestrel
#

Others who need more like a full MQTT world (local MQTT) have gone with meshtasticd for more complex config

broken mountain
gentle kestrel
#

If MQTT only flows on Ethernet or WiFi meshtasticD would be an option

#

I could look to add a MQTT interface if it’s architecturally an issue but I thought it worked (by lack of complaints)

broken mountain
#

I think I don't know enough about this space to ask the question in a helpful way, Im going to take a step back and play a bit more to understand.

gentle kestrel
#

Putting the node on MQTT and the pi usb might be a good step one to validate

#

If that works; add the bot and enable ConfigModule.Serial echo

#

(Meshtastic firmware)

broken mountain
#

@gentle kestrel I guess the trouble I have is, for me to get the pi network connectivity, the node itself wont have network. So unless some magic is having the rpi send things to MQTT, I think my test falls apart there.

gentle kestrel
#

Reading docs

every raw protobuf MeshPacket that it sees to the MQTT broker, encapsulated in a ServiceEnvelope protobuf.

It should be possible via api

But also says WiFi and Ethernet only

#

What about a hotspot on the pi to handle the firmware needs for classic networking

#

Silly but works

broken mountain
#

Yeah, I'd just as soon pull a second ethernet cable up the tower lol

broken mountain
# gentle kestrel this a rak on Ethernet?

Yeah that's my use case here. Tower top POE node, like a rak for instance, now I want to add meshing around and so I toss a pi up there with it. Switch to POE powering the pi, but now I lose MQTT. I think 2 cables is fine for now unless someone else jumps in with an alternative.

gentle kestrel
#

Ethernet attach the rak and in the tower shack put a pi connected via TCP to node

broken mountain
#

one of my perceived benefits, though I havent tested yet, is that a direct serial connection also lets me remotely do firmware upgrades. I think that's the only other tradeoff to your suggestion

gentle kestrel
#

Yea that would be a bonus

#

A small switch in the box

broken mountain
#

haha yeah a poe in/out switch would solve this too

gentle kestrel
#

You don’t need 100gb split the pair and run 10mb

broken mountain
#

yup that's another great option

#

Kinda interesting to me that we dont have a linux parallel for the apps versions of "MQTT Client Proxy"

gentle kestrel
#

I have pondered adding a MQTT interface but the firmware seems to handle things so well I didn’t bother with more lines of code

broken mountain
#

Yeah definitely, each LOC == $$

#

I would sooner imagine building a standalone app for taking a serial device, uplinking to MQTT, and then providing the client API host as well over a network port, that way you could essentially have a no-downsides "MQTT Client Proxy"

gentle kestrel
#

There is one example in the meshtastic repo for this

broken mountain
#

Kudos to you with your project here @gentle kestrel , getting it up and running from 0 was incredibly easy and I'm very impressed by it! This will be a great way for me to demo the mesh here while we don't really have a critical mass yet. Having a bot always there to talk will be very helpful.

gentle kestrel
gentle kestrel
#

The SMTP module seems to be working well now

#

Outbound messages look to be working well

#

The emergency responder also emails well

#

Inbound emails / IMAP. wip still

#

emailSentryAlerts new config.ini

jade briar
#

Fresh re install fixed my issues. 👍back to all good

gentle kestrel
#

Good news!

gentle kestrel
gentle kestrel
#

Enhanced the “noaa abbreviator” to shorten weather alerts better

#

Also applied to these FEMA iPAWz

#

These messages are verbose in frequency and length

Now I have a working model need more alerts to sample

gentle kestrel
#

There is some very initial code in for alpha test of

ealert

Returns FEMA by SAME at the moment

fallow crystal
gentle kestrel
# fallow crystal Ooo, I gotcha there too lmao

Yea thanks for suggesting to check the alert out! Spent time yesterday in the API and reading the alerts, watched the news last night and all the alerts were on kinda wacky but seems like a cool feature!

#

Another little blip which is kinda fun is realtime stat on the number of nodes seen

#

That new stat just like the firmware but it’s on the bots runtime, can exceed the nodedb cache on firmware

#

I didn’t prune it, so arguably it’s a memory leak - I was curious how big it might get

stone lance
gentle kestrel
fallow crystal
#

Oh yea!
I get paid later today, so I may spin up my own node for testing and development. First node for me.

gentle kestrel
#

Remember to get two!

#

The heltekv3 2 pack is one way to jump in for dev. Has WiFi and BLE. The rak and seed pull less current and if you enjoy more diy - and haven’t caught the work on #1302945239689990185 worth it to gather some parts together to build your own node as well

stone lance
gentle kestrel
#

Enhanced iPAWS ignores any headline with Test by default

stone lance
#

bottom right, small footprint

#

WIO-SX1262

gentle kestrel
#

Screen print jokes are worth every cent of ink imo

stone lance
#

The back is better

gentle kestrel
#

FEMA alerts are going well, it’s interesting data to watch.

Might be valuable for LLM built news.txt

#

I don’t want to enable auto alerts yet till it seems stable on reporting local area well

gentle kestrel
#

Caught up on with a release as well

gentle kestrel
#

Added whois if your node is bbsadmin returns more data

#

Also put a chunk system into CMD?

gentle kestrel
fallow crystal
#

Got some friends I want to try some things with

#

And to stash one at work lmao

fallow crystal
#

nvm, just two for now, wallet said no lmao

gentle kestrel
#

Like rabbits or guinea pigs they multiply somehow give it time 😜

brittle atlas
#

I am trying to install this on a raspberry pi (pi3b+) , I keep getting similar errors to "./install.sh: 156: [: ==: unexpected operator" during the install process. Any idea what I'm doing wrong? Thanks

brittle atlas
#

I am running a recent version of Dietpi, maybe thats it

gentle kestrel
#

I will boot it up and check it out, it’s a odd bash error for sure - also happens to be the last line of the installer and didn’t complain about the other uses of =

brittle atlas
#

Yeah, error appears on multiple lines of the bash, I did have the TC2-BBS-mesh installed, but I have removed that.

gentle kestrel
# brittle atlas '''

Yes bash errors for methods used, I just booted diet pi on a 3 and it won’t light the cat5 either

#

So troubleshooting that, OS is too lite

brittle atlas
#

I'll install the regular PI image so.. thanks!

gentle kestrel
brittle atlas
#

It does say "pip not found, please install pip with your OS" at the beginning of the install, then says "python3-pip is already the newest version (23.0.1+dfsg-1+rpt1)." a few lines down.. is this normal?

gentle kestrel
gentle kestrel
gentle kestrel
#

There was no checks for Python itself and dietpi is lite. Gave the installer a refresh for these issues. Should work now. Thanks @brittle atlas

gentle kestrel
#

Had some iPAWS alerts crash - appears agencies can submit faulty xml added a trap

gentle kestrel
#

Installer is for sure now much better at installing into a lighter os like diet pi (without any Python)

fallow crystal
#

Also, if you want more alerts for testing, add "TDL" to the start of the link:
apps.fema.gov -> tdl.apps.fema.gov
that's the testing place

gentle kestrel
#

Shows the error on description

#

When I web rendered it it’s fine

#

But in Python .. uhh

#

<\description> was all I got

#

Extracting via linked_xml.getElementsByTagName("info")

#

Linked_xml is api by method xml.dom.minidom.parseString

#

Also of note I see what looks like duplicate alerts for same geoVal

#

One entry no crash one entry crash

#

For that bad field I’m recycling headline which is less likely to corrupt I figure

2024-12-12 12:06:15,983 | DEBUG | Debug iPAWS: Type:SAME Code:RWT Desc:Oregon,Clark, WA GeoType:SAME GeoVal:041000, Headline:Emergency Alert System Test
2024-12-12 12:06:15,983 | DEBUG | Debug iPAWS: Type:SAME Code:RWT Desc:Oregon,Clark, WA GeoType:SAME GeoVal:041000, Headline:Emergency Alert System Test

#

This was the pair still hot

fallow crystal
#

Looked at it, the only weird thing I see is commas in fields that don’t normally have commas

#

But nothing that would break XML

gentle kestrel
#

Only Python is it goofy

#

fine in curl

fallow crystal
#

What are you using for parsing again?

#

Wait am dumb teehee open source

gentle kestrel
#

The DEBUG: LINKDATA and DEBUG: LINKXML outputs represent two different ways of displaying the same XML data.

  1. LINKDATA: This is the raw XML data as received from the HTTP request. It includes the XML declaration (<?xml version="1.0" encoding="UTF-8" standalone="yes"?>) and the entire content of the alert, including the signature and certificate information.

  2. LINKXML: This is the parsed and re-serialized XML data using the

xml.dom.minidom

library's

toxml()

method. It also includes the XML declaration (<?xml version="1.0" ?>) but may have slight formatting differences compared to the raw data. The content remains the same, but the encoding and standalone attributes are not included in the XML declaration.

Both outputs contain the same alert information, but the way they are presented differs slightly due to the parsing and serialization process.

fallow crystal
#

hold on ima look at my trash code for CAP processing

jade briar
#

sentry seems to cause a crash

#

was working fine a while back

gentle kestrel
gentle kestrel
fallow crystal
#

Try TDL?

#

or I can spin up a testing server

gentle kestrel
#

I will try the TDL yes

gentle kestrel
dusky abyss
#

is there an issue with an mqtt only bot now? i haven't gotten this working the last few times i've tried

gentle kestrel
#

I don’t know I don’t run MQTT, but I know lots of changes in firmware and cloud

dusky abyss
#

logs show my commands, and show a response being sent, but the client never sees it now

#

i'll keep poking it

gentle kestrel
#

is ok to MQTT on

#

That was a major change impacting

dusky abyss
#

yea, the bot is on a radioless node, connected to mqtt with 1 channel up and downlinked, and ok to mqtt on. and my node on the other end also has ok to mqtt on. when I stop the bot, and connect the android client instead, DM works as expected both directions

gentle kestrel
#

Interesting, I didn’t change the api inject for protobuf

#

Is your config.ini proper?

#

@lavish crown Also runs this I think

dusky abyss
#

yea, i even backed it up and re-copied the template, only changing the port to tcp

gentle kestrel
#

What’s firmware rev?

dusky abyss
#

2.5.15.79da236 on the radioless bot node

#

same on my client device

gentle kestrel
#

Any changes there at the same time the bot went out? Can you roll back to like 2.5.5

#

Also @jade briar just checked sentinel and looks ok here (just pinged me)

dusky abyss
gentle kestrel
#

Or any steps I can quickly replicate

dusky abyss
#

it's proxmox's ubuntu 22.04 lxc image

fallow crystal
#

@gentle kestrel I can spin up a VM here for testing of CAP if you need it, I have a script that emulates the IPAWS Feed

#

You should be able to issue alerts into it

#

and I'll add cross-IPAWS testing temporarily so it'll pull down real alerts as well

gentle kestrel
#

If it keeps happening that’s interesting

#

I put a good trap for it

I also found a typo in installer

gentle kestrel
#

I’m wondering if old mesh bot or old firmware fixes this - I heard of changes for all this stuff all over like device id 1 was pulled etc

#

#meshtasticd message

fallow crystal
#

Oh?

#

Ping detected.

gentle kestrel
fallow crystal
#

I would use it for testing, not for prod though.
Code is up on GitHub, it’s what I use for testing because most devices think it’s IPAWS.

#

Drop in replacement for testing purposes

gentle kestrel
#

I will check that out, it might be interesting with DM PKI and all

fallow crystal
#

And for the issuance of alerts, that’s pin locked, and I’d send you the info for that

gentle kestrel
#

I saw the example on GitHub, the pin part is secure but if programmed it would allow a mesh client to put in fema alerts

#

I would hesitate to write it as I could also write a hack for it

#

Do smaller municipalities have this deployed (this is all quickly learning for me I just realized this my alert app uses these cap codes last night)

fallow crystal
#

That script doesn't go straight to IPAWS, it's just a "IPAWS Clone" for testing lol
for example, in one of my scripts that IPAWS monitoring was baked into, if you put a config flag to be set to debug, it'll redirect apps.fema.gov to ipaws.<my domain> so I could then issue example test alerts, and have it be issued for like 60 hours lmao

#

The actual FEMA thing is nationwide. it is the current EAS backbone.

gentle kestrel
#

I figured, it’s really cool and possibly some day but I’m very hesitant to step into any uploading or pin till I’m deeper intrenched

fallow crystal
#

Oh my script isn't anything like the actual thing lmao

#

the actual IPAWS uploading process requires signed certs and COGIDs

#

I have my methods if i wanted to send stuff, but that would be breaking federal crimes, and I am not bout to do that.
Case in point why I made my own environment that is a live feed clone, but I made a jank way to make my own alerts

#

It's completely disconnected from the real thing

gentle kestrel
#

Very cool. And a fun idea, need to ponder use cases for something

#

Convert facility alerts to a local CAP server

#

FEMA feeds local and local has extra data

fallow crystal
#

Mmhmm! The server could be modded to add in stuff like node info

#

You could also do some interesting stuff theoretically, such as having a server that takes local NOAA alerts and creates CAP messages for in-house alerting or something

#

If you have a large node mesh, you could cover a large area

jade briar
#

just done latest pull.

#

see how that goes when wife comes home it will trigger sentry and send me a message so i can go open gate. arnt I good haha

gentle kestrel
#

It should be working; and in the rare case wild things happened I patched a issue

dusky abyss
broken mountain
#

@gentle kestrel anyone suggested a variation of the file / eas that grabs weather alerts from nws over the web?

#

Oh you already have that

gentle kestrel
#

File mon allows any radio decoder for the analog if anyone wants

broken mountain
#

Just curious all of your config templates use channel 2, why not 0? Is 2 customary in some regions with some other psk?

#

I’m thinking of setting these things up on 0 and then moving them to something else once there’s actually some traffic ahaha

gentle kestrel
#

I just don’t want to suggest to use 0 to avoid spamming anyone’s public default. A random place filler basically

#

This way if the bot is spin up all default is least annoying possible

#

All my nodes are maxed out in channels Meshtastic

#

2 in my lab is “alerts”

#

I figured most have public/family or the similar on one and zero

lavish crown
gentle kestrel
# lavish crown Whats up?

Was mentioning you ran a complex MQTT world and if anyone had noticed it failed recently you might

lavish crown
#

nope. it runs rock solid

#

havent rebooted in weeks

broken mountain
#

@gentle kestrel would you be open to a contribution that provides an example docker compose with ollama? I think I have a reasonable way to have it prefetch a model, wait to start meshing-around till that's ready, etc.

gentle kestrel
broken mountain
#

Cool. Doesnt help that the ollama image doesnt provide the capability to pre-grab a model, but I think I hacked it together 🙂

gentle kestrel
broken mountain
#

Ill submit a PR in a couple of days with what I have and we can go from there

#

(right now its hardcoded with a few of my specific needs, I deploy my first real infrastructure meshtastic node on Saturday so Im a bit busy with the rest of the stuff)

gentle kestrel
#

Sweet - Get fancy have it pull the same value as the config.ini

broken mountain
#

yeah exactly

#

3 spots actually, because the darn ollama image has no healthcheck lol

gentle kestrel
#

Boo

broken mountain
#

so had to add that and make it validate that the tag was available, and of course the ollama image doesnt have curl or wget...

#

layers of fun

lavish crown
#

which model are you thinking?

#

Stheno 3.4 is a nice 8B model.
IceLemonTeaRP also

#

im figuring you want small if running in docker (which a lot of [people would run on the Pi also running their node)

dusky abyss
#

spooled up another container and having the same issue 🙃

gentle kestrel
#

Can’t get any packets from daemon to mosquito yet myself

gentle kestrel
#

Confirmed it works out of box essentially

#

I updated this project readme as well as sent a push to master docs for some things

gentle kestrel
#

Updated the hop counter to notice negative hops for better behavior on MQTT

gentle kestrel
#

satpass can now take user provided NORAD ID

#

There is no ID for 🎅 I checked

soft osprey
#

Greetings, can devices without Meshtastic firmware (in this case STM32 with LoRa SX1278 Ra-02 module) be connected with Heltec LoRa HTIT Tracker devices that use Meshtastic for LoRa communication?,
or is there a solution for ethernet connection without using wifi?

stone lance
gentle kestrel
#

@craggy bobcat any input (or anyone else)

resource check-in process to ensure accountability for resources at an incident per fema

Checkin:
New user says ICS-checkin
Use node ID to add to checkInList
If no history, asks for callsign or some sort of real identifier for the checkin

checkout:
User simply says checkout. And gets confirmation with hours worked

Sysop actions:
Get quick stats of in and out today / total

Record data to file for reporting

Clear list

Check out name as admin

Set incident number for use at checkin (need multiple?)

soft osprey
broken mountain
lavish crown
#

Yea, that’s absolutely solid for testing

gentle kestrel
#

Llama 3.2:3b is newer
Defaults which work well on a pi are ideal for defaulting. If a choice is made pick between default for desktop ideally a matched pair (gemma2 and 2b)

gentle kestrel
#

Dropped a new release I would call a security upgrade. Using isDM enhanced ping and also added a block list to emergency responder

#

Ping in a group channel now also adds short name

#

Can enable auto ping in channel with .ini

brittle atlas
#

@gentle kestrel Got this installed today on the dietpi. Very easy to get up and running. Thank man 👍

gentle kestrel
dusky abyss
# dusky abyss spooled up another container and having the same issue 🙃

been poking at this again before work, no progress. 2.5.8 was the oldest deb I could find, and I'm pretty sure I had it working back then. I've got another day off sunday, so maybe I'll dig in some more. So to recap, Ubuntu 22.04 lxc container on proxmox, meshtasticd 2.5.8, latest meshing-around. No radio, connected to mqtt with wifi enabled in the node settings to pass the check. With a client app connected to it, direct messages work both directions. With meshing-around connected, messages are received properly and the script claims to send a response. With meshtasticd logging set to 'debug' incoming messages are seen, but nothing is ever sent outbound from the script.

gentle kestrel
#

I didn’t enable WiFi on the daemon

#

Firewall to MQTT?

#

New command

dusky abyss
#

I don't think so, as direct messages work fine if I connect to the node with the android client instead of meshing-around.

#

I don't want to overbrain before work, but maybe tonight if I have time, I'll tcpdump and see if it even sends packets to meshtasticd and go from there 🙃

gentle kestrel
#

When your near a console holla I likely can be, it’s likely something easy my hang up was topic was wrong

#

Got a EAS NOAA alert from the API and didn’t see a matching alert in FEMA. Understandable but also of note won’t be deprecating NOAA Wx API

fallow crystal
#

NOAA is over the NWS's internal EDEX and NWEM / CAP systems.
Technically, they SHOULD go over IPAWS but only if they match specific criteria, and it normally doesn't disseminate over the normal feed.

gentle kestrel
#

MeshBot is working well in femtofox embedded project. And more enhancing as time moves along #1302945239689990185 message

#

Solar bots are possible

gray igloo
#

Niceeeeeeee

#

Les go

lunar glen
#

Is there something for weather alerts for EU? 🫣 like you have for USA…

stone lance
lunar glen
#

So, so probably only way is to find countries weather service alerts page and parse it?

stone lance
#

Perhaps

lunar glen
#

I have some CAP xml files that they provide. Is that usable?

#

Should that be created in modules or somewhere else?

#

Or just create separate app and just use file change monitoring ?

gentle kestrel
#

If you can find a feed? (Sounds like you have one? Is it public? )

We can help parse into a file or script or bot, or yes the use of alert.txt and news.text for (alert is pushed news is pulled)

#

Fiji csv tide data for example was a use case.

#

If you have a public feed for any fema like agency to provide CAP/XML it’s worth adding to the bot

#

More interesting .. would it plug and play

#

If not share the link here or dm and happy to tinker when I can

#

it may be as easy as setting a config.ini for its value @lunar glen

#

@fallow crystal likely be able to weigh in more

fallow crystal
#

They have something, I'd have to look into it.

#

If you'd like, I could look into making a lib for compiling weather info for you

gentle kestrel
#

There is weather currently, issue is external USA feeds for non NOAA/FEMA users

#

OpenMateo has weather for the world in a good api

lunar glen
#

Ok, will check tomorrow and report back

#

Thx!

fallow crystal
#

Yea I could work with that

#

I can look into other APIs and stuff

gentle kestrel
#

Or is it like the bbc and just something you pay for

stone lance
#

I assume that's how the utility companies send me stuff.

gentle kestrel
#

Is it cool?

#

Like are those alerts worth having on mesh?

stone lance
#

Wrong end of the system!

#

That's to send stuff.

#

It's basically how the gov.uk send spam.

gentle kestrel
#

Yea and it’s not public facing I see now

#

Bummer

stone lance
#

Like I said, it's using the cell network

#

They do have feeds, I think

#

I may know a former civil servant who would know if there's something to tap into

#

Lemme send a note.

gentle kestrel
#

Yes that’s a good start

#

Nothing else that page has a alert

#

(If anyone else locally has something like it they want added / the hardest part is knowing what’s cool locally)

fallow crystal
#

I have a page somewhere that someone has made a list of APIs

#

I'll find it later

#

It like has every API for like half of countries

stone lance
#

Might be close to what people want

gentle kestrel
#

haha your people - do you think it’s handy haha

#

One of the first scripts I wrote into dstar was river flooding - totally gonna add this

stone lance
#

That's got severe weather warning feeds

#

Not just flooding

gentle kestrel
#

Is it all inclusive or should the broken out be included

stone lance
#

I'm guessing you just need to see if it fits in 1-2 messages or needs compression or something

gentle kestrel
#

For sure, and depending on a_c0rn has a lib or a list see how much to rework it

#

I find it handy, I have mesh ping me audibly and nothing else I enjoy having my own newsfeed around town, it’s pocsag for the moderen era

stone lance
#

Yep, definitely

#

Everywhere in the UK is subject to some kind of flooding, if not directly then regionally

#

More warnings the better

gentle kestrel
#

Good to know 👍

stone lance
#

It's usually more inconvenience than threat to life (usually).

gentle kestrel
#

Yea, I got tides and winds now -I was near a river before and totally know. I’m actually shocked I didn’t put in river notice yet into meshbot

stone lance
#

We have an office in York, and they redecorate about twice a year from flooding, iirc.

#

I had a friend who did on-location interviews for the news, and they'd be asked to try and get someone to cry about it. They could never find someone.

#

Mostly just people angry they'd got a new build on a flood plane.

#

¯_(ツ)_/¯

gentle kestrel
#

Is this where the phrase cry me a river comes from 🥁

#

They can’t all be good jokes.

I will be adding a flood watch in some way for sure openmeteo also predicts world wide

#

I wanted to reevaluate the openmeteo api currently using the lib and wanted to see if using requests only is kosher

#

Being free and detailed don’t wanna scrape it

#

Good time to goof with it all

stone lance
#

That's what I was thinking - plenty of data points.

odd void
#

Finally getting around to trying this out. What exactly is the Store Forward module, is that the esp32 thing or is it different?

#

Also an idea Im sure youve had and others have mentioned, can the BBS system be enhanced to host different boards and allow creation of new boards by authorized nodes? Somewhat like how TC2 does it but a little more

gentle kestrel
#

With 2.5 changes emulates in Python

gentle kestrel
#

Is the depth of board a valuable feature? (Message length is a struggle is nested messages easy on text app?)

odd void
# gentle kestrel

Say I want to use this only for DMs, does this already handle it? Or is that the domain of the mail sender

odd void
gentle kestrel
gentle kestrel
odd void
#

Ah of course, that makes sense

fallow crystal
#

Sorry I haven’t gotten to that list or API, life things are happening and I’m having to briefly relocate

stone lance
#

What's the altered procedure for setup on femtofox?

#

I get an error

d
Cloning into 'meshing-around'...
fatal: unable to access 'https://github.com/spudgunman/meshing-around/': server certificate verification failed. CAfile: none CRLfile: none
#

could be the computer time

#

¯_(ツ)_/¯

gentle kestrel
fallow crystal
gentle kestrel
#

Confirmed working latest fox hotfix release

brittle atlas
#

Hi guys, what is the best way to update meshing around when there are changes?

odd void
#

I would also like to know this. Would it be sufficient to add config.ini to .gitignore and do a git pull origin master?

stone lance
#

Config.ini is not pulled, it's made locally

odd void
#

So telling git to ignore that new local file would be good to allow git pull without it demanding you do something about your local changes?

gentle kestrel
#

it should be there

#
# config
config.ini

# Pickle files
*.pkl
stone lance
#

But gitignore makes sense, too

gentle kestrel
#

you are correct and once its created .gitignore takes over

#

if anyone on the repo touchs the file config.ini it would ruin everyones local changes with a git pull

#

hence the template to ini dance

#

the bot will inject any needed ini defaults into .ini

odd void
#

Ok cool, so updates are dummy simple with just git pull

#

Of course Ill have to do something different as I added a few new py files and modified some as well...

gentle kestrel
#

yea a fork might be better so you can pull locally or if its something you think should not be such a bother and moved to .ini, just mention it

odd void
gentle kestrel
#

that could be fun

#

having a script dump to news.txt kept it open for that

#

or alert.txt

#

the name is a bit funky in that it could be push.txt and pull.txt

#

not that python is bad for that use case but .. I do hope I have a close to out of box for it without having a loss of code in a git pull

stone lance
#

Where's the best place to put Meshing Around on the luckfox?

dusky abyss
#

i'd put it in /opt and create a user with no shell to run the service as

lone wolf
gentle kestrel
#

Yikes! Thank you @lone wolf

and anyone who sees this can pull the new docker.toss out the old. Impact by user-controlled inputs, such as package URLs.

The public’s access to this ability to pull irl like this is low meaning someone on mesh isn’t downloading packages, without a more complex attack on meshtasticAPI as well. But very much removing RCE from 2023 thanks for catching this.

gentle kestrel
#

Just refactored open meteo to drop native python module and move to standard requests

Translated please advise if a new pull breaks anything for the openmeteo use

#

This makes the bot more portable. Less overhead and bloat

gentle kestrel
gentle kestrel
#

That was openmeteo here is noaa

gentle kestrel
#

The command riverFlow is in latest pull

#

I don’t have England in yet

#

NOAA has full data openmeteo is still tbd

#

Early testing and all but seems ok

#

Need to enhance

gentle kestrel
#

Got a little documented on it

gentle kestrel
#

file reader got enhanced, new config.ini bit to read a random line from the file news.txt

#

so if you have a book, or a script from a movie

#

readnews would return a line from it

gentle kestrel
gentle kestrel
fallow crystal
#

Can't wait to do some testing here soon, mesh nodes come in Saturday

gentle kestrel
#

I think (untested) if you enableGBalerts = True in [location] config.ini that you should get UK.gov alerts with ea and ealerts

#

it just returns no alert right now but, any feedback if an alert is seen working good

#

the flood data. which there is a lot, appears to be in HTML only (same as the gov.uk alerts) there is nice RSS feeds with "7 flood alerts" and a nice website but its all bits here and there it seems - Bsoup is nice but one change to the HTML and its a house of cards fallen down.

#

if any UK users find a nice scrape or way to get lat/long into the zones etc let me know

#

the RSS gives this

#

that web is

#

thats a lot of hits and parsing

#

not sure what to do about rivers yet

#

if you know one is active holla'

#

hopefull its data not just a HTML

#

anywhoo for anyone who's tax's pay for Mr.Bean this is for you

gray igloo
#

mmm

stone lance
#

When did this get added?

#

I haven't updated that bot in like a month

gray igloo
#

haha

lone wolf
#

The bell character has been an IOS app option for longer than android. It could have been since then.

stone lance
#

Oh, good point

stone lance
#

I really need to read the release notes more closely...

gentle kestrel
#

I’m starting to forget commands the list is getting lengthy

odd void
#

It might be good to group them into categories

#

Dict for the code, stepped menu for the cmd help

gentle kestrel
#

Kinda hybrid like that now with the emergency stuff at the bottom. The rest is alphabetical.

Help is inline just like Linux would be

#

Stepping menus isn’t really awesome

#

See gameplay for stress on the idea

#

It works direct

#

It’s frustrating beyond

#

At the core the fundamental difference between this and other delivery methods it’s not a gui to have a menu

#

Its a twitter bot

#

But with a spotty link

#

It’s written now like that, so people can plop in code if they want and I hope quickly change or copy news to 🐝

#

One difficulty I have is globalization in language for local commands

#

this was a step to making it a bit easier

#

separating it out and such is and would be handy for this - but also likely good for a rewrite. The goofy bot has proven to be stable this long I just keep adding stuff

#

I had at least a dozen more ideas still so

#

Why slow the boat, it has been fun to drive

#

I am going to wrench in iPAWS and gov.uk to the same timer loop weather is on

#

IPAWS seems good for press gov.uk is still testing I don’t know what to expect

gentle kestrel
#

branch emergencyalert if you would like to test early

#
eAlertBroadcastEnabled = False
# Goverment Emergency IPAWS/CAP Alert Broadcast Channels
eAlertBroadcastCh = 2```
#

if you had early femaAlert this changed in config.ini

gentle kestrel
#

No crashing in 24 hours, pressed a release

broken mountain
#

next weekend I go back on site to setup remote power management for my meshing around node. I had a failed initial deployment where DHCP wasnt working properly on the network switch, and by the time I fixed it the rpi had stopped trying to get an address :|. Looking forward to getting back out there and fixing that, plus making it possible to kick the box remotely.

gentle kestrel
gentle kestrel
#
  • tail install.sh for a option with a 🐝 to return a string from the bee movie for example adding it alongside news.txt as bee.txt
  • also a quick way to spot what is needed to add command ideas by
stone lance
#

I got a reply from the guy.

#

He says there's no central UK alert feed as such, which is what we found out earlier.

gentle kestrel
#

Some new code in to demo pulling a bash file, currently it’s just giving environmental from motherboard.

fallow crystal
#

I got the bot working on a Pi, been poking around. May make a fork for some ideas and improvements :3

gentle kestrel
#

Service notice regarding satpass:

Many people are wondering if satpass which uses NORAD id will be able to track Santa via mesh-bot, in meshtastic networks.

Due to the nature of, the speed and security needed by Santa’s team; NORAD only provides tracking data via JavaScript and telephone lines.
At this time it seems out of scope to monitor an analog phone line but this could change. Please call 1-877-446-6723 for accurate santapass 🎅🎄data

fallow crystal
#

Keep running into this bug.

lone wolf
#

Same. It started when I turned on the neighbor info module on my nodes. It is either a node that is directly connected to the bot, or one nearby that is causing it. I haven't bothered to look closely enough at the log message to notice which.

I don't consider it a bug personally.

gentle kestrel
#

Interesting, I haven’t ran neighbor info adds overhead will check that out!

gentle kestrel
#

I cant replicate this yet

#

also this is intereresting @fallow crystal

#

to: 1

gentle kestrel
lone wolf
#

It's probably timed with the values in the neighbor module. It probably started when the option to transmit over LoRa became an option.

gentle kestrel
#

I have it enabled on all nodes now in my lab and not seeing any malformed error

#

the trap catching it is python # handle TEXT_MESSAGE_APP try: if 'decoded' in packet and packet['decoded']['portnum'] == 'TEXT_MESSAGE_APP':

#

so extra interesting

lone wolf
#

The packet will only transmit on a non-default channel. You may need a different primary channel with a random key.

gentle kestrel
#

OH right! thanks

#

I also just pushed a new error handler to better define the packet with an error (text or meta processor)

lone wolf
#

If you switch your primary channel for testing, make sure to check your LoRa frequency slot. It needs to be the default for your region to hear anything.

fallow crystal
gentle kestrel
#

I had different index 0 on all my stuff, think I am all on the same now for testing

fallow crystal
#

I need to update shiz but I am a bit busy with file transfers >~<

gentle kestrel
#

Nice, I’m waiting for a neighbor packet

#

Gotta wait 4 hours!

#

Ooof I’m gonna go flock something🎄

stone lance
#

Or is this a Xmas gift?

#

Your back catalogue of Linux isos?

gentle kestrel
#

@midnight oxide If your parser can dump to flat file. Alert.txt shoots data to mesh instantly and news.txt can be pulled over air

#

If your Python isn’t rusty 😉

midnight oxide
#

The original parser for the cap files is over 10 years old and written in PHP. It populates a mysql database with regions coded alert messages

#

Dumping out an alert text for one region should be no biggie.

#

At the time it was the backend for a nationwide sms alert aervice, so it's production quality code.

#

I think by now CAP is a standard too. There was an older text based Format that got phased out around 2015

#

The same cap stream is broadcast over eumetsat datacast on eutelsst 13° east

gentle kestrel
#

Fun! It’s cool how each system works and the legacy of it all

gentle kestrel
#

I still have not been able to replicate neighborhood packet haven’t seen one, it’s in my —export config

#

MQTT is enabled but I’m not using a soft radio

#

2.5.16

fallow crystal
#

Yay limited by USB drive speeds

lone wolf
#

I'm running your bot in a docker container using commit "4d5916df29f32af0aaf6837feb2f7e680d9e449a". The radio I'm connected to is via IP with a node ID of "1136044020". It is enabled to send neighbor info over LoRa, and others within range are as well. The primary channel of this radio is the default public channel, so I don't think it will ever send the neighbor info. It does however have the key for channels that my other radios use for private primary channels. I think those others sending neighbor info is what is triggering the message. I'm attaching the last 1000 lines of my log data for that container.

Hope this helps.

gentle kestrel
#

Same error as A-cOrN. I still haven’t been able to recreate it

#

Its acting like the packet is bad

lone wolf
#

Have Santa put it on the naughty list, and deal with it after Christmas.

gentle kestrel
lone wolf
#

I'll do an update this weekend. I normally take the time to go through the config.template file to make sure my current config.ini isn't missing anything. I don't have that kind of attention span at the moment. 😉

gentle kestrel
#

Yup, some new items, nothing major unless you had FEMA alerts I changed that value

#

Widening the scope for alerts needed it understandable

lone wolf
#

Nice. I do have them enabled currently.

gentle kestrel
#

I had placeholders for all the non text packets and I don’t think the key value I had is real .. I backed off the key value to hopefully stop what I assume is my key error for the neighborhood app

#

I can’t seem to get the packet out of my node yet

#

So it was a blind assumption

#

Interesting it just cropped up

lone wolf
#

I've noticed it for a bit, but just didn't worry about it. It didn't look like a problem, and just like data that it didn't know what to do with.

#

The transmit over LoRa option may still be a function only available in the alpha releases of the firmware.

gentle kestrel
#

Yea it’s very possible the packet did change somewhere along the line

#

This was a major change when it happened

#

(In firmware)

lone wolf
#

My node from the log data is 2.5.14, but most everything else I have is 2.5.16 or higher.

gentle kestrel
#

The code didn’t match your logs so I’m hopeful

#

Thanks 🙂

median fractal
#

Merry christmas all!

gray igloo
#

Should make the bot send merry Christmas on primary :)

#

Or what ever is the public channel

#

Optional ofc

stone lance
lone wolf
#

You could already do that with the schedule feature probably.

gentle kestrel
#

Yea, Or just a bash file printing a grep of wget on chron >alert.txt

#

“Santa is snoozing”

#

I asked for Santa tired from a days work asleep in ham shack listening to radio

stone lance
lone wolf
#

DON'T JUDGE SANTA!!! 🤣

gentle kestrel
#

new installer out with better embedded stuff. also now adds an option for a meshbot user with no login for service

gentle kestrel
#

Patched an issue with fema alerts if the network went down it would alert it failed to get alerts over air

fallow crystal
#

Idea I may implement for myself, but could push up if wanted:
Internal FTP server for File Dropping, as well as parsing.

#

I own a Trilthic EASyPLUS Encoder/Decoder box that can file-drop Emergenct Alert Details, and with a little built-in FTP server the bot can publish alert information it sends.

gentle kestrel
#

Nice! Alert.txt pushes contents on change to mesh and news.txt can pull various ways (using Linux ftp) could be a config setup

fallow crystal
#

There's a package I have used a few times called pyftpdlib that can have it be part of the bot itself. No extra programs needed.

gentle kestrel
#

I have heard that some alert systems use ftp I’m not apposed to the idea as much as adding libs the less needed the better.

As the project natively sits in a ftp/scp server do you think a helper bash/chron < python ?

fallow crystal
#

Well, Bash/Chron depends on a specified external FTP program that may or may not exist on whichever platform the bot will be ran on, or could have different FTP libraries that have different configurations that the end user would have to figure out (Example, maybe a custom linux build for a LoRa board comes along that has a custom package system, with a different FTP server than your normal FTPd)
Versus using a python package that

  1. will be built in, so as long as the package can be pulled from pypi it will work
  2. is cross platform
  3. you can do versioning control on in your requirements.txt
  4. will have the same configuration, and who's config can be built-in to your existing config file
#

at least that's how I see it

#

take the load off the end user, make it straightforward and easy. one click, done :3

gentle kestrel
#

The ip address of the bot is the ftp but backed by distro bins

#

you could also telnet to, ssh to scp

#

Web

#

It’s like 90% done is why I ask

fallow crystal
#

Fair

gentle kestrel
#

Keep an eye on #1302945239689990185 foxbuntu project

lunar shore
#

@gentle kestrel So I played with the ollama integration today and noticed I did not need to use the ask: or askai command to reach ollama. Also, with ollama enabled the history command was not working. I wasn't paying close enough attention to notice if the command itself was being misinterpreted. I could try to recreate issue tomorrow but just quickly wondering if these were typical.

gentle kestrel
#

Only in channels is the ask/Askai used (still works in dm)

#

History is a bit limited yes; I’m only keeping like 1-3 last query’s and it’s the last item for inference in the chain model

#

I stress Google response over historical chat

#

Follow up questions will stink for the most part

lunar shore
#

Thanks. Actually, it appears history is no longer working even with ollama disabled in config. Weird, I know it was working before I started playing with ollama. No biggie. Just something I noticed.

gentle kestrel
lunar shore
#

actually it looks like i broke something. there are other commands not working. i just tried satpass. time for some logs or a restart

#

okay thanks

gentle kestrel
#

Do you see them on the log?

#

If things go too badly check config.ini and reset it from the template

#

In a rare case it can get corrupted

lunar shore
#

weird. no. nothing in log since i disabled ollama hours ago. yet wx just correctly ran.. hmmmm

gentle kestrel
#

Could be wacky mesh conditions my stuff is so condensed I have issues all the time I keep it all in client mute except for the roof

#

It’s a normal client (likely a solar bot soon)

#

As for ollama Askai and if no trap it’s disabled

#

If it fails a call it will display warning

#

git restore . if goofin

lunar shore
#

killed the process and restarted but still same. I'm rebooting machine. I think i hurt it trying to run gemma in vm earlier. I know for a fact I asked it to use more ram than physically available. lots of crashes.

gentle kestrel
#

Haha nice

#

One way to tell if the bot is working vs ollama first boot will give Please wait, response could take 30+ seconds. Fund the SysOp's GPU budget!

#

It’s a placeholder for future needed “please wait”

#

If your response is under 40 you don’t see it again

#

But it will always trap on first ollama run

lunar shore
#

That's clever. I liked that

#

Update: Everything is working after rebooting entire vm. I just got hit by a huge backlog of responses. I guess the program lost contact with the radio. I wonder if cancelling usb passthrough was a proxmox response to running out of ram. I'm actually okay with not knowing what all crashed. Anywho, bot is back up and I won't be playing with meshllama until I have more capable hardware. Thanks for your help and thanks for this cool tool. also, good reminder to put the bot node in client-mute. I thought about that earlier but never changed it. As far as solar roof nodes. My 40 ah 12v battery is at 75%. The only thing running is a g2 pulling just over half a watt when not Tx. St. louis hasn't had good sun in days. Tomorrow doesn't look promising either. I went with a way overkill battery.

gentle kestrel
#

Nice! Welcome glad it’s fun!

Yes it sounds like connectivity to the node disappeared.

The bot will try and reconnect.

A vm could be a few things glad it’s working well now!

heady raven
#

Aloha, has anyone tried this: connect a pi4 to Heltec T114v2? is it possible? interface through the usb port? If so, I'm game... MPWRD

gray igloo
#

Any device should work

heady raven
gray igloo
#

Yup

stone lance
heady raven
loud ore
#

I'm getting timeouts on TCP running meshtasticd locally, eventually resulting in a crash. I assume serial is better?

gentle kestrel
#

I use the API and if it’s can’t find localhost I can’t either

#

Is meshtasticD running authorized?

#

(Web client work)

loud ore
#

yes, the web client works

#

meshtasticd is running as root

#

I tried to scrub traffic from an MQTT user that found my BBS within a few minutes of it going up.

gentle kestrel
#

According to the logs it went away

loud ore
#

I tripple checked - the 16:18:04 to 16:19:02 gap is actually in the logs. Not just a copy/paste error.

gentle kestrel
loud ore
#

Pi Zero 2W and a waveshare hat

gentle kestrel
loud ore
#

It was running on USB out of my PC

gentle kestrel
#

Something hung up, I would assume the clock stability

loud ore
#

Ah nice.

#

Based on your earlier question I assume I need more than the trickle my PC can supply?

gentle kestrel
#

It would be my first guess, I will run some uptime testing as well

#

The tcp disconnects are hard as ble to handle

#

I do have good uptime on ble and tcp

loud ore
#

I'm not sure I would bother. I was getting these errors constantly since initial startup.

#

I'll switch to a much nicer supply.