NEWS
MieleCloudService Adapter
-
@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". -
@grizzelbee said in MieleCloudService Adapter:
@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 ja Licht an Schalte Licht aus Licht aus ja Power Off Power on Lüfter geht auf zuletzt eingestellter Stufe an keine Reaktion Power On Power off Lüfter geht aus keine Reaktion Lüfter dreht (Power On) Wechsel Lüfterstufe Wechsel zu neuer Lüfterstufe keine Reaktion Power off Wechsel Lüfterstufe Keine (sichtbare) Änderung keine Reaktion Licht&Power on Stop komplettes Ausschalten ja 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". -
@marka
Hmmm. In Kombination mit: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.
habe ich natürlich ein Problem. Da ich selber nicht über die Hardware verfüge kann ich mich einzig und alleine an die Doku und die API halten - und eben nichts selber testen. Das macht das nicht einfacher. Die einzige Idee, die ich noch habe ist, das Du mal eine Mail an developer@miele.com schreibst, das Problem schilderst, das du die Haube nicht über die Swagger-Seite gesteuert bekommst und ob die sachdienliche Hinweise haben.
Tut mir leid.
Wenn Du was von denen hörst, implementiere ich das gerne in den Adapter - falls nötig. -
Hallo @Grizzelbee,
vielen Dank für den Adapter, er läuft bei uns in Kombination mit einem Geschirrspüler seit geraumer Zeit sehr zuverlässig!Nach dem Update von 2.0.3 auf 4.0.16 vermisse ich jedoch den Datenpunkt „Light“ (state). Dabei ist es nicht die direkte Info Licht an/aus, die mich interessiert, sondern ich benutze den Datenpunkt als notwendigen Trigger. Nach dem Spülprogrammende geht der Status auf „ENDE“ und kurz danach auf „AUS“, was beides bei uns für VIS als „fertig“ (= nicht ausgeräumt) interpretiert wird. Sobald die Tür das erste Mal geöffnet wird, triggert das angehende Licht die Änderung auf „aus“ (= ausgeräumt).
Gibt es eine Möglichkeit, den Datenpunkt „Light“ wieder zu implementieren? Die offizielle Tabelle der Device Capabilities API 1.0.4 ist hier für mich nicht ganz eindeutig, da die „light“-Zeile nicht ein einziges X enthält. Über das Miele Swagger-UI sehe ich den Datenpunkt weiterhin und er liefert korrekt "1/ein" und "2/aus".
Ein alternativer Tipp, wie man das Öffnen der Tür mitbekommt, würde natürlich auch helfen.
-
@rekorboi sagte in MieleCloudService Adapter:
Gibt es eine Möglichkeit, den Datenpunkt „Light“ wieder zu implementieren? Die offizielle Tabelle der Device Capabilities API 1.0.4 ist hier für mich nicht ganz eindeutig, da die „light“-Zeile nicht ein einziges X enthält. Über das Miele Swagger-UI sehe ich den Datenpunkt weiterhin und er liefert korrekt "1/ein" und "2/aus". Ein alternativer Tipp, wie man das Öffnen der Tür mitbekommt, würde natürlich auch helfen.
Grundesätzlich kann ich den Datenpunkt wieder implementieren - klar. Ich habe den ja nur entfernt, weil ich bei meiner Waschmaschine und meinem Trockner keine Funktion feststellen konnte und das durch die Doku der API untermauert wurde.
Das dein Geschirrspüler da Infos liefert, wundert mich ehrlich gesagt. Aber schick mir doch gerne mal dein Log, dann schaue ich mir das gerne an und baue das ggf. in die 4.0.17 wieder ein.
Eine andere Möglichkeit das Öffnen der Tür mitzubekommen kenne ich leider auch nicht - im Gegenteil: ich suche für genau deinen Anwendungszweck selber eine Möglichkeit und finde keine. Denn wie gesagt: Meine Geräte reagieren nicht dem Light Datenpunkt nicht.
-
@Grizzelbee
Ok, danke (und schade, dass Light bei Dir nicht reagiert, habe keinen Trick angewendet). Der Datenpunkt tauchte bisher nicht unter Actions sondern unter State auf. An der Doku irritiert mich, wie gesagt, dass laut Tabelle der Status Light als einziger von keiner Geräteklasse genutzt wird – damit erschließt sich der Sinn der Zeile nicht wirklich (grauer Bereich, vielleicht generationsabhängig).
Das Log folgt, wird heute aber nicht mehr klappen. -
@rekorboi
Okay. Cool soweit. Wenn ich das Log habe kann ich entscheiden wie genau ich das wieder einbaue, ob als State, wie in der 2.0.3, oder als Action. Denn ich habe Light ja nicht komplett entfernt, sondern nur in eine Action umgewandelt, und in die dokumentierten Geräteklassen eingebaut.
Um im Log das zu bekommen, was ich benötige musst du bitte den Adapter in den Debug-Modus bringen.
Und dann interessieren mich daraus die beiden Zeilen (am liebsten 1x mit Licht-an und 1x mit Licht-aus, muss aber nicht zwingend):- refreshMieleData: data [{"NUMBER":{"ident":{"type":{"key_localized":"Gerätetyp",[...]
- CurrentlyPermittedActions: {"processAction":[],"light":[],"ambientLight":[],"startTime":[],"ventilationStep":[],"programId":[],"targetTemperature":[],"deviceName":false,"powerOn":true,"powerOff":false,"colors":[],"modes":[]}
Die bekommst du aber nur über "Log-Herunterladen" komplett. Die normale Log-Ansicht schneidet (speziell die refreshMieleData) zu früh ab.
-
@rekorboi
Ich habe mir das noch einmal angeschaut und dabei ist folgende Lösung herausgekommen. Sag bitte Bescheid ob das für dich funktioniert, oder nicht.V4.0.17 (2021-04-27) (Ghost in the moon)
- (grizzelbee) New: Added ioBroker sentry plugin to report issues automatically
- (grizzelbee) New: Added Light-Switch to washing machines, Tumble Dryers, Washer dryers and Dish washers
- (grizzelbee) Upd: Updated dependencies
Hint: The behavior of the light-switch has slightly changed with this release. It not only tests the action capabilities of the device but also shows the state of the light state delivered by the API. If no actions are reported by the API, the switch will be without function and only show the current state. If actions have been reported the switch will work as you expect. If your device reports no light state and no actions the switch will show 'None' and won't do anything.
-
@Grizzelbee
Super, mit der 4.0.17 habe ich unter Actions einen Datenpunkt Light (switch), der den aktuellen Zustand korrekt anzeigt.Der Datenpunkt liefert somit das, was ich benötige. Was allerdings anscheinend nicht funktioniert, ist das nun vom Adapter erlaubte Setzen des Zustands. Es wird ein Fehler im Datenpunkt Action_Information angezeigt, im Log steht:
mielecloudservice.0 2021-04-27 19:19:44.385 error (10290) [APIStartAction] There was an error processing your request. It has been logged (ID ...). mielecloudservice.0 2021-04-27 19:19:44.384 error (10290) Response.data: {"code":500,"message":"There was an error processing your request. It has been logged (ID ...)."} mielecloudservice.0 2021-04-27 19:19:44.384 error (10290) Response.headers: {"date":"Tue, 27 Apr 2021 17:19:44 GMT","content-type":"application/json","content-length":"110","connection":"close","strict-transport-security":"max-age=15724800; includeS mielecloudservice.0 2021-04-27 19:19:44.383 error (10290) Response.status:500 mielecloudservice.0 2021-04-27 19:19:44.382 error (10290) Request made and server responded: mielecloudservice.0 2021-04-27 19:19:44.381 error at processTicksAndRejections (internal/process/task_queues.js:84:21) mielecloudservice.0 2021-04-27 19:19:44.381 error at endReadableNT (_stream_readable.js:1241:12) mielecloudservice.0 2021-04-27 19:19:44.381 error at IncomingMessage.emit (events.js:326:22) mielecloudservice.0 2021-04-27 19:19:44.381 error at IncomingMessage.handleStreamEnd (/opt/iobroker/node_modules/axios/lib/adapters/http.js:260:11) mielecloudservice.0 2021-04-27 19:19:44.381 error at settle (/opt/iobroker/node_modules/axios/lib/core/settle.js:17:12) mielecloudservice.0 2021-04-27 19:19:44.381 error at createError (/opt/iobroker/node_modules/axios/lib/core/createError.js:16:15) mielecloudservice.0 2021-04-27 19:19:44.381 error (10290) [APISendRequest] {"message":"Request failed with status code 500","name":"Error","stack":"Error: Request failed with status code 500\n at createError (/opt/iobroker/node_modules/axios/lib/
Wie gesagt, mir ist mit dem aktuellen Status quo geholfen, aber ich kann Dich bei Bedarf gerne weiterhin mit ergänzenden Debug-Logs und Tests unterstützen - Danke für Deinen Einsatz!
Falls es noch helfen sollte, hier ist der gewünschte Log-Auszug zum Zustand „Licht aus“:
2021-04-27 18:51:41.971 - debug: mielecloudservice.0 (4836) refreshMieleData: data [{"...":{"ident":{"type":{"key_localized":"Gerätetyp","value_raw":7,"value_localized":"Geschirrspüler"},"deviceName":"","deviceIdentLabel":{"fabNumber":"...","fabIndex":"65","techType":"G7565","matNumber":"10992350","swids":["5221","20492","25166","25293","25337","4684","20454","25168","4875","20366","20462","4928","20475","25266"]},"xkmIdentLabel":{"techType":"EK037","releaseVersion":"03.65"}},"state":{"ProgramID":{"value_raw":3,"value_localized":"ECO","key_localized":"Programmbezeichnung"},"status":{"value_raw":1,"value_localized":"Aus","key_localized":"Status"},"programType":{"value_raw":0,"value_localized":"Programm","key_localized":"Programmart"},"programPhase":{"value_raw":0,"value_localized":"","key_localized":"Programmphase"},"remainingTime":[3,56],"startTime":[0,0],"targetTemperature":[{"value_raw":-32768,"value_localized":null,"unit":"Celsius"},{"value_raw":-32768,"value_localized":null,"unit":"Celsius"},{"value_raw":-32768,"value_localized":null,"unit":"Celsius"}],"temperature":[{"value_raw":-32768,"value_localized":null,"unit":"Celsius"},{"value_raw":-32768,"value_localized":null,"unit":"Celsius"},{"value_raw":-32768,"value_localized":null,"unit":"Celsius"}],"signalInfo":false,"signalFailure":false,"signalDoor":false,"remoteEnable":{"fullRemoteControl":false,"smartGrid":false,"mobileStart":false},"ambientLight":null,"light":2,"elapsedTime":[0,0],"spinningSpeed":{"unit":"U/min","value_raw":null,"value_localized":null,"key_localized":"Schleuderdrehzahl"},"dryingStep":{"value_raw":null,"value_localized":"","key_localized":"Trockenstufe"},"ventilationStep":{"value_raw":null,"value_localized":"","key_localized":"Lüfterstufe"},"plateStep":[],"ecoFeedback":null,"batteryLevel":null}}}] 2021-04-27 18:51:42.162 - debug: mielecloudservice.0 (4836) CurrentlyPermittedActions: {"processAction":[],"light":[1],"ambientLight":[],"startTime":[],"ventilationStep":[],"programId":[],"targetTemperature":[],"deviceName":false,"powerOn":true,"powerOff":false,"colors":[],"modes":[]}
Und hier zu „Licht an“:
2021-04-27 18:55:07.090 - debug: mielecloudservice.0 (6064) refreshMieleData: data [{"...":{"ident":{"type":{"key_localized":"Gerätetyp","value_raw":7,"value_localized":"Geschirrspüler"},"deviceName":"","deviceIdentLabel":{"fabNumber":"...","fabIndex":"65","techType":"G7565","matNumber":"10992350","swids":["5221","20492","25166","25293","25337","4684","20454","25168","4875","20366","20462","4928","20475","25266"]},"xkmIdentLabel":{"techType":"EK037","releaseVersion":"03.65"}},"state":{"ProgramID":{"value_raw":3,"value_localized":"ECO","key_localized":"Programmbezeichnung"},"status":{"value_raw":1,"value_localized":"Aus","key_localized":"Status"},"programType":{"value_raw":0,"value_localized":"Programm","key_localized":"Programmart"},"programPhase":{"value_raw":0,"value_localized":"","key_localized":"Programmphase"},"remainingTime":[3,56],"startTime":[0,0],"targetTemperature":[{"value_raw":-32768,"value_localized":null,"unit":"Celsius"},{"value_raw":-32768,"value_localized":null,"unit":"Celsius"},{"value_raw":-32768,"value_localized":null,"unit":"Celsius"}],"temperature":[{"value_raw":-32768,"value_localized":null,"unit":"Celsius"},{"value_raw":-32768,"value_localized":null,"unit":"Celsius"},{"value_raw":-32768,"value_localized":null,"unit":"Celsius"}],"signalInfo":false,"signalFailure":false,"signalDoor":false,"remoteEnable":{"fullRemoteControl":false,"smartGrid":false,"mobileStart":false},"ambientLight":null,"light":1,"elapsedTime":[0,0],"spinningSpeed":{"unit":"U/min","value_raw":null,"value_localized":null,"key_localized":"Schleuderdrehzahl"},"dryingStep":{"value_raw":null,"value_localized":"","key_localized":"Trockenstufe"},"ventilationStep":{"value_raw":null,"value_localized":"","key_localized":"Lüfterstufe"},"plateStep":[],"ecoFeedback":null,"batteryLevel":null}}}] 2021-04-27 18:55:07.427 - debug: mielecloudservice.0 (6064) CurrentlyPermittedActions: {"processAction":[],"light":[2],"ambientLight":[],"startTime":[],"ventilationStep":[],"programId":[],"targetTemperature":[],"deviceName":false,"powerOn":true,"powerOff":false,"colors":[],"modes":[]}
-
@rekorboi
Danke für die Rückmeldung und die Infos (Logs).Die Licht an/aus logs sind plausibel und laut permitted actions wird auch das manuelle Schalten unterstützt. Deshalb wundert mich der Fehler. Allerdings sagt der Logauszug nicht sehr viel, weil die "Vorgeschichte" fehlt.
Kannst Du bitte etwas mehr (ca 15 Zeilen oben und unten) posten? Dann sehe ich hoffentlich etwas klarer was passiert ist,
-
@Grizzelbee
Der Log-Auszug oben zeigt alles, was im Standard-Log (Info) auftaucht. Im Debug-Modus gibt es mehr, hoffe es reicht:2021-04-28 18:20:48.143 - debug: mielecloudservice.0 (6473) addStopButton: Path[Dishwashers....] 2021-04-28 18:20:48.143 - debug: mielecloudservice.0 (6473) addLightSwitch: Path[Dishwashers....] 2021-04-28 18:20:48.143 - debug: mielecloudservice.0 (6473) [checkLightAction]: Device [Dishwashers....]: Light_On is permitted! 2021-04-28 18:20:48.144 - debug: mielecloudservice.0 (6473) addLightSwitch: result from getLightState: [2] 2021-04-28 18:21:03.104 - debug: mielecloudservice.0 (6473) stateChange: [mielecloudservice.0.Dishwashers.....ACTIONS.Light] [{"val":"1","ack":false,"ts":1619626863100,"q":0,"from":"system.adapter.admin.0","user":"system.user.admin","lc":1619626863100}] 2021-04-28 18:21:03.105 - debug: mielecloudservice.0 (6473) stateChange: DeviceId [...], requested action [Light], state [1] 2021-04-28 18:21:03.106 - debug: mielecloudservice.0 (6473) APISendRequest: Awaiting requested data. 2021-04-28 18:21:03.107 - debug: mielecloudservice.0 (6473) axios options: [{"headers":{"Authorization":"Bearer DE_...","Accept":"application/json","Content-Type":"application/json"},"method":"GET","data":"","dataType":"json","json":true,"url":"https://api.mcs3.miele.com/v1/devices/.../actions"}] 2021-04-28 18:21:03.288 - debug: mielecloudservice.0 (6473) API returned Status: [200] 2021-04-28 18:21:03.289 - debug: mielecloudservice.0 (6473) API returned Information: [undefined] 2021-04-28 18:21:03.289 - debug: mielecloudservice.0 (6473) verifiedData: [undefined] 2021-04-28 18:21:03.290 - debug: mielecloudservice.0 (6473) stateChange: permitted actions for device [...]->[{"processAction":[2],"light":[1],"ambientLight":[],"startTime":[],"ventilationStep":[],"programId":[],"targetTemperature":[],"deviceName":true,"powerOn":false,"powerOff":true,"colors":[],"modes":[]}] 2021-04-28 18:21:03.291 - debug: mielecloudservice.0 (6473) APIStartAction: received Action: [Light] with value: [1] for device [...] / path:[mielecloudservice.0.Dishwashers.....ACTIONS] 2021-04-28 18:21:03.291 - debug: mielecloudservice.0 (6473) APIStartAction: Executing Action: [undefined] 2021-04-28 18:21:03.291 - debug: mielecloudservice.0 (6473) APISendRequest: Awaiting requested data. 2021-04-28 18:21:03.292 - debug: mielecloudservice.0 (6473) axios options: [{"headers":{"Authorization":"Bearer DE_...","Accept":"application/json","Content-Type":"application/json"},"method":"PUT","dataType":"json","json":true,"url":"https://api.mcs3.miele.com/v1/devices/.../actions"}] 2021-04-28 18:21:03.409 - debug: mielecloudservice.0 (6473) Given parameters: 2021-04-28 18:21:03.410 - debug: mielecloudservice.0 (6473) Auth: [{"access_token":"DE_...","refresh_token":"DE_...","token_type":"Bearer","expires_in":2592000}] 2021-04-28 18:21:03.410 - debug: mielecloudservice.0 (6473) Endpoint: [v1/devices/.../actions] 2021-04-28 18:21:03.410 - debug: mielecloudservice.0 (6473) Method: [PUT] 2021-04-28 18:21:03.411 - debug: mielecloudservice.0 (6473) Payload: [undefined] 2021-04-28 18:21:03.412 - error: mielecloudservice.0 (6473) [APISendRequest] {"message":"Request failed with status code 500","name":"Error","stack":"Error: Request failed with status code 500\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/.../actions","method":"put","headers":{"Accept":"application/json","Content-Type":"application/json","Authorization":"Bearer DE_...","User-Agent":"axios/0.21.1"},"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 500 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-28 18:21:03.412 - error: mielecloudservice.0 (6473) Request made and server responded: 2021-04-28 18:21:03.413 - error: mielecloudservice.0 (6473) Response.status:500 2021-04-28 18:21:03.413 - error: mielecloudservice.0 (6473) Response.headers: {"date":"Wed, 28 Apr 2021 16:21:03 GMT","content-type":"application/json","content-length":"110","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-28 18:21:03.413 - error: mielecloudservice.0 (6473) Response.data: {"code":500,"message":"There was an error processing your request. It has been logged (ID ...)."} 2021-04-28 18:21:03.414 - debug: mielecloudservice.0 (6473) createString: Path[mielecloudservice.0.Dishwashers.....ACTIONS.Action_Information] Value[There was an error processing your request. It has been logged (ID ...).] 2021-04-28 18:21:03.414 - error: mielecloudservice.0 (6473) [APIStartAction] There was an error processing your request. It has been logged (ID ...). 2021-04-28 18:21:05.172 - debug: mielecloudservice.0 (6473) system.adapter.admin.0: logging false 2021-04-28 18:21:06.012 - debug: mielecloudservice.0 (6473) system.adapter.admin.0: logging true
-
@rekorboi
Japp. Reicht. Habe verstanden was da schief geht. Bugfix ist online.V4.0.18 (2021-04-28) (Ghostlights)
- (grizzelbee) Fix: Fixed light switch bug causing an exception when switching
-
@Grizzelbee
Die V4.0.18 hat leider nicht geholfen:2021-04-29 18:48:41.089 - debug: mielecloudservice.0 (28081) addLightSwitch: Path[Dishwashers....] 2021-04-29 18:48:41.089 - debug: mielecloudservice.0 (28081) [checkLightAction]: Device [Dishwashers....]: Light_Off is permitted! 2021-04-29 18:48:41.089 - debug: mielecloudservice.0 (28081) addLightSwitch: result from getLightState: [1] 2021-04-29 18:48:46.147 - debug: mielecloudservice.0 (28081) system.adapter.admin.0: logging true 2021-04-29 18:49:02.186 - debug: mielecloudservice.0 (28081) system.adapter.admin.0: logging false 2021-04-29 18:49:23.001 - debug: mielecloudservice.0 (28081) stateChange: [mielecloudservice.0.Dishwashers.....ACTIONS.Light] [{"val":"2","ack":false,"ts":1619714962995,"q":0,"from":"system.adapter.admin.0","user":"system.user.admin","lc":1619714962995}] 2021-04-29 18:49:23.002 - debug: mielecloudservice.0 (28081) stateChange: DeviceId [...], requested action [Light], state [2] 2021-04-29 18:49:23.003 - debug: mielecloudservice.0 (28081) APISendRequest: Awaiting requested data. 2021-04-29 18:49:23.003 - debug: mielecloudservice.0 (28081) axios options: [{"headers":{"Authorization":"Bearer DE_...","Accept":"application/json","Content-Type":"application/json"},"method":"GET","data":"","dataType":"json","json":true,"url":"https://api.mcs3.miele.com/v1/devices/.../actions"}] 2021-04-29 18:49:23.198 - debug: mielecloudservice.0 (28081) API returned Status: [200] 2021-04-29 18:49:23.198 - debug: mielecloudservice.0 (28081) API returned Information: [undefined] 2021-04-29 18:49:23.199 - debug: mielecloudservice.0 (28081) verifiedData: [undefined] 2021-04-29 18:49:23.199 - debug: mielecloudservice.0 (28081) stateChange: permitted actions for device [...]->[{"processAction":[],"light":[2],"ambientLight":[],"startTime":[],"ventilationStep":[],"programId":[],"targetTemperature":[],"deviceName":false,"powerOn":true,"powerOff":false,"colors":[],"modes":[]}] 2021-04-29 18:49:23.201 - debug: mielecloudservice.0 (28081) APIStartAction: received Action: [Light] with value: [2] for device [...] / path:[mielecloudservice.0.Dishwashers.....ACTIONS] 2021-04-29 18:49:23.201 - debug: mielecloudservice.0 (28081) APIStartAction: Executing Action: [undefined] 2021-04-29 18:49:23.202 - debug: mielecloudservice.0 (28081) APISendRequest: Awaiting requested data. 2021-04-29 18:49:23.202 - debug: mielecloudservice.0 (28081) axios options: [{"headers":{"Authorization":"Bearer DE_...","Accept":"application/json","Content-Type":"application/json"},"method":"PUT","dataType":"json","json":true,"url":"https://api.mcs3.miele.com/v1/devices/.../actions"}] 2021-04-29 18:49:23.325 - debug: mielecloudservice.0 (28081) Given parameters: 2021-04-29 18:49:23.326 - debug: mielecloudservice.0 (28081) Auth: [{"access_token":"DE_...","refresh_token":"DE_...","token_type":"Bearer","expires_in":2592000}] 2021-04-29 18:49:23.327 - debug: mielecloudservice.0 (28081) Endpoint: [v1/devices/.../actions] 2021-04-29 18:49:23.327 - debug: mielecloudservice.0 (28081) Method: [PUT] 2021-04-29 18:49:23.328 - debug: mielecloudservice.0 (28081) Payload: [undefined] 2021-04-29 18:49:23.331 - error: mielecloudservice.0 (28081) [APISendRequest] {"message":"Request failed with status code 500","name":"Error","stack":"Error: Request failed with status code 500\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/.../actions","method":"put","headers":{"Accept":"application/json","Content-Type":"application/json","Authorization":"Bearer DE_...","User-Agent":"axios/0.21.1"},"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 500 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-29 18:49:23.332 - error: mielecloudservice.0 (28081) Request made and server responded: 2021-04-29 18:49:23.332 - error: mielecloudservice.0 (28081) Response.status:500 2021-04-29 18:49:23.333 - error: mielecloudservice.0 (28081) Response.headers: {"date":"Thu, 29 Apr 2021 16:49:23 GMT","content-type":"application/json","content-length":"110","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-29 18:49:23.333 - error: mielecloudservice.0 (28081) Response.data: {"code":500,"message":"There was an error processing your request. It has been logged (ID ...)."} 2021-04-29 18:49:23.334 - debug: mielecloudservice.0 (28081) createString: Path[mielecloudservice.0.Dishwashers.....ACTIONS.Action_Information] Value[There was an error processing your request. It has been logged (ID ...).] 2021-04-29 18:49:23.335 - error: mielecloudservice.0 (28081) [APIStartAction] There was an error processing your request. It has been logged (ID ...). 2021-04-29 18:49:29.476 - debug: mielecloudservice.0 (28081) system.adapter.admin.0: logging true
-
@rekorboi
Grrr. Manchmal hasse ich die lose typisierung bei js.
Probiere bitte mal die 4.0.19V4.0.19 (2021-04-29) (The scarecrow)
- (grizzelbee) Fix: Fixed light switch bug causing an exception when switching - 2nd attempt
- (grizzelbee) Fix: Fixed No-Icon Bug when appliance is unknown
-
@Grizzelbee kann es sein das mit dem neusten Update ich die Kaffeemaschine nicht mehr steuern kann?
Gruß Michael -
ann es sein das mit dem neusten Update ich die Kaffeemaschine nicht mehr steuern kann?
Hmmm. Denkbar. Ich fummel da ja mal wieder an dem Licht-Switch rum. Ist schon komisch wie viele sich ausgerechent für dieses eine Feature interessieren. Und es scheint da gewisse Inkonsistenzen in der API zu geben. Von der 4.0.19 hatte ich mir aber eigentlich gehofft, dass sie läuft.
Was ist in deinen Augen gerade das neueste Update? -
@grizzelbee ok hatte vielleicht nur einen Schluckauf jetzt geht es wieder, man ist halt schon verwöhnt wenn man morgens in die Küche kommt und die Machine ist schon an.
Danke nochmal für die Superarbeit von dir. -
@Grizzelbee
Die V4.0.19 führt leider zu keiner Änderung, das Schalten ist nicht möglich. Daher habe ich mich noch einmal mit dem Swagger-UI beschäftigt, hier zeigt sich anscheinend das gleiche Verhalten. Der gelieferte Fehlercode ist ebenfalls die 500:{ "code": 500, "message": "GENERIC_TECHNICAL_ERROR (Error-ID: ...)" }
Meine Interpretation wäre, dass die API trotz der expliziten Auflistung von Light unter CurrentlyPermittedActions kein Schalten zulässt, was zudem konsistent mit der Doku-Tabelle (actions – light) wäre. Die Statusübermittlung läuft jedoch absolut zuverlässig, was man als vereinbar mit den diesbezüglichen, nicht eindeutigen Angaben der Doku-Tabelle (state – light) ansehen könnte.
Aber, wie bereits gesagt, für das Feature „Light-Switch“ würde mir momentan auch keine Verwendung einfallen. Ich bin mit der von Dir implementierten Statusfunktion glücklich, das Triggern funktioniert problemlos.
Solltest Du dennoch der Schaltproblematik ein wenig tiefer nachgehen wollen, so unterstütze ich Dich selbstverständlich weiterhin gerne mit Tests & Logs.
Auf jeden Fall noch einmal vielen Dank für den tollen Adapter und Deinen Einsatz! -
Vielleicht hängt es auch mit der Typisierung der Objecte zusammen. Mit dem js-controller 3.3.7 erhalte ich entspechende Log Einträge
mielecloudservice.0 2021-05-03 08:37:34.596 info (1784) State value to set for "mielecloudservice.0.Washing_machines.000150008173.ACTIONS.Light" has to be type "string" but received type "number" mielecloudservice.0 2021-05-03 08:37:34.564 info (1784) State value to set for "mielecloudservice.0.Washing_machines.000150008173.Schleuderdrehzahl" has to be type "number" but received type "string"
Adapter Version ist bei mir 4.0.19
-
@rekorboi sagte in MieleCloudService Adapter:
Solltest Du dennoch der Schaltproblematik ein wenig tiefer nachgehen wollen, so unterstütze ich Dich selbstverständlich weiterhin gerne mit Tests & Logs.
Ich denke, ich lasse es erst einmal damit gut sein. Sieht auch für mich nach einem Bug in der API aus. So lange ich keine Fehlermeldungen mehr zum Thema Licht schalten bekomme, fasse ich das nicht mehr an.
Auf jeden Fall noch einmal vielen Dank für den tollen Adapter und Deinen Einsatz!
Sehr gerne!
@uwerlp sagte in MieleCloudService Adapter:
Vielleicht hängt es auch mit der Typisierung der Objecte zusammen. Mit dem js-controller 3.3.7 erhalte ich entspechende Log Einträge
Die beiden Einträge kenne ich ich und habe sie auch schon gefixed - allerdings noch nicht veröffentlicht, weil ich davon ausging, dass da noch mehr kommt. War dann aber nicht so. Zur Zeit sind es nur die beiden.
Also:
V4.0.20 (2021-04-30) (Sleepwalkers)
- (grizzelbee) Fix: 137 Fixed Read-only state "info.connection" has been written without ack-flag with value "false"
- (grizzelbee) Fix: 138 Fixed State value to set for ".Schleuderdrehzahl" has wrong type "string" but has to be "number"
- (grizzelbee) Fix: 139 Fixed State value to set for ".ACTIONS.Light" has wrong type "number" but has to be "string"
- (grizzelbee) Upd: Changed device group from channel to folder as documented here