bmartin5692 / bumper

A standalone and self-hosted implementation of the central server used by Ecovacs vacuum robots.
GNU General Public License v3.0
301 stars 50 forks source link

Error when using Sucks #51

Open uchagani opened 5 years ago

uchagani commented 5 years ago

Describe the bug Trying to get a new Deebot Ozmo 950 working with bumper and sucks. I'm trying to get bump working with sucks and I'm getting the following error:

sleekxmppfs.basexmpp WARNING  fulljid property deprecated. Use boundjid.resource
performing clean command
Traceback (most recent call last):
  File ".local/bin/sucks", line 10, in <module>
    sys.exit(cli())
  File "/home/admin/.local/lib/python3.7/site-packages/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "/home/admin/.local/lib/python3.7/site-packages/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/home/admin/.local/lib/python3.7/site-packages/click/core.py", line 1164, in invoke
    return _process_result(rv)
  File "/home/admin/.local/lib/python3.7/site-packages/click/core.py", line 1102, in _process_result
    **ctx.params)
  File "/home/admin/.local/lib/python3.7/site-packages/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/home/admin/.local/lib/python3.7/site-packages/sucks/cli.py", line 219, in run
    vacbot.run(action.vac_command)
  File "/home/admin/.local/lib/python3.7/site-packages/sucks/__init__.py", line 416, in run
    self.send_command(action.to_xml())
  File "/home/admin/.local/lib/python3.7/site-packages/sucks/__init__.py", line 413, in send_command
    self.xmpp.send_command(xml, self._vacuum_address())
  File "/home/admin/.local/lib/python3.7/site-packages/sucks/__init__.py", line 482, in send_command
    c.send()
  File "/home/admin/.local/lib/python3.7/site-packages/sleekxmppfs/stanza/iq.py", line 235, in send
    raise IqError(result)
sleekxmppfs.exceptions.IqError: <iq type="error" to="abcdef12a3a45xx3@ecouser.net/B32868DB5C8A43D2AB00127753213F16" from="B32868DB-5C8A-43D2-AB00-127753213F16@abc1ab.ecorobot.net/atom" id="B32868DB-5C8A-43D2-AB00-127753213F16-3"><error type="wait" code="404"><recipient-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" /></error></iq>

Expected behavior Sucks works with bumper

Desktop (please complete the following information):

Vacuum (please complete the following information):

Additional context While this model isn't supported I'm trying to see what all we need to do to get it working with bumper. I can see a new domain in the error above (ecorobot.net). Maybe we also need to add this to the DNS list?

uchagani commented 5 years ago

I was able to get @bmartin5692 's fork of sucks talking to bumper but i'm not getting a response from my bot.

Some logs that seem pertinent:

[2019-09-10 00:02:02,417] :: DEBUG :: confserver :: confserver :: handle_devmanager_botcommand :: 1202 :: Send Bot - {'auth': {'realm': 'ecouser.net', 'resource': '3d0e73de', 'token': 'us_9A09A99C245747A7BE63E7F91F80AE60', 'userid': 'fuid_tmpuser', 'with': 'users'}, 'cmdName': 'Clean', 'payload': '<ctl><clean act="s" speed="standard" type="auto" /></ctl>', 'payloadType': 'x', 'td': 'q', 'toId': '9A09A99C-2457-47A7-BE63-E7F91F80AE60', 'toRes': '2Ic3', 'toType': 'yna5xi'}
[2019-09-10 00:02:02,417] :: DEBUG :: confserver :: confserver :: handle_devmanager_botcommand :: 1203 :: Bot Response - {'id': 'TOaxGE', 'errno': 500, 'ret': 'fail', 'debug': 'wait for response timed out'}
[2019-09-10 00:02:02,419] :: DEBUG :: aiohttp.access :: web_log :: log :: 233 :: 192.168.1.218 [10/Sep/2019:04:01:59 +0000] "POST /api/iot/devmanager.do HTTP/1.1" 200 244 "-" "python-requests/2.22.0"
[2019-09-10 00:02:02,419] :: DEBUG :: aiohttp.server :: web_protocol :: log_debug :: 352 :: Ignored premature client disconnection.
uchagani commented 5 years ago

@bmartin5692 any idea where I can start to try to fix this? I'm hoping to get this working with bumper or I'll have to return it.

bmartin5692 commented 5 years ago

I’ll see if I can take a look this weekend. It may just be a quick model update for the “EcoVacsHomeProducts” to support newer bot models - https://github.com/bmartin5692/bumper/blob/1fdbb055df82c2332cfb1e6b9458492b3b33c105/bumper/models.py#L88

On Sep 13, 2019, at 9:34 PM, uchagani notifications@github.com wrote:

@bmartin5692 any idea where I can start to try to fix this? I'm hoping to get this not working with bumper or I'll have to return it.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

uchagani commented 5 years ago

I'd appreciate it. thank you.

bmartin5692 commented 5 years ago

I just pushed an update that includes the latest mapping. Update and lets see if that works before I dig too deep into this.

uchagani commented 5 years ago

I'll test this first thing tomorrow and report back. Thank you.

uchagani commented 5 years ago

@bmartin5692 so we've made progress! I'm now able to see the robot on the Ecovacs Home app but still can't communicate with it. Once i click on the bot I get an error on the app Information acquisition timeout. Please exit and try again. Here are the logs from bumper: https://pastebin.com/raw/z8vRE4x3

It looks like the bot is sending back a 500 error for all messages:

[2019-09-16 10:52:17,174] :: DEBUG :: confserver :: confserver :: handle_devmanager_botcommand :: 1203 :: Bot Response - {'id': 'EIWyvK', 'errno': 500, 'ret': 'fail', 'debug': 'wait for response timed out'}
bmartin5692 commented 5 years ago

