Feature request: Create an integrated MQTT forwarder to letsmesh.net for integrated observing #11

Closed
opened 2026-10-05 01:52:21 +02:00 by adam · 11 comments
Owner

Create an integrated MQTT forwarder that satisfies the requirements for letsmesh.net observers so companions/repeaters used with this distribution can also feed the analyzer.lestmesh.net

I like the features this distribution has but not at the expense of stopping my observer from feeding letsmesh.net. I would imagine other individuals would also appreciate being able to hit two birds with one hardware stone.

In reference to Issue #31.

Create an integrated MQTT forwarder that satisfies the requirements for letsmesh.net observers so companions/repeaters used with this distribution can also feed the [analyzer.lestmesh.net](https://analyzer.letsmesh.net/packets) I like the features this distribution has but not at the expense of stopping my observer from feeding letsmesh.net. I would imagine other individuals would also appreciate being able to hit two birds with one hardware stone. In reference to Issue #31. <!-- github-sync-id:4010079914 -->
adam closed this issue 2026-10-05 01:52:21 +02:00
Author
Owner

I actually have a branch I'm banging on this with, and do have packets forwarding. I'm still debating on whether to mainline this or not; it's a LOT of code to emulate the way they're expecting packets, and I'm not sure if I want to support it in the codebase (but I'm leaning towards yes). Let me keep hammering on my branch and see if I can get this into a shape that I only cringe a little at when introducing it to the codebase. Will probably have something merged in the next few days, unless something goes sideways. Will keep you in the loop.

I actually have a branch I'm banging on this with, and do have packets forwarding. I'm still debating on whether to mainline this or not; it's a LOT of code to emulate the way they're expecting packets, and I'm not sure if I want to support it in the codebase (but I'm leaning towards yes). Let me keep hammering on my branch and see if I can get this into a shape that I only cringe a *little* at when introducing it to the codebase. Will probably have something merged in the next few days, unless something goes sideways. Will keep you in the loop. <!-- github-comment-id:3985645779 -->
Author
Owner

I'm in no rush, take your time. I perfectly understand this is all hobby stuff for us. I'm glad you're open to the idea and I think it would open up more people to using this if they can convert their observer hardware into doing both things.

I'm in no rush, take your time. I perfectly understand this is all hobby stuff for us. I'm glad you're open to the idea and I think it would open up more people to using this if they can convert their observer hardware into doing both things. <!-- github-comment-id:3986198400 -->
Author
Owner

Got bored during lunch, and it was less code than I thought. Give it a pull and lemme know what you think.

Got bored during lunch, and it was less code than I thought. Give it a pull and lemme know what you think. <!-- github-comment-id:3987382864 -->
Author
Owner

Hot-damn dude, I ran a pull and it's working! I'll leave things running on this to see if it's stable.

Image
Hot-damn dude, I ran a pull and it's working! I'll leave things running on this to see if it's stable. <img width="494" height="381" alt="Image" src="https://github.com/user-attachments/assets/ee7e33ae-163d-4e02-bd8a-fc5dfcbdbced" /> <!-- github-comment-id:3987509521 -->
Author
Owner

Awesome! I haven't let it run for longer than 24 hours which is when the JWT expiration/autorenew should fire, so if there's any spot that might have hiccups, that's a possibility. Just got my node set up to stream as well so I'll keep an eye out.

Awesome! I haven't let it run for longer than 24 hours which is when the JWT expiration/autorenew should fire, so if there's any spot that might have hiccups, that's a possibility. Just got my node set up to stream as well so I'll keep an eye out. <!-- github-comment-id:3987527434 -->
Author
Owner

One thing I've noticed is the Observer Metrics stopped updating when I switched over. I'm guessing their collect is forwarding this data in addition to the actual network packets.

Image
One thing I've noticed is the Observer Metrics stopped updating when I switched over. I'm guessing their collect is forwarding this data in addition to the actual network packets. <img width="1097" height="1087" alt="Image" src="https://github.com/user-attachments/assets/1af0ebce-6b20-40a7-bd14-55f6f0a8f7e0" /> <!-- github-comment-id:3988949812 -->
Author
Owner

Correct; their collector is gonna be grabbing those straight from the radio I assume; ours is a simple mqtt reporting machine.

Correct; their collector is gonna be grabbing those straight from the radio I assume; ours is a simple mqtt reporting machine. <!-- github-comment-id:3992195012 -->
Author
Owner

Well, I stand corrected; that is sent as mqtt traffic. Lemme dig into this deeper.

Well, I stand corrected; that is sent as mqtt traffic. Lemme dig into this deeper. <!-- github-comment-id:3992252633 -->
Author
Owner

Okay, new code pushed up appears to fix the issue; I've got metrics reporting. Sorry about that!

Image
Okay, new code pushed up appears to fix the issue; I've got metrics reporting. Sorry about that! <img width="1651" height="822" alt="Image" src="https://github.com/user-attachments/assets/ed511016-3861-4fc7-beb7-ffc5613c5049" /> <!-- github-comment-id:3992469027 -->
Author
Owner

I ran a pull and I show it now as working thanks!

Image

As a side note before I repulled everything, the local instance wasn't showing new packets come in but it was still correctly feeding letsmesh.net. I'll let things run for a day and check back in to see if I see the same behavior. If I do I'll open a new issue # and try to collect log info.

I ran a pull and I show it now as working thanks! <img width="1574" height="778" alt="Image" src="https://github.com/user-attachments/assets/1da040b4-c744-4696-be1e-486b775301fa" /> As a side note before I repulled everything, the local instance wasn't showing new packets come in but it was still correctly feeding letsmesh.net. I'll let things run for a day and check back in to see if I see the same behavior. If I do I'll open a new issue # and try to collect log info. <!-- github-comment-id:3993462271 -->
Author
Owner

Oh interesting, yeah def shoot me some logs if that happens again. It could have just been a flaky websocket connection, but I would expect that to resolve on refresh (which I assume it didn't). Feeding to letsmesh but not the ui is actually a very odd failure because the core processing logic forks off both the mqtt and websocket logic, so something going scuzzy at the processing level should affect everything.

Would be curious to know if the missing messages reappeared on refresh (websocket transport failed but persisted to db), restart (maybe websocket host failed? But also persisted to db), or not at all (something is hosed at the storage layer).

Oh interesting, yeah def shoot me some logs if that happens again. It could have just been a flaky websocket connection, but I would expect that to resolve on refresh (which I assume it didn't). Feeding to letsmesh but not the ui is actually a very odd failure because the core processing logic forks off both the mqtt and websocket logic, so something going scuzzy at the processing level should affect everything. Would be curious to know if the missing messages reappeared on refresh (websocket transport failed but persisted to db), restart (maybe websocket host failed? But also persisted to db), or not at all (something is hosed at the storage layer). <!-- github-comment-id:3993479767 -->
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: adam/Remote-Terminal-for-MeshCore#11