Connecting Vorwerk Kobold VR200 to openHAB2

Tags: #<Tag:0x00007fc1fea8c830> #<Tag:0x00007fc1fea8c6c8> #<Tag:0x00007fc1fea8c5d8>

For those who want to connect the Vorwerk Kobold VR200 to openHAB2, this is a summary of another topic regarding to the Neato BotVac, where @fatman42285 pointed out to his solution for VR200.

As I understand, @fatman42285 further developed a existing botvac-binding so one can control also the VR200 which seems to be pretty much the same as a BotVac.

This is how I did it.

My system is:

  • RaspberryPi 3
  • openHABian Configuration Tool [master]v1.3-291(308a39f)
  • openHAB 2.1.0~20170507040348-1 (Build #909)
  • Karaf-Console

Step 1: Ask @fatman42285 to send you his jar-file. Edit: Download the pdf-file from here: (Thanks to @Giga522!)

Step 2: I got a pdf-file, which had to be renamed to *.jar

Step 3: Copy the jar-file into /usr/share/openhab2/addons (Trying to do this with WinSCP, I got a permission denied error which I solved by doing sudo openhabian-config > Improvements > Fix Permissions.)

Step 4: Restart your system.

Step 5: Login to karaf-consol to check if the binding has been installed: ssh openhab@localhost -p 8101 > yourpassword.

Step 6: List the installed bundles: bundle:list. You should see the Neato Binding.
Edit 9. Dez. 2017: Doing this with openhab version 2.2 the status of Neato Binding don’t change to Active, it stays Installed. To fix this you have to do feature:install openhab-runtime-compat1x. Thanks to @Giga522!

Step 7: Go to the PaperUI > Configuration > Bindings. You should see the Neato Binding.

Step 8: Open the CONFIGURE dialog and typ in e-mail address and password of your “Vorwerk Kobold VR200”-account. In the field VENDOR type in Vorwerk

Step 9: In PaperUI go to Inbox > + (Choose Binding) > Neato Binding and start auto-discovery.

Step 10: Your VR200 should be discovered as a Neato Vacuum Cleaner.

Step 11: Click on the hook (ADD) and rename as you like and click on ADD AS THING.

Step 12: In PaperUI go to Configuration > Things and select your vacuum cleaner.

Step 13: If you want to configure your items by item-file, like I did, create a file yourcleanername.items and add the following items:

// VorwerkVR200

Group gVorwerkVR200					

Number	VorwerkVR200_BatteryLevel	"Ladezustand [%.0f %%]" <battery>	(gVorwerkVR200,gVorwerkVR200_BatteryLevel_Chart)	{channel="neato:vacuumcleaner:xxxxxxx-xxxxxxxxxxxx:battery-level"}	// Battery Level of the vacuum cleaner.
String	VorwerkVR200_CurrentState	"Status [%s]" (gVorwerkVR200)	{channel="neato:vacuumcleaner:xxxxxxx-xxxxxxxxxxxx:state"}	// Current state of the vacuum cleaner.
String	VorwerkVR200_Version		"Version [%s]" (gVorwerkVR200)	{channel="neato:vacuumcleaner:xxxxxxx-xxxxxxxxxxxx:version"}	// Version of the vacuum cleaner.
String	VorwerkVR200_ModelName		"Modell [%s]" <keyring>	(gVorwerkVR200)	{channel="neato:vacuumcleaner:xxxxxxx-xxxxxxxxxxxx:model-name"}	// Model Name of the vacuum cleaner.
String	VorwerkVR200_Firmware		"Firmeware [%s]" (gVorwerkVR200)	{channel="neato:vacuumcleaner:xxxxxxx-xxxxxxxxxxxx:firmware"}	// Firmware version of the vacuum cleaner.
String	VorwerkVR200_CurrentAction	"Aktion [%s]" (gVorwerkVR200)	{channel="neato:vacuumcleaner:xxxxxxx-xxxxxxxxxxxx:action"}	// Current action of the vacuum cleaner.
Switch	VorwerkVR200_DockHasBeenSeen	"Position der Basis ist bekannt [%s]"(gVorwerkVR200)	{channel="neato:vacuumcleaner:xxxxxxx-xxxxxxxxxxxx:dock-has-been-seen"}	// True or False value if the dock has been seen
Switch	VorwerkVR200_IsDocked		"In Basis [%s]"(gVorwerkVR200)	{channel="neato:vacuumcleaner:xxxxxxx-xxxxxxxxxxxx:is-docked"}	// Is the vacuum cleaner in the docking station?
Switch	VorwerkVR200_IsScheduledEnabled	"Zeitplan aktivieren"(gVorwerkVR200)	{channel="neato:vacuumcleaner:xxxxxxx-xxxxxxxxxxxx:is-scheduled"}	// True or False value if the vacuum cleaner is scheduled for cleaning.
Switch	VorwerkVR200_IsCharging		"Wird geladen [%s]" (gVorwerkVR200)	{channel="neato:vacuumcleaner:xxxxxxx-xxxxxxxxxxxx:is-charging"}	// Is the vacuum cleaner currently charging?
String	VorwerkVR200_Error		"Fehler [%s]" (gVorwerkVR200)	{channel="neato:vacuumcleaner:xxxxxxx-xxxxxxxxxxxx:error"}	// Last error message in system.
String	VorwerkVR200_SendCommand	"Kommando "(gVorwerkVR200)	{channel="neato:vacuumcleaner:xxxxxxx-xxxxxxxxxxxx:command"}	// Send Commands to Vacuum Cleaner. (clean, pause, resume, stop, dock)
String	VorwerkVR200_VacuumCleanerName	"Name [%s]" <vorwerk2>		(gVorwerkVR200)	{channel="neato:vacuumcleaner:xxxxxxx-xxxxxxxxxxxx:name"}	// Name of the vacuum cleaner represented by this Thing.
String	VorwerkVR200_CleaningCategory	"Modus [%s]" (gVorwerkVR200)	{channel="neato:vacuumcleaner:xxxxxxx-xxxxxxxxxxxx:cleaning-category"}	// Current or Last category of the cleaning. Manual, Normal House Cleaning or Spot Cleaning.
String	VorwerkVR200_CleaningMode	"Intensität [%s]" (gVorwerkVR200)	{channel="neato:vacuumcleaner:xxxxxxx-xxxxxxxxxxxx:cleaning-mode"}	// Current or Last cleaning mode. Eco or Turbo.
String	VorwerkVR200_CleaningModifier	"Modifikator [%s]" (gVorwerkVR200)	{channel="neato:vacuumcleaner:xxxxxxx-xxxxxxxxxxxx:cleaning-modifier"}	// Modifier of current or last cleaning. Normal or Double.
Number	VorwerkVR200_SpotWidth		"Spot Breite [%s]" <movecontrol>	(gVorwerkVR200)	{channel="neato:vacuumcleaner:xxxxxxx-xxxxxxxxxxxx:cleaning-spotwidth"}	// Current or Last cleaning, width of spot. 100-400cm.
Number	VorwerkVR200_SpotHeight		"Spot Länge [%s]" <movecontrol>	(gVorwerkVR200)	{channel="neato:vacuumcleaner:xxxxxxx-xxxxxxxxxxxx:cleaning-spotheight"}	// Current or Last cleaning, height of spot. 100-400cm.

Step 14: Restart your system.

Step 15: In PaperUI go to Control > Other. Your vacuum cleaner should appear here with all configured items.

That’s it.
Notes, corrections and additions are always welcome.

5 Likes

Interesting!

I’m confused about the jar file: @fatman42285 is a public download of the jar available? Ideally a GitHub repository? What about this one? You can always upload new bindings to the Eclipse IoT Marketplace
Did you consider adding your binding as an official openHAB binding?

@fatman42285 would you mind to post a download link for your binding? if not, would you send me a direct message with a link?

Hi bsteinert,

unzip the file from attachment and copy/move it to the addons directory.

have fin
Bernd

I’m sorry, but unfortunately i don’t see an attachment. :frowning:

Hi bsteinert

please send me your email adress, i will share the file on icloud.

Bernd

Maybe somebody else is searching for the modified vorwerk .jar file. I have attached the link to it.

fatman42285, vorwerk-file:

Hi, can somebody help? I have inserted my Vorwerk-Credentials but got a “Not allowed” in the Event-Log.

2018-02-26 23:39:28.036 [INFO ] [b.binding.neato.handler.NeatoHandler] - {"message":"Not allowed"}

2018-02-26 23:39:28.040 [INFO ] [b.binding.neato.handler.NeatoHandler] - Authentication Response: {"message":"Not allowed"}

Are you sure your credentials are right? Test it with the original Vorwerk app.

OMG I’m so sorry. Layer8 Problem :slight_smile:
The Vorwerk Account is an other PW than the App Account. Now it works. Thank you!

Hello all,

tried to connect my VR200 using the modified binding described above. Auto discovery does not work. To add the thing manually is possible but then after setting the robot supplier to Vorwerk the thing configuration screen (PaperUI, see below) requires 2 more values instead of none as described above before the thing can be added:

  1. Serial, is this the serial number of the machine?

  2. Secret_key, how can i get this?

Are serial and secret required or not? Every input leads to a response that the adress is wrong?

Also recognized that the http:// adress for the Vorwerk cloud server which is implemented in the binding is different to the one i see if i activate the Vorwerk skill in Amazon Alexa. There it is beehive.ksecosys.com instead of nucleo.ksecosys.com/...as within the binding. Is this model/firmware dependent or might i have an old version of the binding? Use openHAB2.4.0, build #1346 under Windows10.

Does this binding actually work out for anybody? Appreciate every hint.

Thanks,

Willi

1 Like

Thanks for this setup. It’s working perfect for me. I’ve gont one question. How can i implement all states to the openhab panel? do i need a special widget?

again thanks and have a nice day

Hey,

thanks for all. But i have the Problem that the Cleaner is not going online… it stands only on offline!
How can i fix that?

Best regards

@fatman42285 @Giga522 Hello Bernd & Jan! Is there an updated version of the vorwerk binding that will work with OH2.4?

I really do not know it if it will work with 2.4. I am still using 2.3 without a problem. But when I have more time and @fatman42285 is not interested anymore in updating the app for Vorwerk, i will try to update the neato app, if nobody else is doing it :wink:.

You can proceed like every other Item. Nothing special here.

Thank you for your help with this! Should we add the changes to the original binding and bring them to the main repo? Because the the binding is under active maintainance, that should fix issues longterm… (if not neato/vorwerk will change something that the api is not comaptible any more)

Yeah you are right. Maybe we send them the vorwerk file that they officially support it in the future.
I do not think that they have to change too much to support it. If you know how to contact them could you do it?

i have opened an issue at github.

EDIT:
our issue is fixed. In the next openhab version we do not have to use the modded version anymore!

when you are still interested:

@Giga522 you may take a look at my implementation here:
https://github.com/Pavion/openhab2-addons/releases/tag/2.4.0.NEATO.1 (diff)
This is a fork of the current Neato Binding with added vendor option. Unlike the old version (origin here afaik), now the account Thing (with vendor supplied) has to be added first. Available vacuum cleaners should then be discovered automatically. Cleaner Thing UID should stay the same, allowing for old Items to be kept.
I’m running a long time test now, keep me posted if you’re willing to test (no guarantees though :slight_smile:)

2 Likes