Where is the world map?

The Configuring MQTT docs mention:

The simplest option is to connect your mesh to the official Meshtastic MQTT broker. This makes your devices appear on the world map, and provides a copy of your mesh traffic, translated into JSON.

Where is this world map? I found https://map.meshtastic.org/ from a search engine - is this the one being referred to? If so, I assume this is linked to from the site somewhere and I’ve glossed over it (where?).

1 Like

Good question. I was also wondering. The link to https://map.meshtastic.org/ does not work at the moment. DNS record does not exist.

I believe @sachaw took it down as it needs to be updated to be compatible with 2.0+.

For now, a similar experience can be had via the webUI, but only for a selected channel, all you need is an MQTT connected node: https://client.meshtastic.org/
I will be writing a new version in the future with expanded functionality, but will likely be part of a larger overhaul of MQTT & external routing

3 Likes

I want to do this for my own mesh, so figured a good place to start would be grabbing positions by subscribing an MQTT client to mqtt.meshtastic.org. It’s only been running a few minutes, but I’ve already seen 33 nodes show up:

Nothing much to say about that other than it’s very cool!

1 Like

Until the official one is back up and running, I put a version of the map up on https://map.technicallyrural.com/ so it’s publicly available. It’s… minimalist, but :person_shrugging:. Might add some more to it over time.

It currently shows all the 29 publicly broadcast GPS coordinates I’ve encountered that are not (0, 0).

2 Likes

Thank you for this! I was looking for an easy way to check in on my MQTT connected nodes.

If you can get the battery percentave value in there, that would be all I would need.

Just a disclaimer, this map should not be relied on (at least in the short term).

To peel back the curtain so the limitations are clear: I have an MQTT subscriber that listens intermittently (still disconnects every now and then for a variety of reasons), and I re-subscribe it when I happen to notice. It records the user id, latitude and longitude, and timestamp from any PositionApp protobuf messages that show up on msh/2/c/LongFast/#.

Every so often I go and (Edit: automated) Every 5 minutes a program will go and query the DB for the latest position for each user ID and replace the contents of the static HTML file that’s being served. I exclude any nodes that report being at (0, 0) because that’s boring to include on a map. You can view the page source and see everything in all it’s incredible glory (there’s not much).

I’ll automate the update from the DB so I don’t have to be in the loop, without which battery info wouldn’t be helpful because it’d always be out of date, and see about adding the battery info.

I don’t necessarily want to make this a real thing though as I was more thinking of it as a placeholder until the official one resurfaces. That said, as long as it keeps being fun/aligning with what I want personally I’m game to keep mucking with it. Location history is a big one that I’d love to tackle, nodes like 2223539108 broadcast position super frequently though I’ll give a think for what would actually make sense there.

I’ve changed it so that the map is updated every 5 minutes. The map is still static data, but there don’t appear to be so many nodes that that really matters and it seems kinda nice to expose the data in case anyone else wants to use it for stuff.

1 Like

I’ve added the battery percentage and voltage to the map (if present). I don’t have anything reporting currently, so please let me know if it’s showing up for you. I just started collecting the telemetry now so it’ll take a bit to populate. I’m seeing some on there though:

image

1 Like

Works great for me! I own the nodes in Los Angeles.

1 Like

The card looks great!

I have two questions: Is it possible to enter yourself manually on the map? Did I understand correctly that you have to connect to the MQTT broker in order to appear on the map?

Is there an API or something similar to retrieve the data from the map (for example, a list of nodes in JSON)?

Is it possible to enter yourself manually on the map?

On the map I put up, no, there is no way to manually enter yourself on the map.

Did I understand correctly that you have to connect to the MQTT broker in order to appear on the map?

Yes-ish. That and the MQTT client that harvests all the locations also has to be connected and running. I do a terrible job of ensuring it is because I didn’t really intend the map to be a real thing so much as a stop gap. It looks like there’s a new kind of telemetry coming in (power metrics?) that I’m not handling so I’ll have to give it a little love to get it running again.

Is there an API or something similar to retrieve the data from the map (for example, a list of nodes in JSON)?

Currently the only way the data is exposed is via the DOM. If you inspect the page source or e.g. if you open the console and look at users you can see everything laid bare before you. If you have something in mind for consuming the positions (or are actually using the map) I can certainly make them available in a different format.

1 Like

Hi there, I was wondering if you are currently planning to put your map back online, or has life got in the way?

I think it should still be accessible at https://map.technicallyrural.com/. Are you unable to connect? I don’t have anything fancy blocking traffic, so not sure what the issue might be. Please let me know what you see if that link doesn’t show something like:

As the meshtastic map doesn’t seem to be coming back any time soon maybe I’ll try and do a better job of keeping it up to date. Just because I’m curious, are you wanting to use it for anything or just curious what’s out there?

Merely curious as I’ve just set up an MQTT connected node in the last couple of days and it doesn’t seem to be showing on the map, so I wondered if it was still actively collecting data.

Am I right in saying I just have to be connected to the default MQTT server and sending position info in order for it to appear?

Yes and the MQTT subscriber has to be working and connected on my end. I just gave it a kick, I’ll try and add something that shows “last message date” or similar so people can see if it’s out of date.

Last I looked the position info also broadcasts at a specific interval, so depending when it connects there may be significant latency if for some reason the map misses the initial message. Theoretically if everything worked perfectly it’d be < 5 minutes, but I’m under the impression that rarely happens.

1 Like

Thanks for looking into this. I’ve tried enabling uplink/downlink briefly on the default LongFast channel as an experiment and I am just getting a strange collection of messages repeating every few minutes so I wouldn’t be surprised if the default MQTT broker is a bit angry at the moment too.

Hey, I’m working on a similar project, but for a private MQTT network, and I have a few questions. Do you publish your codebase somewhere like GitHub, and can I contribute to the development? Have you considered distinguishing on the map between active nodes and those that have been inactive for a longer period? Why isn’t the User field the same as the nodeID?

Now, a bit about my solution:
I have a node connected at home via WiFi to a private MQTT. Using the CLI, I retrieve data from the node with meshtastic --host 10.0.0.2 --info. The result from --info is inconvenient as it’s not entirely valid JSON, but I managed to extract a fragment starting from “Nodes in mesh:” where there’s valid JSON with data from other nodes. This includes nodeID, longName, shortName, macaddr, hwModel, position, time, lastHeard, batteryLevel, voltage, channelUtilization, airUtilTx, among others. I fetch data from the node every 15 minutes, correct it into valid JSON, and send it to the server. There, PHP merges the newly received data with all the previously received data (it may be coming from different sources; currently, two devices send data frames to the server). Afterward, a map similar to yours displays this data.

100% you’re welcome to contribute, though I’ll provide the standard caveats of “this wasn’t really built to put in front of people, so… good luck”. And just to be clear, I’m not at all affiliated with Meshtastic. It seems like there’s a decent amount of interest in a map though, so maybe we can prod someone to make space for an “official” version? I think that’d be more satisfying for others to contribute.

The part that subscribes to the MQTT broker and stores relevant packets in the database is here: GitHub - tobymurray/meshtastic-mqtt-harvester

The part that queries the database and builds a static site from it is here: GitHub - tobymurray/meshtastic-populator

I think that’d be an awesome improvement. I did consider it, e.g. setting the color so the marker slowly fades away Marty McFly style. Nothing blocks it, just that for my personal nodes it isn’t useful so didn’t feel motivated.

I believe the node ID is the hex representation of the user ID? If I recall correctly, they are different fields because there was a (as of yet unrealized) intention to have multiple nodes with the same user ID. So that was left open to support functionality that may or may not ever come to exist.