No live status updates with ECOVACS Home app #102
Labels
No labels
bug
dependencies
duplicate
enhancement
good first issue
help wanted
invalid
question
waiting for fix validation
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: mia/bumper#102
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Describe the bug
I'm unable to see any live status updates reflected in the Android app. To see the current position or state of the robot, I have to go back to the online/offline screen and manually pull down to refresh. It will correctly update the position and state of the robot but only once.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
The realtime status of the robot should be relayed to the app.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):
Smartphone (please complete the following information):
Vacuum (please complete the following information):
I'm looking at my phone's traffic with mitmproxy when using the app and vacuum normally and it appears that app connects to an MQTT server running on port 443 (
mq-ww.ecouser.net:443), while the bot connects to the same MQTT server running on port 8883.Remapping bumper's ports to a higher range (443 -> 30443, 8883 -> 38883) and then putting nginx with SNI prereading in front of it allows for the right port to be chosen:
I assume local updates worked some time in the past so it seems like either an app update or a configuration change has altered this behavior.
Maybe it would be better to offload all of the TLS stuff to nginx and run the Python code as a non-root user on higher ports by default?
I'm trying to diagnose why my app only connects sometimes to my bumper server. How do you use mitmproxy to map all ports instead of just 80 and 443?
I run bumper in a k8s server and I tried to map 30443 -> 443 and 38883 -> 8883 with no dice.
@puddly
Update, I installed a proper ingress (nginx) and used SNI to map the above ports and addresses and the app works perfectly now! I'm so happy.
Still curious how you see these ports in use with Mitmproxy. I couldn't figure it out myself.
EDIT: My map doesn't auto update still but the app in general works. Small issue but really glad the rest of the app works now.
I seem to have missed your original comment, sorry!
If you're using an Android phone, have disabled certificate validation with an Xposed module, and then forwarded all traffic via a SOCKS5 proxy app to
mitmproxyrunning on another computer, you can start analyzing the traffic withmitmproxy --mode socks5 --showhost --rawtcp --ssl-insecure.