Miele@home, miele@mobile component

Could you give an example of password that would work in your view ? I have tried everything by now

Just something random to get a sense of what could potentially work?

It is emailadress (and not a username) and the password that needs to be inserted?

Anyone else getting the following error with the integration by @astrandb?

Logger: homeassistant.config_entries
Source: helpers/config_entry_oauth2_flow.py:383
First occurred: 2:40:18 PM (1 occurrences)
Last logged: 2:40:18 PM

Error setting up entry Miele for miele
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 357, in async_setup
    result = await component.async_setup_entry(hass, self)
  File "/config/custom_components/miele/__init__.py", line 125, in async_setup_entry
    await config_entry_oauth2_flow.async_get_config_entry_implementation(
  File "/usr/src/homeassistant/homeassistant/helpers/config_entry_oauth2_flow.py", line 383, in async_get_config_entry_implementation
    raise ValueError("Implementation not available")
ValueError: Implementation not available

I see this warning now for a few weeks/months:

This was already reported Miele@home, miele@mobile component - #427 by mamoel

Guess I was over enthousiastic and removed the configuration.yaml entry for the component.
I thought that the config entry wouldn’t be necessary anymore, because the integration wants me to login using username and password.

So any clarity on why both the config entry with client_id and client_secret and login with username and password are needed?

Miele has set up their implementation of OAuth2 so that all of client_id, client_secret, username and password are required.
The short explanation is that client_* identifies your HA instance and username/password identifies your account with Miele cloud.

1 Like

Thanks for the explanation Åke!
Makes sense now and it is working well.

I run HA on the OVA and its fully updated to latest version, also installed miele from Hacs and put in miele config in my configuration.yaml but no miele integation shows up after restart, nothing i logs at all. I custom components all is in place. Maybe i miss oathlib? but how to intall that on the ova? or maybe its there, i dont konw how to find out.
Update, got to miele page and autorizied the api, but my robot cleaner refuse to show up, also no sing of miele in integrations or in the logs

You must add the integration from Settings->Integrations. You may have to clear the browser cache also to make Miele appear in the list.

Took new browser and it did the trick, still not showinig in integrations but device is present
Thanks!

It shows up only as a entity and not as a device. Strange, have no idea how to get it to vacum my house from HA

Hi everyone,

we have recently noticed that some Miele dryers apparently use some program IDs differently from the information we have gathered from the internet. (If it is indeed so, this has some unfortunate implications for how we handle program IDs in the new integration.)

Everyone who has a standalone dryer, can you please try to gather a list of program IDs to (English) name mappings, either from Miele’s Swagger UI (which unfortunately does not work for all devices) or from logging program ID changes via the HA integration and selecting all programs via the interface of your machine?

Information we need:

  • The device type of your dryer (e.g. TCR790WP )
  • A table/list of program IDs to program names, e.g:
    • 1: Automatic
    • 2: Cottons
    • …

I tried to get all programmes from my Miele TSL 783 WP EcoSpeed & Steam dryer.

So here we go:

  • TSL783WP
  • 1 | {‘Raw value’: 1, ‘Localized’: ‘Automatic plus’, ‘device_class’: ‘miele__state_program_id’, ‘icon’: ‘mdi:state-machine’, ‘friendly_name’: ‘Tumble dryer Program’}
  • 2 | {‘Raw value’: 2, ‘Localized’: ‘Cottons’, ‘device_class’: ‘miele__state_program_id’, ‘icon’: ‘mdi:state-machine’, ‘friendly_name’: ‘Tumble dryer Program’}
  • 3 | {‘Raw value’: 3, ‘Localized’: ‘Minimum iron’, ‘device_class’: ‘miele__state_program_id’, ‘icon’: ‘mdi:state-machine’, ‘friendly_name’: ‘Tumble dryer Program’}
  • 4 | {‘Raw value’: 4, ‘Localized’: ‘Woollens handcare’, ‘device_class’: ‘miele__state_program_id’, ‘icon’: ‘mdi:state-machine’, ‘friendly_name’: ‘Tumble dryer Program’}
  • 5 | {‘Raw value’: 5, ‘Localized’: ‘Delicates’, ‘device_class’: ‘miele__state_program_id’, ‘icon’: ‘mdi:state-machine’, ‘friendly_name’: ‘Tumble dryer Program’}
  • 6 | {‘Raw value’: 6, ‘Localized’: ‘Warm air’, ‘device_class’: ‘miele__state_program_id’, ‘icon’: ‘mdi:state-machine’, ‘friendly_name’: ‘Tumble dryer Program’}
  • 7 | {‘Raw value’: 7, ‘Localized’: ‘Cool air’, ‘device_class’: ‘miele__state_program_id’, ‘icon’: ‘mdi:state-machine’, ‘friendly_name’: ‘Tumble dryer Program’}
  • 8 | {‘Raw value’: 8, ‘Localized’: ‘Express’, ‘device_class’: ‘miele__state_program_id’, ‘icon’: ‘mdi:state-machine’, ‘friendly_name’: ‘Tumble dryer Program’}
  • 9 | {‘Raw value’: 9, ‘Localized’: 'Cottons ', ‘device_class’: ‘miele__state_program_id’, ‘icon’: ‘mdi:state-machine’, ‘friendly_name’: ‘Tumble dryer Program’}
  • automatic_plus | {‘Raw value’: 10, ‘Localized’: ‘Pre-ironing’, ‘device_class’: ‘miele__state_program_id’, ‘icon’: ‘mdi:state-machine’, ‘friendly_name’: ‘Tumble dryer Program’}
  • 12 | {‘Raw value’: 12, ‘Localized’: ‘Proofing’, ‘device_class’: ‘miele__state_program_id’, ‘icon’: ‘mdi:state-machine’, ‘friendly_name’: ‘Tumble dryer Program’}
  • 13 | {‘Raw value’: 13, ‘Localized’: ‘Denim’, ‘device_class’: ‘miele__state_program_id’, ‘icon’: ‘mdi:state-machine’, ‘friendly_name’: ‘Tumble dryer Program’}
  • 14 | {‘Raw value’: 14, ‘Localized’: ‘Shirts’, ‘device_class’: ‘miele__state_program_id’, ‘icon’: ‘mdi:state-machine’, ‘friendly_name’: ‘Tumble dryer Program’}
  • 15 | {‘Raw value’: 15, ‘Localized’: ‘Sportswear’, ‘device_class’: ‘miele__state_program_id’, ‘icon’: ‘mdi:state-machine’, ‘friendly_name’: ‘Tumble dryer Program’}
  • 16 | {‘Raw value’: 16, ‘Localized’: ‘Outerwear’, ‘device_class’: ‘miele__state_program_id’, ‘icon’: ‘mdi:state-machine’, ‘friendly_name’: ‘Tumble dryer Program’}
  • 17 | {‘Raw value’: 17, ‘Localized’: ‘Silks handcare’, ‘device_class’: ‘miele__state_program_id’, ‘icon’: ‘mdi:state-machine’, ‘friendly_name’: ‘Tumble dryer Program’}
  • 19 | {‘Raw value’: 19, ‘Localized’: ‘Standard pillows’, ‘device_class’: ‘miele__state_program_id’, ‘icon’: ‘mdi:state-machine’, ‘friendly_name’: ‘Tumble dryer Program’}
  • 22 | {‘Raw value’: 22, ‘Localized’: ‘Basket programme’, ‘device_class’: ‘miele__state_program_id’, ‘icon’: ‘mdi:state-machine’, ‘friendly_name’: ‘Tumble dryer Program’}
  • 24 | {‘Raw value’: 24, ‘Localized’: ‘Steam care’, ‘device_class’: ‘miele__state_program_id’, ‘icon’: ‘mdi:state-machine’, ‘friendly_name’: ‘Tumble dryer Program’}
  • gentle_minimum_iron | {‘Raw value’: 31, ‘Localized’: ‘Bed linen’, ‘device_class’: ‘miele__state_program_id’, ‘icon’: ‘mdi:state-machine’, ‘friendly_name’: ‘Tumble dryer Program’}

I don’t think the wash2dry or mobile start triggered the log as is probably expected?
Also worth to mention that the IDs 6, 16, 12, 8, 15, 1, 19, 22, 17, 13 and 7 were under the “extra functions/settings” menu (in that order).

Hope this helps you!

1 Like

So I’ve installed the integration and it seems to be working OK. I can see the status of my WCI660 washing machine, I can power it on and off and I can even stop a wash programme.

However, I am having real problems with starting a wash or setting a start time - which is surely the most useful function to be able to trigger, e.g. when solar PV generation is high.

Start programme in 1 hour:

service: miele.action
data:
entity_id: miele.washing_machine
body:
startTime: [1,0]

results in:

{‘code’: 400, ‘message’: ‘GENERIC_BUSINESS_ERROR’}

Trying to start a wash, after dialling in program and getting everything ready to go, but stopping short of pressing the Start button:

service: miele.action
data:
entity_id: miele.washing_machine
body:
processAction: 1

results in:

{‘code’: 400, ‘message’: ‘That action is not available right now.’}

Anyone come across this or have any idea where I am going wrong?

This is a topic where the documentation from Miele is minimal, so it is necessary to experiment a bit.
If you could capture a diagnostic download just before or after pressing the start button it should perhaps be possible to understand why the command is not available.

1 Like

In the Miele app, I can see salt level and rinse aid level for my dishwasher. However when I browse the API via the swagger UI, I can’t seem to find this information. Do you know how to retrieve it, and perhaps integrate it with HA using this integration?
Thanks.

Your findings are correct. The internal API that Miele use for their app is much more developed than the public third party API. I think this is unfortunate.

Oh really - I thought the app was using the same API. But okay, that explains it then. Thank you.

i also tried to start my device remotely.
I found out that using PUT programs → {“programId”: 3} statement at least my dishwasher starts working.
So my workaround is using the RESTful feature of Homeassistant:
image
is there a better way to trigger programs?
the integration gives me only the miele.action option to start actions

Hello, i hav tried everything i could think of/read but cant get this intrigation to work. I get an autentication failure always when trying to configure the entity. How do i live read the log for this itegrity alone?
New HA user coming from OH after 6 years. Thanks