Praxisnahe Tutorials, auf die du zählen kannst.
Einsteiger Guide für Home Assistant

Home Connect in Home Assistant einrichten und Geräte steuern

Hier zeige ich dir, wie du Haushaltsgeräte mit Home Connect (Bosch, Siemens und Co.) wie Geschirrspüler, Kühlschränke, Kaffeemaschinen oder Backöfen in Home Assistant einrichtest und steuerst. Die Einrichtung findest du jetzt Schritt für Schritt hier im Text, das Video zeigt dir dieselben Schritte zum Mitklicken.

Als Beispiel dient mein smarter Geschirrspüler, der startet, wenn die Balkonsolar genug Energie produziert 🙌

Voraussetzungen

Die Home Connect App muss bei dir bereits eingerichtet sein, also deine Geräte im WLAN hängen und in der App auftauchen. Home Assistant muss schon installiert sein, auf welcher Hardware spielt keine Rolle.

Wichtig zu wissen: Die Integration läuft über die Cloud von Home Connect. Ohne Internet und ohne funktionierende Home-Connect-Cloud kann Home Assistant deine Geräte also nicht steuern.


Home Connect in Home Assistant einrichten

Home Connect lässt sich nicht einfach mit Benutzername und Passwort einbinden. Du brauchst ein kostenloses Entwicklerkonto bei Home Connect und legst dort eine eigene „Anwendung“ an. Deren Zugangsdaten (Client ID und Client Secret) gibst du dann in Home Assistant ein. Klingt kompliziert, ist aber in ein paar Minuten erledigt.

Schritt 1: Entwicklerkonto anlegen

  1. Öffne das Home Connect Developer Portal und registriere dich für ein Entwicklerkonto.
  2. Bei der Registrierung gibt es das Feld Default Home Connect User Account for Testing. Dort trägst du die E-Mail-Adresse ein, mit der du dich in der normalen Home Connect App anmeldest.
  3. Schreib die E-Mail-Adresse komplett klein. Großbuchstaben führen laut Doku zu Fehlern bei der Anmeldung.

Schritt 2: Anwendung registrieren

  1. Geh im Developer Portal auf Applications und dann auf Register Application.
  2. Application ID: ein beliebiger Name, z. B. Home Assistant
  3. OAuth Flow: Authorization Code Grant Flow
  4. Redirect URI: https://my.home-assistant.io/redirect/oauth
  5. Speichern. Du landest wieder auf der Übersicht der Anwendungen. Über Details siehst du die Client ID und das Client Secret. Beides brauchst du gleich.
  6. Melde dich danach aus dem Developer Portal ab. Wenn du eingeloggt bleibst, scheitert die Anmeldung in Home Assistant gern mit unauthorized_client.

Änderungen im Developer Portal brauchen laut Doku bis zu 15 Minuten, bis sie greifen. Wenn es direkt nach dem Anlegen nicht klappt, gönn dir also kurz einen Kaffee und probier es dann nochmal.

Schritt 3: Adresse bei My Home Assistant hinterlegen

Die Redirect URI von oben zeigt auf my.home-assistant.io. Damit die Weiterleitung nach dem Login bei deiner Instanz ankommt, öffnest du die Seite in dem Browser, mit dem du gleich auch die Integration einrichtest, und trägst dort die Adresse deines Home Assistant ein, z. B. http://homeassistant.local:8123 oder http://192.168.1.200:8123.

Falls du My Home Assistant bewusst deaktiviert hast, nimmst du als Redirect URI stattdessen DEINE_HA_URL/auth/external/callback, also z. B. http://192.168.1.200:8123/auth/external/callback. Die Adresse muss dann genau die sein, über die du Home Assistant bei der Einrichtung im Browser aufrufst.

Schritt 4: Integration in Home Assistant hinzufügen

  1. Geh in Home Assistant auf Einstellungen → Geräte & Dienste und klick unten rechts auf Integration hinzufügen. Such nach Home Connect. Manchmal wird Home Connect auch schon automatisch als „Entdeckt“ angezeigt.
  2. Home Assistant fragt nach den Anmeldedaten der Anwendung: Ein Name (frei wählbar), die Client ID und das Client Secret aus Schritt 2.
  3. Du wirst zur Anmeldeseite von Home Connect weitergeleitet. Dort meldest du dich mit dem Konto aus der Home Connect App an und erlaubst den Zugriff.
  4. Danach geht es über my.home-assistant.io zurück zu deiner Instanz, und Home Assistant legt deine Geräte an. Jetzt nur noch den Geräten einen Bereich zuweisen, fertig.

Tipp: Manche Geräte melden im ausgeschalteten Zustand keine Daten. Fehlen dir Programme oder Entitäten, schalt das Gerät ein und lade die Integration unter Einstellungen → Geräte & Dienste → Home Connect neu. Hilft das nicht, starte Home Assistant neu, während das Gerät an ist.

Was du danach in Home Assistant bekommst

Welche Entitäten auftauchen, hängt vom Gerät ab. Bei einem Geschirrspüler sind das unter anderem:

  • Aktives Programm (Auswahl): Wählst du hier ein Programm, startet es sofort.
  • Ausgewähltes Programm (Auswahl): Wählst du hier ein Programm, wird es nur ausgewählt, aber nicht gestartet.
  • Fernstart und Fernsteuerung (Binärsensoren): zeigen, ob das Gerät gerade aus der Ferne gestartet bzw. gesteuert werden darf.
  • Einschalter (Schalter), Betriebszustand und Tür (Sensoren), Programm-Fortschritt und Programm-Endzeit
  • Programmoptionen wie Start in relativ (Startverzögerung in Sekunden) und Tasten wie Programm stoppen

Für Automationen gibt es außerdem drei Aktionen (früher hießen Aktionen „Dienste“):

  • home_connect.set_program_and_options: wählt ein Programm samt Optionen aus oder startet es direkt. Mit affects_to: active_program startet es, mit affects_to: selected_program wird es nur ausgewählt.
  • home_connect.start_selected_program: startet das bereits ausgewählte Programm, optional mit Startverzögerung.
  • home_connect.change_setting: ändert eine Geräteeinstellung über ihren Schlüssel, z. B. BSH.Common.Setting.ChildLock für die Kindersicherung.

Hinweis (Stand Oktober 2026): Die alte Aktion home_connect.start_program mit key und value und die früheren Programm-Schalter führt die aktuelle Doku nicht mehr. Hast du noch alte Automationen damit, stell sie auf die Auswahl-Entitäten oder die Aktionen oben um.

Bevor du eine Automation baust, lohnt sich ein Blick auf den Sensor Fernstart. Je nach Gerät und Einstellung in der Home Connect App musst du den Fernstart vorher am Gerät freigeben, sonst nimmt die Spülmaschine keinen Startbefehl an.

Mein Geschirrspüler

Zuletzt aktualisiert am 03.11.2026 um 06:30 . Wir weisen darauf hin, dass sich hier angezeigte Preise inzwischen geändert haben können. Alle Angaben ohne Gewähr.

Automation für Geschirrspüler

Die Idee: Ich räume die Spülmaschine ein, drück einen Knopf für Eco oder Intensiv, und Home Assistant startet das Programm mit passender Startverzögerung. Gestartet wird zur erwarteten PV-Spitze heute. Ist die schon vorbei, aber jetzt oder in der nächsten Stunde ist genug Sonne da, geht es sofort los. Sonst wartet die Maschine bis zur Spitze morgen.

Die Startverzögerung übernimmt die Spülmaschine selbst über die Option Start in relativ. Home Assistant muss also nicht stundenlang warten, und ein Neustart zwischendurch stört nicht.

Was du dafür brauchst

  • Zwei Tasten-Helfer als Auslöser, z. B. input_button.spuelmaschine_eco und input_button.spuelmaschine_intensiv. Die legst du unter Einstellungen → Geräte & Dienste → Helfer an (mehr zu Helfern in meinem Beitrag zu Template-Sensoren und Helfern). Die Tasten kannst du aufs Dashboard legen oder per kleiner Automation mit einem echten Taster drücken. Hat dein Taster eine eigene Ereignis-Entität, kannst du die auch direkt als Auslöser nehmen.
  • PV-Prognose: Die Sensoren für die Spitze heute/morgen und die Energie dieser und der nächsten Stunde kommen bei mir aus der Integration Forecast.Solar. Wie ich die Balkonsolaranlage eingebunden habe, zeige ich im Beitrag zur Balkonsolaranlage.
  • Aktuelle PV-Leistung in Watt, bei mir sensor.balkonsolar_power
  • Die Home-Connect-Entitäten deines Geschirrspülers: Aktives Programm, Einschalter, Fernstart und Tür

