Zum Inhalt springen

Home Assistant Integration

Der Pool Controller integriert sich nahtlos in Home Assistant über MQTT Discovery (Standard-Protokoll). Alle Entitäten werden automatisch registriert, sobald der Controller mit dem MQTT-Broker verbunden ist.

MQTT Discovery

Der Controller publiziert HA MQTT Discovery-Payloads beim Start und bei jeder MQTT-Wiederherstellung. Keine manuelle MQTT-Konfiguration nötig — die Geräte erscheinen automatisch in Home Assistant.

Verfügbare Entitäten

Die Entity-IDs werden aus dem name-Feld der Discovery-Payloads abgeleitet (z.B. Name "Pool Temperature" ergibt sensor.<prefix>_pool_temperature). Ersetze <prefix> durch deinen Geräte-Prefix (siehe Warnung unten).

DomainObject IDKategorieBeschreibung
sensorpool_temperature—Wassertemperatur Pool
sensorsolar_temperature—Temperatur Solarkollektor
sensorcontroller_temperaturediagnosticESP32-Chip-Temperatur
sensorfree_heap_spacediagnosticFreier Heap-Speicher
sensormax_alloc_blockdiagnosticGrößter allozierbarer Block
sensorwifi_signal_strengthdiagnosticWiFi-Signalstärke (dBm)
sensorsystem_uptimediagnosticBetriebszeit (Dauer)
sensoreffective_runtimediagnosticEffektive Filterlaufzeit (Dauer)
sensorlocal_timediagnosticAktuelle Ortszeit
binary_sensorpool_sensor_founddiagnosticStatus Pool-Sensor (gefunden/fehlt)
binary_sensorsolar_sensor_founddiagnosticStatus Solar-Sensor (gefunden/fehlt)
binary_sensormqtt_connecteddiagnosticMQTT-Verbindungsstatus
selectoperation_mode—Betriebsart (auto/manu/boost/timer)
selectpool_sensorconfigPool-Sensor-Adresszuordnung
selectsolar_sensorconfigSolar-Sensor-Adresszuordnung
selecttimezoneconfigZeitzonenauswahl
switchpool_pump—Pool-Umwälzpumpe
switchsolar_pump—Solar-Heizungspumpe
numbermaximum_pool_temperatureconfigZieltemperatur Pool max.
numberminimum_solar_temperatureconfigMinimale Solar-Aktivierungstemperatur
numbertemperature_hysteresisconfigTemperaturhysterese
numbercirculation_temperature_thresholdconfigSchwellwert temp. Filterlaufzeit
numbercirculation_temperature_factorconfigFaktor temp. Filterlaufzeit
numbercirculation_maximum_runtimeconfigMaximale Laufzeit temp. Filterlaufzeit
timetimer_startconfigTimer Startzeit (HH:MM)
timetimer_endconfigTimer Endzeit (HH:MM)
textntp_serverconfigNTP-Server-Adresse
updatefirmwareconfigFirmware-Update-Entität
climatepool_thermostatconfigPool-Thermostat (HVAC-Modus + Zieltemp.)
eventlogsdiagnosticLog-Ereignis-Stream (MQTT-Event-Entität, siehe Log-Ereignisse)

Entity-IDs in HA werden aus dem name-Feld der MQTT Discovery generiert. Die entity_id ist sensor.<device_prefix>_pool_temperature usw. — wobei <device_prefix> in der Regel pool_controller ist (vom Gerätenamen). Prüfe Entwickler-Tools → Entitäten und filtere nach “pool” um deine IDs zu finden. Ersetze pool_controller im Dashboard-YAML durch deinen Geräte-Prefix falls er abweicht.

Log-Ereignisse

