-
-
Notifications
You must be signed in to change notification settings - Fork 149
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Added support for FW version 3 and Braava m6 #103
base: master
Are you sure you want to change the base?
Conversation
nice! @peci1 can you update the readme to reflect the new Also, I don't own a m6 robot to test your changes, So to be cautious I would like someone else to test and confirm that all this branch is working with several robots models. I'm going to leave the PR open until someone else tests this, ok? HELP WANTED! thank you very much! |
I fixed a few style hints from the linter. Otherwise, tests run fine. |
@peci1, does updated getMission() work with your i7/m6? It doesn't work for me (on my i7/m6), will check this more deeply tomorrow. Also I try to get info required for cleanRoom, but my m6 reports lasCommand data this way:
How can I decode regions data? |
What do you mean by updated getMission()? Did you try with the robots activated (i.e. not sleeping) and parked in home base? For me, getMission() doesn't work on sleeping robots. Try to give it a task with your phone, then stop them, park them, and try getMission(). Or you can even try calling getMission() during an actual mission, that should work. On my irobots, the experimental map feature works, and it is based on getMission(). Also, are you sure your robots have up-to-date firmware? Do you try using the API directly or via rest980? If latter, could test with koalazak/rest980#46 ? About regions: I haven't investigated that yet... |
Well I think that I have newest firmware: 3.2.4 (Roomba) and 3.2.5 (Braava).
As to the getMission() - I've checked and getRobotState(['pose']) wait until robot starts its mission, if it is in dock/pause/stop it doesn't return any values. Another issue: when I do getRobotState(['mopReady']) on m6 with updated dorita, I have:
when I execute the same command, but with original (master) branch, I get:
EDITED:
|
I find out why dorita generated 'undefined' reply for some request.
to this:
to make sure I can get with getRobotState any field I want. I don't know why m6 is not recognized. This is what I get with getRobotState(['sku']):
|
@thorazine-12 could you please try |
The problem is that there is no 'pose' information when it is not cleaning. |
I tested it by editing the local.js file as follows
Then getMission worked fine. To my understanding, the way of Braava m6 locating their position is based on the position where it docked at home base. However, on my Roomba 960, here's the information when it's docked. |
Just curious, what's holding this up from getting merged? Really wish this project supported braava... seems like there hasn't been much movement other than a few readme updates lately. |
Hello @dcmeglio, I will merge the PR when the author and several people who own both type of robots (vaccum and mop) confirm that both robots works fine together at the same time and all features works fine at least in vaccum robot. At the moment looks like nobody confirm this ☝️ and there is no a solid PR, just suggestions and troubleshooting. donations are welcome to help me to get extra robots and extend features of this library: https://opencollective.com/dorita980 thank you |
Your fix doesn't work for me, the m6 does not respond to getmission |
I've implemented the fix with returning zero pose when braava is sleeping. getMission() should now return even in the sleeping robot case. |
I don't understand your problems, @thorazine-12 . You say you're using |
I'm not sure what was the reason @thorazine-12's braava was incorrectly detected, as the detection is done based on SKU, and his SKU also starts with |
@thorazine-12 in this part, you actually query |
This is the output of my i7 when I query multiple fields and print just the lastCommand - I see no problem: myRobotViaLocal.getRobotState(['lastCommand', 'cleanMissionStatus']).then((actualState) => {
lastCommand = actualState['lastCommand'];
console.log(lastCommand);
});
|
It seems that braava m6 does not include regions in |
When I use rest980 and go to /api/local/info/mission for my m6, the browser just spins and doesn't load. Works fine for both of my i7's though. /api/local/info/state works fine for the m6. Nothing in syslog when I call mission. I'm using your latest code. Anything I can do to help track this down? |
Maybe the autodetection of robot type also doesn't work for you? You can try creating the local API with
Also, are all of |
I’ll have to test tomorrow when I’m at a pc, but yea those three values show up in the state output. And FYI my sku starts with m6 |
@peci1 sorry I never replied. No, when I change to using what you pasted above it still doesn't work. As I said though, all those values appear in state. Calling |
How do you actually test the changes? Do you have a rest980 project checked out in some directory and edit dorita980 directly in the node_modules subdirectory? Also, do you test rest980 with the changes from koalazak/rest980#46 ? |
Yes to both your questions. |
@dcmeglio Please make sure your server address is not the same as the Roomba's, etc. It works fine in my environment. |
If the ip were the issue, then no endpoint would work. Only the mission endpoint fails for me |
@dcmeglio Did you replace dorita980 in node_modules of rest980 properly? |
You were absolutely right. There was a local copy I didn’t see causing the issue. Working fine now! |
@dcmeglio Great! Thanks for reporting. |
I replaced #103 in koalazak/rest980#46. Getting this error with
|
Anything? |
Are the fixes here ever going to be merged? I know many of us are using this. It really stinks that I can't use your npm package or docker container because this fix isn't applied |
I got Roomba i7 and Braava m6, both with firmware 3.2. I needed to do some changes to support FW version 3, and also to support Braava robots. I'm not sure I captured all the differences between v2 and v3, and between roomba and braava robots. But I think this could be a good start.
This might also be a solution for koalazak/rest980#44 .