drbytes / RobomowRemoteControl

This repo holds the results of my tinkering with the Robomow RS615u BLE interface, it should work across other bluetooth enabled Robomow machines.
33 stars 10 forks source link

Did you figure out how to send a start mowing Zone A or Subzone 1? #5

Closed frankhommers closed 4 years ago

frankhommers commented 4 years ago

Did you figure out how to send a start mowing Zone A or Subzone 1 command?

frankhommers commented 4 years ago

Figured it out myself! ;-)

mattncsu commented 4 years ago

How?

reelman commented 4 years ago

Figured it out myself! ;-)

Please share how 🙂

frankhommers commented 4 years ago

I captured the communication using Android Bluetooth Snooping and running the standard app. The I loaded the hci_snoop log in WireShark. Then trying to find the right packet. And for my RS it's this the command to Mow Subzone 1: 0xAA, 0x09, 0x1F, 0x15, 0x00, 0x1B, 0x02, 0x03, 0xF8

MikeKnife commented 4 years ago

The commands for mowing are as following:

Mowing Main | aa 09 1f 15 07 94 02 00 (7e) Mowing Subzone1 | aa 09 1f 15 07 94 02 03 (7e) Mowing Subzone2 | aa 09 1f 15 07 94 02 04 (7e) Mowing Subzone3 | aa 09 1f 15 07 94 02 05 (7e)

Edge&Mowing Mowing Main | aa 09 1f 15 07 94 01 00 (7e) Edge&Mowing Subzone1 | aa 09 1f 15 07 94 01 03 (7e) Edge&Mowing Subzone2 | aa 09 1f 15 07 94 01 04 (7e) Edge&Mowing Subzone3 | aa 09 1f 15 07 94 01 05 (7e)

(replace 7e with the proper chksum-byte) (07 94 is the current msg-no)

Mike Knife

pergolafabio commented 3 months ago

Hey @frankhommers , you you know the command to activate the blades when you are manually moving the mower?

MikeKnife commented 3 months ago

Hi pergolafabio! We have analized almost every command usable for the RC308. As far as I know, most commands are similar in the RS movers. Most memory locations are different though. You have to check it out. I think I have the commands for going (with and without blade running) for the RS somewhere. I have to find it.

For the RC the command string is "aa 0a 1f 1a 10 00 64 00 00" +CKS 10 is a counter; the higher nibble is counted up for every time next command (-> 20, 30, 40...)
To activate the blade you have to set bit 2 of the lower nibble. -> (12, 22, 32...) The next byte "00" is the direction (angle / 2) and 64 = (dec 100 %) is the speed. Mike Knife

pergolafabio commented 3 months ago

Aha , interesting, I am using the ESP32 integration, but the only command not available in that project was the blades.... Im using also an RC model... What project are you using?

MikeKnife commented 3 months ago

Hi pergolafabio! We built a remote unit to move and mow manually with a joy stick some years ago and I thought it was for the RS,, but unfortunately it was for an RC. As a) I don't have an RS available here and b) I do not have an old smartphone with a ble snoop function (Samsung disabled the ble-snooper since Android version 7 or so - at least that is what I believe), I cannot check the command for the RS even if I had an RS. Although the implementation is most likely very similar, there is no garantee that is implemented in exactly the same way.

MikeKnife commented 3 months ago

Oh sry, I got it totally wrong. I thought you are asking for the RS commands. Ok, the RC is an open book now - althougt I did not work on that thing anymore. My RC is still running but as soon as it quits working I will probably switch to Luba 2.

pergolafabio commented 3 months ago

I also use an RC

Im using this project, works very good!

https://github.com/MortenVinding/Robomow-ESP32?tab=readme-ov-file

It's based on someone who created it on German forums... I have integrated it now to Home Assistant...

Do you have your project somewhere?

MikeKnife commented 3 months ago

When I developed my Interface there was nothing similar out yet. This is the IF I developed. WROVER-B-Top-View-2

pergolafabio commented 3 months ago

I try to implement that code for the blades into that bin firmware file, something for to look at . I hope it's simple:-)

