GithubHelp home page GithubHelp logo

liamcottle / meshtastic-map Goto Github PK

View Code? Open in Web Editor NEW
48.0 48.0 11.0 4.78 MB

A map of all Meshtastic nodes heard via MQTT.

Home Page: https://meshtastic.liamcottle.net

License: MIT License

JavaScript 39.64% HTML 59.38% CSS 0.89% Shell 0.09%
lora map mesh meshtastic mqtt

meshtastic-map's People

Contributors

billybag2 avatar fifieldt avatar gmart avatar liamcottle avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

meshtastic-map's Issues

Route trace not being decoded correctly.

The route trace uses the packets to and from data in the header plus the payload that contains additional participants.
So a packet can be sent From: A To: Z asking for a route.
{ From:A To:Z }

Seen by B and "repeated".
{ From:A To:Z Route: [B] }

Seen by C and repeated.
{ From:A To:Z Route: [B,C] }

Seen by Z and so Z replies.
{ From:Z To:A Route: [B,C] }

Repeated without change. across the network.
{ From:Z To:A Route: [B,C] }

Seen by A.
So the route is an outgoing route. But this is a reply so the route starts with the "To" recipient, then the payload and ended at the from recipient.
(To)A [ B , C ] (From) Z
A->B->C->Z
This is called "2 Hops"
A -hop-> B -hop-> C -Rx-> z
So a 2 hop route has a payload of two nodes and a total of four participants in the route. (Plus a gateway node, which is typically just an observer.)
Very very confusing!

I think you are completely missing the "to" field. This is usually to "all", a special node ID.

[Feature Request]: Ability to reset Neighbor Overlay

I had the Neighbor Info Module enabled on a node I kept in my car. Nodes found while driving are not true direct neighbors when I get home. Can we have the ability to reset or have the Neighbor Info expire?

Neighbors Displaying

Two new nodes: Heltec-V3 and WisBlock both with latest FW.

Heltec is Client with Neighbors turned On, WisBlock is Router_Client.

Heltec displays on Map but no Neighbors are showing up that saw Heltec or that Heltec saw.

Heltec connected to MQTT server, WisBlock is not.

Assumed Heltec would find WisBlock even with Neighbors off since both on FW 2.3+

No change even with WisBlock Neighbors On.

Great Map, BTW - good job!

UX - Seen/Heard Color Legend (like MQTT Status Legend)

Can we get a legend in bottom left of the screen next to the MQTT status legend to describe the colours of the lines?

In example provided below, You can work out Red with Arrow pointing in is "We Heard", but what is the Green Line with no arrows?

image
image

UX - Splt stacked nodes

When nodes are stacked on each other, as noted it's hard to click in to see a node beneath to see details, could calculate if they are within 10meters of each other for example?

Can tell there is more then one node here due to having "Heard" enabled on another node and you still have a blue line next to it.

image

An another mapping/visual tool I use - https://lukeprior.github.io/nbn-upgrade-map/?suburb=mount-barker&state=SA&commit=main

When there's more then one location there it displays a number on the dot, and when click spreads them out and can click on the individual marker for details.
image
image

Docker/K8s implementation

Hey @liamcottle, first I wanted to say, awesome project! Was able to get it and running very quickly.

I'm working on a Docker compose implantation right now and had a few quick questions:

  1. Do mqtt.js and index.js need to interact with each other in any way? or is it all just mqtt.js writing to DB, and index.js displaying results? (trying to determine if they can be run as separate containers, and if so, any ports that need to be opened between them)

  2. Is there any interest in a PR to this repo for a Docker image built off of GitHub Actions and associated docs/docker-compose.yml?

  3. Same as 2, but a Kubernetes Helm chart

I understand the implications of merging 2 and 3 into this repo; it becomes 'official supported'. If thats something you're not ready to take on (I'm happy to help on an as-available), totally understand.

Either way, thanks for the awesome contribution to the Meshtastic ecosystem!

UX - Collapse Neighbour Lines when to/from same destination

Having duplicate neighbor lines add's complexity to the view.
Can these be collapsed where the to/from are from the same nodes.

Example

image
image

Perhaps light blue where heard is only seen one way, dark blue where it's heard both ways, and the hover box shows both info boxes as one box showing both paths?

Alternatively when clicking on the line it splits the lines out into the green/red seen/heard colors? or green/red arrows on the end or similiar?

Cleanup sidebar

