Open crissmil opened 3 years ago
Today also my Braava m6 updated to v3.20.7 and "pose" data disappeared. Any ideas?
Same here with i7
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).
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.
might it be a good idea that we all bother iRobot, why they removed such a feature?
yes, looks like the new firmware is not reporting the position anymore :/
Might be something that can be turned on or off, we just don’t know the command to turn it on.
Just had a chat with support:
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!
Not looking good from support perspective:
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
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}}}
.
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
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.
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
Tried that, and it didn't work either.
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
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...
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
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.
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
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
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
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.
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.
Mine is broken as well, I7+
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 - 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.
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....
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 Personally for me actually I dont see any precious info which live tracking will give me. It is enough to know robot is cleaning and how exactly - well it is his problem. Moreover I actually dont have time to supervise the robot (thats the reason I have it). The rest is just to show your friends how clever/smart is your vacuum cleaner to your friends, which also makes no sense... It is still possible to remotely run the robot with certain map and to forget it... Why do you need to know everything??? I think what I get from robot is enough for me and will stop investigating and searching solutions during the last almost 6 months -there are more important things to do @koalazak I suggest you to close this issue and to cleanup the code...
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.
I never tried factory reset and dont know what will happen, I mean whether system will come back to old linux (firmware) version. Ask uncle Google.... and in general you will lose maps only, which could be easily restored after 2 runs, but I dont know if block cloud access what will happen after that (for instance battery replace, etc. ) Think carefully. Finally - I dont think you will lose something else except the maps.... And as I said dont know how reset is working - if you have protected file system and this preserves original firmware - it will work; if fs is mounted as rw during firmware update/upgrade -will not work. Dont know - for instance some android phones do not override original kernel after update, but unfortunatelly most of them do it, so the only way to revert is to find older version (original) and to flash it
Is there a way to figure out in which room the robot is currently in? I would like to use HA to turn on the lights for my i7 and m6.
I'm wondering if anyone has tried setting the maps
value under cap.
"cap": { "pose": 1, "maps": 1, ... }
I still have pose capabilities on my model so I can't test it out, but I've seen other values mentioned, but not specifically the maps
value yet.
No news I suppose. Anything from support?
Anyone any news on this?
@NickWaterton I can do a full packet capture from reboot to end of cleaning cycle, but I wouldn't know how to start doing anything with it, is that something that would help you?
Checking in. Any news? Happy to assist with research or testing.
any update?
I suppose there isn't any news, right? :(
Roomba S9+ after v3.20.7 no "pose" data available