91 lines
1.9 KiB
Markdown
91 lines
1.9 KiB
Markdown
# Wetterstation - MQTT zu Web Dashboard
|
|
|
|
## Installation
|
|
|
|
1. **Python-Pakete installieren:**
|
|
```bash
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
## Konfiguration
|
|
|
|
Öffne `wetterstation.py` und passe folgende Zeilen an:
|
|
|
|
```python
|
|
MQTT_TOPIC = "wetter/daten" # Dein MQTT Topic
|
|
MQTT_USER = "username" # Dein MQTT Benutzername
|
|
MQTT_PASSWORD = "password" # Dein MQTT Passwort
|
|
```
|
|
|
|
## Verwendung
|
|
|
|
1. **Programm starten:**
|
|
```bash
|
|
python wetterstation.py
|
|
```
|
|
|
|
2. **Browser öffnen:**
|
|
- Öffne http://localhost:5000
|
|
- Du siehst das Dashboard mit allen Grafiken
|
|
|
|
## Funktionen
|
|
|
|
### MQTT Datenempfang
|
|
- Verbindet sich automatisch mit rexfue.de
|
|
- Empfängt Wetterdaten im JSON-Format
|
|
- Speichert alle Daten in SQLite Datenbank
|
|
|
|
### Web-Dashboard
|
|
- **6 Grafiken:**
|
|
- Temperatur über Zeit
|
|
- Luftfeuchtigkeit über Zeit
|
|
- Luftdruck über Zeit
|
|
- Regenmenge pro Stunde (Balkendiagramm)
|
|
- Windgeschwindigkeit + Böen
|
|
- Windrichtung (Polarplot)
|
|
|
|
- **Zwei Ansichten:**
|
|
- Tag: Letzte 24 Stunden
|
|
- Woche: Letzte 7 Tage
|
|
- Umschaltbar per Tab
|
|
|
|
- **Auto-Refresh:** Aktualisiert sich alle 5 Minuten automatisch
|
|
|
|
## Datenbank
|
|
|
|
Die Wetterdaten werden in `wetterdaten.db` gespeichert (SQLite).
|
|
|
|
## Erwartetes MQTT Datenformat
|
|
|
|
```json
|
|
{
|
|
"datetime": "2026-01-24 16:05:00",
|
|
"pressure": 1002.0,
|
|
"wind_gust": 5.0,
|
|
"wind_speed": 3.0,
|
|
"wind_dir": 45.0,
|
|
"rain_rate": 0.0,
|
|
"rain": 0.0,
|
|
"humidity": 80,
|
|
"temperature": 0.7
|
|
}
|
|
```
|
|
|
|
## Problemlösung
|
|
|
|
**MQTT verbindet nicht:**
|
|
- Prüfe MQTT_USER und MQTT_PASSWORD
|
|
- Prüfe MQTT_TOPIC
|
|
- Stelle sicher, dass rexfue.de erreichbar ist
|
|
|
|
**Keine Daten im Dashboard:**
|
|
- Warte bis erste MQTT Nachricht empfangen wurde
|
|
- Prüfe die Konsole auf Fehlermeldungen
|
|
- Überprüfe ob `wetterdaten.db` erstellt wurde
|
|
|
|
**Port 5000 bereits belegt:**
|
|
Ändere in `wetterstation.py` die letzte Zeile:
|
|
```python
|
|
app.run(host='0.0.0.0', port=8080, debug=False)
|
|
```
|