Hi,
Ideas for the sidebar. I think it's getting really long, even on a 1440p screen.
Here is what I suggest:
The separator could be a line, comma, table, etc.

  • Put Long and short name into one row, with some sort of separator.
  • Put Role and firmware into one row
  • Put Region and frequency into one row
  • Put Modem Preset and Has Default into one row
  • Put Lat and Long into one row
  • Maybe? Battery level and volt into one row?
  • ID and Hex ID into one row
  • Neighbors updated and Position updated into one row.

Thanks

Waypoint longitude shown wrong

Hello
Just a small issue in the pop-up of a waypoint: It seams that 360 is added to it. Position on the map is fine.

image

I grabbed the MQTT packet for that one:
{"channel":0,"from":3663091580,"hops_away":0,"id":4292587810,"payload":{"description":"Great viewpoint","expire":2147483647,"id":4292587809,"latitude_i":468602396,"locked_to":0,"longitude_i":75258635,"name":"Chutzen"},"sender":"!da56577c","timestamp":1711963987,"to":4294967295,"type":"position"}

Thanks for the great map ! I did not understand Neighbours yet.

FR -- "claiming" a node and adding details

+1 for your "claim" feature in the readme

After claiming a node, an easy way to add more detail is by uploading the YAML config file, gotten via meshtastic --export-config.
This would parse the settings and provide details that can't be gotten via mesh transport, such as module configs.

FR - display option for node Role

Greetings from an area with a growing mesh who are big fans of your work.

We currently have people cycling and hiking around the city to try and make their first connection to a node, and some dedicated people looking at planning links between well-positioned solar power nodes.

One feature that would be helpful to both of these types of users is a display option that limits the nodes displayed by node Role. As the number of nodes grow, we think having the option to choose to display, for example, just ROUTER / ROUTER_CLIENT and exclude CLIENT will give us a nice clean map so we can help the people who want to work with the more 'fixed'/'permanent' nodes.

Initial impressions was that this might best be done in the layers widget.

Open to any and all discussion :)

Remember status of Neighbors checkbox

When refreshing the page, the neighbors checkbox is always cleared for me. Not sure if it's a browser issue.

Also, if I select a node then select view neighbors, either "We heard" or "Heard us", then click the X to close that overlay, the neighbors are always unselected. The neighbors selection should go back to what was selected before.

Remove waypoint

Hello Liam and readers
I created a waypoint about 4 weeks ago. It is still visible on the (your) map. But in Android I could not set an expiration date. Since then I wiped the data of the Meshtastic app and now I am not able to edit or delete this waypoint anymore. (ID 4292587809) Also I think there is no persistence MQTT entry for that. So now it only exists in your database or am I wrong ? Any idea how I could edit or delete this waypoint now ?
I am grateful for tips.

Remember selection of map options

Feature request:
Remember options like Neighbors shown, Waypoints, etc. on the map.
Currently those options are not persisted over website refreshes.

Voltage typically 3.2-4.2v

The voltage graph min could be set to minimum of 3.2v and all measurements. The maximum to the maximum of 4.2 volts and all measurements. The voltage and battery % would look then look similar. (I don't think they follow each other in all cases and the relationship may not be linear)

At the time of writing min v looked to be 0v and the voltage graph was difficult to see as the line was only at the top.

Remove extra image requests

The site currently requests about 2 dozen device images that don't exist each time the site loads. There could be a check to make sure the image exists before trying to load the image.
Or we can add a placeholder image for each device type.
I guess there already is one, but not sure how that is generated.

Node TTL is way too long

Why does it store node data so long?

Do you have an opt out process?

Really is limited value to anything more than a day old.

FR - Node tracking

First of all, thank you for your great work. I'm a thankful every day user of the map.

Back in the day's I've looked at APRS. Some of the bigger APRS sites (https://aprs.fi) do offer tracking of a station automatically. This way you can backtrack where the node has been. It will plot its route by dots and colored lines.

Perhaps this could be a useful option to have on your map?

I do have some requests:

  1. For privacy reasons only look back for 1, 2 or 3 hours?
  2. Add info to the plotted dots who heard that node on that location. It will help to identify coverage issues.

Can't click on Show Full Details sometimes

Bug:

  1. Search for a node and select it
  2. It zooms into that node
  3. I'm unable to click on "Show Full Details"

If I click elsewhere, then click back on the node, I can click the button.

I tried on Edge and Chrome, it might work elsewhere?

Much more route trace info is available passively.

If a node participates in a trace route then this is provide trace route info for that node.This also provides an incoming route, not just an outgoing one.

Also the route discovery packets contain passive route information. (Ignoring the destination)

So a routing layer on the map could be added to show incoming and outgoing routes to a selected node. Including routes the node participated in and route discovery that the node participated in, even if the route was not discovered.

Or a new layer could just display all hops deduced from any route data as a line.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.