Miele@home, miele@mobile component

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

please sorry again, but i’m not sure if i understood all.

I have to repeat it so I’m sure I understand it.

  1. Proper condition of the machine means that it must be in “Mobilestart” (it says on my washing machine). Otherwise it cannot receive any data.
  2. I have to test everything directly under the Miele Swagger page (assuming I’m logged in) with the commands (PUT) and queries (GET) there to see what works?
  3. Is it possible that individual commands don’t work but in combination, e.g. ProgramId and start time, it works?
    Because I can’t do an example like that on the Swagger site, can I?
  4. Is it correct that there is no API documentation about the special functions that are available for a specific Miele washing machine that says Progam a,b,c,x,x,x and Extras, 1,2,3,x, x,x work or not.
    And can it be that, for example, the selection of extras works for one washing machine and not for another?

My biggest shock on the Miele Swagger site was when I saw that when I send a ProgramId to my machine, that this automatically starts the machine.
If that is the case, is it even possible to set the start time?
So far I have received errors on the Miele website when setting the start time!

sorry for the many questions, but I need this information to shed light on my dark understanding

edit:
sample: Miele-swagger, login already, set any action like starttime

curl -X 'PUT' \
  'https://api.mcs3.miele.com/v1/devices/000187069553/actions' \
  -H 'accept: */*' \
  -H 'Authorization: Bearer DE_e17axxxxxxxxxxxxxxxxxxxb8' \
  -H 'Content-Type: application/json' \
  -d '{
  "startTime": [
    2,
    45
  ]
}'
Request URL
https://api.mcs3.miele.com/v1/devices/000187069553/actions

Server response

Code Details
400 Error: response status is 400
{
  "code": 400,
  "message": "GENERIC_BUSINESS_ERROR"
}
Response headers
 content-length: 47 
 content-type: application/json 

but if i try
RunOnTime
then i get that

	
Error: response status is 400

Response body
Download
{
  "code": 400,
  "message": "Device doesn't support that action"
}
Response headers
 content-length: 59 
 content-type: application/json 

ok, this not support my machine, thats clear but setting the starttime and the auromatic start if i send a programId isn’t clear for me

edit
sorry i forget:
set deviceName is possible too !

i understand, i have a exotic Washmachine now, because i buy a machine with warm-water connect… miele have onle 2 of this… maybe thats the reason why they not support this Type of machine…
on monday comes my dish.washer… also Miele… my god… i think i take a big mistake to buy Miele

edit:
if i get all actions

[type or paste code here](https://api.mcs3.miele.com/v1/devices/000187069553/actions)

the output what i get then

{
  "processAction": [],
  "light": [],
  "ambientLight": [],
  "startTime": [],
  "ventilationStep": [],
  "programId": [],
  "targetTemperature": [],
  "deviceName": true,
  "powerOn": false,
  "powerOff": true,
  "colors": [],
  "modes": [],
  "runOnTime": []
}
show me , the machine understand "starttime" , "processAction"m but i "light" i'm not sure, my machine i think don't have that feature

The point we have been trying to make for some time now is that we don’t know what will work with your machine because we do not own that model and the only way to find out is by experimenting,

PS: It’s not because your machine is especially exotic, it would be the same for any other device that we don’t have access to.

I will try to answer:
1 “Proper state” can vary between appliance types and models. It is not documented from Miele as far as i know. You have to experiment. There are a few descriptions here: Remote start of washing machine · astrandb/miele · Discussion #259 (github.com)

3 & 4 The 3rd party API is what it is. It is an attempt from Miele to expose all their different appliances of different models and different generations in a unified way. It is obvious that they prioritize their proprierary API for their own apps. The 3rd party API is OK when it comes to monitoring your appliances. It is more limited when it comes to controlling them.
But there are ways to get acceptable control from HA. E.g. you can create an automation in HA that sends a start command to a washing machine at a specific time or other condition instead of trying to set a start time in the machine.

Maybe that’s why I ask so often, as it’s almost unbelievable to me that a new Miele washing machine with Miele@Home only seems to accept 4 commands.

  • Setting a program ID with automatic start (without any setting options such as temperature etc.)
  • Setting the device name
  • Switch off/on (I’m not sure whether starting via progamId will work after switching on again, I don’t think so)

That would mean that all Miele appliances only accept 4 commands when using the Swagger site (purely in relation to washing machines)?
From the entire Swagger site, 4 actions are currently working… plus the refresh of a token etc.
That sounds very unbelievable to me and I’m still wondering whether I understood it correctly.
Only 4 swagger commands should work?

I’m happy to give you my account details here… then you can see for yourself

No, that meant that the answer “you have to experiment yourself” is not because you have an exotic model, but because Miele has not documented these aspects and they differ between devices.

Also, no, thank you, I don’t want access to your account. You really have to do this yourself.

@astrandb & @mundschenk-at
sorry again for my brain block.
I have to get over this first. This is a bit of a shock for me because I had such big plans for my household appliances.

Until I can really get a functioning control in HA with the add-on from @astrandb using Miele’s complicated procedure, I’m currently thinking of a temporary solution.

Can run the Miele app on a HAOS or on an open Raspberry PI with HA in an iframe?
Since I want to visualize my apartment with HA, even if almost everything is in KNX, it would of course be great if I could at least run the Miele app in an iframe. Is this possible with an iframe that represents a Miele app that runs in a virtual Android box?

Could this work?

I’ve got no idea.

Hi all, I’m new to HA and have a brand new set of Miele appliances in my kitchen that mostly support Miele@Home.

From what I have read here, it seems the only “easy” way to get them into HA is via HACS. Is that correct? I have very limited HA knowledge but just want to get the Miele appliances into HA so I can get notifications when the devices start and stop, and preferably the ability to remotely start my Miele Dishwasher.

Thanks!

You need to install a custom integration, yes.

Hi,
Could you explain me the way to copy

- miele
    - __init__.py
    - miele_at_home.py
    - binary_sensor.py
    - light.py
    - sensor.py

in the folder custom_components, following this instruction:
Copy the content of this repository into your custom_components folder, which is a subdirectory of your Home Assistant configuration directory. By default, this directory is located under ~/.home-assistant.

My Home Assistant is on a Rapsburry. I do not know if I have to copy it with the Terminal or File Editor, and with which instruction…

Thanks for your help
patrickp78

If you are not sure how do do this copy, I absolutely recommend that you install HACS first and install the integration via HACS afterwards. You will avoid mistakes and also get upgrades in a much simpler way.

Thank you for responding so quickly!
I already had HACS installed and I already have a few blueprints in action (like Husqvarna).
I got the miel blueprint, I have the id and secret codes from miele, I copied the .yaml code…
But I don’t know how (and by what means) to copy the code into custom_components
Thanks for your help,
patrickp78