The 500 is a timeout from waiting for a response. Does the bot show online? If you hit the website for Bumper, what does it show? (https://bumperip) should display some basic status of the services and connected clients/bots.

uchagani commented 5 years ago

Edit: Update with json once Ecovacs Home app is launched.

Yea it shows online. Here's the json from the bumper website:


{

    "bots": [
        {
            "class": "yna5xi",
            "company": "eco-ng",
            "did": "5cb47e6a-d214-4bce-ba84-f3a25b02cfec",
            "name": "E0000760319601870227",
            "nick": "",
            "resource": "2Ic3",
            "mqtt_connection": true,
            "xmpp_connection": false
        }
    ],
    "clients": [
        {
            "userid": "tmpuser",
            "realm": "bumper",
            "resource": "IOS03E84CA9G",
            "mqtt_connection": true,
            "xmpp_connection": true
        },
        {
            "userid": "fuid_tmpuser",
            "realm": "ecouser",
            "resource": "3d0e73de",
            "mqtt_connection": true,
            "xmpp_connection": false
        },
        {
            "userid": "fuid_tmpuser",
            "realm": "ecouser",
            "resource": "b6b883d3",
            "mqtt_connection": false,
            "xmpp_connection": false
        }
    ],
    "helperbot": [
        {
            "state": "connected"
        }
    ],
    "mqtt_server": [
        {
            "state": "started"
        },
        {
            "sessions": [
                {
                    "count": 3
                },
                {
                    "clients": [
                        [
                            {
                                "client_id": "helper1@bumper/helper1"
                            },
                            {
                                "state": "connected"
                            }
                        ],
                        [
                            {
                                "client_id": "5cb47e6a-d214-4bce-ba84-f3a25b02cfec@yna5xi/2Ic3"
                            },
                            {
                                "state": "connected"
                            }
                        ],
                        [
                            {
                                "client_id": "tmpuser@ecouser/IOS03E84CA9G"
                            },
                            {
                                "state": "connected"
                            }
                        ]
                    ]
                }
            ]
        }
    ]

}
uchagani commented 5 years ago

@bmartin5692 just FYI, i've verified against both sucks and Ecovacs Home app and both result in the same thing as reported above.

bmartin5692 commented 5 years ago

Hi @uchagani -

Do you see any bot activity in the logs? The snippets you've shared so far only show server/app communications. What is interesting is the status json above shows your new OZMO 950 model using MQTT, but the OZMO bots that I've seen in the wild thus far have used XMPP for communication.

Could you clear the logs you have then try:

  1. Start bumper w/ debug enabled
  2. Turn off bot, turn it back on
  3. See if it is visible in the app, then try to access it to start a cleaning.

If possible zip/send all the logs in the logs folder? If I can't figure out how it is communicating from that, then you may have to sniff the bot communication so we can get an idea of what it is doing.

uchagani commented 5 years ago

@bmartin5692 here are clean logs of the steps you listed above. I can see the bot online in the Ecocavs Home app but when i click on the bot to do any operations, i get error Information acquisition timeout. Please exit and try again

I really appreciate you looking into this. thanks again!

uchagani commented 5 years ago

Hi @bmartin5692 were the logs helpful at all? Anything else I can help with?

bmartin5692 commented 5 years ago

Thanks for pulling those together, I just got a chance to review.

It looks like your bot does use MQTT and checking version is successful. However, the other commands issued to it don't get a response for some reason. There isn't enough details in the logs to determine why. It is possible your bot is using a different topic or method for communication that we haven't seen before.

I'll have to look around to see if there is some additional logging I could do in Bumper to get a better dump of the communications, otherwise this may require you to man in the middle the communications yourself.

My system is currently in a broken state due to a RPi SD card failure and I haven't had time to fix it yet, so I can't do much testing at the moment. It may take me a bit to get more details, if you are feeling up for the challenge check out man in the middling the communications with a hotspot on Kali linux.

Once I get my system working, I can try to build some additional logging to hopefully cut out that piece.

uchagani commented 5 years ago

@bmartin5692 cool I'll look into this. To be clear, should I be monitoring traffic between the phone and the router, the bot and the router, or the phone and the bot? I'm guessing the latter but I came up empty when I tried it really quickly on my Ubuntu box. I was able to get some data between my phone and the router but it was just registration info and something about flash player.

bmartin5692 commented 5 years ago

Ideally both. Seeing both sides of the communication is extremely helpful, but key will be the traffic to/from the bot.

uchagani commented 5 years ago

@bmartin5692 I was able to capture the traffic. Is there an email I can reach you at to send you some of these request/response flows or are you on discord?

bmartin5692 commented 5 years ago

@uchagani - I just started a gitter community for this - https://gitter.im/ecovacs-bumper

Send me a private message there.

uchagani commented 5 years ago

@bmartin5692 Awesome, sent the info to you on gitter. thanks!

KoelnSolar commented 5 years ago

Similar problem with my OZMO Slim10(firmware 1.1.4) in Germany. bumper works in general fine.(Thanks a lot) I'm able to receive mqtt-messages of the bot with the home-app 1.2.0 and other mqtt-clients. But issued commands are not successful. The bot "ignores" them. No reaction, no error messages. Currently I'm not able to capture traffic between the bot and ecovacs-servers. Traffic between bot & bumper & home-app & otherMqttCliens shows nothing helpful. Any further ideas about maybe different topic than iot/p2p/command..... ?

bmartin5692 commented 5 years ago

Can you try the Ozmo950 branch with debug enabled? I pushed it yesterday, but it enables additional MQTT logging in the mqttserver.log and will hopefully shed some light on what topics these bots subscribe to and how they are communicating.

On Sep 28, 2019, at 11:03 AM, KoelnSolar notifications@github.com wrote:

Similar problem with my OZMO Slim10(firmware 1.1.4) in Germany. bumper works in general fine.(Thanks a lot) I'm able to receive mqtt-messages of the bot with the home-app 1.2.0 and other mqtt-clients. But issued commands are not successful. The bot "ignores" them. No reaction, no error messages. Currently I'm not able to capture traffic between the bot and ecovacs-servers. Traffic between bot & bumper & home-app & otherMqttCliens shows nothing helpful. Any further ideas about maybe differen topic than iot/p2p/command..... ?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

KoelnSolar commented 5 years ago

I expected no new informations since I already had a client subscribed to '#':

still no reaction on commands/topic iot/p2p.....

The only new information is that the bot subscribes to the topic structure bumper sends:

'iot/p2p/+/+/+/+/helper1/bumper/helper1/+/+/+': [(Session(clientId=helper1@bumper/helper1, state=connected), 0)], 
'iot/p2p/+': [(Session(clientId=helper1@bumper/helper1, state=connected), 0)], 
'iot/atr/+': [(Session(clientId=helper1@bumper/helper1, state=connected), 0)], 
'iot/ota/02uwxm/ebbFw2/0.3.5e': [(Session(clientId=serial_no_bot@02uwxm/Uq7d, state=connected), 0)],
'iot/p2p/+/+/+/+/serial_no_bot/02uwxm/Uq7d/+/+/+': [(Session(clientId=serial_no_bot@02uwxm/Uq7d, state=connected), 0)], 
'iot/atr/+/serial_no_bot/02uwxm/+/+': [(Session(clientId=fuid_tmpuser@ecouser/GLB19396e86, state=connected), 0)], 
'#': [(Session(clientId=fhemuser@bumper/GLB19396e86, state=connected), 0)]}

