Commit Graph
851 Commits
Author SHA1 Message Date
pablorevilla-meshtastic 4329ccc0f3 update 2026-09-09 18:35:15 -07:00
pablorevilla-meshtastic 116a1c30b3 update 2026-09-09 18:32:23 -07:00
pablorevilla-meshtastic 295f0f086e update 2026-09-09 18:09:33 -07:00
pablorevilla-meshtastic 4988b887c7 update 2026-09-09 17:40:19 -07:00
pablorevilla-meshtastic 40ed330523 update 2026-09-09 17:26:13 -07:00
pablorevilla-meshtastic 728072dfac update 2026-09-09 17:23:37 -07:00
pablorevilla-meshtastic 4d036299f0 update 2026-09-09 16:40:22 -07:00
pablorevilla-meshtastic 0657899a6f create heard by packet trace 2026-09-09 16:33:46 -07:00
Pablo Revilla ad1f404f4a Update CONTRIBUTING.md 2026-09-09 13:41:43 -07:00
pablorevilla-meshtastic 88fe764e7b updates 2026-09-09 13:19:26 -07:00
pablorevilla-meshtastic 87344d4902 Merge branch 'develop' of github.com:pablorevilla-meshtastic/meshview into develop 2026-09-09 13:19:11 -07:00
pablorevilla-meshtastic dc7ddb5bf3 updates 2026-09-09 13:19:08 -07:00
pablorevilla-meshtastic d1e1e1a91f update 2026-09-09 12:42:37 -07:00
pablorevilla-meshtastic 81535c08b1 update 2026-09-09 12:41:27 -07:00
pablorevilla-meshtastic 41dbd12ed2 update changes 3.0.8 2026-09-09 12:32:55 -07:00
pablorevilla-meshtastic d78de2fd0b Latest updates summary 2026-09-09 12:30:28 -07:00
pablorevilla-meshtastic 85753d8704 Merge branch '3.0.8' 2026-09-09 12:27:04 -07:00
Manuel Villaverde e9e66b2dfb fix: make non-preset channel colors visible on the map (#164)
The fallback palette used for channels that are not Meshtastic presets was
built out of pastels, which are unreadable against the light OSM tiles. Six
of the nine entries scored under 1.6:1 contrast on the map: #fffac8 at
1.06:1 and #aaffc3 at 1.18:1 were effectively invisible, leaving only the
white marker outline showing.

The underlying issue is that one color feeds two opposite backgrounds. The
marker fill sits on light map tiles, while the filter label is text on the
dark Bootstrap panel. The old palette was calibrated only for the panel.

Replace it with 12 colors chosen by a search over HSL, constrained to clear
3:1 contrast against both backgrounds, stay at deltaE >= 30 from every
channelColorOverrides preset, and deltaE >= 20.9 from each other. Saturation
is capped at 80% to keep out neon tones that would collide with ShortTurbo.

Growing the palette from 9 to 12 entries is safe: the index is derived from
palette.length rather than a fixed number.
2026-09-09 11:21:41 -07:00
George 99a0f0a886 fix: expand Meshtastic one-byte PSK shorthand in mqtt.secondary_keys (#161)
Meshtastic stores well-known channel PSKs as a single byte index, so a
channel configured with "Ag==" was base64-decoded to one byte and handed
straight to AES. That is not just a failure to decode: algorithms.AES()
raises ValueError on a 1 byte key, and get_topic_envelopes only catches
MqttError, so the reader died on the first packet.

Expand single byte PSKs the way the firmware does in Channels::getKey --
copy the default PSK and bump its last byte by index - 1, so index 1 is
the default PSK itself. Index 0 means no encryption and is skipped.
Also validate that decoded keys are 16 or 32 bytes and log the offending
config value instead of letting a bad key reach AES.
2026-09-08 10:31:12 -07:00
George 25ada1023d fix: correct traceroute path orientation when building graph edges (#162)
* fix: correct traceroute path orientation when building graph edges

A completed traceroute is observed as a response packet, whose from/to are
reversed with respect to the path being traced: `to` is the node that started
the traceroute and `from` is the node that answered. Meshview assembled paths
as [from, *route, to], so both endpoint-adjacent edges were wrong for every
completed traceroute with at least one intermediate hop. Because the false
edges always attach to the endpoints, a busy initiator or gateway accumulated
false direct links to every remote target it ever traced.

Confirmed against TraceRouteModule::alterReceivedProtobuf, which renders a
response as printRoute(r, p.to, p.from, false), against the meshtastic python
CLI, which starts the forward path at p["to"] and the return path at p["from"],
and against real recorded traceroutes where a request's route[] is a prefix of
the matching response's route[].

Add meshview/traceroute.py and use it from /api/edges, /api/traceroute and
graph_traceroute, which had three separate copies of this logic that had all
drifted. /api/traceroute also gains initiator/target so the traceroute page
stops re-deriving the endpoints itself, which is where a fourth copy lived.

While in /api/edges, skip the NODENUM_BROADCAST placeholders that
insertUnknownHops() writes into route[] (they became a pseudo-node hub in the
graph) and guard against the (gateway, gateway) self edge that
graph_traceroute already guarded against.

* fix: do not invent links across unknown hops or unfinished returns

Review of becf4a8 found two remaining path errors.

Dropping NODENUM_BROADCAST from route[] during assembly joined the nodes
either side of it, so A -> B -> ? -> C -> D became A -> B -> C -> D and a
lone unknown hop collapsed into a false direct A -> D. Keep the placeholder
in the path and skip the edges that touch it instead. On a 2660 row sample
this removes 10 links that do not exist.

done=True only means a response was observed, not that it arrived. A gateway
usually reports one still travelling home with route_back holding just the
hops so far, so always appending the initiator claimed a final link that was
never seen. Append it only when the response reached the initiator, which the
spare snr_back entry from SNRonly=isToUs() marks. Note this is rare in
practice: 2 of 303 real responses, since the entry is added by the initiator
and gateways see packets in flight.

The deduplicated unique_forward_paths and unique_reverse_paths carry no
per-observation provenance, so the traceroute page can no longer tell which
of them reached the far endpoint. It now adds only the adjacent endpoint.

* fix: treat a response as proof the forward path reached the target

Winning path selection required return hops, so a response observed before
its first return hop contributed nothing and the page fell back to the
deduplicated reported paths, which cannot tell which of them reached the
target. A response with route=[B,C] and no route_back rendered A > B > C,
losing the target and the last link.

Select winning paths from response observations instead. A response only
exists because the request arrived, whatever its return trip went on to do.
Dropping the non-empty forward_hops guard at the same time means a zero hop
response contributes its real direct link, so a fully direct traceroute and a
completed direct return are no longer excluded from the graph.

Mark reported forward paths that some response reported, so the page can
close those on the target and they deduplicate against the winning path
instead of drawing a shorter copy underneath it.
2026-09-08 10:30:27 -07:00
George 290f8cf6f5 fix: show ROUTING ACK/NAK instead of misleading "error_reason: NONE" (#160)
error_reason sits in a protobuf oneof, so the NONE zero value is written
to the wire and printed verbatim, making successful ACKs look like
errors. Render NONE as "ACK" and anything else as "NAK: <REASON>".
Confirmed against live MQTT traffic (19 NONE, 22 NO_RESPONSE, all with
request_id set).
2026-09-08 10:29:54 -07:00
pablorevilla-meshtastic 992296b0c1 Work on new Traceroute page 2026-07-02 15:01:24 -07:00
pablorevilla-meshtastic e2adb73fea map changes and other fixes 2026-06-25 17:19:35 -07:00
pablorevilla-meshtastic 5386f39611 report change 2026-06-11 16:16:08 -07:00
pablorevilla-meshtastic 2175fcb44d remove some of the changes 2026-06-11 14:49:26 -07:00
pablorevilla-meshtastic c16e19336a more fixes 2026-06-08 12:02:20 -07:00
pablorevilla-meshtastic 7f5b50b6f3 Fix timezone or health report 2026-06-08 11:59:20 -07:00
pablorevilla-meshtastic dff2ea0249 change 2026-06-04 17:16:11 -07:00
pablorevilla-meshtastic 029d22ff9c report of cleanup status on health page 2026-06-04 17:14:43 -07:00
pablorevilla-meshtastic 02c77dcca8 change the versio n number and release date for the next release 2026-05-29 14:39:04 -07:00
pablorevilla-meshtastic d4f6a8ba9b fixed bug in top.html now it shows all channels as a option 2026-05-29 14:30:44 -07:00
SMLunchen 31ca098de5 fix: don't overwrite Node.channel from MAP_REPORT_APP if already set (#147)
NODEINFO_APP is the better / authoritative source for a nodes primary channel.
MAP_REPORT_APP packets can arrive on a different MQTT uplink channel and
are unconditionally overwriting the channel set by NODEINFO, causing
nodes to appear on the wrong channel in the map and channel filters.

now MAP_REPORT_APP only sets Node.channel when it is not (yetw) known,
making it a fallback rather than an override.
2026-05-29 14:12:42 -07:00
pablorevilla-meshtastic 794502d63f Merge branch '3.0.7' 3.0.7 2026-05-29 14:06:17 -07:00
pablorevilla-meshtastic ad4785baec Document version 3.0.7 2026-05-29 14:05:16 -07:00
pablorevilla-meshtastic 493fadf0d2 updated protobuf 2026-05-29 13:39:04 -07:00
pablorevilla-meshtastic db04f4dc9f made changes 2026-05-25 09:07:59 -07:00
pablorevilla-meshtastic 2ecaaae2a9 more changes 2026-05-24 11:01:45 -07:00
pablorevilla-meshtastic 7cafefb59b added hop count the the reliablility report. 2026-05-24 10:59:25 -07:00
pablorevilla-meshtastic 85cd05177e added filter for extending the range of active nodes to nodelist 2026-05-23 09:59:25 -07:00
pablorevilla-meshtastic 69150b2efc add node to nodelist 2026-05-23 09:53:21 -07:00
pablorevilla-meshtastic 4695537291 show all nodes in db 2026-05-23 09:03:32 -07:00
pablorevilla-meshtastic f1ad6333dd more updates 2026-05-20 07:05:40 -07:00
pablorevilla-meshtastic 1089cfd256 work on reliablility page 2026-05-20 06:59:37 -07:00
pablorevilla-meshtastic 2ae4483e1f Added map to relaiablity report 2026-05-19 16:49:49 -07:00
pablorevilla-meshtastic fb2c947a14 fix error with QR code not loading node's role 2026-05-19 16:21:30 -07:00
pablorevilla-meshtastic ac161e5764 Made node colors in map persistent to reboot. 2026-05-19 14:17:51 -07:00
Pablo Revilla 1f606e5fa0 Update README.md 2026-05-19 10:29:30 -07:00
pablorevilla-meshtastic c1a9bb63c7 update README.md 2026-05-19 10:27:11 -07:00
pablorevilla-meshtastic 29e5b36dbf Added scale to the maps. 2026-05-19 09:42:02 -07:00
pablorevilla-meshtastic 671af01e0b ADDED new cleanup to the keys table 2026-05-14 14:54:03 -07:00