Xiaomi Robot Vacuum Binding

@Constantinos_Contis which version are you using? Suggest to use the 2.5.5 snapshot which has the fix for your issue.

This should be solved in the latest 2.5.5-snapshot build. Please test and confirm if it works now.

1 Like

This is fixed in the latest 2.5.5-snapshot build.
Please test of it fixed your issue

1 Like

Hallo Mischa,
This is fixed in the latest 2.5.5 -snapshot build. Please test and feedback

Hi everybody!
Is it possible to configure/command a specific zone cleaning with this binding ?
With which Xiaomi vacuum cleaner will it work ?
Thanks,
Alex

Forum search button is on the upper right.
One of those hits:

1 Like

sry, there is stille the same problem with openHAB 2.5.5 Build #111 on a debian (netinstall) vm.

java.lang.Error: Probable fatal error:No fonts found.

	at sun.font.SunFontManager.getDefaultPhysicalFont(SunFontManager.java:1236) ~[?:1.8.0_252]

	at sun.font.SunFontManager.initialiseDeferredFont(SunFontManager.java:1106) ~[?:1.8.0_252]

	at sun.font.CompositeFont.doDeferredInitialisation(CompositeFont.java:287) ~[?:1.8.0_252]

	at sun.font.CompositeFont.getSlotFont(CompositeFont.java:376) ~[?:1.8.0_252]

	at sun.font.CompositeStrike.getStrikeForSlot(CompositeStrike.java:82) ~[?:1.8.0_252]

	at sun.font.CompositeStrike.getFontMetrics(CompositeStrike.java:97) ~[?:1.8.0_252]

	at sun.font.FontDesignMetrics.initMatrixAndMetrics(FontDesignMetrics.java:359) ~[?:1.8.0_252]

	at sun.font.FontDesignMetrics.<init>(FontDesignMetrics.java:350) ~[?:1.8.0_252]

	at sun.font.FontDesignMetrics.getMetrics(FontDesignMetrics.java:302) ~[?:1.8.0_252]

	at sun.java2d.SunGraphics2D.getFontMetrics(SunGraphics2D.java:855) ~[?:1.8.0_252]

	at org.openhab.binding.miio.internal.robot.RRMapDraw.drawOpenHabRocks(RRMapDraw.java:343) ~[?:?]

	at org.openhab.binding.miio.internal.robot.RRMapDraw.getImage(RRMapDraw.java:405) ~[?:?]

	at org.openhab.binding.miio.internal.handler.MiIoVacuumHandler.getMap(MiIoVacuumHandler.java:478) ~[?:?]

	at org.openhab.binding.miio.internal.handler.MiIoVacuumHandler.lambda$5(MiIoVacuumHandler.java:451) ~[?:?]

	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[?:1.8.0_252]

	at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_252]

	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) ~[?:1.8.0_252]

	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) ~[?:1.8.0_252]

	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_252]

	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_252]

	at java.lang.Thread.run(Thread.java:748) [?:1.8.0_252

yuk… It is really a java issue :frowning: as the binding now looks for an available font and tries to use it. (if it comes to this place it already found an available font)

I’ll make a special version for you that avoids the issue and is bit more talkative on what is happening in your system, maybe we can make a fix that is acceptable by the code reviewers (as they did not like my simple fix of just ignore this error and proceed)

1 Like

Hello Marcel,
would it be possible to get this special version, too? Tried to install the fonts, no change.
Thanks for this great binding!

yes, @Sebastian73 @horschte you find it here:
It is talkative (in debug) about the found fonts and will proceed if error is there (it will still print the error message in debug though).

Let me know the results pls

I also started to get errors for my Roborock S5 in 2.5.4

[WARN ] [nal.transport.MiIoAsyncCommunication] - Error while polling/sending message
java.lang.ArrayIndexOutOfBoundsException: null
	at java.lang.System.arraycopy(Native Method) ~[?:1.8.0_242]
	at org.openhab.binding.miio.internal.MiIoCrypto.iv(MiIoCrypto.java:52) ~[bundleFile:?]
	at org.openhab.binding.miio.internal.MiIoCrypto.encrypt(MiIoCrypto.java:74) ~[bundleFile:?]
	at org.openhab.binding.miio.internal.transport.MiIoAsyncCommunication.sendCommand(MiIoAsyncCommunication.java:257) ~[bundleFile:?]
	at org.openhab.binding.miio.internal.transport.MiIoAsyncCommunication.sendMiIoSendCommand(MiIoAsyncCommunication.java:173) ~[bundleFile:?]
	at org.openhab.binding.miio.internal.transport.MiIoAsyncCommunication$MessageSenderThread.run(MiIoAsyncCommunication.java:232) [bundleFile:?]

In my case my S5 vacuum is not connected to the cloud and was never connected to it. I use it with valetudo. Can this cloud polling be disabled?

EDIT: Actually solved it myself. Edited things file and changed token as @kovaga suggested.

A log line appeared:

[INFO ] [g.miio.internal.cloud.CloudConnector] - No Xiaomi cloud credentials. Cloud connectivity disabled

Most probably it is enabled by default.

No… it just a message which is information that indeed the cloud login userId/password are not there, hence the binding is behaving as before without cloud related functionality (tokens/map).

In the latest snapshot this is changed to a debug message instead of info message, so you won’t see it anymore in the reglar log settings.

No. I mean this message started to appear periodically only when I made a change in the things file. Previously it shot Error while polling/sending message instead.

Marcel, can you please point me to the download link of the miio 2.5.5 jar

Same vacuum here (1S). I had some problems changing to the cloud service but after several attempts of deleting the Thing and readding it and restarting openHAB it finally worked:

Binding version:

261 x Active x 80 x 2.5.5.202005070400 x openHAB Add-ons :: Bundles :: Xiaomi Mi IO Binding

Debug log:

https://gist.github.com/sihui62/3d65ff4192cff0d8e9e53e8710aae0ab

Hi,

is anybody else getting a lot of threads stuck in TIMED_WAITING? I have the same issue as described here:

On a rpi3b+ with OH 2.5.4. - i have one Roborock S50 connected and my number of Threads exceeded 4000…
I tried clearing the cache and will see what’ll happen…

is there a way to make map bigger?At my 7" tablet i cant see anything… being longsighted cause i am an old guy ,doesnt help at all :slight_smile:

I was hoping/expecting this would be solved in from 2.5.4. before it could happen in case of connectivity issues, or on case of incomplete/wrong thing definition.

If you experience this, pls make a debug log for buy of longer time to see what is causing the restarting of the receiver thread.

It is prepared to allow for scaling, just did not make a field in the interface to set it. I may add that in a future release

Thanks for your quick reply! Something might be wrong with my installation, when I trigger actions and run the roborock, cpu load kept increasing rapidly.
I have reinstalled the binding and now we’ll see what happens. I keep you posted!