ioBroker.MieleCloudService
Description
This adapter is for retrieving information about all your Miele@Home devices from the official Miele 3rd-party API. Regardless if they are connected directly via Wi-Fi or XGW3000 Gateway. It implements the Miele 3rd Party API V1.0.5
sentry.io
This adapter uses sentry.io to collect details on crashes and report it automated to the author. The ioBroker.sentry plugin is used for it. Please refer to the plugin homepage for detailed information on what the plugin does, which information is collected and how to disable it, if you don't like to support the author with your information on crashes.
Prerequisites
- Miele@Home User (Smartphone App)
- Miele@Home Password (Smartphone App)
- Miele Client_id (from https://www.miele.com/developer/)
- Miele Client_secret (from https://www.miele.com/developer/ )
Installation
To install, do the following:
- Install via Admin using the
- stable Repo - to get the current stable version
- latest Repo - to get the latest test version (maybe not stable)
- via: https://github.com/Grizzelbee/ioBroker.mielecloudservice.git - to get the latest development version
- create an App-Account for Miele@Home in the Miele Smartphone App
- Create a developer account at https://www.miele.com/f/com/en/register_api.aspx
- Add your Miele-Devices to the App (if not added automatically)
- Fill in the client_secret and client_id received from Miele-developer Team and account-id and password from the App.
Controlling your devices
Actions
All currently supported and documented Actions for all devices are implemented (API V1.0.5).
Please remember that Actions will only work if you put your device into the appropriate state (e.g. Mobile Control, powerOn, ...). Please refer to Miele-Documentation for more Information on actions.
Programs (Introduced in API V1.0.5)
With API V1.0.5 Miele introduced a new endpoint called "/programs". The support for this endpoint starts with adapter version 4.5.0. A new datapoint [device.Actions.Program] will be created listing all supported programs as returned by Miele. Selecting one of the values will execute the program immediately! Currently only simple programs are supported. E.g. Ovens need some additional information - this will be implemented in a future version.
When publishing the adapter Miele documented a few device categories to support this endpoint and only (at least for me) a subset of these really work. For my coffee system, washing machine and tumble dryer it only works for the coffee system. But Miele is working on it and extends the support on a regular basis. Please refer to the general Miele API documentation (below) for more information.
Known Issues
- none
Documentation
Please mainly refer to the main API documentation published by Miele
There are some data points available in 2 kinds. As a human-readable text and as a number. These numeric data fields belonging to a text field have the same name, but a "_raw" appended. Those fields which have a general meaning are listed below. The fields which aren't listed vary in their meaning from device to device and are not documented by Miele. If you need to refer in scripts to these fields, always use the _raw values. The text values may change in the future and also depend on the language. Here is a list of what these raw values stand for:
DeviceTypes
Raw value | State |
---|---|
1 | WASHING MACHINE |
2 | TUMBLE DRYER |
7 | DISHWASHER |
8 | DISHWASHER SEMI-PROF |
12 | OVEN |
13 | OVEN MICROWAVE |
14 | HOB HIGHLIGHT |
15 | STEAM OVEN |
16 | MICROWAVE |
17 | COFFEE SYSTEM |
18 | HOOD |
19 | FRIDGE |
20 | FREEZER |
21 | FRIDGE-/FREEZER COMBINATION |
23 | VACUUM CLEANER, AUTOMATIC ROBOTIC VACUUM CLEANER |
24 | WASHER DRYER |
25 | DISH WARMER |
27 | HOB INDUCTION |
28 | HOB GAS |
31 | STEAM OVEN COMBINATION |
32 | WINE CABINET |
33 | WINE CONDITIONING UNIT |
34 | WINE STORAGE CONDITIONING UNIT |
39 | DOUBLE OVEN |
40 | DOUBLE STEAM OVEN |
41 | DOUBLE STEAM OVEN COMBINATION |
42 | DOUBLE MICROWAVE |
43 | DOUBLE MICROWAVE OVEN |
45 | STEAM OVEN MICROWAVE COMBINATION |
48 | VACUUM DRAWER |
67 | DIALOGOVEN |
68 | WINE CABINET FREEZER COMBINATION |
State/Status
Raw value | State |
---|---|
1 | OFF |
2 | STAND_BY |
3 | PROGRAMMED |
4 | PROGRAMMED_WAITING_TO_START |
5 | RUNNING |
6 | PAUSE |
7 | END_PROGRAMMED |
8 | FAILURE |
9 | PROGRAMME_INTERRUPTED |
10 | IDLE |
11 | RINSE_HOLD |
12 | SERVICE |
13 | SUPERFREEZING |
14 | SUPERCOOLING |
15 | SUPERHEATING |
144 | DEFAULT |
145 | LOCKED |
146 | SUPERCOOLING_SUPERFREEZING |
255 | Device offline |
ProgramType/Programmart
Raw value | State |
---|---|
0 | Normal operation mode |
1 | Own program |
2 | Automatic program |
3 | Cleaning-/Care program |
dryingStep/Trockenstufe
Raw value | State |
---|---|
0 | Extra dry |
1 | Normal Plus |
2 | Normal |
3 | Slightly Dry |
4 | Hand iron level 1 |
5 | Hand iron level 2 |
6 | Machine iron |
Programmbezeichnung
Raw value | State | available for |
---|---|---|
1 | "Baumwolle" / "Cotton" | Washing Machine |
3 | "Pflegeleicht" | Washing Machine |
4 | "Feinwäsche" | Washing Machine |
8 | "Wolle" | Washing Machine |
9 | "Seide" | Washing Machine |
21 | "Pumpen/Schleudern" | Washing Machine |
23 | "Oberhemden" | Washing Machine |
27 | "Imprägnieren" | Washing Machine |
29 | "Sportwäsche" | Washing Machine |
31 | "Automatic plus" | Washing Machine |
37 | "Outdoor" | Washing Machine |
48 | "Flusen ausspülen" | Washer Dryer |
50 | "Dunkle Wäsche" | Washer Dryer |
52 | "Nur Spülen/Stärken" | Washing Machine |
122 | "Express 20" | Washer Dryer |
123 | "Dunkles/Jeans" | Washing Machine |
ProgramPhase
Raw value | State | available for |
---|---|---|
258 | "Einweichen" | Washing Machine |
260 | "Waschen" / "Washing" | Washing Machine |
261 | "Spülen" / "Rinse" | Washing Machine |
265 | "Pumpen" | Washing Machine |
266 | "Schleudern" / "Spinning" | Washing Machine |
267 | "Knitterschutz" / "" | Washing Machine |
268 | "Ende" / "End" | Washing Machine |
256 | "Vorbügeln" | Washing Machine |
512 | "Ende" / "Finished" | Tumble dryers |
514 | "Trocknen" / "Drying" | Washer Dryer, Tumble dryers |
519 | "Abkühlen" / "Cool down" | Washer Dryer |
521 | "Knitterschutz" / "" | Tumble dryer |
522 | "Ende" / "Finished" | Tumble dryer |
531 | "Komfortkühlen" | Tumble Dryer |
532 | "Flusen ausspülen" | Washer Dryer |
Changelog
V4.5.0 (2021-09-05) (Invincible)
- (grizzelbee) New: 164 fixed bug in SignalFailure and signalInfo when havin no value
- (grizzelbee) New: 155 fixed >missing object< bug on arrays
- (grizzelbee) New: 154 Reintroduced TargetTemp to washer dryers
- (grizzelbee) New: 140 Switched from data polling to server sent events (push data)
- (grizzelbee) New: 71 If there is no internet connection on startup retry connecting until connection is established
- (grizzelbee) Fix: estimatedEndTime won't be shown anymore when device is off
- (grizzelbee) Fix: Don't rethrowing errors in APISendRequest anymore
- (grizzelbee) Fix: fixed a few minor bugs
- (grizzelbee) Upd: Updated dependencies
- (grizzelbee) New: Added some additional API languages newly supported by Miele
- (grizzelbee) New: Added support for Miele API V1.0.5
- (grizzelbee) New: Added correct tier of adapter to io-package
- (grizzelbee) New: Added more program phases for tumble dryers to documentation
V4.2.0 (2021-05-17) (A new Dimension)
- (grizzelbee) New: Adding Pause action to dish-washers
V4.1.0 (2021-05-15) (Carry me over)
- (grizzelbee) New: 149 Adding support (Start, Stop, Pause) for Miele Scout RX2 vacuum cleaner robots
- (Stan23) New: Added new program phase soak/Einweichen
V4.0.22 (2021-05-06) (Twisted mind)
- (grizzelbee) Fix: 142 Reintroduced TargetTemp for washing machines
V4.0.21 (2021-05-03) (The Edge)
- (grizzelbee) Fix: Fixed accidental function name: createStateSpinAPIStartActionningSpeed
- (grizzelbee) Fix: Fixed State value to set for "*.PlateStep_1" has to be type "number" but received type "string"
V4.0.20 (2021-04-30) (Sleepwalkers)
- (grizzelbee) Fix: 137 Fixed Read-only state "info.connection" has been written without ack-flag with value "false"
- (grizzelbee) Fix: 138 Fixed State value to set for ".Schleuderdrehzahl" has wrong type "string" but has to be "number"
- (grizzelbee) Fix: 139 Fixed State value to set for ".ACTIONS.Light" has wrong type "number" but has to be "string"
- (grizzelbee) Upd: Changed device group from channel to folder as documented here
V4.0.19 (2021-04-29) (The scarecrow)
- (grizzelbee) Fix: Fixed light switch bug causing an exception when switching - 2nd attempt
- (grizzelbee) Fix: Fixed No-Icon Bug when appliance is unknown
V4.0.18 (2021-04-28) (Ghostlights)
- (grizzelbee) Fix: Fixed light switch bug causing an exception when switching
V4.0.17 (2021-04-27) (Ghost in the moon)
- (grizzelbee) New: Added ioBroker sentry plugin to report issues automatically
- (grizzelbee) New: Added Light-Switch to washing machines, Tumble Dryers, Washer dryers and Dish washers
- (grizzelbee) Upd: Updated dependencies
Hint: The behavior of the light-switch has slightly changed with this release. It not only tests the action capabilities of the device but also shows the state of the light state delivered by the API. If no actions are reported by the API, the switch will be without function and only show the current state. If actions have been reported the switch will work as you expect. If your device reports no light state and no actions the switch will show 'None' and won't do anything.
V4.0.16 (2021-04-21) (Black Orchid)
- (grizzelbee) Fix: Units for EcoFeedback will be shown now, even machine is not running during setup
- (stan23) New: added new program states
V4.0.15 (2021-04-19) (Moonglow)
- (grizzelbee) Fix: 130 targetTemp for fridges and freezers will now correctly been updated in action section with current values
V4.0.14 (2021-04-18) (Alchemy)
- (grizzelbee) Fix: 127 targetTemp for fridges caused exception and crash of adapter
V4.0.13 (2021-04-12) (The toy master)
- (grizzelbee) Fix: 90 targetTemp addresses zones for fridges and freezers dynamically now
V4.0.12 (2021-04-12) (Promised land)
- (grizzelbee) Fix: 90 targetTemp addresses zones for fridges and freezers dynamically now
V4.0.11 (2021-04-11) (Cry just a little)
- (grizzelbee) Fix: targetTemp min and max values are now taken from API - no constant values anymore
V4.0.10 (2021-04-10) (Another angel down)
- (grizzelbee) Fix: targetTemp min and max values are now taken from API - no constant values anymore
V4.0.9 (2021-04-09) (Farewell)
- (grizzelbee) Fix: Errors during action execution will be shown correctly
- (grizzelbee) Fix: Actions will be executed correctly
V4.0.8 (2021-04-09) (The seven angels)
- (grizzelbee) Fix: fixed datatype of VentilationStep data point
- (grizzelbee) Fix: fixed ventilation step switch for hoods (attempt 4)
V4.0.7 (2021-04-09) (Lost in space)
- (grizzelbee) Fix: 90 added missing path to object ID; data point will be created in the correct place now
- (grizzelbee) New: targetTemp min and max values are now taken from API - no constant values anymore
V4.0.6 (2021-04-08) (The great mystery)
- (grizzelbee) Fix: fixes Light switch for hoods and other devices supporting light
- (grizzelbee) Fix: fixes ventilation step switch for hoods (attempt 3)
V4.0.5 (2021-04-08) (The haunting)
- (grizzelbee) Fix: fixes ventilation step switch for hoods (attempt 2)
- (grizzelbee) Fix: fixes error on creating TargetTemperature data points
V4.0.4 (2021-04-07) (Wastelands)
- (grizzelbee) Fix: fixes ventilation step switch for hoods
- (grizzelbee) Fix: fixed missing getLightState
V4.0.3 (2021-04-07) (The raven child)
- (grizzelbee) Fix: 109 fixes 404 error when querying possible actions for device.
- (grizzelbee) Fix: fixes errors when executing actions on devices with API-Id!=fabNumber
V4.0.2 (2021-04-07) (Angel of Babylon)
- (grizzelbee) Fix: 107 fixes #107 and 404 error when device is unknown.
V4.0.1 (2021-04-06) (Sign of the cross)
- (grizzelbee) Fix: 90 setting the targetTemperature should work now.
- (grizzelbee) Fix: 96 Added missing ACTIONS.Action_Information again
- (grizzelbee) Fix: 97 removed unneeded additional "VentilationStep/Lüfterstufe" in path and fixed warning with this. VentilationStep-switch should work properly now.
- (grizzelbee) Fix: 98 Color-Action has now valid type 'String'
- (grizzelbee) Fix: 102 Fixed ACTIONS.VentilationStep has no existing object
- (grizzelbee) Fix: Power switch is write protected now when in state 'None'. State 'None' means: No action permitted.
- (grizzelbee) Fix: Light switch is write protected now when in state 'None'. State 'None' means: No action permitted.
- (grizzelbee) Fix: http error 404 will be catched when requesting device actions
V4.0.0 (2021-03-18) (Symphony of life)
Hint: The adapter received a complete code refactoring! This means that most of the code has been changed and some parts are working now differently than ever before. Update with care and read the change log!
- (grizzelbee) New: FULL support of Miele cloud API v1.0.4
- (grizzelbee) Upd: 83 estimatedEndTime isn't shown anymore after the device has finished
- (grizzelbee) Upd: 85 full code refactoring and split into multiple files.
- (grizzelbee) Upd: 86 every folder and device now gets a nice little icon
- (grizzelbee) Upd: 89 Washer dryers are fully supported now
- (grizzelbee) Upd: 90 implemented targetTemperature for fridges & freezers
- (grizzelbee) Upd: Devices get fully created on startup and aren't modified afterwards - only updated
- (grizzelbee) Upd: New folder ecoFeedback to group ecoFeedback states
- (grizzelbee) Upd: New folder IDENT to group ident states
- (grizzelbee) Upd: Removed signalActionRequired - since there is no signalDoor for washing machines, dryers and dishwashers this approach doesn't work
- (grizzelbee) Upd: All folders and states which are being created depend on the capabilities of their devices as described in this Miele documentation. So there shouldn't be useless states anymore caused by the generic Miele cloud API.
V3.0.2 (2021-03-05)
- (grizzelbee) Fix: 79 When a devices serial is missing, the identNumber is assigned instead.
- (grizzelbee) Upd: Changed folder name cooktops to hobs since this is the more common name
- (grizzelbee) Upd: added PowerOn/Off buttons for Coffee-systems & hoods
- (grizzelbee) Upd: 74 testing actions better before sending to permit errors
V3.0.1 (2021-02-25)
Hint: Action_Information and Action_Status objects are created on first action execution and contain infos to the last executed action. Please take care of notes regarding [Controlling your devices](#Controlling your devices).
- (grizzelbee) Upd: Improved logging in some parts - objects get stringified.
- (grizzelbee) Fix: 74 Actions are working again
- (grizzelbee) Upd: Actions are tested before sending whether they are permitted in current device state
- (grizzelbee) Upd: estimatedEndTime doesn't show seconds anymore
- (grizzelbee) Upd: Improved documentation
- (grizzelbee) Upd: removed unused function decrypt
- (grizzelbee) Upd: removed superfluent parameters
V3.0.0 (2021-02-18)
Hint: ecoFeedback objects are created on the first run of the device. This allows to only create them, when they contain data.
- (grizzelbee) New: BREAKING CHANGE: Making use of build-in password de-/encryption. This raises the need to re-enter your passwords again, because the old ones can't be decrypted anymore.
- (grizzelbee) New: 70 Implements Miele API 1.0.4
- (grizzelbee) New: 64 Introduces data point estimatedFinishingTime
- (grizzelbee) New: 54 Poll interval can now freely be selected in seconds and minutes
- (grizzelbee) Upd: 73 BREAKING CHANGE: Removed white-spaces from any ID in device tree. This creates completely new device trees. So please delete the old ones.
- (grizzelbee) Upd: removed david-dm badge
- (grizzelbee) Upd: updated dependencies
- (grizzelbee) Fix: added passwords to encryptedNative
- (grizzelbee) Fix: added passwords to protectedNative
- (grizzelbee) Fix: 63 added missing info.connection object to io-package
- (grizzelbee) Fix: 63 Fixed new Warnings introduced with js-controller 3.2
- (grizzelbee) Fix: 74 Light-Actions should work now
V2.0.3 (2020-09-15)
- (grizzelbee) Upd: Updated country list in config dialog
- (grizzelbee) New: Some more debug code
V2.0.2 (2020-09-15)
- (grizzelbee) New: Added some debug Code to find an Error
- (grizzelbee) Fix: fixed error on failed authentication preventing a valid error message
V2.0.1 (2020-09-14)
- (grizzelbee) New: Added some debug Code to find an Error
- (grizzelbee) Fix: fixed error on logout while invalidating token
V2.0.0 - Support for Miele API V1.0.3 (2020-08-25)
Some breaking changes in this release. Some data points changed their type. May require fixes in scripts. Update with care! Due to the fix that data points with invalid values aren't created any longer, I recommend deleting all data points in Object view.
- (grizzelbee) Change: New Icon
- (grizzelbee) Fix: Number-data points are no longer created as strings due to their unit. They are correct numbers with units now.
- (grizzelbee) Fix: Unit °Celsius is now shown as °C - not longer °Celsius
- (grizzelbee) New: Introduced support for °Fahrenheit
- (grizzelbee) New: Introduced support for new Value "plateStep" for Hobs.
- (grizzelbee) New: Performing a LogOut from Miele API on shutdown to invalidate the Auth-Tokens.
- (grizzelbee) Fix: Data points with invalid values (null/-32768) are no longer created.
V1.2.4 (2020-06-09)
- (grizzelbee) Fix: fixed No-Data Bug (introduced in V1.2.3)
V1.2.3 (2020-06-07)
- (grizzelbee) Upd: fixed snyk badge
- (grizzelbee) Upd: Improved error handling
V1.2.2 (2020-05-23)
- (grizzelbee) Upd: removed node 8 from testing on travis.com
- (grizzelbee) Fix: signalActionRequired should work better now
- (grizzelbee) Upd: Updated documentation
- (grizzelbee) Upd: Improved error handling in function APISendRequest
- (grizzelbee) Fix: Moved testing of Config to On(Ready) and fixed unit tests with this.
V1.2.1 (2020-04-22)
- (grizzelbee) New: Introduced new boolean state (signalActionRequired) that indicates that the machine has finished running, but a human action, like putting the wet clothes to the dryer, ... is needed. State is cleared automatically when the door of the appliance is opened, or it is restarted. State is implemented for washing machines, tumble dryers, washer dryer and dishwashers. Doesn't work perfectly currently.
- (grizzelbee) Upd: Updated Documentation
- (grizzelbee) Fix: Fixed warnings with js-Controller >=3.0 (Issue #23)
V1.2.0 (2020-04-18)
- (grizzelbee) New: Added new boolean state (Connected) that indicates whether the device is connected to WLAN or a gateway.
- (grizzelbee) New: Added new boolean state (signalInUse) that indicates whether the device is switched off (false) or in Use (true).
- (grizzelbee) Change: replaced the deprecated http-library request with axios
- (grizzelbee) Change: Made functions communicating with API asynchronous
V1.1.0 (2020-03-07)
- (grizzelbee) New: Added Actions - Implemented all currently supported and documented Actions for all devices.
Please remember that Actions will only work if you put your device into the appropriate state (e.g. Mobile Control) please refer to Miele-Documentation for more Information on actions.
V1.0.5 (2020-02-14)
- (grizzelbee) removed node-schedule as a dependency
- (grizzelbee) implemented scheduling via setTimeout, which raises the opportunity to schedule with less than a minute in the future
V1.0.4 (2020-02-12)
- (grizzelbee) removed unneeded setTimeout from main
- (grizzelbee) Clearing scheduler on unload of adapter
- (grizzelbee) Minor updates and fixed typos in Readme
V1.0.3 (2020-02-06)
- (grizzelbee) removed an overseen logging of Passwords
- (grizzelbee) Fixed createTemperatureDatapoint to work with less than 3 values delivered from API
- (grizzelbee) Added some documentation
- (grizzelbee) Started implementation of DeviceActions
V1.0.2 (2020-02-05)
- (grizzelbee) removed any logging of Passwords
- (grizzelbee) Fixed bug in config interface introduced during password encryption that config values aren't loaded properly
V1.0.1 (2020-02-04)
- (grizzelbee) Fixes in environment for getting adapter into the Repo
- (grizzelbee) Passwords are stored encrypted now
V1.0.0 (2020-02-03)
- (grizzelbee) renamed to MieleCloudService to get the ability to publish; the old Name is still blocked by hash99
- (grizzelbee) Rewritten adapter from scratch - therefore it's incompatible with prior versions and needs to be installed freshly.
- (grizzelbee) Fix: fixed all build-errors
- (grizzelbee) Fix: Fixed "NRefreshToken is not a function"-Bug
- (grizzelbee) Chg: removed Push-API checkbox (maybe introduced newly when API supports this)
- (grizzelbee) Chg: New Icon
- (grizzelbee) New: added support for non-german Miele-Accounts (ALL should be included)
- (grizzelbee) Complete new layout of data points
- (grizzelbee) Device types are grouped now
0.9.1 (2019-07-26)
- (grizzelbee) Fix: Fixed small bug introduced in V0.9.0 throwing an exception in debugging code
0.9.0 (2019-07-26)
- (grizzelbee) Upd: New versioning due to completeness and stability of the adapter (about 90%)
- (grizzelbee) New: make poll interval configurable (currently 1,2,3,4,5,7,10,15 Minutes)
- (grizzelbee) Fix: fixed ESLint config
- (grizzelbee) Upd: Changed order of config fields in UI
- (grizzelbee) New: Set 5 Minutes poll interval and english response language as default to get initial values
- (grizzelbee) New: Parent-Datapoint of time values will be used to get a pretty readable time in the format h:mm. The deeper datapoints 0 and 1 will still be updated, but his will be removed in a future version to reduce workload.
0.0.5 (2019-07-25)
- (grizzelbee) Upd: some code maintenance
- (grizzelbee) New: added reply-language to config
- Miele API is currently able to reply in German or English, now you can choose.
- (grizzelbee) New: created new Icon
- (grizzelbee) Fix: fixed translation issues and translated adapter UI using gulp
- (grizzelbee) Upd: Made changes to travis requested by apollon77
0.0.4
- (hash99) add devices configuration
0.0.3
- (hash99) adapter conform
0.0.1
- (hash99) initial release
License
The MIT License (MIT)
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Copyright
Copyright (c) 2019, 2021 grizzelbee open.source@hingsen.de