Die hervorgehobenen Zeilen ersetzt du durch deine eigenen Entitäten. Die genauen IDs findest du unter Einstellungen → Geräte & Dienste → Entitäten; sie hängen vom Gerätenamen und der Sprache deiner Installation ab. Alles Anpassbare steht gesammelt im ersten Schritt „Variablen (hier anpassen)“. Die Programmnamen (z. B. dishcare_dishwasher_program_eco_50) siehst du in den Optionen der Entität Aktives Programm oder in der Doku.

alias: Spülmaschine zur PV-Spitze starten
description: >-
  Startet die Spülmaschine über Home Connect mit Startverzögerung: zur
  erwarteten PV-Spitze heute, sofort bei genug Sonne oder zur Spitze morgen.
triggers:
  - trigger: state
    entity_id: input_button.spuelmaschine_eco
    id: eco
  - trigger: state
    entity_id: input_button.spuelmaschine_intensiv
    id: intensiv
conditions:
  - alias: Fernstart ist am Gerät freigegeben
    condition: state
    entity_id: binary_sensor.geschirrspuler_fernstart
    state: "on"
  - alias: Tür ist geschlossen
    condition: state
    entity_id: sensor.geschirrspuler_tur
    state: closed
actions:
  - alias: Variablen (hier anpassen)
    variables:
      geschirrspueler: select.geschirrspuler_aktives_programm
      geschirrspueler_power: switch.geschirrspuler_einschalter
      programm_eco: dishcare_dishwasher_program_eco_50
      programm_intensiv: dishcare_dishwasher_program_intensiv_70
      pv_spitze_heute: sensor.power_highest_peak_time_today
      pv_spitze_morgen: sensor.power_highest_peak_time_tomorrow
      pv_energie_diese_stunde: sensor.energy_current_hour
      pv_energie_naechste_stunde: sensor.energy_next_hour
      pv_leistung_jetzt: sensor.balkonsolar_power
      min_energie_kwh: 0.3
      min_leistung_w: 300
  - alias: Programm und Startverzögerung berechnen
    variables:
      programm: "{{ programm_eco if trigger.id == 'eco' else programm_intensiv }}"
      verzoegerung_s: >-
        {% set jetzt = now().timestamp() %}
        {% set spitze_heute = as_timestamp(states(pv_spitze_heute), 0) %}
        {% set spitze_morgen = as_timestamp(states(pv_spitze_morgen), 0) %}
        {% set genug_sonne = states(pv_energie_diese_stunde) | float(0) > min_energie_kwh
          or states(pv_energie_naechste_stunde) | float(0) > min_energie_kwh
          or states(pv_leistung_jetzt) | float(0) > min_leistung_w %}
        {% if spitze_heute > jetzt %}
          {% set sekunden = spitze_heute - jetzt %}
        {% elif genug_sonne %}
          {% set sekunden = 0 %}
        {% else %}
          {% set sekunden = [spitze_morgen - jetzt, 0] | max %}
        {% endif %}
        {{ (sekunden // 60 * 60) | int }}
  - alias: Spülmaschine einschalten
    action: switch.turn_on
    target:
      entity_id: "{{ geschirrspueler_power }}"
  - delay:
      seconds: 10
  - alias: Programm mit Startverzögerung starten
    action: home_connect.set_program_and_options
    data:
      device_id: "{{ device_id(geschirrspueler) }}"
      affects_to: active_program
      program: "{{ programm }}"
      b_s_h_common_option_start_in_relative: "{{ verzoegerung_s }}"
mode: single

Ein paar Erklärungen dazu:

  • Die Aktion home_connect.set_program_and_options erwartet die Geräte-ID. Die musst du nicht raussuchen: device_id(geschirrspueler) holt sie sich aus der Entität „Aktives Programm“.
  • Die Verzögerung wird auf volle Minuten abgerundet. Liefert die Prognose gerade nichts, startet die Maschine sofort.
  • Ist der Fernstart nicht freigegeben oder die Tür offen, passiert nichts. Wer mag, hängt dafür noch eine Benachrichtigung dran, z. B. als Actionable Notification.
  • Die zehn Sekunden Pause zwischen Einschalten und Startbefehl hatte ich schon in meiner ursprünglichen Automation drin.

Wenn du neu bei Automationen bist, schau dir mein Automation Tutorial an. Dort erkläre ich Auslöser, Bedingungen und Aktionen von Grund auf.

Benachrichtigung, wenn die Spülmaschine fertig ist

Noch ein einfaches Beispiel aus der Doku: Sobald der Betriebszustand auf „fertig“ springt, bekommst du eine Nachricht aufs Handy. Ersetze den Sensor und deinen Benachrichtigungsdienst.

alias: Spülmaschine fertig melden
triggers:
  - trigger: state
    entity_id: sensor.geschirrspuler_betriebszustand
    to: finished
actions:
  - action: notify.mobile_app_dein_handy
    data:
      message: Die Spülmaschine ist fertig.
mode: single

Was tun, wenn die Home Connect OAuth-Anmeldung nicht klappt?

Mögliche Fehler

  • home assistant home connect error unauthorized_client
  • Error while obtaining access token

Lösung

  1. Du musst aus Home Connect ausgeloggt sein (aus dem Entwickler-Portal).
  2. Unter https://my.home-assistant.io muss die Adresse deiner Home Assistant Instanz hinterlegt sein (z. B. http://192.168.1.200:8123 oder der öffentlich erreichbare Name).
  3. Mit dem Browser, in dem du deine Instanz bei my.home-assistant.io hinterlegst, musst du auch die Einrichtung der Integration durchführen.
  4. Die E-Mail-Adresse des Test-Kontos im Developer Portal muss komplett kleingeschrieben sein, und nach Änderungen im Portal solltest du rund 15 Minuten warten.
  5. Wenn du es bereits einmal erfolglos versucht hast, entfernst du die gespeicherten Anmeldedaten: Unter Einstellungen → Geräte & Dienste oben rechts über die drei Punkte die Anwendungs-Anmeldedaten öffnen, den Eintrag für Home Connect löschen und die Integration anschließend neu hinzufügen.

Fazit

Durch Home Connect gibt es einige Haushaltsgeräte wie Backöfen, Spülmaschinen, Kaffeemaschinen, Kühlschränke und Co., die man über eine App und eben auch über Home Assistant steuern kann. Dadurch ergeben sich ganz neue Möglichkeiten, das eigene Zuhause und vor allem die Küche zu automatisieren.

Die Einrichtung mit Entwicklerkonto ist beim ersten Mal etwas fummelig, danach läuft es. Und mit der Startverzögerung direkt im Gerät ist die Solar-Spülmaschine schnell gebaut 🙌

Wenn du Fragen oder Anmerkungen hast, zögere nicht, sie mir unten in den Kommentaren mitzuteilen, und ich werde mein Bestes tun, um dir zu helfen. Vielen Dank fürs Lesen!

Verpasse keine Tipps!

Ich sende keinen Spam! Erfahre mehr in der Datenschutzerklärung.

Transparenz: In diesem Artikel sind Partnerlinks enthalten. Durch einen Klick darauf ge­lan­gt ihr direkt zum Anbieter. Solltet ihr euch dort für einen Kauf entscheiden, erhalte ich ei­ne kleine Provision. Für euch ändert sich am Preis nichts & Partnerlinks haben keinerlei Einfluss auf meine Berichterstattung. Vielen Dank für deine Unterstützung!

Der Kopf hinter dem YouTube-Kanal simon42. Schreibt hier ehrlich und leidenschaftlich über Smart Home und Technik Themen, denn das Zuhause wurde bereits von Sprachassistenten übernommen und die Kontrolle abgegeben 😁

Nennenswerte Antworten

  1. Bei meiner Siemens-Spülmaschine SN558S06TE ist ein automatisiertes einschalten nur bei aktivierter Fernstarttaste möglich.

    **Zitat von HomeConnect
    ## Sicherheitsstufe orange: Mittel
    Auf dieser Sicherheitsstufe musst du die Fernstart-Taste ausnahmslos jedes Mal drücken, wenn du das Haushaltsgerät starten möchtest. Sobald jemand die Tür der Waschmaschine, des Geschirrspülers oder des Trockners öffnet, wird der Fernstart deaktiviert. Dadurch sollen Haushaltsunfälle vermieden werden. Um den Fernstart wieder zu aktivieren, musst du die Taste erneut drücken.

    Wird das hier umgangen bzw. hat die beschriebene Spülmaschine diese Sicherheitsvorkehrung nicht?

  2. Moin. Leider scheitert der Aufruf der https: // my.home-assistant.io/ redirect/oauth immer wieder bei mir. Fehlermeldung: Invalid Parameters given. Danach komme ich auf eine HA-Seite mit “Create a link” und einer Auswahlliste. Dort kann ich aber nicht meine duckdns.org HA URL eingeben.
    Was läuft hier schief?

  3. Hallo zusammen,

    nach der Anmeldung (hat mich gut Nerven gekostet) API etc. ist das Addon endlich aktiv.
    Leider werden keine Geräte angezeigt.
    Folgende Fehlermeldung steht im Protokoll.

    Kann mir hier jemand bitte mal unter die Arme greifen.

    Vielen Dank im Voraus
    Fehler beim Einrichten

    Logger: homeassistant.config_entries
    Source: components/home_connect/api.py:163
    First occurred: 10:04:17 (1 occurrences)
    Last logged: 10:04:17
    
    Error setting up entry xxxxxxxxx for home_connect
    Traceback (most recent call last):
      File "/usr/src/homeassistant/homeassistant/config_entries.py", line 383, in async_setup
        result = await component.async_setup_entry(hass, self)
      File "/usr/src/homeassistant/homeassistant/components/home_connect/__init__.py", line 269, in async_setup_entry
        await update_all_devices(hass, entry)
      File "/usr/src/homeassistant/homeassistant/components/home_connect/__init__.py", line 293, in update_all_devices
        await hass.async_add_executor_job(hc_api.get_devices)
      File "/usr/local/lib/python3.10/concurrent/futures/thread.py", line 58, in run
        result = self.fn(*self.args, **self.kwargs)
      File "/usr/src/homeassistant/homeassistant/components/home_connect/api.py", line 99, in get_devices
        {CONF_DEVICE: device, CONF_ENTITIES: device.get_entity_info()}
      File "/usr/src/homeassistant/homeassistant/components/home_connect/api.py", line 353, in get_entity_info
        program_switches = self.get_program_switches()
      File "/usr/src/homeassistant/homeassistant/components/home_connect/api.py", line 163, in get_program_switches
        return [{ATTR_DEVICE: self, "program_name": p} for p in programs]
    TypeError: 'NoneType' object is not iterable
    
  4. Das hat geklappt. DANKE!
    Jetzt hänge ich bei der Anmeldung. Dieses Ding ist nicht konsistent … einmal soll ich die userid nehmen, dann die E-Mail Adresse. Meine Nerven.

    Update: Nach dem Single-Key Gedöns habe ich den Backofen jetzt verknüpft. Was für’n Ritt :wink:

Setze die Diskussion fort unter community.simon42.com

109 mehr antworten

Teilnehmer

Avatar for butcherson Avatar for Onkel_Mikke Avatar for Dragan Avatar for ertanacar Avatar for SVW99 Avatar for Homejaner Avatar for onofthepagans Avatar for Schokojote Avatar for schmidtix Avatar for tOkra Avatar for blulay Avatar for dhaunsch Avatar for SmartHomeOpa Avatar for wapjoe Avatar for Walerik Avatar for HaGoDo Avatar for charlygts Avatar for Doggie Avatar for MelleD Avatar for knuti1960 Avatar for jabberwoky Avatar for Asko Avatar for metallmanu Avatar for alexsaas

Die Kommentare sind geschlossen.