Skip to content

MeshMonitor v4.17.1 - MeshCore Reactions and CLI, Ducting Overlay, AEAD Channels & Passkeys

MeshMonitor v4.17.1 is out after ten release candidates. MeshCore gains reactions, a native Companion CLI and saved remote-admin sessions. Auto Responder and Timer Triggers now work the same way on Meshtastic and MeshCore. The map gets a tropospheric ducting overlay, and Meshtastic channels can use AEAD (AES-CCM).

Highlights below. The full list is in the CHANGELOG.

MeshCore ​

  • Reactions. Reactions from MeshCore One and meshcore-open show as chips under the message, in each source's view and in Unified Messages. You can send them too. See Reactions.
  • Companion CLI (firmware 1.18.0). The local console talks to the firmware's own CLI and has a quick-action catalog. A Companion can allow a contact to run CLI commands on it over the air. See Companion remote CLI.
  • Saved remote-admin sessions. MeshMonitor remembers an admin login per node and lets you resume it, so a console visit no longer costs a login.
  • CLI command history. MeshMonitor records every command a person sends, with its outcome, and shows it in the consoles and on the Audit Log page. It masks passwords and keys before it stores them, in the history and in the audit log. See CLI command history.
  • Route hops from other sources. An unknown relay hash can take its name from MeshCore nodes on other sources you can read, MQTT feeds included. It is off by default: Settings β†’ MeshCore Messaging.
  • Contacts. Override a contact's location, pick what the radio auto-adds, and remove non-favourite contacts from the radio in bulk. Configuration and Automations have search and section buttons.
  • Trace Path now needs traceroute:write.

Automation and messages ​

  • One Auto-Responder trigger syntax for both protocols, with Pattern and Regex modes. Patterns accept emoji.
  • One Auto Responder workflow and one Timer Triggers workflow for Meshtastic and MeshCore. "Timed Events" is now "Timer Triggers" on Meshtastic.
  • Auto Acknowledge: nearer nodes answer a channel message first, and a separate IP (MQTT/UDP) row has its own switch. You can pick the 0-hop and MQTT tapback glyphs.
  • SPIP1 pixel-image messages draw as images. Thanks to @maxhayim.
  • Unified Messages remembers the last channel you picked. Thanks to @goodprogrammist. Show MQTT/Bridge Messages is now saved per source.
  • Status Message: an opt-in setting re-applies your status after the node reboots, to work around a firmware bug.

Maps, nodes and telemetry ​

  • Tropospheric ducting overlay. An admin turns it on in Settings. The Map tab and the Dashboard map then show a NOAA GFS forecast, now to +72 hours. See Tropospheric ducting overlay.
  • Waypoint geofences. Waypoints keep the firmware's geofence fields and round-trip with the Apple and Android apps. You edit them in the waypoint editor. MeshMonitor raises no alerts itself. See Geofence.
  • Unified Telemetry is now a cross-source dashboard: graphs of every favorited reading with one line per source, and a Latest view. See Unified Telemetry Dashboard.
  • Node Details: a Name History of renames, and an editor to set, clear and lock a node's channel. A node's channel now comes only from its own key-decoded traffic. The estimator counts unique anchor positions and explains each estimate.
  • Battery icons show the charge level.
  • ADS-B: OpenSky is a new feed, and a flight match is re-checked as the node moves.

Channels, security and configuration ​

  • AEAD channels. MeshMonitor decrypts AEAD (AES-CCM) channels on the server, and you can turn AEAD on for a device channel on firmware 2.8.1 or later. AEAD cuts a channel off from nodes that do not use it, so MeshMonitor asks first. See AEAD channels.
  • Passkeys. Local accounts can sign in with a passkey. They are optional. See the Passkeys guide.
  • Traceroute permission split into Read and Write.
  • Protection Level. The Compatible, Balanced and Strict descriptions now cover firmware 2.8.0 and 2.8.1 and later firmware, and MeshMonitor shows an Unsigned update ignored notice.
  • Device Configuration: the Danger zone moved to the end, confirms happen in the app, and read-only users cannot edit. MeshMonitor now expects the reboot that most saves cause.
  • Saved MQTT broker presets, reusable across MQTT forms.
  • Global Settings banner on each source's Settings page.

Fixes and security ​

  • Security: traceroute history and Unified Telemetry now show only the sources a user may read.
  • MQTT: bridges no longer relay each other's upstream traffic, and the echo race is closed. Automation uplinks are dropped on the client-proxy path too.
  • Packet Monitor drops firmware 2.8 NodeDB replays.
  • Database: maintenance now runs on PostgreSQL and MySQL, and prunes the audit log.
  • Docker: the base image moves to Node.js 24.22.1.

Upgrading ​

  • Migrations 203 to 217 run on first start, on all three backends. Back up first.
  • PostgreSQL and MySQL: Database Maintenance now shows on your backend but stays off until you enable it under Settings β†’ Database Maintenance. Large PostgreSQL installs should also run the one-off REINDEX TABLE CONCURRENTLY and VACUUM (ANALYZE) steps in the database guide.
  • BLE bridge: pull the latest meshtastic-ble-bridge image and add HEALTH_FILE=/tmp/ble-bridge.health plus the new health check, or regenerate your compose file with the Docker Configurator.
  • Auto-Acknowledge: messages received over MQTT or multicast UDP now use the new IP row, which starts off. If the multi-hop or 0-hop row used to answer them, turn on the IP row under Automation β†’ Auto Acknowledge.
  • MQTT bridges on one broker: to relay one upstream into another through MeshMonitor, tick Relay traffic from other bridges on the bridge that should carry it.
  • Baremetal: DATA_DIR in the .env your systemd unit names now moves every data path. An explicit DATABASE_PATH, BACKUP_DIR, SYSTEM_BACKUP_DIR, ACCESS_LOG_PATH or APPRISE_CONFIG_DIR still wins.
  • MeshCore Observer: the single credential block becomes credentials per broker. Existing credentials keep working.
  • MeshCore reactions: showing and sending are on for each source. Auto-Acknowledge answers to reactions are off. An automation fires on a reaction only when its rule ticks Also fire on MeshCore reactions.
  • CSV export adds reaction and reply_to_id columns. The first 13 columns keep their name and order.
  • Some estimated pins may disappear from the map. MeshMonitor deletes stale estimates, and a single-anchor estimate (5 km) is wider than the 2 km default display limit.
  • Regexes in forwarding rules and MeshCore Auto-Acknowledge now accept emoji and other non-ASCII printable text. Control characters, the 100-character cap and the ReDoS checks still apply.
  • New setting: MeshCore CLI history retention, default 90 days, range 7 to 365.

Thanks to @goodprogrammist and @maxhayim for their first contributions, and to @temalo for the rebroadcast and MeshCore channel fixes, and to everyone who tested ten release candidates.

Last updated: