NEWS
MieleCloudService Adapter
-
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". -
@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,