NEU! UPGRADE IP 11 verfügbar!
NEU! LICHTWIDGET - DPT 7.600 - Logik Manager Update - sowie viele weitere Verbesserungen
Infos im Wiki: https://elabnet.atlassian.net/l/cp/B9MUEJj2

Insider & Leistungsmerkmale FÜR ALLE freigeschaltet
Ab sofort kann jeder die neue VISU & IFTTT testen. Info: viewtopic.php?f=8&t=5074

Release V 4 am 15. Juni 2024
Es gibt nun einen fixen Termin. Info: viewtopic.php?f=8&t=5117

NEU! Ausführliches Video Tutorial zur VISU
Jetzt werden alle Fragen beantwortet. Das Video: https://youtu.be/_El-zaC2Rrs

[Frage] [V4.0 IP3] HTTP-API Miele@Home Anbindung

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

MrWilson
Reactions:
Beiträge: 232
Registriert: Do Dez 27, 2018 2:19 pm
Wohnort: Borgsdorf
Hat sich bedankt: 44 Mal
Danksagung erhalten: 146 Mal

#31

Beitrag von MrWilson »

Dankeschön Jens, ich denke damit habe ich es zuordnen können.
TWS 2500 ID: 341 + PBM ID: 463, VPN offen, Reboot nur nach Absprache

Ersteller
zoonuser
Reactions:
Beiträge: 110
Registriert: Sa Mär 27, 2021 8:16 pm
Hat sich bedankt: 8 Mal
Danksagung erhalten: 39 Mal

#32

Beitrag von zoonuser »

Guten Morgen Willy,

das ist die Antwort der API:
[
{
"fabNumber": "xxxxx",
"state": "Aus",
"type": "Trockner",
"deviceName": "",
"details": "https://api.mcs3.miele.com/v1/devices/xxxxx"
},
{
"fabNumber": "xxxxx",
"state": "nicht verbunden",
"type": "Combi-Dampfgarer",
"deviceName": "",
"details": "https://api.mcs3.miele.com/v1/devices/xxxxxx"
},
{
"fabNumber": "xxxxx",
"state": "Aus",
"type": "Waschmaschine",
"deviceName": "",
"details": "https://api.mcs3.miele.com/v1/devices/xxxxxx"
},
{
"fabNumber": "xxxxx",
"state": "Aus",
"type": "Kaffeevollautomat",
"deviceName": "",
"details": "https://api.mcs3.miele.com/v1/devices/xxxxx"
},
{
"fabNumber": "xxxxx",
"state": "Aus",
"type": "Geschirrspüler",
"deviceName": "",
"details": "https://api.mcs3.miele.com/v1/devices/xxxxx"
}
]
Applikation Sendefilter Objekt ID Verknüpfungen (Quellen) Aktion TAGs
Token neu 1
Bearer DE_9xxxxx
--
Ein Übertragungsfehler ist aufgetreten. Bitte Statusobjekte prüfen.
RT1
Miele Token neu-Token neu 1-write
"Bearer DE_..."
LE Logic_295 O1: Test
Zuletzt geändert von zoonuser am Di Mai 02, 2023 6:11 am, insgesamt 1-mal geändert.
Timberwolf ID: 515 (350), Gira X1/S1, (Zugriff nur nach Absprache)

MrWilson
Reactions:
Beiträge: 232
Registriert: Do Dez 27, 2018 2:19 pm
Wohnort: Borgsdorf
Hat sich bedankt: 44 Mal
Danksagung erhalten: 146 Mal

#33

Beitrag von MrWilson »

Sehr gut, der nächste Schritt ist die Erzeugung des neuen Tokens. Ich setze mich da mal ran und melde mich dann.

Nachtrag:

