Skip to content

Releases: mr-tbot/mesh-api

MESH-API v0.6.0 FULL RELEASE

09 Mar 14:25
2390028

Choose a tag to compare

v0.6.0 (Full Release)
Bug Fixes
#53 — Home Assistant interface stale after reconnect — The app_context["interface"] reference is now refreshed after every successful reconnect, preventing None errors in HA and other extensions. Thanks to @InstigatorX for reporting. (GitHub Issue #53)
#51 — AI channel reply routing — Added detailed dispatch logging to trace AI reply routing across channels and DMs. Verified the routing logic correctly respects respond_to_broadcast_messages, respond_to_dms, and ai_respond_on_longfast flags. Thanks to @droidblastnz for reporting. (GitHub Issue #51)
#44 — Stability improvements — Smart word‑boundary message chunking (never splits mid‑word), requests.Session() connection pooling for Ollama calls, num_predict parameter to cap AI token generation, cross‑platform OSError handling with specific error code checks (errno 19, 32, 107, 108, 110). Thanks to @omgitsgela for reporting. (GitHub Issue #44)
New Features
Interactive Node Map — Leaflet.js map view with colored markers for all GPS‑enabled nodes. Dark mode (CARTO dark tiles) and light mode (OpenStreetMap) selectable in settings. Offline detection with a banner notice when tiles are unavailable. Connected node shown as a green circle. Popups display node name, hex ID, last heard, hop count, DM button, and Google Maps link.
Collapsible Channel Groups — Channel messages are now grouped by channel name. Each group has a clickable 📻 header that expands/collapses the messages. Unread message counts shown as orange pill badges.
Draggable Dashboard Layout — All major dashboard sections (Send Form, Node Map, Message Panels, Discord) can be reordered via ☰ drag handles. The three message columns (DMs, Channels, Nodes) are independently sortable. Sections can be hidden/shown from the UI Settings panel. Layout order persists in localStorage.
Five Built‑in Notification Sounds — Two‑Tone Beep, Triple Chirp, Alert Chime, Sonar Ping, Radio Blip generated via Web Audio API. Separate sound assignments for DMs, channels, and per‑node. Per‑node sounds use a dropdown populated from available nodes. Custom sound file upload also supported. Test button and volume slider in the settings panel.
Compact Settings Panel — UI Settings redesigned as a two‑column grid with emoji‑labeled sections (⚙️ UI Settings). Includes button theme color, section colors, dark/light map style, hue rotation, section visibility toggles, and an About section with links to Meshtastic, MeshCore, and project resources.
Node Enhancements — DM, PING, and PONG buttons shown for every node. Show on Map (fly‑to) and Google Maps buttons on the same line. Last‑heard time displayed with 📡 icon. Node items rendered as rounded cards with hover effects.
Emoji Section Headers — All dashboard panels now have emoji prefixes: ✉️ Send a Message, 🗺️ Node Map, 💬 Message Panels, 📨 Direct Messages, 📡 Channel Messages, 📋 Available Nodes, 🎮 Discord Messages.
Differentiated Send Buttons — Send, Reply to Last DM, and Reply to Last Channel buttons now have distinct colors (green, blue, purple) for quick visual identification.
Welcome Setup Guide — Initial popup changed from beta disclaimer to a friendly setup guide with configuration steps and links to documentation.
Report a Bug — Footer button links directly to GitHub Issues for easy bug reporting.
Visual Overhaul
CSS custom properties (--bg-primary, --bg-panel, --bg-input, --text-primary, --text-muted, --border-radius) for consistent theming.
Segoe UI font stack, smooth transitions, hover effects on panels/messages/nodes.
Mobile‑responsive breakpoints: collapsible map, stacked masthead, footer, and send form at ≤600px.
"❤️ Support this Developer" PayPal donation button added to the footer alongside the version badge.
Updated Dependencies
protobuf 6.33.5 → 7.34.0
meshtastic 2.7.7 → 2.7.8
Flask 3.1.2 → 3.1.3
twilio 9.10.1 → 9.10.2
bleak ≥0.22.0 → ≥2.1.1
meshcore ≥2.2.0 → ≥2.2.30
v0.6.0 RC1 (Release Candidate 1)
WebUI Extensions Manager
New "Extensions" button in the dashboard toolbar opens a full Extensions Manager modal.
View all available extensions with color-coded status indicators (green=active, yellow=enabled but not loaded, grey=disabled).
Enable/disable extensions directly from the WebUI — toggles are saved to each extension's config.json.
Inline JSON config editor for each extension — edit and save any extension's configuration without touching the filesystem.
Hot-Reload button to live-reload all extensions without restarting the server.
New REST API endpoints: GET /extensions/status, GET/PUT /extensions/config/, POST /extensions/toggle/, POST /extensions/reload.
Incoming Message Sound — Fixed & Improved
The notification sound system has been completely rewritten. Previously, the element was configured but .play() was never called — sounds were non-functional.
New built-in two-tone notification beep using the Web Audio API (no external files required).
Sound plays automatically when new inbound messages arrive (not for outgoing/WebUI/system messages).
New UI Settings controls: enable/disable toggle, volume slider, sound type selector (built-in beep vs. custom file), and a "Test Sound" button.
First page load silently seeds the seen-message set so existing messages don't trigger sounds.
Config Modal Alignment
Updated config editor help text to reflect the new extension system — removed legacy Discord/Home Assistant references from config.json help.
Added note directing users to the Extensions button for extension configuration.
Docker Preparation
Updated Dockerfile to include the extensions/ directory and all built-in extensions.
Updated docker-compose.yml with optional extensions volume mount.
Docker images coming with the full v0.6.0 release!
Version Bump
Updated all version references (banner, footer, README, scripts) to v0.6.0 RC1.
Plugin-Based Extensions System
Brand new drop-in plugin architecture with 26+ built-in extensions across 5 categories: Communication, Notifications, Emergency/Weather, Ham Radio/Off-Grid, and Smart Home.
Extensions can register slash commands, react to emergencies, observe all mesh messages, expose HTTP endpoints via Flask, and run background polling threads.
Each extension is fully self-contained with its own config.json — no core code changes required to add, remove, or configure extensions.
New /extensions mesh command to list all loaded extensions and their status.
⚠️ The extensions system and all corresponding extensions are new and largely untested. Please report any issues on GitHub so they may be investigated and addressed.
12 AI Providers
Added support for Claude, Gemini, Grok, OpenRouter, Groq, DeepSeek, Mistral, and a generic OpenAI-compatible endpoint option — in addition to existing LM Studio, OpenAI, Ollama, and Home Assistant providers.
All OpenAI-compatible providers share a unified helper for consistent behavior and error handling.
Extension Categories
Communication (12): Discord, Slack, Telegram, Matrix, Signal, Mattermost, Zello, MQTT, Webhook Generic, IMAP, Mastodon, n8n
Notifications (5): Apprise, Ntfy, Pushover, PagerDuty, OpsGenie
Emergency/Weather (6): NWS Alerts, OpenWeatherMap, USGS Earthquakes, GDACS, Amber Alerts, NASA Space Weather
Ham Radio/Off-Grid (3): Winlink, APRS, BBS (SQLite store-and-forward)
Smart Home (1): Home Assistant (AI provider extension)
Backward Compatibility
Legacy Discord and Home Assistant configuration keys in the main config.json are automatically migrated to their respective extension configs on first load.
Old configs should work out of the box with the new extension system.
Developer Documentation
Full extension development guide with base class API reference, step-by-step tutorial, hook reference, configuration patterns, Flask route examples, background thread patterns, best practices, and troubleshooting.
v0.6.0 Pre-Release 3 (PR3)
New /nodes-XY command
Reports online nodes (heard within the last window) and total known nodes.
Online window config
New nodes_online_window_sec setting controls the online window (default 2 hours).
Ollama stability limit
New ollama_max_parallel setting caps concurrent Ollama requests (default 1).
AI command matching improvements
/ai-XY works reliably in channels; legacy /aiXY is also accepted for compatibility.
v0.6.0 Pre-Release 2 → Pre-Release 3
Mesh safety defaults
LongFast (channel 0) responses are OFF by default; enable ai_respond_on_longfast only if your mesh agrees.
MQTT response gating: new respond_to_mqtt_messages flag (default false) to prevent multiple servers from replying at once over MQTT.
Community note: Using AI bots on public LongFast channels is generally frowned upon because it increases congestion for everyone. The toggle remains available for isolated/private deployments or special cases, but it is off by default.
Bot‑loop prevention
All AI replies now start with a tiny fixed marker m@i (≤ 3 chars). Other MESH‑AI instances ignore messages that begin with this marker.
Each instance also remembers node IDs that send AI‑tagged messages and ignores further requests from those nodes to mitigate bot‑to‑bot chatter.
User‑initiated only
No features are planned that allow the AI to auto‑respond to “join/arrive” events or otherwise talk without an explicit message from a legitimate user.
Per‑install command alias
On first run, a randomized alias (e.g. /ai-9z) is generated and saved as ai_command in config.json. Use it to avoid collisions; you can change it anytime.
Strongly encouraged: customize your commands in com...

