Ingest and display Meshtastic WAYPOINT_APP packets #216

Closed
opened 2026-10-04 23:04:28 +02:00 by adam · 0 comments
Owner

Context

A DEBUG=1 capture from a long-running ingestor (2026-06-27 → 2026-07-22) shows Meshtastic WAYPOINT_APP packets being dropped as unsupported-port in ignored-meshtastic.txt. The dashboard currently has no ingest path or UI for waypoints.

Evidence

Two waypoints broadcast by !3769b133, both real Berlin POIs:

Name Description Position Icon
Tempelhofer Feld "There is no other place in Berlin to see further. : )" 52.4751642, 13.4029586 U+2708 ✈
Abgedreht Bar "Was wollen wir trinken … ;)" 52.5158247, 13.4520138 U+1F37B 🍻

Payload fields available

decoded.waypoint carries: id, latitudeI/longitudeI (1e-7°), name, description, icon (unicode codepoint), lockedTo, expire.

Proposed scope

  • data/: handle WAYPOINT_APP in the packet dispatch, emit a waypoint event (new contract section in data/mesh_ingestor/CONTRACTS.md).
  • web/: POST /api/waypoints + storage; map layer rendering the icon codepoint with name/description popup; honor expire and retention/PRIVATE invariants.
  • Protocol parity note: MeshCore has no waypoint equivalent — model as an optional MeshProtocol capability, not a required event.

Status

Deferred for now (maintainer decision) — captured here so the data points aren't lost.

## Context A `DEBUG=1` capture from a long-running ingestor (2026-06-27 → 2026-07-22) shows Meshtastic `WAYPOINT_APP` packets being dropped as `unsupported-port` in `ignored-meshtastic.txt`. The dashboard currently has no ingest path or UI for waypoints. ## Evidence Two waypoints broadcast by `!3769b133`, both real Berlin POIs: | Name | Description | Position | Icon | |---|---|---|---| | Tempelhofer Feld | "There is no other place in Berlin to see further. : )" | 52.4751642, 13.4029586 | U+2708 ✈ | | Abgedreht Bar | "Was wollen wir trinken … ;)" | 52.5158247, 13.4520138 | U+1F37B 🍻 | ## Payload fields available `decoded.waypoint` carries: `id`, `latitudeI`/`longitudeI` (1e-7°), `name`, `description`, `icon` (unicode codepoint), `lockedTo`, `expire`. ## Proposed scope - `data/`: handle `WAYPOINT_APP` in the packet dispatch, emit a waypoint event (new contract section in `data/mesh_ingestor/CONTRACTS.md`). - `web/`: `POST /api/waypoints` + storage; map layer rendering the icon codepoint with name/description popup; honor `expire` and retention/`PRIVATE` invariants. - Protocol parity note: MeshCore has no waypoint equivalent — model as an optional `MeshProtocol` capability, not a required event. ## Status Deferred for now (maintainer decision) — captured here so the data points aren't lost. <!-- github-sync-id:4950373891 -->
adam closed this issue 2026-10-04 23:04:28 +02:00
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: adam/potato-mesh#216