Miele Cloud-binding

Using the version shipped with 3.1.0 M5 I noticed the following:


← minor typo “you” vs " your"


← missing label, clearing the browser cache did not fix this

I’ll look into this :see_no_evil:
Thanks for reporting @eikowagenknecht!

1 Like

As some of you may have noticed, the binding has been merged recently and is now officially included in openHAB and already available through openHAB 3.1.0.M5 :tada:

When switching from any of the beta or release candidate versions please make sure to delete the beta / release candidate binding binary and reboot openHAB! Otherwise weird errors may occur. If you are switching from a beta version please also follow the migration instructions from the release candidate version.

1 Like

I use the binding for the first time. I have a Miele account since I bought a Miele coffee maker CM6360 with cloud connection.
Unfortunately I don’t understand, what I have to write into the field “@text/thing-type.config.mielecloud.account.email.label” of the bridge! The e-mail address from my Miele account don’t work.
It would be great, if someone can help me!

Hi @henryd! The documentation has exhaustive examples of how to configure the account. If you follow the instructions then you won’t have to manually populate the field. Please read and follow the instructions from the sections Discovery and Account Configuration Example from the documentation and report back if you encounter a problem.

Hi Björn,
Many thanks for your quick response! Now it works fine :smiley:!
I didn’t found the binding documentation via the link of the installed binding - its dead.
Bildschirmfoto vom 2021-06-02 11-16-41
Thank you very much for the great work with the binding!
Best regards and stay healthy!
Henry

1 Like

After switching from the beta to the version included in 3.1.0 M5 (beta removed, openhab restarted), I do get the following error when trying to open /mielecloud for authorization:

HTTP ERROR 500 java.lang.NullPointerException
URI:	/mielecloud
STATUS:	500
MESSAGE:	java.lang.NullPointerException
SERVLET:	org.ops4j.pax.web.service.spi.model.ServletModel-41
CAUSED BY:	java.lang.NullPointerException
Caused by:
java.lang.NullPointerException
	at org.openhab.binding.mielecloud.internal.config.servlet.AccountOverviewServlet.renderBridge(AccountOverviewServlet.java:113)
	at org.openhab.binding.mielecloud.internal.config.servlet.AccountOverviewServlet.renderBridgesIntoSkeleton(AccountOverviewServlet.java:94)
	at org.openhab.binding.mielecloud.internal.config.servlet.AccountOverviewServlet.renderBridges(AccountOverviewServlet.java:79)
	at org.openhab.binding.mielecloud.internal.config.servlet.AccountOverviewServlet.handleGetRequest(AccountOverviewServlet.java:69)
	at org.openhab.binding.mielecloud.internal.config.servlet.AbstractShowPageServlet.doGet(AbstractShowPageServlet.java:69)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:791)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:550)
	at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:71)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:602)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1435)
	at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:294)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1350)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
	at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:82)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
	at org.eclipse.jetty.server.Server.handle(Server.java:516)
	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:388)
	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:633)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:380)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
	at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:383)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:882)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1036)
	at java.base/java.lang.Thread.run(Thread.java:834)

Could someone give me hint on how to dig into this to maybe provide more detailed info for debugging?

Hi @holyibis! I assume you still have a bridge paired that was created with the beta binding. In that case the mandatory e-mail field is empty. Please add this field with any valid e-mail address as value to your things file or give it a value in the openHAB UI and try again. This might not be enough as the devices also have a mandatory configuration parameter now. The complete process is outlined in the migration notes from beta.5 to rc.1 here.

This pointed me in the right direction: Even though I updated the manual configuration in the things file as per the migration process, these changes were not taken over by openhab until I deleted the bridge in the openhab admin panel and restarted openhab. Due to this mismatch openhab did not read in the email field and the NullPointerException was thrown.

HI @BjoernLange

Will the latest release ( v1.0.0-rc.1) work as well with OH 3.1.0.M5? Somehow after an upgrade it seems not working anymore

Hi @shuo! As the binding is now bundled with openHAB I recommend to use the version that can be installed via the openHAB UI. What do you mean by “it seems not working anymore”? Do you get an error message?

I just installed Miele Cloud binding. Nice to see my brand new washing machine in OpenHAB. The new one replaced my previous Miele after 25(!) years of flawless operation.
Thanks for the binding!

