#meshing-around BBS/utility BOT

1 messages · Page 2 of 1

gentle kestrel
#

@stone lance

stone lance
#

I can't get it to work

#

It's enabled, but returns no messages

#

Does it only work on non public channels? (I only have longfast setup for now)

#

Also, do you mind if I tidy up some of the notation/special characters used in trap phrases?

#

And the help text?

gentle kestrel
#

The help text is just a string

gentle kestrel
stone lance
#

That segments the message into specifically treated parts

gentle kestrel
#

Yea ping and BBS actions

stone lance
#

E.g. the @ in the ping implies it sends it to someone else, when in fact it "copies" by echoing

#

It would be better with a #

#

But I didn't really want to do it 'live' right now, more just sit and puzzle it out and make suggestions via pull request

#

But I can if you want?

gentle kestrel
#

the idea is I am pinging you “at” this location

#

So the bot responds

#

It could be a comma,

#

Or it could be the word “echo”

gentle kestrel
stone lance
stone lance
#

At a minimum it should be reporting a few "ping" messages

#

I'll do a fresh install in a bit.

gentle kestrel
#

It will not report any bot messages

#

Ping won’t be added to the messages list

#

Same with LLM consumption if I recall

#

If the Bot consumes it I don’t log it to messages basically

#

As I assume it’s “nothing anyone else cares about”

stone lance
#

Ah, ok

#

Ok, it should still have a few messages to report

gentle kestrel
#

Yea I just loaded a copy and it’s on by default and working fine it seems

stone lance
#

I'll do a fresh install and make a test channel, too

#

Maybe I'm doing something weird

gentle kestrel
#

Did you play with source? Try a “git restore .” In the directory and it will reset to git code

#

If using public it will respond on DM with the messages

#

No “need” for extra channels anyway

stone lance
#

Kk, once the agents of chaos are asleep, I'll have a play.

sand axle
#

It worked for me when I tested it.

stone lance
#

It's working for me

#

I think the fact that I;ve been repeatedly shutting it down and restarting it, plus the fact that almost every message is triggering the bot in some way must have been meaning it had nothing to say

stone lance
#

it's only a small amount of stuff, but it's been a crappy evening

#

anyway, hope some of it looks sensible tomorrow morning...

gentle kestrel
gentle kestrel
# stone lance I've made a few changes in my fork: https://github.com/Nestpebble/meshing-around...

Yea looks cool, one thing I’m curious about is the split delay, why is there a delay added? (Did you have a reason for adding the delay)

I was specifically not delaying it for how it sends the info in one lump to the node it handles the airtime better for packet delivery order

If you push this (it’s good changes)

Can you set the MOTD value to allow anyone when the list is empty for admin.

And the split can you default to zero, but I’m also wondering where delaying the values sent to the node is useful I found it to be very problematic to put a wait here

gentle kestrel
#

I saw your comment and commits for trying to find admin, check out around line 47 of bbs module and just replicate that mechanic?

#

If you really get stuck when I am back at it I can give a specific answer if needed

#

Dopewars is 90%done, I need to convert one last array into player tracking as its single player right now.

#

🍋 code im using to port should go fast

#

So my next release I hope will be a late night double feature

#

While goofin’ I remember more wacky games from the past transposing from the back of magazines, I got a third which if the idea works .. might be a triple feature of fun

stone lance
#

I'm adding debugs in a min

gentle kestrel
#

It’s extrapolated from fromNode.

#

DeviceID, is the node, for multi radio

#

The whole multi node and interface stuff could be better suited in a class method but, here we are

stone lance
#

right, apparently both message_from_id and bbs_admin_list needed to be transformed to a string for the comparison to work

#

along the way I've added a whoami trap word

stone lance
#

Bah

#

I give up

#

I can't get it to check if bbs_admin_list is blank.

#

And I keep breaking it when I do different things.

#

And I'm about 44 commits deep

#

All the rest is ok, I think

#

Oh, I tried to add a motd? catchphrase, to see if we could shoehorn a help message per handler, but it doesn't like it.

#

*trap word

#

But I do like catchphrase as a concept

#

Also, the definitions are a nightmare throughout!

#

DeviceID, rxnode, fromNode

#

All the same thing

gentle kestrel
#

Added it to a todo

gentle kestrel
#

Remove all the extra stuff?

#

Do you want ping.py to have some BBS message or enhanced MOTD it’s easy to port

#

I’m just not sure why MOTD needs a help

#

And the “if blank admin” logic if it’s not working just cut it out

#

Push in the other stuff and I can hammer it out

stone lance
gentle kestrel
#

I would like to have proper interface.value

#

Interface.isopen

#

The games I’m working on now was all I wanted and the rest sort of happened out of necessity for game play haha

#

So if it looks like I write the code to fill a function idea and two days later a totally new idea .. yea it’s how it’s going

stone lance
#

Yep, I get that - I'm assuming it's got blocks from other projects?

#

Hence the odd notation?

gentle kestrel
#

Not a bunch; the recognition, calls out the areas I pulled raw concepts from

#

The odd notation is really a bad practice I never corrected, this is the first project I allowed co-pilot to be a part of and one issue I have is my way and it’s way to write are slightly different

#

So your reading a mix of my old way and it’s new way

stone lance
#

ah, ok

#

I'll be honest, most of my "programming" experience is excel spreadsheets and extended blink.ino

gentle kestrel
#

I kickstarted blink, good project!

stone lance
#

so switching between C(++?) and python is weirding me out a bit

gentle kestrel
#

Haha yea, them white spaces are a killer sometimes

#

And my Python is not ideal I really do this as a hobby

#

(But it works!)

stone lance
#

yeah, I'm trying to focus on a goal rather than getting hung up on the learning - it's not my day job at all

#

yep - function over form every time!

#

basically, when other people locally started popping up on Meshtastic, the main complaint was that there wasn't much to do with it

#

basically, the joke was that most of the meshtastic chat went over discord

#

and then people get bored, don't check their nodes, and its dead internet syndrome

#

you see a full nodeDB, but noone answers so... you switch off

gentle kestrel
#

My hobby box is full of these ideas haha

stone lance
#

I like this idea of a meshbot that people "find"

#

that does stuff

#

hence me getting a bit hung up on the MOTD and access control

#

its a really basic function

#

but I like the idea of a few scheduled broadcasts and things

gentle kestrel
#

Use ping.py to goof with enhancing MOTD less code to get lost in

#

The MOTD idea was the first bit of code I wrote after ping

stone lance
#

I also like the idea of the geocache guidance - go to a location, and it will respond differently than before

gentle kestrel
#

So it’s old stuff, the bbs .. haha MOTD didn’t work for some time oops

stone lance
#

your proximity alert thingy is perfect fo4r5 that

#

sorry - Ive got the 1yo on me

gentle kestrel
#

No worries, I kinda wanna enhance that for game use

stone lance
#

yep

#

I was looking at the mobile apps and thinking if they would respect some kind of markup

#

liek how online chatbots have options to pick from

gentle kestrel
#

iOS will take one or two

stone lance
#