Der Controller stellt eine MQTT-Event-Entität (event.pool_controller_logs — Object ID logs) bereit, die ihren State bei jedem protokollwürdigen Ereignis aktualisiert: Betriebsartwechsel, Pumpe ein/aus, WiFi-/MQTT-Verbindung sowie Warning-/Error-Logeinträge. Die vollständige Topic- und Payload-Referenz findest du unter MQTT-Konfiguration → Events (Log-Stream).

Die Event-Entität hält den letzten Ereignistyp im Attribut event_type und übernimmt jedes zusätzliche Payload-Feld als Attribut (z. B. message).

Logbuch-Automation

Alle Ereignisse ins HA-Logbuch schreiben:

automation:
  - alias: "Pool Controller — Ereignisse ins Logbuch"
    triggers:
      - trigger: event.received
        target:
          entity_id: event.pool_controller_logs
        options:
          event_type:
            - MODE_CHANGED
            - PUMP_ON
            - PUMP_OFF
            - WIFI_CONNECTED
            - WIFI_DISCONNECTED
            - MQTT_CONNECTED
            - MQTT_DISCONNECTED
            - LOG_WARN
            - LOG_ERROR
    actions:
      - action: logbook.log
        data:
          name: "Pool Controller"
          message: "{{ state_attr('event.pool_controller_logs', 'event_type') }}"
          entity_id: event.pool_controller_logs

Der event.received-Trigger (Home Assistant 2026.7+) feuert, wenn die Entität einen passenden Ereignistyp empfängt; siehe event.received-Trigger-Dokumentation. Kürze die event_type-Liste auf die gewünschten Ereignisse und passe die Entity-ID an deinen Geräte-Prefix an, falls er abweicht (Entwickler-Tools → Entitäten, Filter “pool”).

Lovelace Dashboard

Eine vorgefertigte Lovelace-Dashboard-Konfiguration liegt in dashboard.yaml bereit.

Funktionen

Zwei zielgruppenspezifische Ansichten:

  • 🏊 Pool-Ansicht — für den Bademeister (tägliche Bedienung): Temperaturanzeigen, Modus-Umschaltung (mit Hervorhebung), Timer, Pumpensteuerung, Klima-Thermostat, temperatureabhängige Filterlaufzeit, 24h-Verlauf mit Controller-Temperatur
  • ⚙ System-Ansicht — für den IoT-Entwickler (Diagnose & Konfiguration): Zeitzone & NTP, Sensor-Zuordnung (DS18B20-Adressauswahl), Systemdiagnose (Heap, WiFi, Betriebszeit, Controller-Temperatur, effektive Laufzeit), Firmware-Updates

Einrichtung

  1. Kopiere die YAML-Datei in dein HA-Konfigurationsverzeichnis
  2. HA öffnen → Dashboard → Bearbeiten → Drei-Punkte → Raw-Konfigurationseditor
  3. Inhalt einfügen
  4. Entity-IDs an deine Installation anpassen (siehe Warnung)
  5. Speichern

Abhängigkeiten

Die Modus-Buttons nutzen button-card (Custom Card) zur visuellen Hervorhebung des aktiven Modus:

HACS → Frontend → button-card → Installieren

Ohne button-card custom:button-card durch type: button ersetzen (dann keine Hervorhebung).

Warnung zu Entity-IDs

Die Entity-IDs hängen von der MQTT Discovery-Konfiguration ab — das YAML verwendet pool_controller als Geräte-Prefix. Falls deine IDs einen abweichenden Prefix haben, ersetze alle Vorkommen im YAML. Prüfe deine tatsächlichen Entity-IDs in Entwickler-Tools → Entitäten (filtere nach “pool”).

Migration von früheren Versionen

Bei einem Update von einer älteren Firmware können alte Discovery-Konfigurationen im MQTT-Broker verbleiben. Der Controller publiziert automatisch leere retained Configs für obsolete Entitäten (number/timer-start-h/min, number/timer-end-h/min, number/timezone). Nach dem ersten MQTT-Reconnect entfernt Home Assistant die verwaisten Entitäten automatisch.

Zuletzt aktualisiert am