Zum Hauptinhalt springen

Miele Smart-Home-Integration, kostenlos und Open Source

Miele-Integration für Gladys Assistant

Miele@home-Geräte: Zustand, Programm, Restzeit, Temperaturen und Szenen bei Programmende.

Verfolge deine Miele@home-Geräte in Gladys: Waschmaschinen, Wäschetrockner, Geschirrspüler, Backöfen, Dunstabzugshauben, Kochfelder, Kühlschränke, Gefrierschränke, Weinschränke, Kaffeevollautomaten und Saugroboter. Die Integration nutzt die offizielle „Miele 3rd Party API“, dieselbe wie Home Assistant.

Ohne die Geräte und ohne Miele-Konto entwickelt: Rückmeldungen sind willkommen. Der Code ist gegen echte Antworten der API geprüft, die das Home-Assistant-Projekt veröffentlicht hat, aber noch nicht an einem echten Gerät.

Community-Integration, nicht mit Miele verbunden. Miele und Miele@home sind Marken der Miele & Cie. KG.

Überblick​

  • Ein Gladys-Gerät pro Miele-Gerät: Zustand (in Betrieb, pausiert, Programmende, Störung…), aktuelles Programm und Phase, Restzeit, bisherige Laufzeit, voraussichtliches Ende, Tür, Temperaturen, Energie und Wasser des Programms.
  • Echtzeit: Die Integration hört den Ereignisstrom von Miele. Eine fertige Wäsche ist in wenigen Sekunden bekannt.
  • Sichere Befehle: Ein/Aus von Waschmaschine, Geschirrspüler, Haube oder Kaffeevollautomat, Beleuchtung, Solltemperatur und SuperCool/SuperFrost von Kühl- und Gefriergeräten, Start eines am Gerät vorbereiteten Programms. Ein Backofen oder Kochfeld wird nie aus der Ferne eingeschaltet.
  • Szenen-Auslöser: „Miele-Programm beendet“ und „Störung eines Miele-Geräts“.
  • Widget „Miele-Geräte“: was läuft, und wie lange noch.

Voraussetzungen​

  • Gladys Assistant 5.1.0 oder neuer.
  • Miele@home-Geräte, bereits gekoppelt in der Miele-App (Smartphone), mit dem Miele-Konto, das du hier verwendest.
  • Internetzugang für Gladys: alles läuft über die Miele-Cloud, es gibt keine lokale API.
  • Miele-Entwickler-Zugangsdaten (Client-ID und Client-Secret), kostenlos: siehe Schritt 1 unten.
  • Gladys Plus ist nicht nötig.

Konfiguration​

