Grohe Ondus

Tags: #<Tag:0x00007f74648d14d8>

Hi,

I’ve recently purchased a security shutoff valve from Grohe and it is connected via the Grohe Ondus App. A big part of me selecting this brand was due to the binding in OH :slight_smile: But when I try to create the “brigde” I get “Unknown response with code 404”. Am I doing something wrong?

From the log:

2019-03-06 14:14:31.713 [ERROR] [core.thing.internal.ThingManagerImpl] - Exception occurred while initializing handler of thing 'groheondus:account:23612344': Unknown response with code 404
java.lang.IllegalArgumentException: Unknown response with code 404
	at org.grohe.ondus.api.actions.LoginAction.lambda$getToken$7(LoginAction.java:25) ~[?:?]
	at java.util.Optional.orElseThrow(Optional.java:290) ~[?:?]
	at org.grohe.ondus.api.actions.LoginAction.getToken(LoginAction.java:24) ~[?:?]
	at org.grohe.ondus.api.OndusService.login(OndusService.java:45) ~[?:?]
	at org.grohe.ondus.api.OndusService.login(OndusService.java:37) ~[?:?]
	at org.openhab.binding.groheondus.internal.handler.GroheOndusAccountHandler.initialize(GroheOndusAccountHandler.java:69) ~[?:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:?]
	at org.eclipse.smarthome.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:153) [102:org.eclipse.smarthome.core:0.10.0.oh240]
	at org.eclipse.smarthome.core.internal.common.Invocation.call(Invocation.java:53) [102:org.eclipse.smarthome.core:0.10.0.oh240]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
	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) [?:?]

I tried to reinstall the binding and got some more log errors. But it doesn’t help me…

2019-03-06 14:38:39.097 [INFO ] [org.openhab.binding.groheondus      ] - FrameworkEvent INFO - org.openhab.binding.groheondus
java.io.IOException: Exception in opening zip file: /var/lib/openhab2/cache/org.eclipse.osgi/223/0/bundleFile
	at org.eclipse.osgi.framework.util.SecureAction.getZipFile(SecureAction.java:321) ~[?:?]
	at org.eclipse.osgi.storage.bundlefile.ZipBundleFile.basicOpen(ZipBundleFile.java:93) ~[?:?]
	at org.eclipse.osgi.storage.bundlefile.ZipBundleFile.getZipFile(ZipBundleFile.java:106) ~[?:?]
	at org.eclipse.osgi.storage.bundlefile.ZipBundleFile.checkedOpen(ZipBundleFile.java:65) ~[?:?]
	at org.eclipse.osgi.storage.bundlefile.ZipBundleFile.getEntry(ZipBundleFile.java:240) ~[?:?]
	at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findClassImpl(ClasspathManager.java:560) ~[?:?]
	at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClassImpl(ClasspathManager.java:538) ~[?:?]
	at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:525) ~[?:?]
	at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:328) ~[?:?]
	at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:368) ~[?:?]
	at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:446) ~[?:?]
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:395) ~[?:?]
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:387) ~[?:?]
	at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:150) ~[?:?]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:?]
	at java.lang.Class.forName0(Native Method) ~[?:?]
	at java.lang.Class.forName(Class.java:348) ~[?:?]
	at org.apache.commons.logging.impl.LogFactoryImpl.createLogFromClass(LogFactoryImpl.java:998) ~[?:?]
	at org.apache.commons.logging.impl.LogFactoryImpl.discoverLogImplementation(LogFactoryImpl.java:844) ~[?:?]
	at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:541) ~[?:?]
	at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:292) ~[?:?]
	at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:269) ~[?:?]
	at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:655) ~[6:org.ops4j.pax.logging.pax-logging-api:1.10.1]
	at org.apache.http.conn.ssl.DefaultHostnameVerifier.<init>(DefaultHostnameVerifier.java:82) ~[?:?]
	at org.apache.http.impl.client.HttpClientBuilder.build(HttpClientBuilder.java:955) ~[?:?]
	at org.apache.http.impl.client.HttpClients.createDefault(HttpClients.java:56) ~[?:?]
	at org.grohe.ondus.api.client.ApiClient.<init>(ApiClient.java:28) ~[?:?]
	at org.grohe.ondus.api.OndusService.login(OndusService.java:37) ~[?:?]
	at org.openhab.binding.groheondus.internal.handler.GroheOndusAccountHandler.initialize(GroheOndusAccountHandler.java:69) ~[?:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:?]
	at org.eclipse.smarthome.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:153) ~[?:?]
	at org.eclipse.smarthome.core.internal.common.Invocation.call(Invocation.java:53) ~[?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:?]
	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) ~[?:?]
