WeeWX in Home Assistant integrieren

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.