BjoernLange / openhab-miele-cloud-binding-beta

Documentation and issue tracker for the public beta of the Miele Cloud Binding for openHAB
Eclipse Public License 2.0
9 stars 0 forks source link

Bug report: Localization issues in program_active channel #3

Open sirupflex opened 4 years ago

sirupflex commented 4 years ago

Expected Behavior

When turning on the dishwasher and selecting a program (not yet starting the program), I expect to see the selected program name in the program_active channel.

Actual Behavior

When turning on the dishwasher and selecting a program (not yet starting the program), I see the program name in the program_active channel for some programs (e.g. Eco, Intensive) but not for others. E.g. when selecting the "Auto" or "QuickPowerWash" program, the program_active does not seem to contain any name.

Environment

Steps to Reproduce

  1. Create a sitemap displaying the channel program_active for the connected dishwasher G7315
  2. Turn on dishwasher (Program Name "Eco" is correctly reflected in the program_active channel)
  3. Select "Auto" program on dishwasher (-> program_active channel does not display a name)
  4. Select "Intensive" program on dishwasher (Program Name "Intensive" is correctly reflected in the program_active channel)
  5. Select "QuickPowerWash" program on dishwasher (-> program_active channel does not display a name)

Possible Solution

I guess not all programs are mapped in the channel yet, i.e. please map all programs so they are reflected in the channel (?)

Additional information

none

BjoernLange commented 4 years ago

Thank you for your report!

I think this issue might be related to Miele's 3rd party cloud service as the binding does not map program names. It just passes on the localized values from the cloud. To verify this please follow the steps below (as you use docker I assume you are familiar with the linux terminal):

  1. Get the accessToken from the account / bridge configuration, it is shown in the Paper UI in the thing edit view or listed in your .thingsfile.
  2. Get the device ID of your dishwasher from the thing UID. When your thing UID is mielecloud:dishwasher:1234 then it is 1234 (it's always the number part or starts with mac- for older devices).
  3. Select one of the programs that do not display a name.
  4. Use this command to query the 3rd party API for the state of your dishwasher (replace <deviceID> and <accessToken> with the values obtained in step 1 and 2):
    curl --location --request GET 'https://api.mcs3.miele.com/v1/devices/<device ID>/state?language=en' --header 'Content-Type: application/json; charset=utf-8' --header ': ' --header 'Authorization: Bearer <accessToken>'
  5. Post the output here (without the exact command you executed, just the output).
sirupflex commented 4 years ago

Hi Bjoern, I did as you instructed, hopefully correctly. Selected the program "Auto" from the dishwasher and executed the command. This is the output:

{"ProgramID":{"value_raw":6,"value_localized":"","key_localized":"Program Id"},"status":{"value_raw":3,"value_localized":"Program selected","key_localized":"State"},"programType":{"value_raw":0,"value_localized":"Operation mode","key_localized":"Program type"},"programPhase":{"value_raw":1792,"value_localized":"","key_localized":"Phase"},"remainingTime":[2,39],"startTime":[0,0],"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},"light":0,"elapsedTime":[0,0],"spinningSpeed":{"unit":"rpm","value_raw":null,"value_localized":null,"key_localized":"Spinning Speed"},"dryingStep":{"value_raw":null,"value_localized":"","key_localized":"Drying level"},"ventilationStep":{"value_raw":null,"value_localized":"","key_localized":"Power Level"},"plateStep":[]}

BjoernLange commented 4 years ago

Thank you @sirupflex for providing the output. The problem is indeed a cloud side one:

"ProgramID": {
    "value_raw": 6,
    "value_localized": "", // No text given here
    "key_localized": "Program Id"
}

Miele confirmed that they have localization issues and are working on a solution. However, it may take some time until this is fixed.

BjoernLange commented 4 years ago

This also affects the dishwasher G7365 as reported by @sn0west (#7). In that case even wrong program names were given.

sirupflex commented 4 years ago

Thank you for the confirmation @BjoernLange . Just to manage expectations, when you said "However, it may take some time until this is fixed.", what is usually a rough magnitude to get such things fixed in the Cloud API? Days, weeks, months, longer? Just to avoid bothering you every day when it's e.g. know to take months.

BjoernLange commented 4 years ago

@sirupflex: We had a meeting with Miele and their rough estimate is to have the fixed cloud version live at the end of the year, probably in December.

sirupflex commented 4 years ago

@BjoernLange, thank you very much for providing a rough timeframe, appreciated. I hope the around-end-of-year cloud version will fix all missing data channels reported here, would be great.