#meshing-around BBS/utility BOT
1 messages · Page 3 of 1
My dev node could have low errors and such I suppose
I didn’t expect 0
Also a new data/ folder showed up and I set all pickle/data files into this location to keep things tidy
If you have a high score you want to migrate into “v 1.5” just move it from project root to data/ after a pull
No worries, intended to help more as i am building out my mesh network here in south spain. I am high in the mountains covering miles.
Another idea i had was to bundle the bbs nodes over a mqtt like a real bbs system worked in the old days. But that needs some braindumps hehe
Awesome! Sounds like a fun project! Glad the bot is useful for it!
Yea I have a todo for adding a new interface type of MQTT and Just a Text connector for serial and raw tcp connects which will open the door to a lot of that
meshtastic/bbs/<server_id>/<channel>/<message_type>
Needs a proper design but it is doable
One hang up I have is a refactor to an interface class to tidy things up a lot but that’s over time kinda no rush.
I asked TC2 about a common link concept haven’t heard back yet
Right
One other issue, and really the biggest is all the data flowing in needs a nodedb or otherwise to land in
That could be a cloud node
The work with a radioless meshtasticD is interesting I want to visit
Have that be the virtual node table and it makes the meshbot work easy
that's how i've been testing your code and my python client wip ❤️
i have several of them running, connected to various active meshes around the usa
Awesome; I’m really excited to try this but I know it will put me in a rabbit hole so I’m waiting to finish a core for multiplayer before I go there. Really excited to hear it’s working model
also have wireguard rigged up here, so i can connect back to them with the android client from wherever
I have tailscale 😅
you could probably do the same then ❤️
ye having a vpn back home/where your node lives is v nicee
mdns is a pain tho, easier to just remember your node ips
I can :)
I bet this page hasn’t been linked to for a while
ArtSci data source
They don’t allow data past 10miles without a login and repeater book uses a API key the terms are …
A chunker rewrite just happened
Also hacked out a lot of repeated code blocks
Sorry - between a kids birthday and a bit of hardware design changes I didn't get chance to look at it.
Just found out that running a heltec v3 with passthrough in virtualbox to a debian vm, is not ideal, switching to a pi4 soon
Any other people in here with a flipper zero? i know the flipper does not have support for lora or in other words the SX1272 chipset. But if anyone found a addon board that is available let me know!
I've got breakout PCBs for sx1262 modules if you want?
They're not designed for the flipper, but quick to adapt if you know the pin order you want
Are you specifically wanting a USB connection to the VM or is there a reason you can't use a network connection instead? Or does Meshing-around only support USB?
I'm curious what the use case is for Flipper with Meshtastic. It's not much smaller than a node and would be a nightmare to try and compose messages of any real lengths with only dpad
Meshing Around supports BLE, serial or network.
I am, too, but the flipper is a popular toy, so adding Meshtastic gives another string to the bow.
Okay cool. I was planning on deploying this week to play around and was hoping it would support network since I'm gonna be running on Linux native pi node and I think network is the only real path to client connection there.
Dude no worries at all!! 😎
Yea should be fine I run WiFi and ble nodes. Ble disconnects are sometimes fault inducing needs review but.. should all work native my primary system is a pi5(ble node) all code should acceptable on a pi5/8 (to include LLM)
One issue I have seen is running a ble and WiFi simultaneously: on review the pi didn’t seem to be able to function (wasn’t the code I don’t think)
And the code will only allow 1 ble device same issues
Docker might work better? But native is obviously good as well
Yea
would be fun to have packet visibility on them even with a daughter board
Have you also seen #1247642561011515562
Thanks for the tip! and indeed some visibility would be awesome, now lurking around with 2 devices
I have some pi's laying around, was just not bothered yet to put them into action 🙂
I been chasing telemetry issues all day / the issue was my venv got borked and I was using a local meshtastic v 2.3 something so no code was working … oh man
What a waste of time
Anyway .. things are all updated and back on track
Hope to have lab stable soon
chasing ghosts mate 🙂
Yea it was a mess, I have all the new telemetry I could find going into the logs now that seems fine
I am only getting the telemetry for the bot node
The reporting has the regex match done
It’s a matter of now collecting all the values and putting them somewhere
I stuffed them into a string on the host page for now
thats allright, we can always adjust
Can I run this from a pi4?
Yea! The only intensive compute is optional LLM
The lab branch has a lot of new code in it but under heavy development
Just enhanced
Sweet, I assume it’s my install failed then. Get a config error and launch won’t work I’ll keep messing around!
Copy config.template to config.ini @buoyant meadow
AH yay its running gonna go mess with it now
Do a fresh pull of branch lab I think it’s stable possibly at the moment not a lot of debug going on @buoyant meadow
Has all the newest fun
Will do, I gotta get my tdeck to send to my node for some reason it stopped
I am sure this is a longshot, but I'm guessing there is no way to offload the LLM portion to a different device on the network. Like a computer with good CPU/GPU to process commands but run the core of bot on Pi for stability and less power need when running off something other than grid power.
The foundation of ollama uses client server and so yes it’s possible as today it’s actually using local host today
I am not sure if it’s easy to 1) modify host today
- needs a new prompt
I just fed it the exciting prompt and it spit out 50 messages the new chunkier works well hahaha
Ok the latest lab branch has some things to try. I don’t know at this moment if you can use my langchain-model with a remote server. Check out LLM.py and there is a value at the top to goof with local server // this is unthrottled access it can be verbose @lost bear
Ok lab got a quick test from QA and I’m going to try and change freeze make sure it’s stable and finish uno
just opened a pull request for support to run it from a different server than the pi
I saw that but, it’s a breaking change?
Did you mean to copy the LLM to a new py
lets keep both, and have a remote and local option
yeah my bad, coffee needed, just got up here
Feel free to just patch over the patch and keep the same pr I don’t really use individual commit meta/comments
You may have noticed I commit like a 🥔
I have hot key for push
i saw that, i envy your free time to work on such projects 🙂
It’s been a lot of fun; I have quite the pipeline of ideas still
I was just drafting up a pax2 monitor today
OpenCV enhanced pax telemetry
got some framework in for GPIO # REMOTE_HARDWARE_APP
if packet_type == 'REMOTE_HARDWARE_APP':
It’s a moonshot to get 🕹️ in the mainline UI but I think this project could give a nice blynk like utility for a explosion of STEM use
Still I can text “GPIO #4 0101011100” or something handy
Please, teach me your secrets!
The quickest is having macros set but the GUI GitHub is wonderful for reviewing things
Oh, gui GitHub!
yea it’s really a lifesaver
My RPi always seems to lose WiFi after 7 days and need resetting. Meshbot still works, tho 🤖
There is also a GitHub app, you can write code in it
I have no idea what is going wrong with it - it's in the loft...
Is your wifi setup not releasing it's clients after 7 days ? static like @gentle kestrel , could help otherwise have a look at the AP
In this video we investigate a sometimes overlooked problem that can happen with any mesh radio system including Meshtastic... Interference!
Would you believe I discover in this video that its even affecting my own nodes performance.
Heltec T114 Temporary fix firmware
https://resource.heltec.cn/download/Mesh_Node_T114/firmware/firmware-mesh-nod...
i have something similar here :)
blasting on 869.525MHz all the time no pauses
long moderate somewhat works
new service runs without terminal
how do I watch the world scrolling by?
or restart the service, for that matter
you can do a tail -f on the log file
from directory logs you will find the meshbot(date).log run that with tail -f LOGfile
awesome
Or use the cool new reporting tools!
D'oh, should have thought of that!
I did close the pr for the change to the LLM.py @median fractal
I have a “help” thread in over at ollama to see if there is a quick answer to using client with a model prompt
If so .. it’s obvious to restructure the code to pointing to only the client makes it single file easy
The documentation seems sparse so far (without delving into the Python)
Specifically I would like to feed langchain into “ollama Client”
or if there is another efficient way to model prompt
It’s a requirement - one thing I haven’t tested is dumping all of langchain only using ollama client and building a model prompt in Python only (a fancy way to say it’s a huge ‘f’ string) sent to client
This might work perfectly as it’s really ideal
It works perfectly it seems
I’m running out the door but I will refactor this yes
Yes it will be in 1.5
@device2755 your push makes more sense now
Good to hear 🙂
It works! Took a whole day (mainly was away at work)
Awesome!
I just got full refactor in for LLM1,5
Tightened up the model prompt
Added config.ini hostName @lost bear
It’s on lab:branch
You can now use any device and remote access your own LLM, likely others
It’s also in main
Im just dumb and did not scroll my config
I am so privileged to do everything with a UI that I fail at SSH haha
I been goofin with RAG again feel like it’s sooo close
ollamaClient.generate(model=llmModel, prompt=modelPrompt, context=ragContext) throws an error about json
If you put data/rag/blah.txt
ragContext looks nice big old number array
But it’s expecting json ..
So client is all json and older lang chain links are the array? (I think)
(Goes hunting for details on rag and json)
Nothing yet, if any ideas I’m stuck for the moment
I can have a look tomorrow
was busy today for my son, promised him a nasa control panel, made the first commits today, still working on the buttons and the casing to put it all in
Nasa control 🤣
didn't you want to have one when you where 5 years old 😉
Didn't even know about nasa back then 😅
Awesome project! I had kids once and loved making stuff like this so much fun.
indeed, he is happy to help with soldering, and learning about computers, so win win
Very fun; I’m jealous!
My dad programmed one up on a BBC micro...
Awesome!
I rolled lab into main
If you don’t need old logs and want reporting chuck the old logs
Old logs won’t help any accuracy or charts
Lab will be less stable and I hope main is low issues, holla if you find any
Awesome job you guys have done on this.
I'm running main branch on pi4b, 4g ram
It won't run ollama so not playing with that.
I had issues with ./launch.sh, it doesn't pick up mesh or pong and fails (or html selection)
Got round it by commenting out the bits I didn't want.
Maybe I'm missing something there re how to launch?
LAtest version should be running as a service if you use the ./install.sh
Thanks 🙂 Launch.sh is only for venv and install.sh facilitates the basics of setup including optional venv. What was the error?
Ollama needs ram.
I'll have a look tonight and let you know
I'm zulu +12 (nz)
Had another play around.
I cd meshing-around
./install.sh
Virtual environment yes
Meshbot
That runs ok
Reboot
./launch.sh
From meshing-around dir
Install.sh or launch.sh invalid
I feel I'm missing something?
Launch goes straight through to please provide a bot....
It's not picking up $1 string?
^ seems useful to pin to the channel 😉
Should be the first post, I don’t know forum threads pin?
./launch mesh
Is that what you’re running?
Should deprecate the old pingbot entirely
So launch just launches the mesh bot
I assume? The command line auto complete is putting ./launch.sh mesh_bot.py which won’t trap $1 if
(Might need changed to not do that)
I don’t know I understand the fault yet
forgot threads vs channel things
I've got a bot running, (launched by running mesh.py directly)
uv run mesh_bot.py
2024-10-12 14:22:58,556 | DEBUG | System: Initializing Interface1
2024-10-12 14:23:00,197 | INFO | System: Autoresponder Started for Device1 Painkiller MQTT Relay,PKMR.
...
2024-10-12 14:23:00,197 | DEBUG | System: Store and Forward Enabled using limit: 3
2024-10-12 14:23:20,707 | DEBUG | Telemetry:1 numPacketsRx:0 numPacketsRxErr:0 numPacketsTx:0 numPacketsTxErr:0 ChUtil%:1.8 AirTx%:0.5 totalNodes:9 Online:0 Uptime:13m Volt:4.2 Firmware:2.5.6.d55c08d
2024-10-12 14:23:26,183 | INFO | Device:1 Channel: 1 Received DM: cmd From: KP Base
2024-10-12 14:23:26,183 | DEBUG | System: Bot detected Commands:[{'cmd': 'cmd', 'index': 0}] From: KP Base
2024-10-12 14:23:27,384 | INFO | Device:1 Sending DM: Bot CMD?: ping, sitrep, motd, whoami, sun, hfcond, solar, moon, whereami, wx, wxc, rlist, wxa, tide, bbslist, bbshelp, joke, wiki:, games, messages To: KP Base
It definitely says it's responding to a DM with cmd in it, but I'm not getting a DMed response back on KP Base. node is a heltec v3 running 2.5.6 flashed an hour ago.
Node only has a custom PSK channel, and the following set
respond_by_dm_only = False
# defaultChannel is the meshtastic default public channel, e.g. LongFast
defaultChannel = 1
# ignoreDefaultChannel, the bot will ignore the default channel set above
ignoreDefaultChannel = False
Not sure where to start troubleshooting.
I've been able to manually DM back and forth between the nodes
How far apart are the nodes, will it ping
about 30 feet through a roof. ping like "traceroute" or a different kind of ping
Instead of CMD send ping
The Cmd packet is larger wondering if a smaller ping response works
Larger as in more text to send
ping gets logged, but no response comes through
2024-10-12 14:47:29,706 | INFO | Device:1 Channel: 1 Received DM: ping From: KP Base
2024-10-12 14:47:29,706 | DEBUG | System: Bot detected Commands:[{'cmd': 'ping', 'index': 0}]
2024-10-12 14:47:30,907 | INFO | Device:1 Sending DM: 🏓PONG, SNR:6.0 RSSI:-32 To: KP Base
hrm. I have LOCAL_ONLY set on this bot node for rebroadcastmode. That shouldn't matter, but lemme set that back to default
Also try a channel see if DM PSK is going strange
It appears all is well, and if no errors it passed off to meshtastic radio fine
2024-10-12 14:49:46,375 | INFO | Device:1 Channel:1 Received: Ping From: KP Base
2024-10-12 14:49:46,375 | ERROR | System: AntiSpam protection, sending DM to: KP Base
2024-10-12 14:49:46,375 | DEBUG | System: Bot detected Commands:[{'cmd': 'ping', 'index': 0}]
2024-10-12 14:49:47,576 | INFO | Device:1 Sending DM: 🏓PONG, SNR:5.75 RSSI:-31 To: KP Base
Your public was set as 1
So use channel 0
(If you want to spam needs hard set in code to disable anti spam)
There is a handy Boolean
0 is the custom PSK channel
I actually removed the default AQ== channel completely
and have this in my config:
[general]
# if False will respond on all channels but the default channel
respond_by_dm_only = False
# defaultChannel is the meshtastic default public channel, e.g. LongFast
defaultChannel = 1
# ignoreDefaultChannel, the bot will ignore the default channel set above
ignoreDefaultChannel = False
I interpreted defaultChannel as "tell me which ch-index is the AQ== channel"
Set default channel to like 7 if you don’t have one
Basically removing it from play
2024-10-12 14:54:22,728 | INFO | Device:1 Channel:7 Received: ping From: KP Base
2024-10-12 14:54:22,729 | ERROR | System: AntiSpam protection, sending DM to: KP Base
2024-10-12 14:54:22,729 | DEBUG | System: Bot detected Commands:[{'cmd': 'ping', 'index': 0}]
2024-10-12 14:54:23,929 | INFO | Device:1 Sending DM: 🏓PONG, SNR:6.25 RSSI:-31 To: KP Base
weird
I definitely don't have a channel 7
Yea that’s a bug, is your primary channel 1 ?
Channels:
Index 0: PRIMARY psk=secret { "psk": "redacted", "name": "Painkiller", "uplinkEnabled": true, "downlinkEnabled": true, "moduleSettings": { "positionPrecision": 32, "isClientMuted": false }, "channelNum": 0, "id": 0 }
Primary channel URL:
maybe I'll do a export-config and full erase...
Oh.. is this MQTT inbound?
no, radio inbound
the mqtt is just a "I want INA voltages from telemetry from the roof node" thing
Yea I’m just trying to figure out how to replicate it so I can find the issue is there only channel 0?
correct, only channel 0
roof node (ping sender) has
0: AQ==
1: custom PSK
bot node has
0: custom PSK
at one point recently, bot node had
0: custom PSK
1: AQ==
but hasn't for about an hour
So I think firmware uses ch0/primary for DM (psk or not) in this case if your responding on DM your bot will always use AQ==
doesn't the new PKI stuff ignore channel encryption?
It’s a overlay
Like a VPN tunnel
It uses AQ== highway
(The primary channels config)
I could add logic for “channel only no dm” to force it possibly
so
roof node sends 'ping' over custom PSK channel (not DM)
bot node responds on AQ==, even though that's not configured?
I think that is what may be happening first glance
that feels like it should be impossible
So you can test this .. use the curses client as a chat terminal and test coms
not saying your wrong, I just can't mentally trace how the bot node would try to respond via DM on top of a channel key that isn't configured
https://github.com/pdxlocations/curses-client-for-meshtastic this one, right?
it’s a hardcodes thing .. I am quoting a comment I saw in the pdxlocations code for the limits on DM
I tried to get around it once and found it was still true back on 2.3
I assume it’s the same today for the limit
But still .. I’m confused by your logs @near drift
Interested to hear how curses client works out
Same underlying API
Can you get messages two way and if so which channel on which device. Don’t set your public channel on the bot to that channel
"Don’t set your public channel on the bot to that channel" ?
If you can chat in curses client take note of the channel for the device I assume you want public =0
I was trying to not have the bot node on public/AQ== at all
Ahh ok
Can you DM?
Ok that’s all good!
For sure, I don’t do a lot different for interactions with the radio but .. I never actually thought about or tested a “no public channel” I don’t think and assume something is failing
I can throw the AQ== into index 1 and try that
Or any key yea I would be curious
Those logs showing you got traffic on 7 tell me I have an issue
ok, AQ== is now index 1, I assume set defaultChannel=1 again, rather than 7?
^ that works as a DM
custom channel ping, DMed response works as well
so I angered the code by not having a default channel at all 😄
Ok confirms my suspicion, I never accounted for this situation. I’m on a walk will be back at keyboard soon and figure it out!
enjoy your walk!
this will be pretty bad if packet.get('channel') is set by the sender somehow
added some debug logging
git diff mesh_bot.py
diff --git a/mesh_bot.py b/mesh_bot.py
index 7abe80d..e985d8f 100755
--- a/mesh_bot.py
+++ b/mesh_bot.py
@@ -906,7 +906,11 @@ def onReceive(packet, interface):
# check if the packet has a channel flag use it
if packet.get('channel'):
+ logger.debug(f"Channel from packet: {packet.get('channel')}")
channel_number = packet.get('channel', 0)
+ logger.debug(f"Channel_number: {channel_number}")
+ else:
+ logger.debug("packet had no channel")
# check if the packet has a publicKey flag use it
if packet.get('publicKey'):
results:
INFO | System: Autoresponder Started for Device1 Painkiller MQTT Relay,PKMR. NodeID: 862415632, !33676b10
...
2024-10-12 15:52:26,527 | INFO | packet had no channel
2024-10-12 15:52:26,531 | INFO | Channel from packet: 1
2024-10-12 15:52:26,531 | INFO | Channel_number: 1
2024-10-12 15:52:26,535 | INFO | Channel from packet: 1
2024-10-12 15:52:26,535 | INFO | Channel_number: 1
2024-10-12 15:52:26,543 | INFO | Channel from packet: 1
2024-10-12 15:52:26,544 | INFO | Channel_number: 1
#!!! Pretty sure this is my 'ping'
2024-10-12 15:52:36,599 | INFO | packet had no channel
2024-10-12 15:52:36,599 | DEBUG | packet had no channel
2024-10-12 15:52:36,599 | INFO | Device:1 Channel:1 Received: Ping From: KP Base
2024-10-12 15:52:36,600 | ERROR | System: AntiSpam protection, sending DM to: KP Base
2024-10-12 15:52:36,600 | DEBUG | System: Bot detected Commands:[{'cmd': 'ping', 'index': 0}]
2024-10-12 15:52:37,800 | INFO | Device:1 Sending DM: 🏓PONG, SNR:6.0 RSSI:-31 To: KP Base
2024-10-12 15:52:38,982 | INFO | packet had no channel
2024-10-12 15:52:46,905 | INFO | packet had no channel
^C2024-10-12 15:53:06,855 | DEBUG | System: Closing Autoresponder
Try a new pull
I had a error for sure
You can set the public channel to something off index now
I was using -1
should I remove the AQ== channel, or set the config to something wacky (or both)
neat, in-channel response, and DMs work
youdabest, @gentle kestrel
2024-10-12 16:00:04,084 | DEBUG | System: Store and Forward Enabled using limit: 3
2024-10-12 16:00:12,424 | INFO | Device:1 Channel:0 ReceivedChannel: Ping From: KP Base
2024-10-12 16:00:12,424 | DEBUG | System: Bot detected Commands:[{'cmd': 'ping', 'index': 0}] From: KP Base
2024-10-12 16:00:13,624 | INFO | Device:1 Channel:0 SendingChannel: 🏓PONG SNR:6.0 RSSI:-31
2024-10-12 16:00:24,795 | DEBUG | Telemetry:1 numPacketsRx:295 numPacketsRxErr:0 numPacketsTx:230 numPacketsTxErr:0 ChUtil%:5.0 AirTx%:2.3 totalNodes:33 Online:26 Uptime:2h Volt:4.2 Firmware:2.5.6.d55c08d
2024-10-12 16:00:41,740 | INFO | Device:1 Channel: 0 Received DM: Ping From: KP Base
2024-10-12 16:00:41,740 | DEBUG | System: Bot detected Commands:[{'cmd': 'ping', 'index': 0}] From: KP Base
2024-10-12 16:00:42,941 | INFO | Device:1 Sending DM: 🏓PONG SNR:6.0 RSSI:-31 To: KP Base
thanks so much!
Yes thank you for finding the issue!
I will endeavor to do more non-standard stuff to find edge cases 😄
This means we proved this isn't the case, right?
or at least isn't "how PKI on top of channels works"
we proved that a DM goes back over the channel it's received on, I think
Seems to be the case here yea, I think the limit is DM use channel 0?
Also Fixed a few game bugs
I don’t think so, it was receiving on 0, but that “if no channel in packet, set it to default” bit, when I didn’t even have a 1, but had configed default=1
Cut LHeard size with short names
Explained the channel 1 in the log, even though there wasn’t a channel 1
My code had a very large issue I was forcing the channel incorrectly when none existed aka ch 0
Is that another “we’re not real explicit if 0 means 0 or unknown sometimes” issue?
I had a fault in that if the packet didn’t have a channel (which is the case for zero) I set the channel to the default channel int value
This is totally incorrect
So it was destroying the packet flow // the reason this wasn’t found before is everyone to date has been running a public channel I suppose
So there is always a valid entry for it and this wasn’t cropping up the firmware was handling it
There was the reference
And so I had replicated its functionality by forcing channel absent to default channel
But I did it incorrectly for sure
Assigned it in handling BBS mail
My fix / patch was removing its poor area in code block and just assigning zero just like pdxloc did in that same example
Yes it spun up good on my pi this time
Good work
I've got it spun up on my nas now in a vm running Linus server
My issue with the launch.sh earlier may have been because I rebooted after the install
If I don't reboot launch runs fine
It's like it looses the $1 string after reboot?
Ring any bells?
Hard to say without looking at the output but glad it’s working. now!
I have a friend outside of mesh range. We have had some fun chatting through mqtt. I was hoping he could access the bot, but he cannot. Am I missing a setting or is the bot over mqtt a no-go? The bot hears over mqtt, but the response isn’t shared over mqtt.
And by the way, thanks for making this, I learned a bit setting it up and am having fun playing with it
How are you setup today? One popular way to MQTT plug the bot is with meshtasticD on a radio less config. Putting the bot directly into MQTT.
idea I haven’t tested is just having a MQTT broker node in mesh.
How are you setup? Are you using the bot node to also be a MQTT updown link?
The node has 4 channels. 0 is private primary. 1 is LongFast default. 2 is another private channel. 3 is admin. All have mqtt up and down enabled.
Bot: respond by dm is false default channel =0 and ignore default is false.
Putting my captain obvious hat on: if I made the radio less, then I’d have to find a solution for rf only members of mesh. Which might not be a big deal.
What is done is the bot is radioless and the node has MQTT uplink and downlink
I am guessing the node isn’t passing serial traffic into MQTT? I need to try this setup
That is the part that confused me. The bot node is set up the way my pocket node is. When I send message on pocket, they go through mqtt. But when the bot sends a message, it doesn’t go through mqtt. Since it’s almost Halloween, I’m going with the node is a sentient being that doesn’t like interfacing with a bot? 😂
I don’t know actually I have never uplinked or downlinked a node really I will test this out and see if something is obvious.
I do think a lot of people do the fake radioless node because of a limit / I don’t know if its meshbot code or firmware
Well, fwiw, I turned on serial echo and my friend can see the bot.🤷♂️
Interesting thanks for sharing
That seems like a possible solid resolution. @unborn flint did you enable the serial or just have to enable the echo?
Serial was enabled, I just enabled the echo. Although I just checked and DM isn’t working. That might be a setting in the config.ini though.
DM works on RF, not mqtt. Getting closer. I’m going to install that latest pull and see if setting default to -1 changes anything.
Wonder if it’s a DM PKI problem, you can also test routing flow with https://github.com/pdxlocations/curses-client-for-meshtastic/ @unborn flint
If you can use channels and DM or not helps diagnose the issues
That project and mesh-bot use the same concepts for connectivity etc
I need to change some major items in my lab to get MQTT working so .. gonna take a day
I installed latest pull. Set default channel to -1. Set transmit enable to false on both devices. DM didn’t work. It did work on channels, except in chunked messages I only receive first chunk.
I’ll check out pdxlocations in the next day or two and see what light that sheds.
I haven’t been testing MqTT (yet) forgive me. But I have been goofing around with a RAG model and I think I have something which can scale .. it’s apparently working in very dev code
If you have any feedback on better ideas I’m all ears I’m not ground breaking but I really am flying blind for the most part when it comes to the best way to query via the client with lots of text
I haven’t gone as far as kwix yet but possibly it’s close possibly anyway if you wanna 👀 it’s on lab
chromadb is needed as a include
I dumped langchain possibly for good
Means any model which needs langchain templates would be EOL for this project
I am also thinking of default model shift to llama3.2 it’s fresher less bias
Well.. who am I kidding but it’s fresher
tbd Gemma plays very well with top 3 Google results
Quite alright on the mqtt. The rest is way over my head.
I did run that curse-xxx script. Unfortunately, I realized that when I upgraded firmware to 2.5, I chose the wrong file and flashed the wrong firmware. Apparently it was close enough to basically work, but it was a little wonky. I fixed that mistake. Still no joy on the DM to bot through mqtt. Let me know if there is specific data that would help you.
My background is psychology and helping people who have mental challenges. Reading your post helps me empathize with those people much better. I feel quite mentally challenged trying to figure out what you just said.
Thanks for all your efforts!
I did just read this in the general channel:
yes, 2.5+ supports public-key cryptography which is used for DMs. prior to that, it's not just channel 0 that's used either -- it's whatever channel your node most recently saw a nodeinfo from the recipient node on, which if you share multiple channels with that node could be any of those
Since both nodes share 4 channels, I wonder if that is causing an issue. Since that node will be dedicated just to the bot, I’ll experiment with just using one channel and see if that changes anything.
Oh nice, if the curses client can do it I should be able to / if neither can that’s good to know as well
So the serial echo isn’t seeing DM is what it boils down to?
What’s in test I think
Still not totally sure
Haha wasn’t directed at you specifically but it was for a LLM (AI) enhancement to RAG or use a subset of your own data for query. I hope to kwix/wiki the bot to be a off grid searchable of unstructured data
You could take a book for example put it in the bot and have AI query in meshtastic
If your home PC is a pi5 or better quality you can play along with ollama it works on most all systems
If your using it via docker today it needs some know how, however
Otherwise it’s mostly scripted in Linux for use
And if your a windows user and got this far you should be able to roll the rest
(Share your scripts we can add them)
My computer was a windows machine. It got very slow. So I installed Ubuntu. I’ve been having a blast playing with that. Brings me back to sitting in the computer lab and playing with the Apple 2e’s. I haven’t had a chance to play with ollama yet, but I’m looking forward to it.
interesting, meshtasticd nodes don't generate keys for DMs
well, at least my radio-chip less node didn't
^ that's a lie. I had to restart it but now I have keys, and now I can curses-client DM with a real node via MQTT relay to RF
Yea that seems like a tried and tru way to go really if MQTT is wanted
It gives a lot of flexibility
I’m curious about the echo trick and DM it’s a fun idea
Everything working bot and all?
Yessir!
Er sorta. I haven’t moved a bot to that Linux node
But the Linux node can interact with the bot connected to an RF node
So… I don’t think I’ve tested what you were asking
If it’s all working it’s all good!
The chromadb something uses a older version of protobuf somewhere - ooof
I ignored it and things are fine but not ideal
Not sure if this will just be a hidden feature or what
@gentle kestrel, when you say radioless node. I want to be sure I understand, is that a physical node with the rf chip removed or a virtual node?
A copy of #meshtasticd it’s the firmware like a node but it’s just a service running on your Linux box allows for having a software only node
I don’t know if the noradio method is documented however @unborn flint I have been slacking off on goofing there wasn’t a ARM deb last I looked
The bot attaches to the software node (meshtasticd) and its setup to route traffic wherever you want like a normal node is what I understand operations to be
The only difference being there is no RF so those commands just null
Allowing the MQTT routing manipulations as anyone sees fit
Why this method will echo fully over MQTT and having it set on the node only is interesting questions
Ok. Thanks. I’ll have to research that for education and maybe use. I rolled all my nodes back to 2.4.5, except the one for the bot and everything is working better.
There aren’t many nodes around me and friends and family rely on mqtt to fill in the large gaping holes in the mesh. 2.5 mucked up the works on that.
I was toying with the idea of also having a NWS-SAME-EAS- alerter running on same machine. And it looks like native-Linux might work for that.
My machine is amd64. So I have to be careful when I do the copy and paste installs. My computer looks at me like I’m a bit addled when I try to do that.
Nice! It sounds like your issues were possibly related to PKI DM? @unborn flint so it sounds like the serial Echo might actually be “the way to go” (it’s easy) and I will for sure test this more eventually
if the issues were MQTT related, I assumed they were more to do with the okToMQTT flag that showed up around 2.5
setup:
All of these nodes only have a custom PSK channel, no AQ== channel
1 RF Node (05a9)
1 meshtasticd linux node connected to MQTT
1 RF Node doing MQTT relay (uplink/downlink) for the channel (mqtt relay)
bot connected to meshtasticd node
I can DM from RF node to meshtasticd node using curses client on both ends
I can DM from RF node to bot-meshtasticd and get ping responses
So RF node <> mqtt relay node <> meshtasticd <> mesh_bot.py works on both private channels and DMs!
Which I think is what you were asking "does it work" last night
When I swap out the RF Node above to one that has the default LongFast channel and the private channel, the bot sees the DM and sends a response, but the RF node doesn't get the response
this DM set up works with curses-client on both ends
What’s the log on the bot say? What channel did it come in on vs go out on?
Is the added public channel longfast index 1
huh, it worked now.
working log
2024-10-15 13:03:45,080 | INFO | Device:1 Channel: 0 Received DM: ping From: KP Base
2024-10-15 13:03:45,081 | DEBUG | System: Bot detected Commands:[{'cmd': 'ping', 'index': 0}] From: KP Base
2024-10-15 13:03:46,281 | INFO | Device:1 Sending DM: 🏓PONG SNR:5.75 RSSI:-28 To: KP Base
2024-10-15 13:03:55,498 | INFO | Device:1 Channel:0 Ignoring Message: From: KP Base
2024-10-15 13:03:58,803 | INFO | Device:1 Channel:0 ReceivedChannel: ping From: KP Base
2024-10-15 13:03:58,804 | DEBUG | System: Bot detected Commands:[{'cmd': 'ping', 'index': 0}] From: KP Base
2024-10-15 13:04:00,004 | INFO | Device:1 Channel:0 SendingChannel: 🏓PONG SNR:7.5 RSSI:-29
a DM and then a priv channel
previously wasn't working log:
2024-10-15 12:39:36,116 | INFO | Device:1 Channel:0 ReceivedChannel: Ping From: KP Base
2024-10-15 12:39:36,116 | DEBUG | System: Bot detected Commands:[{'cmd': 'ping', 'index': 0}] From: KP Base
2024-10-15 12:39:37,316 | INFO | Device:1 Channel:0 SendingChannel: 🏓PONG SNR:7.0 RSSI:-28
2024-10-15 12:40:00,354 | INFO | Device:1 Channel: 0 Received DM: Ping From: KP Base
2024-10-15 12:40:00,354 | DEBUG | System: Bot detected Commands:[{'cmd': 'ping', 'index': 0}] From: KP Base
2024-10-15 12:40:01,555 | INFO | Device:1 Sending DM: 🏓PONG SNR:6.5 RSSI:-28 To: KP Base
I'm gonna just chalk that up to "shit's weird sometimes"
looks like there might be a chunking issue though:
just realized the previously not working example didn't have a channel in the Sending DM line
I have the same loss of packet on medium fast in the lab but not with LongFast on the same whoami
weird, this is longfast
I wonder if it gets lost in the mqtt -> RF portion
hrm, I'll double check, I think only one of these RF nodes isn't client_mute
No it seems to be when the psk packet is there I assume long data
It’s a common issue overall I battle all the time
The whole addition of the chunker is the limits which can be exceed with failure otherwise
Loss of packets is common
But very interesting it’s always this one .. not for example Lemonstand which has similar data in 4 packets
Whois also has a loss of the gps details for me a lot
Can you test the lab branch I cleaned up some mess
See if the issue remains
sure
I am forcing the index to 0 and if there is reason to overwrite it now it will - if a failure still happens…
didn't expect to see kubernetes got pulled in as a dep 😉
channels and DMs work still
2024-10-15 13:34:43,291 | INFO | Device:1 Channel: 0 Received DM: whoami From: KP Bas
Good news!! @unborn flint 👀 this may also correct the issue you saw 🤞
Thanks @near drift !
now to track down all my s/CLIENT/CLIENT_MUTE Nodes
If your a fan of Golfsim ⛳️ the worlds best Meshtastic Golf Simulator game. It finally got its scorecard system fixed up (in lab currently)
did you manage to connect a rak via serial rx/tx?
I should have clarified USB serial, along with MQTT I have been procrastinating on the actual test of protobuf via the serial lines and not via the USB lines
I figured lol
That said .. it should work fully and more so now that the MQTT DM issue was just resolved
Yea have you set up any systems with serial proto yet? Now that LLM can be remote I’m thinking of rearchitecting the bot into a light weight device again
I set up ble and it works so well thru the wall I just haven’t done much else on the serial lines at the moment
And since MQTT stuff is getting fixed up
I would really like to have the bot working fully on RF with MQTT collections for big data evaluations
I haven't messed with that
I'm trying to work through the lowest possible power usage linux board for bbs hosting
Is the current draw of powering the node via pi usb excessive to the current when using serial only @broken sorrel
My hang up has been no micropython
no - the issue was trying to get usb host mode to work on these rando chinese boards
When in doubt cross the wires!
did that so much that the wires got twisted lol
Hehe - I just soldered a header to a rak and aim to validate this but in the process of getting serial I had to find some hook up wire as well and now I’m cleaning my entire workbench
Well on a rak using serial and setting GPIO 15/16 didn’t get me any data yet @broken sorrel
yeah
sames
and it's pissing me offf
there's this #contributor-lounge message
but I haven't tried the other pins yet
Nothing obvious yet
try simple mode to a uart console
Using screen
No luck yet @broken sorrel but when I connect it clears the message waiting LED so .. something is working somewhere
it's black effing magic
I'm not convinced it's ever worked for anyone
nah, I'm exaggerating.
But it's a total mystery
Outside of clearing the blue LED by connecting a bunch with zero data on screen I got nothing as well so far
I tried with a level converter and just GPIO
Been squishing a lot of bugs, fixed a weather alert issue just now. Rolled lab into main for a release tag as the change list was getting big
youve got me wanting to write a dope wars clone in Go for my bbs now 😄
From calculators to the old dial ins I remember it fondly, I’m procrastinating with uno got side tracked with other stuff.
I was thinking a https://gitlab.synchro.net/main/sbbs/-/tree/dailybuild_linux-x64 plugin would also likely work as there is a IRC plugin should be a natural port for mesh
I am accustom to yeeting and beatings and yesterday’s ban of me for 24 hours is likely to justify an outright ban from this discord so .. my time is limited here likely
dope wars with actual gps integration would be rad
could get extra spicy, like...i could drive to the lowlands to sell some cola, but it's literally risky af, so i'll sell it in burbs
measure price by hops away from the dopebot 🙃
Heh, that wouldn’t be too hard I did have to rethink some plans with the change to low accuracy defaults so that got shelved for the moment my grms radio gps is accurate but apparently it’s insecure as it shares PII
The advantage to a dope war location game is if multiple are playing you can meet up at sites to possibly exchange XP points for better odds in game play?
If the cops get suspicious say I’m playing drug wars the game on meshtastic where we buy and sell drugs but it’s not real .. just don’t accidentally click on your roof node to expunge the evidence of the game play it would be difficult to explain without 😜
I’m gonna ponder this RAG situation for a bit more; try and get some graphs in for data reporting try and get uno done
I accidentally used my kids names in the simulator for nodes names - I don’t see my kids due to the progressive nature of family court it impacted me a little much to play uno with them ( in simulation) we did a lot before the big D (not Dallas)
I’m one janky function away from getting it working fully I think, it’s figured in my head so just need to paper it out
They fun ideas, for sure on the list anyway 🙂
Most of the bans on here have been for continuing an argument after a 24 hour ban, or spreading misinformation about Meshtastic, or just the usual abusive trolls. I think (and hope) you'll be ok.
Your bbs has certainly been the most interesting, esp. with the games
That sounds rough.
The low accuracy is only on iOS. Might be able to generate a channel link which allows full accuracy?
That’s the rub right it’s subjective if I say January X or October Y it will trigger/conjure everyone’s favorite word misinformation
I believe I was banned for rule 3 saying ok block me after I was told by a leading member “I won’t interact with you” so like most fights who started it? And since I’m just a potato the classic way is remove the problems in America half the county hates the other half so much they will do everything to eliminate it
It’s tiresome, and speaking up or going direct to try and resolve issues people just ignore you I was banned 45 min later by another admin
The reasons are goofy, but thanks for listening or talking it out.
Yea it just needs all points to be a large circumference,, I’m thinking being on a Chanel to play games just accurate score keeping gets to be a mess when there is 32 bit and not resolutions
a passive collection style game might be fun
like, earn xp based on packets seen that aren't your own nodeinfo or telemetry
maybe turn on neighbor info and earn xp from that data
when another node is seen that also has a "character" created, you can battle or something
2 weeks ago! haha nice
It’s in a very dev state no implementation yet
ideally needs a “poki” capture the flag geocache ..dopewars component added still to do before major gameplay work starts
Having virtual waypoints
And a who got there list
Well done on the last update.
The auto ping is very useful and I like the store and forward.
Thanks glad it’s working well!
Got a few other fixes in, uno might be a mess to abandon there is a lot of info needed when you got 25 cards in your hand it’s a mess
I mean, that's like real life, tho
I haven’t tested it fully yet but tossed out a lab branch with bbs synchro idea see if it works - anyone has input / testing be cool
The concept is a broadcast message would be detected (the command bbslink) which should synch the table
So if you had a channel dedicated to your own bbs linking
The idea is multiple bots in the same mesh share the bulletin board messages
I'll catch up later, just saying 'hi' and 'hey I'd love to do some door games over Mesh'
Sweet! a few single player with HS tables working well, few multiplayer ones in draft 🙂
something to be able to plumb into old school bbs door games would be nicer, just use the pki bits of the mesh as user auth and function as default store and forward nodes, is my preference
trade wars would be rad
ansi dependent stuff could be tricky. unless you used the python api to make your own client or something
fork syncterm or netrunner with meshtastic proxy support 😛
You got dope wars and lemonade stand! 🍋💊
the catch is indeed the client and the text able to move across it
I dinked with Telnet as a interface to old games but - they all depend on the console having rows and columns and they all use a lot of text which isn’t good in meshtastic
Uno is likely a no go, having 12 cards for example is too damn much text
May dump it and focus on tic-tac-toe
looks like meshtastic --tunnel and an instance of MBSE could work
Fire sure can! - it’s performance isn’t top notch, also requires the users to be using the CLI to make it happen
might not be long-fast friendly though
It works but .. the client needs to be a terminal user is the bummer
true, but doing a touch interface for a old school bbs just sending the commands and reparsing should be easy
Yea for sure - there is a commercial fork with chess and checkers
I’m not personally interested in maintains a Apple app, so haven’t delved there myself
also it could solve a lot of the persistency of messaging issues
I tossed out some ideas over here https://github.com/meshtastic/design/issues/21#issuecomment-2389526648
Maybe stupid question, but how do you end command? 🫣
Or is by design that last command is active untill new one?
The only captive commands are games / you can exit with end, the card games is leave. And ping iteration counter.
And in development of bbslink, all other commands are just returning data not is captive and it’s over just like a command shell would be
Games are restricted to direct, DM by default to keep from making a mess in a mesh
Oh .. I forgot about the ping iteration!!
You can ping stop
Thanks!
Put a fix in for anyone sending “testing 123” which would have made 50 Test pings return
Haha
Morning guy's been a while, how is it going with the project ?
Going well! Lots of features added
Hi
I've noticed the auto responder stops working after a couple of goes
Says it initiating but nothing after that
Need to restart the app
Running Ubuntu server in vm on nas connected to heltec v3 via wifi
I tend to do big ping 50s to test overall mesh coverage
And I see a note in the jokes module about emoj in jokes
I delete them from the table, not a fan, hard to decipher on small screen
What a couple of goes? Retry’s? The WiFi link is going down?
Roger on the emoji yea it’s hit and miss might be worth pulling
It's not showing the wifi link as dropping
And yeah it auto respiratory ds a couple of times
Then stops
Last time it done a full 50 reply then got a few in on the second go and stopped
Nothing indicating as broken.
Then when you do another ping 50 it replies saying initiating auto responder but nothing else happens
I flipped my lab back to WiFi to do some QA and things seem to be working well. (I am able to walk away from the AP get a ping failure see mesh-bot recognize and recover when back in good link)
You do need good WiFi for the little esp - they are not amazing devices
As for the ping 50 .. it’s subjective to network success of packet delivery etc .. I didn’t understand the issue but did some testing and couldn’t figure out the bug?
Things look ok on WiFi and such tested with api2.5.4 firmware2.5.10 hv3
If WiFi loss happens with multi ping .. is power to the node and pi supply ample?
Node power is of a USB charging station so good there.
No pi, software running on a synology Nas virtual machine with Ubuntu server. Heltec v3 with 2.5.11
If yours is working fine I'd say it be my setup. Must be something upsetting the software.
I'll try running it on my pi400
I have a card setup so I'll have a play and let you know if I have any bright ideas
Put an AP near the node? @jade briar
Why is mesh_bot parsing whole message for key/command worda?
For example, you cant ask askai question that contains word “history” 😂
The LLM module works a little different and might need a tweak but .. what was the error you saw?
I was asking a question that had history word near end of sentence, and I started message with askai, and it returned me a commands history
I will look into it!
Ok, I’m wrong
Didn’t start with askai…
Just in conversation with askai, I sent message but I forgot to prefix with askai…
Ahh ok yes, it’s also problematic or obvious issue in DM, since you may be chatting directly you don’t need Askai there
The foundation of the bot is not in the LLM, if it was I would call tools but for right now it’s how it is
Yes, I started with message that had askai prefix, and few next messages were without askai but i answered correctly…
Maybe have option that first (and only first) word must be a command word or if not recognized to either ignore message or reply with just list of commands?
But othervise bot works great! 👍👍
Thanks!
Yes it’s there for normal commands but for LLM module it’s tricky as LLM can be used via DM without a prompt at all; programmatically I can’t tell if your dialog is intended for the LLM or a bot command since it’s trapping on words as a core logic
To achieve the next level I would need to switch all trap logic to a LLM with PythonTool calls
The disadvantage is you now depend on ollama for the bot to work.
(If any ideas how to get around this limit but I don’t have a conceptual idea of how it would work as-is)
Well, can’t you just take first word, do a case switch, and if none matches give whole message to LLM, or ignore it. But if it matches, just give rest of message (without first word) to command/function
That way even is you are using askai command, LLM won’t get askai word…
First word case match comes before the LLM pass off is the problem
So by the time the Logic for LLM is invoked it’s already processed all of the original bot logic
I will see what I can do to improve this user experience @lunar glen
I was pretty sure the LLM invocation came very early in the decision tree
But I guess once you're in flow, it's not obvious if it's still in LLM mode
I haven't looked at the code lately, but does it have an LLM mode?
In onReceive the if statement is the gotcha and needs to consider better logic
If trap: return auto response
else LLM
My initial thought was to ignore any commands after index.zed
Just haven’t hit commit yet pondering ideas which might be better
Likely also pulling uno 😦 it’s just not awesome in text only
Missing a part of a hand .. ooof
Latest pull should correct this
Ap is in same room a few meters away. Direct line of sight.
I spun up a Debian server. So far seems ok with the ping 50 #asdf
NOAA tides is either preventing scraping from the web or is having some delay issues // the parsing of tide data is offline for me and likely needs a rework not using html table
if tide’s is or isn’t working for you?
Outside the US so it has never worked for me
If you know of a good source of data let me know!
I “upgraded” using the proper API not web scraping seems they were on to it
Not sure why I didn’t use it before tbh
Cycled a release as there was a few fixes
Ok I'll update and test
I get
Error fetching data
Not surprised though being in nz
Also I dm and it now responds back on the long fast ch not the dm ch
Wasn't doing that before
What’s your long fast channel ID and do you have set in config.ini the proper public/LongFast?
A pile of bugs around default channel for MQTT use and such was resolved
for the error fetching data on tide @jade briar if there is no NOAA tide station within 150km there will be no data - is there a NZ tidal API? … (goes hunting for one)
The NZ government provides the tide data on a CSV .. interesting
I have private ch0, RouterTelem ch1
And LongFast ch2
Config.ini
Yup got wrong ch for long fast. Damn
Hey does bbs have any games built in?
I was asking for making standards for the godot library/interface for meshtastic
Yea, load it up and play a few! Got a casino with blackjack and video poker. The classics of dopewars and lemonade stand. Also got mastermind and a golf simulator!
They play by default at 1hop or less I think it is (I forget haha) you can set whatever
Direct message
The command “games” lists them as well
I’m pondering a multiplayer game still tbd
Got uno working mostly but in play testing it was gross when two people have a bad run of cards
yeah that can be a long game
Oh boy. Here it is. The biggest Let's Play we've ever done. Grab some popcorn and get ready. This isn't just some lame-ass 90-minute affair. We've gone full Tarantino all over this muthafucka. It’s Uno: The Movie!
» Join FIRST to watch episodes early: http://bit.ly/2vv4OWI
» Get your Let's Play merch: http://bit.ly/2vJi7yQ
» Subscribe: http://b...
though they did set the game to the highest score threshold lol, I've definitely had some long hands...playing over mesh would be nigh unbearable
Haha yea I was mostly testing multiplayer in group chat
I recommend using a central server of sorts and using dms or a private chat for the game communication for that kind of game
its turn based so each player only needs the state of the game when it's their turn
also the builtin ack system can be more consistently implimented with regular message acks built into your protocol
like instead of relying on ack and requesting it which is slower, just have the other person send an ack message that comes with the next move appended onto it or a request to retransmit
these games have rules which can be defined way easier than text communication does and we can use that to our advantage
Yea the BBS/BOT is the central server I did try with DMS for your hand but you need to cycle from the dm to the group chat and it’s very slow in my iOS client.. so I bagged it for now uno just isn’t a ideal game for meshtastic chat as it sits today.
Im crossing my fingers we get more markup possibilities in the mobile clients which will make for a better user experience possibly
I have also goofed with battle ship, but just didn’t like its presentation in a chat window
I think with an actual application client instead of using text messages that will be less of an issue
That’s why I think a game engine implementation of some sort is needed
Yea it would change the game a little (har har)
Well I’m about halfway done I think
With my binding
Not ready for making a game yet
Nice!
@sick nymph I was thinking of a enhancement where the bot would broadcast to mesh any changes to a file on disk and use its contents as a message to broadcast so any alerts (let’s say OTA EAS from rtl-dongle) would be sent out meshtastic
Ooo. And the EAS alerter parses the EAS messages really well
New feature implemented.
You can set a file to monitor (using alert.txt) in project path
If the file stamp changes it will broadcast the contents of the file to mesh
Cool, it’s in the latest pull, I tested with a simple echo hello > alert.txt
That is a very cool extra feature!
I got home later than expected last night so I didn't get to start playing around, but I'm gonna today after work (or maybe while working, we'll see how the day goes 😅).
My big project will be figuring out how to get either the message from the RGCV's alerter to the alert.txt file or just pull it directly from the SDR.
Code is deffo a weak area for me so might as well play around with it
Also The direwolf software TNC has the ability to receive EAS SAME
The Emergency Alert System (EAS) is a national warning system in the United States, implemented since 1997, superceding the Emergency Broadcast System (EBS).
Oh nice that one even includes a sample eas audio file. I've been needing to get a dummy load anyway. 👀
Few software tools listed on that Wiki
Awesome!
Another fancy looking one https://github.com/A-c0rN/EAS2Text
I'm playing around with the first SAME message decoder and the sample alert. I can pipe it to multimon-ng via sox and get it to dump the SAME message into a txt. I can also get the dsame.py script to decode it to a readable message adn dump it into a txt. Now to just link the two lol
Awesome!
Hell, I can even get it to output text on screen but as soon as i > alert.txt it hangs... hmmm
also this is much more fun than work 😅
Haha if your learning it’s work related isn’t it
Right? Our code scanning team is short sooooo
(Disregard the 1500 or so control assessment procedure tests I need to validate)
It's amusing,
sox -t ogg WXR-RWT.ogg -esigned-integer -b16 -r 22050 -t raw - | multimon-ng -a EAS -v 1 -t raw - | python dsame.py --text
outputs the EAS alert text to the screen but as soon as i
sox -t ogg WXR-RWT.ogg -esigned-integer -b16 -r 22050 -t raw - | multimon-ng -a EAS -v 1 -t raw - | python dsame.py --text > alert.txt
nothing, just an empty text file... I'm obviously missing something dumb
Try breaking the command out see which one is getting stuck .. might need two commands vs a large pipe
It's happy all the way up until > alert.txt
if I do
sox -t ogg WXR-RWT.ogg -esigned-integer -b16 -r 22050 -t raw - | multimon-ng -a EAS -v 1 -t raw - > test.txt
cat test.txt | python dsame.py --text - > alert.txt
also happy
My first assumption is one of the outputs has non stdout data
Or Python just can’t handle whatever extra is passed
It would have to be the dsame.py's output I would think. If I don't > alert.txt it'll print it to the screen
Yea interesting, btw nice test method!
I’m not booted my self yet but will tinker with it a bit this afternoon pst
Oh wait, it does output as soon as i ctrl-c
Is it hanging on some input requirement?
hmmm, lemmie test something
I didn't even notice I was ctrl-c-ing the cat test.txt | python dsame.py --text - > alert.txt when i was trying that.
so when I run sox -t ogg WXR-RWT.ogg -esigned-integer -b16 -r 22050 -t raw - | multimon-ng -a EAS -v 1 -t raw - | python dsame.py --text
it prints the output to screen, but the script doesn't end, you gotta ctrl-c out
time to see if I'm missing something in the docs
I would assume (without looking at any code) it might be a loop to continually print to screen
I'm not a code guy, but yeah that tracks
Could be a option to process and not loop otherwise it would be a very simple patch, also not sure if #1255754522303922217 message will process better (it’s a different idea same output)
Yeah, might try that one. The first one seemed more lightweight
It will work as you want I’m quite sure lemme see if I can find a quick spot to stop the loop
what if you pipe to tee alert.txt instead?
then it should output to screen and fil
I do think you need to break up the pipe, and for other reasons - in production this will need to run all the time
You need the loop
By breaking it up, the processing of the alert data you want is output, if it ran all the time you would get a multiple line file you don’t want
So you could say “something’s missing”
Specifically a handler for consuming the EAS and giving it to the mesh-bot
I could likely add in the ability to diff check the alert.txt and output the diff into meshtastic but this adds file write as I would need a temp file for diff
If anything goes bad it could print a 2mb text file to mesh haha
I almost feel like it would be easier to just make a fork of dsame3 for meshing-around’s use case is the likely best plan here
Let me know; yes dsame3 is rtl-sdr and the eas2text depends on a decoder (multi mon, direwolf)
If you use a analog scanner or radio eas2text seems best and for sdr dsame
But if eas2text works out of box and is cool you can rtl to mmon
yup, gonna play around with it
but yeah, definitely need it to be something that just runs continuously since like, who knows when an alert is gonna come through (except ~ 11am on weds lol)
Yea, the waiting game for that message is a killer - flip over to pocsag and use some nurse needed in room 103 messages for messages haha
I have an idea but it's definitely illegal so yeah not that one
Completely unrelated but I have a dummy load coming from amazon later today
No one gonna hear a half a watt but you
🤫
not like the FCC really cares as long as you stay in-band
That’s a good point roll the vfo up to 222.100
Who would ever use that
Could tx at 50w and I bet your the only one still hihi
the EAS tones are like the ONE thing they care about lol
okay I have the dirtiest ever jank to get the EAS2Text to output based on the test audio file via sox
sox -t ogg ~/WXR-RWT.ogg -esigned-integer -b16 -r 22050 -t raw - | multimon-ng -a EAS -v 1 -t raw - > raw.txt | python lol.py > clean.txt | python lmao.py > alert.txt
it works, I need to consolidate the two python scripts into one. i used chatgpt to help write a script to clean the multimon-ng output into something EAS2Text can read and I feel really gross about that but so it goes
python lol.py > clean.txt | python lmao.py > alert.txt
I'm surprised this works, since the > should be capturing the output and not sending it to the pipe...
I'm not a code guy so I'm just throwing stuff at the wall, it is amusing though
it's now consolidated into one, lol
it's so janky
hey fellows, i'm working on getting a similar thing going in Node. Have you had any problem with the serial connection going dark after a while? It doesn't close but i stop getting messages from the radio.
The other BBS i've been playing with (TC2BBS) hasn't gone dark on me, at least, not yet
for me it did but might have been undervoltage lol
haven't tried to figure it out lol
I have never had a serial connection loss what hardware? @rose silo
heltec v3
Make sure you have a good USB cable
And the power can supply the node and the new device
thanks yeah thanks
Good to know there isn't some sort of ping or something i need to do
I have a hv3 it’s been online for a year easy and one on WiFi it’s 95% stable ble on a rak about the same
What’s the system with the serial loss a pi or something else? @rose silo
If it works! Silly scrips run a lot of stuff
Truth, I'll do round 2 of testing later tonight after amazon comes by
then, once that works, get it integrated with your bbs lol
yeah its a pi, a uconsole actually
the screen on the radio turned off and that seems to corelate to the drop. maybe power
Interesting, I wonder if it’s a power saving feature in some kernels
@gray igloo what platform did you experience this with?
pi zero w
I got one of them I will try and replicate
My first and primary dev hardware was and is the hv3 it’s been flawless for me on pi 3,4,5 with a official pi5 power wart
i do have a bigger psu coming in the mail
I even had no antenna for a week haha
I'm trying a different radio and cable we'll see 🙂
Do you experience the hang without any app connected? There is a bug /issue that is being talked about on #rp2040-rp2350 where nodedb writes corrupt the node and it hangs. A factory reset and re-flash is the recommended fix. I have applied the `fix' on my pico-w/waveshare node and its now been solid for 2 days.
The node itself is t3s3 but i got zero w running linux and bbs well i dkd
I did add some documentation to the readme for the popular EAS projects in Python
Nothing that isn’t here already
my meshing node is mqtt connected. anyone coming in over mqtt is seeing duplicate replies to the DMs. Is there a config step I might be missing?
Haven’t heard that one before, is serial echo also on?
What firmware
Do you see 2x traffic in logs? Shows phantom messages?
dummy load finally came in. it has a UHF connector so I needed three adapters to connect to a baofeng (because all my adapters are in use). however, this is the like ONE time I reeeeeally want that signal loss 😅
Yea, roll the dial to ham bands so it’s much less likely anyone will care
Test there and when done set the rtl back to 160 or whatever it uses
oh for sure, gonna hang out at the very top of 70cm since noone uses it here
Should be fine double so on a dummy load
exactly, just want to ensure all my bases are covered
hrm, weird, neither dsame no EAS2Text want to grab the tones. RCGV's alerter grabs them just fine though
well, really it's multimon-ng that isn't outputting the data
Like AX25, pocsag all the rest volume levels/gain may need adjusting
I don’t know RCGV project detailed but I assume it’s the rust EAS code glued to meshtastic
That's what it looked like
I have a very rudimentary knowlege of python, but none at all with rust tho
start by decoding aprs to get the radio working - multi mon is the real dependency
Go try and grab aprs or pocsag
Yeah, gonna move backwards and then try from there
aprs is easy since I can generate it myself if I need to (but it's decently active around me)
(am ham, am licensed to do aprs etc etc)
Nice Yea ideally get it elsewhere if you can I would suspect the biggest hurdle is getting the gain setting and such
Having it local it will be loud
very true
But yeah, as for gain, I tried using RGCV's recomended RTL-SDR args just to see and yeah, no dice
gonna go off and play with APRS, that's what got me into this whole mess anyway 😅
This might be helpful https://github.com/EliasOenal/multimon-ng/issues/128
This is actually where I got the initial multimon args from lol
Could also try direwolf, but I would expect mmon to work, I dug out a dongle today need to rig up a test transmitter as well
Yeah, mmon was fine with the audio piped in from file, so I know it should work
now is just figuring out exactly what it wants from the sdr
Here are some notes on topic random https://www.qsl.net/kb9mwr/projects/pager/multimon-ng.html
I'll dig through
also, just listening to the aprs channel from another radio in my basement, there's someone REAL close by on APRS lol
Decode and find out who!
working on it!
hrmmmm, still not getting anything. switching antennas
swapped the sdr over to my windows machine just to make sure I'm not crazy, can get the packets through audibly just fine
I'm clearly doing something wrong here
Is the SDR working in GQRX
I was using SDRpp
but yeah
like, am i insane, this all looks right, right?
I haven't tried the SDR on my pi outside of RCGV's alerter, but it did work there
I am getting packets when I put the sdr back on windows, so there is that
I think this is gonna be a "sleep on it" problem and reattack tomorrow
Off hand.. Watching for sdtin? Fix the end of mmon to raw /dev/stdin
Also I see two frequency be sure your offset and tuned as you expect
I did try both - and /dev/stdin, but the offset might be the issue. I'll try that tomorrow
I compiled a copy of multimon .. been a while and got my dongle booted I loaded GQRX checked my frequency offset like -0.8 or so validated I could see signal
But it’s cold and dark I got no gps lock on my aprs HT and so I will also try more tomorrow
I can’t hear any aprs inside with the rtl dongle .. but I can on the ht
hihi
Node: ORLY
myNodeNum: 2475587636
firmware: 2.5.11.8e2a3e5
serial": {
"enabled": false,
"echo": false,
2024-11-21 10:48:24,369 | INFO | Device:1 Channel: 0 Received DM: Cmd From: VK2FRT
2024-11-21 10:48:24,369 | DEBUG | System: Bot detected Commands:[{'cmd': 'cmd', 'index': 0}] From: VK2FRT
2024-11-21 10:48:25,069 | INFO | Device:1 Sending DM: Bot CMD?: ping, sitrep, motd, whoami, sun, hfcond, solar, moon, whereami, wx, wxc, rlist, bbslist, bbshelp, joke, wiki:, g
ames, messages To: VK2FRT
2024-11-21 10:48:25,170 | INFO | Device:1 Channel: 0 Received DM: Cmd From: VK2FRT
2024-11-21 10:48:25,171 | DEBUG | System: Bot detected Commands:[{'cmd': 'cmd', 'index': 0}] From: VK2FRT
2024-11-21 10:48:25,871 | INFO | Device:1 Sending DM: Bot CMD?: ping, sitrep, motd, whoami, sun, hfcond, solar, moon, whereami, wx, wxc, rlist, bbslist, bbshelp, joke, wiki:, g
ames, messages To: VK2FRT
Locally, I have 2 non-mqtt nodes that work quite happily with the BBS
Node VK2FT is mqtt connected
So it’s likely the multi path pair
The delay was about a second
Not instant; suggesting it routed around as well
Is ORLY also MqTT linked?
Yes. Topology is:
VK2FRT - Heltec v3, Client mode, 30 KMs away, MQTT enabled, OK to MQTT set, no Lora connectivity either direct or via intermediary nodes
ORLY - RPI_PICO, Client mode, Local, MQTT enabled, OK to MQTT set, wifi enabled
OBKV - RAK4631, Client mode (but have tried as Client Mute and with Lora Transmit turned off), local, no MQTT, OK to MQTT set, Lora connectivity (when enabled) to ORLY and...
OPS1 - Heltec v3, Client Mute, local, no MQTT, OK to MQTT set, Lora connectivity to ORLY and OBKV.
As part of troubleshooting, I powered down OBKV as I thought ORLY may have been LoRa re-broadcasting the MQTT received DM and OBKV was rebroadcasting. Still getting duplicates.
Yea I suspect it is, you got a lot of MQTT in the network it appears
Might be worth removing the bot/ORLY MQTT first see how it fairs
Grab some debug logs off a node be curious to see packet dumps, there is a debug in the mesh-bot.py you can enable (it’s verbose) but will print all packet details
Like .. is it the same packet ID?
wiped my pi and reinstalled everything maybe thatll help lol
This is as far as I can travel for now, the primary EAS coverage is reportedly “Offline” so I have nothing to actually use this for
There is a station on the Canadian border ha which says online and I might hear it
But till Wednesday, I’m not sure if I have a signal to decode
Same EAS was never a big deal in the Seattle area I feel 🤷♂️
I'm playing with dsame again, idk why but it's acting differently this time
If you get it working it’s a prime candidate for a fork to modify, and produce the exact alert.txt as needed; without real world testing data I’m kinda bummed .. I asked around locally to see what’s up with NOAA and how long the outage is
for sure, it looks like it'll work much better than EAS2Text, I'll keep you posted on it
if it was about six months from now I'd get plenty of testing opportunities (yay missouri)😅
It’s the time of year for us, my EAS system is for sure in a reported offline status wahhh
It went down yesterday due to a storm hihi
oooooooof
I know by me, in addition to the NWS station, KMOX near me (1120am, so not useful with a RTL) is a PEP station for EAS alerts, it'd be interesting to try monitoring broadcast stations for EAS messages since they're supposed to relay them automatically
(which is also why the FCC will fine broadcast stations hard af if they misuse the tones lol)
direwolf could pull a signal from AM radio
oh shit, I didn't realize the RTL went all the way down to ~500 hz
dc to like 2g?
My local EAS is actively being repaired so I should hear a test tone before Wednesday I hope my antenna /sdr setup is kinda jank so let’s see
mine's pretty janky but does pick up from the NWS station here
The wire sticking off to the side is a tiger tail. When I was initially setting things up my reception was crap until I touched the connector and was like "oh right" lol
(when I was doing my aprs testing last night I shifted it to my outside antenna, which is much less jank lol)
So doing some testing (got interrupted because it's volleyball night) there is a SIGNIFICANT difference between dsame and dsame3. Dsame3 took around an hour to fully install on a Pi3B on wifi. It includes a ton of AI packages for transcription that I'm pretty sure won't even run on a Pi without an eGPU 😮💨
Yea I haven’t looked at the code yet but it pulls like 2gb of models
Dsame is py2
Even just trying to pass an encoded string through it takes like 2 minutes just for the dependency checks
Multimon to text file with a parser to clean up the output is likely all you need
I'm trying to figure out wtf I was using yesterday
I have the script that cleans it already lol
Likely the Python 2
It's probably sloppy because chatgpt, but I'll send it when I get back to my computer
I’m patiently waiting for any signal on my local EAS
Lemmie just set up a huge yagi and tx the test audio file halfway across the country 😂
(dear FCC this is a joke I am not going to do this)
here's the script, like I said it's messy and hacked together. it'll take the raw output from multimon-ng and remove duplicate lines, clear out anything that isn't the actual SAME string because EAS2Text gets mad if there is anything other than JUST THAT STRING, at least in my testing
[audio source] | multimon-ng -a EAS -v 1 -t raw - > raw.txt | python wtf.py > alert.txt
Sweet, I will test it out soon as I can get a decode or .. cheat and make some happen
I have been playing with the new tulu3 4b model might become the new default for the bot - 4GB and it’s able to count strawberry’s
Oh nice!
But yeah, having a real world OTA test will be good, especially if the signal is weaker. I wanna see how multimon-ng handles a weaker signal and what its output looks like
I need to talk to my buddy at KMOX and get when they do their RWT so I can try to see if a sdr+multimon-ng is smart enough to monitor a commercial station for EAS messages too, especially since KMOX is a PEP station
If that script works out I'm gonna have to finally make a github account aren't I? 😅
Yea there is a data feed you can get there huh … I am not near a metro city and so can’t pull RDS or radio data feeds. AFAIK they are licensed but I do know there is a project you can pull weather and traffic maps out of FM
Pulling weather and traffic maps would just be fun. But yeah, check the PEP station list and see if there is one you can RX. They're all high power AM clear channel (not clearchannel the company) stations so there should be one you can RX regardless of where you are
(on clear winter nights I could listen to KMOX in upstate NY lol)
Nearest is Idaho, these sites broadcast the same EAS tones?
Been a bit since I was on low bands but Idaho is rare to hear on HF for me
They all have to do the weekly and monthly tests. They aren't on a set schedule like NOAA radio, though.
But there's a good chance you can RX at least one of them. PEP stations are usually blasting out like 50kw on MW AM
I can't promise the other programming is gonna be good, might be a news station, a politics station, sports station or whatever lol
But yeah then other stations usually have a EAS system that listens to the PEP stations to relay EAS messages so even your local FM stations may broadcast the tests too. The EAS system is really neat
https://youtu.be/Rsp_N83_AzE is a really neat look at some of how it all happens
DON'T PANIC! On October 4th, everyone in the US will get an alert.
Why? And how is it delivered?
We'll talk about the EAS (Emergency Alert System) for broadcast television and radio, and WEA (Wireless Emergency Alerts) for mobile devices. How they are propogated, and how and why the nationwide system is tested.
Read more about the alert here:...
(I think the EAS system is really interesting and neat if you can't tell 😅)
I hope to see a successful decode from you soon!
That's the plan!
Moving my setup back to multimon-ng/EAS2Text tomorrow and doing more testing
I was just thinking YouTube has a video or two of hours of EAS alerts
YouTube to mp3 and boop lots of test
Two hours of audio, perfect should be handy
unrelated but it seems that this dummy load works well 👀
okay, wiped the pi again to reset it back to defaults and installed multimon-ng, rtl-sdr, sox, and EAS2Text (EAS2Text via pip)
ran the test file through sox into multimon and then through my script
output:
(I'm sure theres a way to have that script read stdin but I have like 3 braincells left)
later I'll test via rtl-sdr
but yeah, as you can see the raw output has a lot of duplicates and EAS2Text doesn't like anything other than "ZCZC" through "NWS-" so my script cleans it up, then runs it through EAS2Text and outputs the alert.txt
I need to pull the SAME data from a commercial station's EAS alert because I think it'll end differently, which would break this script so as of now, it's only useful pulling from NOAA weather radio (assuming it works with OTA stuff)
Looking good!
Some tips for improving meshtastic delivery, replace any words you can to shorten the over all alert
So in wtf.py before writing out the alert .replace strings like “The National Weather Service has” to NWS for example
yeah I was thinking that one for sure, the other stuff, like the alert type, I'd be wary of replacing just for clarity
Longer messages always stink condense what makes sense for your area
Yeah, true. At least here, the NWS alerts don't have as many counties as in the example, so that shortens it natively but I do want to try to make this as universal as possible
bunch of stuff I use to chip the API data for Wx and wax in location.py def abbreviate_weather
I'll take a peek at how you did it
All of this EAS stuff, I was pondering adding some logic to enable broadcasting the NWS API for EAS over a mesh channel (make it a config.ini)
Requieres internet but, would still be handy 90% of the time
Look at me .. I only have API and my OTA EAS has no power !!!
Hihi
hahaha
I like the idea of having both, like API data first, but if it can't connect, failover to OTA
lmao I was trying to figure out how you're piping into python and directing STDOUT to a file, then I see line 3 just opening the file up
there's a reason it's called wtf.py lol
I'm updating it to shorten some works for efficiency on the mesh
I stole @gentle kestrel's abbreviation function but it's being a butt right now
Overall, I prefer pythons internal methods of string manipulation versus regex / if suck in regex
It's only abbreviating one thing, I'm sure I'm missing something because I am flying blind on coding knowledge
You got an error?
No error, just ignores the abbreviations I've added
I've added in ones for National Weather Service -> NWS and "Message from" to "msg frm:" and it only replaced the NWS
you should use re.compile on line 22 since you're reusing the same pattern.
pattern = re.compile(r'(ZCZC.*?NWS-)')
for line in lines:
# Skip lines that don't start with "EAS:" or "EAS (part):"
if line.startswith("EAS:") or line.startswith("EAS (part):"):
# Remove the "EAS:" or "EAS (part):" prefix
clean_line = line.split(":", 1)[-1].strip()
# Apply regex to extract content including ZCZC and NWS-
match = pattern.search(clean_line)```
made that change and it's happily cleaning the data still, woo. That function was like 80% chatgpt. I know enough python to bumble my way through some really simple stuff and sometimes duct tape code together 😅
I wonder if it would be simpler to just modify EAS2Text itself to just output shortened stuff....
yeah gpt will get you (often) functional code. will it be the most efficient? usually not. will it necessarily catch every case? also probably not. but it is pretty good at bodging and making a starting point
I am usually reluctant to use any generative ai stuff but figured i'd give it a shot
Looks like you’re moving along! 💪
Was banging my head becuase it just wouldn't work but then I did something and I don't remember what I did and now alert.txt is output straight up with the abbreviations
Now to go grab food and beer and then I'll test OTA stuff on... wednesday.... yeah
sox -t ogg WXR-RWT.ogg -esigned-integer -b16 -r 22050 -t raw - | multimon-ng -a EAS -v 1 -t raw - > raw.txt | python wtf2.py > alert.txt
Nice dude!!
Me for the last 36 years: I really need to sit down and learn code
Me for the last few days: yolo lets just see if this thing works lmao
Eh with the advent of the AI coder engine it’s a new era - you just wrote/directed a program to do a task and it works.. so either way it’s a skill to operate AI efficiently as much as it’s a skill to manipulate code into working
I would say you learned to code 🙂
I mean, only the cleaner part was AI, the rest was smashing other bits of code together until they worked lol
now just to figure out why I can't get any signals on my SDR
I'm back to testing that part with APRS
You had a v4 rtl and it’s been a second but make sure all your code is v4 aware
I noticed like Multimon must be a repo it’s older code
Helped a ham radio tuber write a installer for new Linux use once https://github.com/SpudGunMan/bapi
This isn’t going to be a solution to everything but I still maintain it working for pi and mintOS
If makefikes be confusing it might be handy // it will ‘bootstrap’ a lot of dev tools into your Os
jfc i just reinstalled multimon and rtl_sdr from their githubs and now it works perfectly
thank you for that pointer, the apt repo for the Pi is clearly outdated
!!!
next issue is that my script doesn't wait for input, it just runs straight away and, obviously, errors out
can you upload the raw.txt?
priorities 💯
realized that this is the year of our lord two thousand twenty-four and I can just put a scp client on my phone lmao
I used the audio file here for testing: https://github.com/cuppa-joe/dsame/tree/master/sample alert
so under normal circumstances, multimon would be continuously running, and you want it piping its data live into your python script, correct?
Correct
The idea is that multimon is like OH HEY HERES A SAME CODE and the script then cleans and decodes it and outputs it to alert.txt for the bot
Add in a file change monitor for raw.txt and any changes scoop up process and alert.txt, might also be good to purge the contents of raw.txt for easy housekeeping
Definitely gonna try that next up. The nice thing about alert.txt is that the script just overwrites it so the bot only gets the latest one
But yeah, file change monitor so it'll wait until it gets new input
python-watchdog looks like it may be useful. I'm currently trapped but I'll poke around with it later
she says "no computer"
sox -t ogg WXR-RWT.ogg -esigned-integer -b16 -r 22050 -t raw - | multimon-ng -a EAS -v 1 -t raw - | python ftw.py
will scan for only EAS type weatr messages like you had filtered for, but saves in a buffer till it reaches NNNN which is EOM indicator, then writes to alert.txt
sidenote: I always put off learning to code because learning from a book isn't fun, the code doesn't do anything. Just saying "f it I'm gonna try something" has been so much better just over a few days
oh shit yeah no that rules
100% that's how I learned. not "how to program python" but "I want to do X, how can I do that with python?" for everything
even if it was way less efficient
That's how I was with 3D printers, I thought they were neat but I didn't have a use case. Once I mental-gymnastics'd myself into finding a use case... welp, I use it all the time now lol
I just need that gateway 😂
definitely ended up on the wrong side of this chart many times, simply because it was interesting.
I've had so many false starts with python especially but it's always been book-based. This time it's "I want to solve a super niche problem" lol
I will fully admit that I will do the more complicated thing because sometimes that's just more fun
Home network: I could just have the ISP gateway that Just Works... ooooor I could run my own router, have multiple waps, push ethernet over coax to my garage, etc
what I always suggest is have a python terminal open all the time and get in the habit of using it for anything you can. need to download multiple links? click them one by one? no just use python. some basic (or not-so-basic) math? open calc? nahhh just use python. want do download different coloured frames of multiple designs to make Dungeons&Dragons tokens? Do it by hand? No way! Python (and selenium).
Deffo gonna do that
Just can't with work stuff because I'm pretty sure if I even mentioned installing python on my work machine, I'd get drone strike'd
@digital tartan haven't got to play with your improved script yet, this is a jam packed weekend lol, maybe Sunday evening
np
I did put it in the project etc/ folder
I also just put a lab branch in with the NOAA EAS API alerts to channel (broadcast ) haven’t actually tested (or better seen) any alerts; any testing confirmations welcome
I got the client done
extension I mean
so if u ever wanna make a client for a game u can
Nice! I haven’t ever done dev work in that ecosystem. Is the code in GitHub or where would I check it out for more?
(Saw you post in game dev as well but had the same Q of the where to go)
yes but its private
I'll make it public but it has no readme rn so u need a bit of godot experience(and the ability to install rust and type cargo build
here is the code
just put it in a path labeled "addons" in the project file tree in godot and it should 'just work'
needs docs and an example project written for it
to show off features
u need to build the repo and change the path names in the .gdextension file if u arent on mac
again, its very rough
I'll work on the example project first, then do docs
That would be cool; I dont know rust and would be dependent on a full IDE for help. A demo game as simple as tic tac mesh would be cool to jump in
Post the deets over in #1203830272261496913 as well so anyone who watches it has the code
will do there
Im currently trying to remove dependency errors
I accidently removed too many dependencies without realizing
having to get them back
I pulled langchain out of requirements for the bot and hope I don’t need to go back
Its really easy to build a rust project like literally just "cargo build" in the base directory next to the cargo.toml file
Yea I have used rust - just never written it
have u used gdscript/godot before?
Negative, programming is just hobby for me I started on qbasic and Visual Basic .. hence the comfortability with Python
the good news is its very similar to python but just wait a few days and I should have a base project to really make it easy to figure out the plugin aspect of it
Cool, I will check it out
very small download
i'll prob make a basic chat client along with a basic board game as you suggested
My goal was to make the interface very similar in feel and code pattern to existing stream tcp interfaces in stock godot
Still needs some helper functions maybe but it’s largely done
@stone lance I enjoy your changes to ack/testing
There was just a bunch of silly acks locally and the bot perfectly responded “ACK to you! “ it was funny 😜
If you enjoy the latest, along with EAS
// which I’m waiting for an alert I could change my gps to an area with alerts but I’m lazy we should get a wind or flood warning sometime which will be a surprise I hope it works and not surprise! exception! because I didn’t test more
There is a fix/enhancement to the logs. log rotation for daily logs, and by default it will only keep 32 days to keep those in check
All on lab branch till it seems like they work for real
I wrote a load more silly responses for all of those, but I didn't get round to putting them in the list.
It's probably the most used function in the bot, tho.
Haha yea for sure!
I had at least one typo/forgot to delete old line of code heh
I see you've thought of my thing before I thought it 😄
(you can pull the user's public key, but it'd be interesting to see how you can restrict perms to authenticated messages)
Weekend busy flowed right into week busy, working in cyber is so fun sometimes 🫠
Gonna be running the new script during the test tomorrow though
Nice! Excited to hear I was about to flip my EAS region to a larger swath to catch something on API, i’m curious if system wide test are run (including on API) never investigated. so I’m also eagerly waiting hehe
Yea understand the cyber fun
Hrm, no luck with the updated OTA script, gonna test further
not sure if I just didn't RX though
Yea that’s the crux of the over the air EAS signals is chasing them down like that
Like a satellite pass but less frequency
gonna tweet or skeet or whatever at noaa "hey just do the test every day pls kthx"
Oh no! You only have 6.5 days till the next test..
I got no decode from my workbench but did hear the tone on a HT it was horrible quality so I assume if I worked on it things are ok
I will test the API alerter likely this afternoon and press to a new release
I did get a EAS NNNN on the RTL
I didn’t include the -v1 after EAS on the decoder CLI
Was going for kiss
before the | python add | tee rx.txt so that you get a copy of the output and can confirm something has been received
blah blah | tee rx.txt | python ...
In this case, nothing was gonna get received anyway 😅
for next time, at least until you're sure it's all working as expected
Testing this is hard, might be good to test with aprs or pocsag to get gain and such perfect
yeah, was planning on APRS for repositioning antenna too lol
here are a couple of crash reports
Seems to be after multiping and also had it happen on sentry activation as well
oops here are the screen shots
thankyou should be fixed on alpha
embarresed they sliped thru this long!
Doh! Thanks again
Pushed a hotfix, to fix that missing config.ini
Thst was quick
It must be late where you are?
I'll give it a whirl my morning.
P.s. that eas stuff sounds interesting.
Hey there!
I just realized this project exists, I am the creator of the Library "EAS2Text" used in this project. I have been working on updating this project (First time in over 2 years!) soon, would you like help with updates?
Thanks!
Dang
Hey! I'm loving your library! In this exact case my antenna had fallen off its wall mount so I didn't get anything to decode 😅. I'm working on some more tests coming up so there will probably be some questions coming haha
No prob!
Just feel free to ping me or DM me if you need anything.
This new update has been something I have been thinking about doing for awhile, and it should split the data down to more processable info blocks, so instead of just having a massive class to decode an input, you can pipe in an input from anything and then it'll break down everything to be processed in smaller code chunks.
Also might actually take the EAS code database outta the file, that may make the library load faster XD
Makes everything cleaner, faster, and will also update docs so it'll make more sense.
Awesome! I'll definitely play around with the update! It'll probably be after the holiday, though 😅
Or, actually, once you put it up. My brain isn't fully on yet lmao
Gotta update this mess first, whyyy did I do it this wayyyy
Because "f it it works" I guess 😂
@gentle kestrel what port is the web interface on?
No web interface directly in the bot just the reporting tool @broken sorrel