Miele@home, miele@mobile component

Use developer tools>states? :slight_smile:

Well, not to defend their software stack, but at least they have an official 3rd-party API (though I would prefer documentation for their local protocol), and the machines themselves are well-built.

1 Like

Hello,

these are the program IDs of the Miele WWP 760 TwinDos.

Can I also access the machineā€™s extras?
I didnā€™t find anything about this on the API page. Are there any solutions here?


Program		programId		
"Express 20"		122
"Dunkles/Jeans"	123
"ECO 40-60 "		190
"ImprƤgnieren"		27
"Oberhemden"		23
"Seide "			9
"Wolle "		8
"FeinwƤsche"		4
"Pflegeleicht"		3
"Baumwolle"		1
"Outdoor"		37
"SportwƤsche"		29
"Automatic plus"	31
"Nur SpĆ¼len/StƤrken"	52
"Pumpen/Schleudern"	21
"Maschine reinigen"	91

If by ā€œAPI pageā€ you mean Mieleā€™s Swagger site (where you can log in with your actual credentials and see the response for your devices), no there is no solution. What you see there is all you get.

ok, Iā€™ve seen a few things and also how I get my ProgramIDā€™s. But no example of the possibility of sending the temperature.

If I take other examples on the Swagger side, e.g. of an oven or whatever, I see that you can set different actions.

Does this work with washing machines too?

Best example:
I need to remotely start my washing machine.
I need a colored wash at 40Ā° and at the end I would like to have it pre-ironed with steam.

In addition to the program ID, do I also have to send the temperature, start time and the extra pre-ironing?
is that possible?

Forget about the examples, authorize with your credentials and use the ā€œTry it outā€ button.

thats the result what i get on swagger-side with my deviceId

curl -X 'PUT' \
  'https://api.mcs3.miele.com/v1/devices/000187069553/programs' \
  -H 'accept: */*' \
  -H 'Content-Type: application/json' \
  -d '{
  "programId": 133
}'

Are you now telling me that I can only send program IDs and not start times and temperatures? and certainly no extra programs like Iron-Steam?

please, thats not true or?

maybe i misunderstood you , sorry
if i use node-red on my HAOS instalation, sure i use the credentials and log in and get my token tooā€¦ but on miele swagger sideā€¦ i donā€™t need it to log inā€¦ i think i do anything wrong

edit.
thats too what i get on the swagger side if i put my deviceId for start a program

