Coder Social home page Coder Social logo

meshmap.net's Introduction

A nearly live map of Meshtastic nodes seen by the official Meshtastic MQTT server

Features

  • Shows all position-reporting nodes heard by Meshtastic's official MQTT server
    • Includes nodes self-reporting to MQTT or heard by another node reporting to MQTT
  • Node data is updated every minute
  • Nodes are removed from the map if their position is not updated after 24 hours
  • Search for nodes by name or ID

FAQs

How do I get my node on the map?

These are general requirements. Refer to the official docs or reach out to the fantastic Meshtastic community (such as at r/meshtastic) for additional support.

  • Use the default primary channel and encryption key
  • Enable position reports from your node
    • This may mean enabling your node's built-in GPS, sharing your phone's location via the app, or setting a fixed position

If your node can be heard by another node already reporting to MQTT, that's it!

Important update as of August, 2024

Meshtastic has made a change to their MQTT server:

Only position packets with imprecise location information [10-16 bits] will be passed to the topic, ensuring that sensitive data is not exposed.

Additionally, only the default LoRa region-based root topics (and all subtopics) are now monitored.

To enable MQTT reporting

  • Enable the MQTT module, using all default settings, possibly with a custom root topic
    • View nodes around your area on the map to find MQTT topics being used
    • Only the official LoRa region-based root topics (and all subtopics) are monitored
  • Configure your node to connect to wifi or otherwise connect to the internet
  • Enable MQTT uplink on your primary channel
    • It is not necessary, and not recommended unless you know what you're doing, to enable MQTT downlink

Does the map allow manual/self-reported nodes (not over MQTT)?

No, and that's a feature. The goal of this map is to provide a reasonably up-to-date, reliable data source for node locations. This is also why nodes are removed if no position reports are heard after 24 hours.

Can you add this awesome new feature I just came up with? (Or you'd like to report a bug)

Maybe! Open a GitHub issue and let's discuss it. Pull requests welcome!

Can I use your code for my own map?

Sure! But please pay attention to the license so we can all benefit from your improvements. :)

Why do I get an error when trying to build the Docker image?

The included Dockerfile is for building the meshobserv program, which is responsible for connecting to the MQTT server and handling node messages. Meshtastic nodes use Protocol Buffers to serialize their messages. The Meshtastic protobuf definitions must be compiled before building meshobserv. See the scripts directory for helpful build scripts.

meshmap.net's People

Contributors

brianshea2 avatar afairclo avatar

Stargazers

 avatar Meilily avatar  avatar elwarren avatar Stephan Eisfeld avatar  avatar Yurii Zubkov avatar  avatar musznik avatar  avatar Aidan Holland avatar yedbie avatar Tomáš Valigura avatar Bernd Schranz avatar Bernd Schranz avatar Bohdan Turkynevych avatar  avatar  avatar Patrick Burns avatar c0de avatar HsinWei Chen avatar akrabu 𓆫 avatar meehow avatar B W avatar Daniel Pupius avatar  avatar Jeremiah K avatar  avatar Matthew Davies avatar Joe Broxson avatar Logan Dorsey avatar  avatar  avatar  avatar Oscar Cuadrado Mendez avatar Garrett M avatar Alan Wynn avatar Renan Bastos avatar Tom Hensel avatar geeksville avatar Adam Lawson avatar Federico Ceratto avatar  avatar  avatar  avatar IMXNOOBX avatar Scott G avatar Julian avatar Trick van Staveren avatar Paul Picazo avatar Anton avatar  avatar  avatar  avatar

Watchers

Neustradamus avatar Alan Wynn avatar Oscar Cuadrado Mendez avatar Tomáš Valigura avatar  avatar

meshmap.net's Issues

readme improve

Meybe add sobe tutorial. How setup the node for apear in map.
with GPS and without

Location precision off-by-one

As an example, setting a node with a location precision of 0.2 mi (322m) results in a MeshMap precision of close to 0.5 mi (729m reported), which is the next lowest precision. Another node with a precision of 7.3 mi (11,748 m) results in a MeshMap precision of close to 15 mi (24,140m reported), which is also the next lowest precision.

This can be directly observed by comparing precision diameters in the app's map vs MeshMap.

topic msh/ZA/# not showing

Hi meshmap.net team!

Any ideas why we no longer see South African nodes?

Our root topic is msh/ZA.

Example ...

msh/ZA/2/map/

Thanks,
Johannes

power

What do you think about trying to put information on the map about how the nodes are powered?
The idea is to know if the nodes are current autonomous or not.

I suggest that the name of the node should start with ~ if it is powered by the power grid or | if it is powered by solar panels. You can also set a root mqtt name.

differentiate node regions

On this map all bands are looklike this same. Please make different color or 3 buttons

  • 433 only
  • 433 and [915/868]
  • 868 only

Expected behavior for DEFAULT on SECONDARY channel

I have my nodes configured with a private primary channel and have adjusted the frequency slots to include the default channel / PSK as a secondary.

I would like to publish my MQTT node's position to meshmap, but I believe it is ignored because of the private channel name in the publication to /map. I have EQMX copying the map/# to the public server and this works when I'm on the default channel.

If this is the desired behavior is there anything I can do with my setup to show up on meshmap?

Thanks!

MapReport Ignores Recent Firmware Versions

Hi,