Hello!

I updated to 3.1 stable, too, and now got the problem that i cant connect the bridge any more.

I deleted the old bridge, removed the .jar-file, stopped openhab service, cleared the cache, started the service again, installed the stable binding and then created a new bridge, but at auth i get the error 500:

HTTP ERROR 500 java.lang.NullPointerException
URI:	/mielecloud
STATUS:	500
MESSAGE:	java.lang.NullPointerException
SERVLET:	org.ops4j.pax.web.service.spi.model.ServletModel-45
CAUSED BY:	java.lang.NullPointerException
Caused by:

java.lang.NullPointerException
	at org.openhab.binding.mielecloud.internal.config.ThingsTemplateGenerator.createThingConfigurationTemplate(ThingsTemplateGenerator.java:101)
	at org.openhab.binding.mielecloud.internal.config.ThingsTemplateGenerator.createBridgeAndThingConfigurationTemplate(ThingsTemplateGenerator.java:68)
	at org.openhab.binding.mielecloud.internal.config.servlet.AccountOverviewServlet.generateConfigurationTemplate(AccountOverviewServlet.java:157)
	at org.openhab.binding.mielecloud.internal.config.servlet.AccountOverviewServlet.renderBridge(AccountOverviewServlet.java:142)
	at org.openhab.binding.mielecloud.internal.config.servlet.AccountOverviewServlet.renderBridgesIntoSkeleton(AccountOverviewServlet.java:94)
	at org.openhab.binding.mielecloud.internal.config.servlet.AccountOverviewServlet.renderBridges(AccountOverviewServlet.java:79)
	at org.openhab.binding.mielecloud.internal.config.servlet.AccountOverviewServlet.handleGetRequest(AccountOverviewServlet.java:69)
	at org.openhab.binding.mielecloud.internal.config.servlet.AbstractShowPageServlet.doGet(AbstractShowPageServlet.java:69)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:791)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:550)
	at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:71)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:602)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1435)
	at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:294)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1350)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
	at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:82)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
	at org.eclipse.jetty.server.Server.handle(Server.java:516)
	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:388)
	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:633)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:380)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
	at org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.onFillable(SslConnection.java:540)
	at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:395)
	at org.eclipse.jetty.io.ssl.SslConnection$2.succeeded(SslConnection.java:161)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
	at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:383)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:882)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1036)
	at java.base/java.lang.Thread.run(Thread.java:829)

Powered by Jetty:// 9.4.40.v20210413

I had the same issue today after migrating from 3.1.0-SNAPSHOT to 3.1.0.

Make sure all things related to the binding (bridge and Miele devices) are removed. For me removing the things left them in a permanent „removing…“ state. I had to delete them a second time, after which they were gone from the UI for good. I then could suddenly access the /mielecloud URL again. No restart of openHAB or the binding was necessary.

Just installed OH 3.1 with Mielecloud. 2 of my XGW3000 gateway connected devices are not visible in the cloud :
Combi-oven met microgolven Type H6800BM Elektronische software-ID 3452
Combi-stoomoven Type DGC6805 NL Elektronische software-ID 3750

Fridge and Coffeemachine are detected and working/changing status.

On my gateway they are visible, rebooted everything, doesnt change.

Devices also do not show in the new Miele App on IOS… reported as issue to helpdesk.

There are two Miele bindings. For XGW3000 gateway connected devices you probably need to use Miele@home - Bindings | openHAB. The cloud binding is for newer devices that don’t need the gateway at all.

Thanks for this hint!

I tried it out and can now access the /mielecloud for a new pairing. But now i got the problem, that i get a validation error (wrong format) at the email-form. Checked the filled in adress several times, but there seems to be an error?

The Miele@Home binding does not detect/support my Coffeemachine.
Also the iOS apple app does rely on the cloud connection and is also not showing the 2 devices since last couple of days.
Furthermore, with 3.0 and the pre-release all devices were working in the cloud (couple of weeks ago).
So, there seems to be a cloud connection issue.

Hi @e36Alex, I set the e-mail validation a little bit too strict and fixed it today. For a temporary workaround see my post here. The PR and tracking issue can be found here and here.

1 Like

Thank you, worked fine for me.