• v0.7.11 488201603f

    v0.7.11
    Some checks failed
    Deploy docs / deploy (push) Successful in 1m17s
    Tests / test (push) Failing after 1m44s
    Build and Push Docker Image / build (push) Successful in 7s
    Stable

    ppfeiffer released this 2026-04-25 11:17:55 +02:00 | 18 commits to main since this release

    Neu

    • Kontaktliste: ID-Spalte — Public Key des Kontakts als eigene Spalte (erste 12 Zeichen, voller Wert als Tooltip), sortierbar
    • Kontaktliste: Path-Hash-Mode-Spalte — zeigt den Routing-Hash-Modus des Kontakts: 1 Byte, 2 Byte, 3 Byte oder Flood (plen=0xFF); wird bei jedem Advertisement aus dem Gerätekontaktverzeichnis übernommen und in der DB persistiert
    • Ping-Antworttext editierbar — Antworttext auf ping/test direkt in den Command-Settings konfigurierbar

    Behoben

    • Path-Hash-Mode-AnzeigeNULL (noch nicht bekannt) wird als dargestellt statt fälschlicherweise als 1 Byte; Flood-Routing (-1) wird korrekt als Flood-Badge angezeigt
    Downloads
  • v0.7.10 26eb4c38c9

    v0.7.10
    Some checks failed
    Deploy docs / deploy (push) Successful in 1m9s
    Tests / test (push) Failing after 1m23s
    Build and Push Docker Image / build (push) Successful in 5s
    Stable

    ppfeiffer released this 2026-04-21 19:43:59 +02:00 | 22 commits to main since this release

    Geändert

    • Ping-Antwort — Antwort auf ping gibt nun Sender und Verbindungsinfo zurück: Pong @[{sender}] | {connection_info}
    Downloads
  • v0.7.09 de8255ac63

    v0.7.09
    Some checks failed
    Deploy docs / deploy (push) Successful in 55s
    Tests / test (push) Failing after 1m19s
    Build and Push Docker Image / build (push) Successful in 5s
    Stable

    ppfeiffer released this 2026-04-21 11:53:13 +02:00 | 24 commits to main since this release

    Neu

    • Dashboard: operativer Überblick (Issue #21) — Startseite komplett überarbeitet: Bot-Status-Leiste im Navbar (Uptime, Clients, DB-Größe, Advert nur für Admins); Kontaktliste als sortierbare, scrollbare Tabelle mit Suche, Entfernungsspalte und Klick-Modal (Leaflet-Karte + alle Felder); Aktivitäts-Timeline als Chart.js-Liniengraph; Kanal-Heatmap mit allen konfigurierten Kanälen; Stat-Tiles, Top Commands, Top Paths, Top Channels entfernt

    Behoben

    • OpenAPI-Spec — doppelter Eintrag /api/users/me/password entfernt; neue Endpoints ergänzt
    • Channel-Filter — Dropdown nutzt nun /api/channels (alle konfigurierten Kanäle) statt aktivitätsbasierter Liste
    • Kontakt-Modal — Modal war außerhalb des Jinja2-content-Blocks und wurde nicht gerendert; behoben
    • Heatmap — fehlende Kanäle ergänzt durch client-seitigen Merge von /api/channels und Heatmap-Daten

    Geändert

    • Refactoring: PostgreSQL-Migration — alle verbliebenen SQLite-Artefakte auf PostgreSQL/pg_adapter migriert
    Downloads
  • v0.7.08 4eb5b71520

    v0.7.08
    Some checks failed
    Deploy docs / deploy (push) Successful in 55s
    Tests / test (push) Failing after 1m37s
    Build and Push Docker Image / build (push) Successful in 5s
    Stable

    ppfeiffer released this 2026-04-21 07:04:11 +02:00 | 36 commits to main since this release

    Neu

    • Analyse: Kanal-Aktivitaets-Heatmap - neues Panel auf /stats: Stunde x Kanal als farbkodiertes Grid; Zeitraum-Filter 24 h/7/14/30 Tage (Issue #16)
    • Radio: SNR/RSSI-Verlauf pro Node - neuer Tab Signal-Verlauf auf /radio: 5-Minuten-Buckets, duales Chart.js mit getrennten Y-Achsen fuer SNR (dB) und RSSI (dBm); Zeitraum 6/24/48/72 h (Issue #15)
    • Netz-Topologie-Monitor - erkennt Online/Offline-Wechsel, Initial-Snapshot beim Start, SocketIO-Event topology_event (Issue #17)
    • Topologie-Badge im Nav - rotes Zaehler-Badge am Mesh-Link fuer offline-erkannte Nodes
    • Topologie-Ereignis-Panel - neue Karte auf Mesh-Seite mit letzten 40 Events, Echtzeit via SocketIO

    Behoben

    • Heatmap-Query: NULL-Kanal-Fehler (sorted() + channel IS NOT NULL-Filter)
    • Heatmap-Query: PostgreSQL %-Operator ersetzt durch MOD() Funktion
    • Topologie-Monitor: executemany ueber Cursor statt Connection
    • is_dm = false (PostgreSQL-kompatibel)
    Downloads
  • v0.7.07 3973210534

    v0.7.07 – Passwort-Vergessen, Mesh-Map Upgrade
    Some checks failed
    Deploy docs / deploy (push) Successful in 1m2s
    Tests / test (push) Failing after 1m20s
    Build and Push Docker Image / build (push) Successful in 6s
    Stable

    ppfeiffer released this 2026-04-20 11:03:01 +02:00 | 37 commits to main since this release

    Siehe CHANGELOG.md

    Downloads
  • v0.7.6 6d0606f7f9

    v0.7.6 – NINA-Entwarnungen & broadcast default aus
    Some checks failed
    Deploy docs / deploy (push) Successful in 1m10s
    Tests / test (push) Failing after 1m32s
    Build and Push Docker Image / build (push) Successful in 6s
    Stable

    ppfeiffer released this 2026-04-19 15:59:51 +02:00 | 50 commits to main since this release

    Neu

    • NINA-Entwarnungen — aufgehobene Warnungen werden auf zwei Wegen erkannt: (1) Dashboard-Diff: Warn-ID verschwindet aus dem NINA-Dashboard; (2) msgType=Cancel im CAP-Detail-Endpoint. Bei Aufhebung: DB-Update (is_active=FALSE, lifted_at), optional ✅ ENTWARNUNG-Nachricht ins Mesh
    • NINA: broadcast default aus — neue Warnungen haben broadcast_enabled=FALSE; Versand muss pro Warnung im Web-Viewer durch Admin aktiviert werden
    • NINA-Warnungstabelle: Status-Spalte — Aktiv (rot) / Aufgehoben (grün); aufgehobene Zeilen grau; aktive zuerst
    • Contacts: eigener Node gefiltertbot_name wird aus Heard-Nodes und Kontaktliste herausgefiltert
    • Contacts: Activity-Trend repariertsqlite_master-Check entfernt; Fehler werden als ERROR geloggt

    Geändert

    • NINA-DB: neue Spalten is_active und lifted_at (automatische Migration)
    • /api/nina/warnings: liefert is_active + lifted_at, sortiert aktive zuerst
    Downloads
  • v0.7.5 1c66551140

    v0.7.5
    All checks were successful
    Build and Push Docker Image / build (push) Successful in 7s
    Stable

    ppfeiffer released this 2026-04-19 12:01:29 +02:00 | 56 commits to main since this release

    [0.7.5] – 2026-04-19

    Neu

    • Nachrichten-Analyse-Dashboard (/stats) — Channel-Aktivität, stündliche Timeline (Chart.js), Top-Sender-Ranking und Nachrichten-Log; Kanal-Selektion filtert alle Panels gleichzeitig; Zeitraum-Filter 1/7/14/30 Tage
    • Nachrichtenaufzeichnung immer aktivtrack_all_messages-Toggle aus StatsCommand entfernt; record_message() und record_path_stats() laufen ohne Config-Abhängigkeit
    • Channel-Verwaltung in Companion-Einstellungen — Node-Channels ansehen (alle Rollen) und hinzufügen/entfernen (Admin) direkt in /settings/companion; Hashtag- und Custom-Channels mit Zufallsschlüssel-Generator; asynchrone Operation über channel_operations-Queue
    • API-Endpunkte für Nachrichten-Statistiken/api/message_stats/overview, /channels, /timeline, /senders, /messages
    • Version im Web-Viewer — Git-Tag via MESHCORE_BOT_VERSION Build-Arg in Docker eingebettet; erscheint in Footer (alle Seiten) und auf /about
    • Über-Seite im Einstellungsmenü/about als letzter Eintrag im Settings-Dropdown (nach Trenner)

    Geändert

    • /about aktuell — Features-Liste, Seiten-Übersicht und Links vollständig überarbeitet
    • docs/web-viewer.md aktuell — Alle Seiten dokumentiert, API-Endpunkte ergänzt, Channel-Management, Docker-Build-Anleitung mit Version
    • docs/service-plugins.md — NINA-Service in Plugin-Tabelle ergänzt
    • POST /api/channels und DELETE /api/channels/<idx> — Admin-only (HTTP 403 für Guest/Trusted)

    Downloads
  • v0.7.4 ff347d604b

    v0.7.4
    Some checks failed
    Deploy docs / deploy (push) Successful in 1m1s
    Tests / test (push) Failing after 1m28s
    Build and Push Docker Image / build (push) Successful in 12s
    Stable

    ppfeiffer released this 2026-04-19 10:06:50 +02:00 | 63 commits to main since this release

    Geändert

    • SQLite vollständig entferntpg_adapter wirft jetzt RuntimeError wenn DATABASE_URL fehlt; alle lokalen import sqlite3-Importe, PRAGMA-Aufrufe, WAL-Modus-Guards und SQLite-Pfade in app.py, services_api.py, greeter_command.py und telemetry_monitor_service.py entfernt; _telemetry_db_ready() gibt immer True zurück
    • Code-Bereinigungenset_device_name() (durch apply_device_settings() abgelöst), _get_db_path(), _calculate_distance() und _record_execution()-Wrapper entfernt; self.db_path = self.db_path Self-Zuweisung beseitigt; _last_device_settings_check/_last_health_update in __init__() verlagert
    • HBME Ingestor: DB-Reads gedrosseltpreview_mode und api_key werden nicht mehr bei jedem Paket aus der DB gelesen, sondern maximal alle 30 Sekunden
    Downloads
  • v0.7.3 753d56afb1

    v0.7.3 — Telemetrie-Fixes & Companion-Device-Sync
    Some checks failed
    Deploy docs / deploy (push) Successful in 1m1s
    Tests / test (push) Failing after 2m20s
    Build and Push Docker Image / build (push) Successful in 10s
    Stable

    ppfeiffer released this 2026-04-18 16:21:37 +02:00 | 66 commits to main since this release

    Behoben

    • Telemetrie-Node löschen schlug fehl (Connection-Pool-Erschöpfung)_get_telemetry_status() in services_api.py leckte bei jedem Seitenaufruf eine PostgreSQL-Verbindung, weil conn.close() nach einem ProgrammingError nicht erreicht wurde; alle DB-Funktionen mit try/finally gesichert
    • PostgreSQL: success = TRUE für INTEGER-Spaltenpg_adapter._BOOL_COLS enthielt fälschlicherweise "success"; poll_attempts.success und telemetry_readings.success sind INTEGER, kein BOOLEAN; aus der Liste entfernt
    • PostgreSQL: datetime("now", ...) mit doppelten Anführungszeichen — zwei Abfragen nutzten doppelte Quotes; eine durch Python-timedelta ersetzt, die andere korrigiert
    • TelemetryMonitor: success/is_manual als Boolean statt Integer — Werte werden jetzt explizit mit int() übergeben
    • TelemetryMonitor: Verbindungs-Rollback bei Ausnahmen — fehlende except-Zweige ergänzt

    Neu

    • Companion-Einstellungen → Gerät — beim Start und nach Änderungen über /settings/companion werden Name, GPS-Koordinaten und manual_add_contacts direkt per MeshCore-Befehlen ans verbundene Gerät gesendet; Bot pollt alle 15 s auf ausstehende Änderungen
    Downloads
  • v0.7.2 683cfded4e

    v0.7.2
    Some checks failed
    Deploy docs / deploy (push) Successful in 1m2s
    Tests / test (push) Failing after 2m21s
    Build and Push Docker Image / build (push) Successful in 10s
    Stable

    ppfeiffer released this 2026-04-18 10:59:20 +02:00 | 71 commits to main since this release

    Neu

    Admin-Einstellungen (/settings/admin)

    • Neue Admin-only-Seite für Konfigurationen, die ausschließlich Admins zugänglich sein sollen
    • SMTP/E-Mail-Konfiguration: Host, Port, Benutzer, Passwort, Absenderadresse, STARTTLS/SSL-Schalter
    • Test-Mail-Modal zum direkten Versenden einer Test-E-Mail
    • SMTP-Block aus /settings/users entfernt und hierhin verschoben

    MQTT Enable/Disable-Schalter (/settings/mqtt)

    • Neuer Toggle zum globalen Aktivieren/Deaktivieren aller MQTT-Verbindungen
    • Bei Deaktivierung werden alle laufenden Broker-Verbindungen sofort getrennt (kein Bot-Neustart nötig)
    • Flag wird in bot_config persistiert

    About-Seite (/about)

    • Neue Seite mit Versions-Badge, Feature-Übersicht und Repo-Link

    API-Dokumentation (/api-docs)

    • Swagger UI (v5) mit vollständiger OpenAPI-3.0-Spezifikation
    • 85 Endpunkte in 15 Gruppen
    • Öffnet als neues Browser-Fenster (Link im Footer)

    Realtime-Dashboard

    • 5-Minuten-Replay beim Subscribe: letzte Ereignisse werden beim Verbindungsaufbau nachgeliefert

    Telemetrie-Dokumentation

    • Neue Dokumentationsdatei docs/telemetry-monitor.md

    Behoben

    • PostgreSQL: MAX(a,b)GREATEST(a,b) in mesh_graph.py
    • PostgreSQL: ambige Spaltennamen in ON CONFLICT DO UPDATE SET qualifiziert
    • PostgreSQL: COUNT(*) ohne AliasAS count ergänzt
    • PostgreSQL: datetime() mit doppelten Anführungszeichen → Python-timedelta
    • PostgreSQL: VACUUM in Transaktion → separate Verbindung mit autocommit=True
    • Telemetrie-Monitor: Nodes nicht auswählbar_telemetry_db_ready()-Helper für PostgreSQL-Modus
    • Telemetrie: Kontakt-Dropdown leer im PostgreSQL-Modus behoben
    Downloads