The reporting status in the app is pretty consistent and seems to be based off of the last reported update from the unit. Mine will sometimes briefly read as “Offline” if the API has attempted to reach the unit and didn’t get a response (or whatever their logic is). That usually resolves fairly quickly though. I have also noticed that mine occasionally misses a status update from the unit (Clean Cycle In Progress without an associated Clean Cycle Complete or vice versa). Not sure if that is an issue with my unit and/or WiFi setup or a Litter-Robot server issue since I haven’t actually captured the traffic being sent from my unit to sniff it out. When a command is sent from the app it occasionally does nothing and I have to try it again. Again, that might be an issue with my setup if it is having communication issues, so maybe other setups are more reliable. All my info is based off of my one robot in one setup, so who knows, haha.
As far as capabilities, some of them are slightly redundant or have only one status reported by the unit that differs in how they get updated. Motion, as you said, is triggered by the cat being in the robot which is reflected by two statuses from the API: cat sensor timing and cat sensor interrupt. I’m not actually sure if the cat sensor interrupt status resolves itself eventually or if manual intervention is needed. If the latter, then motion would remain active until it is resolved.
Contact (open/close) is used for any time the bonnet is not in the normal stationary position. So it shows as open during the following statuses: Bonnet Removed, Clean Cycle In Progress, Cat Sensor Interrupt, and Clean Cycle Paused. I haven’t actually removed the bonnet on my unit to test that status, but probably will at some point just to see.
Switch capability is currently used for the on/off feature where you can actually turn the unit “off” without cutting power to it. I figured the way switches show up in other SmartApp configurations/selections that it made more sense since it is an on/off set of statuses with associated on/off commands. It would probably be just as easy to switch (no pun intended) this to indicate the drawer full status though as “on”. Then you could trigger rules based on when and/or how long the switch is on like you mentioned. The associated commands would then do nothing. I could then implement the power on/off like I did the night light, sleep mode, and panel lock features. I’ll have to think about this one! Other thoughts on it?
I looked at Button briefly, but didn’t implement it since I wasn’t really sure about it and it doesn’t hold on/off statuses natively.
I also thought about using the Alarm capability for drawer full statuses, but chose not too because I thought that might cause an unintentional trigger in people’s Smart Home Monitor setups, haha.
The Robot Cleaner Movement capability actually has an alarm state. But like I stated earlier, it’s only proposed in the SmartThings documentation and I haven’t seen it used elsewhere.
I’m glad your lighting rule worked! That’s way rad!