Mögliches Problem mit IP 5

Bild

Uns wurde ein Problem im Logik Editor mit der IP 5 gemeldet, wir untersuchen dies derzeit.

Offenbar können beim Anlegen neuer Logiken keine Parameter gesetzt werden. Bereits laufende Logiken sind nicht betroffen.

Bitte warten Sie mit der Installation der IP 5 falls Sie derzeit Logiken anlegen wollen bzw. stellen Sie sich auf ein zeitnahes Update zur IP 5.1 ein

Info im Insider-Forum: viewtopic.php?t=6230

[Erfahrungsbericht] [V4.8 IP4] Miele@Home mit Miele 3rd Party API

Wissen, Planung & Diskussion zur Unterstützung von Rest-API & Webabfragen im Timberwolf Server.
Stellt uns hier Eure Projekte und Ideen vor.
Forumsregeln
  • Denke bitte an aussagekräftige Titel und gebe dort auch die [Firmware] an. Wenn ETS oder CometVisu beteiligt sind, dann auch deren Version
  • Bitte mache vollständige Angaben zu Deinem Server, dessen ID und dem Online-Status in Deiner Signatur. Hilfreich ist oft auch die Beschreibung der angeschlossener Hardware sowie die verwendeten Protokolle
  • Beschreibe Dein Projekt und Dein Problem bitte vollständig. Achte bitte darauf, dass auf Screenshots die Statusleiste sichtbar ist
  • Bitte sei stets freundlich und wohlwollend, bleibe beim Thema und unterschreibe mit deinem Vornamen. Bitte lese alle Regeln, die Du hier findest: https://wiki.timberwolf.io/Forenregeln

Ersteller
MoseP
Beiträge: 17
Registriert: Di Mär 07, 2023 8:15 am
Hat sich bedankt: 33 Mal
Danksagung erhalten: 23 Mal

[V4.8 IP4] Miele@Home mit Miele 3rd Party API

#1

Beitrag von MoseP »

Für Miele gibt es mit Miele@Home eine Status- und Steuerungs-API, die hier auch schon öfter diskutiert wurde (z. B. viewtopic.php?t=4676 und konkret die API-Umsetzung im Timberwolf V4.0 hier viewtopic.php?t=4240).

Seitdem gibt es Änderungen bei Miele@Home (siehe https://developer.miele.com):
  • Miele 3rd Party API ist jetzt v1.1.0 mit neuem OAuth 2.0 Auth Provider und Tokens mit gerätespezifischen Berechtigungen auf auth.domestic.miele-iot.com
  • Das bisherige OAuth2_Legacy-Verfahren auf api.mcs3.miele.com/thirdparty/login wird im Laufe des Jahres 2026 abgeschaltet, neue Implementierungen sollen es deshalb nicht mehr verwenden.
  • Eine neue SPINE-IoT API wird entsprechend EN 50631 und IEC 63510 eine standardisierte Kommunikation zwischen Energy Smart Appliances und Energy Management Systems (EMS) ermöglichen und soll herstellerübergreifend funktionieren (EEBUS). Damit können ESA-Geräte den geplanten Stromverbrauch im Programmablauf melden und mit dem EMS passendes Programm+Zeitslot auswählen. Diese neue SPINE-IoT-API ist zwar schon als v1.0.0 veröffentlicht, aber noch nicht nutzbar ("Access will be granted shortly—please check back soon.")
Deshalb möchte ich hier das Vorgehen mit der 3rd Party API aus den anderen Threads zusammentragen und auf die aktuelle API v1.1.0 aktualisieren.

0) Voraussetzung
Voraussetzung für die Nutzung der API ist eine Registrierung auf https://developer.miele.com/get-involved, man bekommt dann einen Link, mit dem man sich Client ID und Client Secret erzeugen lassen kann. Die Email braucht meistens einige Minuten. Ausserdem braucht man einen Miele-Account, in dem man in der App die Geräte zugeordnet hat.

1) Ersten Token erstellen
Mittels der Client ID und Secret und einem Miele-Account kann man sich einen Bearer-Token für seine Geräte erzeugen lassen.

