### Miele Developer API Overview Source: https://www.miele.com/developer/legal-notice Provides an overview of the Miele Developer API, including links to key resources like getting started, authorization, eventing, and Swagger documentation. ```APIDOC Miele Developer API: Base URL: https://www.miele.com/developer/ Key Resources: - Get started: https://www.miele.com/developer/index.html - Get involved: https://www.miele.com/f/com/en/register_api.aspx - Documentation: https://www.miele.com/developer/legal-notice.html - General concept: https://www.miele.com/developer/concept.html - Device Capabilities: https://www.miele.com/developer/capabilities.html - Authorization: https://www.miele.com/developer/authorization.html - Eventing: https://www.miele.com/developer/eventing.html - Swagger: https://www.miele.com/developer/openapi/index.html - Best practices: https://www.miele.com/developer/bestpractices.html - News: https://www.miele.com/developer/news.html - FAQ: https://www.miele.com/developer/faq.html - Downloads: https://www.miele.com/developer/download.html Legal and Policy Information: - Data protection: https://www.miele.com/developer/data-protection.html - Terms of use: https://www.miele.com/developer/terms-of-use.html - Third Party Licenses: https://www.miele.com/developer/third-party-licenses.html - Legal notice: https://www.miele.com/developer/legal-notice.html ``` -------------------------------- ### Get Available Device Actions Source: https://www.miele.com/developer/concept Fetches a list of available actions that can be performed on a specific Miele appliance. This includes actions like starting/stopping a process, setting the start time, changing the device name, or powering off the appliance. ```HTTP GET /devices//actions { "processAction": [1,2], "light": [], "startTime": [ [0,0], [23,59] ], "ventilationStep": [], "programId": [], "targetTemperature": [], "deviceName": true, "powerOff": true } ``` -------------------------------- ### Miele API Programs Endpoints Source: https://www.miele.com/developer/openapi/index Facilitates the invocation of programs on Miele devices. Includes endpoints to retrieve available programs for a device and to select and start a program. ```APIDOC GET /devices/{deviceId}/programs Returns the current available programs of the device. PUT /devices/{deviceId}/programs Select a program and start the appliance. ``` -------------------------------- ### Miele API Endpoints Overview Source: https://www.miele.com/developer/news This section details the various API endpoints available for interacting with Miele appliances. It includes functionalities for retrieving program lists, starting programs, managing device states, and controlling specific appliance features. ```APIDOC API Endpoints: General: - GET /devices: Lists all connected devices. - GET /devices/{deviceId}: Retrieves details for a specific device. Programs: - GET /programs: Lists programs supported by an appliance (requires MobileStart or MobileControl support). - PUT /programs: Starts a program on an appliance (requires MobileStart or MobileControl support). - Request Body: - programId: The ID of the program to start. - settings: Optional program-specific settings. State: - GET /state/{deviceId}: Retrieves the current state of a device. - Supported state extensions: - coreTemperature, coreTargetTemperature: For ovens with core temperature sensor. - ecoFeedback: Supported by Washing machine, Tumble dryer, Dishwasher, Washer-dryer. - batteryLevel: Supported by Robot vacuum cleaner. Rooms (Robot Vacuum Cleaner): - GET /rooms: Lists the maps and rooms created in the Miele Scout app. - PUT /rooms: Sends the robot to a defined room to start cleaning. - Request Body: - roomId: The ID of the room to clean. Actions: - PUT /actions/{deviceId}: Executes actions on a device. - Supported actions: - colors (Hood): Sets the color of the hood. - modes (selected Cooling appliances): Enables/disables modes like Party and Holiday. - ventilationStep (Hood): Controls the ventilation step for hoods. - targetTemperature (Cooling appliances): Sets the target temperature for cooling appliances. - programId (Robot vacuum cleaner, Warming drawer): Sets the program ID for specific appliances. ``` -------------------------------- ### Get All Devices Source: https://www.miele.com/developer/concept Retrieves a list of all registered Miele appliances associated with the user account. The response includes a unique identifier for each device and its current state information, including program ID and other relevant details. ```HTTP GET /devices { "000148508574": { "ident": { "type": { "key_localized": "Devicetype", "value_raw": 1, "value_localized": "Washing Machine" } }, "state": { "ProgramID": { "value_raw": 122, "value_localized": "Express 20", "key_localized": "Program Id" } } }, "000137439624": { // ... other device details } } ``` -------------------------------- ### Miele API Access and Registration Source: https://www.miele.com/developer/faq To gain access to the Miele 3rd Party API, users need to generate client credentials. This process is handled through the 'Get involved' section of the Miele developer website. ```APIDOC Access Method: Generate client credentials Registration Portal: https://www.miele.com/f/com/en/register_api.aspx ``` -------------------------------- ### Execute Device Action Source: https://www.miele.com/developer/concept Executes a specific action on a Miele appliance. The action to be performed is specified in the request body, for example, initiating a process action by sending `{"processAction": 1}`. ```HTTP PUT /devices//actions { "processAction": 1 } ``` -------------------------------- ### Miele API Eventing Subscriptions Source: https://www.miele.com/developer/bestpractices Provides two routes for subscribing to SSE-channels to receive device status updates. Using the `/v1/devices/all/events` route is recommended for updates across all devices to minimize open connections and avoid rate limiting. ```APIDOC Endpoint: /v1/devices/all/events Description: Subscribe to status updates for all devices in an account. Endpoint: /v1/devices/{deviceId}/events Description: Subscribe to status updates for a specific device. ``` -------------------------------- ### Miele API Best Practices and Concepts Source: https://www.miele.com/developer/news References to Miele API best practices, general concepts, and involvement guidelines for developers. ```APIDOC Developer Resources: - Get started: https://www.miele.com/developer/index.html - Get involved: https://www.miele.com/f/com/en/register_api.aspx - Documentation: https://www.miele.com/developer/news.html - General concept: https://www.miele.com/developer/concept.html - Device Capabilities: https://www.miele.com/developer/capabilities.html - Authorization: https://www.miele.com/developer/authorization.html - Eventing: https://www.miele.com/developer/eventing.html - Swagger: https://www.miele.com/developer/openapi/index.html - Best practices: https://www.miele.com/developer/bestpractices.html - News: https://www.miele.com/developer/news.html - FAQ: https://www.miele.com/developer/faq.html - Downloads: https://www.miele.com/developer/download.html ``` -------------------------------- ### Miele API Documentation Resources Source: https://www.miele.com/developer/faq Key resources for understanding and utilizing the Miele 3rd Party API, including general documentation, FAQs, and specific topics like device capabilities and eventing. ```APIDOC General Documentation: https://www.miele.com/developer/faq.html Swagger/OpenAPI: https://www.miele.com/developer/openapi/index.html Get Started: https://www.miele.com/developer/index.html Device Capabilities: https://www.miele.com/developer/capabilities.html Authorization: https://www.miele.com/developer/authorization.html Eventing: https://www.miele.com/developer/eventing.html Best Practices: https://www.miele.com/developer/bestpractices.html ``` -------------------------------- ### Get Device Identification Source: https://www.miele.com/developer/concept Fetches detailed identification information for a specific Miele appliance using its unique deviceId. This includes the appliance type, device name, and manufacturing details like fabNumber, techType, and matNumber. ```HTTP GET /devices//ident { "type": { "key_localized": "Devicetype", "value_raw": 1, "value_localized": "Washing Machine" }, "deviceName": "", "deviceIdentLabel": { "fabNumber": "000148508574", "fabIndex": "10", "techType": "WWV980", "matNumber": "10708820", "swids": ["4850", ....] }, "xkmIdentLabel": { "techType": "EK037", "releaseVersion": "03Q72" } } ``` -------------------------------- ### Miele 3rd Party API Overview Source: https://www.miele.com/developer/index Provides an overview of the Miele 3rd Party API, its purpose, and the types of devices and applications that can interact with it. It also mentions the architecture and important notes regarding new appliance generations. ```APIDOC Miele 3rd Party API Version 1.0.7 Purpose: To enable owners of connected Miele household appliances to interact with their appliances via a cloud-based RESTful API. Architecture: - Miele@home connected appliance: Appliances connected to a Miele user account (WiFi Conn@ct via WiFi router, ZigBee via Miele@home Gateway XGW3000). - Mobile device: Mobile apps connecting to the Miele Cloud Service. - Smart Home Application: Applications connecting to the Miele Cloud Service for appliance information. - Miele Cloud Service: Grants access to Miele appliances within a user account after valid authorization. Important Notes: - Endpoints for new generation washer/dryers and vacuum cleaners will be released in Fall 2025. ``` -------------------------------- ### Get Device State Source: https://www.miele.com/developer/concept Retrieves the current operational state of a specific Miele appliance. The state object contains various properties like ProgramID, status, targetTemperature, spinningSpeed, and dryingStep. If a property is not supported or has no value, it will be null or -32768 respectively. ```HTTP GET /devices//state { "ProgramID": { "value_raw": 122, "value_localized": "Express 20", "key_localized": "Program Id" }, "status": { "value_raw": 5, "value_localized": "In use", "key_localized": "State" }, "targetTemperature": [ { "value_raw": 2000, "value_localized": 20.0, "unit": "Celsius" }, { "value_raw": -32768, "value_localized": null, "unit": "Celsius" } ], "spinningSpeed": { "unit": "rpm", "value_raw": 1200, "value_localized": "1200", "key_localized": "Spinning Speed" }, "dryingStep": { "value_raw": null, "value_localized": "", "key_localized": "Drying level" } } ``` -------------------------------- ### Miele 3rd Party API Documentation Overview Source: https://www.miele.com/developer/news Provides an overview of the Miele 3rd Party API, including its initial release, versioning, and key features introduced over time. It highlights the evolution of authentication methods and device control capabilities. ```APIDOC Miele 3rd Party API Documentation: Initial Release: August 2018 (Open Beta), Version V1.0.0 Key Features and Changes: - OAuth2 Authorization: Added for API documentation and various flows (Client Credentials Flow, Password Owner Resource flow). - Device Control: Introduction of new actions for device control and GET requests to check supported actions. - CORS Support: Enabled for inline answers within the API documentation. - Terms of Use: Modifications made to sections including Warranty and general terms. - Maintenance Releases: Several maintenance releases (V1.0.1, V1.0.2) addressing documentation and flow renaming. - Public Release: First public release on August 1, 2019, Version V1.0.0. Related Links: - Terms of Use: https://www.miele.com/developer/terms-of-use.html - Data Protection: https://www.miele.com/developer/data-protection.html - Third Party Licenses: https://www.miele.com/developer/third-party-licenses.html - Legal Notice: https://www.miele.com/developer/legal-notice.html ``` -------------------------------- ### Miele API Eventing Endpoints Source: https://www.miele.com/developer/eventing This section details the API endpoints for subscribing to events from Miele appliances. It covers both general appliance events and specific appliance events, providing the necessary cURL commands and headers for subscription. ```APIDOC All Appliances Events: Endpoint: https://api.mcs3.miele.com/v1/devices/all/events Description: Subscribing to this endpoint sends an event when any connected appliance changes its state. The response content mirrors a GET /devices request. Headers: - Accept: text/event-stream - Accept-Language: {language_code} - Authorization: Bearer {access_token} Example: curl https://api.mcs3.miele.com/v1/devices/all/events \ -H "Accept:text/event-stream" -H "Accept-Language: {language_code}" -H "Authorization: Bearer {access_token}" Appliance Events: Endpoint: https://api.mcs3.miele.com/v1/devices/{deviceId}/events Description: Subscribing to this endpoint sends an event when a specific connected appliance changes its state. The response content mirrors a GET /devices/{deviceId} request. Headers: - Accept: text/event-stream - Accept-Language: {language_code} - Authorization: Bearer {access_token} Example: curl https://api.mcs3.miele.com/v1/devices/{deviceId}/events \ -H "Accept:text/event-stream" -H "Accept-Language: {language_code}" -H "Authorization: Bearer {access_token}>" ``` -------------------------------- ### Miele 3rd Party API Documentation Source: https://www.miele.com/developer/download This section provides access to the Miele 3rd Party API documentation, covering general concepts, device capabilities, authorization, eventing, and best practices. It also includes links to news, FAQs, and downloads. ```APIDOC Miele Developer Portal: - Get started: https://www.miele.com/developer/index.html - Get involved: https://www.miele.com/f/com/en/register_api.aspx - Documentation: https://www.miele.com/developer/download.html General Concepts: - General concept: https://www.miele.com/developer/concept.html - Device Capabilities: https://www.miele.com/developer/capabilities.html - Authorization: https://www.miele.com/developer/authorization.html - Eventing: https://www.miele.com/developer/eventing.html - Swagger: https://www.miele.com/developer/openapi/index.html - Best practices: https://www.miele.com/developer/bestpractices.html Resources: - News: https://www.miele.com/developer/news.html - FAQ: https://www.miele.com/developer/faq.html - Downloads: https://www.miele.com/developer/download.html Legal & Licensing: - Miele 3rd Party API License and Terms of Use: https://www.miele.com/developer/assets/Miele_3rd_Party_API_License_and_Terms_of_Use.pdf - Data protection: https://www.miele.com/developer/data-protection.html - Terms of use: https://www.miele.com/developer/terms-of-use.html - Third Party Licenses: https://www.miele.com/developer/third-party-licenses.html - Legal notice: https://www.miele.com/developer/legal-notice.html Assets: - Miele Logo Guide: https://www.miele.com/developer/assets/3rd_Party_Logo.pdf - Miele Logo package: https://www.miele.com/developer/assets/logo_package.zip - Device capabilities table: https://www.miele.com/developer/assets/API_V1.x.x_capabilities_by_device.pdf ``` -------------------------------- ### Miele Developer API Documentation Source: https://www.miele.com/developer/concept This section provides access to the Miele Developer API documentation, including OpenAPI specifications, which detail the available endpoints, methods, request/response formats, and authentication mechanisms for interacting with Miele appliances. ```APIDOC Miele Developer Portal: - Get started: https://www.miele.com/developer/index.html - Get involved: https://www.miele.com/f/com/en/register_api.aspx - Documentation: https://www.miele.com/developer/concept.html Key Documentation Areas: - General concept: https://www.miele.com/developer/concept.html - Device Capabilities: https://www.miele.com/developer/capabilities.html - Authorization: https://www.miele.com/developer/authorization.html - Eventing: https://www.miele.com/developer/eventing.html - Swagger (OpenAPI): https://www.miele.com/developer/openapi/index.html - Best practices: https://www.miele.com/developer/bestpractices.html Additional Resources: - News: https://www.miele.com/developer/news.html - FAQ: https://www.miele.com/developer/faq.html - Downloads: https://www.miele.com/developer/download.html ``` -------------------------------- ### Miele API Device Capabilities Overview Source: https://www.miele.com/developer/capabilities Provides an overview of the Miele 3rd Party API's approach to device capabilities. It explains the concept of a Generic API appliance and how individual appliances inherit from it, supporting a subset of objects and capabilities. Unsupported features return 'null' or '-32768'. The API allows querying available appliance actions, which can vary by appliance and its state. ```APIDOC Device Capabilities: - Generic API appliance: Represents an appliance supporting all objects and capabilities. - Individual appliances: Derived from Generic API, support a subset of objects/capabilities. - Unsupported features: Return 'null' or '-32768'. - Appliance actions: Can be queried via API, vary by appliance and state. - Action differences: Available actions can differ within an appliance class. Downloadable Device Capabilities: - Link: https://www.miele.com/developer/assets/API_V1.x.x_capabilities_by_device.pdf ``` -------------------------------- ### Miele API Client Credentials Source: https://www.miele.com/developer/news Information on the client credentials request process for the Miele API, including how to generate them. ```APIDOC Client Credentials: - Process modified: Client credentials can now be generated directly on the website. ``` -------------------------------- ### Miele API Endpoints Source: https://www.miele.com/developer/openapi This section details the available API endpoints for interacting with Miele devices. It covers retrieving device information, performing actions, managing programs, and controlling robot vacuum cleaners. ```APIDOC Information Endpoints: GET /devices Returns all information about all appliances linked to a user account. GET /short/devices Returns a summary of all appliances linked to a user account. GET /devices/{deviceId} Returns all information about a single device. GET /devices/{deviceId}/ident Returns the ident information of a single device. GET /devices/{deviceId}/state Returns the state information of a single device. Actions Endpoints: GET /devices/{deviceId}/actions Returns the current available actions, depending on the current state of the device. PUT /devices/{deviceId}/actions Invokes one of the current available actions on a single device. Programs Endpoints: GET /devices/{deviceId}/programs Returns the current available programs of the device. PUT /devices/{deviceId}/programs Select a program and start the appliance. Rooms Endpoints (Robot Vacuum Cleaners): GET /devices/{deviceId}/rooms Returns the current available rooms and maps of a robot vacuum cleaner. PUT /devices/{deviceId}/rooms Robot vacuum cleaner starts cleaning the room identified by mapId and room number. ``` -------------------------------- ### Miele Robot Vacuum Rooms API Source: https://www.miele.com/developer/openapi/index Endpoints for navigating and controlling Miele robot vacuum cleaners, including retrieving room information and initiating cleaning cycles. ```APIDOC GET /devices/{deviceId}/rooms Description: Returns the current available rooms and maps of a robot vacuum cleaner. URL: https://www.miele.com/developer/openapi/index.html#/Rooms/getRooms PUT /devices/{deviceId}/rooms Description: Robot vacuum cleaner starts cleaning the room identified by mapId and room number. URL: https://www.miele.com/developer/openapi/index.html#/Rooms/putRooms ``` -------------------------------- ### Miele API User Agent Header Source: https://www.miele.com/developer/bestpractices Recommends implementing a custom user agent header for applications interacting with the Miele API. This is crucial for troubleshooting purposes. ```APIDOC Custom User Agent Header: Implement a custom user agent header for your application (RFC 9110, Section 5.4.14). Example: User-Agent: MyApp/1.0 (my-app.com) ``` -------------------------------- ### Miele API Eventing Endpoints Source: https://www.miele.com/developer/openapi Provides endpoints for retrieving events from Miele devices. Supports fetching events for all devices or a specific device. ```APIDOC GET /devices/all/events Description: Returns an event on any status change of one of the devices. URL: https://www.miele.com/developer/openapi/#/Eventing/getEventsAll GET /devices/{deviceId}/events Description: Returns an event on a status change of a single device. URL: https://www.miele.com/developer/openapi/#/Eventing/getEventsById ``` -------------------------------- ### Miele API Schemas Source: https://www.miele.com/developer/openapi/index Defines the data structures used across the Miele Developer API, including various device states and properties. ```APIDOC ambientLight: integer accessToken: object colors: string deviceName: any actions: object ident: object light: integer modes: integer powerOff: boolean powerOn: boolean processAction: integer programId: integer programs: array refreshToken: object rooms: array runOnTime: array startTime: array state: object targetTemperature: array ventilationStep: integer ``` -------------------------------- ### Miele API Information Endpoints Source: https://www.miele.com/developer/openapi/index Provides access to device identifiers and status information for Miele appliances linked to a user account. Includes endpoints for retrieving all devices, summary information, specific device details, ident information, and state. ```APIDOC GET /devices Returns all information about all appliances linked to an user account. GET /short/devices Returns the summary information for all appliances. GET /devices/{deviceId} Returns all information about a single device. GET /devices/{deviceId}/ident Returns the ident information of a single device. GET /devices/{deviceId}/state Returns the state information of a single device. ``` -------------------------------- ### Miele API SSE Eventing Source: https://www.miele.com/developer/news Details on the Server-Sent Events (SSE) based eventing mechanism provided by the Miele API. ```APIDOC Eventing: - SSE based eventing is supported. ``` -------------------------------- ### Miele Developer API Documentation Source: https://www.miele.com/developer/third-party-licenses Provides access to Miele appliance functionalities and data. Includes endpoints for device control, status retrieval, and event subscription. Requires OAuth 2.0 authorization. ```APIDOC Swagger UI: URL: https://www.miele.com/developer/openapi/index.html Description: Interactive documentation for the Miele Developer API, allowing exploration of endpoints, parameters, and responses. General Concepts: - Device Capabilities: https://www.miele.com/developer/capabilities.html - Authorization: https://www.miele.com/developer/authorization.html - Eventing: https://www.miele.com/developer/eventing.html - Best Practices: https://www.miele.com/developer/bestpractices.html Key Information: - Get Started: https://www.miele.com/developer/index.html - Get Involved (Registration): https://www.miele.com/f/com/en/register_api.aspx - News: https://www.miele.com/developer/news.html - FAQ: https://www.miele.com/developer/faq.html - Downloads: https://www.miele.com/developer/download.html - Data Protection: https://www.miele.com/developer/data-protection.html - Terms of Use: https://www.miele.com/developer/terms-of-use.html - Legal Notice: https://www.miele.com/developer/legal-notice.html ``` -------------------------------- ### Miele API Device Types Source: https://www.miele.com/developer/news Details on Miele API device types, including the introduction of a new device type for Hobs with vapour extraction. ```APIDOC Device Types: - Device type 74: 'Hob with vapour extraction'. Supports 'ventilationStep'. Replaces Device type 18 for these appliances. - Device type 18: Previously used for Hobs, now superseded by Device type 74 for Hobs with vapour extraction. ``` -------------------------------- ### Miele API Token Handling Endpoints Source: https://www.miele.com/developer/openapi Endpoints for managing access tokens, including refreshing an existing token and logging out. ```APIDOC POST /token Description: Refresh the access_token. URL: https://www.miele.com/developer/openapi/#/Token%20handling/getRefreshToken POST /logout Description: Invalidates the current access- and refresh token. URL: https://www.miele.com/developer/openapi/#/Token%20handling/logout ``` -------------------------------- ### Miele API Localization Source: https://www.miele.com/developer/news Information regarding the addition of localization support for multiple languages in the Miele API. ```APIDOC Localization: Added support for: - Danish - French - Italian - Dutch - Norwegian - Spanish ``` -------------------------------- ### Miele 3rd Party API Usage and Distribution Guidelines Source: https://www.miele.com/developer/terms-of-use This section details the requirements and restrictions for developers using Miele's 3rd Party API. It covers the approval process for software applications, Miele's right to withdraw approval, developer responsibilities regarding testing and security, and marketing/distribution activities. It also addresses intellectual property rights, including ownership of the API and related documentation, and the proper use of Miele trademarks. ```APIDOC Section 6: Publication and Distribution of Software Applications with integrated 3rd Party API - Approval Required: Prior approval from Miele is mandatory for marketing, publishing, and distributing software applications with the integrated 3rd Party API. Approval is needed for each application and its updates/new versions, unless the update has no impact on the API implementation or use. - Withdrawal of Approval: Miele can withdraw approval at any time at its discretion. Upon withdrawal, developers must immediately cease all related activities and stop using the 3rd Party API without entitlement to damages. - Developer Guarantees: Developers guarantee successful testing of their software applications and ensure they do not transmit malware, defects, or destructive items that could harm Miele's products, servers, or networks. - Developer Responsibility: Developers are solely responsible for all marketing, publishing, and distribution activities, including associated costs. Details for common marketing activities with Miele require a separate agreement. Section 7: Property rights & Trademarks - Acknowledgment of Rights: Developers acknowledge Miele's and third parties' property rights to the 3rd Party API, specifications, documentation, and Appliances Data. Developers must preserve these rights, including copyrights, patents, trademarks, inventions, know-how, and trade secrets. - Ownership: Miele and/or its licensors remain the owners of the 3rd Party API and related materials. - Prevention of Damage: Developers must take necessary steps to prevent and stop damage or injury to Miele's rights and prosecute third parties for unauthorized access or possession of Miele's intellectual property. - Development of New Features: Any new features or functionalities developed by the developer regarding the 3rd Party API require good faith discussion and negotiation with Miele regarding their use and usage rights. - Trademark Usage: Miele's trademarks cannot be used without prior written or electronic approval. Approval must be sought for the first use by contacting the project contact. Approved trademark use is limited to marketing and promotional purposes and must comply with Miele's Brand Guidelines. Developers may state compatibility with Miele@home Appliances if accurate, after receiving approval for API distribution. - Miele's Promotional Rights: Miele is entitled to state that Miele@home Appliances can be remote controlled via the developer's software application. Miele may also promote the developer's software application through its marketing channels. For these purposes, developers grant Miele a royalty-free, non-exclusive, worldwide, transferable, and sublicenseable right to use their trademarks. ``` -------------------------------- ### Miele Eventing API Source: https://www.miele.com/developer/openapi/index Endpoints for subscribing to and retrieving events related to Miele device status changes. ```APIDOC GET /devices/all/events Description: Returns an event on any status change of one of the devices. URL: https://www.miele.com/developer/openapi/index.html#/Eventing/getEventsAll GET /devices/{deviceId}/events Description: Returns an event on a status change of a single device. URL: https://www.miele.com/developer/openapi/index.html#/Eventing/getEventsById ``` -------------------------------- ### Miele API Rate Limiting Source: https://www.miele.com/developer/bestpractices Outlines the rate limiting policies for the Miele API. This includes limitations on the number of access tokens per client and customer, as well as limitations on REST requests and SSE subscriptions per IP address. Exceeding these limits will result in an HTTP 503 error. ```APIDOC Rate Limiting: - Limited number of access tokens per client and customer. - Limited number of REST requests per IP. - Limited number of SSE subscriptions per IP. Consequences of Exceeding Limits: - HTTP 503 error (rate limiting). - Further token retrieval may not be possible. ``` -------------------------------- ### Miele 3rd Party API Definitions Source: https://www.miele.com/developer/terms-of-use Defines key terms used within the Miele 3rd Party API, including '3rd Party API', 'Appliances Data', 'Endusers', 'Miele@home Appliances', 'Software Application', 'Remote Control', and 'Security Credentials'. These definitions are crucial for understanding the scope and usage of the API. ```APIDOC "3rd Party API" | means the application programming interface made available to You by Miele in order to enable You to access Appliances Data; “Appliances Data” | means any data or content accessed via the 3rd Party API; “Endusers” | means any user of a Software Application; “Miele@home Appliances” | means any of Miele’s kitchen, laundry care, or other domestic or commercial appliances using Miele’s connecting system Miele@home; “Software Application” | means any software application, website, product or other service using the 3rd Party API and/or Appliances Data accessed through the 3rd Party API; “Remote Control” | means the functionality to receive status information of a respective Miele@home Appliance (e.g. general status, status running, remaining time, temperature) and - where available - to execute commands (e.g. start/stop, control setup, etc.) through a Software Application; “Security Credentials” | means the necessary Client ID and Client Secret and/or other access credentials (ID, username, password, token) allowing access the 3rd Party API and Appliances Data. ``` -------------------------------- ### Third-Party Software Licenses Source: https://www.miele.com/developer/third-party-licenses Lists the open-source software components used in the Miele developer application, their versions, and associated licenses. ```APIDOC Software Component Licenses: Bootstrap: Version: 4.0.0 License: MIT License License Text: Read (https://github.com/twbs/bootstrap) jQuery: Version: 4.1.3 License: MIT License License Text: Read (https://github.com/jquery/jquery) Popper: Version: 2.11.8 License: MIT License License Text: Read (https://github.com/floating-ui/floating-ui/tree/v2.x) PrismJS: Version: 1.20.0 License: MIT License License Text: Read (https://github.com/PrismJS/prism) Swagger UI: Version: 4.1.3 License: Apache License Version 2.0, January 2004 License Text: Read (https://github.com/swagger-api/swagger-ui) ``` -------------------------------- ### Miele Token Handling API Source: https://www.miele.com/developer/openapi/index Endpoints for managing access tokens, including refreshing expired tokens and logging out. ```APIDOC POST /token Description: Refresh the access_token. URL: https://www.miele.com/developer/openapi/index.html#/Token%20handling/getRefreshToken POST /logout Description: Invalidates the current access- and refresh token. URL: https://www.miele.com/developer/openapi/index.html#/Token%20handling/logout ``` -------------------------------- ### Miele API Documentation Updates Source: https://www.miele.com/developer/news This section summarizes the changes and updates to the Miele API documentation over time, including corrections to OAuth2 documentation and the addition of new sections and information. ```APIDOC API Documentation Changes: - July 10, 2025: - Corrected OAuth2 documentation - Step D. - July 23, 2021: - Minor correction within the API documentation. - November 30, 2020: - Added information to state endpoint for ecoFeedback and batteryLevel. - June 10, 2020: - Added GET state extension for plateLevel (Hob). - Added PUT action for ventilationStep (Hood). - Added PUT action for targetTemperature (Cooling appliances). - Added PUT action for programId (Robot vacuum cleaner). - Added PUT action for programId (Warming drawer). ``` -------------------------------- ### Miele 3rd Party API Overview Source: https://www.miele.com/developer/faq The Miele 3rd Party API is a cloud-based, RESTful interface for integrating networked Miele devices into third-party applications. It supports OAuth 2.0 for authentication and requires devices to be connected to the Miele app with a Miele user account. Not all Miele app functionalities are available via the API. ```APIDOC API Type: RESTful Access: Cloud-based Authentication: OAuth 2.0 Requirements: - Miele devices connected to Miele app - Miele user account - Compliance with Miele 3rd Party API License and Terms of Use Scope: Described in API documentation; not all Miele app functions are available. Commercial Use: Contact partner.developer@miele.com ``` -------------------------------- ### Miele API Actions Endpoints Source: https://www.miele.com/developer/openapi/index Enables remote operation of Miele appliances. Allows users to retrieve currently available actions based on device state and to invoke these actions on a specific device. ```APIDOC GET /devices/{deviceId}/actions Returns the current available actions, depending on the current state of the device. PUT /devices/{deviceId}/actions Invokes one of the current available action on a single device. ``` -------------------------------- ### Miele API Token Management Source: https://www.miele.com/developer/bestpractices Details the process for obtaining and managing access and refresh tokens. It emphasizes using refresh tokens to obtain new access tokens after expiration and recommends implementing a mechanism for reinitiating logins if tokens become invalid or expired. The logout endpoint should be used to invalidate unnecessary tokens. ```APIDOC Token Retrieval: Use refresh token to obtain new access token after expiration (RFC 6749, Section 6). Client Credential Limits: Retrieving too many parallel access tokens per client can lead to deactivation. Re-authentication: Implement a mechanism for reinitiating login if refresh or access tokens are invalid or expired. Logout: Use the logout endpoint to invalidate unnecessary tokens. ``` -------------------------------- ### Miele API Data Schemas Source: https://www.miele.com/developer/openapi Defines the various data schemas used within the Miele API for representing device states and properties. ```APIDOC Schema: ambientLight Type: integer Schema: accessToken Type: object Schema: colors Type: string Schema: deviceName Type: any Schema: actions Type: object Schema: ident Type: object Schema: light Type: integer Schema: modes Type: integer Schema: powerOff Type: boolean Schema: powerOn Type: boolean Schema: processAction Type: integer Schema: programId Type: integer Schema: programs Type: array Schema: refreshToken Type: object Schema: rooms Type: array Schema: runOnTime Type: array Schema: startTime Type: array Schema: state Type: object Schema: targetTemperature Type: array Schema: ventilationStep Type: integer ```