Not clear about iot/ota... topic

[2019-09-28 23:50:11,806] :: DEBUG :: hbmqtt.broker.plugins.packet_logger_plugin :: logging :: on_mqtt_packet_received :: 34 :: serial_no_bot@02uwxm/Uq7d <-in-- SubscribePacket(ts=2019-09-28 23:50:11.689449, fixed=MQTTFixedHeader(length=33, flags=0x2), variable=PacketIdVariableHeader(packet_id=2), payload=SubscribePayload(topics=[('iot/ota/02uwxm/ebbFw2/0.3.5e', 0)]))
[2019-09-28 23:50:11,907] :: DEBUG :: hbmqtt.broker :: broker :: _broadcast_loop :: 697 :: broadcasting {'session': Session(clientId=serial_no_bot@02uwxm/Uq7d, state=connected), 'topic': 'iot/atr/GetIOTConnStatus/serial_no_bot/02uwxm/Uq7d/j', 'data': bytearray(b'{"td":"GetIOTConnStatus","on":1,"conn":2,"ip":"myBumper_IP"}')}
[2019-09-28 23:50:11,915] :: DEBUG :: hbmqtt.broker :: broker :: _broadcast_loop :: 709 :: broadcasting application message from (client id=serial_no_bot@02uwxm/Uq7d) on topic 'iot/atr/GetIOTConnStatus/serial_no_bot/02uwxm/Uq7d/j' to (client id=helper1@bumper/helper1)
[2019-09-28 23:50:11,945] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: mqtt_deliver_next_message :: 459 :: 0 message(s) available for delivery

command send with my mqtt-client

[2019-09-29 00:34:29,699] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: handle_publish :: 566 :: Message queue size: 1
[2019-09-29 00:34:29,717] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: mqtt_deliver_next_message :: 465 :: Delivering message <hbmqtt.session.IncomingApplicationMessage object at 0xb542e300>
[2019-09-29 00:34:29,734] :: DEBUG :: hbmqtt.broker :: broker :: client_connected :: 484 :: fhemuser@bumper/GLB19396e86 handling message delivery
[2019-09-29 00:34:29,761] :: DEBUG :: hbmqtt.broker :: broker :: _broadcast_loop :: 697 :: broadcasting {'session': Session(clientId=fhemuser@bumper/GLB19396e86, state=connected), 'topic': 'iot/p2p/PlaySound/helper1/bumper/helper1/serial_no_bot/02uwxm/Uq7d/q/xyz123/x', 'data': bytearray(b'<ctl/>')}
[2019-09-29 00:34:29,769] :: DEBUG :: hbmqtt.broker :: broker :: _broadcast_loop :: 709 :: broadcasting application message from (client id=fhemuser@bumper/GLB19396e86) on topic 'iot/p2p/PlaySound/helper1/bumper/helper1/serial_no_bot/02uwxm/Uq7d/q/xyz123/x' to (client id=helper1@bumper/helper1)
[2019-09-29 00:34:29,786] :: DEBUG :: hbmqtt.broker :: broker :: _broadcast_loop :: 709 :: broadcasting application message from (client id=fhemuser@bumper/GLB19396e86) on topic 'iot/p2p/PlaySound/helper1/bumper/helper1/serial_no_bot/02uwxm/Uq7d/q/xyz123/x' to (client id=serial_no_bot@02uwxm/Uq7d)
[2019-09-29 00:34:29,802] :: DEBUG :: hbmqtt.broker :: broker :: _broadcast_loop :: 709 :: broadcasting application message from (client id=fhemuser@bumper/GLB19396e86) on topic 'iot/p2p/PlaySound/helper1/bumper/helper1/serial_no_bot/02uwxm/Uq7d/q/xyz123/x' to (client id=fhemuser@bumper/GLB19396e86)
[2019-09-29 00:34:29,824] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: mqtt_deliver_next_message :: 459 :: 0 message(s) available for delivery
[2019-09-29 00:34:29,935] :: DEBUG :: hbmqtt.broker.plugins.packet_logger_plugin :: logging :: on_mqtt_packet_sent :: 44 :: helper1@bumper/helper1 -out-> PublishPacket(ts=2019-09-29 00:34:29.840390, fixed=MQTTFixedHeader(length=108, flags=0x0), variable=PublishVariableHeader(topic=iot/p2p/PlaySound/helper1/bumper/helper1/serial_no_bot/02uwxm/Uq7d/q/xyz123/x, packet_id=None), payload=PublishPayload(data="bytearray(b'<ctl/>')"))
[2019-09-29 00:34:29,952] :: DEBUG :: hbmqtt.broker.plugins.packet_logger_plugin :: logging :: on_mqtt_packet_sent :: 44 :: serial_no_bot@02uwxm/Uq7d -out-> PublishPacket(ts=2019-09-29 00:34:29.870672, fixed=MQTTFixedHeader(length=108, flags=0x0), variable=PublishVariableHeader(topic=iot/p2p/PlaySound/helper1/bumper/helper1/serial_no_bot/02uwxm/Uq7d/q/xyz123/x, packet_id=None), payload=PublishPayload(data="bytearray(b'<ctl/>')"))
[2019-09-29 00:34:29,969] :: DEBUG :: hbmqtt.broker.plugins.packet_logger_plugin :: logging :: on_mqtt_packet_sent :: 44 :: fhemuser@bumper/GLB19396e86 -out-> PublishPacket(ts=2019-09-29 00:34:29.900679, fixed=MQTTFixedHeader(length=108, flags=0x0), variable=PublishVariableHeader(topic=iot/p2p/PlaySound/helper1/bumper/helper1/serial_no_bot/02uwxm/Uq7d/q/xyz123/x, packet_id=None), payload=PublishPayload(data="bytearray(b'<ctl/>')"))
[2019-09-29 00:34:30,054] :: DEBUG :: hbmqtt.client.plugins.packet_logger_plugin :: logging :: on_mqtt_packet_received :: 34 :: helper1@bumper/helper1 <-in-- PublishPacket(ts=2019-09-29 00:34:30.013528, fixed=MQTTFixedHeader(length=108, flags=0x0), variable=PublishVariableHeader(topic=iot/p2p/PlaySound/helper1/bumper/helper1/serial_no_bot/02uwxm/Uq7d/q/xyz123/x, packet_id=None), payload=PublishPayload(data="bytearray(b'<ctl/>')"))
[2019-09-29 00:34:30,069] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: handle_publish :: 566 :: Message queue size: 1
[2019-09-29 00:34:30,085] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: mqtt_deliver_next_message :: 465 :: Delivering message <hbmqtt.session.IncomingApplicationMessage object at 0xb546bf18>
[2019-09-29 00:34:30,118] :: DEBUG :: hbmqtt.client :: client :: deliver_message :: 331 :: Waiting message delivery
[2019-09-29 00:34:30,132] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: mqtt_deliver_next_message :: 459 :: 0 message(s) available for delivery