Caused by: java.io.FileNotFoundException: /var/lib/openhab2/cache/org.eclipse.osgi/223/0/bundleFile (No such file or directory)
	at java.util.zip.ZipFile.open(Native Method) ~[?:?]
	at java.util.zip.ZipFile.<init>(ZipFile.java:225) ~[?:?]
	at java.util.zip.ZipFile.<init>(ZipFile.java:155) ~[?:?]
	at java.util.zip.ZipFile.<init>(ZipFile.java:169) ~[?:?]
	at org.eclipse.osgi.framework.util.SecureAction$16.run(SecureAction.java:308) ~[?:?]
	at org.eclipse.osgi.framework.util.SecureAction$16.run(SecureAction.java:1) ~[?:?]
	at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
	at org.eclipse.osgi.framework.util.SecureAction.getZipFile(SecureAction.java:306) ~[?:?]
	... 38 more
2019-03-06 14:38:39.185 [INFO ] [org.openhab.binding.groheondus      ] - FrameworkEvent INFO - org.openhab.binding.groheondus
java.io.IOException: Exception in opening zip file: /var/lib/openhab2/cache/org.eclipse.osgi/223/0/.cp/lib/ondus-api-0.0.4.jar
	at org.eclipse.osgi.framework.util.SecureAction.getZipFile(SecureAction.java:321) ~[?:?]
	at org.eclipse.osgi.storage.bundlefile.ZipBundleFile.basicOpen(ZipBundleFile.java:93) ~[?:?]
	at org.eclipse.osgi.storage.bundlefile.ZipBundleFile.getZipFile(ZipBundleFile.java:106) ~[?:?]
	at org.eclipse.osgi.storage.bundlefile.ZipBundleFile.checkedOpen(ZipBundleFile.java:65) ~[?:?]
	at org.eclipse.osgi.storage.bundlefile.ZipBundleFile.getEntry(ZipBundleFile.java:240) ~[?:?]
	at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findClassImpl(ClasspathManager.java:560) ~[?:?]
	at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClassImpl(ClasspathManager.java:538) ~[?:?]
	at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:525) ~[?:?]
	at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:328) ~[?:?]
	at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:368) ~[?:?]
	at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:446) ~[?:?]
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:395) ~[?:?]
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:387) ~[?:?]
	at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:150) ~[?:?]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:?]
	at java.lang.Class.forName0(Native Method) ~[?:?]
	at java.lang.Class.forName(Class.java:348) ~[?:?]
	at org.apache.commons.logging.impl.LogFactoryImpl.createLogFromClass(LogFactoryImpl.java:998) ~[?:?]
	at org.apache.commons.logging.impl.LogFactoryImpl.discoverLogImplementation(LogFactoryImpl.java:844) ~[?:?]
	at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:541) ~[?:?]
	at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:292) ~[?:?]
	at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:269) ~[?:?]
	at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:655) ~[6:org.ops4j.pax.logging.pax-logging-api:1.10.1]
	at org.apache.http.conn.ssl.DefaultHostnameVerifier.<init>(DefaultHostnameVerifier.java:82) ~[?:?]
	at org.apache.http.impl.client.HttpClientBuilder.build(HttpClientBuilder.java:955) ~[?:?]
	at org.apache.http.impl.client.HttpClients.createDefault(HttpClients.java:56) ~[?:?]
	at org.grohe.ondus.api.client.ApiClient.<init>(ApiClient.java:28) ~[?:?]
	at org.grohe.ondus.api.OndusService.login(OndusService.java:37) ~[?:?]
	at org.openhab.binding.groheondus.internal.handler.GroheOndusAccountHandler.initialize(GroheOndusAccountHandler.java:69) ~[?:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:?]
	at org.eclipse.smarthome.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:153) ~[?:?]
	at org.eclipse.smarthome.core.internal.common.Invocation.call(Invocation.java:53) ~[?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:?]
	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) ~[?:?]
Caused by: java.io.FileNotFoundException: /var/lib/openhab2/cache/org.eclipse.osgi/223/0/.cp/lib/ondus-api-0.0.4.jar (No such file or directory)
	at java.util.zip.ZipFile.open(Native Method) ~[?:?]
	at java.util.zip.ZipFile.<init>(ZipFile.java:225) ~[?:?]
	at java.util.zip.ZipFile.<init>(ZipFile.java:155) ~[?:?]
	at java.util.zip.ZipFile.<init>(ZipFile.java:169) ~[?:?]
	at org.eclipse.osgi.framework.util.SecureAction$16.run(SecureAction.java:308) ~[?:?]
	at org.eclipse.osgi.framework.util.SecureAction$16.run(SecureAction.java:1) ~[?:?]
	at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
	at org.eclipse.osgi.framework.util.SecureAction.getZipFile(SecureAction.java:306) ~[?:?]
	... 38 more