MikeKnife commented 3 months ago

I also programmed a control program for the PC. But I never published anything!

pergolafabio commented 3 months ago

Seems not a lot of people are using the Robomow anymore, kinda old... But mine is still working, and I love to have an integration into Home Assistant

MikeKnife commented 3 months ago

I understand. Here different windows for controlling the RC from my PC. It connects to the interface via Telnet.

RM-RC-Interface-Windows

The main window is the one on the upper left.

pergolafabio commented 3 months ago

Wow , looking nice đź‘Ť Looks indeed very similar to the esp project

MikeKnife commented 3 months ago

Ok, actually it was not quite that simple. As I started at point Zero, I had to analize all the commands via ble-snoop and wireshark (the way as frankhommers probably did). After some time I realized how the memory map in the RC was organized. From that on it was a bit easier. But I did not put much effort in it sinsce the last years.

Yes, as you said. Robomow has lost touch with mower development. And if they don't come out very soon with a very new and skillful design, they are probable gone from the market sooner or later.

MikeKnife commented 3 months ago

By the way: the first disign (without BLE, just connected via RS232) was with a WEMOS D1 mini pro. It was shaped in a way that I could just plug it into the RS232 connector. The ESP32 was to big for that so I had to use a cable if I wanted to connect via RS232. Robomow-RC308-WLAN-Interface-2020 (red)-a

On of the first prototypes: 20190213_091051

pergolafabio commented 3 months ago

hey @MikeKnife

If you can find the commands for RS models to turn on the blades, can you share it? i can maybe ask the owner of the ESP project to include them

thnx in advance

MikeKnife commented 3 months ago

As I wrote 20 hours ago:

As a) I don't have an RS available here and b) I do not have an old smartphone with a ble snoop function (Samsung disabled the ble-snooper since Android version 7 or so - at least that is what I believe), I cannot check the command for the RS even if I had an RS. Although the implementation is most likely very similar, there is no garantee that is implemented in exactly the same way.

I am sorry that I cannot help here, but I promise to ask around if anyone has the info on this topic.

MK

pergolafabio commented 3 months ago

Ok, sorry , I misread cause you also said:

I think I have the commands for going (with and without blade running) for the RS somewhere. I have to find it.

MikeKnife commented 3 months ago

Sry, I am a bit busy but just got a response from a friend. He said that the commands for going with and without mowing are the same for both RC and RS. mk be back later

MikeKnife commented 3 months ago

Ok - I am back. Anything else I can help you with? Do you need more info about how to construct the msg? MK

pergolafabio commented 3 months ago

yeah, that would be great STill finding a way how to send a 'custom' command using the ESP integration

MikeKnife commented 3 months ago

OK. I don't know what you mean by "ESP integration". As I said, I developed everything on my own long time ago. So I am not up to date what others did in the meantime. But for the RC I can tell you what is in most of the memory locations and how to request and send data from and to the rc mainboard-memory. I also have a few memory locations of the RS version. But that is by far not complete. As as said: I do not have an RS here. (I had one here for a few weeks years ago and did some tests but as I did not intended to use one I did no thorough research. As far as a can remember, the memory dump works the same on the RS I could dump it after every config change to see, which location is affected, but that is a very long and arduous job.

MK

MK

pergolafabio commented 3 months ago

For info: I'm using this one, he created an image file for esp32, very easy to program and to use... https://www.skyynet.de/mowgli_connect.php

pergolafabio commented 3 months ago

But he didn't publish the code, someone else is creating a new project based on MQTT

https://github.com/TheCutter/RoboMow2MQTT

But still in early development

MikeKnife commented 3 months ago

BTW: The message counter (byte 5 and 6) is not really relevant. It is mainly used to assign a ACK msg from the RC to the respective command inside the APP. I am using the msg nr to identify responses for other purposes.

Basic msg structure:

Screenshot_1

MK

pergolafabio commented 3 months ago

Indeed , you spent a lot of time on your project!! Do you also have it integrated it to Home Assistant or Openhab ?

Do you want to share the code?

MikeKnife commented 3 months ago

