Rollen-basiertes Zugriffsystem (public/user/admin), Registrierung mit E-Mail-Verifikation, bcrypt Passwort-Hashing, Admin-Benutzerverwaltung. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
241 lines
9.3 KiB
Markdown
241 lines
9.3 KiB
Markdown
# Changelog
|
|
|
|
## [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/me` fuer 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/send` erfordert 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 `/me` zeigt 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:XXXXX` fuer Wetter nach deutscher Postleitzahl
|
|
- Geocoding-Methoden `_geocode_plz()` und `_reverse_geocode()` im Bot
|
|
|
|
### Changed
|
|
- Help-Text zeigt `plz:XXXXX` Option 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/config` liest 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.css` verschoben
|
|
- 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/send` zum 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.yaml` fuer Job-Konfiguration mit File-Watcher (Live-Reload)
|
|
- Eigener minimaler Cron-Parser (Minute, Stunde, Tag, Monat, Wochentag)
|
|
- Scheduler-Webseite unter `/scheduler` zum 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
|