2019-03-06 14:38:41.661 [ERROR] [nal.common.AbstractInvocationHandler] - An error occurred while calling method 'ThingHandler.initialize()' on 'org.openhab.binding.groheondus.internal.handler.GroheOndusAccountHandler@1e188844': Unknown response with code 404
java.lang.IllegalArgumentException: Unknown response with code 404
	at org.grohe.ondus.api.actions.LoginAction.lambda$getToken$7(LoginAction.java:25) ~[?:?]
	at java.util.Optional.orElseThrow(Optional.java:290) ~[?:?]
	at org.grohe.ondus.api.actions.LoginAction.getToken(LoginAction.java:24) ~[?:?]
	at org.grohe.ondus.api.OndusService.login(OndusService.java:45) ~[?:?]
	at org.grohe.ondus.api.OndusService.login(OndusService.java:37) ~[?:?]
	at org.openhab.binding.groheondus.internal.handler.GroheOndusAccountHandler.initialize(GroheOndusAccountHandler.java:69) ~[?:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:?]
	at org.eclipse.smarthome.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:153) [102:org.eclipse.smarthome.core:0.10.0.oh240]
	at org.eclipse.smarthome.core.internal.common.Invocation.call(Invocation.java:53) [102:org.eclipse.smarthome.core:0.10.0.oh240]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
	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) [?:?]
2019-03-06 14:38:41.672 [ERROR] [core.thing.internal.ThingManagerImpl] - Exception occurred while initializing handler of thing 'groheondus:account:c9d773e7': Unknown response with code 404
java.lang.IllegalArgumentException: Unknown response with code 404
	at org.grohe.ondus.api.actions.LoginAction.lambda$getToken$7(LoginAction.java:25) ~[?:?]
	at java.util.Optional.orElseThrow(Optional.java:290) ~[?:?]
	at org.grohe.ondus.api.actions.LoginAction.getToken(LoginAction.java:24) ~[?:?]
	at org.grohe.ondus.api.OndusService.login(OndusService.java:45) ~[?:?]
	at org.grohe.ondus.api.OndusService.login(OndusService.java:37) ~[?:?]
	at org.openhab.binding.groheondus.internal.handler.GroheOndusAccountHandler.initialize(GroheOndusAccountHandler.java:69) ~[?:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:?]
	at org.eclipse.smarthome.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:153) [102:org.eclipse.smarthome.core:0.10.0.oh240]
	at org.eclipse.smarthome.core.internal.common.Invocation.call(Invocation.java:53) [102:org.eclipse.smarthome.core:0.10.0.oh240]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
	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) [?:?]

  • Platform information:
    • OS: Debian 9.4 64-bit
    • Java Runtime Environment: build 1.8.0_181-b13
    • openHAB version: 2.4.0

So if that 404 is an HTTP 404 error code something is not configured correctly to hit the server with the API.

I don’t have this binding in my setup, but it looks like it supports a thing file, it may help if you post that (minus your user creds).

Example on the doco page - https://www.openhab.org/addons/bindings/groheondus/#full-example

Thank you for answering.
I’ve not setup a .things file. The binding lets me add the information via paperUI, but as you point out it doesnt correspond with the instructions on the bingings page…
I have no idea how to get the “applianceId” of my device of the API manually, if thats whats required.

Found this on the project github page…

The applianceId is Unique ID of the appliance in the GROHE ONDUS account looking at the doco, if it’s similar to a Nest setup you have to grab the unique identifier from the online account?

I can’t find it in the app.
Without understanding the binding I would think that the “bridge” will ask the API for all connected devices and there ID’s. But I can only guess.
The app is very light weight (aka user friendly :slight_smile: )

Did you find any solution to this problem?
I’m facing the same issue when trying to add the bridge from the PaperUI

Nope, I’ve contacted Grohe explaining that people that install this kind of tech also expect more and better functionality. But I don’t think that it will change anything.
If you read on the original programmers github page, you can see that Grohe have made som changes to the login that maybe is the cause.
Lets play the waiting game :man_farmer:

@rockit4
The binding is updated and avalible in the latest snapshot. Working fine to get the small Sence to send data to OpenHAB now :slight_smile:
But I can’t manage to get the main valve up.

Can you try yours?

Sorry but I’m running the stable 2.4 version of OH and there the updates of the Grohe binding isn’t available. Cant wait for OH 2.5 :slight_smile:

Hi,

I’ve OH 2.5 running and wanted to try the new Grohe Ondus binding. Unfortunately I failed to obtain the fresh token. I followed the guideline. But after pasting the URL ‘ondus://idp2-apigw.cloud.grohe.com/v3/iot/oidc/token?..’ in the browser I get a 404 “page not found” error message. Yes, I copied the full URL and replaced the ‘ondus://’ by ‘https’. What did I wrong?

Thanks