12 KiB
12 KiB
Changelog
[0.6.1] - 2026-02-17
Added
- Dockerfile fuer Container-Betrieb (python:3.12-slim)
- docker-compose.yml mit Host-Netzwerk und Named Volume fuer SQLite
- conf/ Verzeichnis mit Beispiel-Konfigurationsdateien fuer Docker
- .dockerignore fuer saubere Docker-Builds
[0.6.0] - 2026-02-17
Summary
- Node-Detail-Modal mit Minikarte im Dashboard
- Anfragen-Tracking pro Kanal mit taeglichem Reset
- Kanal-Badges fuer alle Kanaele im Dashboard
Added
- Node-Detail-Modal: Klick auf Node-Zeile oeffnet Modal mit allen Node-Daten und Leaflet-Minikarte
- Anfragen-Aufschluesselung pro Kanal mit Kanalnamen im Dashboard
- Channel-Spalte in der commands-Tabelle (mit automatischer DB-Migration)
Changed
- Anfragen-Zaehler zeigt nur Anfragen von heute (Reset um Mitternacht)
- Kanal-Badges zeigen immer alle Kanaele aufsteigend sortiert (auch bei 0 Anfragen)
- Kanal-Badge in Nachrichten im Light-Mode besser lesbar
[0.5.10] - 2026-02-17
Fixed
- Kanal-Badge in Nachrichten im hellen Modus besser lesbar (bg-secondary statt bg-body-secondary)
[0.5.9] - 2026-02-17
Changed
- Kanal-Badges zeigen immer alle Kanaele aufsteigend sortiert mit Kanalnamen (auch bei 0 Anfragen)
- Label-Zeile "Anfragen/Kanal" entfernt
[0.5.8] - 2026-02-17
Changed
- Anfragen-Zaehler zeigt nur noch Anfragen von heute (Reset um Mitternacht)
- Kommando-Badges entfernt, nur noch Kanal-Aufschluesselung angezeigt
[0.5.7] - 2026-02-17
Added
- Anfragen-Aufschluesselung pro Kanal mit Kanalnamen im Dashboard
- Channel-Spalte in der commands-Tabelle (mit DB-Migration fuer bestehende DBs)
[0.5.6] - 2026-02-17
Added
- Node-Detail-Modal im Dashboard: Klick auf Node-Zeile oeffnet Modal mit allen Node-Daten
- Leaflet-Minikarte im Modal zeigt Node-Position (oder "Keine Position" Hinweis)
- Zwei-Spalten-Layout: Datentabelle links, Karte rechts (responsive)
[0.5.5] - 2026-02-17
Changed
- SMTP-Versand auf EmailMessage + aiosmtplib.SMTP (async context manager) umgestellt
- Plaintext-Fallback fuer nicht-HTML-faehige E-Mail-Clients
- SMTP-Host zurueck auf ssl0.ovh.net
[0.5.4] - 2026-02-16
Added
- Admin: Benutzer direkt anlegen mit Passwort und Rollenwahl
- Admin: Benutzer bearbeiten (Name, E-Mail, Rolle) per Modal
- Admin: Passwort zuruecksetzen mit optionalem E-Mail-Versand
- Admin: Info-Mail mit Zugangsdaten an Benutzer senden
- Passwort-Generator (crypto.getRandomValues) in Admin-UI
- Verifikationslink wird immer im Log ausgegeben (nicht nur ohne SMTP)
Changed
- Admin-Seite komplett ueberarbeitet mit Modals fuer alle Aktionen
- E-Mail-Funktionen um
send_user_info_emailerweitert
[0.5.3] - 2026-02-16
Changed
- Zugangsdaten (AUTH_SECRET_KEY, SMTP-*) aus config.yaml in .env-Datei ausgelagert
- Neuer
config.env()Helper fuer Umgebungsvariablen .env.exampleals Vorlage hinzugefuegt- E-Mail-Versand in gemeinsame
_send_email()Hilfsfunktion refaktoriert
[0.5.2] - 2026-02-16
Fixed
- SMTP-Versand: TLS (Port 465) und STARTTLS (Port 587) automatisch anhand des Ports
[0.5.1] - 2026-02-16
Fixed
- Fernet key setup fuer EncryptedCookieStorage korrigiert (doppelte Base64-Kodierung)
[0.5.0] - 2026-02-16
Added
- Benutzerverwaltung mit Session-basierter Authentifizierung
- Registrierung mit E-Mail-Verifikation (OTP-Token via aiosmtplib)
- Passwort-Hashing mit bcrypt (12 Rounds, min. 8 Zeichen)
- Benutzerrollen: public (nicht eingeloggt), user, admin
- Login/Register/Passwort-vergessen Seite (
/login,/register) - Admin-Benutzerverwaltung (
/admin) mit Rolle aendern, verifizieren, loeschen - Session-Management via aiohttp-session mit EncryptedCookieStorage
- Auth-Middleware setzt
request['user']auf allen Routen - API-Endpoint
GET /api/auth/mefuer Frontend-Rollenabfrage - Auth-Routen: login, register, logout, verify, set-password, forgot-password, reset-password
- Admin-API: users CRUD, Rolle aendern, manuell verifizieren
- Navbar zeigt User-Name + Logout oder Login-Button auf allen Seiten
- Sidebar zeigt Scheduler/Settings/Admin nur fuer Admins (JS-gesteuert)
Changed
- Dashboard: Nachrichten-Card und Sende-Card nur fuer eingeloggte User sichtbar
- API
/api/senderfordert User-Login - API
/api/node/config,/api/scheduler/*erfordern Admin-Rolle - Neue DB-Tabellen: users, tokens, email_logs
- config.yaml: auth + smtp Sektionen hinzugefuegt
- requirements.txt: bcrypt, aiohttp-session, cryptography, aiosmtplib
[0.4.0] - 2026-02-16
Summary
- Node-Einstellungen Seite, Karte im Sidebar-Layout
- Wetter mit Ortsnamen, PLZ-Support, Luftdruck und Taupunkt
- /me Befehl, Ping mit Hop-Anzahl
- Gesendete Nachrichten im Dashboard mit gruener Bubble
- Sende-Card als eigene Komponente, Command-Prefix "?"
[0.3.15] - 2026-02-16
Changed
- Debug-Logging aus _send_text entfernt
[0.3.14] - 2026-02-16
Changed
- Command-Prefix von "/" auf "?" geaendert
- Channel-Combobox in Sende-Card breiter (180px) fuer vollstaendige Channelnamen
- Debug-Logging in _send_text fuer Diagnose der Nachrichtenspeicherung
[0.3.13] - 2026-02-16
Fixed
- Gesendete Nachrichten werden jetzt vor dem Radio-Send gespeichert und broadcastet
- Getrenntes Exception-Handling fuer DB-Store und Radio-Send
[0.3.12] - 2026-02-16
Fixed
- Eigene Nachrichten-Echos werden in _handle_packet gefiltert (keine Doppelspeicherung)
- Bot-Nachrichten erscheinen korrekt im Dashboard-Nachrichtenfenster
[0.3.11] - 2026-02-16
Changed
- Sende-Zeile als eigene Card mit gruener Oberkante oberhalb der Nodes/Nachrichten-Cards
- Nachrichten-Card ohne Footer (schlanker)
[0.3.10] - 2026-02-16
Added
- Gesendete Bot-Nachrichten werden im Nachrichtenfenster angezeigt
- Eigene Nachrichten mit gruener Bubble und rechtsbuendiger Ausrichtung
- Bot-Nachrichten werden in DB gespeichert und via WebSocket broadcastet
[0.3.9] - 2026-02-16
Added
- Neuer Befehl
/mezeigt eigene Node-Infos (Name, HW, Hops, SNR, RSSI, Batterie, Position) - Wetter zeigt Luftdruck NN (hPa) und Taupunkt (°C)
[0.3.8] - 2026-02-16
Changed
- Ping-Antwort zeigt Hop-Anzahl des anfragenden Nodes (z.B. "Pong ueber 2 Hops!")
[0.3.7] - 2026-02-16
Added
- Weather-Befehl zeigt Ortsnamen via Reverse-Geocoding (Nominatim)
- Optionales Argument
plz:XXXXXfuer Wetter nach deutscher Postleitzahl - Geocoding-Methoden
_geocode_plz()und_reverse_geocode()im Bot
Changed
- Help-Text zeigt
plz:XXXXXOption beim Weather-Befehl
[0.3.6] - 2026-02-15
Added
- Node-Einstellungen Seite (
/settings) zeigt Geraet, LoRa, Channels, Position, Power, Bluetooth/Netzwerk - Neuer API-Endpoint
GET /api/node/configliest Config vom lokalen Meshtastic-Node get_node_config()Methode im Bot (liest localConfig, myInfo, metadata via Protobuf)- Sidebar-Eintrag "Einstellungen" mit Gear-Icon auf allen Seiten
Changed
- Karte (
/map) im Sidebar-Layout statt Vollbild (Top-Navbar, Sidebar, Content-Wrapper) - Karte oeffnet im selben Tab statt
target="_blank" - Status-Info und Node-Count in Karten-Navbar integriert
- Map-Styles (Tooltip, Legende) in zentrale
style.cssverschoben - Sidebar-Navigation auf allen 4 Seiten konsistent (Dashboard, Scheduler, Karte, Einstellungen)
[0.3.5] - 2026-02-15
Changed
- Dashboard und Scheduler auf AdminLTE-Style umgestellt
- Feste Sidebar-Navigation (Dashboard, Scheduler, Karte) mit Active-State
- Fixed Top-Navbar mit Branding, Status-Dot und Theme-Toggle
- Content-Wrapper mit leicht abgesetztem Hintergrund
- Info-Boxes im AdminLTE-Stil (Icon-Spalte + Inhalt) statt Cards
- Card-Outline mit farbiger Oberkante (info/warning) statt Borders
- Table-Striped fuer bessere Lesbarkeit
- Sidebar responsive: auf Mobile als Overlay mit Backdrop
- Einheitliches Layout auf Dashboard und Scheduler
[0.3.4] - 2026-02-15
Fixed
- Kanalnamen in Nachrichten fehlten beim Laden (Channels werden jetzt vor Messages gesendet)
Changed
- Dashboard deutlich kompakter: weniger Padding, kleinere Schriftgroessen
- Stat-Cards, Navbar, Panels und Nachrichten platzsparender
- Hover-Animationen und Pulse-Effekt entfernt (schlichter)
[0.3.3] - 2026-02-15
Changed
- Dashboard-Layout modernisiert: Glassmorphism-Navbar (sticky, blur-Effekt)
- Stat-Cards mit Gradient-Akzentlinie, dezenten Hintergrund-Icons und Hover-Lift
- Nachrichten als Chat-Bubbles statt flache Listeneintraege
- Buttons und Badges als Rounded-Pills fuer moderneren Look
- Sende-Leiste mit eigenem abgesetztem Styling
- Panel-Cards borderless mit Soft-Shadow
- Node-Count-Badge als Pill mit halbtransparentem Hintergrund
- Status-Dot mit sanfter Pulse-Animation bei Verbindung
- Breakdowns-Leiste mit subtilerem Hintergrund
[0.3.2] - 2026-02-15
Added
- Nachrichten senden direkt aus dem Dashboard (Channel-Dropdown + Textfeld)
- Neuer API-Endpoint
POST /api/sendzum Senden von Textnachrichten send_message()Methode im Bot fuer freie Textnachrichten- Scheduler unterstuetzt neuen Typ "Nachricht" neben "Kommando"
- Typ-Auswahl (Kommando/Nachricht) im Scheduler-Modal mit dynamischem Label
- Typ-Spalte in der Scheduler-Tabelle
[0.3.1] - 2026-02-15
Added
- Scheduler-Feature: zeitgesteuerte Bot-Kommandos via Cron-Ausdruecke
- Neue Datei
scheduler.yamlfuer Job-Konfiguration mit File-Watcher (Live-Reload) - Eigener minimaler Cron-Parser (Minute, Stunde, Tag, Monat, Wochentag)
- Scheduler-Webseite unter
/schedulerzum Verwalten der Jobs (CRUD) - REST API: GET/POST/PUT/DELETE
/api/scheduler/jobs - Live-Updates der Scheduler-Seite via WebSocket
execute_command()Methode im Bot fuer programmatische Kommando-Ausfuehrung- Scheduler-Link in der Dashboard-Navbar
[0.3.0] - 2026-02-15
Added
- Produktiver Betrieb als Systemd-Service
[0.2.6] - 2026-02-15
Added
- WordPress-Beitrag unter docs/wordpress-beitrag.html
- Systemd Service-File meshdd-bot.service
- Nachrichten-Splitting mit [x/y] Nummerierung
Changed
- Pause zwischen gesplitteten Nachrichten auf 3 Sekunden erhöht
[0.2.5] - 2026-02-15
Added
- Automatisches Aufteilen langer Nachrichten (max 170 Zeichen) mit 1,5s Pause
Changed
- /mesh Befehl: bessere Lesbarkeit mit Absätzen und Einrückungen
- Hop-Verteilung: "Direkt", "1 Hop", "2 Hops" statt "0h", "1h", "2h"
[0.2.4] - 2026-02-15
Added
- Neuer Befehl /mesh - zeigt Mesh-Netzwerk-Infos (Nodes online/gesamt, aktiv 24h, Positionen, Hop-Verteilung, Top-Hardware)
[0.2.3] - 2026-02-15
Added
- Kommando-Tracking in der Datenbank (neue Tabelle
commands) - Stats Card "Aktiv (24h)" zeigt Nodes der letzten 24 Stunden
- Stats Card "Anfragen" zeigt beantwortete Bot-Kommandos
- Kommando-Aufschlüsselung als Badges in voller Breite (z.B. /help 5, /ping 3)
Changed
- Stats Cards von 4er auf 3er Grid umgestellt plus Breakdown-Zeile
- Bot /stats Kommando zeigt aktualisierte Statistiken
[0.2.2] - 2026-02-15
Changed
- SNR-Spalte rechtsbündig, Batterie-Spalte linksbündig
- Spaltenabstände in der Nodesliste reduziert (kompakteres Layout)
- Spaltenüberschrift "Zuletzt gesehen" zu "Zuletzt" gekürzt
[0.2.1] - 2026-02-15
Changed
- Stats Cards kompakter (kleinerer Padding und Schrift)
- Batteriestatus mit Bootstrap Icons und Farbcodierung (grün/gelb/rot)
- Version wird in der Navbar angezeigt
- Karte fittet beim Öffnen auf alle Nodes
[0.2.0] - 2026-02-15
Added
- Zentrale config.yaml mit Live-Reload (File-Watcher)
- Konfigurierbarer Command-Prefix (Standard: /)
- Kanalnamen in der Nachrichtenliste
- Hops-Spalte in der Nodes-Tabelle
- Karte: Farbcodierung der Nodes nach Hop-Anzahl mit Legende
- Karte: Tooltip mit Node-Infos beim Hover
- Hell/Dunkel Theme-Umschalter im Dashboard
- Node-Namen (LongName/ShortName) werden korrekt angezeigt
- Nachrichten werden beim Connect aus der DB geladen
- Wetter-Fallback auf Dresden Zentrum bei fehlender Position
Changed
- Konfiguration von Environment-Variablen auf config.yaml umgestellt
- Version wird in config.yaml statt version.py verwaltet
Removed
- Git pre-commit Hook (manuelle Versionierung)
- version.py (ersetzt durch config.yaml)
[0.1.2] - 2026-02-15
Changed
- Auto-commit update
[0.1.1] - 2026-02-15
Changed
- Dashboard auf Bootstrap 5.3 Dark Theme umgestellt
- Bootstrap Icons hinzugefügt
- Responsive Stat-Cards, verbessertes Node-Table-Layout
- Online-Nodes werden grün hervorgehoben
[0.1.0] - 2026-02-15
Added
- Initial release
- Meshtastic Bot mit TCP-Verbindung
- Bot-Kommandos: !ping, !nodes, !info, !help, !weather, !stats, !uptime
- SQLite-Datenbank für Nodes und Nachrichten
- Web-Dashboard mit Live-Updates via WebSocket
- Leaflet-Karte mit Node-Positionen
- Automatische Versionierung via Git pre-commit Hook