- Python 100%
| config | ||
| modules | ||
| .gitignore | ||
| main.py | ||
| meshdd-bot.service | ||
| package-lock.json | ||
| QUICK_START.md | ||
| README.md | ||
| requirements.txt | ||
| VERSION_1.1.0_UPDATE.md | ||
🚨 NINA Warn-Bot für Meshtastic Dresden
Ein spezialisierter Bot, der NINA/BBK Warnungen für den Großraum Dresden lädt und über Meshtastic versendet. Zusätzlich wird ein Webserver bereitgestellt, der die aktuellen Warnungen anzeigt.
✨ Features
- 🔔 Automatisches Laden von NINA/BBK Warnungen (alle 5 Minuten)
- 📡 Meshtastic-Integration via TCP oder Serial
- 🗺️ Großraum Dresden - vorkonfiguriert für Dresden Stadt und Umgebung
- 🌐 Web-Dashboard zur Anzeige aktueller Warnungen
- ⚡ Echtzeit-Benachrichtigungen bei neuen Warnungen
- 🎚️ Schweregrad-Filter (Extreme, Severe, Moderate)
- 📊 Statistiken nach Schweregrad
📋 Voraussetzungen
# Python 3.9+
python3 --version
# Meshtastic-Gerät mit TCP-Server oder Serial-Verbindung
🚀 Installation
1. Repository klonen / Dateien kopieren
mkdir nina_warn_bot
cd nina_warn_bot
2. Abhängigkeiten installieren
pip install meshtastic pyyaml aiohttp requests
3. Konfiguration anpassen
Editiere config/bot_config.yaml:
meshtastic:
connection_type: "tcp"
tcp_host: "192.168.178.100" # ← Deine Meshtastic-IP
tcp_port: 4403
warnings:
check_interval: 300 # Sekunden (5 Minuten)
send_to_mesh:
enabled: true
channel: 0 # LongFast Kanal
🎯 Verwendung
Bot starten
python3 nina_bot.py
Web-Dashboard öffnen
http://localhost:8080
Bot beenden
Strg + C
📁 Projektstruktur
nina_warn_bot/
├── nina_bot.py # Hauptprogramm
├── config/
│ └── bot_config.yaml # Konfiguration
├── modules/
│ ├── warning_system.py # NINA API Integration
│ ├── meshtastic_handler.py # Meshtastic Verbindung
│ └── webserver.py # Web-Dashboard
├── data/ # Datenverzeichnis (automatisch)
└── logs/
└── nina_bot.log # Log-Datei
⚙️ Konfiguration
Regionen (Dresden)
Die folgenden Regionen sind vorkonfiguriert:
091620000000- Dresden (Stadt)146250000000- Landkreis Sächsische Schweiz-Osterzgebirge146260000000- Landkreis Bautzen (teilweise)146280000000- Landkreis Meißen (teilweise)
Schweregrad-Filter
Standardmäßig werden folgende Schweregrade gesendet:
Extreme🔴 - Extreme GefahrSevere🟠 - Schwere GefahrModerate🟡 - Mäßige Gefahr
Optional: Minor 🟢 - Geringe Gefahr (auskommentiert)
Benachrichtigungen
warnings:
alert_on_new: true # Neue Warnungen
alert_on_update: true # Aktualisierungen
alert_on_cancel: false # Aufhebungen
🌐 Web-Dashboard
Das Dashboard zeigt:
- ✅ Aktuelle Warnungen mit Details
- 📊 Statistiken nach Schweregrad
- 📡 Meshtastic Verbindungsstatus
- 🕐 Letzte Aktualisierung
Auto-Refresh: Alle 60 Sekunden (konfigurierbar)
Responsive Design: Funktioniert auf Desktop und Mobile
📡 Meshtastic-Integration
TCP-Verbindung (empfohlen)
meshtastic:
connection_type: "tcp"
tcp_host: "192.168.178.100"
tcp_port: 4403
Serial-Verbindung (alternativ)
meshtastic:
connection_type: "serial"
serial_port: "/dev/ttyUSB0"
🔔 Nachrichten-Format
Warnungen werden kompakt formatiert:
🔴 NEU: Unwetterwarnung vor starkem Gewitter
Es besteht die Gefahr von Starkregen...
Emoji nach Schweregrad:
- 🔴 Extreme
- 🟠 Severe
- 🟡 Moderate
- 🟢 Minor
📊 API-Endpunkte
Aktuelle Warnungen
curl http://localhost:8080/api/warnings
Antwort:
{
"count": 2,
"warnings": [...]
}
System-Status
curl http://localhost:8080/api/status
Antwort:
{
"mesh": {
"connected": true,
"type": "tcp"
},
"warnings": {
"count": 2,
"by_severity": {
"Severe": 1,
"Moderate": 1
}
}
}
🛠️ Troubleshooting
Bot kann keine Warnungen laden
Prüfe Internet-Verbindung:
ping warnung.bund.de
Prüfe Logs:
tail -f logs/nina_bot.log
Meshtastic-Verbindung fehlgeschlagen
TCP:
# Prüfe ob Gerät erreichbar
ping 192.168.178.100
# Prüfe TCP-Port
nc -zv 192.168.178.100 4403
Serial:
# Prüfe verfügbare Ports
ls -la /dev/ttyUSB*
# Prüfe Berechtigungen
sudo usermod -a -G dialout $USER
Web-Dashboard nicht erreichbar
Prüfe ob Port belegt:
netstat -tuln | grep 8080
Ändere Port in config/bot_config.yaml:
webserver:
port: 8081 # Alternativer Port
🔐 Sicherheit
- ⚠️ Bot sendet NUR öffentliche NINA-Daten
- 🔒 Keine Speicherung persönlicher Daten
- 🌐 Webserver bindet auf
0.0.0.0(alle Interfaces)- Für Produktiv: Firewall konfigurieren
- Für Lokal:
host: "127.0.0.1"setzen
📝 Logs
Logs werden gespeichert in:
logs/nina_bot.log
Log-Level ändern:
logging:
level: "DEBUG" # INFO, WARNING, ERROR
🆘 Support & Kontakt
- 🌐 Website: meshdresden.eu
- 📡 Meshtastic: Dresden Mesh Network
📜 Lizenz
Dieses Projekt nutzt öffentliche Daten vom Bundesamt für Bevölkerungsschutz und Katastrophenhilfe (BBK).
🙏 Credits
- NINA API: Bundesamt für Bevölkerungsschutz und Katastrophenhilfe (BBK)
- Meshtastic: meshtastic.org
- Entwickelt für: Dresden Mesh Network
📅 Changelog
Version 1.0.0 (2026-01-30)
- ✨ Initiales Release
- 🔔 NINA/BBK Integration
- 📡 Meshtastic TCP/Serial Support
- 🌐 Web-Dashboard
- 📊 Statistiken
Viel Erfolg mit dem NINA Warn-Bot! 🚨