Read more

MESH-AI v0.5.1-beta- THE FIRST BETA RELEASE!

28 Jul 15:34
6086f2c

Choose a tag to compare

MESH-AI (BETA v0.5.1) - NOW IN BETA!

  • PLEASE NOTE - MESH-AI is out of ALPHA! There are new requirements and new config options! Old configs should work out of the box - but please see below for changes.

This release is functionally the same as v0.5.0 - but has been rebranded to MESH-AI for trademark compliance and respect for the official Meshtastic.org project. This project is getting a lot of attention now - and I am actively reaching out to the Meshtastic team for guidance on how to develop respectfully in their ecosystem - all previous ALPHA releases are going to be pulled from the repo.

MESH-AI

MESH-AI is an experimental project that bridges Meshtastic LoRa mesh networks with powerful AI chatbots. This is the FIRST BETA RELEASE!

Disclaimer:
This project is NOT ASSOCIATED with the official Meshtastic Project. It is provided solely as an extension to add AI and advanced features to your Mesh network.

BETA Software Warning:
This version is still in BETA. It may be unstable or incomplete. Please avoid relying on it for mission‑critical tasks or emergencies. Always have backup communication methods available and use responsibly.

I am one robot using other robots to write this code. Some features are still untested in the field. Check the GitHub issues for fixes or feedback!


