Robomow binding

Is there someone who owns a Robomow (pro) and is working on a binding?
By default the mower connects via BT to the smartphone but the pro versions have a GSM module, so you can use the app everywhere. (GSM module can be bought for every model afterwards)
For the smallest model (RX20) there is also a webinterface (myrobomow).

I’m thinking of buying the RC304pro and it would be nice to integrate it in openHAB :slight_smile:

edit: with the gsm module, you can NOT use the app everywhere. You will only receive notifications when somebody moved the mower out of your area or when the mower stops during it’s activity

Unfortunately the robomow doesn’t provide an API
And a quick look at the hack thread lead to nowhere.

There seem to be a github repo for a robomow python app but it is undocumented

I noticed that MyRobomow (beta) is now available for all devices with GSM module.

The main information is an activity log. Also displayed: last working day, total distance covered & the amount of CO2 saved.

Maybe someone can interact with the website? :slight_smile:

I was able to run the APK of the android app through a decompiler (http://www.javadecompilers.com) and get the java source, including for the BLE communication. Someone with java and C experience could probably use the java BLE code to program an ESP32 to extract info from the robot and publish it somewhere using a wifi, lora, or cellular link. While there aren’t any comments in the decompiled code, the variable names and log messages are descriptive enough to get a good idea about what is going on.

Nice work!
Did you tried this whith the new app (v2.0) or the old one?

I’m still using the old one, because all settings of the mower itselves are not in the new one.
Since they introduced the new module RoboConnect+ (https://www.robomow.com/en-GB/products/accessories/) they are doing most of the traffic over their own servers and not via BLE. eg when looking up the history, the app get’s it from the myRobomow if I’m correct. A good evolution I think.
So is it not possible to use the website as source? https://myrobomow.robomow.com

I wondered about that. I did take a look a while ago at some of the calls it makes and I suspect we should be able to get access to the operation data but that is all that’s available at the moment (at least for me).
At this stage it wont allow control of the mower.
BTW there is an update to the Robomow 2.0 app that adds back some of the settings so things are moving forwards. Could be interesting to see if we could connect and extract information from the BLE and make it more readily available. At the moment I don’t have time to look at either route.
I don’t have a RoboConnect+ so not sure if that would improve the control you can get from the myrobomow pages?

I have a RC pro model of 2018, so it has BLE & a SIM slot to communicate with the Robomow servers and sent notifications. Since they introduced myRobomow, I can also see the ‘operation history’ online.
I know that the RX pro models and all other models with RoboConnect+, can also see and modify the schedule and start stop the mower.
It’s sad that I need to buy a new module of €300 to support all future features :frowning: But off course it’s all nice to have. The mower does what it needs to do and I’m already happy that I receive a notification when the mower starts / has an issue.

I got the ts615. As a developer and tinkerer I went through the BLE code to see whether I could make my own android app and throw a phone in the bot. I have nice wifi coverage around the yard. It works… I can control it, send move commands and engage the cutting blades. Still need to work on battery info etc. Iniate a mow cycle and such was just added. I added raw socket telnet server to issue commands. Currently working on a way to add it to homeassistant. Will opensource it somewhere down te road.

Here you go, it’s still early work but you can start tinkering with it.

I like this approach a lot. So possibly any ble device could work, like a pi ?

Yes. I have connected to the robomow using an android and a Pi3. See the nodejs implementation on Github for a working example.

Nice! I am working on implementing a controller based on an esp32. (Using ttgo T-beam board from aliexpress, which also includes gps and lorawan. Costs about €15)
Plan is to connect to robomow via Bluetooth, then to MQTT server via WiFi, using Homie protocol, which will allow integration with openhab. The gps and lorawan can be used as tracking in case of theft.

Still early days, but wifi, mqtt, gps and lorawan are up and running. Now moving on to BLE, so your Android reverse engineering efforts are very useful to me.

2 Likes

That sounds like a cool project. I might actually look into this as well. Are you going to share the code ?

I will share the code via GitHub once it is at least largely functional. Will still be a couple of weeks i guess.

Hi, looks like a great project. Which frequency did you bought? 433Mhz, 470Mhz, 868Mhz or 915Mhz? (eg https://www.aliexpress.com/item/32875743018.html)

I am in Europe so 868

@arjanmels & @drbytes : looks great, I looked into connecting to the mower a few years ago, but without succes. Nice to see that people with more skills are succeeding!
Will it be able to get data (running, battery status, …) from the mower?

@promy yes, I am already able to get the most relevant status days. Now working on controlling (disabling schedule, stop, return to home) and stabilizing the code. It uses mqtt with Homie protocol so is auto discoverable by OpenHab.

Will take a couple of weeks before I can put a version on GitHub.

1 Like

@arjanmels Great! Looking forward to testing it!! Is it connected via 868Mhz or also via Wifi (the ttgo T-beam board can do both :wink: )

Connected via BLE to the Robomow, via wifi to your local network to a MQTT server of choice, via Lorawan (868Mhz or other depending on exact board) to network of choice (e.g. The Things Network, which also supports MQTT) but due to bandwidth limits this will only send a subset of data and does not allow control and it also uses GPS to retrieve its position.

(I am looking into serial connection instead of BLE if needed for added robustness and to allow the normal phone app to still function.)