Okay, das funktioniert auch :dance:
Kann es leider nicht testen, da mir immer der String abgeschnitten wird. :(

Man fügt eine neue Ressource hinzu mit den Einstellungen:

Ressource URI = /thirdparty/token
Request Method = POST
Request Content-Type = application/x-www-form-urlencoded
Response Content-Type = application/json

ohne Trigger Intervall

Dann erstellt man vier Anfragen mit folgenden Einstellungen:

Lokation = Body
Selektor = jeweils client_id, client_secret, refresh_token und grant_type
Auslöser = der Auslöser wird nur beim refresh_token eingeschaltet, der alle Objekte übergeben soll
Format = Text

Die vier Anfragen werden mit vier neuen Logiken verknüpft (z.B. multiplexer(string)) mit folgendem Inhalt:

client_id = deine client_id
client_secret = dein client_secret
refresh_token = dein aktuell gültiger refresh_token
grant_type = refresh_token

Als Antwort bekommt man einen neuen access_token, welchen man dann an die Autorisation Anfrage hängen kann.
Zusätzlich bekommt man einen neuen refresh_token, welcher dann über eine Logik mit Zeintintervall an die refresh_token Anfrage übergeben wird.

Ich kann das leider erst final testen, wenn die Version 4 verfügbar ist.

@Robert_Mini kannst du vielleicht kurz beschreiben , wie die Logik aussehen müsste, damit der refresh_token bei Empfang nach genau sagen wir mal 29 Tage übergeben wird.
Zuletzt geändert von MrWilson am Di Mai 02, 2023 11:58 am, insgesamt 5-mal geändert.
TWS 2500 ID: 341 + PBM ID: 463, VPN offen, Reboot nur nach Absprache

Ersteller
zoonuser
Reactions:
Beiträge: 110
Registriert: Sa Mär 27, 2021 8:16 pm
Hat sich bedankt: 8 Mal
Danksagung erhalten: 39 Mal

#34

Beitrag von zoonuser »

Hallo Willy,

kannst du mir bitte noch verraten wie den Befehl get richtig verwende und auch im TW weiterleite?
Ich möchte aus
"status": {
"value_raw": 1,
"value_localized": "Off",
"key_localized": "status"

ich möchte nur den Wert Value localized auslesen. Was muss bei Auswertung HTTP Antwort aktualisieren unter Selektor genau eingetragen werden?
Zuletzt geändert von zoonuser am Do Mai 04, 2023 1:30 pm, insgesamt 1-mal geändert.
Timberwolf ID: 515 (350), Gira X1/S1, (Zugriff nur nach Absprache)

MrWilson
Reactions:
Beiträge: 232
Registriert: Do Dez 27, 2018 2:19 pm
Wohnort: Borgsdorf
Hat sich bedankt: 44 Mal
Danksagung erhalten: 146 Mal

#35

Beitrag von MrWilson »

Ach Enrico, dazu gibt es hier schon so viele Beiträge. Auswertung JSON, JSON Path Finder so mal als Suchbegriff,
In deinem Fall lautet der Selektor status.value_localized

Herzliche Grüße

Willy
Zuletzt geändert von MrWilson am Do Mai 04, 2023 1:35 pm, insgesamt 1-mal geändert.
TWS 2500 ID: 341 + PBM ID: 463, VPN offen, Reboot nur nach Absprache

rowitech
Reactions:
Beiträge: 69
Registriert: So Sep 18, 2022 5:50 pm
Hat sich bedankt: 81 Mal
Danksagung erhalten: 20 Mal

#36

Beitrag von rowitech »

Sehr spannend und glücklicherweise sehr aktuell. Ich habe einen Kaffeevollautomaten, den ich ansteuern möchte. Wäre toll und einfach, wenn ich die notwendigen Infos auch in TWS Screenshots sehen könnte. Klappt das mit der dauerhaften Authentifizierung schon? Würde nur ungern ein separates System dafür hernehmen.

Grüße,
Rolf
Timberwolf 3500XL, ID 1079, ETS6 (Home), zumeist MDT-Komponenten

Ersteller
zoonuser
Reactions:
Beiträge: 110
Registriert: Sa Mär 27, 2021 8:16 pm
Hat sich bedankt: 8 Mal
Danksagung erhalten: 39 Mal

#37

Beitrag von zoonuser »

Guten Morgen,

Willy hat es gut beschrieben. Du musst den ganzen Thread lesen und es genauso machen. Nein für die dauerhafte Authentisierung gibt es noch keine Lösung. Wäre aber im Worst Case Fall kein Drama. Ich kann endlich sauber meine Miele Geräte ansprechen und auslesen ohne Umwege von Dritten. Mega.
Timberwolf ID: 515 (350), Gira X1/S1, (Zugriff nur nach Absprache)

MrWilson
Reactions:
Beiträge: 232
Registriert: Do Dez 27, 2018 2:19 pm
Wohnort: Borgsdorf
Hat sich bedankt: 44 Mal
Danksagung erhalten: 146 Mal

#38

Beitrag von MrWilson »

Klappt das mit der dauerhaften Authentifizierung schon?
Ich habe beschrieben wie es dauerhaft funktioniert, kann es aber erst ab der zukünftigen Version 4 testen.

Daher einfach mal durch den Thread arbeiten.
TWS 2500 ID: 341 + PBM ID: 463, VPN offen, Reboot nur nach Absprache

Ersteller
zoonuser
Reactions:
Beiträge: 110
Registriert: Sa Mär 27, 2021 8:16 pm
Hat sich bedankt: 8 Mal
Danksagung erhalten: 39 Mal

#39

Beitrag von zoonuser »

Hallo Willy,

ich habe mich etwas damit beschäftigt. So ganz klar ist mir es nicht. Es gibt im TW lese und schreib Ressourcen. Du hast alle 4 Anfragen als Lese Anfragen. Die können aber nichts auslösen. Auslösen muss der Trigger oder eine Schreib Ressource. Auch die Verbindung zum Multiplexer. Entweder eine Lese Ressource schickt was zum Multiplexer oder der Multiplexer triggert die Schreib Ressource.

Leider bekomme ich auch mit "try it" auf der Miele Webseite keinen neuen Token.
Werte 1 -3 sind klar. Wert 4 ist der neue Token. Wenn ich die ausfülle sagt Miele:
GENERIC_VALIDATION_ERROR. Gibt es neue Mindestdauer von einem Token?

client_id = deine client_id
client_secret = dein client_secret
refresh_token = dein aktuell gültiger refresh_token
grant_type = refresh_token
Timberwolf ID: 515 (350), Gira X1/S1, (Zugriff nur nach Absprache)

MrWilson
Reactions:
Beiträge: 232
Registriert: Do Dez 27, 2018 2:19 pm
Wohnort: Borgsdorf
Hat sich bedankt: 44 Mal
Danksagung erhalten: 146 Mal

#40

Beitrag von MrWilson »

Nein, bitte genau auf die Formulierung achten und mit den Bezeichnungen im TWS vergleichen. Du erstellst eine Ressource und vier Anfragen (blau oder „Objekt zur HTTP Anfrage hinzufügen“).

Wenn man sich bei der Miele API registriert, dann erhältst du deine client_ID und dein client_secret. Zusammen mit deiner Mailadresse und deinem Passwort kannst du dich authentifizieren. Bei der Authentifizierung erhältst du einen aktuellen Access Token und einen neuen Refresh Token. Den Access Token nutzen wir beim TWS für die Authentifizierung, der ist 30 Tage gültig. Der Refresh Token wird benötigt, um einen neuen Access Token zu erhalten.

Bild
Zuletzt geändert von MrWilson am So Mai 07, 2023 4:39 pm, insgesamt 1-mal geändert.
TWS 2500 ID: 341 + PBM ID: 463, VPN offen, Reboot nur nach Absprache
Antworten

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