-
Notifications
You must be signed in to change notification settings - Fork 1
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
Reverse engineer checksum to allow direct control of litter robot #1
Comments
Late to the party here...Frustrating that they don't expose more local (direct mqtt client) settings on the device when it's clearly capable. |
I never did anything else with this project - just monitoring the communication was enough to provide the main value I wanted (notification when I needed to check in on the litter robot). I've since upgraded to the Litter Robot 4 and the app and the robot itself have worked a lot better, so I never even tried intercepting the 4's traffic. I even have the Home Assistant integration setup and it works well. Ideally, I'd go back to a cloud-less approach like I used to have, but I'm pretty happy with it as-is. But they could so-easily just provide an HTTP endpoint on the device, which I would definitely appreciate. Like you said, looks like they are just running an ESP daughterboard for the comms - at least on the 3. Unfortunately, I didn't think to keep my upgrade board when I upgraded or I'd send it to you to poke at. |
Placeholder to encourage open discussion regarding reverse engineering the checksum.
Observations
AOK,serial,1,same_counter,new_checksum
. TODO: determine ifnew_checksum
is consistent when message number is consistent.NOK,serial,1,bad_counter,new_checksum
thenNOK,serial,8,bad_counter,new_checksum
- the two new_checksums are different.Potential data-points influencing checksums
Based on 7 days of data, I did some simple analysis of checksums as generated by the robot. Surprisingly, most data-points do not impact the checksum - or they do in a way that multiple values can have the same impact (modulo math?) - for example, looking at checksums seen 11 times over a 7 day period, the CS codes and the message numbers could be entirely unique for each message with the same checksum.
This leads me to believe that the checksum is not based specifically on the message.
query results of
select checksum, count(distinct model), count(distinct serial), ...
:The text was updated successfully, but these errors were encountered: