Home Connect binding

mmmm, thats to bad and also a little bit strange, with te official homeconnect app i can select the eco program and start it. I read in a previous post that you explained that the homeconnect and the binding are using a different kind of api but still.

With the latest binding 2.5.9.202010221151 and also the previous 2.5.9 binding my appliances are losing connection, my dishwasher still hangs at 94% from last night. Going back to 2.5.1.202001111631 which worked perfectly for me.

Hello Jonas, I’m using your addon with great joy on my Siemens WM14T6H6NL washing machine.

Version: 2.5.9

Until now, everything I’ve tried with it works.

I’ve ran in a problem today, though. I tried to set a delayed start program on it, but I get the error:

Option BSH.Common.Option.FinishInRelative not supported.

Am I doing something wrong here or is this a known limitation of the addon/developer program?

Could not handle command { "data": { "key": "LaundryCare.Washer.Program.Sensitive", "options": [ { "key": "BSH.Common.Option.FinishInRelative", "value": 1200, "unit": "seconds" }, { "key": "LaundryCare.Common.Option.LoadRecommendation", "value": 6500, "unit": "gram" }, { "key": "LaundryCare.Common.Option.VarioPerfect", "value": "LaundryCare.Common.EnumType.VarioPerfect.Off" }, { "key": "LaundryCare.Washer.Option.IDos1DosingLevel", "value": "LaundryCare.Washer.EnumType.IDosingLevel.Off" }, { "key": "LaundryCare.Washer.Option.IDos2DosingLevel", "value": "LaundryCare.Washer.EnumType.IDosingLevel.Off" }, { "key": "LaundryCare.Washer.Option.LessIroning", "value": true }, { "key": "LaundryCare.Washer.Option.Prewash", "value": false }, { "key": "LaundryCare.Washer.Option.SpinSpeed", "value": "LaundryCare.Washer.EnumType.SpinSpeed.RPM800" }, { "key": "LaundryCare.Washer.Option.Temperature", "value": "LaundryCare.Washer.EnumType.Temperature.GC60" }, { "key": "LaundryCare.Washer.Option.WaterAndRinsePlus", "value": "LaundryCare.Washer.EnumType.WaterAndRinsePlus.Off" } ] } }. API communication problem! error: Communication error! response code: 409, message: Conflict, body: { "error": { "key": "SDK.Error.UnsupportedOption", "description": "Option BSH.Common.Option.FinishInRelative not supported" } } (Tried at Sat Oct 24 00:56:54 CEST 2020)

If I remove the FinishInRelative part, and reissue the curl command, the command fails another time, but now on an other part:

Could not handle command { "data": { "key": "LaundryCare.Washer.Program.Sensitive", "options": [ { "key": "LaundryCare.Common.Option.LoadRecommendation", "value": 6500, "unit": "gram" }, { "key": "LaundryCare.Common.Option.VarioPerfect", "value": "LaundryCare.Common.EnumType.VarioPerfect.Off" }, { "key": "LaundryCare.Washer.Option.IDos1DosingLevel", "value": "LaundryCare.Washer.EnumType.IDosingLevel.Off" }, { "key": "LaundryCare.Washer.Option.IDos2DosingLevel", "value": "LaundryCare.Washer.EnumType.IDosingLevel.Off" }, { "key": "LaundryCare.Washer.Option.LessIroning", "value": true }, { "key": "LaundryCare.Washer.Option.Prewash", "value": false }, { "key": "LaundryCare.Washer.Option.SpinSpeed", "value": "LaundryCare.Washer.EnumType.SpinSpeed.RPM800" }, { "key": "LaundryCare.Washer.Option.Temperature", "value": "LaundryCare.Washer.EnumType.Temperature.GC60" }, { "key": "LaundryCare.Washer.Option.WaterAndRinsePlus", "value": "LaundryCare.Washer.EnumType.WaterAndRinsePlus.Off" } ] } }. API communication problem! error: Communication error! response code: 409, message: Conflict, body: { "error": { "key": "SDK.Error.UnsupportedOption", "description": "Option LaundryCare.Common.Option.LoadRecommendation not supported" } } (Tried at Sat Oct 24 01:20:39 CEST 2020)

All help is welcome.

I encountered the same problem. I hope I can fix it soon.

Hi @Exeleration-G,

I’m afraid that you cannot set the option via Home Connect API. I’ve tested the option BSH.Common.Option.FinishInRelative in the simulated environment but it didn’t worked. I guess you can only set spin speed and temperature.