yeah, android highlights some numbers, but not for passing as a response

#

the split message interval thing is useful to me to improve the overall reliability, btw. Once I put that in, the better radios started getting their messages out better

gentle kestrel
#

What hardware?

stone lance
#

it can have a default value of 0, but I think it's useful

#

nrf_pro-micro_diy

#

😉

gentle kestrel
#

Ahh nice! Yea I can understand where that would be handy, I was actually surprised it worked like it did but I had constant issues over a hop with (at the time) weather packets (for NOAA) are three “packets” and they would arrive out of order when a delay was there

stone lance
#

ah, the delay is still a problem

#

but I thought putting a n/x on the split messages might help there

gentle kestrel
#

I hear ya, but I didn’t dig further for enjoyment of my own puzzle. Time has been an issue lately of discussions.

My assumptions are the stream reader considers the injest as a single input

#

If delayed there is natural break to process and keep streaming

stone lance
#

ah, this is above my paygrade

#

I just assumed the packet queue was getting full, and it wasn't getting chance to check for implicit acks that would help reliability

#

it doesn't help that longfast has made a comeback

#

mediumfast was so much quicker

#

and easier on the airtime

#

now each 120 character message is taking like a second to broadcast

gentle kestrel
#

As a ham, waiting for data is commonly the hobby

gentle kestrel
#

able to test via hop with high consistency, the ping bot was to help me fine tune coverage at the time

gentle kestrel
stone lance
#

Yeah, but you can ask for them again much quicker 😉

lavish crown
#

btw, i havent updated in 2-3 weeks, but the TCP connection to the virtual meshtasticd node has been up and stable for 2-3 weeks!

#

no intervention needed

gentle kestrel
#

Sweet! Good to hear! @lavish crown

gentle kestrel
#

This is looking good, on to 🍋

#

Not on git yet I will get it there soon

lavish crown
#

Nice

sand axle
#

Our mesh here on Maui is so quiet I'm thinking of turning off DM only so that people can see it working.

gentle kestrel
#

Nice, also need to disable the “antispam”

#

Sort of a fuse, to stop accidents if you will

gentle kestrel
#

git pull && git checkout games

#

I will move to main after some testing

#

It’s basic; could use some ice melting and ants stealing sugar but .. another day

gentle kestrel
#

I’m gonna hold games on a “alpha” (games) branch for a bit while ironing out some things (just got some good fixes in)

#

High score is messed up on dopewars possibly still

#

I have been working on another game all day and was not keeping good change control and wasted a day of work

stone lance
#

Are you likely to refactor (is that the right word?) this at some point, so the different modules are truly modularised?

#

I'm just looking down the list, and it's getting looooooooooong

#

and you've got things in several places

gentle kestrel
#

Not sure, the product is working well as it sits, but modular in the sense that the core would have some generic API for anyone to write a plugin? You can disable modules today, what defines modularity?

Aside from some best practice Python skills the product seems stable and functional so ..
Unless there is a LOT of demand… or someone has a great idea for a plugin setup (I know the discord bot project is working to try this)

If you have some suggestion I’m all ears but, I have no immediate plans to refactor much but some confusing values for the device/nodeID

gentle kestrel
#

I could see v2 or whatever being a rewrite with more LLM and a tracker database and more focus with ability to have a translation file

#

I do think the modules today could be quickly adapted in that or elsewhere

stone lance
#

It is very good as it stands, that's true.

#

I just had an early morning thought that it would be possible to move quite a lot of the trap word and response off to another .ini that could be arbitrarily long and customised

#

But there are other modules which might serve better, e.g. the BBS with tweaked commands

gentle kestrel
#

I could make a good document showing the flow of stuff in the code?

Is the _handler() functions not good enough to customize as you want? Sort of like the scheduler at some stage the power of logic is in .py vs a complex .ini for whatever someone may want to do. so extending any command would be processed/sanitized and sent to the bbs.mod function needed (and the .mod enhanced as needed for new behaviors)

#

The case selection menu, _handler() is much cleaner vs a huge elif statement

#

The basic flow is all messages are quickly word searched and if true get passed to the larger auto_responder

#

The rx loop handles watching the proto from node and its closely tied to auto responder

#

The system.py is basically just an initialization header to bot.py for shared functions

#

I have a few tools I haven’t shared but one which could be handy if interest is a janky node emulator I use for roughing in stuff. It fakes input just like the bot/client.node would for prototyping ideas

#

So when testing out, would this idea work or that game how nice would it port over

stone lance
#

Ah, that sounds clever!

#

How are you operating the games, then? Does it switch to a games mode?

gentle kestrel
#

here is the tool in action .. I dont know if this will port yet but it smells like it will, sneak peek

stone lance
#

Ok, so you're making a command-line type game, and then feeding the result through Meshtastic?

gentle kestrel
#

yea I just hunt for fun python games which may or may not work give it a test and if I can fit it thru my "emulator" it will fit into the meshing-around project

#

just raw input for quick dev

gentle kestrel
#

short answer yes

#

currently its 8 hours it will hold onto game mode

#

all of it is in flux still need to set values places easily changed but ..

#

testing out bugs now anyway

#

games like LLM are only available in DM mode

#

LLM in channels is only accessable with 'askai' or with :

#

I am pondering a multiplayer game or something like holdem but thats another day

#

all of this 1.0 meshing about is "will it work well"

stone lance
#

No, it's really cool

#

For the fixed mesh, it needs something to make it fun

#

Something engaging

#

Not just a portal to discord...

gentle kestrel
#

haha thats cool as well! thanks glad its enjoyable code!

#

I do have some notes for a orginal game idea "golden node" but its sort of a next idea after meshing-about or part of 2.0

stone lance
#

Yep, I was tinkering with the proximity detector, and looking at a kind of geocache/treasure hunt thing.

#

So it sends different messages based on the sender's location.

gentle kestrel
#

yea I almost went nuts and added that ability to the bot

#

but the basic idea works well for the prox alarm so I know it will scale

stone lance
#

Wait for hacktober, and take the prize with it?

#

I was also bothering other folk about trying to low-power it with a milk-v or something

gentle kestrel
#

haha I feel I got like 50% of it .. if a construct was neded the lists with data are allready being searched 🙂

#

just scale into a larger list

#

get_node_location() and get_closest_nodes() would be worth grabbing out

#

get_closest_nodes actually returns a list but I am crunching it for the current use

#

with these two fucntions working (you can dump the device/nodeID or set to 1) you can quicly check against a known lat long[]

gentle kestrel
#

I just published my simulator into etc/ on the games branch.(eventually will make it way to main)

#

Move it to project root and it will simulate

gentle kestrel
#

I spent another day on this silly black jack, I could have written a totally new one by now and should have

gentle kestrel
#

Well that took a second

#

With the triple feature done it’s all in main now

stone lance
#

Can we have tictactoe and thermonuclear war, plz?

gentle kestrel
#

Haha, thermonuclear war for sure

#

I will 🤔

#

Tick tac toe I’m not sure how well it plays in mesh

stone lance
#

(thermonuclear war can only be won by choosing not to play)

