ppfeiffer
edfe73b8ca
fix(bot): connection.established race condition mit threading.Event ( fixes #2 )
...
TCPInterface-Konstruktor kehrt zurück bevor das Event aus dem Bibliotheks-Thread
feuert. _conn_event.wait(timeout=10s) wartet sauber auf _on_connection statt
sofort den Fallback auszulösen.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-19 17:30:36 +01:00
ppfeiffer
cc392a125a
fix(packets): informativer Payload + eigene Telemetrie unterdrücken ( fixes #3 )
...
- bot.py: vollständige Payload-Daten für Position, Telemetry (Device+Env),
NodeInfo (hw_model), Routing (error), Traceroute (hops), Neighborinfo (count)
- packets.js: fmtPayload() zeigt alle Felder; TELEMETRY_APP vom eigenen Node
(my_node_id / short_name FTLW) wird unterdrückt und nicht gezählt
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-19 17:20:35 +01:00
ppfeiffer
407addc919
fix(map): Legende nach topleft verschoben ( fixes #5 )
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-19 17:11:41 +01:00
ppfeiffer
84e1354ce5
Merge pull request 'v0.8.4: NINA Sofortabfrage nach Speichern + Zeitstempel letzte Abfrage' ( #9 ) from nina_test into main
2026-02-19 16:26:49 +01:00
ppfeiffer
2db03510c8
v0.8.4: NINA Sofortabfrage nach Speichern + Zeitstempel letzte Abfrage
...
- Konfiguration speichern löst sofort eine NINA-Abfrage aus (trigger_poll)
- Frontend lädt Config 5s nach Save neu um last_poll-Zeitstempel zu zeigen
- Unterhalb Abfrageintervall-Feld: Datum/Uhrzeit der letzten Abfrage
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-19 16:18:15 +01:00
ppfeiffer
f2ffe0fd9d
Merge pull request 'v0.8.3: NINA Gebietsanzeige, AGS-Ortsname, Sachsen-Combobox' ( #8 ) from nina_test into main
2026-02-19 16:10:32 +01:00
ppfeiffer
33928fca7b
v0.8.3: NINA Gebietsanzeige + AGS-Ortsname + Sachsen-Combobox
...
- Warnmeldungen zeigen jetzt das Herkunftsgebiet (AGS-Regionsname) in
der Weboberfläche (neue Spalte "Gebiet") und im Mesh-Nachrichtentext
(z.B. "[NINA] Schwerwiegend: Sturmböen (Dresden, Stadt)")
- AGS-Code-Tabelle zeigt lesbaren Ortsnamen als zweite Spalte
- Datalist mit allen sächsischen AGS-Codes bei der Eingabe
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-19 16:09:55 +01:00
ppfeiffer
ff9ecadd75
Merge pull request 'fix: NINA mapData nur ohne AGS-Codes abfragen (v0.8.2)' ( #7 ) from nina_test into main
2026-02-19 13:29:32 +01:00
ppfeiffer
e788fc7201
fix: NINA mapData nur ohne AGS-Codes abfragen (v0.8.2)
...
mapData liefert bundesweite Meldungen ohne geografische Filterung.
Mit konfigurierten AGS-Codes deckt der Dashboard-Endpunkt bereits
alle Quellen regional ab – mapData wird dann nicht mehr benötigt
und würde Meldungen außerhalb der konfigurierten Regionen zeigen.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-19 13:27:55 +01:00
ppfeiffer
77854fcfda
Merge pull request 'feat: NINA v0.8.1 – Wiederholungsintervall, AGS-Tabelle, Badge-Fix' ( #6 ) from nina_test into main
2026-02-19 12:47:57 +01:00
ppfeiffer
2feff2c2c7
feat: NINA Wiederholungsintervall, AGS-Tabelle, Badge-Fix (v0.8.1)
...
- resend_interval: zweiter Intervall fuer erneutes Senden aktiver
Warnmeldungen ins Mesh (nur bei send_to_mesh=true). Standard 3600s.
NinaBot._resend_loop() laeuft als eigener asyncio-Task; _active-Dict
haelt aktive Warnungen vor (Cancel entfernt Eintraege).
- AGS-Code-Verwaltung als Tabelle mit Trash-Button je Zeile statt
Badges mit X-Button.
- Severity-Badges: explizite text-white/text-dark, kein bg-opacity-85
mehr - lesbar in beiden Themes.
- colspan-Fix: leere Alerts-Zeile auf 5 Spalten korrigiert.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-19 12:44:29 +01:00
ppfeiffer
4c465ed170
Merge pull request 'feat: NINA BBK Warn-App Integration (v0.8.0)' ( #4 ) from nina_test into main
2026-02-19 11:57:07 +01:00
ppfeiffer
ee3208769c
feat: NINA send_to_mesh-Schalter + Dresden-AGS-Codes
...
- send_to_mesh: true/false – trennt Abfrage vom Mesh-Versand.
false = Monitor-Modus: Warnmeldungen werden abgerufen und in der
Weboberfläche angezeigt, aber NICHT ins Meshtastic-Netz gesendet.
WebSocket-Event enthaelt monitor_only-Flag (Anzeige per Icon).
- nina.yaml/conf/nina.yaml: send_to_mesh=false als sichere Voreinstellung
+ 5 AGS-Codes fuer den Raum Dresden vorbelegt:
Stadt Dresden (146120000000), LK Meissen (146270000000),
LK Saechs. Schweiz-Osterzgebirge (146280000000),
LK Bautzen (146250000000), LK Goerlitz (146260000000)
- nina.html: zweiter Toggle "Ins Mesh senden"
- nina.js: Schalter in load/save + Statusbadge (Mesh+Web / Nur Web)
+ Mesh-Spalte in Alerts-Tabelle mit broadcast/eye-Icon
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-19 11:41:42 +01:00
ppfeiffer
0ca0ffb0d1
feat: NINA BBK Warn-App Integration (v0.8.0)
...
Neue NINA-Integration: Automatisches Polling der BBK-Warn-API
(warnung.bund.de/api31) und Weiterleitung von Warnmeldungen ins
Meshtastic-Netz. Separate Admin-Konfigurationsseite (/nina) analog
zum Scheduler.
- meshbot/nina.py: NinaBot – Polling, De-Duplikation, Schweregrad-
und Quellen-Filterung, WebSocket-Broadcast (nina_alert)
- nina.yaml + conf/nina.yaml: Hot-reload-faehige Konfiguration
- static/nina.html + static/js/nina.js: Konfigurationsseite mit
AGS-Code-Verwaltung, Quellen-Auswahl und Live-Alerts-Tabelle
- webserver.py: GET/PUT /api/nina/config + GET /nina (Admin-only)
- main.py: NinaBot initialisieren, watch/start/stop im Lifecycle
- app.js: NINA-Sidebar-Eintrag (Admin-only, shield-exclamation)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-19 11:21:01 +01:00
ppfeiffer
dc4457d25e
docs/SERVICE.md hinzugefügt
2026-02-19 07:40:28 +01:00
ppfeiffer
debb138b00
docs/Service_install hinzugefügt
2026-02-19 07:39:23 +01:00
ppfeiffer
95fade502d
fix: Badge-Beschriftung im Scheduler sichtbar machen ( #1 )
...
Explizite Textfarben (text-dark/text-white) für Typ-Badges hinzugefügt,
damit die Beschriftung auf bg-warning/bg-info Hintergrund lesbar ist.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 07:20:57 +01:00
ppfeiffer
f2aa69333d
feat: v0.7.1 - Hell-Theme als Standard
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-18 18:49:46 +01:00
ppfeiffer
fad830f6d5
feat: v0.7.0 - Docker-Verbesserungen
...
- Dockerfile: EXPOSE 8080 → 8081 + HEALTHCHECK auf /api/stats
- docker-compose.yml: healthcheck + json-file logging (10MB/3 Dateien)
- conf/config.yaml: Version 0.7.0, Host/Port aktualisiert
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-18 18:23:27 +01:00
ppfeiffer
997a29842f
feat: v0.6.15 - Scheduler-Variablen, Footer, sauberer WS-Shutdown
...
- Scheduler Nachrichten: Template-Variablen {time}, {date}, {datetime},
{weekday}, {nodes}, {nodes_24h} serverseitig aufgelöst
- Scheduler UI: klickbare Variablen-Badges beim Nachrichtenfeld-Modus
- Footer auf allen Seiten: © MeshDD / PPfeiffer · vX.Y.Z · MM/YYYY
- Fix: WS-Verbindungen vor runner.cleanup() explizit geschlossen
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-18 18:13:15 +01:00
ppfeiffer
0fd401a395
feat: v0.6.14 - Pakettypen-Diagramm im Dashboard
...
Viertes Chart-Panel zeigt Pakettyp-Verteilung der letzten 24h als
Doughnut-Diagramm, farblich nach portnum kodiert.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-18 18:02:15 +01:00
ppfeiffer
9306cce209
feat: v0.6.13 - Version in Navbar, Rolling 24h, Karten-Transparenz
...
- Version in Navbar aller Seiten (app.js holt /api/stats beim Init)
- Statistiken: Anfragen-Zähler rolling 24h statt Mitternacht-Reset
- Karte: Nodes nach Alter transparent (<24h voll, 24-48h 45%, 48-72h 20%, >72h unsichtbar)
- Legende um Alter-Sektion erweitert
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-18 17:54:39 +01:00
ppfeiffer
ac98191143
fix: v0.6.12 - Paket-Log Typ-Badge Text immer lesbar
...
Badges nutzen solide bg-{color} mit text-white (warning: text-dark)
statt bg-opacity-20 text-{color} – Typ-Label dadurch in allen Themes
klar sichtbar.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-18 17:42:46 +01:00
ppfeiffer
ed3757199e
fix: v0.6.11 - Paket-Log Badge/Filter-Verbesserungen
...
- Badges gleich breit via CSS min-width:5.5rem
- Typ-Filter-Pills in Typ-Farbe (aktiv gefüllt, inaktiv Outline)
- Undekodierbare Pakete (leerer Portnum) als "?" im Filter
- Kanal-Spalte zeigt Kanalname statt Nummer wenn verfügbar
- Statusdot nutzt classList.add/remove('connected') konsistent
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-18 17:33:45 +01:00
ppfeiffer
6187bb4419
feat: v0.6.10 - Paket-Log-Seite und größeres Node-Modal
...
- Neue öffentliche Seite /packets: Echtzeit-Tabelle aller empfangenen
Meshtastic-Pakete via WebSocket mit Typ-Filter, Pause und Clear
- DB: packets-Tabelle + insert_packet / get_recent_packets
- bot.py: alle Pakete loggen + WS-Broadcast (public)
- webserver.py: /packets Route + /api/packets + initial_packets im WS
- Sidebar: Eintrag 'Pakete' (öffentlich)
- Node-Modal: modal-xl + scrollable, Kartenhöhe 250→300px
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-18 17:17:14 +01:00
ppfeiffer
6bb04ec828
fix: v0.6.9 - _on_node_updated fehlende interface-Parameter
...
meshtastic.node.updated sendet (node, interface), _on_node_updated
akzeptierte nur (node) -> SenderUnknownMsgDataError beim Empfang
von Node-Updates.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-18 16:09:55 +01:00
ppfeiffer
0b68c0417d
fix: v0.6.8 - Bugfixes: Node-Sync, Modal, Badge, CSS
...
- bot.py: pub.subscribe vor TCPInterface verschoben; Nodes beim Start
wurden nicht geladen da connection.established/node.updated Events
verpasst wurden. Fallback-Sync nach Konstruktor ergaenzt.
- HTML: tabler.min.js -> bootstrap.bundle.min.js; Tabler exportiert
bootstrap nicht global, new bootstrap.Modal() schlug fehl.
- dashboard.js: badge-pill -> rounded-pill (Bootstrap 4 -> 5)
- style.css: --tblr-bg-body Typo -> --tblr-body-bg
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-18 16:01:49 +01:00
ppfeiffer
6499d90921
docs: Dashboard-Verbesserungen Übersicht (v0.6.2 - v0.6.7)
...
Dokumentation aller implementierten Dashboard-Features:
Prio 1-7 + Tabler-Theme, offene Punkte
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-17 22:48:18 +01:00
ppfeiffer
f2c6ba8e62
feat: v0.6.7 - Dashboard-Upgrade: Tabler-Theme, Charts, Kanalfilter, Node-Suche
...
- Tabler 1.4.0 als Admin-Theme: Bootstrap CSS/JS in allen 6 HTML-Seiten ersetzt
- style.css komplett ueberarbeitet: Inter-Font, Tabler CSS-Variablen, Schatten,
verfeinerte Sidebar (Rounded Active-Links), Hover-Animation auf Info-Boxen,
pulsierender Status-Dot
- app.js als shared Modul: Duplikation in allen JS-Dateien eliminiert (initPage,
applyTheme, escapeHtml, Sidebar-Injektion)
- WebSocket Auth-Fix: Nachrichten nur noch an eingeloggte Clients (auth_clients)
- Bot-Uptime + Meshtastic-Verbindungsstatus in Dashboard und Stats-API
- Dark Mode Kartentiles: CartoDB Dark Matter fuer Karte + Node-Modal
- 3 Charts: Kanal-Anfragen (Doughnut), Hop-Verteilung (Bar), Hardware Top 5
- Nodes-Tabelle: Suchfeld, Online-Filter, sortierbare Spalten
- Nachrichten Kanalfilter: Filter-Buttons im Nachrichten-Card-Header
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-17 22:43:35 +01:00
ppfeiffer
822c1a0991
feat: v0.6.1 - Docker-Stack fuer Container-Betrieb
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 21:21:50 +01:00
ppfeiffer
78bf66d6e1
release: v0.6.0 - Node-Detail-Modal, Kanal-Tracking, taeglicher Reset
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 16:46:01 +01:00
ppfeiffer
9edc14be0a
fix: v0.5.10 - Kanal-Badge in Nachrichten im Light-Mode besser lesbar
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 16:40:03 +01:00
ppfeiffer
fecfb7398f
fix: v0.5.9 - Kanal-Badges immer alle Kanaele sortiert anzeigen, Label entfernt
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 16:35:58 +01:00
ppfeiffer
0232dfccd5
feat: v0.5.8 - Anfragen taeglich zuruecksetzen, Kommando-Badges entfernt
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 16:30:45 +01:00
ppfeiffer
1d768c6921
feat: v0.5.7 - Anfragen pro Kanal mit Kanalnamen im Dashboard
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 16:24:26 +01:00
ppfeiffer
7bf58a32fb
feat: v0.5.6 - Node-Detail-Modal mit Minikarte im Dashboard
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 16:18:45 +01:00
ppfeiffer
5b2a5867d5
fix: v0.5.5 - SMTP auf EmailMessage + async SMTP-Client umgestellt
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 15:54:40 +01:00
ppfeiffer
b1fa21504b
feat: v0.5.4 - Admin-Benutzerverwaltung mit CRUD, Passwort-Reset und Info-Mail
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 20:45:30 +01:00
ppfeiffer
ee361acf33
refactor: v0.5.3 - Zugangsdaten in .env auslagern
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 20:09:48 +01:00
ppfeiffer
7e441a8ade
fix: v0.5.2 - SMTP TLS/STARTTLS automatisch anhand Port (465/587)
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 20:05:26 +01:00
ppfeiffer
49e8b409bd
fix: v0.5.1 - Fernet key setup fuer EncryptedCookieStorage korrigiert
...
Fernet-Objekt direkt an EncryptedCookieStorage uebergeben statt
bytes (die intern nochmal base64-encoded wurden).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 19:46:19 +01:00
ppfeiffer
0d6b26f4f8
feat: v0.5.0 - Benutzerverwaltung mit Session-Authentifizierung
...
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>
2026-02-16 19:38:17 +01:00
ppfeiffer
8f79c197c7
release: v0.4.0 - Minor version bump
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 18:14:50 +01:00
ppfeiffer
418637a0a7
docs: update CLAUDE.md version to 0.3.15
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 18:13:44 +01:00
ppfeiffer
f6bbca3fe0
chore: v0.3.15 - Remove debug logging from _send_text
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 18:13:12 +01:00
ppfeiffer
bd155cd460
docs: update CLAUDE.md version to 0.3.14
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 18:09:57 +01:00
ppfeiffer
cd4e31c63b
feat: v0.3.14 - Change prefix to ?, wider channel select, send logging
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 18:09:25 +01:00
ppfeiffer
da79daddc5
docs: update CLAUDE.md version to 0.3.13
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 18:01:13 +01:00
ppfeiffer
248ebbbc43
fix: v0.3.13 - Store and broadcast sent messages before radio send
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 18:00:42 +01:00
ppfeiffer
b0f6555bc2
docs: update CLAUDE.md version to 0.3.12
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 17:57:02 +01:00