NEWS
MieleCloudService Adapter
-
Okay. Ich sehe folgendes:
- Licht an der Haube wurde erfolgreich eingeschaltet:
2021-04-14 16:41:49.905 - debug: mielecloudservice.0 (32696) stateChange: DeviceId [mac-00124B000E881998], requested action [Light], state [On] 2021-04-14 16:41:50.089 - debug: mielecloudservice.0 (32696) stateChange: permitted actions for device [mac-00124B000E881998]->[{"processAction":[],"light":[1],"ambientLight":[],"startTime":[],"ventilationStep":[1,2,3,4],"programId":[],"targetTemperature":[],"deviceName":false,"powerOn":true,"powerOff":false,"colors":[],"modes":[]}] 2021-04-14 16:41:50.090 - debug: mielecloudservice.0 (32696) APIStartAction: received Action: [Light] with value: [On] for device [mac-00124B000E881998] / path:[mielecloudservice.0.Hoods.mac-00124B000E881998.ACTIONS] 2021-04-14 16:41:50.090 - debug: mielecloudservice.0 (32696) APIStartAction: Executing Action: [{"light":1}] 2021-04-14 16:41:50.446 - debug: mielecloudservice.0 (32696) API returned Status: [204] 2021-04-14 16:41:50.447 - debug: mielecloudservice.0 (32696) createString: Path[mielecloudservice.0.Hoods.mac-00124B000E881998.ACTIONS.Action_Information] Value[Light: OK] 2021-04-14 16:41:50.447 - debug: mielecloudservice.0 (32696) Result returned from Action(Light)-execution: ["OK"]
- Erneuter Versuch das Licht einzuschalten:
2021-04-14 16:41:56.952 - debug: mielecloudservice.0 (32696) stateChange: DeviceId [mac-00124B000E881998], requested action [Light], state [On] 2021-04-14 16:41:57.128 - debug: mielecloudservice.0 (32696) stateChange: permitted actions for device [mac-00124B000E881998]->[{"processAction":[],"light":[2],"ambientLight":[],"startTime":[],"ventilationStep":[1,2,3,4],"programId":[],"targetTemperature":[],"deviceName":false,"powerOn":true,"powerOff":false,"colors":[],"modes":[]}] 2021-04-14 16:41:57.128 - debug: mielecloudservice.0 (32696) APIStartAction: received Action: [Light] with value: [On] for device [mac-00124B000E881998] / path:[mielecloudservice.0.Hoods.mac-00124B000E881998.ACTIONS] 2021-04-14 16:41:57.129 - debug: mielecloudservice.0 (32696) APIStartAction: Executing Action: [{"light":1}] 2021-04-14 16:41:57.309 - error: mielecloudservice.0 (32696) [APISendRequest] {"message":"Request failed with status code 400","name":"Error","stack":"Error: Request failed with status code 400\n at createError (/opt/iobroker/node_modules/axios/lib/core/createError.js:16:15)\n at settle (/opt/iobroker/node_modules/axios/lib/core/settle.js:17:12)\n at IncomingMessage.handleStreamEnd (/opt/iobroker/node_modules/axios/lib/adapters/http.js:260:11)\n at IncomingMessage.emit (events.js:326:22)\n at endReadableNT (_stream_readable.js:1241:12)\n at processTicksAndRejections (internal/process/task_queues.js:84:21)","config":{"url":"https://api.mcs3.miele.com/v1/devices/mac-00124B000E881998/actions","method":"put","data":"{\"light\":1}","headers":{"Accept":"application/json","Content-Type":"application/json","Authorization":"Bearer DE_5afa11400dc96d03036cedfb6992fc74","User-Agent":"axios/0.21.1","Content-Length":11},"transformRequest":[null],"transformResponse":[null],"timeout":0,"xsrfCookieName":"XSRF-TOKEN","xsrfHeaderName":"X-XSRF-TOKEN","maxContentLength":-1,"maxBodyLength":-1,"dataType":"json","json":true}} | [Stack]: Error: Request failed with status code 400 at createError (/opt/iobroker/node_modules/axios/lib/core/createError.js:16:15) at settle (/opt/iobroker/node_modules/axios/lib/core/settle.js:17:12) at IncomingMessage.handleStreamEnd (/opt/iobroker/node_modules/axios/lib/adapters/http.js:260:11) at IncomingMessage.emit (events.js:326:22) at endReadableNT (_stream_readable.js:1241:12) at processTicksAndRejections (internal/process/task_queues.js:84:21) 2021-04-14 16:41:57.310 - error: mielecloudservice.0 (32696) Request made and server responded: 2021-04-14 16:41:57.310 - error: mielecloudservice.0 (32696) Response.status:400 2021-04-14 16:41:57.310 - error: mielecloudservice.0 (32696) Response.headers: {"date":"Wed, 14 Apr 2021 14:41:57 GMT","content-type":"application/json","content-length":"182","connection":"close","strict-transport-security":"max-age=15724800; includeSubDomains, max-age=15724800; includeSubDomains","access-control-allow-credentials":"true","access-control-allow-headers":"DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization","access-control-allow-methods":"PUT, GET, POST, OPTIONS","access-control-allow-origin":"*","x-environment":"mcs-eu-prod-std, mcs-eu-prod-default"} 2021-04-14 16:41:57.311 - error: mielecloudservice.0 (32696) Response.data: {"message":"Light command 'ENABLED (1)' is not available for device with mieleDeviceId mac-00124B000E881998 and state 1 at this moment. Available light commands: List(DISABLED (2))"}
Dieser Versuch scheitert, weil die API sagt, dass das Licht bereits eingeschaltet ist (stateChange: permitted actions for device [mac-00124B000E881998]->[{"processAction":[],"light":[2])
- Licht ausschalten an der Haube hat funktioniert:
2021-04-14 16:42:04.568 - debug: mielecloudservice.0 (32696) stateChange: permitted actions for device [mac-00124B000E881998]->[{"processAction":[],"light":[2],"ambientLight":[],"startTime":[],"ventilationStep":[1,2,3,4],"programId":[],"targetTemperature":[],"deviceName":false,"powerOn":true,"powerOff":false,"colors":[],"modes":[]}] 2021-04-14 16:42:04.568 - debug: mielecloudservice.0 (32696) APIStartAction: received Action: [Light] with value: [Off] for device [mac-00124B000E881998] / path:[mielecloudservice.0.Hoods.mac-00124B000E881998.ACTIONS] 2021-04-14 16:42:04.568 - debug: mielecloudservice.0 (32696) APIStartAction: Executing Action: [{"light":2}] 2021-04-14 16:42:04.924 - debug: mielecloudservice.0 (32696) API returned Status: [204] 2021-04-14 16:42:04.924 - debug: mielecloudservice.0 (32696) createString: Path[mielecloudservice.0.Hoods.mac-00124B000E881998.ACTIONS.Action_Information] Value[Light: OK] 2021-04-14 16:42:04.925 - debug: mielecloudservice.0 (32696) Result returned from Action(Light)-execution: ["OK"]
- Lüfter auf Stufe 2 schalten hat funktioniert - wobei powerOn auch möglich ist - möglicherweise müssen ja beide Schalter geschaltet werden (Lüfterstufe + powerOn). Fände ich durchaus plausibel:
2021-04-14 16:42:12.361 - debug: mielecloudservice.0 (32696) stateChange: permitted actions for device [mac-00124B000E881998]->[{"processAction":[],"light":[1],"ambientLight":[],"startTime":[],"ventilationStep":[1,2,3,4],"programId":[],"targetTemperature":[],"deviceName":false,"powerOn":true,"powerOff":false,"colors":[],"modes":[]}] 2021-04-14 16:42:12.362 - debug: mielecloudservice.0 (32696) APIStartAction: received Action: [VentilationStep] with value: [2] for device [mac-00124B000E881998] / path:[mielecloudservice.0.Hoods.mac-00124B000E881998.ACTIONS] 2021-04-14 16:42:12.362 - debug: mielecloudservice.0 (32696) APIStartAction: Executing Action: [{"ventilationStep":2}] 2021-04-14 16:42:12.602 - debug: mielecloudservice.0 (32696) API returned Status: [204] 2021-04-14 16:42:12.603 - debug: mielecloudservice.0 (32696) createString: Path[mielecloudservice.0.Hoods.mac-00124B000E881998.ACTIONS.Action_Information] Value[VentilationStep: OK] 2021-04-14 16:42:12.603 - debug: mielecloudservice.0 (32696) Result returned from Action(VentilationStep)-execution: ["OK"]
Danach folgen noch mehrere Schaltbefehle für die Lüfter, die alle funktioniert haben (204).
Aus dem Log kann ich kein Problem erkennen.
Passen denn meine Interpretationen zu dem was tatsächlich passiert ist? -
V4.0.14 (2021-04-18) (Alchemy)
- (grizzelbee) Fix: 127 targetTemp for fridges caused exception and crash of adapter
-
@grizzelbee
Hallo,vielen Dank für den Adapter. Ich hab ein Miele Waschmaschine (states siehe in Bildern). Was mir bislang bei der Nutzung des Adapters aufgefallen ist:
Es gibt keine Möglichkeit den State "Mobile Start" über den Adapter zu starten. Dies muss immer an der Maschine gemacht werden. Besteht die Möglichkeit das zu ändern. Natürlich muss dann die Tür der Waschmaschine geschlossen sein (diese Abfrage wäre eventuell auch noch erforderlich).
Es gib keine Möglichkeit das Waschprogramm und die Schleuderdrehzahl über den Adapter auszuwählen. Wäre das möglich? Programme kann ich für die WCR890WPS liefern.
Ein Klicken auf den Button des States "Power On" führt zu folgenden Fehlernmielecloudservice.0 2021-04-19 08:26:54.442 error (24744) [APIStartAction] That action is not available right now. mielecloudservice.0 2021-04-19 08:26:54.441 error (24744) Response.data: {"message":"That action is not available right now."} mielecloudservice.0 2021-04-19 08:26:54.440 error (24744) Response.headers: {"date":"Mon, 19 Apr 2021 06:26:54 GMT","content-type":"application/json","content-length":"53","connection":"close","strict-transport-security":"max-age=15724800; includeSu mielecloudservice.0 2021-04-19 08:26:54.440 error (24744) Response.status:400 mielecloudservice.0 2021-04-19 08:26:54.439 error (24744) Request made and server responded: mielecloudservice.0 2021-04-19 08:26:54.438 error at processTicksAndRejections (internal/process/task_queues.js:84:21) mielecloudservice.0 2021-04-19 08:26:54.438 error at endReadableNT (_stream_readable.js:1241:12) mielecloudservice.0 2021-04-19 08:26:54.438 error at IncomingMessage.emit (events.js:326:22) mielecloudservice.0 2021-04-19 08:26:54.438 error at IncomingMessage.handleStreamEnd (/opt/iobroker/node_modules/axios/lib/adapters/http.js:260:11) mielecloudservice.0 2021-04-19 08:26:54.438 error at settle (/opt/iobroker/node_modules/axios/lib/core/settle.js:17:12) mielecloudservice.0 2021-04-19 08:26:54.438 error at createError (/opt/iobroker/node_modules/axios/lib/core/createError.js:16:15) mielecloudservice.0 2021-04-19 08:26:54.438 error (24744) [APISendRequest] {"message":"Request failed with status code 400","name":"Error","stack":"Error: Request failed with status code 400\n at createError (/opt/iobroker/node_modules/axios/lib/
Hoffe das hilft für die weitere Adapterentwicklung!
-
Hallo @LaplaceII
das muss ich Stück für Stück beantworten. Aber zuerst: Du solltest den Adapter einmal stoppen, den kompletten device tree löschen und den Adapter dann wieder starten. Du hast noch einige veraltete Datenpunkte im Baum. Das macht die Sache unnötig unübersichtlich und fehleranfällig für dich weil du Gefahr läufst Datenpunkte zu verwenden, die nicht mehr aktualisiert werden.
@laplaceii sagte in MieleCloudService Adapter:
Es gibt keine Möglichkeit den State "Mobile Start" über den Adapter zu starten. Dies muss immer an der Maschine gemacht werden. Besteht die Möglichkeit das zu ändern.
"Mobile Start" ist eine Einstellung, die an der Maschine gemacht werden muss. Das geht weder über den Adapter noch über die Handy-App. Zudem ist es modellabhängig. Ich kann an der Stelle nur auf die Bedienungsanleitung verweisen. Die Anzeige im Adapter zeigt nur an ob das Gerät das überhaupt unterstützt bzw. ob die Funktion am Gerät aktiviert wurde - an der Stelle ist die Beschreibung der API interpretationsfähig .
Natürlich muss dann die Tür der Waschmaschine geschlossen sein (diese Abfrage wäre eventuell auch noch erforderlich).
Leider kann man (zumindest zur Zeit) genau das aber nicht abfragen. Die Tür-Offen Erkennung gibt es aktuell nur für Kühlgeräte.
Es gib keine Möglichkeit das Waschprogramm und die Schleuderdrehzahl über den Adapter auszuwählen. Wäre das möglich? Programme kann ich für die WCR890WPS liefern.
Aktuell ist das leider nicht möglich. Die Miele API bietet diese Funktionen nicht an. Ich bezweifle auch etwas, das sie das jemals tun wird - zumindest nicht, wenn die Maschinen tatsächlich keinen Türsensor haben. Das Einzige das Du tun kannst ist die Maschine voll machen, schließen und so weit vorprogrammieren, dass du nur noch "Start" auslösen musst, wenn irgendein Ereignis eintritt. Das machen andere hier auch schon so um z.B. Überleistung der PV-Anlage zu verwerten.
Ein Klicken auf den Button des States "Power On" führt zu folgenden Fehlern
Das liegt daran, das Aktionen nur unter bestimmten Bedingungen möglich sind. Schau dazu bitte einmal in die Doku von Miele: https://www.miele.com/developer/swagger-ui/put_additional_info.html
-
@grizzelbee
Prima, danke für die ausführlichen Antworten. Verstehe nun besser, warum das eine oder andere nicht so funktioniert wie es eigentlich sein sollte. Also werde ich die Punkte mal bei Miele absetzen....mal schauen wie die Reaktion ist... -
@laplaceii sagte in MieleCloudService Adapter:
Prima, danke für die ausführlichen Antworten. Verstehe nun besser, warum das eine oder andere nicht so funktioniert wie es eigentlich sein sollte.
Sehr gerne. Wenn noch etwas ist, frag gerne weiter. Ich habe auch auf etwas mehr gehofft, als wir unsere Miele Geräte gekauft haben, aber auf der anderen Seite ... kenne ich nicht so viele Hersteller, die überhaupt eine öffentliche API anbieten und dokumentieren. Da ist Miele schon ziemlich weit vorne. Auch wenn die API noch ein bisschen hinter den Erwartungen von uns Enthusiasten zurück bleibt.
Also werde ich die Punkte mal bei Miele absetzen....mal schauen wie die Reaktion ist...
Ich habe da eigentlich ganz positive Erfahrungen gemacht. Mit konstruktiven Vorschlägen können die durchaus umgehen.
Edit:
@aski71V4.0.15 (2021-04-19) (Moonglow)
- (grizzelbee) Fix: 130 targetTemp for fridges and freezers will now correctly been updated in action section with current values
-
Ich habe den Adapter updatet und erhalte im Log jetzt folgende Fehler:
mielecloudservice.0 2021-04-19 22:27:34.325 error (13829) [main] APIGetAccessToken returned neither a token nor an errormessage. Returned value=[undefined] mielecloudservice.0 2021-04-19 22:27:34.323 error (13829) [error.response.headers]: [{"date":"1","content-type":"2","content-length":"3","connection":"4","strict-transport-security":"5","x-mcs-error-code":"6","x-mcs-error-message":"7","x-environment mielecloudservice.0 2021-04-19 22:27:34.323 error (13829) [error.response.status]: 500 mielecloudservice.0 2021-04-19 22:27:34.322 error (13829) [error.response.data]: [{"code":500,"message":"1"},"GENERIC_TECHNICAL_ERROR (Error-ID: cd0503b21233c519)"] mielecloudservice.0 2021-04-19 22:27:34.321 error (13829) OAuth2 returned an error during first login! mielecloudservice.0 2021-04-19 22:27:33.913 info (13829) starting. Version 4.0.14 in /opt/iobroker/node_modules/iobroker.mielecloudservice, node: v12.20.1, js-controller: 3.1.6
edit: passwort neu eingegeben -> geht wieder
-
@grizzelbee sagte in MieleCloudService Adapter:
Das Einzige das Du tun kannst ist die Maschine voll machen, schließen und so weit vorprogrammieren, dass du nur noch "Start" auslösen musst, wenn irgendein Ereignis eintritt. Das machen andere hier auch schon so um z.B. Überleistung der PV-Anlage zu verwerten.
Hallo grizzlebee: Ich habe ein PV Anlage (eingebunden über MODBUS) und würde natürlich gerne die Maschine bei entsprechendem Leistungsüberschuss starten. Programmiertechnisch kein Problem. Aber seitens der bereitgestellten States im MieleCloudService Adapter kann ich das nicht realisieren: Wäsche rein -> Tür zu -> Mobile auswählen -> State "mobileStart" steht auf "true". Damit kann ich aber die Maschine nicht über IOBroker starten, da noch das Waschprogramm inkl. Schleuderderhzahl etc. eingestellt werden muss. Dies geht aber nur über die App von Miele. Und erst wenn ich über die App von Miele das eingestellte Waschprogramm starte, werden die States im IObroker angepasst. Meine Idee ist es das Waschprogramm über den IOBroker Adapter einzustellen und dann über den "Start" State bei PV Leistungsüberschuss zu starten...
Mache ich hier was falsch. Wenn ja, wie kann ich das Thema realisieren?
Danke! -
Das Thema ist immer mal wieder hier im Thread angesprochen worden - ich selbst mache das nicht.
Das hier war, wenn ich das richtig sehe das letzte mal: https://forum.iobroker.net/post/597625
Unmittelbar da drüber gibt es noch ein paar Wortmeldungen, aber auch deutlich ältere. Such einfach mal ein bisschen. Prinzipiell stehen aber die Schalter, die du suchst, unter ACTIONS. -
Danke für den Adapter.
Ich habe ein paar weitere Programmbezeichnungen hinzugefügt:
https://github.com/Grizzelbee/ioBroker.mielecloudservice/pull/132Benutzt irgendwer die Werte in EcoFeedback?
Laut API gibt es dazu auch die Einheiten dazu, sind das bei der Waschmaschine Liter und kWh? -
Hallo Marco,
Vielen Dank für deine Erweiterungen. Ich merge die in Kürze.
@stan23 sagte in MieleCloudService Adapter:
Laut API gibt es dazu auch die Einheiten dazu, sind das bei der Waschmaschine Liter und kWh?
Die Einheiten sind mir wohl abhanden gekommen. Machst Du mir dazu einen Issue auf, damit das nicht mehr passiert? Ich fixe das dann kurzfristig.
Edit:
Schau doch bitte erst mal ob die Einheiten da sind, wenn die Maschine läuft. Laut Code, werden die Einheiten nämlich gesetzt - aber eben nur, wenn sie auch von der API geliefert werden. Und das ist eben nur, wenn die Maschine läuft. -
@grizzelbee sagte in MieleCloudService Adapter:
Das hier war, wenn ich das richtig sehe das letzte mal: https://forum.iobroker.net/post/597625
Danke für den Hinweis!
-
@grizzelbee said in MieleCloudService Adapter:
Schau doch bitte erst mal ob die Einheiten da sind, wenn die Maschine läuft. Laut Code, werden die Einheiten nämlich gesetzt - aber eben nur, wenn sie auch von der API geliefert werden. Und das ist eben nur, wenn die Maschine läuft.
Ich sehe keine Einheiten. Sollten die direkt am Wert sein?
Nicht dass ich blind binEdit:
oder meinst du, dass die beiden States erzeugt werden müssen,während die Maschine läuft? -
Also ich hab gerade den Adapter gestoppt, einen Datenpunkt gelöscht (current EnergyConsumption) und den Adapter gestartet.
Der Datenpunkt wurde neu erzeugt und nun haben Energie und Wasser die Einheit:
-
@stan23
Jaaaa .... dafür hättest Du nicht mal einen Datenpunkt löschen müssen. Mir ist das Verhalten nach deinem ersten Post auch klar geworden. Das Problem ist halt, das die API die Einheiten erst zur Verfügung stellt, wenn auch ein Programm läuft - aber dann ändert der Adapter eben die Datenpunkte nicht mehr.Ich habe das in der 4.0.16 korrigiert und schreibe die Einheiten von Miele, wenn die Maschine beim Setup zufällig gerade läuft und "rate" liter und kWh, wenn sie nicht läuft. Dann sind immer Einheiten vorhanden.
V4.0.16 (2021-04-21) (Black Orchid)
- (grizzelbee) Fix: Units for EcoFeedback will be shown now, even machine is not running during setup
... geht gleich online ...
-
@grizzelbee said in MieleCloudService Adapter:
... und "rate" liter und kWh, wenn sie nicht läuft. Dann sind immer Einheiten vorhanden.
Cool danke!
Würden die Einheiten mit 4.0.15 wieder verschwinden, wenn der Adapter bei ausgeschalteter Maschine neu gestartet wird? -
@stan23 sagte in MieleCloudService Adapter:
Würden die Einheiten mit 4.0.15 wieder verschwinden, wenn der Adapter bei ausgeschalteter Maschine neu gestartet wird?
Klares: Ja!
-
Na dann ist das eine deutliche Verbesserung
-
@grizzelbee said in MieleCloudService Adapter:
Okay. Ich sehe folgendes:
- Licht an der Haube wurde erfolgreich eingeschaltet:
- Erneuter Versuch das Licht einzuschalten:
Dieser Versuch scheitert, weil die API sagt, dass das Licht bereits eingeschaltet ist (stateChange: permitted actions for device [mac-00124B000E881998]->[{"processAction":[],"light":[2])
- Licht ausschalten an der Haube hat funktioniert:
- Lüfter auf Stufe 2 schalten hat funktioniert - wobei powerOn auch möglich ist - möglicherweise müssen ja beide Schalter geschaltet werden (Lüfterstufe + powerOn). Fände ich durchaus plausibel:
Danach folgen noch mehrere Schaltbefehle für die Lüfter, die alle funktioniert haben (204).
Aus dem Log kann ich kein Problem erkennen.
Passen denn meine Interpretationen zu dem was tatsächlich passiert ist?@grizzelbee
Hallo mal wieder...Deine Interpretationen passen zu dem was passiert ist, bzw. besser hätte passieren sollen.
Licht ein/aus funktioniert. Zentral aus geht auch.
Lediglich den Lüfter einzuschalten oder nach manuellem Einschalten am Gerät die Stufe zu wechseln geht nicht.
Das gleiche Verhalten ist leider auch, wenn ich das über die swagger-ui auf der Miele Seite (https://www.miele.com/developer/swagger-ui/swagger.html#/) durchführe.
Grundsätzlich muss es aber irgendwie gehen, denn über die APP funktioniert es...
-
@marka
Okay. Dann schlüsseln wir das mal auf, was geht und was nicht. Grundsätzlich sind das ja nicht sooo viele verschiedene Dinge. Im Grunde ja nur drei große Themen.
Bitte ergänze folgende Tabelle:Aktueller Status Aktion Resultat erwartet Resultat erhalten Licht aus Schalte Licht ein Licht an Licht an Schalte Licht aus Licht aus Power Off Power on Lüfter geht auf zuletzt eingestellter Stufe an Power On Power off Lüfter geht aus Lüfter dreht (Power On) Wechsel Lüfterstufe Wechsel zu neuer Lüfterstufe Power off Wechsel Lüfterstufe Keine (sichtbare) Änderung Das wäre zumindest das, was ich anhand der vorhandenen API Aktionen erwarten würde. Du darfst aber natürlich gerne ergänzen.
Licht würde ich unabhängig vom Rest erwarten. Power und Lüfterstufe funktionieren vermutlich nur "zusammen".