WeeWX in Home Assistant integrieren
WeeWX mit Docker und Home Assistant (MQTT) betreiben
Diese Integration ist aus einem ganz konkreten Bedarf entstanden:
Am Standort DB0NU läuft seit längerer Zeit eine Wetterstation mit WeeWX – klassisch installiert, stabil, aber eben nicht besonders flexibel.
Im Zuge der zunehmenden Containerisierung unserer Dienste und der stärkeren Nutzung von Home Assistant wollte ich:
- den bestehenden WeeWX sauber in Docker überführen
- Updates und Backups vereinfachen
- die Wetterdaten direkt und nativ in Home Assistant verfügbar machen
Das Ergebnis ist dieses Setup: WeeWX vollständig containerisiert, mit Weboberfläche und direkter MQTT-Anbindung an Home Assistant.
Voraussetzungen
- Linux-System (Server, NAS, Mini-PC)
- Docker und Docker Compose
- MQTT-Broker (z. B. Mosquitto, lokal oder extern)
- Home Assistant mit MQTT-Integration
- Optional: USB-Wetterstation
Projektstruktur
weewx/
├── docker-compose.yml
├── init.sh
└── data/
├── weewx.conf
└── public_html/
docker-compose.yml
services:
weewx:
image: felddy/weewx:5
container_name: weewx
restart: unless-stopped
environment:
TZ: Europe/Berlin
volumes:
- ./data:/data
# devices:
# - "/dev/ttyUSB0:/dev/ttyUSB0"
web:
image: nginx:alpine
container_name: weewx-web
restart: unless-stopped
ports:
- "8090:80"
volumes:
- ./data/public_html:/usr/share/nginx/html:ro
depends_on:
- weewx
init.sh – Initialisierung
#!/bin/sh
set -e
RED='\033[0;31m'
NC='\033[0m' # No Color
# -----------------------------------------------------------------------------
# Initialize WeeWX MQTT support
# -----------------------------------------------------------------------------
echo "==> Preparing public_html directory"
mkdir -p data/public_html
chmod a+rx data/public_html
echo "==> Creating default configurations"
docker compose run --rm weewx
echo "==> Installing Python MQTT dependency (paho-mqtt)"
docker compose run --rm --entrypoint pip weewx install --upgrade paho-mqtt
echo "==> Installing weewx-home-assistant extension"
docker compose run --rm --entrypoint pip weewx install git+https://github.com/felddy/[email protected]
echo ""
echo "======================================================================"
echo "${RED}IMPORTANT: Manual Home Assistant configuration required${NC}"
echo ""
echo "${RED}Modify data/weewx.conf and add the following sections:${NC}"
echo ""
echo "${RED}[Engine]"
echo " [[Services]]"
echo " report_services = weewx_ha.Controller"
echo ""
echo "[HomeAssistant]"
echo " node_id = weewx"
echo ""
echo " [[mqtt]]"
echo " hostname = mqtt.example.com"
echo " port = 1883"
echo " use_tls = false"
echo " username = mqttUser"
echo " password = mqttPassword"
echo ""
echo " [[station]]"
echo " name = Weather Station"
echo " model = Vantage Vue"
echo " manufacturer = Davis${NC}"
echo ""
echo "${RED}After editing the configuration, start WeeWX:${NC}"
echo "${RED} docker compose up -d${NC}"
echo "======================================================================"
Installation
chmod +x init.sh
./init.sh
Home Assistant Konfiguration
[Engine]
[[Services]]
report_services = weewx_ha.Controller
[HomeAssistant]
node_id = weewx
[[mqtt]]
hostname = mqtt.example.com
port = 1883
use_tls = false
username = mqttUser
password = mqttPassword
[[station]]
name = Weather Station
model = Vantage Vue
manufacturer = Davis
Start
docker compose up -d
Weboberfläche
http://:8090
Fazit
Dieses Setup ist aus einem ganz praktischen Bedarf heraus entstanden und wird aktuell am Standort DB0NU neu in Betrieb genommen.
Ziel war es, eine bestehende WeeWX-Installation sauber zu containerisieren und gleichzeitig die Wetterdaten direkt in Home Assistant verfügbar zu machen – ohne Bastellösungen oder zusätzliche Brücken.
Die Lösung ist bewusst einfach gehalten, gut wartbar und lässt sich problemlos erweitern.
Wie sich das Setup im Dauerbetrieb bewährt, wird sich in den kommenden Wochen zeigen – die Voraussetzungen für einen stabilen und update-sicheren Betrieb sind damit jedoch geschaffen.