Home Connect binding

Hi @shorty707,

I’ve added fridge/freezer support. Unfortunately the Home Connect fridge/freezer simulator behaves strange sometimes. I couldn’t test if temperature changes or turning on the super mode is propagated to the binding via Server Sent Events. After reading the documentation I think it should work, but I couldn’t test it.

It would help a lot if you could check it. Please change the temperature on your appliance and check if the new values are visible in the PaperUI.

Thanks,
Jonas

Hi Jonas

I’ve added te Siemens Washer and so far all looks fine. I have no control functions yet, just displaying the status values. I will test control functions asap

Cheers
Stefan

Hi Jonas,
I have added a Bosch dishwasher and a washmachine. Dishwasher seems to be working and washmachine will be added tomorrow :slight_smile:
Would you please add dryer support to the binding?
Thank you in advance!
BR
Adrian

Hi Jonas,
short feedback from my side. The wash machine interface works great as well as the dishwasher. Thank you very much for your work. Great job :slight_smile:
BR
Adrian

+1 for this!

I can test for you if that is any help.

Thanks

I’m also having issues with the uri verification. First was getting “Login to server failed - please try again later.”. In the application, I had defined the user name from my profile.

I then changed this to my e-mail address and now I get “Your login details are incorrect, please check the information you entered.” using my e-mail and the password I use to log on to the dev portal.

Not sure what I’m doing wrong…I know the password is correct.

Hi @jb4711,
first of all - thanks for this binding!

How is it related to @FanFan 's BSH Binding:

Is it based on it or a complete rewrite?
How about local connection from openHAB to the BSH appliances?
From reading the manual it seems, that the Bosch app can live without a permanent internet connection.

I asked similar to @FanFan one day, but did not get an answer yet:

Since I don’t have my BSH appliances (yet), I can’t test/verify the local operation myself.
Would be nice if you can try and shed some light on this :wink:

Thanks in advance.

Nevermind got it working!

Hi,

@Saracen @Adrian_Rinnus: I will add dryer support next. Thanks for willing to test the thing once done.

@H311m4n: What was the problem? Should I extend the documentation?

@curlyel

Is it based on it or a complete rewrite?