#

😉

gentle kestrel
#

Haha, the game will for sure keep bothering you to keep going

#

I may even pickle the node number and wait .. patiently for a dial back

stone lance
#

Hehe

#

I'll review my changes and do a fresh pull request this weekend, I think

#

And once the crappy adjustments I wanted are in, I'll propose another bot, either on ping or a third one.

#

Btw, does the trap word list filter special characters?

#

I know it can search the message for $ and #

gentle kestrel
#

Nice!

The word list is 1:1 only it traps words it isn’t handling anything else

#

Just returns bool and if true hands to the autoresponder who’s case command choose word to function actions

gentle kestrel
gentle kestrel
#

Fixed a LLM bug

#

Or rather, I used a dict where I should have listed[dic]

gentle kestrel
#

Might tag a release soon things should be mostly bug free?

dusky abyss
gentle kestrel
#

Ohh looks nice @dusky abyss!

gentle kestrel
#

I am play testing now and found some minor things

#

Will have them fixed up soon

gentle kestrel
#

@stone lance I pulled your changes into main, thank you !

#

If your wondering what needed refactored I tagged you on the commit

gentle kestrel
#

Updated graphics!

#

Didn’t need to set one vector or plot statement either

stone lance
#

Did you think the elif "?" in message was a good idea?

gentle kestrel
#

Yea I kept in everything you had! @stone lance

#

The trap word you were only missing this


if whoami_enabled:
    trap_list_whoami = ("whoami",)
    trap_list = trap_list + trap_list_whoami
    help_message = help_message + ", whoami"

#

Part of the modular bit since this was an internal function it has all the parts for help and trap ()

#

The admin for MoTd stuff I refactored to


if bbs_admin_list != ['']:
        for admin in bbs_admin_list:
            if str(message_from_id) == admin:
                isAdmin = True
                break
    else:
        isAdmin = True
stone lance
gentle kestrel
#

I enhanced the output a bit as well

stone lance
#

I was still planning to go back through and add elif "?" In message to add local help

stone lance
#

You've tidied up quite a bit

stone lance
#

I was trying games, but my kids keep interrupting..

gentle kestrel
#

Something I sort of enjoy is the timeout is 8 hours by default and they pause and play just like a text message would

#

I once had a IGT video game slot thing and really enjoyed playing them as a mindless game, I sort of enjoy it in text message I have found

gentle kestrel
#

Should high scores for casino games be saved? (keep them in memory only now)

#

Is there any use to a “announcer” which would text to speech radio?

#

Say: It’s not likely the professor knows the island is a movie set

gentle kestrel
#

Lotta bugs worked out of games

#

Fun note VarAC will have games in 10.1

stone lance
#

how come "motd ?" works, but "motd?" doesnt?

gentle kestrel
#

For the same reason sun works and sunrise isn’t the consumption of a message is chunked into words to be evaluated, see the def messageTrap(msg) in system

#

It may be worth adding a “help handler”

#

If ? Found in any Cmd in the cmds list

#

@stone lance

stone lance
#

yep, found it

#

it chunks it based on " "

#

so I either add a trap word with ? added, or do as you say

gentle kestrel
#

The downside to trapping ? Without checking the cmds list is your going to add a lot of noise possibly

#

So the ?_handler can refine just a bunch of help commands

#

Having an option to find ? In channel chat and treat it like a Askai: command would be fun?

#

Every response would get something

stone lance
#

I'm just trying to get it to trap (e.g.) ping? the same way it traps ping without having to add ping? to the trap list as well

#

but actually, it may be better to just have explicit help requests included

#

can then capture e.g. ping? and respond with a help message in a consistent way

#

if it makes sense

#

I'm messing with the message_list split

#

trying regular expressions to split it at ? as well as " "

#

but its not straightforward

#

fixed it

#

but now, do we really want it to respond to whereami? the same way as we respond to whereami?

#

ug

#

right, gonna commit it now, and think later

gentle kestrel
#

No need for regex

#

Most commands provide help inline

#

I don’t know if whereami needs explanation after ran

#

def messageTrap(msg) in system is splitting on spaces for words

#

It’s the best place to look for and pass true

#

It’s the important part of ingesting data

#

Once’s is in there you can enhance parsing cmds list

gentle kestrel
gentle kestrel
#

Pressed a 1.2 release

gentle kestrel
#

Bot is 2.5 aware now, whoami will print your public key

dusky abyss
#

a who/last command would be neat

#

to get a list of who's been talking to the bot, and maybe the last time they did it

gentle kestrel
#

Like actually interacting with a command? Like a admin function?

#

Command history returns (userID, command, timestamp) ? @dusky abyss

dusky abyss
#

yea, that'd be pretty sweet

#

just the last seen tho

#

lol

#

per user i mean

gentle kestrel
#

Can you fake the output your thinking here in discord chat

#

Like the command would be history and it returns anyone’s last commands?

#

Admins get usernames?

dusky abyss
#

Last Seen:
spudgegunman, Lemonstand, 2 hours ago
bitflip, llm, 16 hours ago
NomTom, whoami, yesterday

#

or similar

#

wouldn't even really need last command

#

i was just thinking to see like the last 5 people who used the bot and how long ago