I believe I've identified an issue with a recent commit (e1ec364) that was meant to filter out MapReport spam for firmware version 2.3.1. It appears that this filtering is also inadvertently affecting reports from the newer firmware versions 2.3.10 and 2.3.11, regardless of their posting interval. Specifically, I'm experiencing reporting issues even though I only publish once per hour and my message correctly posts to the topic /msh/2/map. For the past two days, I have not been able to see my nodes at all.

Thanks in advance.

Add multiple topic subscription

Hi @brianshea2,

We have completed some updates to the packet filtering on the meshtastic mqtt server so that only positions with a precision form 10-16 will be sent out globally over mqtt, new firmware will default to 13.

MeshMap was collateral damage when the global root subscription was disabled, and there is no plan to re-enable the global subscription but it should be pretty easy to get meshmap back up and running by looping through the topics for a region and subscribing to those.

Your patience and respect for users privacy on this has been appreciated.

Voltage resolution

Hello!
It would be nice if the voltage shown for a node, e.g. "Power 93% (4.1V)" could have a higher resolution, two numbers after the comma. This would allow remote node runners to watch the discharge curve of their system more accurately.
In the app on the phone, there are two numbers after the comma so this information seems to be available to the public...
Regards...

Missing go internal/meshmap/generated ?

Hi Brian!

Meshmap is great and I'm using it all the time - so when you added the link to GitHub, I had to have a look!

I tried to build using Docker, but failed. Am I doing something wrong or perhaps there's some code or a step missing?

Thanks,
Patrick

Output:

 $ docker build -t meshmap:local -f Dockerfile.meshobserv . 2>&1                                                                   
DEPRECATED: The legacy builder is deprecated and will be removed in a future release.
            Install the buildx component to build images with BuildKit:
            https://docs.docker.com/go/buildx/

Sending build context to Docker daemon  362.5kB
Step 1/10 : FROM golang:latest AS build
 ---> 0505a58fa464
Step 2/10 : WORKDIR /build
 ---> Using cache
 ---> a1f8492bdd8d
Step 3/10 : COPY go.mod ./
 ---> Using cache
 ---> 3d156f33fa57
Step 4/10 : COPY cmd/meshobserv ./
 ---> Using cache
 ---> d1739bcc2bec
Step 5/10 : COPY internal ./internal/
 ---> Using cache
 ---> 8429e35ae039
Step 6/10 : RUN go mod tidy
 ---> Running in 1b175afc48db
go: finding module for package github.com/eclipse/paho.mqtt.golang
go: finding module for package github.com/brianshea2/meshmap.net/internal/meshtastic/generated
go: finding module for package google.golang.org/protobuf/proto
go: downloading google.golang.org/protobuf v1.34.1
go: downloading github.com/eclipse/paho.mqtt.golang v1.4.3
go: found google.golang.org/protobuf/proto in google.golang.org/protobuf v1.34.1
go: found github.com/eclipse/paho.mqtt.golang in github.com/eclipse/paho.mqtt.golang v1.4.3
go: downloading github.com/gorilla/websocket v1.5.0
go: downloading golang.org/x/net v0.8.0
go: downloading golang.org/x/sync v0.1.0                                                                                               go: downloading github.com/google/go-cmp v0.5.5
go: downloading golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543
go: finding module for package github.com/brianshea2/meshmap.net/internal/meshtastic/generated
go: github.com/brianshea2/meshmap.net imports                                                                                                  github.com/brianshea2/meshmap.net/internal/meshtastic/generated: no matching versions for query "latest"
The command '/bin/sh -c go mod tidy' returned a non-zero code: 1

Docker build issue

Hello,

I'm trying to install meshmap for an offline project and I'm facing an error while trying to build the docker:


[build 6/7] RUN go mod tidy:
0.279 go: finding module for package github.com/eclipse/paho.mqtt.golang
0.279 go: finding module for package github.com/brianshea2/meshmap.net/internal/meshtastic/generated
0.279 go: finding module for package google.golang.org/protobuf/proto
0.607 go: downloading google.golang.org/protobuf v1.34.2
0.618 go: downloading github.com/eclipse/paho.mqtt.golang v1.4.3
1.388 go: found google.golang.org/protobuf/proto in google.golang.org/protobuf v1.34.2
1.388 go: found github.com/eclipse/paho.mqtt.golang in github.com/eclipse/paho.mqtt.golang v1.4.3
1.391 go: downloading github.com/gorilla/websocket v1.5.0
1.391 go: downloading golang.org/x/net v0.8.0
1.391 go: downloading golang.org/x/sync v0.1.0
1.392 go: downloading github.com/google/go-cmp v0.5.5
1.476 go: downloading golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543
1.664 go: finding module for package github.com/brianshea2/meshmap.net/internal/meshtastic/generated
1.666 go: github.com/brianshea2/meshmap.net imports
1.666 github.com/brianshea2/meshmap.net/internal/meshtastic/generated: no matching versions for query "latest"


Dockerfile:6

4 | COPY cmd/meshobserv ./
5 | COPY internal ./internal/
6 | >>> RUN go mod tidy
7 | RUN go build -v -o meshobserv
8 |

ERROR: failed to solve: process "/bin/sh -c go mod tidy" did not complete successfully: exit code: 1

Am I doing something wrong ?

Thanks,
Regards,

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.