1a) Das funktioniert manuell auf der Miele Developer-Seite im API-Explorer. Der API-Explorer brauchte bei mir beim ersten Aufruf einige Zeit, um dargestellt zu werden, vorher hatte ich nur eine schwarze Seite, also Geduld.
Bild
Bei den Scopes kann man einschränken, was der Zugriff darf. Ich habe alles ausgewählt.
Im Anschluss muss man das Land auswählen, auf dem der eigene Miele-Nutzeraccount (=Anmeldedaten für die Miele@home-App) läuft.

1b) Etwas einfacher geht es mit dem Tool "Postman", dass man sich auf dem PC installieren kann.
In Postman erstellt man mit "Create Request" einen neuen Eintrag und schreibt darin:
Bild

Auth URL und Token URL entsprechend https://developer.miele.com/docs/authorization
Client ID und Client Secret entsprechend 1).
Bei Scope muss man die Scopes eintragen, auf die man zugreifen möchte, mit Leerzeichen getrennt. Für alle Scopes schreibt man also:
mcs_thirdparty_read mcs_thirdparty_write openid mcs_thirdparty_media openid

Dann nach ganz unten scrollen und "Get New Access Token" drücken.
Es erscheint eine Anmeldemaske und man muss sich mit dem Miele-Account anmelden. Anschliessend die zu steuernden Geräte in der Liste anklicken und "Weiter" anklicken, anschliessend "Zugriff anfordern". Darauf achten, dass Popup-Blocker deaktiviert sind. In Postman erhält man dann "Access Token" und "Refresh Token" angezeigt.

1c) Man kann den Access Token auch direkt vom Timberwolf empfangen lassen.
Dazu braucht es ein HPPT-API-Server Subsystem als Redirect-Adresse. Ich brauche so ein Subsystem später auch zum Einlesen von Tarifdaten meines Stromversorgers EKZ, deshalb war es eine gute Übung.
Bild

Darin zwei Auswertungen erstellen:
i. Bezeichnung = Authorization Code, Lokation = URI, Selektor = code, Format = Text (STRING)
ii. Bezeichnung = State, Lokation = URI, Selektor = state, Format = Text (STRING)

Idealerweise verknüpft man dann gleich den Authorization Code mit einem Objekt im Timberwolf, um ihn zu speichern.

Um den Access Token zu erstellen, ruft man dann im Browser diese URL auf:

Code: Alles auswählen

https://auth.domestic.miele-iot.com/partner/realms/mcs/protocol/openid-connect/auth?
  client_id=YOUR_CLIENT_ID&
  response_type=code&
  redirect_uri=YOUR_REDIRECT_URI&
  scope=mcs_thirdparty_read%20mcs_thirdparty_write%20mcs_thirdparty_media%20openid&
  state=RANDOM_STRING
Anstelle von YOUR_REDIRECT_URI die URI des Timberwolfs angeben (z. B. https://timberwolf0000/api/oauthcallback/), darauf achten, dass sie mit einem / endet. Bei YOUR_CLIENT_ID kommt die eigene Client-ID rein. RANDOM_STRING kann ein beliebiger Text sein, z.B. das Datum.
Man muss sich dann mit seinem Miele-User anmelden und die Geräte auswählen, die steuerbar sein sollen. Anschliessend bestätigen, und im Browser erscheint im Erfolgsfall nur {}.

Der Authorization code wird dann im Timberwolf empfangen. Zur Kontrolle sieht man auch den state, den man vorher eingegeben hatte.

<Fortsetzung zum Token Refresh und zur Nutzung folgt>
TWS 3500M ID:947, VPN offen, Reboot erlaubt

gbglace
Beiträge: 4296
Registriert: So Aug 12, 2018 10:20 am
Hat sich bedankt: 1505 Mal
Danksagung erhalten: 2046 Mal

#2

Beitrag von gbglace »

:clap:

Du hast nicht zufällig auch noch ein paar BSH Geräte im Haushalt?
Da würde mich eine solche Anleitung auch weiter bringen.
Grüße Göran
#1 Timberwolf 2600 Velvet Red TWS #225 / VPN aktiv / Reboot OK
#2 Timberwolf 2600 Organic Silver TWS #438 / VPN aktiv / Reboot OK
#PV 43,2 kWh Akku; 3x VE MP2 5000; 6,7 kWp > 18 Panele an 4x HM1500 + 1 HM800 WR; Open-DTU

Mibr85
Beiträge: 627
Registriert: Mo Dez 02, 2019 5:38 am
Wohnort: Freital
Hat sich bedankt: 450 Mal
Danksagung erhalten: 250 Mal

#3

Beitrag von Mibr85 »

Mega danke für die Anleitung muss ich bei Gelegenheit mal testen.
Grüße Micha

TWS 3500 XL #1209 + TWS 2600 #528 + PBM #972,
VPN offen, Reboot möglich
PLZ 01...

ThomasD
Beiträge: 238
Registriert: So Sep 09, 2018 9:16 am
Hat sich bedankt: 343 Mal
Danksagung erhalten: 84 Mal

#4

Beitrag von ThomasD »

Hey, es ist eine sehr detaillierte Anleitung aber ist das für nen „normalen“ Anwender nicht sehr umständlich? In HomeAssistant werden mir 111 Entitäten für meine Miele Geräte angeboten da bräuchte ich ja ewig für die Konfiguration am TWS. Stand Miele@Home nicht auch mal mit auf einer RoadMap?

Gruß
Thomas
WIREGATE V1.4.0
PBM unlimited mit 67 Slaves
TWS 2600 #174 REBOOT jederzeit möglich
TWS 2600 #572

AndererStefan
Beiträge: 429
Registriert: Sa Mär 02, 2024 11:04 am
Hat sich bedankt: 227 Mal
Danksagung erhalten: 284 Mal

#5

Beitrag von AndererStefan »

Moin,

danke, ich finde das sehr gut beschrieben! Mir gefällt auch dass du alternative Wege beschreibst.

@ThomasD Wie einfach ist es denn in HomeAssistant so eine Schnittstelle einzurichten, wenn nicht schon jemand anderes eine Lösung vorbereitet hat?

Was die Schritte hier etwas abkürzen kann, ist der Export-/ Import des HTTP-API Profils im Timberwolf. Die notwenigen Schritte mit Cloud-Account-Erstellung und oAuth muss man so oder so machen. - Eine tolle Errungenschaft von IoT Geräten ohne lokale Schnittstellen. :/

VG Stefan
TWS 3500XL ID:1486, VPN aktiv, Reboot nach Rücksprache

gbglace
Beiträge: 4296
Registriert: So Aug 12, 2018 10:20 am
Hat sich bedankt: 1505 Mal
Danksagung erhalten: 2046 Mal

#6

Beitrag von gbglace »

@ThomasD
Und bei HA hat das dann auch die Firma HA bzw. Firma Miele implementiert und regelmäßig aktualisiert?

HA ist ein System User für User. Hier hat ein User den variablen Teil der Plattform TWS genutzt und stellt den anderen Usern ein Mittel zur Anbindung zur Verfügung.

Das darf man einfach mal honorieren.

Welchen Mehrwert soll da jetzt wieder dieser unsachliche Kommentar bringen, dass da mal eine interne Roadmap veröffentlicht wurde?
Genau wegen solcher Kommentare ohne jedweden Mehrwert zum Thema und gefüllt von Frust gibt es auf solche "Fragen" auch keine offiziellen Antworten mehr und auch keine Roadmaps mehr.

Hast Du selbst der HA Community auch schon mal irgendeine Zeile Code beigesteuert oder wurmelst Du da auch nur rum, weil Du mal irgendwo einen FR oder gar PR im Git gefunden hast und der Entwickler das noch nicht umgesetzt hat?
Zuletzt geändert von gbglace am Sa Jan 17, 2026 9:03 am, insgesamt 1-mal geändert.
Grüße Göran
#1 Timberwolf 2600 Velvet Red TWS #225 / VPN aktiv / Reboot OK
#2 Timberwolf 2600 Organic Silver TWS #438 / VPN aktiv / Reboot OK
#PV 43,2 kWh Akku; 3x VE MP2 5000; 6,7 kWp > 18 Panele an 4x HM1500 + 1 HM800 WR; Open-DTU

MrWilson
Beiträge: 287
Registriert: Do Dez 27, 2018 2:19 pm
Wohnort: Borgsdorf
Hat sich bedankt: 46 Mal
Danksagung erhalten: 170 Mal

#7

Beitrag von MrWilson »

Hast Du dir den Bereich Eventing mal angeschaut?
Ich habe es nicht mehr weiterverfolgt, aber meinem Kenntnisstand nach bekommt man mit dem TWS keine Statusmeldungen abgefragt. Weiß jetzt aber nicht, ob sich von Seiten des TWS oder von Miele neue Möglichkeiten ergeben haben.
TWS 2500 ID: 341 + PBM ID: 463, VPN offen, Reboot nur nach Absprache

CHD
Beiträge: 403
Registriert: Fr Dez 14, 2018 9:32 pm
Wohnort: Gronau
Hat sich bedankt: 1199 Mal
Danksagung erhalten: 240 Mal

#8

Beitrag von CHD »

Was genau meinst du mit abfragen? Der TWS kann sowohl als Client als auch als Server Subsystem eingerichtet werden und darüber dann auch aktiv von außen angesprochen werden. Wie z.B. hier bei ekey beschrieben: viewtopic.php?t=5994
Viele Grüße, Christian

Timberwolf Server 2600 #200 ULTRA842 / PBM #778 / PBM #779 / PBM #780 / Reboot erlaubt / VPN offen
Timberwolf Server 3500XL #1715 ULTRA323 / Reboot erlaubt / VPN offen

MrWilson
Beiträge: 287
Registriert: Do Dez 27, 2018 2:19 pm
Wohnort: Borgsdorf
Hat sich bedankt: 46 Mal
Danksagung erhalten: 170 Mal

#9

Beitrag von MrWilson »

The Miele 3rd Party API uses Server-Sent Events (SSE) to deliver real-time updates from the backend to subscribed clients. This eventing mechanism allows external applications to listen for changes,such as device status updates or notifications, without the need for constant polling.

SSE is a lightweight, one-way communication protocol over HTTP, ideal for scenarios where the server needs to push data to the client as soon as something happens.

Note: To consume events via SSE, your client must support persistent HTTP connections and handle incoming event streams according to the EventSource specification.
https://developer.miele.com/docs/eventing

Hier nochmal zum nachlesen.

Es geht mir um "without the need for constant polling" und "your client must support persistent HTTP connections and handle incoming event streams..."
TWS 2500 ID: 341 + PBM ID: 463, VPN offen, Reboot nur nach Absprache

Ersteller
MoseP
Beiträge: 17
Registriert: Di Mär 07, 2023 8:15 am
Hat sich bedankt: 33 Mal
Danksagung erhalten: 23 Mal

#10

Beitrag von MoseP »

Danke für Eure Rückmeldungen, ich arbeite gerade an einer dynamischen Authentifizierung, damit man es nicht mehr von Hand im Browser eingeben muss.
Die Statusmeldung und Steuerung lässt sich eventuell über Variablen vereinfachen, so wie im meinem FYTA-Beispiel (viewtopic.php?t=6186).
Das Eventing wollte ich mir auch anschauen. Geduld...
AndererStefan hat geschrieben: Sa Jan 17, 2026 8:48 am Was die Schritte hier etwas abkürzen kann, ist der Export-/ Import des HTTP-API Profils im Timberwolf.
Das bringt mich zu der Frage, wie kann man eine solche HTTP-API-Profildatei exportieren? In der Doku und im Forum habe ich es nicht gefunden (nur den Import). Dann müsste nicht jeder von Hand die Objekte anlegen.
TWS 3500M ID:947, VPN offen, Reboot erlaubt
Antworten

Zurück zu „HTTP-API, REST & Web-Abfragen“