Edit: The only functioning command seems to be

[2019-09-29 10:14:59,191] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: mqtt_deliver_next_message :: 465 :: Delivering message <hbmqtt.session.IncomingApplicationMessage object at 0xb5696978>
[2019-09-29 10:14:59,276] :: DEBUG :: hbmqtt.broker :: broker :: client_connected :: 484 :: helper1@bumper/helper1 handling message delivery
[2019-09-29 10:14:59,309] :: DEBUG :: hbmqtt.broker :: broker :: _broadcast_loop :: 697 :: broadcasting {'session': Session(clientId=helper1@bumper/helper1, state=connected), 'topic': 'iot/p2p/GetWKVer/helper1/bumper/helper1/serial_no_bot/02uwxm/Uq7d/q/LgcQYN/j', 'data': bytearray(b"{\'td\': \'GetWKVer\'}")}
[2019-09-29 10:14:59,320] :: DEBUG :: hbmqtt.broker :: broker :: _broadcast_loop :: 709 :: broadcasting application message from (client id=helper1@bumper/helper1) on topic 'iot/p2p/GetWKVer/helper1/bumper/helper1/serial_no_bot/02uwxm/Uq7d/q/LgcQYN/j' to (client id=helper1@bumper/helper1)
[2019-09-29 10:14:59,342] :: DEBUG :: hbmqtt.broker :: broker :: _broadcast_loop :: 709 :: broadcasting application message from (client id=helper1@bumper/helper1) on topic 'iot/p2p/GetWKVer/helper1/bumper/helper1/serial_no_bot/02uwxm/Uq7d/q/LgcQYN/j' to (client id=fhemuser@bumper/GLB19396e86)
[2019-09-29 10:14:59,363] :: DEBUG :: hbmqtt.broker :: broker :: _broadcast_loop :: 709 :: broadcasting application message from (client id=helper1@bumper/helper1) on topic 'iot/p2p/GetWKVer/helper1/bumper/helper1/serial_no_bot/02uwxm/Uq7d/q/LgcQYN/j' to (client id=serial_no_bot@02uwxm/Uq7d)
[2019-09-29 10:14:59,389] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: mqtt_deliver_next_message :: 459 :: 0 message(s) available for delivery
[2019-09-29 10:14:59,517] :: DEBUG :: hbmqtt.broker.plugins.packet_logger_plugin :: logging :: on_mqtt_packet_sent :: 44 :: helper1@bumper/helper1 -out-> PublishPacket(ts=2019-09-29 10:14:59.410103, fixed=MQTTFixedHeader(length=119, flags=0x0), variable=PublishVariableHeader(topic=iot/p2p/GetWKVer/helper1/bumper/helper1/serial_no_bot/02uwxm/Uq7d/q/LgcQYN/j, packet_id=None), payload=PublishPayload(data='bytearray(b"{\\\'td\\\': \\\'GetWKVer\\\'}")'))
[2019-09-29 10:14:59,539] :: DEBUG :: hbmqtt.broker.plugins.packet_logger_plugin :: logging :: on_mqtt_packet_sent :: 44 :: fhemuser@bumper/GLB19396e86 -out-> PublishPacket(ts=2019-09-29 10:14:59.440117, fixed=MQTTFixedHeader(length=119, flags=0x0), variable=PublishVariableHeader(topic=iot/p2p/GetWKVer/helper1/bumper/helper1/serial_no_bot/02uwxm/Uq7d/q/LgcQYN/j, packet_id=None), payload=PublishPayload(data='bytearray(b"{\\\'td\\\': \\\'GetWKVer\\\'}")'))
[2019-09-29 10:14:59,560] :: DEBUG :: hbmqtt.broker.plugins.packet_logger_plugin :: logging :: on_mqtt_packet_sent :: 44 :: serial_no_bot@02uwxm/Uq7d -out-> PublishPacket(ts=2019-09-29 10:14:59.478478, fixed=MQTTFixedHeader(length=119, flags=0x0), variable=PublishVariableHeader(topic=iot/p2p/GetWKVer/helper1/bumper/helper1/serial_no_bot/02uwxm/Uq7d/q/LgcQYN/j, packet_id=None), payload=PublishPayload(data='bytearray(b"{\\\'td\\\': \\\'GetWKVer\\\'}")'))
[2019-09-29 10:14:59,654] :: DEBUG :: hbmqtt.client.plugins.packet_logger_plugin :: logging :: on_mqtt_packet_received :: 34 :: helper1@bumper/helper1 <-in-- PublishPacket(ts=2019-09-29 10:14:59.611927, fixed=MQTTFixedHeader(length=119, flags=0x0), variable=PublishVariableHeader(topic=iot/p2p/GetWKVer/helper1/bumper/helper1/serial_no_bot/02uwxm/Uq7d/q/LgcQYN/j, packet_id=None), payload=PublishPayload(data='bytearray(b"{\\\'td\\\': \\\'GetWKVer\\\'}")'))
[2019-09-29 10:14:59,674] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: handle_publish :: 566 :: Message queue size: 1
[2019-09-29 10:14:59,694] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: mqtt_deliver_next_message :: 465 :: Delivering message <hbmqtt.session.IncomingApplicationMessage object at 0xb5639468>
[2019-09-29 10:14:59,755] :: DEBUG :: hbmqtt.client :: client :: deliver_message :: 331 :: Waiting message delivery
[2019-09-29 10:14:59,780] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: mqtt_deliver_next_message :: 459 :: 0 message(s) available for delivery
[2019-09-29 10:14:59,876] :: DEBUG :: hbmqtt.broker.plugins.packet_logger_plugin :: logging :: on_mqtt_packet_received :: 34 :: serial_no_bot@02uwxm/Uq7d <-in-- PublishPacket(ts=2019-09-29 10:14:59.812850, fixed=MQTTFixedHeader(length=128, flags=0x0), variable=PublishVariableHeader(topic=iot/p2p/GetWKVer/serial_no_bot/02uwxm/Uq7d/helper1/bumper/helper1/p/LgcQYN/j, packet_id=None), payload=PublishPayload(data='bytearray(b\'{"ret":"ok","ver":"0.3.5e"}\')'))
[2019-09-29 10:14:59,896] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: handle_publish :: 566 :: Message queue size: 1
[2019-09-29 10:14:59,921] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: mqtt_deliver_next_message :: 465 :: Delivering message <hbmqtt.session.IncomingApplicationMessage object at 0xb56846f0>
[2019-09-29 10:14:59,956] :: DEBUG :: hbmqtt.broker :: broker :: client_connected :: 484 :: serial_no_bot@02uwxm/Uq7d handling message delivery
[2019-09-29 10:14:59,988] :: DEBUG :: hbmqtt.broker :: broker :: _broadcast_loop :: 697 :: broadcasting {'session': Session(clientId=serial_no_bot@02uwxm/Uq7d, state=connected), 'topic': 'iot/p2p/GetWKVer/serial_no_bot/02uwxm/Uq7d/helper1/bumper/helper1/p/LgcQYN/j', 'data': bytearray(b'{"ret":"ok","ver":"0.3.5e"}')}
[2019-09-29 10:15:00,000] :: DEBUG :: hbmqtt.broker :: broker :: _broadcast_loop :: 709 :: broadcasting application message from (client id=serial_no_bot@02uwxm/Uq7d) on topic 'iot/p2p/GetWKVer/serial_no_bot/02uwxm/Uq7d/helper1/bumper/helper1/p/LgcQYN/j' to (client id=helper1@bumper/helper1)
[2019-09-29 10:15:00,032] :: DEBUG :: hbmqtt.broker :: broker :: _broadcast_loop :: 709 :: broadcasting application message from (client id=serial_no_bot@02uwxm/Uq7d) on topic 'iot/p2p/GetWKVer/serial_no_bot/02uwxm/Uq7d/helper1/bumper/helper1/p/LgcQYN/j' to (client id=fhemuser@bumper/GLB19396e86)
[2019-09-29 10:15:00,112] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: mqtt_deliver_next_message :: 459 :: 0 message(s) available for delivery
[2019-09-29 10:15:00,334] :: DEBUG :: hbmqtt.broker.plugins.packet_logger_plugin :: logging :: on_mqtt_packet_sent :: 44 :: helper1@bumper/helper1 -out-> PublishPacket(ts=2019-09-29 10:15:00.194339, fixed=MQTTFixedHeader(length=128, flags=0x0), variable=PublishVariableHeader(topic=iot/p2p/GetWKVer/serial_no_bot/02uwxm/Uq7d/helper1/bumper/helper1/p/LgcQYN/j, packet_id=None), payload=PublishPayload(data='bytearray(b\'{"ret":"ok","ver":"0.3.5e"}\')'))
[2019-09-29 10:15:00,366] :: DEBUG :: hbmqtt.broker.plugins.packet_logger_plugin :: logging :: on_mqtt_packet_sent :: 44 :: fhemuser@bumper/GLB19396e86 -out-> PublishPacket(ts=2019-09-29 10:15:00.254909, fixed=MQTTFixedHeader(length=128, flags=0x0), variable=PublishVariableHeader(topic=iot/p2p/GetWKVer/serial_no_bot/02uwxm/Uq7d/helper1/bumper/helper1/p/LgcQYN/j, packet_id=None), payload=PublishPayload(data='bytearray(b\'{"ret":"ok","ver":"0.3.5e"}\')'))
[2019-09-29 10:15:00,525] :: DEBUG :: hbmqtt.client.plugins.packet_logger_plugin :: logging :: on_mqtt_packet_received :: 34 :: helper1@bumper/helper1 <-in-- PublishPacket(ts=2019-09-29 10:15:00.462339, fixed=MQTTFixedHeader(length=128, flags=0x0), variable=PublishVariableHeader(topic=iot/p2p/GetWKVer/serial_no_bot/02uwxm/Uq7d/helper1/bumper/helper1/p/LgcQYN/j, packet_id=None), payload=PublishPayload(data='bytearray(b\'{"ret":"ok","ver":"0.3.5e"}\')'))
[2019-09-29 10:15:00,544] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: handle_publish :: 566 :: Message queue size: 1
[2019-09-29 10:15:00,569] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: mqtt_deliver_next_message :: 465 :: Delivering message <hbmqtt.session.IncomingApplicationMessage object at 0xb56396f0>
[2019-09-29 10:15:00,639] :: DEBUG :: hbmqtt.client :: client :: deliver_message :: 331 :: Waiting message delivery

