From 6291a9d21dc015496e9b19785aacfb5876820bac Mon Sep 17 00:00:00 2001 From: NHerby Date: Tue, 3 Mar 2026 21:26:14 +0700 Subject: [PATCH] docs: add OZMO 920 to compatibility table; document port 443 redirect for newer bots - Add Deebot Ozmo 920 Series (vi829v) to the tested compatibility table (confirmed working with Ecovacs Home app via MQTT protocol) - Document that newer robots using the jmq-ngiot protocol connect on port 443 instead of the standard MQTT port 8883. Add iptables PREROUTING REDIRECT rule to DNS_Setup.md so users can intercept these connections and forward them to Bumper's MQTT listener. Confirmed on OZMO 920: bot resolves jmq-ngiot-{countrycode}.area.ww.ecouser.net (already covered by DNS wildcard and cert SANs) but connects on 443, silently failing without this redirect. --- README.md | 1 + docs/DNS_Setup.md | 25 ++++++++++++++++++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 9704fcc..35dbbf0 100644 --- a/README.md +++ b/README.md @@ -46,6 +46,7 @@ As work to reverse the protocols and provide a self-hosted central server is sti | --------------- | ------------- | --------------------- | -------------------- | | Deebot 900/901 | MQTT | master | Ecovacs/Ecovacs Home | | Deebot 600 | MQTT | master | Ecovacs Home | +| Deebot Ozmo 920 | MQTT | master | Ecovacs Home | | Deebot Ozmo 950 | MQTT | master | Ecovacs Home | | Deebot Ozmo 601 | XMPP | master | Ecovacs | | Deebot Ozmo 930 | XMPP | master | Ecovacs | diff --git a/docs/DNS_Setup.md b/docs/DNS_Setup.md index e433b8d..d3fcfa3 100644 --- a/docs/DNS_Setup.md +++ b/docs/DNS_Setup.md @@ -68,4 +68,27 @@ Replacement Examples: | `users-base.dc-{region}.ww.ecouser.net` | Accounts for App (v2+) | | `jmq-ngiot-{region}.dc.ww.ecouser.net` | MQTT for App (v2+) | | `api-rop.dc-{region}.ww.ecouser.net` | App (v2+) | -| `jmq-ngiot-{region}.area.ww.ecouser.net`| App (v2+) | \ No newline at end of file +| `jmq-ngiot-{region}.area.ww.ecouser.net`| App (v2+) | + +## Newer Bots: Port 443 Redirect (jmq-ngiot protocol) + +Some newer robots (confirmed: OZMO 920 series) do **not** connect to Bumper on the standard MQTT port (8883). Instead they connect on **port 443**, likely to bypass firewall restrictions. The bot uses a `jmq-ngiot-{countrycode}.area.ww.ecouser.net` hostname for this connection. + +Because Bumper's MQTT server listens on 8883, connections arriving on 443 must be redirected using `iptables`: + +```bash +# Redirect bot MQTT traffic from port 443 → 8883 +# Replace 192.168.x.x with your bot's IP address +sudo iptables -t nat -A PREROUTING -s 192.168.x.x -p tcp --dport 443 -j REDIRECT --to-port 8883 +``` + +**How to find your bot's IP:** Check your router's DHCP client list, or run `sudo arp-scan --localnet` on the Bumper host. + +**Note:** This rule does not persist across reboots. To make it permanent, use `iptables-persistent` (`sudo apt install iptables-persistent`) or add it to your startup script. + +**To remove the rule** (e.g. to restore normal cloud access): +```bash +sudo iptables -t nat -D PREROUTING -s 192.168.x.x -p tcp --dport 443 -j REDIRECT --to-port 8883 +``` + +**How to identify if your bot uses port 443:** After setting up DNS redirection, run `sudo tcpdump -i any -n "src host and (port 443 or port 8883)"` and power-cycle the bot. If you see connections on port 443 with no activity on 8883, your bot needs this redirect. \ No newline at end of file