Anyone still using the Miele@home (XGW 3000) binding?

One more thing to add: When there is ExtendedDeviceState available, this should be logged explicitly with TRACE level:

[TRACE] [ternal.handler.MieleApplianceHandler] - Extended device state for miele:fridge:home:fridge: 01[...]

In the payload it will look like this:

					"Name": "extendedDeviceState",
					"Value": "\u0001",
					"Polling": 0,
					"Metadata": {
						"Filter": "false",
						"description": "Extended Device State",
						"access": "RE"

(truncated after “\u0001” in text above)

Here is the response to the HTTP GET (dryer not running now):


Thus, this string contains “ExtendedState”.

Think that i have to repeat this because i have two devices at the gateway:

  • One with ID 000178022763 which is a miele cloud device.
  • One with ID 000178022763#0 which is the miele@home device.

For a HTTP GET the 000178022763#0 seems to be expected as 000178022763_0 (???) and provides a different response:


Yes, but empty: "ExtendedState": ""

Most likely it’s also empty when running, but you could of course test that. If this is the case, sadly, you are out of luck.

Have you restarted the XGW 3000 gateway since you added the tumble dryer? If not, that could be one last shot.

Sorry, missed this part. You can see correct uids here: http://<gateway IP>/Rest/Devices/

Thanks for this hint. At the moment the washing machine is running. Here i already have water- and power-consumption working. The HTTP GET string looks like this:


The data under “ExtendedState” looks complicated. But this job is already done. The dryer will come in the afternoon, and then i will check again.

The dryer is running now. But using i only get the washing machine (000119707209) which ran earlier and is off now.


But the tumbledryer data from the binding is present. Am confused now. Do you have any idea why the dryer device is not shown?

Using, i get a similar response than yesterday:


This is the tumbledryer’s data, can see this from remaining time. But then, having no “Extended State” data, i conclude, that i am out of luck :thinking:.

Yes, Wi-Fi devices are not included in the list. You can still use the API though, they are just not listed. The UIDs can be fetched using the even older API:

Am probably not completely out of luck :smiley:

Found a method to retrieve the data through the Miele API:


HTTP GET command (applied the Exec binding for this):

curl -X 'GET' \
  '' \
  -H 'accept: application/json; charset=utf-8' \
  -H 'Authorization: Bearer DE_xxxxxxxxxxxxxxxxxxxx'

For Windows users (Curl for Windows):

C:\Curl\bin\curl -i "" -H "accept: application/json; charset=utf-8" -H "Authorization: Bearer DE_xxxxxxxxxxxxxxxxxxxx"

Remember that such commands for the Exec binding have to be added to the exec.whitelist.


  "ident": {
    "type": {
      "key_localized": "Device type",
      "value_raw": 2,
      "value_localized": "Tumble dryer"
    "deviceName": "TWH780WP",
    "protocolVersion": 4,
    "deviceIdentLabel": {
      "fabNumber": "000178022763",
      "fabIndex": "40",
      "techType": "TWH780WP",
      "matNumber": "11819590",
      "swids": [
    "xkmIdentLabel": {
      "techType": "EK057",
      "releaseVersion": "08.10"
  "state": {
    "ProgramID": {
      "value_raw": 2,
      "value_localized": "Cottons",
      "key_localized": "Program name"
    "status": {
      "value_raw": 5,
      "value_localized": "In use",
      "key_localized": "status"
    "programType": {
      "value_raw": 3,
      "value_localized": "Cleaning/Care programme",
      "key_localized": "Program type"
    "programPhase": {
      "value_raw": 514,
      "value_localized": "Drying",
      "key_localized": "Program phase"
    "remainingTime": [
    "startTime": [
    "targetTemperature": [
        "value_raw": -32768,
        "value_localized": null,
        "unit": "Celsius"
        "value_raw": -32768,
        "value_localized": null,
        "unit": "Celsius"
        "value_raw": -32768,
        "value_localized": null,
        "unit": "Celsius"
    "temperature": [
        "value_raw": -32768,
        "value_localized": null,
        "unit": "Celsius"
        "value_raw": -32768,
        "value_localized": null,
        "unit": "Celsius"
        "value_raw": -32768,
        "value_localized": null,
        "unit": "Celsius"
    "signalInfo": false,
    "signalFailure": false,
    "signalDoor": false,
    "remoteEnable": {
      "fullRemoteControl": true,
      "smartGrid": false,
      "mobileStart": false
    "ambientLight": null,
    "light": null,
    "elapsedTime": [
    "spinningSpeed": {
      "unit": "rpm",
      "value_raw": null,
      "value_localized": null,
      "key_localized": "Spin speed"
    "dryingStep": {
      "value_raw": 0,
      "value_localized": "Extra dry",
      "key_localized": "Drying level"
    "ventilationStep": {
      "value_raw": null,
      "value_localized": "",
      "key_localized": "Fan level"
    "plateStep": [],
    "ecoFeedback": {
      "currentWaterConsumption": {
        "unit": "l",
        "value": 0
      "currentEnergyConsumption": {
        "unit": "kWh",
        "value": 0.5
      "waterForecast": 0,
      "energyForecast": 0.6
    "batteryLevel": null
Response headers
 content-length: 695 

Here i see the power consumption. The task is now to extract the value using some transformation code. Will see if i get this done?

In that case the best solution would be to have the Miele Cloud binding support this. I don’t know if @BjoernLange would be interested in adding channels for water/energy consumption? :slight_smile:

1 Like

Retrieved the power consumption value of the tumble dryer by application of the following JSONPath transformation :


Coverted the retrieved string to a number in order to calculate power consumption cost.

Nevertheless, i would also very much appreciate if you could support the “ecoFeedback” data within the Miele cloud binding. Actually i anyway need both Miele bindings, “Miele@home” and “Miele cloud”, to use all interesting parameters. Both bindings have their advantages versus the other one.

Hi @laursen, hi @dk8pn, I will have a look into this over the christmas holidays.

1 Like

@laursen and @BjoernLange

My power consumption solution using the Miele server is as reliable as the server itself. The Miele 3rd-party API services seem to be dead since at least 2 weeks now.

The page where i granted the credentials is also not available or dead.

Hi @dk8pn,

I just tried it out in my test environment and it seems to work. Could there be anything that blocks access to the API URL? I can also access the website for Miele Developer Account registration.

Could you check whether your access token works? I described how to do that here.

1 Like

at the beginning of the year I no longer had a connection to the MIELE server.
My MIELE device was shown as not available in the app.
At the same time, an update was offered for the app.
Conclusion: Update performed, washing machine reconnected to the app, washing machine once disconnected/connected from the network.
After that it worked immediately again.

Many thanks for this hint.

Recognized that the token in the “Miele@home Account” thing has changed for some reason versus the token which i applied within my CURL Get command. Initially this token has been a copy of the other one and worked for a wile. I only apply this workarround method because the dryer power consumption is not yet available through the “tumble dryer” thing.

It is working out now again.

Maybe that the issue appeared due to a Miele app update. Will observe this for the next time.

Hi @dk8pn, this is no issue with an update by Miele. The token you copied to your CURL command is an OAuth token and these tokens expire after some time. The binding automatically exchanges the token for a new one when this happens. So the problem will occur again on a regular interval.

1 Like

Hi Bjoern, thanks for this explanation, understood. Means, that i will have to update my token within the CURL command string and the exec.whitelist manually. Perhaps i can automate this.

Something general (back to the topic):
Is the XGW3000 the thing I need to cover an actual WaschingMaschine 2024?

Are there alternatives?
Does is work offline (without internet)?

Probably not. It was a Zigbee-based gateway communicating with appliances through communication modules inserted into the appliances. I’m not sure if any new products still have this slot. Miele dropped this and switched to Wi-Fi (built-in in newer appliances) and cloud.

Yes, the Miele Cloud binding supports newer devices with Wi-Fi.

The XGW3000 solution does, but not the new solution.

Has someone opened such kind of Miele with WLAN?
I guess if the basic functions available without the WLAN-Module, it could be possible to replace whole module or firmware without any risk! (I would do!)