Only difference I can see is the "j" instead of "x" in topic. Change in command sent by my mqtt-client doesn't help for other commands.

Do you see anything that could help ? Any further informations from logging needed ?

bmartin5692 commented 5 years ago

Are you able to use the official Ecovacs app with Bumper? It would be useful to see what the app is sending for commands.

I opened a new issue in the Sucks project #80 regarding what I saw with @uchagani's output. You are correct the Ozmo950 and your Ozmo Slim10 seem to be using a new communication protocol of all json commands instead of the xml commands of previous bots.

bmartin5692 commented 5 years ago

@KoelnSolar - Can you pull the latest Ozmo950 branch and report if it works? @uchagani was able to test last night with success.

KoelnSolar commented 5 years ago

Unfortunately it changed nothing. ;-(

With your explanation of x and j I figured out following things:

since I received iot/atr/GetIOTConnStatus/+/+/+/j {'td': ....} I tried to publish iot/p2p/GetIOTConnStatus/helper1/bumper/helper1/+/+/+/q/+/j {'td': 'Blabla'} and the bot answered with iot/p2p/GetIOTConnStatus/+/+/+/helper1/bumper/helper1/p/+/j {'td': '....'}

But with other commands I tried it didn't work. Any further idea ?

Edit: The bot publishs topics e.g. iot/atr/ChargeState/+/+/+/x

bmartin5692 commented 5 years ago

It sounds like your bot communicates similar to my 901. I'm surprised it doesn't work. I'm a bit confused about how you are using this and issuing commands though. Are you using the Ecovacs app or something else to try to control the bot?

KoelnSolar commented 5 years ago

bumper Ozmo950-branch on Rpi2(tcpdump installed) Ecovacs Home App V1.2.1 in Android-Emulation-Environment on Win-Tablet. Android 5.1.1

2 additional mqtt-clients. mqtt.fx on Win-PC(Wireshark installed) mainly to monitor topics. subscription to #. The other client is part of the smart-home-system FHEM(Rpi3) with which I receive already the messages published by bumper.

Using the app and ecovacs-servers it works fine.

In my bumper environment , I'm able to analyze traffic. But no idea to catch and analyze traffic if using ecovacs-servers. Only thing are the used servers(captured by pi-hole). eco-de-api.ecovacs.com com.ecovacs.ecosphere.International bigdata-international.ecovacs.com msg-ww.ecouser.net recommender.ecovacs.com gl-de-openapi.ecovacs.com msg-ww.ecouser.net portal-ww.ecouser.net bigdata-europe.ecovacs.com gl-de-api.ecovacs.com mq-ww.ecouser.net com.eco.global.app

uchagani commented 5 years ago

Can you get a hold of an android iOS device? If so, I can show you how to capture traffic via mitmproxy. My guess is that the layers of emulations and such are the problem here.

On Thu, Oct 3, 2019 at 9:52 AM KoelnSolar notifications@github.com wrote:

bumper Ozmo950-branch on Rpi2(tcpdump installed) Ecovacs Home App V1.2.1 in Android-Emulation-Environment on Win-Tablet. Android 5.1.1

2 additional mqtt-clients. mqtt.fx on Win-PC(Wireshark installed) mainly to monitor topics. subscription to #. The other client is part of the smart-home-system FHEM(Rpi3) with which I receive already the messages published by bumper.

Using the app and ecovacs-servers it works fine.

In my environment , I'm able to analyze traffic. But no idea to catch and analyze traffic if using ecovacs-servers. Only thing are the used servers(captured by pi-hole). eco-de-api.ecovacs.com com.ecovacs.ecosphere.International bigdata-international.ecovacs.com msg-ww.ecouser.net recommender.ecovacs.com gl-de-openapi.ecovacs.com msg-ww.ecouser.net portal-ww.ecouser.net bigdata-europe.ecovacs.com gl-de-api.ecovacs.com mq-ww.ecouser.net com.eco.global.app

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/bmartin5692/bumper/issues/51?email_source=notifications&email_token=AAIBHEHGDWOFOZSGCHCACYLQMX2IVA5CNFSM4IVCCHUKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEAIIVZY#issuecomment-537955047, or mute the thread https://github.com/notifications/unsubscribe-auth/AAIBHEE74THBRWNOR4NVHY3QMX2IVANCNFSM4IVCCHUA .

KoelnSolar commented 5 years ago

Would be an option, but I can't. ;-(

My guess is that the layers of emulations and such are the problem here. >

No, I don't think so since the app is ok with ecovacs-servers, but with bumper commands are issued but the bot doesn't answer. Only the 2 json-commands mentioned above give a reply.

uchagani commented 5 years ago

In order to use the app with bumper you need to install the certificates and I'm wondering if that is what is causing the problem.

On Thu, Oct 3, 2019 at 11:05 AM KoelnSolar notifications@github.com wrote:

Would be an option, but I can't. ;-( '''My guess is that the layers of emulations and such are the problem here.''' No, I don't think so since the app is ok with ecovacs-servers, but with bumper commands are issued but the bot doesn't answer. Only the 2 json-commands mentioned above give a reply.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/bmartin5692/bumper/issues/51?email_source=notifications&email_token=AAIBHEH7FYOD7MS3OPZP2OTQMYC2ZA5CNFSM4IVCCHUKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEAIQIZI#issuecomment-537986149, or mute the thread https://github.com/notifications/unsubscribe-auth/AAIBHEEVMHQH5CXADACZVGDQMYC2ZANCNFSM4IVCCHUA .

KoelnSolar commented 5 years ago

Maybe. But isn't the reception of bot's status publishing and reply on json-commands a contra indicator ? I've only installed ca.cert. Edit: found a 3d json command: GetNetInfo


[2019-10-03 18:12:50,946] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: handle_publish :: 566 :: Message queue size: 1
[2019-10-03 18:12:50,973] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: mqtt_deliver_next_message :: 465 :: Delivering message <hbmqtt.session.IncomingApplicationMessage object at 0xb4d22270>
[2019-10-03 18:12:50,994] :: DEBUG :: hbmqtt.broker :: broker :: client_connected :: 484 :: fhemuser@bumper/GLB19396e86 handling message delivery
[2019-10-03 18:12:51,031] :: DEBUG :: hbmqtt.broker :: broker :: _broadcast_loop :: 697 :: broadcasting {'session': Session(clientId=fhemuser@bumper/GLB19396e86, state=connected), 'topic': 'iot/p2p/GetNetInfo/helper1/bumper/helper1/serial_no_bot/02uwxm/Uq7d/q/xyz124/j', 'data': bytearray(b"{\'td\': \'BlaBla\'}")}
[2019-10-03 18:12:51,043] :: DEBUG :: hbmqtt.broker :: broker :: _broadcast_loop :: 709 :: broadcasting application message from (client id=fhemuser@bumper/GLB19396e86) on topic 'iot/p2p/GetNetInfo/helper1/bumper/helper1/serial_no_bot/02uwxm/Uq7d/q/xyz124/j' to (client id=helper1@bumper/helper1)
[2019-10-03 18:12:51,064] :: DEBUG :: hbmqtt.broker :: broker :: _broadcast_loop :: 709 :: broadcasting application message from (client id=fhemuser@bumper/GLB19396e86) on topic 'iot/p2p/GetNetInfo/helper1/bumper/helper1/serial_no_bot/02uwxm/Uq7d/q/xyz124/j' to (client id=serial_no_bot@02uwxm/Uq7d)
[2019-10-03 18:12:51,084] :: DEBUG :: hbmqtt.broker :: broker :: _broadcast_loop :: 709 :: broadcasting application message from (client id=fhemuser@bumper/GLB19396e86) on topic 'iot/p2p/GetNetInfo/helper1/bumper/helper1/serial_no_bot/02uwxm/Uq7d/q/xyz124/j' to (client id=fhemuser@bumper/GLB19396e86)
[2019-10-03 18:12:51,116] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: mqtt_deliver_next_message :: 459 :: 0 message(s) available for delivery
[2019-10-03 18:12:51,337] :: DEBUG :: hbmqtt.broker.plugins.packet_logger_plugin :: logging :: on_mqtt_packet_sent :: 44 :: helper1@bumper/helper1 -out-> PublishPacket(ts=2019-10-03 18:12:51.142638, fixed=MQTTFixedHeader(length=119, flags=0x0), variable=PublishVariableHeader(topic=iot/p2p/GetNetInfo/helper1/bumper/helper1/serial_no_bot/02uwxm/Uq7d/q/xyz124/j, packet_id=None), payload=PublishPayload(data='bytearray(b"{\\\'td\\\': \\\'BlaBla\\\'}")'))
[2019-10-03 18:12:51,383] :: DEBUG :: hbmqtt.broker.plugins.packet_logger_plugin :: logging :: on_mqtt_packet_sent :: 44 :: serial_no_bot@02uwxm/Uq7d -out-> PublishPacket(ts=2019-10-03 18:12:51.202362, fixed=MQTTFixedHeader(length=119, flags=0x0), variable=PublishVariableHeader(topic=iot/p2p/GetNetInfo/helper1/bumper/helper1/serial_no_bot/02uwxm/Uq7d/q/xyz124/j, packet_id=None), payload=PublishPayload(data='bytearray(b"{\\\'td\\\': \\\'BlaBla\\\'}")'))
[2019-10-03 18:12:51,404] :: DEBUG :: hbmqtt.broker.plugins.packet_logger_plugin :: logging :: on_mqtt_packet_sent :: 44 :: fhemuser@bumper/GLB19396e86 -out-> PublishPacket(ts=2019-10-03 18:12:51.274137, fixed=MQTTFixedHeader(length=119, flags=0x0), variable=PublishVariableHeader(topic=iot/p2p/GetNetInfo/helper1/bumper/helper1/serial_no_bot/02uwxm/Uq7d/q/xyz124/j, packet_id=None), payload=PublishPayload(data='bytearray(b"{\\\'td\\\': \\\'BlaBla\\\'}")'))
[2019-10-03 18:12:51,669] :: DEBUG :: hbmqtt.client.plugins.packet_logger_plugin :: logging :: on_mqtt_packet_received :: 34 :: helper1@bumper/helper1 <-in-- PublishPacket(ts=2019-10-03 18:12:51.478127, fixed=MQTTFixedHeader(length=119, flags=0x0), variable=PublishVariableHeader(topic=iot/p2p/GetNetInfo/helper1/bumper/helper1/serial_no_bot/02uwxm/Uq7d/q/xyz124/j, packet_id=None), payload=PublishPayload(data='bytearray(b"{\\\'td\\\': \\\'BlaBla\\\'}")'))
[2019-10-03 18:12:51,699] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: handle_publish :: 566 :: Message queue size: 1
[2019-10-03 18:12:51,749] :: DEBUG :: hbmqtt.broker.plugins.packet_logger_plugin :: logging :: on_mqtt_packet_received :: 34 :: serial_no_bot@02uwxm/Uq7d <-in-- PublishPacket(ts=2019-10-03 18:12:51.566787, fixed=MQTTFixedHeader(length=214, flags=0x0), variable=PublishVariableHeader(topic=iot/p2p/GetNetInfo/serial_no_bot/02uwxm/Uq7d/helper1/bumper/helper1/p/xyz124/j, packet_id=None), payload=PublishPayload(data='bytearray(b\'{"ret":"ok","s":"mySSID","p":"myPassword","wi":"mybotIP","wm":"mybotMAC","st":"-79"}\')'))
[2019-10-03 18:12:51,778] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: handle_publish :: 566 :: Message queue size: 1
[2019-10-03 18:12:51,813] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: mqtt_deliver_next_message :: 465 :: Delivering message <hbmqtt.session.IncomingApplicationMessage object at 0xb4d22108>
[2019-10-03 18:12:51,845] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: mqtt_deliver_next_message :: 465 :: Delivering message <hbmqtt.session.IncomingApplicationMessage object at 0xb4d4a858>
[2019-10-03 18:12:51,901] :: DEBUG :: hbmqtt.client :: client :: deliver_message :: 331 :: Waiting message delivery
[2019-10-03 18:12:51,920] :: DEBUG :: hbmqtt.broker :: broker :: client_connected :: 484 :: serial_no_bot@02uwxm/Uq7d handling message delivery
[2019-10-03 18:12:51,952] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: mqtt_deliver_next_message :: 459 :: 0 message(s) available for delivery
[2019-10-03 18:12:51,969] :: DEBUG :: hbmqtt.broker :: broker :: _broadcast_loop :: 697 :: broadcasting {'session': Session(clientId=serial_no_bot@02uwxm/Uq7d, state=connected), 'topic': 'iot/p2p/GetNetInfo/serial_no_bot/02uwxm/Uq7d/helper1/bumper/helper1/p/xyz124/j', 'data': bytearray(b'{"ret":"ok","s":"mySSID","p":"myPassword","wi":"mybotIP","wm":"mybotMAC","st":"-79"}')}
[2019-10-03 18:12:51,981] :: DEBUG :: hbmqtt.broker :: broker :: _broadcast_loop :: 709 :: broadcasting application message from (client id=serial_no_bot@02uwxm/Uq7d) on topic 'iot/p2p/GetNetInfo/serial_no_bot/02uwxm/Uq7d/helper1/bumper/helper1/p/xyz124/j' to (client id=helper1@bumper/helper1)
[2019-10-03 18:12:52,008] :: DEBUG :: hbmqtt.broker :: broker :: _broadcast_loop :: 709 :: broadcasting application message from (client id=serial_no_bot@02uwxm/Uq7d) on topic 'iot/p2p/GetNetInfo/serial_no_bot/02uwxm/Uq7d/helper1/bumper/helper1/p/xyz124/j' to (client id=fhemuser@bumper/GLB19396e86)
[2019-10-03 18:12:52,034] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: mqtt_deliver_next_message :: 459 :: 0 message(s) available for delivery
[2019-10-03 18:12:52,117] :: DEBUG :: hbmqtt.broker.plugins.packet_logger_plugin :: logging :: on_mqtt_packet_sent :: 44 :: helper1@bumper/helper1 -out-> PublishPacket(ts=2019-10-03 18:12:52.054347, fixed=MQTTFixedHeader(length=214, flags=0x0), variable=PublishVariableHeader(topic=iot/p2p/GetNetInfo/serial_no_bot/02uwxm/Uq7d/helper1/bumper/helper1/p/xyz124/j, packet_id=None), payload=PublishPayload(data='bytearray(b\'{"ret":"ok","s":"mySSID","p":"myPassword","wi":"mybotIP","wm":"mybotMAC","st":"-79"}\')'))
[2019-10-03 18:12:52,138] :: DEBUG :: hbmqtt.broker.plugins.packet_logger_plugin :: logging :: on_mqtt_packet_sent :: 44 :: fhemuser@bumper/GLB19396e86 -out-> PublishPacket(ts=2019-10-03 18:12:52.083839, fixed=MQTTFixedHeader(length=214, flags=0x0), variable=PublishVariableHeader(topic=iot/p2p/GetNetInfo/serial_no_bot/02uwxm/Uq7d/helper1/bumper/helper1/p/xyz124/j, packet_id=None), payload=PublishPayload(data='bytearray(b\'{"ret":"ok","s":"mySSID","p":"myPassword","wi":"mybotIP","wm":"mybotMAC","st":"-79"}\')'))
[2019-10-03 18:12:52,229] :: DEBUG :: hbmqtt.client.plugins.packet_logger_plugin :: logging :: on_mqtt_packet_received :: 34 :: helper1@bumper/helper1 <-in-- PublishPacket(ts=2019-10-03 18:12:52.189919, fixed=MQTTFixedHeader(length=214, flags=0x0), variable=PublishVariableHeader(topic=iot/p2p/GetNetInfo/serial_no_bot/02uwxm/Uq7d/helper1/bumper/helper1/p/xyz124/j, packet_id=None), payload=PublishPayload(data='bytearray(b\'{"ret":"ok","s":"mySSID","p":"myPassword","wi":"mybotIP","wm":"mybotMAC","st":"-79"}\')'))
[2019-10-03 18:12:52,254] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: handle_publish :: 566 :: Message queue size: 1
[2019-10-03 18:12:52,274] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: mqtt_deliver_next_message :: 465 :: Delivering message <hbmqtt.session.IncomingApplicationMessage object at 0xb4d7a4b0>
[2019-10-03 18:12:52,315] :: DEBUG :: hbmqtt.client :: client :: deliver_message :: 331 :: Waiting message delivery
[2019-10-03 18:12:52,333] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: mqtt_deliver_next_message :: 459 :: 0 message(s) available for delivery```
KoelnSolar commented 5 years ago

I've installed now Wireshark on the Win-Tablet. These are the servers the Home-App communicates with:portal-ww.ecouser.net, msg-ww.ecouser.net [47.91.67.63] port: 443, 5223 gl-de-openapi.ecovacs.com [47.91.65.136] port: 443 bigdata-europe.ecovacs.com [47.91.65.122] port: 443 Responses seem to be received from mq-ww.ecouser.net [47.254.143.26] port: 8883 Is it possible with the information of Wireshark to connect as a client(mqtt.fx)to the mqtt-Server and to emulate the bot to receive the decrypted mqtt-commands ? May I'm able to decrypt the Wireshark captures ? Other ideas to analyze my problem ?

Edit: captured now a beep-comand out of the app: {"td":"q", "toId":"myBot", "toType":"02uwxm", "toRes":"Uq7d", "cmdName":"PlaySound", "payloadType":"x", "auth":{"with":"users","userid":"myUserid","realm":"ecouser.net", "token":"myToken","resource":"GLB19396e86"}, "payload":"<ctl sid='0'\/>"} Is it just the small difference in the payload ? (receiving \ issued by bumper)

Edit2: The GetNetInfo in Json: {"td":"q","toId":"myBot","toType":"02uwxm","toRes":"Uq7d","cmdName":"GetNetInfo", "payloadType":"j","auth":"with":"users","userid":"myUserid","realm":"ecouser.net","token":"myToken","resource":"GLB19396e86"}, "payload":{"td":"GetNetInfo"}}

KoelnSolar commented 4 years ago

No ideas ? I currently updated the App to a new version, but the situation ist still the same.

The App communicates in json for GetNetInfo, GetWKVer and GetIOTConnStatus, e.g. Topic: iot/p2p/GetWKVer/helper1/bumper/helper1/myBot/02uwxm/Uq7d/q/BCnGPd/j - Message: {"td": "GetWKVer"} answerTopic: iot/p2p/GetWKVer/myBot/02uwxm/Uq7d/helper1/bumper/helper1/p/BCnGPd/j - Message: {"ret":"ok","ver":"0.3.5e"} All other commands do not use json, e.g. Topic: iot/p2p/GetBatteryInfo/helper1/bumper/helper1/myBot/02uwxm/Uq7d/q/xyz123/x - Message: <ctl/> All these commands are not answered by the bot.

Broadcasts by the bot are ALL received with e.g. Topic: iot/atr/BatteryInfo/myBot/02uwxm/Uq7d/x - Message: <ctl td='BatteryInfo'><battery power='112'/></ctl>

I'm still confused about that behaviour. What might be the reason ? The App works fine if I use it without bumper. But I've no idea how to catch the issued commands. Any suggestions appreciated !

@uchagani: can you please post your json-commands out of the helperbot-log to give me a hint about the syntax to try to issue them with my MQTT-tool.

bmartin5692 commented 4 years ago

@KoelnSolar - Per #61 - Could you try with the extend-confserver-logging branch with --debug enabled? This should give me more detailed logs on what is happening in your setup. Please send me the logs via gitter (https://gitter.im/ecovacs-bumper) for review when you have them.

yoyotogblo commented 4 years ago

@uchagani Please can you confirm sucks and bumper work for the Deebor Ozmo 950 using @bmartin5692 's branch? Looking to buy it and want to make sure I can integrate it into homeassistant.

Thanks!

uchagani commented 4 years ago

I can confirm that Bumper works but sucks does not. It needs to be updated to work.

On Sat, Dec 21, 2019 at 12:37 PM gbenrus25 notifications@github.com wrote:

@uchagani https://github.com/uchagani Please can you confirm sucks and bumper work for the Deebor Ozmo 950 using @bmartin5692 https://github.com/bmartin5692 's branch? Looking to buy it and want to make sure I can integrate it into homeassistant.

Thanks!

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/bmartin5692/bumper/issues/51?email_source=notifications&email_token=AAIBHEFFYX2DPBENFLRAIWLQZZH53A5CNFSM4IVCCHUKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEHPAKKY#issuecomment-568198443, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAIBHEBXM5XYPXTKTJYP2R3QZZH53ANCNFSM4IVCCHUA .

simonvanderveldt commented 4 years ago

I can confirm that Bumper works but sucks does not. It needs to be updated to work.

@uchagani Do you have an idea what kind of changes to sucks would be necessary? Just some small additions of certain commands or larger changes?

bmartin5692 commented 4 years ago

Its quite a bit of work - I just did some quick changes for basic testing here: https://github.com/bmartin5692/sucks/tree/add-jsonSupport

Right now this will only work using custom commands, sucks would need many changes to do this automatically for the various bot types.

But for example using this branch you could issues a command that is in json like so: vacbot.run(VacBotCommand("GetWKVer", {}), isjson=True)

My bot only has this one json command, so maybe someone with a 950 could take this and run with it to extend it further.

And3rsL commented 4 years ago

I made a working prototype for Ozmo 950 of library and hassio component

https://github.com/And3rsL/Deebot-for-hassio

I cant test for other robots because i doesnt have it

feel free to get/integrate everything