-
-
Notifications
You must be signed in to change notification settings - Fork 7.8k
Add docs page for Miele integration #38438
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
14 commits
Select commit
Hold shift + click to select a range
1080a9e
Initial commit for Miele docs page
astrandb 835b3a8
Improving document
astrandb 7e1206d
Fixes
astrandb e55c6e6
Address comments by Coderabbit AI
astrandb 36fdcd6
Sync text with capabilities of first release of the integration
astrandb 3c24c1f
Touch-up
astrandb 912c0bc
Advice from AI review
astrandb ed6b8a7
Address review comments
astrandb 6382fce
Hints from AI
astrandb 4e7ddf9
Remove gemfile.lock from PR
astrandb 1a9f74c
tiny tweaks
c0ffeeca7 fee7f2c
Fix
joostlek 059f306
Address review comments
astrandb b1779d0
tiny tweaks
c0ffeeca7 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,160 @@ | ||
--- | ||
title: Miele | ||
description: Instructions on how to set up the Miele integration within Home Assistant. | ||
ha_category: | ||
- Hub | ||
- Sensor | ||
ha_iot_class: Cloud Push | ||
ha_release: '2025.5' | ||
ha_domain: miele | ||
ha_codeowners: | ||
- '@astrandb' | ||
ha_config_flow: true | ||
ha_platforms: | ||
- sensor | ||
ha_integration_type: integration | ||
--- | ||
|
||
The Miele {% term integrations %} allows users to integrate their home appliances using the [official 3rd party API](https://www.miele.com/developer). | ||
|
||
Miele is known as a manufacturer of premium appliances for cooking, laundry care, and floorcare. | ||
|
||
## Use cases | ||
|
||
- Monitor the multiple sensors of the appliance and trigger automations based on these sensors. | ||
- Monitor the program status of the appliances. | ||
|
||
{% note %} | ||
Note that the feature availability depends on the appliance model. | ||
{% endnote %} | ||
|
||
## Supported devices | ||
|
||
You can find general information about supported devices on the [Miele website](https://www.miele.com/developer/capabilities.html). The integration supports any Miele appliance connected to a Miele user account. Miele WiFiConn@ct appliances can be connected directly via a Wi-Fi router. Miele Zigbee appliances must use the Miele@home Gateway XGW3000. | ||
|
||
The appliance must be connected to the Miele CloudService by using the Miele app. | ||
|
||
{% note %} | ||
New generation washer/dryers and new generation vacuum cleaners: | ||
Endpoints for the new generations are not yet available and will be released in the fall of 2025. | ||
{% endnote %} | ||
|
||
## Prerequisites | ||
|
||
{% details "Manual entry of authentication credentials" %} | ||
|
||
- Visit [https://www.miele.com/developer](https://www.miele.com/f/com/en/register_api.aspx) and sign up for a developer account. | ||
- Enter an arbitrary name for your connection and the email of your login for the original Miele app. | ||
- On success, you will get an email with an activation link. Press the **Activate** button. Make note of the client ID and secret - you will need them for the next step. | ||
You may be prompted to create an [Application - The provided Miele User Account email address must be all lowercase; otherwise, it will result in authentication failures. | ||
- The password should not contain any special characters. Even though it works in the Miele app, it may not work with the API. | ||
- Allow a couple of minutes to get the activation email. All changes in the developer portal take a couple of minutes before the change is implemented. Save your credentials as you will need them later. | ||
|
||
{% enddetails %} | ||
|
||
{% details "I have manually disabled My Home Assistant" %} | ||
|
||
If you don't have [My Home Assistant](/integrations/my) on your installation, | ||
you can use `<HOME_ASSISTANT_URL>/auth/external/callback` as the redirect URI | ||
instead. | ||
|
||
The `<HOME_ASSISTANT_URL>` must be the same as used during the configuration/ | ||
authentication process. | ||
|
||
Internal examples: `http://192.168.0.2:8123/auth/external/callback`, `http://homeassistant.local:8123/auth/external/callback`. | ||
|
||
{% enddetails %} | ||
|
||
{% include integrations/config_flow.md %} | ||
|
||
The integration configuration may ask for the *Client ID* and *Client Secret* created above. See [Application Credentials](/integrations/application_credentials) for more details. | ||
|
||
## Supported functionality | ||
|
||
{% note %} | ||
|
||
- The entities' availability depends on the appliance type and the generation of the product, and the appliance might not support all the entities for its type. | ||
- Products from professional and semi-professional series are generally not supported due to the limitations in the Miele 3rd party API. | ||
- Some appliances don't report data while they are turned off, so corresponding entities will not appear in the Miele integration after loading until the appliances are turned on. | ||
{% endnote %} | ||
|
||
### Sensor | ||
|
||
{% details "List of sensors" %} | ||
|
||
- **Operation state**: | ||
- **Status**: Represents the current operation state of the device. The default entity name is just the appliance type. For example, "Dishwasher". | ||
- **Temperature**: Represents the current temperature in refrigerators, freezers, and ovens. Entities are created for up to 3 zones depending on the device capabilities. | ||
{% enddetails %} | ||
|
||
## Automation examples | ||
|
||
Get started with these automation examples | ||
|
||
### Send a notification when the appliance ends the program | ||
|
||
{% details "Example YAML configuration" %} | ||
|
||
{% raw %} | ||
|
||
```yaml | ||
alias: "Notify when program ends" | ||
triggers: | ||
- trigger: state | ||
entity_id: | ||
- sensor.washing_machine | ||
to: program_ended | ||
actions: | ||
- service: notify.notify | ||
data: | ||
message: "The appliance has finished the program." | ||
``` | ||
|
||
{% endraw %} | ||
{% enddetails %} | ||
|
||
## Data updates | ||
|
||
This integration uses server-sent events from the Miele API to receive live updates from the appliances. | ||
When the configuration entry is loaded or after a streaming error (for example after disconnection), the integration will request all data (such as appliance info, available commands, programs, settings, and status) for all appliances. | ||
|
||
## Known limitations | ||
|
||
- The Miele 3rd party API does not fully match the Miele app. Some programs, options, or settings available in the app may not be accessible or usable via the API. | ||
- This integration supports only one integration entry, as the Miele 3rd party API does not allow for the unique identification of an account. | ||
|
||
## Troubleshooting | ||
|
||
### Unavailable entities for a device | ||
|
||
#### Symptom: "The entities related to an appliance were available but no longer are" | ||
|
||
After reloading the Miele integration, the entities related to an appliance that used to be available are no longer available. | ||
|
||
##### Description | ||
|
||
Unavailable entities can have multiple causes: | ||
|
||
- The appliance is turned off. When it is turned off, the appliance is disconnected and the API does not retrieve information about the appliance. | ||
- The appliance is experiencing a network issue. | ||
- The Miele API is experiencing issues. | ||
|
||
##### Resolution | ||
|
||
To try to solve the above issues, follow these steps: | ||
|
||
1. Turn on the appliance and reload the Miele integration. | ||
2. If the appliance is turned on and the issue persists, check the network connection of the appliance and perform a soft reset on the appliance. | ||
3. If the issue persists, check the connection of the appliance with the Miele API by checking it in the Miele app. | ||
1. Open the Miele app. | ||
2. Go to the appliance that is experiencing the issue. | ||
3. Press the cog-wheel to view more information. | ||
4. If everything is correct and the issue persists, contact Miele support. | ||
- [Miele service and contact](https://www.miele.com/) | ||
- [Miele developer Help & Support](https://www.miele.com/developer) | ||
|
||
## Removing the integration | ||
|
||
This integration follows standard integration removal. If you have entered your own credentials, you will be asked if you want to keep them or delete them. If you want to delete them later you can do that from the tree-dot menu in {% my integrations title="**Settings** > **Devices & services**" %}. | ||
|
||
{% include integrations/remove_device_service.md %} |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.