#Autoresponder
1562 messages · Page 2 of 2 (latest)
If you want to try slap it, change that build device to something else
It won't be happy about that
but might do something
rebooting
aaaaaaaaaaaa
Eol coming
Ugh, I've already pretty much made up my mind that I'm gonna commit to linux when win10 finally goes on me
I think I'm stubborn enough for it at this point
I've been living in Mac OS and Windows almost equally over the past few years
It asked me if I wanted to install a c compiler. I said no, I don't program
So I installed Linux without a compiler
Apparently a bad idea
They don't call it build-essential for nothing
And I was basically stuck.
It didn't say build essential!
It was just a list of features with check boxes!
I know I know 🙃
As much as anything I couldn't justify the cost of another Apple device when my last Macbook gave out
Especially when I was spending so much time in Windows already
Yeah still stuck
hmmm
It has to happen to someone...
Yeah that's definitely still an option
Mac Mini is the best value
Ah right
The laptops are still $$$
mac minis are amazing
M2 Mac Minis are like $700 and very capable
@errant wolf do you want to try pip install esptool?
python -m esptool --baud 115200 write_flash 0x10000 <firmware.bin file>
at least that's what I'm looking at in the batch file right now
not the factory one
installing
huh I didn't need to enter dfu mode
how nice
alright, installing
SEE PLATFORMIO? THIS IS HOW INSTALLING WORKS
I'd say that's convenient, but I don't think anything about this has been super convenient so far
I swear, platformio is amazing for lazy people like me
once it's all setup..
I'm sure it's great when it works
but the total lack of verbose error reporting is killing me here
Yeah I have just no idea where it's going wrong
And fingers crossed it's not one of those "erase the flash" situations
Also a good option
I think the debug output is all tagged with "Autoresponder"
Got an autoresponse in channel.
From memory, those are two separate lists of nodes
yeah they are
So that if you miss the one in channel, you can still get one from DM
Ah right
if someone talks in channel and there's no autoresponse, that's evidence that they've been chatting in dm
or that the packet got lost
hmm
Being able to get it in DM is handy, because it can get a proper ACK that way
yeah
it won't mark you "seen" if it doesn't get the ACK from you
If this was a module that relied on both ends, with a portnum and all, we could have a specialized ack
but that's overly complicated for what this is
by far
We might even be pushing out luck with it as-is
WHOA
It had a sulk and then snuck up on you?
@odd bear once this is written, we'll have to go through it with a fine tooth comb and remove everything that's not critical\
to keep the compiled code as tiny as possible
There's still a bit of stuff that isn't implemented yet
okay, so let's think
I remember you talking about the time limits for different channels and DMs etc
- Configurable cooldowns, with hard minimums
Right now I think it's just hard set at 24 hours
- enable/disable in DM (as well as in channels)
That one's done
- auto-expire after 72 hours and turn off. This is a tiny bit complicated:
There's no auto-expire for the messages, but the module will stop responding in-channel after 72 hours
That's done
In DMs it stays on
Because no risk of flooding
a) set a timer. After 259200 seconds (72h), shut it off. But if there's a reboot - that resets. So an unstable node with frequent crashes would be perma-on
so:
b) also implement a turn off after 72 hours according to the clock
assuming the node has the time
Anything fancier than that you're relying on the node getting time, yeah
Should be possible
- count 259200 secs
- if we have time when enable, remember that time and when 72h has passed disable
whichever comes first
It does mean another protobuf entry
important: if the message changes (user changes outgoing message), reset all timers
That part should be possible
Does it? argh
then leave as is for now
I installed a node today. I'm really proud of it
I can stick it in the module's own separate proto file, which it already has, to keep the strings in
So they don't gum up the main config file
So probably it's not a big deal to add another value in there
@errant wolf Just dropping by with the progress on the rate-limiting stuff you were talking about
meshtastic.build3.exe --set autoresponder.repeat_hours 5
In this build, a bunch of the rate limit values are really short (a few minutes). The repeat_hours setting is used as minutes, instead of hours. Just makes it easier to test the demo.
https://drive.google.com/file/d/1suAFDcI61pH6u6gqMFYo-P9SQNBHePw7/view?usp=sharing
(Or you can build it from the repo)
Dear Sir, my apologies for intruding in Your conversation with nagu, but would Yo be so kind to share brief instruction how to flash this firmware. I understand that it is early stage, but also wish to test.
I flashed downloaded xxxx.bin file, also I tried to clone repository/ built and flashed from VSC, but autoresponse not working yet...Please, provide brief instruction, because i tried to replicate actions/commands/steps You gave to nagu during last 2 days, but no success...
Instructions for using the CLI to flash Meshtastic firmware to an ESP32 chipset device.
follow these instructions to install python
then run that install command
pip3 install --upgrade esptool
then:
python -m esptool --baud 115200 write_flash 0x10000 <firmware.bin file>
I did it already, flashing goes well, 100%. than reboot. the bin file for heltec v3 taken from weblink on google drive privided today by @todd-herbert.
What next to do?
Working! Great, many thanks!
Last question: for how long autoresponder will be active? I have read Your and @todd-herbert discussion regarding timings, but did not understood detais and a whole idea....
Understood that half baked.
No problem.
But in order to activate it again must use CLI again? is there a way to make it remotely, if the node with autoresponder firmware is not accessible/nearby?
not yet
seriously, this is like moving into a building while the foundation is being poured
it's too soon!
sorry, did not get You well, English is not my native, so some expressions not clear...🥹
it's ok
I'm saying this isn't ready for use
play with it if you like, but it's really just an experiment
which MAY be added to firmware in the future
I understand it pretty well.
The matter is that I am a seaman, very often we are away from land for up to 30 days. On board we have rather slow and expensive sattelite internet.
Now my vessel is at US port with good internet on a local sim card, that is why I am trying to read/download/test/learn etc maximum what is possible, in order to be able to test additional(even experimantal) functionality while at sea.
Besides that, when I will go home for vacation I will have only 4-5 months ashore, that is why I am trying to get maximum updates/information/skills etc even being on board. This is my life...
Which repository do I have to clone to PC in order to build and flash autoresponder firmware? The matter is that: 1)I have also some Heltec WSL(without display)
2) In the original(factory firmware) I managed to insert Ukrainian Fonts via VSC. Would like to do same with autoresponder.
these are things @odd bear will have more info on
At the moment, the work-in-progress is in this autoresponder branch:
- https://github.com/todd-herbert/meshtastic-firmware/tree/autoresponder
After you clone the repo, you can change to this branch in vsc by clicking the "master" button in the bottom left.
Some of the features are not complete yet, and some of the time-limits are changed to make testing easier ( in AutoresponderModule.cpp, at the top, and usingMS_IN_MINUTEinstead ofMS_IN_HOUR)
Two other repositories are part of the project, but you do not need to use them to build the firmware, only maybe if you are making extra code changes yourself.
This one is shared for all Meshtastic software. It controls which settings are available. When you change this repo, you also need to run some commands to use the new settings in the firmware and the CLI
This one is the CLI. It has some changes to use the new settings for the autoresponder. For convenience, I have also placed an .exe version of this code with the firmware repo.
If this code is ever included in the official repo, then the mobile apps would include settings for this module, but right now only the CLI has been modified (for testing). If this style of module can't be included, will have to see what other options are possible.
Meshtastic device firmware. Contribute to todd-herbert/meshtastic-firmware development by creating an account on GitHub.
Protobuf definitions for the Meshtastic project. Contribute to todd-herbert/meshtastic-protobufs development by creating an account on GitHub.
The Python CLI and API for talking to Meshtastic devices - GitHub - todd-herbert/meshtastic-python at autoresponder
- In the original(factory firmware) I managed to insert Ukrainian Fonts via VSC. Would like to do same with autoresponder.
I imagine you can still use these changes! What code do use to enable Ukrainian langauge support?
I add -D OLED_UA in firmware>variants> heltec_v3>platformio.ini file
Ah, perfect! I saw there was a request for this feature for a long time, but I didn't realize it was added now.
I managed to clone repository, manahed to flash Heltec V3 and Heltec WSL wit their appropriate firmwares.
Wia CLI I manahed to activate autoresponder in DM, manahed to cedit Hello Word phrase to my own reply phrase, all is working, but unfortunately on both devices autorespond works only 1 time after reboot.
There's definitely a feature to disable the module after some reboots (DM stays active, but not in-channel). For testing, this value should be 10, but there's a bug in this code which I found late last night. The bug is that the number-of-boots doesn't update. On my test device, this allowed infinite reboot. I would expect the same thing on your device, but if it doesn't happen, maybe it helps to erase the flash and re-upload the firmware?
My devices are not doing infinite reboots, all is stable, except autoresponder works 1 single time, and stops working(stops replying).
If I reboot the device manually- it works again and only 1 time.
What is the best way to erase flash?
All mentioned is applicable to DM, in channel is disabled, I do not want ti flood in Long Fast.
In VSC there is an option to erase flash, on the left, near the button to upload.
I'll look into this in a few hours when I get home!
Sir, all is working properly.It was just necessary to wait 2 minutes for "reset DM node list"
Ah right, thanks for the update! A few small fixes to the repo today, about the boot counting mostly. No need to be so formal as "sir" either 😅
Sorry for my being so formal...,but English is not my native language, besides that I am a captain of big merchant vessel, all day long dealing with numerous official emails, replies, letters from/to shipowners, charteters, local agents. Formal style off communication is in use here on board, so, sometimes it influences my style of communication outside my profession😉
I like this
Sorry I got really distracted this weekend. How's it going? Do you need any help?
@odd bear how IS it going? Sorry I've been less available
Been building out the local mesh. Things are finally coming together after months of planning
got a 5 hop intercity system going
I've managed to get 10 of my friends to order nodes. We're 13 nodes up already with 6 more on the way.
I think I made a bad assumption about how some of the timing code works. I'm going to have to change to use a different piece of code to keep track of the different timeouts, but that's not a huge change.
That's where's it's at right now though
Excited for where this is headed
@errant wolf I think most the changes we discussed the other day are done now (not sure what I've forgotten). Ready to build from the usual repo if you feel like testing it out. I'm pretty sure you'll need to grab the latest build of the modified CLI also
alright, we'll talk soon and go over all the features and behaviors, verify that they'
re all implemented
well done man
Hopefully I can remember what I did actually do 😅
glance at the code and it'll all come back to you
I think it's all bundled here from memory:
With official settings: https://drive.google.com/file/d/1yNnzvKeofszBeFgalv-HdgJPBn1YdA6w/view?usp=sharing
Standalone version (doesn't require approval to change protobufs): https://drive.google.com/file/d/1Ogoym-AcG_kDLxmlcgfpNjWs7XWHVoRn/view?usp=sharing
and the android app? Is that in the first link?
ah yep, it is
@odd bear what's protocol stress test?
is that one of yours>
That's been in the CLI for quite a while
I can't even remember what all it it does, tbh
lol
hey bud
just was gonna @ you
and saw you're already here
how do I build firmware in a way where that file can be flashed by the web flasher?
you mean with platformio?
yeah
can't use a .bin with the web flasher, right?
It could be modified to accept bins
seems simpler to just create the zips
the zip needs the bins inside. bleota.bin, littlefs.bin and the update/wipe bins.
If it's just an update, it only needs the app bin
all the stuff can be produced by platformio 🙂
wipe and flash
to prevent quantum weirdness
Yeah, you need the whole enchilada
when you build the firmware, .pio/build/<boardname> will have both the update and the wipe bin, just named wrong.
god I just ate an enchilada sounds... goooood
then download the web ui release zip from meshtastic/web and unzip it in /data, then tell platformio to build the filesystem.
I just need a way to give people firmware files for them to flash alone
and finally the bleota.bin can be obtained from the release zip at meshtastic/firmware-ota
I guess it doesn't have to be via the web flasher
people can cli flash. Do they need python for that?
I bet they do!
yes. python needed for cli
and windows exe cli is no good for flashing
no
how do I wipe before flashing with the cli? hmmm
@sudden olive can the c# cli flash custom bins? or will it pull exclusively from the API?
It just shells out to python
okay, I'll make users install python for now. It's not that hard
Thanks, writing that down
esptool needs python
that command line is included in device-install.bat
so you'll find all the other lines oyu need in there as well.
Is the web flasher interested in the scripts / spooky config-dist.yaml file?
flashing is done with esptool. only reasion it needs python is esptool 🙂
the web flasher ignores everything it doesn't transmit to the device.
so the yaml and bat/sh is just ignored.
So just as long as the binary filenames match the zip filename?
(and it has all the extras)
I'm in over my head with this
What's the deal with the littlefs bin?
wait, lemme fetch the crayons ...
littlefs.bin is only written on wipe. it contains the webui
oof
😦
@versed jay @sudden olive So as an update, we've got an MVP ready, sans beta testing, along with a version of the android app that still needs a bit of tweaking before beta
So if you were preparing a custom zip for the webflasher, it'd be safe to use the existing littlefs and bleota files?
yes.
Okay thanks that demystifies it a lil
I did have a go at getting it to work once but didn't have any luck
Incidentally @versed jay ...
What I did here #atak message
sparked an idea
What if we resurrect the idea of PR artifacts but they're just links to the individual targets' zips
I may be able to do some query string magic in the web flasher to pre-populate everything based on a link
don't do it in the web flasher. extend the api to dump a list of single target zips in addition to the omnibus zip.
so you can calculate once and cache the result.
We're going to be up against cors on this one as well
Stop gap could be to provide the download link, and let folks download the target zip and instruct them to upload
i saw the trunk action provides a nicely formatted web result - maybe spy how they do it and post a web link for each PR where to get the zi files?
Hey I was goofin with autoresponder ideas to go so far as a basic BBS here is my stuff all work in progress as a few ideas I have get ironed out
Just a basic ping bot nothing special
we really need to move to beta
Fun stuff, it will be cool to see this move.
Hi. I was looking for a way to disclose that a node is just infrastructure and that you can't reach anyone there. Here in northern Germany, we first thought about a special name for the node so that you can see that you can't reach anyone there. roha-git-hub came up with the idea of a responder. And Caveman99 then drew my attention to the autoresponder here. That would be a great extension if you write to a router and get a DM reply like: "This is an automatic reply: I'm just a router and I'm part of the infrastructure to contact my owner. DM to XXXX"
That would be really helpful if you really need the network because it's totally down so that you always know where to reach who.
I'm excited to see how the project develops here. Thank you for your work.
@odd bear any thoughts?
I just added a new example that does a delayed automatic response to a specific text message that's pretty full featured
Nice!
I was also wondering if this might even be a job for the repeater role?
(I'm not super familiar with it)
It's a real-world use case that doesn't necessarily serve the normal public usage, but I felt like it was a better example than the overly simply ReplyModule
So it's included in the source but excluded by a macro
Oh! Is it intended for parachute operations or something?
@deep hinge Are you comfortable writing code, or are you ideally looking for something a bit more plug-and-play?
We did work on a module that does something similar to what you're describing here, and I believe Nagu has it deployed on their local mesh
I'm sorry, I'm totally stupid when it comes to programming. 🙈 I can read all of this but I don't understand anything. 🤣
Ah no problem!
One thing that does stand out as possibly the easiest option is the repeater role. (Although I'm not 100% what the consequence of this is)
I have not deployed it
Oh right!
we were going to do beta testing but we kinda lost the thread
iirc, a tiny bit of work was necessary on the android app, and besides that it was MVP
Honestly, I think the mood is just a tactful "maybe this isn't suited for the main release"
I still dissagree!
I think it has lotsa potential
but you're the dev
I'm just an ideas... person
Hey I'm not so focused on the big picture of whether it should be let loose on the public or not
Was just happy to work on it, to see where it goes
Let's finish it up and do beta, and then see what happens
worst case we do macro like @sudden olive
The only issue there is that one version of the module relied on changes to the protobufs, and the app / cli
Okay, I'll just wait and see what you produce and then I'll be happy about it. You have my support. 😅
There's totally code around already, but it does mean a bit of manual work to get it set up.
I mean, what's the worst that could happen
we submit it for consideration and @sudden olive sends a hit squad
BAM to the back of the head
no more pull requests from you
@deep hinge Are your router nodes entirely for infrastructure? Or do they occasionally have users attached who may want to be reachable?
is there a git tree of this somewhere?
Would that be a custom module that you can install in addition to the firmware, like a mod?
I'm not sure exactly what state we left it in, but the mainstream one was here: https://github.com/todd-herbert/meshtastic-firmware/tree/autoresponder
and it's kickass. well thought through
209 commits behind meshtastic/firmware:master 😎
It's Nagu's project, but I was acting as code monkey 🫡
Both. My Router is only Infrastructure but Others Here in Hannover are routerclients sometimes
Yeah it's stale as-heck now
we took a month or two off
@versed jay What would the consequences be with moving those routers to repeaters?
lol
Never know when the inner core cabal is going to strike 😉
suggestion: can you create a pull requests against MY fork of the firmware? this way i can see a clean diff and we won't trigger CI runs. https://github.com/caveman99/firmware
I hate to think how moth-eaten it is by now, but I'll give it a go
they're harder to maintain. pure infrastucture that's not running S&F shjould be repeater IMHO. - also they won't show up in the nodelists
They would then no longer be visible in the list or on the map. But that is important to us so that we can see how well we can cover them and where there are still gaps that can be filled. And in the tracer route it then becomes more of a guessing game.
Oh right, I understand!
telemetry too
when the mesh is established you can turn them to repeater, and it just works 🙂
I never got the point of repeater. Why not router?
(As a slightly less intrusive option, I also worked a version which doesn't use protobufs for config / storage)
I really think it has potential for wwide release
we've put in so many good safeguards
It's certainly packed with plenty of that safeguard code
Struggle to remember exactly what was going on, to be honest. It's not the most transparent code to read..
That would be one way, yes. But then everyone would have to do it that way. And you can't reach everyone and when someone new comes along they think, oh shit, we're not well covered. And when you get an automatic response like that you think, "yep, good idea, I'll do it that way too."
i had a quick browse and it's pretty straightforward, the real magic only happens in the module files. the rest is standard plumbing.
what's the idea behind the whitelist?
Hey Nagu was the big architect here, but I think the idea was to potentially respond only to certain nodes
Did i missed the answer? 🙈
so if i don't populate that it will respond to any node?
one great usecase is leaving an autoresponder with info like "evacuated from home, on way to mom's"
there's no such thinkg as plugins - either its in the firmware or it isnt.
Good Point.
does it remember who it already rplied to and doesn't reply again?
yes with time limits.
@deep hinge Although, if you're got someone around your region who's good with Arduino stuff, there's a "serial module" already in the firmware, and an Arduino library (I think)
That's one easy point-of-access for making your nodes do custom stuff too
it's been a bit so I don't remember numbers, but there's a minimum cooldown built in so it doesn't respond to multiple people one after the other, and a second cooldown for how often it responds to people in channel, and a third (I think) for responding in DM. The first one is not configurable. The other two are via a single setting I believe. There are mandatory minimums to prevent spamming
(One idea was to have it as something you can configure in your app settings. That's the meaning of a module in this sense)
the code looks clean and straightforward, but i can also see how including this in the main firmware may lead to more congestion, no matter how many safeguards you put in place .
for DM, if it sees an ACK it'll start a longer cooldown - otherwise it'll try again after the first cooldown ends if it gets another response
the mandatory minimums are EXTREMELY strict
again, numbers escape me at the moment, but 90% of the module is preventing nuisance and abuse
Even if it may not help me in the end to solve my problem, I think it's great that I've apparently restarted something that had fallen asleep 🙂
i was thinking - there's an example from @ruby tree that implemented an autoresponder with the python lib. maybe this is a better approach than having it in the firmware
that would require extra hardware. narrows use case significantly
I mean, it's not impossible, but I really think this could have a lot of utility
(I'm neither in nor out on the whole thing. Happy to help realize the concept, but I'm realistic that there are arguments for and against it)
fully aware of that, but on the other hand it would be way more flexible than what can fit into the firmware. Think a full blown Outlook autoresponder ... 🙂
raspberry pi based node with the autoresponder as an addon? 😉
it's not terribly flexible. Check out the settings - there are only a few
I think there's a lot of potential for a plugin architecture in future
Yep yep in the App. 🙈 For stupid Plug and Play Users Like me. I often have good ideas, but the implementation often falls short. 😅
(I think the comment was "imagine what tricky things you can achieve with python scripting!")
ah right
there's no such thing as an actualy loadable module (dll/so) in embedded systems. all we can try to do is offer customized builds with parts excluded or included.
sure, but a scripting language... though that'd never fit
right
hummmmm
macros is probably the only option for "plugins"
Just throwing ideas out there: what about a prebuilt autoresponder PCB
Something plug and play with the serial module?
that would totally be doable and also a good use case for the protobuf mode.
that would require @odd bear's proposed GUI compiler
I really like the idea of having a GUI compiler that is macro aware
There's a second half of that: settings in apps. I came up with the idea of a simple textbox in a "custom" module, into which json would be copy pasted with settings
generated by a simple configuration webapp
user could introduce any settings they needed for custom macros
Just to mention it too: there's another little thing that I spun off from this autoresponder dev stuff to potentially deal with the need to interact with custom code via the app:
describe it?
Remember that autoresponder branch we made where you control it using text commands to a special channel?
right!
yeah, that's another method
though would require a long series of CLI commands
I just tidied that up a bit as a base class, which might be handy for people wanting to write custom code
I think I got a screenshot of the demo implementation somewhere, one second
One potential avenue is to xmodem transfer a file to the filesystem that the module can read.
Yes, via the meshtastic js potentially
This would be done via the app? a JSON file?
App developers would have to implement an upload file admin interface
But totally doable
I like the custom json textbox because it will allow a simple change to the apps to support any macro
I could totally imagine it being done from a web interface too
Especially for code which is excluded normally
and cli
Json will need to be kept very small
I suppose it could be a compressed format of some kind
I would almost argue for protobufs, but their strength is really in the bindings more than the wire size for this use case.
If they aren't in the main-line protobufs, they will loose this benefit
Although I suppose we could have them in the main protobufs if it's an "official add on"
They would be completely ignored from the normal firmware
If we come up with a really air-tight scheme for this, it could be a really good template for integrations
okay. I don't understand a word anymore. and it's not because of the language barrier. XD but I see something is happening. and maybe I can get some use out of it later 🙂
a lot of this is over my head too
A good answer to folks wanting to bolt on things that don't really belong in the main-line firmware but don't warrant a hard fork
what about something like https://github.com/jingoro2112/wrench ?
unrelated: my four 4631s are at 72 hours runtime with BLE off
When I was throwing that DIYModule base class together, for saving custom data to flash I just directly serialized a struct and then stuck a hash on the end
Interesting
I was actually noodling the idea of a WASM based platformio build. IDK if it's even possible, but getting the entire toolchain running in the browser would be gamechanger
I know several of those words!
"noodling"
that's like a way to fish, right?
juvenile giggle - he said moon!
catfish noodling. It's a thing.
Yeah, I would be terrified
We have alligator snapping turtles that are hundreds of pounds here in the same waters as huge catfish
what I just said is hilarious if you know where I live
awww so cute!
Just another thought that popped up:
I wonder if some sort of hardware flow-control for the serial module could open any doors
softserial and hardware serial on embedded doesnt support hardware flow control. strictly 3 wire.
It's probably not exactly the right term I'm using here
But if there were two GPIOs available for "hey, co-processor, wake up, I have a job for you"
and "alright, I'm ready, what do you want?"
Sort of like we do with GPS
(sort of)
the arduino should wake up the node or the node the arduino??
Yeah sorry I'm not being as clear as I could be:
If you had some sort of prebuilt PCB for running custom code, which interfaced via the Serial module, you could have the node wake the Arduino when it has data to process, and have the Arduino report when it's finished waking and ready for the data
Not really relevant for nodes with fixed power, but in a solar-powered situation, it might make the idea of extra hardware more palatable
that sreally easy to accomplish.
arduinos can go to deep sleep like an ESP32 does. and you can wake it back up with the reset pin.
Say there is a small, but definite demand for some sort of "MOTD" module, for people running key routers or something
You could definitely offer something turnkey-ish
Stick a 1602 LCD on there and a few buttons, let operators set the config / change the message
You could maybe even slap a wisblock connector on it if that's possible and doesn't violate some IP law
rak sells those connectors
Not sure it's the way to go, just seems "tidy", as a hypothetical idea
and they seem to be going hard for meshtastic support
Then again, maybe the linux-native stuff would be a good target too
No need for any extra hardware there
they sell these connectors, but they're REALLY hard to solder. And manufacturing for you will never come up with the numbers you need.
That's fair, and I guess the idea of making the board files available kind of defeats the purpose
more precisely https://github.com/pdxlocations/Meshtastic-Python-Examples/blob/main/autoresponder.py
that will totally work on a pi
I've never played with it as a platform; can one pi run the portduino stuff and also interface with itself via the python?
yes, though you need to use the IP hookup to 127.0.0.1. Serial won't work.
Still, that's a great way to go with all of this
Maybe the best one so far imo (assuming it's not a solar node)
doing it in python also means the companion arduino could run the same code via micropython.
Okay that's one step too far for my brain to process, but I'll take your word for it
imagine (almost) the same python code either running on the pi or from an arduino with micropython over the serial module.
depending on hardware set up and use case.
oh I see!
I expanded on the pdx autoresponder a little, just goofin but it works well so far. [https://github.com/SpudGunMan/meshing-around]
Nice! I can totally see something like that coming in handy
I've probably skipped something important, it was a long discussion. Anyway, users want to do different things with meshtastic. Some want to send messages, others, like me, are more interested in measurements, range testing and exploring possibiliteis.
Testing is hard as well as getting easy to use data. Data is there, are there are possibilities to collect it but it is not always well documented or easy. Some things are obfuscated or encoded into message types. It my be easy to view from a certain perspective, eg via an app, pr web pages but it is not always possible localli or intuitively.
An interstest responder app or module could be for example a reply to a query message or range or traceroute, where the reply explicitly says, "I recieved message 'x' from 'node x' and the RSSI was x.
From node x(i,j), RSSI x, time (from my node) was x.
etc...
That's an interesting idea! I'm not sure what goes on behind the scenes with traceroute stuff, but I wonder if you could have some sort of "rich traceroute". Maybe on the return trip, nodes which were identified as "on route" on the way out could add signal strength info to the packet on the way back in?
Might deserve its own moonshot thread? Not sure what barriers there would be in the way to implementing something like that.
There is a ticket on the 3.0 project board on GitHub for two-way traceroutes including SNR per link.
It could be implemented now, but you would get strange results if nodes don’t update their firmware.
Hey it sounds like the idea is well spoken-for already at this point
Yeah, I think it’s very useful too.
I was thinking about this a lot while trying to improve the data. From this
There is nothing else in the current packet data that I am aware of we can use today to get values from hops which are not direct
As just mentioned by anon.. it would likely need to be server connected
You would need to collect the rssi and snr from each hop - this data over the air would be costly
Adding something like a lastHop to the packet with the nodeID might be valuable to the ecosystem on a whole - it crosses into neighborhood data which is my next personal tinker One feature I want to replicate is the classic “my heard” from TNC’s in ham
The neighbor function is as good as the data gets today
Also don’t forget the #network-mgmt-client may give you some of what your looking for @jolly goblet
This is almost exactly what I was thinking about... just data of the last hop... for a certain message, where data is just needs to be collected from one place. There is range test + the csv, but here, the data is readable from ones' phone.
Yea if site survey like data isn’t needed I find myself just wondering how’s it work from “right here”
If i get no response from the responder, I just look around for stuff up high I can sneak a node into
Being able to enable and disable the range test is also problematic when you can’t reach the other node on admin
I’m getting out of control
Up next:
I have a Python script running on a raspi doing something like this!!
Very cool!
I like the discrete command words
This is cool as hell!!!
Great job!
I was playing with a similar thing, it made me think nodes could advertise services. But it would need general buy-in from clients to surface this metadata
xyzzy
Indeed, the biggest hurdle is the limited space in mesh, a fair bit of the prompt are very verbose
A LARGE CLOUD OF GREEN SMOKE APPEARS IN FRONT OF YOU. IT CLEARS AWAY TO REVEAL A TALL WIZARD, CLOTHED IN GREY. HE FIXES YOU WITH A STEELY GLARE AND DECLARES, "THIS ADVENTURE HAS LASTED TOO LONG." WITH THAT
HE MAKES A SINGLE PASS OVER YOU WITH HIS HANDS, AND EVERYTHING AROUND YOU FADES AWAY INTO A GREY NOTHINGNESS.
I would love Zorktastic
Oh well named tony
Yea the name alone might be worth demo code even if not practical
It'd be fun to see something inspired by this, but also using GPS or something!
Need some one with game dev type interests behind it, but I feel like it could be fun with a whole lot of people at some big event (Burning Man?) on a non-default preset and channel
Pokémesh
Or Pokemash, maybe: #contributor-lounge message
This is intresting
I think using chatgpt you can get it to generate like a really long storyline
and then have like a text based adventure
and then integrate some custom features
The long story needs to be at like 180 character chunks
so I have been goofing with the same ways BPQ handles it and just telnetting to fronz running zork for example and there is a lot of text
Chunking the text works fine with 4-6 messages but it’s a lot of airtime and over a hop it’s toast normally you won’t get one of the chunks
Open Mailbox
Alright ... what do you thnk of this? https://chatgpt.com/g/g-WqLmF9ujs-mesht
Nice, it’s functional and works well think all the text will be an issue?
I ran out of free credits but found a key!
Think it’s ready for zorctastic
Good poiint. Let me fix that
fixed
try again
all text will be under 230 characters
I’m still locked out for credits. Was the idea to API in for connectivity.
You decide to examine the lantern. The lantern is old and rusty, but it appears to be functional. There's a small amount of oil left in its reservoir, and you find a box of matches nearby.
Do you want to:
Light the lantern
Leave the lantern and explore the left tunnel
Return to the cave entrance
Type the number of your choice or describe your action in detail.
Do you have the script output?
The option would need trimmed (like the type number for option could be cut)
Yeah... You need other nodes to play... What kind of services?
Weather, news/alerts (based on location), chess/games facilitator, knowledge bot, etc