[https://api.mcs3.miele.com/v1/devices/000187069553/programs)]

Code	Details
Undocumented
Failed to fetch.
Possible Reasons:

CORS
Network Failure
URL scheme must be "http" or "https" for CORS request.


if i send any programID, start then the wash-machine automaticly?
i can not send any starttime?
and temperature?
of course i have to send some temperatureā€¦ if not then the api not workā€¦

At the top of Miele 3rd Party API - Get started is an ā€œAuthorizeā€ button. Once you do that, you can try out API calls with the ā€œTry it outā€ button directly on the page. No need for curl calls from your machine.

oh my god, sorry, i never see that BIG button.
ok now i logged in by username/Password alreadyā€¦ is better to logged in by bearer because maybe i can use my actualy node-red- miele-bearer

okayā€¦ sorry for all my stupid questionsā€¦ now i see a little clearer the swagger-side

Iā€™m sitting here and Iā€™m really ashamed right now

@mundschenk-at
I just want to make sure I tested everything correctly:

Is it correct when I see under miele-swagger that none of my washing machine actions are supported and probably no start time, that this is actually the case?

What I currently see there is:
Washing machines probably only support programidā€™s and you canā€™t even enter a temperature

is it correct?

I think that I have a normal Miele washing machine and that others must have the same problem

Is that correct?

edit:
sorrry if i ask so directly but i canā€™t believ it now that all what i can use is only the programidā€¦

Well, probably. It might depend on the state of the washing machine (e.g. whether you enabled MobileStart) and also on the specific model :person_shrugging:

If you can get something to work with the Swagger UI, @astrandb can potentially implement in the integration. If you canā€™t, you might be doing something wrong or it might be impossible. Without owning the specific model, no one can rule out one or the other.

exactly that i have to ask you again, sorryā€¦ but i have to ask and understood this.
Because i canā€™t belive my washmachine understood only the programIDā€¦ because now looks like that

if that trueā€¦ sure i call 100 times to Miele , i donā€™t have a problem with this and ask so long i get a answere why i can start ALL with my Miele-app and in the Miele-3thrd-Party app what use the same same cloud and maybe the same gateway and all, i can only use the programmidā€¦ and mybe ist it only a BIG-Miele Joke

  1. iā€™m logged in in the swagger-side
  2. all locks are closed (looks good)
  3. all what i get now on the miele-swaggger-side is now from my machine (sometimes i have to put in the deviceID)

the result what i get is:
only programmID looks like works fine
all other , startime, steam-iron or temperature not workā€¦ i get different errors

i have now a actually WWP 760 Miele, and i think some others have same sameā€¦ or is there big different from washmachine to Washmachine?

and of courseā€¦ yes my machine is in mobilestart-mode !

The /actions endpoint i the key to what can be done or not. If the entries are empty or false the API will not accept command/settings. So set the machine to different states and check the endpoint. If it indicates that a setting is accepted and there is no obvious way to do it in the integration, then please report it here or preferably on GitHub.

aaah, okay,
thats mean
if i send any setting to the machine like temperature the machine will only accept a complete setting like, startime, temperature and programId ?

and if this not work, then i have to report it by Githubā€¦ is that right?
that is not a problem ā€¦ i do this
and for you is It possible to clear that? with Miele?
edit
i ask, because i have then to protocol and report that allā€¦

Set the machine to a state that seems logical, e.g. power on and mobile start. Then look in Swagger what the resonse is on the /actions endpoint.

This is an example of a response where the API will accept only a command:to change the device name and nothing else.

{
        "processAction": [],
        "light": [],
        "ambientLight": [],
        "startTime": [],
        "ventilationStep": [],
        "programId": [],
        "targetTemperature": [],
        "deviceName": true,
        "powerOn": false,
        "powerOff": false,
        "colors": [],
        "modes": [],
        "runOnTime": []
      }
1 Like

okay, the wash machine take now any program and washā€¦
in swagger i take that

curl -X 'GET' \
  'https://api.mcs3.miele.com/v1/devices/000187069553/actions' \
  -H 'accept: application/json; charset=utf-8' \
  -H 'Authorization: Bearer DE_9e098ba17a12ac71c2afb70ed3756165'

and i get

{
  "processAction": [
    2,
    3
  ],
  "light": [],
  "ambientLight": [],
  "startTime": [],
  "ventilationStep": [],
  "programId": [],
  "targetTemperature": [],
  "deviceName": true,
  "powerOn": false,
  "powerOff": true,
  "colors": [],
  "modes": [],
  "runOnTime": []
}

i will send later this what i get in Machine-On and Mobile-Start.

and this is the output of currently suported actions for my machine

{
  "processAction": [
    1,
    2,
    3
  ],
  "light": [],
  "ambientLight": [],
  "startTime": [],
  "ventilationStep": [],
  "programId": [],
  "targetTemperature": [],
  "deviceName": true,
  "powerOn": false,
  "powerOff": true,
  "colors": [],
  "modes": [],
  "runOnTime": []
}

Please note that the Miele app does not use the Miele 3rd-Party API but a separate internal API with much more fine-grained control.

Theoretically, it would be possible to control the devices entirely locally, but initial efforts to reverse engineer the protocol fizzled out once the 3rd-Party API became available.

yes i miss thatā€¦

@astrandb
her is my action output from swagger
My Wash Machine was in Mobilestart (WWP 760 Twindose)

edit:
the curl command:
curl -X 'GET' \
  'https://api.mcs3.miele.com/v1/devices/000187069553/actions' \
  -H 'accept: application/json; charset=utf-8' \
  -H 'Authorization: Bearer DE_9e09xxxxxxxxxxxxxxxxxxxx'
and what i get:

{
  "processAction": [],
  "light": [],
  "ambientLight": [],
  "startTime": [],
  "ventilationStep": [],
  "programId": [],
  "targetTemperature": [],
  "deviceName": true,
  "powerOn": false,
  "powerOff": true,
  "colors": [],
  "modes": [],
  "runOnTime": []
}

No surprises there.
I cannot remember that I have seen programId working in the /actions endpoint. But the /programs endpoint will produce a list of available programs if the machine is in a proper state.

I think the only productive way forward is to experiment with Swagger to see what settings you can change in your machine. Miele developer support are rarely answering support questions of these topics unfortunately.

Use the endpoint /devices/{deviceId}/actions with PUT and follow the examples.
Look at the response codes and at your machine to see if the commands are accepted.
It is possible to turn oven lights on and off, to set target temperature in freezers, control the speed of evacuation fans etc. But I haveā€™t been successful with controlling details for dishwashers, washing machines, hobs etc.

1 Like