No description
Find a file
2026-02-04 19:21:43 +01:00
config Wetter importiert 2026-01-30 10:42:49 +01:00
modules leichte Anpassungen und neuer Beginn 2026-02-04 19:13:12 +01:00
.gitignore Initial commit 2026-01-30 07:41:56 +01:00
main.py leichte Anpassungen und neuer Beginn 2026-02-04 19:13:12 +01:00
meshdd-bot.service leichte Anpassungen und neuer Beginn 2026-02-04 19:13:12 +01:00
package-lock.json Anpassung Verzeichnisse 2026-01-30 10:31:04 +01:00
QUICK_START.md erster Import 2026-01-30 07:46:18 +01:00
README.md erster Import 2026-01-30 07:46:18 +01:00
requirements.txt Anpassung Verzeichnisse 2026-01-30 10:31:04 +01:00
VERSION_1.1.0_UPDATE.md Wetter importiert 2026-01-30 10:42:49 +01:00

🚨 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-Osterzgebirge
  • 146260000000 - Landkreis Bautzen (teilweise)
  • 146280000000 - Landkreis Meißen (teilweise)

Schweregrad-Filter

Standardmäßig werden folgende Schweregrade gesendet:

  • Extreme 🔴 - Extreme Gefahr
  • Severe 🟠 - Schwere Gefahr
  • Moderate 🟡 - 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! 🚨