Schritt 1 — Zugangsdaten bei Miele anfordern. Öffne das Formular von Miele und füll es aus (Name der Anwendung: zum Beispiel „Gladys“). Miele schickt dir per E-Mail eine Client-ID und ein Client-Secret. Fragt das Formular nach einer „Redirect URI“, gib die an, die Gladys in Schritt 3 anzeigt (standardmäßig https://my.gladysassistant.com/redirect/oauth).

Schritt 2 — Integration installieren. In Gladys: Integrationen → Miele (Store) oder Integrationen → Von GitHub installieren mit der Adresse https://github.com/guim31/gladys-miele.

Schritt 3 — Ausfüllen und verbinden. Im Bildschirm Konfiguration der Integration:

  1. füge die Client-ID und das Client-Secret ein, wähle die Sprache und klick auf Speichern;
  2. kopiere unter „Miele-Konto“ bei Bedarf die angezeigte Weiterleitungs-URI und klick dann auf Verbinden;
  3. ein Miele-Fenster öffnet sich: melde dich mit deinem Miele-Konto an (dem aus der App), wähle dein Land, falls gefragt, und erlaube den Zugriff;
  4. das Fenster schließt sich, das Verbindungsabzeichen wird grün.

Schritt 4 — Geräte hinzufügen. Öffne den Reiter Entdecken der Integration: jedes Miele-Gerät des Kontos erscheint dort. Klick bei denen, die du verfolgen willst, auf Zu Gladys hinzufügen. Die Zustände kommen sofort an.

Der Button Verbindung testen im Konfigurationsbildschirm listet die Geräte auf, die Miele liefert: praktisch, um zu prüfen, dass alles passt.

Die gewählte Sprache gilt für die Funktionsnamen neuer Geräte, die Zustände und das Widget. Die Programm- und Phasennamen kommen von Miele, nur auf Englisch oder Deutsch (Deutsch, wenn du Deutsch wählst, sonst Englisch).

Was jedes Gerät bietet​

GerätFunktionen
Waschmaschine, WaschtrocknerZustand, Programm, Phase, Restzeit, bisherige Laufzeit, voraussichtliches Ende, Tür, Ein/Aus, Energie und Wasser des Programms
WäschetrocknerDasselbe, ohne Wasser
GeschirrspülerZustand, Programm, Phase, Restzeit, bisherige Laufzeit, voraussichtliches Ende, Tür, Ein/Aus, Energie und Wasser des Programms
Backofen, Dampfgarer, Mikrowelle, WärmeschubladeZustand, Programm, Phase, Restzeit, bisherige Laufzeit, voraussichtliches Ende, Tür, Temperatur, Solltemperatur und Kerntemperatur (nur lesend), Beleuchtung (je nach Modell)
KochfeldZustand (nur lesend)
DunstabzugshaubeZustand, Ein/Aus, Beleuchtung
Kühlschrank, Gefrierschrank, WeinschrankZustand, Tür, Temperatur und Solltemperatur jeder Zone, SuperCool und/oder SuperFrost, Beleuchtung (Weinschränke)
KaffeevollautomatZustand, Programm, Phase, Tür, Ein/Aus, Beleuchtung
SaugroboterZustand, Programm, Phase, Batterie

Einige Details:

  • Voraussichtliches Ende: Endzeit aus der Restzeit berechnet (und aus dem Startaufschub, falls vorhanden), in der Zeitzone von Gladys. „—“, wenn nichts läuft oder das Programm pausiert ist.
  • Tür: ein Kontaktsensor, offen oder geschlossen.
  • Energie und Wasser des Programms: was Miele für das laufende oder das letzte Programm meldet, wenn das Gerät es misst („EcoFeedback“). Der Wert des letzten Programms bleibt, solange das Gerät aus ist.
  • Solltemperatur eines Kühlschranks: ein Grad pro Schritt, im Bereich, den das Gerät annimmt (meist 1 bis 9 °C im Kühlteil, −28 bis −14 °C im Gefrierteil).
  • Ein Gerät, das nicht mehr mit der Miele-Cloud verbunden ist, zeigt „Nicht verbunden“ und das Abzeichen „nicht erreichbar“.

Befehle und Sicherheit​

  • Was steuerbar ist: Ein/Aus (Waschmaschine, Wäschetrockner, Geschirrspüler, Haube, Kaffeevollautomat), Beleuchtung (Haube, Backöfen, Kaffeevollautomat, Weinschränke), Solltemperatur und SuperCool/SuperFrost (Kühlgeräte) und die Szenen-Aktion „Miele-Gerät steuern“ (starten, pausieren, stoppen).
  • Was nie steuerbar ist: einen Backofen, ein Kochfeld, eine Mikrowelle oder eine Wärmeschublade einschalten, ihre Temperatur ändern, ein Programm darauf starten. Selbst wenn die Miele-API es erlauben würde, lehnt die Integration ab. Ein Backofenprogramm stoppen bleibt möglich.
  • Ein Programm aus der Ferne starten geht nur, wenn das Gerät es annimmt: ein am Gerät gewähltes Programm, geschlossene Tür und am Gerät aktiviertes Remote Start (oder MobileStart, je nach Modell). Sonst antwortet die Integration „Das Gerät nimmt diesen Befehl gerade nicht an“.
  • Startaufschub: stell das Programm mit Remote Start am Gerät ein und lass eine geplante Gladys-Szene es zur richtigen Zeit starten (Nebentarif). Ein am Gerät selbst eingestellter Startaufschub (SmartStart inklusive) erscheint als Zustand „Startaufschub“ und im voraussichtlichen Ende.

Aktualisierung und Kontingente​

  • Die Integration hält einen Ereignisstrom bei Miele offen: jede Änderung kommt in wenigen Sekunden an, ohne zusätzliche Anfrage.
  • Zusätzlich liest sie das ganze Konto alle 30 Minuten (eine Anfrage, plus eine pro steuerbarem Gerät). Ist der Strom unterbrochen, liest sie alle 2 Minuten, bis er zurück ist.
  • Die Integration hängt nicht von der Abfrage durch Gladys ab (bei externen Integrationen unzuverlässig): sie aktualisiert sich selbst.
  • Miele veröffentlicht keine Zahl zum Kontingent seiner API; dieser Takt bleibt deutlich unter dem von Home Assistant (ständig ein Lesevorgang alle 2 Minuten). Für deine Zugangsdaten gelten die Nutzungsbedingungen von Miele.
  • Nur die Änderungen werden an Gladys geschickt, dazu alle 6 Stunden eine Erinnerung an einen Wert, der sich nicht ändert (sonst hielte Gladys ihn für veraltet).

Widget​

Das Widget Miele-Geräte (Dashboard → Bearbeiten → Widget hinzufügen → Miele) listet die zu Gladys hinzugefügten Geräte, die laufen, pausiert sind, auf einen Startaufschub warten, fertig sind oder eine Störung haben, die dringendsten zuerst: Programm, Phase, Endzeit und ein Abzeichen mit Restzeit oder Zustand. Kühlschränke, immer „in Betrieb“, fehlen absichtlich. Es aktualisiert sich jede Minute und sobald ein Gerät startet oder stoppt. Es hat keine Einstellung.

Szenen-Auslöser und -Aktionen​

Auslöser „Miele-Programm beendet“: ein Gerät wechselt von „In Betrieb“ (oder „Pausiert“) zu „Programmende“. Optionaler Filter: das Gerät. Variablen für die folgenden Aktionen: Gerätename, Programm, verbrauchte Energie (kWh) und verbrauchtes Wasser (Liter), wenn Miele sie liefert. Er löst einmal pro Programmende aus, nie beim Neustart von Gladys.

Auslöser „Störung eines Miele-Geräts“: ein Gerät wechselt in den Zustand „Störung“ oder meldet einen Fehler. Optionaler Filter: das Gerät. Variable: Gerätename.

Aktion „Miele-Gerät steuern“: das Programm eines Geräts starten, pausieren oder stoppen. Starten und pausieren: nur Waschmaschinen, Wäschetrockner, Geschirrspüler. Stoppen: auch Backöfen, Haube und Kaffeevollautomat. Ausgabe: „Befehl gesendet“. Bei Ablehnung schlägt die Aktion mit dem Grund fehl, die Szene läuft weiter.

Kein Auslöser „Tür zu lange offen“: der Standard-Auslöser von Gladys auf der Tür (Kontaktsensor) mit der Option „für“ macht das schon, bei jedem Gerät.

Szenen-Beispiele​

  • Wäsche fertig: Auslöser „Miele-Programm beendet“ (Gerät: die Waschmaschine) → Nachricht „Die Wäsche ist fertig ({{triggerEvent.data.program}}, {{triggerEvent.data.energy_kwh}} kWh)“.
  • Geschirrspüler im Nebentarif: bereite das Programm abends mit aktiviertem Remote Start vor; eine um 1:30 Uhr geplante Szene führt „Miele-Gerät steuern → Starten“ aus.
  • Gefrierschrank offen gelassen: Auslöser „Tür des Gefrierschranks = offen für 3 Minuten“ → Benachrichtigung.
  • Panne: Auslöser „Störung eines Miele-Geräts“ → Nachricht mit {{triggerEvent.data.device_name}}.

Fehlerbehebung​

  • „Trag die Client-ID und das Client-Secret … ein“: die Felder sind leer oder nicht gespeichert.
  • Das Miele-Fenster lehnt die Anmeldung oder die Weiterleitungs-URI ab: prüf die Client-ID; hat deine Miele-Anwendung eine registrierte Weiterleitungs-URI, muss sie genau die unter „Miele-Konto“ angezeigte sein.
  • „Diese Anmeldung ist abgelaufen…“: mehr als 15 Minuten zwischen dem Klick auf Verbinden und dem Ende der Anmeldung, oder eine in einem anderen Gladys begonnene Anmeldung. Klick erneut auf Verbinden.
  • „Miele hat die gespeicherte Autorisierung abgelehnt“: der Zugriff wurde widerrufen, das Miele-Passwort geändert oder die Client-ID geändert: klick auf Verbinden.
  • Kein Gerät unter Entdecken: der Button Verbindung testen zeigt, was Miele liefert. Ein leeres Konto heißt, dass die Geräte mit einem anderen Miele-Konto gekoppelt sind.
  • „Das Gerät nimmt diesen Befehl gerade nicht an“: Tür offen, kein Programm gewählt, Remote Start/MobileStart deaktiviert oder das Gerät ist schon im gewünschten Zustand.
  • Logs: im normalen Betrieb wird nichts geschrieben. Um alles zu sehen, gib dem Container die Variable LOG_LEVEL=debug. Kein Token und kein Secret landet je im Log.

Grenzen​

  • Keine Programmauswahl aus der Ferne (keine Programmliste in Gladys): gestartet wird das am Gerät vorbereitete Programm.
  • Programm- und Phasennamen auf Englisch oder Deutsch (Grenze der Miele-API).
  • Keine Steuerung von Backöfen, Kochfeldern und Mikrowellen (Sicherheitsentscheidung), auch nicht des Saugroboters oder der Lüfterstufe der Haube.
  • TwinDos-/PowerDisk-Füllstände, die Kochzonen eines Kochfelds und ein aus der Ferne eingestellter Startaufschub sind nicht abgedeckt.
  • Abhängig von der Miele-Cloud: ohne Internet oder bei einer Störung bei Miele keine Aktualisierung mehr (die Geräte funktionieren normal).
  • Funktionsnamen werden beim Hinzufügen des Geräts festgelegt: eine andere Sprache benennt nur neue Geräte (die Zustände wechseln aber die Sprache).

Daten und Datenschutz​

  • Die Miele-Zugriffstokens liegen im Volume /data der Integration (eine Datei, die nur sie lesen kann), nie in der Gladys-Konfiguration oder in den Logs.
  • Das Client-Secret ist ein geheimes Gladys-Feld: es wird nie wieder angezeigt.
  • Die Anmeldung erfolgt auf der Seite von Miele: die Integration sieht dein Passwort nie. Die Weiterleitungsseite von Gladys (my.gladysassistant.com) schickt deinen Browser nur zu deinem Gladys zurück; der Code, den sie sieht, ist ohne das Client-Secret wertlos.
  • Die Integration spricht nur mit api.mcs3.miele.com.

Konfigurationseinstellungen​

Diese Einstellungen fragt Miele in seinem Konfigurationsbildschirm in Gladys ab.

EinstellungTypPflichtfeldBeschreibung
Bevor du anfängstsectionNeinMiele hat keine lokale API: alles läuft über die Miele-Cloud, mit dem Konto der Miele-App. Fordere bei Miele kostenlose Entwickler-Zugangsdaten an (Client-ID und Client-Secret, per E-Mail), füge sie unten ein und speichere. Fragt Miele nach einer Weiterleitungs-URI, kopiere die unter dem Button Verbinden angezeigte. Klick dann auf Verbinden und melde dich mit deinem Miele-Konto an.
Client-IDstringJaVon Miele gesendete Client-ID.
Client-SecretsecretJaVon Miele gesendetes Client-Secret, wird nie wieder angezeigt.
Miele-Kontooauth2NeinMelde dich mit dem Miele-Konto an, mit dem deine Geräte in der Miele-App verbunden sind.
SpracheselectNeinFunktionsnamen neuer Geräte, Zustände und Widget. Programmnamen kommen von Miele, auf Englisch oder Deutsch.

So installierst du Miele in Gladys​

  1. Öffne in Gladys Integrationen: Miele erscheint im Katalog neben den nativen Integrationen, mit einem Community-Badge.
  2. Klicke auf Installieren. Gladys lädt das Docker-Image (ghcr.io/guim31/gladys-miele:1.0.1) herunter, startet es in einer vom Kern isolierten Sandbox und erzeugt die Oberfläche der Integration (Geräte, Erkennung und Konfiguration).
  3. Öffne den Bildschirm Konfiguration der Integration, fülle die Einstellungen aus und speichere.
  4. Du kannst sie auch direkt über die URL ihres Repositorys installieren: https://github.com/guim31/gladys-miele.

Miele benötigt Gladys >=5.1.0. Der Katalog in Gladys wird stündlich aktualisiert, eine neue Version ist also spätestens eine Stunde nach ihrer Veröffentlichung verfügbar.

Du nutzt Gladys noch nicht? Es ist kostenlos und Open Source: folge der Installationsanleitung, um loszulegen.

Über externe Integrationen​

Miele ist eine externe Integration: eine Community-Integration, die als Docker-Container verpackt und auf GitHub veröffentlicht wird. Gladys installiert sie mit einem Klick und führt sie in einer vom Kern isolierten Sandbox aus. Sie wird von guim31 veröffentlicht und gepflegt, nicht vom Gladys-Kernteam.

Abonniere den Newsletter von Gladys Assistant

Ein paar E-Mails im Monat zu neuen Releases und Neuigkeiten aus dem Projekt. Verschickt von Pierre-Gilles Leymarie, dem Gründer des Projekts. Jederzeit abbestellbar 🙂