image
The Meshtastic logo trademark is the trademark of Meshtastic LLC.

Features

  • Multiple AI Providers
    • Support for Local models (LM Studio, Ollama), OpenAI, and even Home Assistant integration.
  • Home Assistant Integration
    • Seamlessly forward messages from a designated channel to Home Assistant’s conversation API. Optionally secure the integration using a PIN.
  • Advanced Slash Commands
    • Built‑in commands: /about, /ping, /test, /help, /motd, /ai (aliases: /bot, /query, /data), /emergency (or /911), /whereami plus custom commands via commands_config.json.
    • Commands are now case‑insensitive for improved mobile usability.
  • Emergency Alerts
    • Trigger alerts that are sent via Twilio SMS, SMTP Email, and, if enabled, Discord.
    • Emergency notifications include GPS coordinates, UTC timestamps, and user messages.
  • Enhanced REST API & WebUI Dashboard
    • A modern three‑column layout showing broadcast messages, direct messages, and available nodes.
    • Additional endpoints include /messages, /nodes, /connection_status, /logs, /send, /ui_send, and a new /discord_webhook for inbound Discord messages.
    • UI customization through settings such as theme color, hue rotation, and custom sounds.
  • Improved Message Chunking & Routing
    • Automatically splits long AI responses into configurable chunks with delays to reduce radio congestion.
    • Configurable flags control whether the bot replies to broadcast channels and/or direct messages.
  • Robust Error Handling & Logging
    • Uses UTC‑based timestamps with an auto‑truncating script log file (keeping the last 100 lines if the file grows beyond 100 MB).
    • Enhanced error detection (including specific OSError codes) and graceful reconnection using threaded exception hooks.
  • Discord Integration Enhancements
    • Route messages to and from Discord.
    • New configuration options and a dedicated /discord_webhook endpoint allow for inbound Discord message processing.
  • Windows & Linux Focused
    • Official support for Windows environments with installation guides; instructions for Linux available now - MacOS coming soon!

image

An example of an awesome Raspberry Pi 5 powered mini terminal - running MESH-AI & Ollama with HomeAssistant integration!


Changelog

New Updates in v0.4.2 → v0.5.1 - NOW IN BETA!

  • REBRANDED TO MESH-AI
  • WebUI Enhancements
    • Node Search added for easier node management.
    • Channel Message Organization with support for custom channels in config.json.
    • Revamped DM threaded messaging system.
    • Location Links for nodes with available location data via Google Maps.
    • Timezone Selection for accurate incoming message timestamps.
    • Custom Local Sounds for message notifications (no longer relying on hosted files).
    • Logs Page Auto-Refresh for live updates.
  • Baudrate Adjustment
    • Configurable baud rate in config.json for longer USB connections (e.g., roof nodes).
  • LM Studio Model Selection
    • Support for selecting models when multiple are loaded in LM Studio, enabling multi-model instances.
  • Protobuf Noise Debugging
    • Moved any protobuf-related errors behind debug logs as they do not affect functionality.
    • Can be enabled by setting "debug": true in config.json to track.
  • Updated Docker Support
    • Updated Docker configuration to always pull/build the latest Meshtastic-Python libraries, ensuring compatibility with Protobuf versions.