It is a complete new binding. I first tried on a fork of @FanFan’s binding, but realized that it is better to create a new binding.
Reasons:

  • polling approach won’t work because of rate limits (https://developer.home-connect.com/docs/general/ratelimiting) 1000 requests per day is not enough to fetch the data frequently
  • I don’t like configuration files - now you just have to setup a api bridge
  • Server Sent Events wasn’t impl.
  • oAuth device flow was missing

How about local connection from openHAB to the BSH appliances ?

Haven’t done any research on this one. I’ve decompiled the original Home Connect app and had a brief look at the source code. Seems like the app is communicating with a different API. If I remember right it was using gRPC/Protobuffer (but I’m not sure).

Hi Jonas,

do you have any plans to merge the binding into master so that it will be available in the snapshot builds?

I was getting confused with the usernames/passwords. It wasn’t immediately obvious to me that I needed to use the username/password combination I use on my homeconnect app on my phone, and not the one I used on the dev portal. Maybe this was in the documentation and I missed it though.

That said, all works fine with the binding and my washer so thanks for your work!

Yes, I will create a PR once I have implemented all device types.

4 Likes

Hi Jonas,

just letting you know that I just tested with my oven. Setting up the binding works like a charm on the first try.

I can get the state from the home appliance instantaneously into OpenHAB! Like!!1!

I can’t change things like power on/off within OpenHAB, it seems to be read-only. Is this expected behavior?

Thanks a lot for implementing this!!

best,
Bernhard

PS: I also have a Home Connect coffee machine and would be willing to beta test as soon as you implemented this device type!

Hi,

@bbock

I can’t change things like power on/off within OpenHAB, it seems to be read-only. Is this expected behavior?

Yes it is. You can find a good overview of all channels and read-only status at https://github.com/bruestel/org.openhab.binding.homeconnect/tree/master/addons/binding/org.openhab.binding.homeconnect#channels

PS: I also have a Home Connect coffee machine and would be willing to beta test as soon as you implemented this device type!

Great. Next I will implement dryer and afterwards coffee machine support. Than I have covered all types :slight_smile: Thanks for willing to test.

@mstehle

I have one more suggestion should you still plan to change something:
Maybe it would be more convenient to have the remaining_program_time_state channel reports in minutes instead of seconds.

I’m working on support for Units of Measurement (https://www.openhab.org/docs/concepts/units-of-measurement.html#units-of-measurement). Then you can decide which output unit you would like to use. I’ve tested it in a sitemap config and it worked.

sitemap demo label="Main Menu"
{
    Default item=homeconnect_Dishwasher_SIEMENS_HCS02DWH1_6F2FC400C1EA4A_remaining_program_time_state label="Remaining Time [%d min]"
    Default item=homeconnect_Dishwasher_SIEMENS_HCS02DWH1_6F2FC400C1EA4A_remaining_program_time_state label="Remaining Time [%d s]"
    Default item=homeconnect_Dishwasher_SIEMENS_HCS02DWH1_6F2FC400C1EA4A_remaining_program_time_state label="Remaining Time [%d ms]"
}

Thanks,
Jonas

I’m working on support for Units of Measurement

good news, even better :slight_smile:
Please let me know when an updated binding is available.

Thank you,
Matt

@bbock and @mstehle new version is available

1 Like

Hi Jonas,

UoM is working for the Dishwasher time. Thanks.

Basic operation with the oven (reading state) still works as expected. Did just a short smoke test, though.

Hi @jb4711 ,

I am currently on openhab snapshot 2.4.0 #1370. When I restart I get the following in the log:

2018-09-25 00:32:38.237 [ERROR] [ome.core.thing.internal.ThingManager] - Exception occurred while calling thing handler factory 'org.openhab.binding.homeconnect.internal.factory.HomeConnectHandlerFactory@4cfc90f6': Base thing handler factory has not been properly initialized. Did you forget to call super.activate()?
java.lang.IllegalStateException: Base thing handler factory has not been properly initialized. Did you forget to call super.activate()?
        at org.eclipse.smarthome.core.thing.binding.BaseThingHandlerFactory.setHandlerContext(BaseThingHandlerFactory.java:145) ~[107:org.eclipse.smarthome.core.thing:0.10.0.201809210646]
        at org.eclipse.smarthome.core.thing.binding.BaseThingHandlerFactory.registerHandler(BaseThingHandlerFactory.java:128) ~[107:org.eclipse.smarthome.core.thing:0.10.0.201809210646]
        at org.eclipse.smarthome.core.thing.internal.ThingManager.doRegisterHandler(ThingManager.java:594) [107:org.eclipse.smarthome.core.thing:0.10.0.201809210646]
        at org.eclipse.smarthome.core.thing.internal.ThingManager.registerHandler(ThingManager.java:575) [107:org.eclipse.smarthome.core.thing:0.10.0.201809210646]
        at org.eclipse.smarthome.core.thing.internal.ThingManager.registerAndInitializeHandler(ThingManager.java:1045) [107:org.eclipse.smarthome.core.thing:0.10.0.201809210646]
        at org.eclipse.smarthome.core.thing.internal.ThingManager.access$24(ThingManager.java:1041) [107:org.eclipse.smarthome.core.thing:0.10.0.201809210646]
        at org.eclipse.smarthome.core.thing.internal.ThingManager$3.run(ThingManager.java:616) [107:org.eclipse.smarthome.core.thing:0.10.0.201809210646]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]
        at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [?:?]
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [?:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
        at java.lang.Thread.run(Thread.java:748) [?:?]

Any idea why? The binding works without problems though…

Hi @mstehle,

thanks for your log.

Really strange problem. I don’t understand the error message since I do not overwrite any method which requires me to call super.activate().

     * Initializes the {@link BaseThingHandlerFactory}. If this method is overridden by a sub class, the implementing
     * method must call <code>super.activate(componentContext)</code> first.

Will check if I can reproduce it.