I did not really integrated it into any home automation system. I am using homematic here in combination with iobroker. The only thing I did, was sending some alarm voice/tone through the homematic info-hub if the RC brings up an error msg. I definetely could do something more but my PC-Prgm does everything I need (and the pc is running all day anyway), so there are no plans to do more integration work.

The concept of mähspitzel is a total different one. It basically uses the maintenance interface and put the data on a web page - as far as I do recall. The other one I don't understand. It needs lots of time to analize what he is doing. And I will definetely not spend that much time for it - especially as my systems works well, does not need any improvement and the usage is time limited anyway, as probably next year I will switch to something like luba 2. MK

pergolafabio commented 3 months ago

Homematic I don't know.. I'm addicted to Home Assistant :-)

I had a look yesterday to Luba when you mentioned ir, but looks expensive... For now I'm happy with the RC306

I bought the RX last year for my grandparents, and it's much better then RC. Much lighter, so it steers better

MikeKnife commented 3 months ago

OK, I understand. Homematic is a german company, that provides components and interfaces to almost everything you can think of. But it is also rather expensive. https://de.elv.com/search?sSearch=homematic (100s of components) You can integrate (with small adapter boards) e.g microswitches or send telnet commands, check via ping if a system is reachable or programm complex programs.

And yes: luba 2 is expensive. The small one (for max 1000 m^2) costs a bit over 2000 Euro. But as far as I know it is one of the better ones. No wire necessary.

MikeKnife commented 3 months ago

I never dived into home assistent. That is basically an integration tool, a bit like iobroker, right? But then you need the components from different brands so it is not garanteed that those can comunicate directly with each other as homematic can (but does not need to). Lots of things are done in programms running on the ccu (usually raspberry pi 3 or 4 based).

pergolafabio commented 3 months ago

No, home Assistant connects with everything that you can think off, its has a lot of integrations, once you added the integrations, you can let them work together... The nice thing is that you can create an app for Android/iphone very fast

It's a big community, every month a huge update to integrate new hardware

I think it's one of the biggest automation system that exist

MikeKnife commented 3 months ago

Maybe I should have a closer look at it. But then i would likely have to change all the components because I doubt that it can communicate with homematic. It uses a proprietary communication protokoll - also for security resasons, as it also deals with door and window openers. And again: I have not seen any hw vendor who e.g. offers complete floor heating controllers. Or regular or changeover switches or blind switches with adaptors, so it has the identical look as the regular power sockets or light switches. MK

pergolafabio commented 3 months ago

Offcourse it can:

https://www.home-assistant.io/integrations/homematic/

MikeKnife commented 3 months ago

No, that is not the same. There you have the homematic control center (CCU) that does basically all the work. And then the CCU provides an xml interface, so you can access the data and set values from the outside. That is used by cellphone apps and I also use it for some purposes. (like iobroker) But first you have to integrate every device into the CCU, which does the communication with the components.

MikeKnife commented 3 months ago

I think if we want to continue the comunication we should switch to personal mail. what do you think?

pergolafabio commented 3 months ago

Are you on discord? But going to sleep now :-) 23:20 here

MikeKnife commented 3 months ago

No, we use only jabber within a small group here - nothing else. OK - then good night for now. We can share more information if you like. I am online most of the day until midnight (or later sometimes) I was just looking how to send personal mails, but could not find the option here. strange. mk

mattncsu commented 3 months ago

I did not really integrated it into any home automation system. I am using homematic here in combination with iobroker. The only thing I did, was sending some alarm voice/tone through the homematic info-hub if the RC brings up an error msg. I definetely could do something more but my PC-Prgm does everything I need (and the pc is running all day anyway), so there are no plans to do more integration work.

The concept of mähspitzel is a total different one. It basically uses the maintenance interface and put the data on a web page - as far as I do recall. The other one I don't understand. It needs lots of time to analize what he is doing. And I will definetely not spend that much time for it - especially as my systems works well, does not need any improvement and the usage is time limited anyway, as probably next year I will switch to something like luba 2. MK

I'm still following this discussion even though I sold my RS630 for the original Luba. I don't think you'll be disappointed!