dorita980 icon indicating copy to clipboard operation
dorita980 copied to clipboard

v3.20.7 position missing

Open crissmil opened this issue 3 years ago • 40 comments

Roomba S9+ after v3.20.7 no "pose" data available

crissmil avatar Nov 08 '21 09:11 crissmil

Today also my Braava m6 updated to v3.20.7 and "pose" data disappeared. Any ideas?

crissmil avatar Nov 11 '21 09:11 crissmil

Same here with i7

SKB-CGN avatar Nov 13 '21 22:11 SKB-CGN

Same here. Tried to read the MQTT-Data, but the position is not updated to the MQTT server.

Did anyone already recorded the cloud dialog between the App and iRobots Server? Maybe there is the data. And maybe even better a routing from the current roomba position coordinates to the current room id or name (as seen in the App).

warki avatar Nov 14 '21 20:11 warki

We were reading the aws shadow updates (which we still see), but in the latest version of firmware, iRobot seems to have stopped sending “pose” updates to the aws shadow.

not sure what we can do about that.

NickWaterton avatar Nov 30 '21 05:11 NickWaterton

might it be a good idea that we all bother iRobot, why they removed such a feature?

tobuh avatar Dec 05 '21 14:12 tobuh

yes, looks like the new firmware is not reporting the position anymore :/

koalazak avatar Dec 05 '21 15:12 koalazak

Might be something that can be turned on or off, we just don’t know the command to turn it on.

NickWaterton avatar Dec 05 '21 20:12 NickWaterton

Just had a chat with support:

image

henripalmroth avatar Dec 08 '21 10:12 henripalmroth

Has anyone made progress on this issue with their own investigation or with iRobot support?

I was setting up rest980/HA for my Roomba s9+ and Braava m6 - both are running 3.20.7 and no 'pose' updates.

Thanks!

brad07x avatar Dec 24 '21 23:12 brad07x

Not looking good from support perspective:

image

henripalmroth avatar Jan 13 '22 15:01 henripalmroth

Try to think like these people: You would never take such a feature out of the software, but rather hide it such that it must be switched on. And then you would try to hide the command for activating the position messages as long as possible. So lets have a look.

In the messages received through the mission, two suspicious settings appear:

{"state": {"reported": {
....
  "featureFlags": {
        "quietNav": true,
        "homeMonitoring": false,
        "clearHaz": true,
        "hibLed": 0,
        "covPlan": 0,
        "ros2SptLvl": true
    },
...
 "smartHome": {"homeMonitoringAllowed": false},
...
}

Unfortunately, so far I was unable to modify these settings. At least, the usual "delta"-command fails - none of these

  delta {"state": {"homeMonitoringAllowed": true}}
  delta {"state": {"featureFlags": { "quietNav": false}}}
  delta {"state": {"featureFlags": { "homeMonitoring": true}}}

works. Maybe someone has another idea?

Regards

pah

pahenning avatar Jan 14 '22 08:01 pahenning

This is what I was thinking as well.

We may have to do more experimenting, to see if we can change these settings. quietNav looks to be a good target to start with.

What topic were you publishing to? delta is the topic, the message would be {"state": {"featureFlags": { "quietNav": false}}}.

NickWaterton avatar Jan 14 '22 14:01 NickWaterton

That is exactly what I did, as you see above. The delta topic works when setting such things as OpenOnly. I should add that I am not using dorita, but have written other software running in the home automation system FHEM (http://www.fhem.de). I even had this software producing nice SVG maps of the cleaning runs. But this irrelevant as long as we can join forces to crack this problem here.

Regards

pah

pahenning avatar Jan 14 '22 15:01 pahenning

I have tried the same thing, but with no luck. I also note that my M6 mop reports:

            "featureFlags": {
                "quietNav": false,
                "clearHaz": true,
                "hibLed": 0,
                "covPlan": 0,
                "ros2SptLvl": true
            }

And it does not report the pose location either (since the last update). So quitetNav does not seem to be it.

Previously this would be reported:

            "cap": {
                "pose": 1,
                .
                .
            }

But now "pose" is missing from the "cap" fields, and "pose" is what was reporting the position of the roomba.

This may be more difficult than we were hoping.

NickWaterton avatar Jan 14 '22 15:01 NickWaterton

I'm guessing cap is short for capabilities. Maybe adding "pose": 1 back to the cap field would trick it into reenabling since quietNav didn't work

mehalter avatar Jan 14 '22 16:01 mehalter

Tried that, and it didn't work either.

NickWaterton avatar Jan 14 '22 16:01 NickWaterton

I bet these guys see themselves as customer-oriented... The best way to proceed here would be a complete sniff of the data sent to the cloud during a short cleaning run.

Regards pah

pahenning avatar Jan 14 '22 19:01 pahenning

I have a decoded capture of the app connecting to the cloud, and starting up. I haven't captured an entire run. I haven't been able to find much in there (other than how to connect to AWS, authenticate and retrieve BLD and password, maps etc via REST). I can see all the MQTT messages that the robot sends to the cloud, but again, not getting much either.

I suspect that iRobot just doesn't care about what we are doing, they don't use the tracking info, so they removed it (might have been something they used in development, but don't anymore). Might have been for a "real time maps" feature that they never implemented. I'm hoping they didn't remove it completely, just disabled it, or report it a different way. We may be out of luck though.

The robot must report some sort of tracking data though, as the app does tell you what room the robot is currently in when it's running. As you say a capture of a full run may be useful. Having said that, if the app uses an MQTT connection to AWS, I can't capture it with my current tools (which is annoying).

The other thing I was considering is a decompile of the android app. I have an android VM that I can spin up for these kinds of things, and sometimes you can extract useful data that way.

This may take some time...

NickWaterton avatar Jan 14 '22 20:01 NickWaterton

It seems like the x/y coordinates have to be accessible somewhere in the communication since it generates an image in the app of what parts were cleaned

mehalter avatar Jan 14 '22 21:01 mehalter

Yes, but the map could be built on the robot itself. Previously the map may have been built in the cloud due to limited resources on the robot. It could be that a raw map is uploaded to the cloud at the end of a run. We just don't know at the moment how its done.

NickWaterton avatar Jan 14 '22 21:01 NickWaterton

A hint towards this latter suspicion: I own three robots, 960, 981 and i7. The older models still tell their position, and from a run of the 960 I get some 3500 points, while from an i7 in roughly the same area I (had) received only about 300 points.

Maybe we can intercept the final map sent to the cloud.

Regards pah

pahenning avatar Jan 15 '22 08:01 pahenning

im with @NickWaterton : position is not longer part of the exposed state because they (irobot) don't need that to show you the map. If they put a flag to enable/disable this: we can change it with setPreferences() to edit the state which uses the delta command:

myRobotViaLocal.setPreferences({mapUploadAllowed: false})

did you test with tihs?

myRobotViaLocal.setPreferences({featureFlags: {pose: true}});
myRobotViaLocal.setPreferences({featureFlags: {position: true}});
myRobotViaLocal.setPreferences({featureFlags: {enablePose: true}});
myRobotViaLocal.setPreferences({featureFlags: {enablePosition: true}});
myRobotViaLocal.setPreferences({featureFlags: {enablePose: true}});
myRobotViaLocal.setPreferences({pose: true});
myRobotViaLocal.setPreferences({enablePose: true});
myRobotViaLocal.setPreferences({enablePosition: true});
myRobotViaLocal.setPreferences({position: true});
myRobotViaLocal.setPreferences({allowPose: true});
myRobotViaLocal.setPreferences({allowPosition: true});
myRobotViaLocal.setPreferences({poseAllowed: true});
myRobotViaLocal.setPreferences({positionAllowed: true});
// etc

koalazak avatar Jan 16 '22 13:01 koalazak

I tried all these:

' delta {"state": {"homeMonitoringAllowed": true}}'; ' delta {"state": {"featureFlags": { "quietNav": false}}}'; ' delta {"state": {"featureFlags": { "homeMonitoring": true}}}'; ' delta {"state": {"featureFlags": {"pose": true}}}'; ' delta {"state": {"featureFlags": {"position": true}}}'; ' delta {"state": {"featureFlags": {"enablePosition": true}}}'; ' delta {"state": {"featureFlags": {"enablePose": true}}}'; ' delta {"state": {"pose": true}}'; ' delta {"state": {"enablePose": true}}'; ' delta {"state": {"enablePosition": true}}'; ' delta {"state": {"position": true}}'; ' delta {"state": {"allowPose": true}}'; ' delta {"state": {"allowPosition": true}}'; ' delta {"state": {"poseAllowed": true}}'; ' delta {"state": {"positionAllowed": true}}';

so far no effect.

Regards pah

pahenning avatar Jan 29 '22 11:01 pahenning

Hello, with my Roomba 980 (firmware 2.4.16-126) there are also no pose information anymore.

Regarding the quietNav entry : iRobot introduced a room traveling feature that shuts down the main suction unit and the rollers while traveling between cleaning areas. It is named "quiet drive". The flaq should be disabled or non existend with older 9xx models.

drizzlerR avatar Mar 03 '22 17:03 drizzlerR

Glad I found this; was thinking it was something in my configs but now I can see this due to the firmware change. And here I was happy that my i3 had gained the ability to distinguish rooms after a mapping run; didn't realize I was losing my HA maps. Anyway, I wanted to add the i3 (3150) to the list of affected models and make sure I got any updates on progress here. Happy to help test if I can or provide any information.

rpitera avatar Apr 14 '22 15:04 rpitera

Mine is broken as well, I7+

generalk25 avatar Apr 21 '22 15:04 generalk25

It seems there is a new firmware: https://homesupport.irobot.com/s/article/26887 released Apr. 20th, 2022, but my s9 still not receive it. Let's hope they fixed this positioning issue

Angel0ffDeath avatar Apr 25 '22 17:04 Angel0ffDeath

@Angel0ffDeath - From your lips to God's ears. my friend. Thanks for the heads up. I think I'll try to stay in the 'control group' just in case it locks off something else though.

rpitera avatar Apr 25 '22 23:04 rpitera

Updated to the new firmware 22.7.2, but situation is the same - no positioning data. I think they totally changed concept of data transmission. I created new map - it takes few minutes to be uploaded to the cloud, which means the map is created in Roomba. Mqtt explorer - as in previous firmware only rssi is updated each second. The rest data is updated about each 10 min... probably they want to reduce cloud traffic. On first sight the only new function is child/pet lock - lock buttons on roomba. In other words (according to me) if someone still wants live positioning update - find a way to revert back to older firmware (probably factory reset will do the trick, but you will lose all maps) and block cloud access....

Angel0ffDeath avatar Apr 26 '22 14:04 Angel0ffDeath

Damn. Was hoping for some better news than that. AFAIK, the only way to rollback to a previous firmware (without a reset of course) is to contact iRobot support. And I doubt they'd trip a rollback for you on the basis of the positioning data problems. I'm still keeping hope knowing better minds than me are thinking about the same problem.

I'd try a reset but I'm afraid I'd end up losing what I still have - control and status - which are my main concerns. I like having the map, but honestly I could live without it and still be happy with what @koalazak has given me. Thanks for the info.

rpitera avatar Apr 26 '22 15:04 rpitera