Regarding Robot Vacuum Control

Hi,
I’m thinking to buy a Proscenic 811GB robot vacuum cleaner. Can anyone tell e whether this will be controllable via hass.io?

Regards,
Dave

I have actually ordered the Proscenic 811GB and it should arrive sometime this week. I’m still new with hass.io but i will try my best and give you an update.

ok so it arrived today and i googled a bit, it is possible to controll it with http or udp packages
udp:
here
and here
and here

for http you have to get a bit more creative but you can do more with it. I used Charles Proxy to analyze the html traffic of the smartphone app and was able to create a curl command to output every detail you can find in the app (like battery, firmware, status).

hope this helped you a little

1 Like

After a long google-ing i found python script for controlling some basic functionality …
https://github.com/markomannux/pyproscenic/blob/master/proscenic/proscenic.py
I hope some of the gurus here to create a “plugin” for it, just like for the Xiaomi robot one, because Proscenic is even smarter and it will soon flood the market. Especially with a price of 199$ for US in AliExpress (for the 790T wich is their best model for now).
I ordered one 790T, but it is still in transit status …

Why don’t you share the links (and all of your progress)? I think this could help the developers to introduce an official platform for Proscenic, which provides more controls and information …

i just wrote some little bash scripts so far and implemented them in node-red for now
but sure, i will share what i’ve got so far
like i mentioned you have to use some tool like chales Proxy to get the cookie for the curl command

curl -H 'User-Agent: blapp' -H 'Accept-Language: en' -H 'Accept: application/json' -H 'IsLogin: 1' -H 'Cookie: <youre cookie string here>' -H 'Host: bl-app-eu.robotbona.com' --data "nonce_str=<youre data string here>" --compressed 'http://bl-app-eu.robotbona.com/baole-web/index/getMyDefaultRobotInfo.do'

so this will get us the json with all the current information about the little robot
the json looks something like this (i removed some of the data for obvious reasons)

{
    "data": {
        "robot": {
            "authCode": "<hidden>",
            "battery": "100",
            "cameraUid": "<hidden>",
            "deviceId": "<hidden>",
            "deviceIp": "",
            "devicePort": "",
            "firmwareVer": "{\"esp32\":\"1.0.36\",\"mcu\":\"2.4.139(500)\"}",
            "funDefine": "",
            "map": "0",
            "param": "",
            "robotId": "<hidden>",
            "robotImg": "http://baole-release.robotbona.com/7c030ac59f5e4b258725982a2616d9f8.png",
            "robotModel": "811GB",
            "robotName": "proscenic robotic 811GB",
            "updateMode": "",
            "updateModule": "",
            "updatePro": "",
            "workState": "6"
        },
        "update": {
            "isNeedUpdate": "0"
        },
        "workRecords": [
            {
                "clearArea": "0",
                "clearId": "<hidden>",
                "clearSTime": "<hidden>",
                "clearTime": <hidden>
            },
            {
                "clearArea": "0",
                "clearId": "<hidden>",
                "clearSTime": "<hidden>",
                "clearTime": <hidden>
            },
            {
                "clearArea": "0",
                "clearId": "<hidden>",
                "clearSTime": "<hidden>",
                "clearTime": <hidden>
            },
            {
                "clearArea": "0",
                "clearId": "<hidden>",
                "clearSTime": "<hidden>",
                "clearTime": <hidden>
            }
        ]
    },
    "msg": "ok",
    "result": "0",
    "version": "1.0.0"
}

clear time is in secounds and clearSTime is the start time with date (yyyy-mm-dd hh:mm:ss)
i still havn’t figured out all modes, but so far i know the following: 0 = does nothing, 1 = working, 5 = charging
what is interesting is the fact that its based on a esp32/nodemcu and could in theory be flashed with custom firmware.
i periodically let the bash script store the json file in a ramdisk and from there i have several other scripts i can run (monitoring battery, current mode, how long the last clean was,…). I also use a telegram bot to start, stop and get the battery lvl of the robot because you can only use the app on one device at a time and we are multiple ppl in this house. My next step will be to put everythin in a single python script which is easy to use.

I will post if i have found other things i can do with it.

Try this one:

1 Like

Hello,
Posting to follow the topic. I am trying to use the same kind of protocol for my 790T.
First, thanks for the bl-app-eu.robotbona.com url, I was only able to find the IP of the Proscenic server (47.91.67.181).
Regarding Json data, I was able to find it using a sniffer on the app. It seemes to be the same synthax for both 811gb and 790t:

variable cmd = 0

  • prop authCode = xxxx
  • prop deviceIp = 192.168.1.X
  • prop devicePort = 1234
  • prop targetId = yyyyy
  • prop targetType = 1
    variable seq = 0
    object value :
  • prop transitCmd = 100

And for the mopping rate:
variable seq = 0
objet value :

  • prop transitCmd = 145
  • prop waterTank= 60 OR 40 OR 20

For now, I am trying to execute the Json command to start (basically) the robot, but only face failures:
synthax should be something like:

type=command&param=control&authCode="xxx"&deviceIp="192.168.1.X"&devicePort="1234"&targetId="yyyyy"&targetType="1"&type=seq&param=value&transitCmd="100"

I guess the cookie you are talking about is the first request I saw, sending the information to the robot containing the appKey, token, userId etc, right?

Hello guys,

After a long time i find this integration. But i can’t find the Local_Key. i have also 790t.