NEWS
MieleCloudService Adapter
-
Ein Forum gibt es meines Wissens nach nicht. Maildraesse findest du auf: https://www.miele.com/developer
-
@Grizzelbee kannst du mir die zwei datenpunkte erklären
Da ich komischerweise über beide die Maschine mal Starten kann und mal nicht? Sorry Bild vergessen.
-
@michael-1975
Also, die Idee ist folgende:
In ioBroker habe ich keine Möglichkeit einen Schalter zu definieren - und ihn anschließend zu aktivieren oder zu deaktivieren. Das wäre eigentlich meine Lieblingslösung gewesen. Das Problem ist nämlich folgendes: Wenn der Schalter einmal da ist, ist er auch jederzeit klick-/schaltbar. Die Miele-API sagt mir aber - abhängig vom Zustand der Geräte - welche Aktion sich nun tatsächlich gerade auslösen lässt und welche nicht. Also habe ich einmal den eigentlichen Schalter zum Starten der Aktion implementiert (Action.Start) und direkt daneben die Statusanzeige ob der Button lt-. API gerade funktioniert - oder eben auch nicht (Action.Start_Button_Active). Damit könnte man also in der VIS die entsprechenden Schalter aktivieren bzw. deaktivieren. Soviel zur Intention dahinter.Ich bin zwar der letzte, der Programmierfehler kategorisch ausschließen will - im Augenblick fehlt mir aber tatsächlich die Fantasie, wie Start_Button_Active die Aktion selbst auslösen sollte oder könnte. Gedacht ist es aber ganz sicher nicht so.
Hoffe deine Frage befriedigend beantwortet zu haben.
-
UPDATE: Sorry, hat sich erledigt. Scheinbar war das iobroker gespeicherte Kennwort falsch oder leer. Hat sich mysteriöserweise von selbst gelöscht
Hmm, seit heute Morgen kommen bei mir nur noch Fehlermeldung bezgl. falscher Login-Daten. Habe sie aber gegengeprüft und mir sogar neue bei Miele geben lassen. Trotzdem bleibt der Adapter "rot". Habt Ihr das auch?
mielecloudservice.0 2021-09-15 14:04:11.528 warn Read-only state "mielecloudservice.0.info.connection" has been written without ack-flag with value "false" mielecloudservice.0 2021-09-15 14:04:11.522 error [main] APIGetAccessToken returned neither a token nor an errormessage. Returned value=[undefined] mielecloudservice.0 2021-09-15 14:04:11.521 warn IMPORTANT!! Mask/Delete your credentials when posting your log online! mielecloudservice.0 2021-09-15 14:04:11.520 error options country: [de-DE] mielecloudservice.0 2021-09-15 14:04:11.520 error options Client_Secret: [XXX] mielecloudservice.0 2021-09-15 14:04:11.520 error options Client_ID: [XXX] mielecloudservice.0 2021-09-15 14:04:11.520 error options Miele_Password: [] mielecloudservice.0 2021-09-15 14:04:11.520 error options Miele_account: [XXX] mielecloudservice.0 2021-09-15 14:04:11.520 error Credentials used for login: mielecloudservice.0 2021-09-15 14:04:11.519 error Error: Unable to authenticate user! Your credentials seem to be invalid. Please double check and fix them. mielecloudservice.0 2021-09-15 14:04:11.518 error OAuth2 returned an error during first login!
-
bei mir ist alles ok
-
@grizzelbee sagte in MieleCloudService Adapter:
@michael-1975
Also, die Idee ist folgende:
In ioBroker habe ich keine Möglichkeit einen Schalter zu definieren - und ihn anschließend zu aktivieren oder zu deaktivieren. Das wäre eigentlich meine Lieblingslösung gewesen. Das Problem ist nämlich folgendes: Wenn der Schalter einmal da ist, ist er auch jederzeit klick-/schaltbar. Die Miele-API sagt mir aber - abhängig vom Zustand der Geräte - welche Aktion sich nun tatsächlich gerade auslösen lässt und welche nicht. Also habe ich einmal den eigentlichen Schalter zum Starten der Aktion implementiert (Action.Start) und direkt daneben die Statusanzeige ob der Button lt-. API gerade funktioniert - oder eben auch nicht (Action.Start_Button_Active). Damit könnte man also in der VIS die entsprechenden Schalter aktivieren bzw. deaktivieren. Soviel zur Intention dahinter.Ich bin zwar der letzte, der Programmierfehler kategorisch ausschließen will - im Augenblick fehlt mir aber tatsächlich die Fantasie, wie Start_Button_Active die Aktion selbst auslösen sollte oder könnte. Gedacht ist es aber ganz sicher nicht so.
Hoffe deine Frage befriedigend beantwortet zu haben.
Danke für deine Antwort.
Ich werde es mal weiter durchprobieren und dir dann die Infos geben.
Gruß Michael -
So heute habe ich es endlich das erstemal hinbekommen das die Spülmaschine selbst startet wenn ich von der PV Anlage überschuß produziere. Für die wo es interessiert folgendes habe ich gemacht, gestern abend die Maschine eingeschaltet mit Endzeit spätesdens heute um 18:00 Uhr.
Und sie ist heute morgen selbständig um 8:30 angegangen nach dem ich mehr wie 50 Watt von der PV Anlage kommt ist bis jetzt nur bis alles läuft dann wird optimiert mit Trockner und Waschamschine, folgendes Blockly habe ich gemacht.
Gruß Michael
-
Cool! Freut mich sehr, dass es jetzt klappt.
Die erste Steueranweisung kannst du aber getrost rausnehmen.
Die wird nichts ausrichten. Der Datenpunkt ist nicht beschreibbar:Du könntest bestenfalls abfragen ob der Datenpunkt gerade "wahr" ist und dann erst die Maschine starten und falls er "falsch" ist eine Benachrichtigung schicken. Dafür ist er gedacht und so sollte er funktionieren - hoffe ich jedenfalls. Das Problem ist nämlich, dass der Adapter in einen Fehler läuft, wenn eine Aktion ausgelöst wird, die gerade nicht erlaubt ist.
-
@grizzelbee komisch ist nur das der immer auf false steht.
wenn ich den raus nehme dann ginge es das letzte mal nicht, werde es aber nochmals probieren.
Es war ja immer das Problem wenn ich die Maschine richte und nach ca.3 Stunden konnte ich Sie nicht mehr mit dem Adapter starten und so hat es jetzt funktioniert aber ich teste es heute abend nochmal und schaue ob Sie morgen startet.
-
@grizzelbee
Hab mal Miele angeschrieben und auch eine Antwort bekommen:Thank you very much for your valuable feedback on our API. The cooktop with hood is a special class of our standard cooktop. Unfortunately, the fan levels are not yet displayed there. We are working on this point and assume that we will also display the fan levels with the next API release.
Please be patient a little longer.Könnte sich also irgendwann mal was tun.
-
So habe das ganze Wochenende getestet, was soll ich sagen es funktioniert soweit alles ich kann die Spülmaschine, Waschmaschine oder Trockner abends richten und am Nächsten Tag starten sie sobald ich einen Überschuß der PV Anlage habe. Es gibt im Moment auch n icht sowas wie einen Tiefschlaf der Geräte.
Danke für den Super Adapter.
Gruß Michael
-
Ja, so etwas in der Art dachte ich mir schon. Das Schöne bei Miele ist, das die wirklich gut auf konstruktive Kritik reagieren - auf der anderen Seite habe ich den Eindruck, das da nur so ein bis zwei Leute an der API arbeiten. Bisher scheint es sich zwar um ein strategisches, aber kein besonders hoch priorisiertes Projekt zu handeln. Ich würde aber sehr gerne mit meiner Einschätzung falsch liegen.
@michael-1975
Das klingt doch insgesamt schon mal vielversprechend!
Auf welcher Version bist du gerade? v4.5.0? -
Hallo zusammen,
seit einiger Zeit (vielleicht 1-2 Wochen) erhalte ich folgende errors des mielecloud-Adapters. Ich habe diesen bereits eine Weile laufen und gemäß Anleitung konfiguriert. Ich muss dazu sagen, dass bisher noch kein Gerät in den Adapter integriert ist, das dieses erst im November geliefert wird.
Den Bestätigungslink für den Account von Miele (Activate your Miele 3rd Party API credentials) habe ich erneut betätigt und erhalte den Hinweis, dass der Token falsch wäre (Your token is invalid).
Was muss ich tun ?
Vielen Dank und beste Grüße
2021-09-21 00:27:33.347 - error: mielecloudservice.0 (14814) [APISendRequest] {"message":"connect ENETUNREACH 20.61.170.218:443","name":"Error","stack":"Error: connect ENETUNREACH 20.61.170.218:443\n at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1148:16)","config":{"url":"https://api.mcs3.miele.com/v1/devices/?language=de","method":"get","data":"","headers":{"Accept":"application/json","Authorization":"Bearer DE_d4ba3ecbfb0cde2e1bf8eb609e9a6781","Content-Type":"application/json","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},"code":"ENETUNREACH"} | [Stack]: Error: connect ENETUNREACH 20.61.170.218:443 at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1148:16) 2021-09-21 00:27:33.348 - error: mielecloudservice.0 (14814) The request was made but no response was received: 2021-09-21 00:27:33.348 - error: mielecloudservice.0 (14814) [refreshMieleData] [TypeError: Converting circular structure to JSON --> starting at object with constructor 'TLSSocket' | property '_httpMessage' -> object with constructor 'ClientRequest' --- property 'socket' closes the circle] |-> JSON.stringify(error):{}
-
@grizzelbee Ja ich bin auf der v4.5.0 läuft super.
-
@Grizzelbee
Nachdem ich heute mal wieder zum Testen kam:Erst ging nichts, da der Adapter die Objekte überhaupt nicht mehr upgedatet hat, obwohl die Instanz auf grün war. Versuche den Geschirrspüler remote zu starten funktionierten nicht - keine Reaktion. Reloads brachten nichts. Dann habe ich die APP auf dem Handy neu gestartet und siehe da, ich war nicht eingeloggt, da offensichtlich ein update installiert worden war. Ich loggte mich ein und konnte sofort den Status der Geräte korrekt erkennen. Also habe ich die Instanz komplett gestoppt und wieder gestartet und siehe da, sie zeigte wieder korrekte Daten. Das Gerät ließ sich nun auch starten, pausieren und stoppen, obwohl alle drei Stati auf "false" standen. Die funktionieren also offensichtlich nicht korrekt.
-
Weitere Erkenntnis gewonnen heute:
Das Pausieren, Starten und Stoppen funktioniert nur nach dem Starten der Instanz zuverlässig. Ich habe noch nicht herausgefunden wann genau er nicht mehr will, aber es scheint eine Art Zeitbeschränkung zu geben, nach der es dann nicht mehr funktioniert, bis man die Instanz neu gestartet hat!
Nachdem ich heute Morgen getetestet hatte und es funktionierte, habe ich eben noch einmal getestet und er reagierte weder auf Pause, Start oder Stop, bis ich die Instanz neu gestartet hatte, dann ging es wieder.
EDIT: "Zuverlässig" geht es auch dann nicht. Jetzt habe ich noch einmal die Geschirrspüle ausgestellt, dann wieder eingeschaltet, ein Programm gewählt und wollte nun per "Objekte Button" starten. Ging nicht, stattdessen Msg.: "Cannot read property 'message' of undefined"
Es ist bisher für mich nicht systematisch nachvollziehbar wann das Gerät reagiert und wann nicht.
-
@joergh
Nächstes Update:Ich vermute das manchmal etwas störrische Verhalten hat einfach mit der Trägheit des Systems zu tun. Wenn ich zu schnell auf die Buttons drücke, dann erscheint die oben beschriebene Fehlermeldung. Inzwischen scheint es nun per Script zu funktionieren.
-
Also ich kann für meine Geräte sprechen per sricpt/Blockly starten sie ohne Probleme
-
das manchmal etwas störrische Verhalten hat einfach mit der Trägheit des Systems zu tun
Hmm. Klingt durchaus plausibel. Die Latenz ist leider nicht unerheblich bei dem System: Jeder "Button-Klick" muss lokal erst einmal erkannt und ausgewertet werden (lokale ioBroker-Rechnerperformance). Dann wird das per http übertragen (Internetanbindung) um zu guter Letzt bei Miele wieder verarbeitet zu werden (API-Performance) ... und für die Rückmeldung alles wieder rückwärts ...
Es ist bisher für mich nicht systematisch nachvollziehbar wann das Gerät reagiert und wann nicht.
Zum einen: Ja - die API hat definitiv hier und dort noch Bugs (manchmal aber auch einfach undokumentierte Features) - der Adapter aber auch. Das können wir nur versuchen gemeinsam im Laufe der Zeit zu lösen.
-
hängen meine Errors mit der "unzulänglichen" API zusammen oder mit dem Adapter oder mit meinem System ?
2021-09-24 10:24:34.516 - error: mielecloudservice.0 (784) [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:412:35)\n at IncomingMessage.emit (domain.js:470:12)\n at endReadableNT (internal/streams/readable.js:1317:12)\n at processTicksAndRejections (internal/process/task_queues.js:82:21)","config":{"url":"https://api.mcs3.miele.com/v1/devices/?language=de","method":"get","data":"","headers":{"Accept":"application/json","Authorization":"Bearer DE_49102d8f353d26597e732d5d5430d78a","Content-Type":"application/json","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
und
2021-09-24 10:24:34.523 - error: mielecloudservice.0 (784) Request made and server responded: 2021-09-24 10:24:34.523 - error: mielecloudservice.0 (784) Response.status:500 2021-09-24 10:24:34.523 - error: mielecloudservice.0 (784) Response.headers: {"date":"Fri, 24 Sep 2021 08:24:34 GMT","content-type":"application/json","transfer-encoding":"chunked","connection":"close","strict-transport-security":"max-age=15724800; includeSubDomains","x-mcs-error-code":"500","x-mcs-error-message":"GENERIC_TECHNICAL_ERROR (Error-ID: 7ef34d6ae6428093)","x-environment":"mcs-eu-prod-default","access-control-allow-origin":"*","access-control-allow-credentials":"true","access-control-allow-methods":"PUT, GET, POST, OPTIONS","access-control-allow-headers":"DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization"} 2021-09-24 10:24:34.524 - error: mielecloudservice.0 (784) Response.data: {"code":500,"message":"GENERIC_TECHNICAL_ERROR (Error-ID: 7ef34d6ae6428093)"} 2021-09-24 10:24:34.524 - error: mielecloudservice.0 (784) [refreshMieleData] [Error: GENERIC_TECHNICAL_ERROR (Error-ID: 7ef34d6ae6428093)] |-> JSON.stringify(error):{}