Reason for new integration #7
Replies: 13 comments 13 replies
-
Hi @mundschenk-at, The main things I wanted (for my personal use):
I have only got a refridgerator and a freezer from Miele so I have not been able to verify functionality in other appliances. I have a couple of washers and tumble dryers also but they are not "smart", 12-15 years old and they never break ;-) . I am absolutely interested in help with adding more appliance types. |
Beta Was this translation helpful? Give feedback.
-
Yeah, after trying to retrofit devices onto the old integration, I have to agree that starting fresh sounds like the more sensible option. I've got a new washer-dryer and newish dishwasher (6xxx series, so probably no I'll enable logging, but I also know how to use the Swagger UI, so I can directly report things from the API if there is anything specific we need to do. What might also be of interest to you (though not for this integration) is this thread I stumbled upon yesterday about accessing the devices locally instead of using the cloud API. It is in German unfortunately, but it should be readable via Google Translate (and the code examples probably speak for themselves). There's some participation by Miele engineers and someone even did a (proof-of-concept) JS implementation of the gateway protocol. |
Beta Was this translation helpful? Give feedback.
-
Please send me the output from Swagger for the endpoint |
Beta Was this translation helpful? Give feedback.
-
Sure, here's the data (slightly anonymized of course). The dishwasher is running at the moment. As it's a 6xxx series device, Miele does not export the
I'm not sure about the Definitely of interest (in addition to the default entitites already created):
I'll get you state information for when the washer-dryer is running tomorrow. {
"<fabNumber1>": {
"ident": {
"type": {
"key_localized": "Device type",
"value_raw": 7,
"value_localized": "Dishwasher"
},
"deviceName": "",
"protocolVersion": 2,
"deviceIdentLabel": {
"fabNumber": "<fabNumber1>",
"fabIndex": "64",
"techType": "G6865-W",
"matNumber": "<matNumber1>",
"swids": [
"<swid1>",
"<swid2>",
"<swid3>",
"<...>",
]
},
"xkmIdentLabel": {
"techType": "EK039W",
"releaseVersion": "02.72"
}
},
"state": {
"ProgramID": {
"value_raw": 38,
"value_localized": "QuickPowerWash",
"key_localized": "Program name"
},
"status": {
"value_raw": 5,
"value_localized": "In use",
"key_localized": "status"
},
"programType": {
"value_raw": 2,
"value_localized": "Automatic programme",
"key_localized": "Program type"
},
"programPhase": {
"value_raw": 1799,
"value_localized": "Drying",
"key_localized": "Program phase"
},
"remainingTime": [
0,
15
],
"startTime": [
0,
0
],
"targetTemperature": [
{
"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": [
0,
59
],
"spinningSpeed": {
"unit": "rpm",
"value_raw": null,
"value_localized": null,
"key_localized": "Spin speed"
},
"dryingStep": {
"value_raw": null,
"value_localized": "",
"key_localized": "Drying level"
},
"ventilationStep": {
"value_raw": null,
"value_localized": "",
"key_localized": "Fan level"
},
"plateStep": [],
"ecoFeedback": null,
"batteryLevel": null
}
},
"<fabNumber2>": {
"ident": {
"type": {
"key_localized": "Device type",
"value_raw": 24,
"value_localized": "Washer dryer"
},
"deviceName": "",
"protocolVersion": 4,
"deviceIdentLabel": {
"fabNumber": "<fabNumber2>",
"fabIndex": "32",
"techType": "WTR870",
"matNumber": "<matNumber2>",
"swids": [
"<swid1>",
"<swid2>",
"<swid3>",
"<...>", ]
},
"xkmIdentLabel": {
"techType": "EK037",
"releaseVersion": "03.88"
}
},
"state": {
"ProgramID": {
"value_raw": 3,
"value_localized": "Minimum iron",
"key_localized": "Program name"
},
"status": {
"value_raw": 1,
"value_localized": "Off",
"key_localized": "status"
},
"programType": {
"value_raw": 1,
"value_localized": "Own programme",
"key_localized": "Program type"
},
"programPhase": {
"value_raw": 256,
"value_localized": "",
"key_localized": "Program phase"
},
"remainingTime": [
1,
59
],
"startTime": [
0,
0
],
"targetTemperature": [
{
"value_raw": 3000,
"value_localized": 30,
"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": true,
"remoteEnable": {
"fullRemoteControl": true,
"smartGrid": false,
"mobileStart": false
},
"ambientLight": null,
"light": null,
"elapsedTime": [
0,
0
],
"spinningSpeed": {
"unit": "rpm",
"value_raw": 1000,
"value_localized": "1000",
"key_localized": "Spin speed"
},
"dryingStep": {
"value_raw": 0,
"value_localized": "",
"key_localized": "Drying level"
},
"ventilationStep": {
"value_raw": null,
"value_localized": "",
"key_localized": "Fan level"
},
"plateStep": [],
"ecoFeedback": null,
"batteryLevel": null
}
}
} |
Beta Was this translation helpful? Give feedback.
-
Some additional thoughts:
|
Beta Was this translation helpful? Give feedback.
-
@mundschenk-at Please send me the Swagger output for /devices/{device_id}/programs for your devices |
Beta Was this translation helpful? Give feedback.
-
OK, let us wait and see if the API recovers. The Home Assistant way is to start with english translation and then let the community create translation files to other languages. See `translations/en.json'. That is for custom components. Official integrations are handled on lokalise.com There is no coordinated release plan for new features but you can follow the development from this page https://developers.home-assistant.io/ Github core repo and Discord chats are good places to monitor. 2022.2beta will be released on jan 26. A draft changelog is usually published on https://rc.home-assistant.io |
Beta Was this translation helpful? Give feedback.
-
So here's the output when the washer-dryer is running (a combined program): {
"ident": {
"type": {
"key_localized": "Device type",
"value_raw": 24,
"value_localized": "Washer dryer"
},
"deviceName": "",
"protocolVersion": 4,
"deviceIdentLabel": {
"fabNumber": "<fabNumber>",
"fabIndex": "32",
"techType": "WTR870",
"matNumber": "<matNumber>",
"swids": [
"<swid1>",
"<swid2>",
"<swid3>",
"<...>"
]
},
"xkmIdentLabel": {
"techType": "EK037",
"releaseVersion": "03.88"
}
},
"state": {
"ProgramID": {
"value_raw": 1,
"value_localized": "Cottons",
"key_localized": "Program name"
},
"status": {
"value_raw": 5,
"value_localized": "In use",
"key_localized": "status"
},
"programType": {
"value_raw": 1,
"value_localized": "Own programme",
"key_localized": "Program type"
},
"programPhase": {
"value_raw": 260,
"value_localized": "Main wash",
"key_localized": "Program phase"
},
"remainingTime": [
4,
51
],
"startTime": [
0,
0
],
"targetTemperature": [
{
"value_raw": 4000,
"value_localized": 40,
"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": [
0,
1
],
"spinningSpeed": {
"unit": "rpm",
"value_raw": 1200,
"value_localized": "1200",
"key_localized": "Spin speed"
},
"dryingStep": {
"value_raw": 0,
"value_localized": "",
"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
},
"waterForecast": 0,
"energyForecast": 0
},
"batteryLevel": null
}
} |
Beta Was this translation helpful? Give feedback.
-
Re translation: I think I will use english localized strings as the base. |
Beta Was this translation helpful? Give feedback.
-
Suggested ToDoNext steps
Later
|
Beta Was this translation helpful? Give feedback.
-
Good idea with constants. I started to make an attempt in devcap.py but then I was too eager to get something up and running. Planned to get back and fix the constants on a rainy day sometime in the future. |
Beta Was this translation helpful? Give feedback.
-
Please see PR #11 where I have started with the values that are known to me. |
Beta Was this translation helpful? Give feedback.
-
The problem
Hi, I assume you know about https://github.com/HomeAssistant-Mods/home-assistant-miele? I've been using it for a while and would like to improve the state of the Miele@home integration into HA overall. It looks like your integration has a more modern codebase, but lacks a lot of device types at the moment (and the wide user base). Is there a particular reason you chose to start from scratch?
Anyway, as I said, I'd like help get things moving, either by improving the "old" integration or making yours gain feature parity. Are you interested in joining efforts? I'm not yet well-versed in HA's API, but that should not be a handicap in the long run.
Version of hass_template integration having the issue?
master
Version of Home Assistant Core having the issue?
2021.12.10
Anything in the logs that might be useful for us?
No response
Additional information
No response
Beta Was this translation helpful? Give feedback.
All reactions