POSSIBLE BUGS IN BETA v0.5.1 - Web UI ticker isn't honoring read messages in some cases.

INCOMING MESSAGE SOUNDS ARE UNTESTED ON ALL PLATFORMS AND FILESYSTEMS.

New Updates in v0.4.1 → v0.4.2

  • Initial Ubuntu & Ollama Unidecode Support: -
    • User @milo_o - Thank you so much! I have merged your idea into the main branch - hoping this works as expected for users - please report any problems! - #19
  • Emergency Email Google Maps Link:
    • Emergency email now includes a Google Maps link to the sender's location, rather than just coordinates. - Great call, @nlantz79! (Remember - this is only as accurate as the sender node's location precision allows!)

New Updates in v0.4.0 → v0.4.1

  • Error Handling (ongoing):
    • Trying a new method to handle WinError exceptions - which though much improved in v0.4.0 - still occur under the right connection circumstances - especially over Wi-Fi.
      (UPDATE: My WinError issues were being caused by a combination of low solar power, and MQTT being enabled on my node. MQTT - especially using LongFast is very intense on a node, and can cause abrupt connection restarts as noted here: meshtastic/meshtastic#901 - but - now the script is super robust regardless for handling errors!)
  • Emergency Email Subject:
    • Email Subject now includes the long name, short name & Node ID of the sending node, rather than just the Node ID.
  • INITIAL Docker Support

New Updates in v0.3.0 → v0.4.0

  • Logging & Timestamps:
    • Shift to UTC‑based timestamps and enhanced log management.
  • Discord Integration:
    • Added configuration for inbound/outbound Discord message routing.
    • Introduced a new /discord_webhook endpoint for processing messages from Discord.
  • Emergency Notifications:
    • Expanded emergency alert logic to include detailed context (GPS data, UTC time) and Discord notifications.
  • Sending and receiving SMS:
    • Send SMS using /sms <+15555555555> <message>
    • Config options to either route incoming Twilio SMS messages to a specific node, or a channel index.
  • Command Handling:
    • Made all slash commands case‑insensitive to improve usability.
    • Enhanced custom command support via commands_config.json with dynamic AI prompt insertion.
  • Improved Error Handling & Reconnection:
    • More granular detection of connection errors (e.g., specific OSError codes) and use of a global reset event for reconnects.
  • Code Refactoring:
    • Overall code improvements for maintainability and clarity, with additional debug prints for troubleshooting.

Changelog: v0.2.2 → v0.3.0 (from the original Main Branch README)

  • WebUI Overhaul:
    • Redesigned three‑column dashboard showing channel messages, direct messages, and node list.
    • New send‑message form with toggleable modes (broadcast vs. direct), dynamic character counting, and message chunk preview.
  • Improved Error Handling & Stability:
    • Redirected stdout/stderr to a persistent script.log file with auto‑truncation.
    • Added a connection monitor thread to detect disconnections and trigger automatic reconnects.
    • Implemented a thread exception hook for better error logging.
  • Enhanced Message Routing & AI Response Options:
    • Added configuration flags (reply_in_channels and reply_in_directs) to control AI responses.
    • Increased maximum message chunks (default up to 5) for longer responses.
    • Updated slash command processing (e.g., added /about) and support for custom commands.
  • Expanded API Endpoints:
    • New endpoints: /nodes, updated /connection_status, and /ui_send.
  • Additional Improvements:
    • Robust Home Assistant integration and basic emergency alert enhancements.

1. Changelog: v0.1 → v0.2.2

  • Expanded Configuration & JSON Files
    • New config.json fields
      • Added debug toggle for verbose debugging.
      • Added options for multiple AI providers (lmstudio, openai, ollama), including timeouts and endpoints.
      • Introduced Home Assistant integration toggles (home_assistant_enabled, home_assistant_channel_index, secure pin, etc.).
      • Implemented Twilio and SMTP settings for emergency alerts (including phone number, email, a...
Read more