====== OpenBeken ======
Online/Offline-Erkennung in Home Assistant
Diese Dokumentation beschreibt, wie du OpenBeken-Geräte (z. B. mit MQTT-Topic wie ''openbeken/KL-WL-AS-Waschen/connected'') in Home Assistant (HA) als online oder offline erkennst. Der Ansatz basiert auf Binary Sensors, die den MQTT-Status abfragen. Für Zuverlässigkeit wird ein Heartbeat-Mechanismus in OpenBeken empfohlen, um periodische "online"-Meldungen zu senden. LWT (Last Will and Testament) wird implizit über das ''connected''-Topic gehandhabt, aber ohne explizite UI-Option in Version 1.18.205.
==== Voraussetzungen ====
- MQTT-Broker (z. B. Mosquitto) eingerichtet und mit HA integriert.
- OpenBeken-Firmware Version 1.18.205 oder höher auf den Geräten.
- Geräte senden "online" bei Verbindung und optional periodisch (via Heartbeat).
==== Schritt 1: MQTT-Integration in Home Assistant einrichten ====
Gehe in HA zu **Einstellungen > Geräte & Dienste > Integration hinzufügen** und suche nach "MQTT". Konfiguriere den Broker (Host, Port, Benutzer, Passwort). Teste mit Entwicklertools > MQTT, ob Topics wie ''openbeken/GERÄT/connected'' empfangen werden.
==== Schritt 2: Binary Sensor pro Gerät in HA konfigurieren ====
Erstelle für jedes Gerät einen Binary Sensor. Verwende YAML in ''configuration.yaml'' oder MQTT-Discovery.
**YAML-Beispiel (in configuration.yaml):**
mqtt:
  binary_sensor:
    - name: "KL-WL-AS-Waschen Connected"
      state_topic: "openbeken/KL-WL-AS-Waschen/connected"
      payload_on: "online"
      payload_off: "offline"
      device_class: "connectivity"
      unique_id: "kl_wl_as_waschen_connected"
      availability_topic: "openbeken/KL-WL-AS-Waschen/connected"  # Für LWT und Heartbeat
      payload_available: "online"
      payload_not_available: "offline"
      expire_after: 300  # 5 Minuten ohne Nachricht -> unavailable (offline)
- **Erklärung:**
  - ''state_topic'': Liest Payload "online/offline".
  - ''availability_topic'': Monitort für Updates; Broker sendet "offline" bei Disconnect (implizites LWT).
  - ''expire_after'': Fallback, falls keine Nachricht kommt.
- Nach Änderung: YAML neu laden oder HA neustarten.
**Alternative: MQTT-Discovery (per mosquitto_pub):**
mosquitto_pub -r -h BROKER_IP -u BENUTZER -P PASSWORT -t "homeassistant/binary_sensor/kl_wl_as_waschen_connected/config" -m '{
  "name": "KL-WL-AS-Waschen Connected",
  "state_topic": "openbeken/KL-WL-AS-Waschen/connected",
  "payload_on": "online",
  "payload_off": "offline",
  "device_class": "connectivity",
  "unique_id": "kl_wl_as_waschen_connected",
  "availability_topic": "openbeken/KL-WL-AS-Waschen/connected",
  "payload_available": "online",
  "payload_not_available": "offline",
  "expire_after": 300,
  "device": {"identifiers": ["openbeken_kl_wl_as_waschen"], "name": "KL-WL-AS-Waschen"}
}'
==== Schritt 3: Heartbeat in OpenBeken für periodische Meldungen einrichten ====
Damit der Status zuverlässig ist, sende "online" regelmäßig (z. B. alle 60 Sekunden). Das ergänzt das implizite LWT.
- Öffne die Web-UI des Geräts (IP-Adresse).
- Gehe zu **Filesystem** oder **LittleFS**.
- Erstelle/bearbeite ''autoexec.bat'' im Editor:
addRepeatingEvent 60 -1 publish "openbeken/KL-WL-AS-Waschen/connected" "online" -1
- Speichere und starte das Gerät neu.
- Teste: Überwache das Topic mit MQTT Explorer; es sollte periodisch "online" publishen.
==== Schritt 4: Status im Dashboard anzeigen ====
- Erstelle ein Dashboard in HA (Lovelace).
- Füge eine **Entities Card** hinzu:
type: entities
title: OpenBeken Geräte Status
entities:
  - binary_sensor.kl_wl_as_waschen_connected
- Der Sensor zeigt "on" (online), "off" (offline) oder "unavailable" (nach Expire oder Disconnect).
- Optional: Conditional Card für nur offline-Geräte oder Automation für Alerts.
==== Tipps und Troubleshooting ====
- Teste mit ''mosquitto_pub'' für simulierte Nachrichten.
- Bei mehreren Geräten: Wiederhole für jedes (unique_id anpassen).
- Logs prüfen: In HA und OpenBeken-UI.
- Aktualisiere Firmware, falls Heartbeat-Probleme auftreten.
Diese Konfiguration skaliert für mehrere Geräte und integriert sich in dein Offline-Dashboard.