#
spudgegunman  2 hours ago
bitflip       16 hours ago
NomTom        yesterday```
gentle kestrel
#

Oh yea, nice

dusky abyss
#

yea, just to take a look at who else has been using the bot

gentle kestrel
#

Yea should be easy to add

dusky abyss
#

an ignore option might be nice too, so you could use a specific node/name for testing and keep it from being the top spot everyday 😛

gentle kestrel
#

Will have a enhancement in a few as well to catalog LLM use

stone lance
# gentle kestrel No need for regex

Once I made the split on spaces, question marks, dollars and hashes, the world opens up. You can have compound commands like test#1 bbsread#1 motd$right you orrible lot etc.

#

I'm continuing to experiment locally, I'll push changes tomorrow night, I think.

#

The alternative approach is to look for trap words and then look for trap words with those special characters appended, but even that will miss test#1

gentle kestrel
gentle kestrel
#

Needs a little enhancing still

#

I was lazy and it’s catching up

#

With time heh

stone lance
gentle kestrel
#

It shares the same value at sitrep

#

Sort of a catch all for the concept

#

Added the further telemetry it will also show battery if on

#

If dual node this screen gets busy quick

#

I didn’t go as far as enhancing the trap stuff for Lheard 1
Like you would run in a tnc it just didn’t make a lotta sense

#

If multi node is interesting it’s worth fixing my core code replication mess (basically copy code and if.int2)

#

It’s not something any Python book author would approve of but .. meh

#

Bot.py just hit 1000 lines again

#

Haha yea

stone lance
#

modular

gentle kestrel
#

Haha yea, it wouldn’t be difficult (at first thought) to split every command out into its own .py file

#

End of the day it’s just readability and usability

#

I mostly code in vscode which has the context help to remember what function

stone lance
#

For python, anyway

stone lance
#

ping? works

#

wiki? does not

#

will return when not tired

#

I half considered suggesting just helping by prefixing man to each command...

stone lance
#

Consider splitting sitrep and lheard?

#

Or consider splitting certain functionality

#

The issue becomes: the message splitting function gets a bit nuts if it's asked to split a message with newlines in it

#

But a snappy little response is better anyway

#

Imho

gentle kestrel
#

Most all commands return context help

#

If you really need this for something I would likely refactor your recent push

#

I don’t want regex parsed as user input

#

msg.endswith(“¿")

gentle kestrel
#

Lheard and sitrep are the same command

#

If there is too much data the parser will break new lines

#

It should be breaking at good spots

#

When two nodes are on the bot this is a very busy area anyway

#

Most all commands return help when misused

#

Wiki actually has a bug I never tested just fixed

gentle kestrel
#

Hopefully fixed some game play usability stuff

stone lance
#

I'll re-do with specific help trap words instead

#

ok, one more stupid question before I collapse:

#

how about splitting the trap word action list into "any channel" and "DM only"?

#

I think I've already got the isDM bit worked out

#

Just need to know if redoing the autoresponse function for anychannel and isDM is worth it?

#

Additional point in favour of this approach:

#

It allows people to discuss the games and commands on an open channel without the bot getting confused

#

Another point: the trap word list is getting long now, and it is already easy for it to get confused by things like "sun"

gentle kestrel
#

Could the autoresponder use a isDM? Possibly? But it’s also just one value change for preventing the game play from being seen on a channel. I actually left it as it currently is so the game is advertised hehe (but it could be changed quickly)

The games should only be playable via DM not via channel today

gentle kestrel
gentle kestrel
#

How often do you text the word sun for example not much

But texting the word sunset is common I feel

#

So I didn’t use the common word to not have people get slammed for common language.

#

“Let’s meet at sunset” is common

#

Did you see the sun?

Would also return the sunset

#

That’s my reasoning behind the words

#

The Word help I removed very early on as I didn’t like using it on air

#

The Cmd? And Cmd is because I saw lots of people type in Cmd? Replicating the help text

#

The Cmd list is getting long and I try and trim it as needed like the recent addition of history isn’t in help I don’t think a normal user cares and anyone else will find it

#

If it gets longer I may remove Bbspost and just leave bbshelp

#

If you’re eager to have a ? Trap on Cmd? And bot? Or the likes and bring the user into a few blurbs of extra messaging

#

But almost all programs in the project have inline help I know of

#

Any command if taken will provide help if malformed

#

So inherently help is inline

#

Could the welcome message or help message be better by default? Yes likely

#

As a local sysop if you choose, might be worth sending a message via the scheduler with like bot tips

#

Engage the mesh

#

Back when I ran some packet bbs I would broadcast “play game now at 145.100 K7MHI-4”

or whatever it was on aprs I still have my config script somewhere had a real busy BPQ server

stone lance
#

I can see 2 ways to do this:

  1. what I've just implemented, where there's a isDM flag that's passed to the auto_response function which only responds to certain commands that came via DM
  2. put it where I think it should be, in a separate list that parallels trap_list, maybe called trap_list_dm, and handled by a separate function called dmTrap
#

1 is ugly and sits in mesh_bot.py

#

2 is moderately more elegant and sits in system.py

#

oh, and please be gentle - I have zero clue what constitutes good programming form 😉

gentle kestrel
#

The bot already has detection forDM passing the value to auto_response is fine but, whats the use for is this all for games which already only work via DM (what is being enhanced)

I’m confused what is being done for what reason. Today games and LLM work only via DM, I don’t have any plans to really expand that use ability (what are your plans by adding this?)

#

For item 2) same question what is all the refactoring for? Why is trap list needing so much rework?

#

I personally done care about the size of a Python file

#

I enjoy trying to keep it nice but the bot.py could be 2k lines and if it’s stable meh ..

#

I likely will reduce some code blocks down I left expanded for troubleshooting

#

Might move some stuff to system but - I broke it out just to keep it easy to work with

#

As bot.py is all the major business it’s ok for me anyway if it’s large

#

All your ideas are cool and welcome just want to make sure any which go into the main branch have some plan for future use

#

IsDM is cool data to have but what will it enhance today? Or tomorrow?

#

The only item is the welcome to all the games which now say play via DM, and if the nodeID wasn’t passed to send it would only send via DM

#

So if all this work is for that, I could make it an option in 5min or change it in 3

gentle kestrel
#

I was pondering what I would do with isDM as part of handlers/auto_respond and I’m torn if moving code from onRx to _handler it seems so 50/50

At some stage a total core rewrite seems better

#

But also a lot of work

stone lance
#

The use case I have at the moment is 2fold:

#
  1. keep the bot from triggering DMs from channel conversation without cause - ping is fine, joke is not, for example.
#

(there's quite a lot of idle chatter on my local mesh, I don't want to trigger too often)

#
  1. a set of test and ping commands that work on the channel and then get released via DM
#

And 2a) make some messages more detailed via DM

gentle kestrel
#

Yea handy for that for sure, this crosses with “respond via DM only” value which could be checked and used today

#

adds more flexibility anyway 🙂

#

I also feel like the LLM is capable of better dad jokes

stone lance
#

Btw, I'm learning a lot about python just by looking at this 🙂

gentle kestrel
gentle kestrel
stone lance
#

The comments help

#

I'm also spotting things where certain things fall down because they're testing something in one way, and then they pass it on to something that handles it another.

#

It's really interesting to see

#

I see what you mean about a rewrite...

#

But it's a lot of effort for something that already works.

#

Also, python has really weird stuff like switch cases that aren't...

#

Stuff I've actually used in C that is handled really strangely

#

I should pull it into vscode, it would make me more disciplined

gentle kestrel
#

Any Python aware IDE helps a lot with Python chasing white space all day otherwise!

This was very much a throw a bunch of ideas out see what is fun

#

Call it creative writing; I will work on condensing some code and cleaning up the dyslexic logic

gentle kestrel
#

Added in the isDM idea pulled your fork @stone lance

stone lance
#

You don't want me to go with option 2?

#

actually, the isDM flag is useful anyway

#

or is needed for the different responses depending on the route in

gentle kestrel
#

Trap word stuff?

stone lance
#

#1255754522303922217 message

#

yeah, trap_list and trap_list_dm

#

would have to split the word list further back

#

honestly, at that point I was considering just pulling it all into config.ini

#

then it could be set on a per-user basis, so you didn't have to deal with my bullshit!

#

which I may still do

gentle kestrel
#

I accounted for that with default commands which can be handled like a list

gentle kestrel
#

Simply adding ? Is a matter of just adding .endswidth(“?”) return true

#

But I don’t know the value of this function

#

If you did it today it still works

#

And if you want more evaluation in the handler … not the bot code

#

Some day the bot code will be a 2.0 core and all the handler will be plugins

#

That’s the idea

#

So any commands should be in the command list array to properly be handled by that concept some day

stone lance
#

argh, my rpi has lost internet

#

It's still responding by mesh, but I can't VNC in to test

stone lance
#

because it picked up ping ? but not ping?

#

so "ping?" ends up in the trap_list, too

gentle kestrel
#

You really want this ? Working huh hehe

stone lance
#

the LLM is cool, but I want the cold robotic commands working, too

gentle kestrel
#

I can add it in but I won’t likely be enhancing anything to handle it beyond basic logic

stone lance
#

yeah, I know

#

gah, and now the baby has woken up

#

I'm calling it a night

#

there's another fix in my repo, but it needs testing

#

I noticed you didn't pull that

#

if message_string == help_message or message_string == welcome_message or "cmd?:" in message_string.lower():

#

because the previous one didn't .lower() the last bit

#

right, gtg

gentle kestrel
#

message_lower is available
But this line of code isnt wrong imo why I didn’t take it. It’s specifically matching the exact use

#

It’s to match the header of the help text

#

It is not for user facing code

#

Bot:bot detection

#

Games are a nightmare if two games play on the same channel why isDM was an attractive use there

And if anyone sets that up it’s on them haha

The LLM is also something I want to test putting my alpha code against my production code to let them chat it up for a while

stone lance
#

I put in a feature request for mode/user status

#

But I specifically asked if node type could be in there too

#

So you could explicitly say "this node is a bot"

#

But also you could set your bot to ignore others, too

stone lance
gentle kestrel
#

Any command will now fuzz with ?

#

Published a new Tag release 1.2.3

gentle kestrel
#

Spent some time cleaning up the install.sh and service files, tested them on a default Ubuntu

sand axle
stone lance
#

It installsh it

#

Anyway, is there a way to right-align a message, either paragraph format, right-to-left language, or just plain spaces?

#

I have an idea...

gentle kestrel
#

Installs requirements and venv, configs some .service files

#

Installs emoji font and ollama, pip

gentle kestrel
stone lance
#

I thought so.

#

Hmmm...

gentle kestrel
#

Lheard/sitrep pushes the limits of “cool text” I have found so far

stone lance
#

?

gentle kestrel
#

Specifically I’m using f” and non f” to get the equivalent of a \r vs \n

#

The simulator will print text with line breaks showing approximately the phone output

stone lance
#

I chucked in the PR

#

I've got a 64 gig card now, so I might fire up the LLM later

gentle kestrel
#

Nice yea thanks, I took it in and did make some changes. Most notable is keeping any responses from having a trap word in the response

#

A cheat I have been using is no spaces between the word and a emote

#

Otherwise two bots on the same mesh will run a loop

gentle kestrel
#

If you run it on a GPU it’s instant basically

#

I enjoy it’s presence with or without internet fun to have in the bot

gentle kestrel
#

Also I have noticed the latest ollama is faster, go update if your on a version older then this week

stone lance
#

will it run on a pi3?

#

or do I need to break out the big guns?

gentle kestrel
#

I haven’t tried a pi3, it needs ram for sure to load, so the 8/4gb units are needed

#

I did see just this week llama3.2 is released in a 1b model

#

I assume it will perform near gemma2:2b but at half the weight of a model

#

I haven’t tested it personally yet but I am sure it will be compatible with the bot

#

Could be worth using as the default

#

My dev platform is a low ram value laptop GPU 1060 or something

#

I have a 32gb RTX here but no motherboard, I’m going to try jamming it into a pi5 pci-slot

#

In theory it will work

#

16x -> 1x adapters are used by miners

stone lance
#

My gaming rig has a 1080 in it...

#

right, I'm done for the time being

#

I've done another pull request for BBS-DM via hex code.

#

It was fun to do a try: except:

stone lance
#

I'll add some help strings to the BBS module at some point.

#

I caught up with someone else "on the mesh" earlier today, who's interested in giving some of these things a try, but doesn't get on with Discord etc.

#

so I'm trying to make it friendlier from a complete outsider's experience

#

i.e. someone who doesn't know how to interpret the code

gentle kestrel
gentle kestrel
#

As a SysOp set up messages to broadcast more

#

People are typically shy to use some bot unless they know the owner imo

#

Around my mesh it’s 90% ping and test

#

That’s about it

stone lance
#

I always feel like this when learning a new thing, btw

#

"I should write some extra notes for other newbies who come through"

gentle kestrel
#

Well the trap word is just wiki: not wiki to keep it from being a mess for stuff

#

Yea for sure, but anyone who runs wiki, wouldn’t think to run wiki?

There is still a human element needed to invite people to use the bot

stone lance
#

true

gentle kestrel
#

I was looking at the PR for hex ID messages

#

Did you test it?

stone lance
#

yes

#

just copy and paste a few nodeIDs from the app

#

in the android app it shows them in !hex

#

and can copy/paste

#

I didn't actually realise you could use the shortname

gentle kestrel
#

Yea, but my quandary is short name is a field value which isn’t hex Id

stone lance
#

I just thought "oh, Ihave to do hex to dec, painful."

gentle kestrel
#

No I have logic for it (so the try wouldn’t be best here)

#

I just never expected anyone to have that hex id for mail

stone lance
#

there's no isHex function built in to python

gentle kestrel
#

It’s complex and not human useable

gentle kestrel
stone lance
#

is it?

gentle kestrel
#

But your passing hex into a alpha short name

#

As a string minus !

#

I didn’t expect this to work at all it’s not programmed to

stone lance
#

I tried, but everyone does their own version

gentle kestrel
#

I may not pull this in, I would prefer to use better search for the node

stone lance
#

oh, by stripping the ! and trying to int(x,16) it works

#

and if it doesn't, then it just passes on

#

!hex is built in to the android app now

gentle kestrel
#

I messed that so your passing the long number id

#

It’s still being process by get short name string

stone lance
#

yes, true, but if it is passed a valid base10 nodeID, it just passes it back?

#

I dunno, I was tempted to swap the variables and make atNode and toNode, so only a valid node number is passed from one to the other.

#

I just thought, for nodes that the bot hasn't got nodeinfo for, it should still be possible to leave a mesage.

#

¯_(ツ)_/¯

#

just meshing around, right?

gentle kestrel
#

The code you have a PR for wouldn’t allow for that that, my issue with it.

Your forcing a search in short name for the long ID number

#

It’s working due to a glitch imo

stone lance
#

fair

#

kk, I'll roll back

gentle kestrel
#

Hold on let me use it to get something in which will work

stone lance
#

ok

#

ah, hang on

#

if the first if "!" in toNode is successful, it puts the base10 ID in and calls it good

#

which is what the get_num_from_short_name does, too

#

FML, its nearly 5am

#

I'll come back, I swear!

#

I really like the BBS DM thing - leaving messages for when people finally try it out

gentle kestrel
#

It works really nice

gentle kestrel
stone lance
gentle kestrel
#

Yea haha. Added high score save to casino games and fixed them up more

gentle kestrel
#

Bunch of fixes and enhancements in

#

Note worthy the logs/ are now in folder, I am mostly sure this will work cross platform

#

Ignore Default Channel lets you do just that

#

It will still log to disk just not respond to anything

#

Casino games will now let you resend the card hand if it was lost in transit

gentle kestrel
#

Published a 1.3.3

lavish crown
#

time to upgrade 🙂

gentle kestrel
#

Put some new games into main branch another late night double feature picture show

gentle kestrel
gentle kestrel
#

Golf needs less words, but I’m sleepy

waxen sail
#

I remember playing that or a similar one on my family computer.

#

The DOS-only PC was fun. Text based games are an art.

gentle kestrel
gentle kestrel
#

MasterMind🧠 got high score table and expert mode I beat it once no cheating, then wrote a HS table because I couldn’t beat it again

gentle kestrel
#

Did a lot of golf enhancements

#

Happy with its turnout

#

Added hazards, and a caddy, save score

gentle kestrel
#

Also had a some enhancements to docker today for localization

#

Worth a reconfig / evaluation of the docker file

#

If your a 🚢

gentle kestrel
gentle kestrel
#

My current project

Device:1 Sending 117 long DM: Welcome to UNO! Please wait for others to join

#

Not sure if it will launch yet but gonna try

#

The biggest issue is you can have a hand of 20 cards and I don’t know it will work

#

Similar to a zork issue just can’t fit it all

#

Fit 9 holes of golf so ..

#

Gotta be room for ONE card 🃏

stone lance
#

I was also thinking you could have a word with the app admins to allow a games mode or something that would reorder out of order messages, or allow a temporary pinned message with the commands in.

#

And while I'm vomiting ideas without solutions: hyperlinked items that allow a quick-type of that in the message box...

gentle kestrel
#

Numbering messages is possible but adds to the loss of string length and this issue ..

Let’s say you have 7 messages in a chunked group for whatever

You get all messages but “3:7”

So you gotta remember the messsge chunks and find id3 and sent it or all 7 again it gets insane and horrible

#

I tried for a while with a few ideas and hated them all

#

I don’t see how any port of a classic crawler will work

#

At the time everyone was enjoying freedom to be verbose

#

It’s almost a nightmare to try and edit to 300 or less blurbs

#

So it would need rewritten entirely and .. meh

gentle kestrel
#

Hyper links do work but you need to then add a web server

#

Meh

#

If any dream request it would be for injecting gifs and images

#

Oh boy .. think of the games

#

Message sequencing would be nice

#

I worked all day on forking this dudes uno code into a functioning project, and it seems to be much nicer then I found it - at minimal I know I can get a bot/player game

#

Im porting it now about 25% of the way in and its going well so far, but I haven’t got to persistence yet with the deck of cards

#

If this works … multiplayer and all .. it opens the door for a flood of wacky ideas

#

Like the sega Dreamcast the possibility of having a DM and Channel dialog makes for a fun interaction

#

Game of football or baseball?

#

I have a closet of card games I would love to convert

#

Would it be impossible to have a flux.py?

#

I think meshtastic could enhance the game one night warewolf

#

The Classics like ♥️

#

Can ring the 🔔 when 💔

#

Anyway .. uno is a good start I thought

#

Complex enough but not

#

Power out family needs a fix of using the phone

#

Play some card games ..

stone lance
#

I was just using the long messages problem as a jumping off point.

stone lance
#

I'll have a think.

#

If you limit chunking to no more than 10 messages, then you add 3 characters to the first 9 messages and 4 the the 10th

#

No, thats wrong

#

Ok, limit to 9 messages

#

That's still over 900 chars

#

I think I need to have a think about the chunking logic.

stone lance
#

I think it just uses the default in the OS

#

So numbers that might be a phoen number get highlights

stone lance
#

Oh, wow!

#

So it would tell you your cards via DM, but only accept e.g. bets via the public channel

#

Could you could ask it to spawn a new private channel and DM the details to the players?

#

Actually, just having it send out the channel key on request would be handy.

gentle kestrel
#

Yea, see how it plays out anyway

#

Step one get the uno prototype done

#

See how it chooches

gentle kestrel
#

The basic bones seem there now anyway

#

🦴

gentle kestrel
#

I was play testing golf and got 24 as a final score !! I think I had the > backwards and it didn’t give me a new club record .. I was big cheesed 🧀

gentle kestrel
#

I fixed that I hope. and dropped 1.4

#

Hope to have a bot/player working soon if not multiplayer all at once things still moving nicely along

#

Porting these random games .. I had to fork and fix a lot of issues first

#

The original author had a rule in play for “can’t go out on a action card”

#

That’s horrible I always keep my wilds for a final card

#

I checked Google and it didn’t say those rules are official

#

I also got another fun idea brewing send ping 10 and it would ping you every 20secods for the next 10 cycles

#

Likely cap at 50

#

15min or so 3/min

stone lance
#

I have never played uno

#

But multiplayer with a new channel generated for the players does sound like fun

gentle kestrel
#

I just got auto-ping working nicely but I can’t easily push it up right now

gentle kestrel
#

A very cool new reporting module was just enhanced by GitHub @xdep

#

In logs/

#

I also have auto-ping in branch:lab

gentle kestrel
#

The lab branch is currently best place to test new code

#

Also to use reports turn on sys log in meshbot

gentle kestrel
#

📍 gives back whoami

gray igloo
gentle kestrel
#

I just modified the logger to give better results to it

#

Got rid of asci escapes for colors to flat file

#

I am really excited I am about to add new data to it I hope

#

A wall of shame might be in the works

gray igloo
#

Now I have to get this 🤣

#

Tho i have to fix the usb disconnecting thingy

gentle kestrel
gray igloo
#

Mmmmm

gentle kestrel
#

Ok lab branch has some major updates to all stuff and a working shame wall v0.01

#

I haven’t documented anything yet

#

But if you run the report tools in etc they should generate html in www

#

There are two tools one has 5 because it’s HTML5

#

The report tool is not currently cross platform either but should be find in Docker (which could use a w3svc now..)

#

Reminder to enable syslog in .ini

#

And you don’t need to change the log location values it will fail to project file structure

stone lance
#

Is docker workable on a pi3b?

gray igloo
#

Don't see why it wouldn't work

stone lance
#

Fair enough

#

Need to dig out the spare pi zero...

gentle kestrel
#

Docker is I feel more for windows and apple

#

If your on a pi3b just run native or venv

stone lance
#

Heh, venv is "the poor man's docker"

#

Says stack exchange

gentle kestrel
#

It’s the best way!

stone lance
#

Pipx...

gentle kestrel
#

Yes that’s fancy as well

stone lance
#

Ok, one more stoopid question: python on android?

#

Can I run this on a mobile phone attached to a node?

#

Just thinking of Nagu's quest for the lowest power option.

gray igloo
#

Ummmmm

#

🤷‍♀️

stone lance
#

That was my thoughts too

gentle kestrel
#

Yes if meshtastic api loads so will this, you may not get all the includes to load up but they are modular 😉

#

OpenMeteo or whatever has a few interesting packages

#

When I tried to include them first day they crashed haha

stone lance
#

Kivy...

#

And buildozer

#

Hmmm

gentle kestrel
#

I helped them isolate the issue haha all good now

stone lance
#

Just wondering if it's lower power than a pizero

stone lance
gentle kestrel
#

Yes

stone lance
#

I need to get the weather bit working on mine

#

Its still set fort he default location

gentle kestrel
#

Just had an issue submission and pointed out some problems and made it better!

Nice you can see my weather! Haha

stone lance
#

It threw me because it's pretty similar to here...

gentle kestrel
#

I gotta tap out, let me know how testing goes, this new web tool is the bees knees; what else can we cram into it?

The more wacky cool stuff the more ollama can eat

gentle kestrel
#

Had a new game idea come in, it’s in lab branch and it’s not in the bot yet at all but 👀

#

Keeping up with double feature game releases with uno be a fun debut to multiplayer

#

I paused uno work for the excitement of reporting

gentle kestrel
#

Reporting module looks done for now would love any input of ideas for it (still in lab branch)

#

If anyone knows why my text color isn’t inverting on high-contrast I’m stumped for now

stone lance
#

Something something custom.css?

gentle kestrel
#

It’s like it forcefully ignores the color on a child frame

#

Could be a security protection

#

Pop up with white text

stone lance
#

¯_(ツ)_/¯

gentle kestrel
#

Yea I’m not worried I cheated with using background for tables

#

For now

stone lance
#

Is your plan to make it administered via a webpage?

gentle kestrel
#

I just put a feature in for hop_limit for game play

gentle kestrel
#

I would like the ability to add to the ban list for example

#

Delete messsges and post new BBS content

gentle kestrel
#

Lab worth a pull has enhancements to logs you want if using latest code

#

Games now report into the reporting eco system

gentle kestrel
stone lance
#

Any way to get the full nodelist out of the attached node via meshing about?

#

Without resorting to the command line?

gentle kestrel
#

Yea it’s on protobuf, I think the individual who submitted has some dedicated tool to do just that.

#

This now is a debate of how much ..

#

How much data to process

#

Right now I’m just caught up with everything to consume I think

#

New would be total new logs generating

#

Today the bot only collects text messages

#

And it’s cataloging them now best effort I feel?

#

Here is my thoughts on “more data” there are other more powerful tools already on GitHub filling maps and graphs, that said I do have my own ideas of some fun data metric to report on.

I need telemetry packets, so I am at a crossroad

#

Split off functions on a different file/or project?, keep chugging 🚂, see how it turns out, add MQTT

#

I do think I will try a MQTT connector

#

I’m wondering about being a server and a client

#

If I am a server a node could connect to the bot directly which is fun?

#

So one node usb one node MqTT injest

#

The dual interface is there ..

stone lance
#

I think the gathering data is ok if it's for a specific purpose

gentle kestrel
#

I could likely shim the packets off early onRx

stone lance
#

I think a second MQTT node is interesting

#

Virtual MQTT node?

gentle kestrel
#

The upside to adding a MQTT is I think all the tools now support connect

gentle kestrel
stone lance
#

Telemetry would be handy to say "what's the weather been like?"

gentle kestrel
#

Yea it would be fun

stone lance
#

And I still want it to respond to position requests with "who's askin'?"

#

I just want the nodelist to ask it what the percentage of each device type it can see

#

"seen many heltecs?"

gentle kestrel
#

Yea, I do think I can get that far, what’s the cool database to use these days I have been using pickle because of its handy format and people can’t just text hack scores 😉

#

Not sure it’s the best to feed this into

#

Bah.. databases

#

You gotta plan things more

#

Dopewars got a little enhance today you now find cash and drugs

#

Also having a graph on the volume of traffic I send is comical

#

I will share in like a week, mostly I want to see what breaks first

#

I did 250 messages a day the last two days

stone lance
#

I want to do something with the message splitter.

#

Merge some of the shorter ones.

gentle kestrel
#

That is a fun idea

stone lance
#

I accidentally made it send me a string of 10 blank messages when I was trying out a weird pong-by-mesh

#

Cos it splits by new line

gentle kestrel
#

Heh .. I test off defaults now

#

I once made a mess it was good

#

Like 800 messages

stone lance
#

Heh

gentle kestrel
#

Early bot days I was a lot more reckless with packets

stone lance
#

And I want to make the pong Xtimes add distance data if it can.

#

Have you got a Todo list somewhere?

gentle kestrel
#

Just a list on my desk

stone lance
#

Cos you're a f'king machine at the moment

gentle kestrel
#

Haha thanks

#

Distance with pings is cool but getting updated telemetry is hard and hard on mesh

#

I have commented code in the bot to force pull and it’s not nice

stone lance
#

I was re-looking at condensing it into micropython, so it could sit on a pi-pico

stone lance
#

Meshtasticd?

gentle kestrel
#

On a pico?

stone lance
#

No, it would have to communicate by serial port

#

Just raw messages

#

Anything else requires protoboofs, I think

gentle kestrel
#

There is proto there on serial

stone lance
#

I think it passes plain text, too, tho?

gentle kestrel
#

I have this paper hat for pi I want to try and use the lcd for the bot as well

gentle kestrel
stone lance
#

So it would just parse any message incoming and reply by DM using the serial command

#

Just to run a cut down version

gentle kestrel
#

Hem.. yea that would be nice wouldn’t it …

#

Likely figure that part out sooner

#

It will be the next major addin because it will pave the way for access to a terminal and MQTT as well

#

New device types likely .. it may be time for the rewrite I have been dreading but this gives some good reason for it

#

Interfaces need to be in a class

#

I wish I had done it from the start and kick myself when I see the early work

#

I was more excited to press ahead vs stop and plan a class

#

Either way I had no idea it would be this fun to write all this

#

So kinda on track for the 2.0 rewrite.

1.5 will be the reporting and likely the multiplayer games

#

Have stuff resolved by 1.7

#

And by 2.0 have a new core …possibly

#

I was reviewing this new game idea submitted today

#

Cleaned it up a little

#

It needs a storyline

#

A reason to play

#

Running from zombies?

#

"""
Mesh Trekker Game
Game Rules:

  1. Players compete to cover the most distance over time using their Meshtastic devices.
  2. The game tracks players' movements via GPS coordinates sent by their devices.
  3. Total distance traveled is calculated and summed over time for each player.
  4. Leaderboards show top distances for daily, weekly, and all-time periods.
  5. Players can form teams, with team distances being the sum of all team members' distances.
  6. Special achievements are awarded for milestones (e.g., 10km, 50km, 100km total distance).
  7. The game runs continuously, allowing players to participate at their own pace.
  8. Players can use the 'whereami' command to check their current location and update their position in the game.
    """
#

The game starts when someone implements gtnw?

#

Causes a core meltdown?

#

a virus would be needed to “degrade message” to take game play over randomly, or more specifically during windows of coms times?

#

The dialog of the game would be like the in ear assistant in the halo suit

#

Or hl2

#

Something like it would ping you at 2am “listen the reactor is going out of control we need you to make a decision”

#

“We need answers in a few hours”

#

Random window stays open.

#

Either way the whole thing explodes and you gotta .. run

#

I do think impacting all bot actions is funny if you ping it will just keep game play going

stone lance
#

Get the mechanic working first, then decide the story around that

#

How do they travel?

#

How far?

#

Is it a run in the park, a walk in the 'hood, or a drive around 300 square miles?

#

And how fast?

stone lance
#

Daily run, a quick game, a treasure hunt?

gentle kestrel
#

Yes

#

I kinda wanna make it all of those

gentle kestrel
#

I need to get it functioning first

stone lance
#

Is it player-led or bot-led?

#

Do they pick their own activities, or do they get missions?

gentle kestrel
#

Yes

#

I think it should be both

#

WOPR did it all

#

I want my epaper pi hat to be a wopr face now

#

This is going to happen likely

#

I’m gonna use what I got and gtnw

stone lance
#

2-off 4x4 led matrices and a digital equaliser

gentle kestrel
#

It fits the news as well hihi

stone lance
#

Oof

#

It has to be local, I think

#

If you're gonna make it like zombie run

gentle kestrel
#

I kickstarted that project

#

I am very sad I lost all my stuff due to the accident with it all

#

But it was a great idea

#

The voice audio would be good modulated after being passed via Lora I bet

#

I hope we get text to speech before WiFi on apple

#

If I have a spare 20k it’s my request

stone lance
#

Hehe

#

Is tts hard on apple?

gentle kestrel
#

It would be controlled by the phone globally

#

I’m gonna shelf this idea (as I have been) till it’s ready to roll

#

I need to finish uno to test out some ideas

#

I also want to get a RAG on here because .. it’s so valuable

#

I don’t know it’s totally practical yet but I feel like it’s close

#

I tried ollamas models the other day and they failed to make a product work

#

But I think it would be rad to be able to use kwiki files as a basis for truth for a LLM

#

100% off grid meshtastic help bot

#

I don’t know the pi5 can handle it but if it was like under 60 second responses .. it would be awesome

#

PDF of ham rigs you could ask via meshtastic

What’s the setting to put my ic7300 in usb modulation

#

I need answers not this dribble

#

Also @stone lance how would you split this

Periods?

#

And so some code like.

If over 160
Count .
Divide by

Re process and chop it again?

#

If you wiki: ham radio

I feel it’s a good horrible example of how bad it can be

stone lance
stone lance
#

I'm not at my computer, but I was going to try one of those examples

#

So it keeps adding parts back in until it takes it over.

#

And splits by new line, period, and then by word

#

But maybe it needs a custom splitter for certain functions

#

Like status messages

#

But lambdas can't return more than one thing?

gentle kestrel
#

Not by the definition

#

📈

stone lance
#

Huh

#

But...

gentle kestrel
#

I want 300 lines or less haha

#

If it costs me 25 includes I’m still interested

gentle kestrel
#

Wx is three days they make a sentence a day and it’s sometimes verbose

#

Why I cut words down in it

#

Thunderstorm costs

#

T-storm don’t

stone lance
#

⛈️

#

Have you got a list of the bits of information the bot has?

#

It gets passed a lot from the Meshtastic library

#

Hmmm

stone lance
#

Does the bot have access to serial logs?

#

I.e. can it read off what the tx time is for messages?

gentle kestrel
gentle kestrel
stone lance
gentle kestrel
#

If it’s not easily accessed .. not sure what to do about it

#

The big change Benton hinted at may change things gonna need to see

gentle kestrel
#

So yea technically it has access to all

#

My project likely today to find the TX RX packet value in telemetry

#

During this .. it might be realistic to log values of proto to disk

#

More importantly it would be good to stuff them into a SQLite

stone lance
#

I was just thinking of tracking the airtime of requests.

#

See what is heavier on the mesh.

#

And try to build in some kind of rate limiting.

gentle kestrel
#

You have access to the ch_use value today and I could likely quickly get it into the dashboard for a new chart

#

I would like the values Tx RX and error rate on the same chart

#

sittep and lheard print the value so far

gentle kestrel
#

I haven’t seen the mesh get crippled

#

The game hop value for example is 5 by default

#

It’s a limit but it likely won’t ever be hit

#

That alone will cut a lot of traffic out if set to 1,2

#

But to say multiple people will be playing games so much it slows down the mesh .. meh

#

Texting is priority traffic IMO over telemetry

stone lance
#

Using this meshbot is the first time I've ever hit the 10% airtime limit

gentle kestrel
#

Yes I don’t have that at all; I’m using the firmware protection to limit

#

When you hit that limit do you see any feedback from the node?

#

Trap for a log? I may need to read code to find it / hard to have error thrown easily

#

Is that limit seen today? If you run Sitrep is tx value large?

#

I would likely cough compile my own firmware if I was in your region

#

LOG_DEBUG("txGood=%d,txRelay=%d,rxGood=%d,rxBad=%d\n", txGood, txRelay, rxGood, rxBad);

gentle kestrel
#

Fixed a playability bug in

gentle kestrel
#

I'm thinking of using WarGames the movie https://en.wikipedia.org/wiki/WarGames as a basis for a plot line to (this game) acting as the (heads up/in ear) assistant like in half life(portal)/halo. (This game) knows it exists in WOPR for example. And pretend like the chaos of the moment of discovery of the game (this game) global thermal nuclear war, so it's the perspective of (the game) realizing its code is going to eliminate everything. And it panics internally while (processing tic tac toe). Draft plotline anyway.

WarGames is a 1983 American techno-thriller film directed by John Badham, written by Lawrence Lasker and Walter F. Parkes, and starring Matthew Broderick, Dabney Coleman, John Wood and Ally Sheedy. Broderick plays David Lightman, a young computer hacker who unwittingly accesses a United States military supercomputer programmed to simulate, predi...

#

The game would be dormant on a bot and not playable till invoked

#

Once it is the game would never end till you wipe the bot

#

(Delete game files)

stone lance
#

I had an idea about a local area game, called something along the lines of "awaken the mesh". It was basically a treasure hunt, with the meshbot providing the clues at each point.
I initally thought that additional nodes with bluetooth to provide the trigger that a waypoint had been found/activated, and "extend" the mesh to the next waypoint.
However, I subsequently thought maybe it could be team-based, and each team is given a separate PSK channel, with location precision set to full, and the bot would just make sure all of the team were within a circle to trigger the next point?

#

You could use the self-triggered location ping to "activate" the waypoint

#

And then maybe some storyline based challenge and respond

gentle kestrel
#

Yes I remember your idea and those mechanics are likely soon did you see my recent GitHub comment on the new game file?

stone lance
#

not yet - I've spent the day wrangling small children

#

just catching up

gentle kestrel
#

Just more nerd ideas vs summery here

#

I want to finish uno to test multiplayer experience over all before jumping into the next one fully

gentle kestrel
#

Pushed a lot of Python around and a little Java more stability, I started refactoring things around condensing some lines

#

Reticulating splines

#

@median fractal 👋

median fractal
#

Hola guys!

#

Fun the be here

gentle kestrel
#

Hey hey! Yea thanks again for the HTLM builder/reporting really kicked it up a notch!

gray igloo
#

It does look awesome