Can you test one option at a time? It would be nice to see, which options might work.

         {
            "key":"LaundryCare.Common.Option.VarioPerfect",
            "value":"LaundryCare.Common.EnumType.VarioPerfect.Off"
         },
         {
            "key":"LaundryCare.Washer.Option.IDos1DosingLevel",
            "value":"LaundryCare.Washer.EnumType.IDosingLevel.Off"
         },
         {
            "key":"LaundryCare.Washer.Option.IDos2DosingLevel",
            "value":"LaundryCare.Washer.EnumType.IDosingLevel.Off"
         },
         {
            "key":"LaundryCare.Washer.Option.LessIroning",
            "value":true
         },
         {
            "key":"LaundryCare.Washer.Option.Prewash",
            "value":false
         },
         {
            "key":"LaundryCare.Washer.Option.WaterAndRinsePlus",
            "value":"LaundryCare.Washer.EnumType.WaterAndRinsePlus.Off"
         }

I’ve prepared a new version. Would you be so kind and test it?

org.openhab.binding.homeconnect-2.5.9.202010241601.jar

Thanks,
Jonas

First of all, great work and thanks for this Binding! I connected my Neff Hood and Hob to Openhab without any issues!
I’m looking however to use this binding to use the hood for ventilation purposes (combined with an air quality meter) to improve the air quality in our kitchen. As such, it would be nice if I could either set the hood_venting_level to FanStage01 and/or set the program to “Interval” (this is a specific program for ventilation purposes).
I’ve tried to use the procedure you describe in the docs on “Start program with custom settings” but I haven’t been successful.
I have been able to get the following info in the logs:

"items": [
    {
      "timestamp": 1603612148,
      "handling": "none",
      "uri": "/api/homeappliances/NEFF-D96IKW1S0-68A40E088639/programs/active",
      "key": "[BSH.Common.Root.ActiveProgram](http://BSH.Common.Root.ActiveProgram)",
      "value": "[Cooking.Common.Program.Hood.Interval](http://Cooking.Common.Program.Hood.Interval)",
      "level": "hint"
    },
    {
      "timestamp": 1603612148,
      "handling": "none",
      "uri": "/api/homeappliances/NEFF-D96IKW1S0-68A40E088639/programs/active/options/[Cooking.Common.Option.Hood.VentingLevel](http://Cooking.Common.Option.Hood.VentingLevel)",
      "key": "[Cooking.Common.Option.Hood.VentingLevel](http://Cooking.Common.Option.Hood.VentingLevel)",
      "value": "Cooking.Hood.EnumType.Stage.FanStage01",
      "level": "hint"
    },
    {
      "timestamp": 1603612148,
      "handling": "none",
      "uri": "/api/homeappliances/NEFF-D96IKW1S0-68A40E088639/programs/active/options/[BSH.Common.Option.ElapsedProgramTime](http://BSH.Common.Option.ElapsedProgramTime)",
      "key": "[BSH.Common.Option.ElapsedProgramTime](http://BSH.Common.Option.ElapsedProgramTime)",
      "unit": "seconds",
      "value": 0,
     "level": "hint"
   }

When I send the command selected to the basic_actions_state channel item I get the following in the logs,

{
  "error": {
    "key": "SDK.Error.NoProgramSelected",
    "description": "There is no program selected"
  }
}

although the Active Program is “Interval”


Does somebody know how to solve this, either with a custom payload/command. Or if this could be integrated in the binding itself that would be even better :wink:

The icing on the cake would be if I could also turn on the integrated ‘decorative light’ in the hood, but that is less important :wink: (I also see that this doesn’t look to be supported by the homeconnect api
).

Thanks

Hi @jb4711,

looks like there is an additional situation where ONLINE/OFFLINE detection does not work

  1. first scenario is where the state is based ON ONLINE/OFFILINE events

  2. second scenario is where we get the ERROR RESPONE “HomeAppliance is offline” which could be interpreted as an early OFFLINE event, because in this scenario the homeconnect server already knows that the washingmachine is OFFLINE and upcoming OFFLINE event will follow.

  3. third scenario is where we get the ERROR RESPONSE “HomeAppliance did not respond to connection initialization requests in time, it might be offline”. In this scenario, the homeconnect server is not sure about the current state, but guess that it is OFFLINE. Maybe we can handle this like the second scenario. But I’m not sure if we will always get a OFFLINE event after. Maybe it would make sense to start an additional timer in background for the case that we do not get any follow up OFFLINE event in a certain amount of time (3-4 min max). In this case I would fall back to the previous state.

the attached logfiles describes the third scenario and I got a a OFFLINE event after 3:30 min

2020-10-25_12-12__homeconnect_api_bridge_default__events.json (5.9 KB)

2020-10-25_12-12__homeconnect_api_bridge_default__requests.json (42.2 KB)

Hi Jonas,
great work! Installation was a snap! I can offer you a couple of real world Siemens devices if you like. Most functions work out of the box, but I found no way to control the light in the hood. Device I have to test your binding:

SIEMENS-EX907KXX5E
SIEMENS-HN878G4B6
SIEMENS-HS858GXB6
SIEMENS-LF31IVV60
SIEMENS-KI86NHD30
SIEMENS-LF31IVV60
SIEMENS-SN858D06PE
SIEMENS-WT47X940EU
SIEMENS-WM14U840EU

regards

Harald

I have a Siemens wash machine since few days and I will be interested by this binding.
Are there plans to make it available in the official openHAB distribution? This would require a PR in github for code review.

Cool idea. I working on other tasks right now. I’ve created a reminder for your case. Will directly contact you, once I’m ready.

Thanks appreciate it. Hope to release a new version soon. Found a bug I would like to fix first.

yes

Hi Jonas,

That’s great! In the meantime, I have been able to create the call! The following sets FanStage01

curl -X POST --header "Content-Type: text/plain" --header "Accept: application/json" -d '{"data":{"key":"Cooking.Common.Program.Hood.Venting","options":[{"key":"Cooking.Common.Option.Hood.VentingLevel","value":"Cooking.Hood.EnumType.Stage.FanStage01"}]}}' "http://localhost:8080/rest/items/NeffAfzuigkapNEFFD96IKW1S068A40E088639_ProgramActions"

This works until FanStage03. FanStage04 (P1 on the hood, Boost in the app) and 05 (P2 / Powerboost) don’t work like that.
For Boost mode, the following works:

curl -X POST --header “Content-Type: text/plain” --header “Accept: application/json” -d ‘{“data”:{“key”:“Cooking.Common.Program.Hood.Venting”,“options”:[{“key”:“Cooking.Common.Option.Hood.VentingLevel”,“value”:“Cooking.Hood.EnumType.Stage.FanOff”},{“key”:“Cooking.Common.Option.Hood.IntensiveLevel”,“value”:“Cooking.Hood.EnumType.IntensiveStage.IntensiveStage1”}]}}’ “http://localhost:8080/rest/items/NeffAfzuigkapNEFFD96IKW1S068A40E088639_ProgramActions”

and for PowerBoost:

curl -X POST --header “Content-Type: text/plain” --header “Accept: application/json” -d ‘{“data”:{“key”:“Cooking.Common.Program.Hood.Venting”,“options”:[{“key”:“Cooking.Common.Option.Hood.VentingLevel”,“value”:“Cooking.Hood.EnumType.Stage.FanOff”},{“key”:“Cooking.Common.Option.Hood.IntensiveLevel”,“value”:“Cooking.Hood.EnumType.IntensiveStage.IntensiveStage2”}]}}’ “http://localhost:8080/rest/items/NeffAfzuigkapNEFFD96IKW1S068A40E088639_ProgramActions”

I’ve not been able to set the mode to ‘Interval’, I think it’s maybe unsupported by the API? I see the following in the logs then:
{
“error”: {
“key”: “SDK.Error.UnsupportedProgram”,
“description”: “Unsupported operation: Cooking.Common.Program.Hood.Interval”
}
}

Hi,
I’ve got a dryer that lately doesn’t seem to have list connection to openhab - although its status can still be seen in the app.

When I go to http:///homeconnect I can see the appliance and the status is weird. “connected” and “offline”.

I am using org.openhab.binding.homeconnect-2.5.9.202010241601.jar

Thanks for any help,
Michael

there was an issues with the homeconnect server today. Maybe you can check again. Or if this does not work, try to authorize your bridge again.

Hi Thanks for the quick reply.
I’ve authorized my bridge again. No change.
When the dryer is turned off (no Wifi), the Cloud says connected is false. When I turn it on connected changes to true. The Status stays OFFLINE and in Openhab it seems dead.

Regards,
Michael

Hi Michael,

I think the Home Connect API had a problem yesterday (maybe today too). Can you send me your request log export? I will have a look.

My appliances have bee experiencing trouble since Sunday. I wonder if it is because of the change from summer to winter time?

Hi @jb4711 is it possible to send refresh to a device to force a refresh?

Hi,

it should work to just send a REFRESH command.