Giter Club home page Giter Club logo

bumper's Introduction

License GPLv3

Bumper

Bumper is a standalone and self-hosted implementation of the central server used by Ecovacs vacuum robots. Bumper allows you to have full control of your Ecovacs robots, without the robots or app talking to the Ecovacs servers and transmitting data outside of your home.

Bumper Diagram

Note: The current master branch is unstable, and in active development.

Build Status

Master Branch Status
AppVeyor (Win32) AppVeyor branch
TravisCI (Linux) Travis (.org) branch
Docker Hub Docker Build
CodeCov Coverage Codecov branch

Community: A Gitter community has been created for Bumper so users can chat and dig into issues outside of Github, join us here: Gitter chat

Testing needed Bumper needs users to assist with testing in order to ensure compatability as bumper moves forward! If you've tested Bumper with your bot, please open an issue with details on success or issues.

Please note: this software is experimental and not ready for production use. Use at your own risk.

Why?

For fun, mostly :)

But seriously, there are a several reasons for eliminating the central server:

  1. Convenience: It works without an internet connection or if Ecovacs servers are down
  2. Performance: No need for messages to travel to Ecovacs server and back.
  3. Security: We can completely isolate the robot from the public Internet.

Compatibility

As work to reverse the protocols and provide a self-hosted central server is still in progress, Bumper has had limited testing. There are a number of EcoVacs models that it hasn't been tested against. Bumper should be compatible with most wifi-enabled robots that use either the Ecovacs Android/iOS app or the Ecovacs Home Android/iOS app, but has only been reported to work on the below:

Model Protocol Used Bumper Version Tested EcoVacs App Tested
Deebot 900/901 MQTT master Ecovacs/Ecovacs Home
Deebot 600 MQTT master Ecovacs Home
Deebot Ozmo 950 MQTT master Ecovacs Home
Deebot Ozmo 601 XMPP master Ecovacs
Deebot Ozmo 930 XMPP master Ecovacs
Deebot M81 Pro XMPP v0.1.0 Ecovacs

Documentation and Getting Started

See the documentation on Read the Docs


Thanks

A big thanks to the original project creator @torbjornaxelsson, without his work this project would have taken much longer to build.

Bumper wouldn't exist without Sucks, an open source client for Ecovacs robots. Thanks to @wpietri and contributors!

bumper's People

Contributors

aharter avatar bmartin5692 avatar edenhaus avatar kushagharahi avatar torbjornaxelsson avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bumper's Issues

Crash on "Creating certificates" when running docker on arm64/aarch64

Describe the bug
Hi, I'm trying to run your docker container on a arm64/aarch64 computer and, when starting, it does output "Creating certificates", but then the docker container die just after.

I tried running it on my pc (amd64) and it seems to be ok

To Reproduce
Steps to reproduce the behavior:

  1. docker pull bmartin5692/bumper
  2. docker run -it -e "BUMPER_ANNOUNCE_IP=192.168.0.198" -p 443:443 -p 8007:8007 -p 888
    3:8883 -p 5223:5223 --name bumper2 bmartin5692/bumper

Expected behavior
after "Creating Certificates", the container should generate them and continue running

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: Ubuntu

Additional context
Add any other context about the problem here.

Authentication and Permissions

Related to #7

The EcoVacs app encrypts the username/password with the public key of EcoVacs when authenticating. Since we don't have the private key to decrypt, there is no way to provide true security and authentication within bumper. Bumper is not able to get the submitted username/e-mail/password of the user connecting.

What can be done:

  1. Simple auth via the web server
    • This would break the apps and require custom sucks clients
  2. Use a simple but insecure authentication mechanism based on what clients send, then track those with permissions a user can configure.

Going with the idea of option 2:
Each client app (iPhone, Android, Sucks) has a deviceid that is submitted when logging in.

With this new mechanism users will be able to:

  • Configure user accounts in bumper.
    • Each user account can have one or more client deviceids attached to it.
    • Each user account can have one or more bots attached to it.

When a user connects with a client, bumper will correlate the deviceid to the user account. Then a unique token will be generated similar to how EcoVacs tracks them and that token will be tracked as part of the session. Tokens will be destroyed at logout or after X amount of time.

Bumper will only provide a list of bots that the user has attached to their account.

With this in place, additional layers can be added on top such as IP filtering.

Error when using Sucks

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="[email protected]/B32868DB5C8A43D2AB00127753213F16" from="[email protected]/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):

  • OS: Ubuntu 19

Vacuum (please complete the following information):

  • Model: Ecovacs Deebot Ozmo 950

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?

Make it secure

From original bumper:

  • IP filtering to only accept connections from trusted clients
  • Update documentation with security notes and best practices (run on a trusted local network behind firewall, block outside connections)
  • Possibly implement XMPP TLS encryption (currently bypassed) - Closed by #35

EcoVacs Home App Compatibility

Bumper only supports the "EcoVacs" app, but not the "EcoVacs Home" app.

Investigate API differences to allow Bumper to work with EcoVacs Home as well.

Ozmo 950 Not Working..how to debug?

Describe the bug
My new Ozmo 950 is not working with Bumper. I've configured the DNS (verified by pinging addresses) and am running bumper on my server. I see no connection messages in the logs and when running the app on my iPhone I get the error Data submission error. Please try again (207, -1004) error. The first 3 digit error code (207) keeps changing.

Bumper logs:

[2019-09-09 15:17:42,838] :: INFO :: bumper :: Starting Bumper
[2019-09-09 15:17:42,839] :: INFO :: mqttserver :: Starting MQTT Server at 127.0.1.1:8883
[2019-09-09 15:17:42,890] :: INFO :: xmppserver :: Starting XMPP Server at 127.0.1.1:5223
[2019-09-09 15:17:43,990] :: INFO :: confserver :: Starting ConfServer at 127.0.1.1:443
[2019-09-09 15:17:43,992] :: INFO :: confserver :: Starting ConfServer at 127.0.1.1:8007

Desktop (please complete the following information):

  • OS: Ubuntu 19

Smartphone (please complete the following information):

  • Device: iPhone XS Max
  • OS: iOS 12.4.1

Vacuum (please complete the following information):

  • Model: Ecovacs Deebot Ozmo 950

Create Home Assistant Add-on?

So I have a N79 (XMPP) bot that I currently control using SUCKS through Home Assistant. It usually works but internet outages cause persistent failures that require a reboot of the Home Assistant server.

Ideally, bumper could solve connectivity issues by interacting directly with SUCKS and Home Assistant through Home Assistants Add-on functionality.

https://developers.home-assistant.io/docs/en/hassio_addon_tutorial.html

I don't know how to do this.

My understanding is that Add-ons are just docker containers that are run by Hassio, so I should be able to just configure Hassio to run the bumper docker image?

Can you give me any advice here?

Thanks.

Online status is "Offline"

Describe the bug
With the Ecovacs HOME app and a OZMO 950 connected to bumper, I found that the online-status of the robot is displayed as"Offline" when e.g. returning from the robot's "detail view" (i.e. from the screen where you control and observe the robot).

To Reproduce

  1. Start app.
  2. Select the robot.
  3. Hit the "<" button

Expected behavior
The online-status in the robots list should reflect the real status of the bot.

Screenshots
image

Desktop:

  • OS: Debian Buster

Smartphone:

  • Device: SM-N950F
  • OS: Android 8.0.0

Vacuum:

  • Model: OZMO950

Cleaning logs aren't shown in EcoVacs Home app for some bots

The cleaning logs aren't returned for some bots in the EcoVacs Home app. So far this appears to be for newer bots (Ozmo950). A workaround was put in place for at least the D901 by capturing the request and sending a modified command to the bot.

In the case of the Ozmo950 it is uses a new json based protocol which utilizes a new format and headers for all commands sent.

The app makes a request for the following:
Method: POST
Path: /api/lg/log.do?u=tmpuser&av=1.2.1&cv=1.94.28&td=GetCleanLogs&t=i
Body: {'did': 'test_did', 'country': 'US', 'td': 'GetCleanLogs', 'auth': {'token': 'test_token', 'resource': 'app_resource', 'userid': 'tmpuser', 'with': 'users', 'realm': 'ecouser.net'}, 'resource': 'bot_resource'}

The proper command to send to the bot needs to be identified, then the results reviewed to determine if further modification is required for it to be displayed properly in the app.

MQTT connection failed

Describe the bug
After i start bumper on my Pi, i get a few Warnings and an Error regarding MQTT functionality, and neither the vacuum nor my mobile are able to connect. A ping from my Laptop shows that the DNS-Forwarding works as expected.
I had a few other issues durings installation, which i was able to solve myself:

  • startup says "creating certificates", but does nothing and closes
    Solution: execute
cd create_certs
chmod +x create_certs_rpi
cd ..
cd certs
../create_certs/create_certs_rpi
  • startup shows an Error about a missing passwd-file and closes
    Solution: execute
    sudo nano bumper/passwd
    and write asdfgh into file.

To Reproduce
Steps to reproduce the behavior:

  1. Log into RPi
  2. execute "pipenv run python3.8 -m bumper"

Expected behavior
Normal startup ;)

Screenshots

pi@DNS-Pi:~/bumper $ pipenv run python3.8 -m bumper
[2019-12-18 01:49:47,872] :: INFO :: bumper :: Starting Bumper
[2019-12-18 01:49:47,875] :: INFO :: mqttserver :: Starting MQTT Server at 127.0.1.1:8883
[2019-12-18 01:49:48,129] :: INFO :: xmppserver :: Starting XMPP Server at 127.0.1.1:5223
[2019-12-18 01:49:48,131] :: WARNING :: hbmqtt.client :: MQTT connection failed: ConnectionRefusedError(111, "Connect call failed ('127.0.1.1', 8883)")
[2019-12-18 01:49:48,132] :: WARNING :: hbmqtt.client :: Connection failed: ConnectException(ConnectionRefusedError(111, "Connect call failed ('127.0.1.1', 8883)"))
[2019-12-18 01:49:49,147] :: WARNING :: hbmqtt.client :: MQTT connection failed: ConnectionRefusedError(111, "Connect call failed ('127.0.1.1', 8883)")
[2019-12-18 01:49:49,150] :: WARNING :: hbmqtt.client :: Reconnection attempt failed: ConnectException(ConnectionRefusedError(111, "Connect call failed ('127.0.1.1', 8883)"))
[2019-12-18 01:49:51,157] :: WARNING :: hbmqtt.client :: MQTT connection failed: ConnectionRefusedError(111, "Connect call failed ('127.0.1.1', 8883)")
[2019-12-18 01:49:51,160] :: WARNING :: hbmqtt.client :: Reconnection attempt failed: ConnectException(ConnectionRefusedError(111, "Connect call failed ('127.0.1.1', 8883)"))
[2019-12-18 01:49:55,168] :: WARNING :: hbmqtt.client :: MQTT connection failed: ConnectionRefusedError(111, "Connect call failed ('127.0.1.1', 8883)")
[2019-12-18 01:49:55,170] :: WARNING :: hbmqtt.client :: Reconnection attempt failed: ConnectException(ConnectionRefusedError(111, "Connect call failed ('127.0.1.1', 8883)"))
[2019-12-18 01:49:55,172] :: ERROR :: hbmqtt.client :: Maximum number of connection attempts reached. Reconnection aborted

Desktop:

  • OS: Raspbian 9 (Stretch)
  • Kernel: 4.19.66-v7+
  • Hardware: Raspberry Pi 3B

Smartphone:

  • Device: BlackBerry KeyOne
  • OS: Android 8.1.0
  • ECOVACS-App: 1.4.9.190315.1

Vacuum:

  • Model: Deebot R95 MkII

No module named aiohttp

Hi, I try to use the docker environment for bumper.
When I try to run the package i receive following error:

Traceback (most recent call last):
File "/usr/local/lib/python3.7/runpy.py", line 183, in _run_module_as_main
mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
File "/usr/local/lib/python3.7/runpy.py", line 142, in _get_module_details
return _get_module_details(pkg_main_name, error)
File "/usr/local/lib/python3.7/runpy.py", line 109, in _get_module_details
import(pkg_name)
File "/bumper/bumper/init.py", line 3, in
from bumper.confserver import ConfServer
File "/bumper/bumper/confserver.py", line 12, in
from aiohttp import web
ModuleNotFoundError: No module named 'aiohttp'

Thank you for your help

Run as a daemon

From original bumper:
Bumper should be able to run as a background daemon/service with logging and automatic restart if it crashes.

Sucks not able to control Deebot

Describe the bug
I'm able to control my M80 Pro using the Ecovacs Home app but not using sucks (0.9.4). I tried with multiple sucks version, verified DNS redirect, etc. As everything is working from the Android app, I'm expecting sucks to be able to control it too

P.S.: I also tried with your fork of sucks with the same result

P.P.S.: There's no output from bumper when receiving the commands. When commands are sent from the Ecovacs Android App, this message appear (but command is executed by the deebot)
[2020-01-01 08:44:24,447] :: ERROR :: boterror :: Received Error from (192.168.8.104:11426 | [email protected]/atom) -

Thanks for your precious time

To Reproduce

  1. sucks login
  2. sucks clean 10 (or any command)

sucks output

sleekxmppfs.basexmpp WARNING  fulljid property deprecated. Use boundjid.resource
performing clean command
Traceback (most recent call last):
  File "/usr/local/bin/sucks", line 8, in <module>
    sys.exit(cli())
  File "/usr/local/lib/python3.6/site-packages/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python3.6/site-packages/click/core.py", line 1164, in invoke
    return _process_result(rv)
  File "/usr/local/lib/python3.6/site-packages/click/core.py", line 1102, in _process_result
    **ctx.params)
  File "/usr/local/lib/python3.6/site-packages/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/sucks/cli.py", line 219, in run
    vacbot.run(action.vac_command)
  File "/usr/local/lib/python3.6/site-packages/sucks/__init__.py", line 416, in run
    self.send_command(action.to_xml())
  File "/usr/local/lib/python3.6/site-packages/sucks/__init__.py", line 413, in send_command
    self.xmpp.send_command(xml, self._vacuum_address())
  File "/usr/local/lib/python3.6/site-packages/sucks/__init__.py", line 482, in send_command
    c.send()
  File "/usr/local/lib/python3.6/site-packages/sleekxmppfs/stanza/iq.py", line 235, in send
    raise IqError(result)
sleekxmppfs.exceptions.IqError: <iq type="error" to="[email protected]/8e8e3189bdcd1e0e0c2a22dba210945b" from="[email protected]/atom" id="b6ca5a49-1b5d-4308-9514-c470fe379d4d-3"><error type="wait" code="404"><recipient-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" /></error></iq>

Expected behavior
Deebot should execute the command

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: Linux

Smartphone (please complete the following information):

  • Device: Android

Vacuum (please complete the following information):

  • Model: Deebot M80 Pro

Additional context
Add any other context about the problem here.

Robot not showing up in ECOVACS HOME app (Android)

I eventually managed to have the Ecovacs HOME app connect with bumper (thanks for your support see #65), but now I've got a new problem. It seems the OZMO 950 connects to bumper. It even seems to send event messages (e.g. when I pick it up from the floor, or when the dustbin is removed,...) to bumper.
confserver (via HTTPS port 443) reports the bot:
{"bots": [{"class": "yna5xi", "company": "eco-ng", "did": "a1406f11-8347-467e-b427-bd9db848c637", "name": "E0001279619603622747", "nick": "", "resource": "MhP5", "mqtt_connection": true, "xmpp_connection": false}], "clients": [{"userid": "dlzjucy54a7d7d85", "realm": "ecouser", "resource": "GLB82514e95", "mqtt_connection": false, "xmpp_connection": false}, {"userid": "dlzjucy54a7d7d85", "realm": "ecouser", "resource": "GLB6c726759", "mqtt_connection": false, "xmpp_connection": true}], "helperbot": [{"state": "connected"}], "mqtt_server": [{"state": "started"}, {"sessions": [{"count": 3}, {"clients": [[{"client_id": "helper1@bumper/helper1"}, {"state": "connected"}], [{"client_id": "dlzjucy54a7d7d85@ecouser/GLB6c726759"}, {"state": "disconnected"}], [{"client_id": "a1406f11-8347-467e-b427-bd9db848c637@yna5xi/MhP5"}, {"state": "connected"}]]}]}]}

I think this issue is related to #50 .

Describe the bug
After starting the app (respectively supplying login credentials at first start)
Data submission error. Please try again (,)
is reported for just a second or even less. Then comes the screen where it says "You don't have and ECOVACS robots." Refreshing the list returns very quickly (<1s), but doesn't change anything. Hitting "Add a Robot" leads to "The request timed out. Please try again."

To Reproduce
Steps to reproduce the behavior:

  1. Install and set up bumper. Install the bumper CA certificate on Android so that the app can access it.
  2. Wait until / make sure that the robot has connected to bumper.
  3. Open the Ecovacs HOME app and supply credentials when asked.
  4. On "you don't have any ECOVACS robots." swipe down to refresh.

Expected behavior
From my understanding robots logged into bumper (how exactly do I determine, a robot is on line?) should appear right away in the app. No errors should appear.

Smartphone:

  • Device: SM-N950F
  • OS: Android 8.0.0

Vacuum:

  • Model: Deebot OZMO 950

Rework XMPP for Asyncio

Relates to #22

The XMPP server code needs to be re-worked to function using asyncio. This is required for 1.0 and support of xmpp bots (N79/Ozmo/etc).

Individual log files for each service

I think it would be beneficial for confserver, mqtt, and xmpp to log to their own files for use in troubleshooting and separating the noise when debugging. I've also used bumper instead of wireshark and xmppeek recently for capturing bot communication and this would make it a bit easier to see the conversations.

MQTT connection failed:

Describe the bug
After i start bumper on my Linux Debian X86, i get a few Warnings and an Error regarding MQTT functionality, and neither the vacuum nor my mobile are able to connect. A ping from my Laptop shows that the DNS-Forwarding works as expected.

i also tried to start with/without sudo, i also tried with --listen --announce
which was suggested in this isseu ##64

To Reproduce
Steps to reproduce the behavior:

  1. i Downloaded bumper then i run pipenv install to install dependencies
    --> everything work well

after i start Bumper with sudo pipenv run python -m bumper

  1. See error

sudo pipenv run python -m bumper
[2020-01-06 07:32:02,212] :: INFO :: bumper :: Starting Bumper
[2020-01-06 07:32:02,248] :: INFO :: mqttserver :: Starting MQTT Server at 127.0.1.1:8883
[2020-01-06 07:32:02,252] :: INFO :: xmppserver :: Starting XMPP Server at 127.0.1.1:5223
[2020-01-06 07:32:02,253] :: WARNING :: hbmqtt.client :: MQTT connection failed: ConnectionRefusedError(111, "Connect call failed ('127.0.1.1', 8883)")
[2020-01-06 07:32:02,253] :: WARNING :: hbmqtt.client :: Connection failed: ConnectException(ConnectionRefusedError(111, "Connect call failed ('127.0.1.1', 8883)"))
[2020-01-06 07:32:02,254] :: INFO :: hbmqtt.broker :: Listener 'tls1' bind to 127.0.1.1:8883 (max_connections=-1)
[2020-01-06 07:32:03,267] :: INFO :: hbmqtt.broker :: Listener 'tls1': 1 connections acquired
[2020-01-06 07:32:03,267] :: INFO :: hbmqtt.broker :: Connection from 127.0.0.1:37232 on listener 'tls1'
[2020-01-06 07:32:03,268] :: INFO :: mqttserver :: Bumper Authentication Success - Helperbot: helperbot@bumper/helperbot

Desktop (please complete the following information):

  • OS: [Linux - Debian 4.19.67-2+deb10u2 (2019-11-11) x86_64 GNU/Linux ]

Vacuum (please complete the following information):

  • Model: [e.g. Deebot 950]

DEBUG

sudo pipenv run python -m bumper --debug
[2020-01-06 07:49:16,231] :: INFO :: bumper :: init :: start :: 194 :: Starting Bumper
[2020-01-06 07:49:16,233] :: DEBUG :: hbmqtt.broker.plugins :: manager :: _load_plugins :: 61 :: Loading plugins for namespace hbmqtt.broker.plugins
[2020-01-06 07:49:16,233] :: DEBUG :: hbmqtt.broker.plugins :: manager :: _load_plugin :: 69 :: Loading plugin bumper = bumper.mqttserver:BumperMQTTServer_Plugin
[2020-01-06 07:49:16,233] :: DEBUG :: hbmqtt.broker.plugins :: manager :: _load_plugin :: 71 :: Initializing plugin bumper = bumper.mqttserver:BumperMQTTServer_Plugin
[2020-01-06 07:49:16,233] :: DEBUG :: hbmqtt.broker.plugins.bumper :: mqttserver :: _read_password_file :: 318 :: Reading user database from /home/b0f1b0/Downloads/git/bumper/data/passwd
[2020-01-06 07:49:16,233] :: DEBUG :: hbmqtt.broker.plugins.bumper :: mqttserver :: _read_password_file :: 326 :: 0 user(s) read from file /home/b0f1b0/Downloads/git/bumper/data/passwd
[2020-01-06 07:49:16,234] :: DEBUG :: hbmqtt.broker.plugins :: manager :: _load_plugins :: 65 :: Plugin bumper ready
[2020-01-06 07:49:16,238] :: DEBUG :: hbmqtt.broker.plugins :: manager :: _load_plugin :: 69 :: Loading plugin auth_anonymous = hbmqtt.plugins.authentication:AnonymousAuthPlugin
[2020-01-06 07:49:16,269] :: DEBUG :: hbmqtt.broker.plugins :: manager :: _load_plugin :: 71 :: Initializing plugin auth_anonymous = hbmqtt.plugins.authentication:AnonymousAuthPlugin
[2020-01-06 07:49:16,269] :: DEBUG :: hbmqtt.broker.plugins :: manager :: _load_plugins :: 65 :: Plugin auth_anonymous ready
[2020-01-06 07:49:16,270] :: DEBUG :: hbmqtt.broker.plugins :: manager :: _load_plugin :: 69 :: Loading plugin auth_file = hbmqtt.plugins.authentication:FileAuthPlugin
[2020-01-06 07:49:16,270] :: DEBUG :: hbmqtt.broker.plugins :: manager :: _load_plugin :: 71 :: Initializing plugin auth_file = hbmqtt.plugins.authentication:FileAuthPlugin
[2020-01-06 07:49:16,271] :: DEBUG :: hbmqtt.broker.plugins.auth_file :: authentication :: _read_password_file :: 63 :: Reading user database from /home/b0f1b0/Downloads/git/bumper/data/passwd
[2020-01-06 07:49:16,271] :: DEBUG :: hbmqtt.broker.plugins.auth_file :: authentication :: _read_password_file :: 71 :: 0 user(s) read from file /home/b0f1b0/Downloads/git/bumper/data/passwd
[2020-01-06 07:49:16,271] :: DEBUG :: hbmqtt.broker.plugins :: manager :: _load_plugins :: 65 :: Plugin auth_file ready
[2020-01-06 07:49:16,271] :: DEBUG :: hbmqtt.broker.plugins :: manager :: _load_plugin :: 69 :: Loading plugin broker_sys = hbmqtt.plugins.sys.broker:BrokerSysPlugin
[2020-01-06 07:49:16,273] :: DEBUG :: hbmqtt.broker.plugins :: manager :: _load_plugin :: 71 :: Initializing plugin broker_sys = hbmqtt.plugins.sys.broker:BrokerSysPlugin
[2020-01-06 07:49:16,273] :: DEBUG :: hbmqtt.broker.plugins :: manager :: _load_plugins :: 65 :: Plugin broker_sys ready
[2020-01-06 07:49:16,273] :: DEBUG :: hbmqtt.broker.plugins :: manager :: _load_plugin :: 69 :: Loading plugin packet_logger_plugin = hbmqtt.plugins.logging:PacketLoggerPlugin
[2020-01-06 07:49:16,274] :: DEBUG :: hbmqtt.broker.plugins :: manager :: _load_plugin :: 71 :: Initializing plugin packet_logger_plugin = hbmqtt.plugins.logging:PacketLoggerPlugin
[2020-01-06 07:49:16,275] :: DEBUG :: hbmqtt.broker.plugins :: manager :: _load_plugins :: 65 :: Plugin packet_logger_plugin ready
[2020-01-06 07:49:16,275] :: DEBUG :: hbmqtt.broker.plugins :: manager :: _load_plugin :: 69 :: Loading plugin topic_taboo = hbmqtt.plugins.topic_checking:TopicTabooPlugin
[2020-01-06 07:49:16,275] :: DEBUG :: hbmqtt.broker.plugins :: manager :: _load_plugin :: 71 :: Initializing plugin topic_taboo = hbmqtt.plugins.topic_checking:TopicTabooPlugin
[2020-01-06 07:49:16,276] :: DEBUG :: hbmqtt.broker.plugins :: manager :: _load_plugins :: 65 :: Plugin topic_taboo ready
[2020-01-06 07:49:16,282] :: INFO :: mqttserver :: mqttserver :: broker_coro :: 152 :: Starting MQTT Server at 127.0.1.1:8883
[2020-01-06 07:49:16,283] :: DEBUG :: hbmqtt.broker :: broker :: start :: 218 :: Broker starting
[2020-01-06 07:49:16,285] :: DEBUG :: hbmqtt.broker :: broker :: start :: 231 :: Listener configuration 'default' is not bound
[2020-01-06 07:49:16,290] :: DEBUG :: hbmqtt.client.plugins :: manager :: _load_plugins :: 61 :: Loading plugins for namespace hbmqtt.client.plugins
[2020-01-06 07:49:16,290] :: DEBUG :: hbmqtt.client.plugins :: manager :: _load_plugin :: 69 :: Loading plugin packet_logger_plugin = hbmqtt.plugins.logging:PacketLoggerPlugin
[2020-01-06 07:49:16,291] :: DEBUG :: hbmqtt.client.plugins :: manager :: _load_plugin :: 71 :: Initializing plugin packet_logger_plugin = hbmqtt.plugins.logging:PacketLoggerPlugin
[2020-01-06 07:49:16,292] :: DEBUG :: hbmqtt.client.plugins :: manager :: _load_plugins :: 65 :: Plugin packet_logger_plugin ready
[2020-01-06 07:49:16,292] :: DEBUG :: hbmqtt.client :: client :: connect :: 140 :: Connect to: mqtts://127.0.1.1:8883/
[2020-01-06 07:49:16,298] :: INFO :: xmppserver :: xmppserver :: start_async_server :: 30 :: Starting XMPP Server at 127.0.1.1:5223
[2020-01-06 07:49:16,300] :: WARNING :: hbmqtt.client :: client :: _connect_coro :: 426 :: MQTT connection failed: ConnectionRefusedError(111, "Connect call failed ('127.0.1.1', 8883)")
[2020-01-06 07:49:16,300] :: WARNING :: hbmqtt.client :: client :: connect :: 145 :: Connection failed: ConnectException(ConnectionRefusedError(111, "Connect call failed ('127.0.1.1', 8883)"))
[2020-01-06 07:49:16,301] :: DEBUG :: hbmqtt.client :: client :: reconnect :: 193 :: Reconnecting with session parameters: Session(clientId=helperbot@bumper/helperbot, state=disconnected)
[2020-01-06 07:49:16,301] :: INFO :: hbmqtt.broker :: broker :: start :: 285 :: Listener 'tls1' bind to 127.0.1.1:8883 (max_connections=-1)
[2020-01-06 07:49:16,302] :: DEBUG :: hbmqtt.broker :: broker :: start :: 293 :: Broker started
[2020-01-06 07:49:16,302] :: DEBUG :: hbmqtt.broker :: broker :: retain_message :: 602 :: Retaining message on topic $SYS/broker/version
[2020-01-06 07:49:16,303] :: DEBUG :: hbmqtt.broker.plugins.broker_sys :: broker :: on_broker_post_start :: 75 :: $SYS disabled
[2020-01-06 07:49:17,302] :: DEBUG :: hbmqtt.client :: client :: reconnect :: 200 :: Reconnect attempt 1 ...
[2020-01-06 07:49:17,327] :: DEBUG :: hbmqtt.client.plugins.packet_logger_plugin :: logging :: on_mqtt_packet_sent :: 44 :: helperbot@bumper/helperbot -out-> ConnectPacket(ts=2020-01-06 07:49:17.322015, fixed=MQTTFixedHeader(length=38, flags=0x0), variable=ConnectVariableHeader(proto_name=MQTT, proto_level=4, flags=0x2, keepalive=9), payload=ConnectVariableHeader(client_id=helperbot@bumper/helperbot, will_topic=None, will_message=None, username=None, password=None))
[2020-01-06 07:49:17,327] :: INFO :: hbmqtt.broker :: broker :: acquire_connection :: 90 :: Listener 'tls1': 1 connections acquired
[2020-01-06 07:49:17,327] :: INFO :: hbmqtt.broker :: broker :: client_connected :: 354 :: Connection from 127.0.0.1:37420 on listener 'tls1'
[2020-01-06 07:49:17,330] :: DEBUG :: hbmqtt.broker :: broker :: delete_session :: 783 :: Delete session : session helperbot@bumper/helperbot doesn't exist
[2020-01-06 07:49:17,330] :: DEBUG :: hbmqtt.broker :: broker :: client_connected :: 389 :: Keep-alive timeout=11
[2020-01-06 07:49:17,332] :: DEBUG :: hbmqtt.broker.plugins.packet_logger_plugin :: logging :: on_mqtt_packet_received :: 36 :: <-in-- ConnectPacket(ts=2020-01-06 07:49:17.328265, fixed=MQTTFixedHeader(length=38, flags=0x0), variable=ConnectVariableHeader(proto_name=MQTT, proto_level=4, flags=0x2, keepalive=9), payload=ConnectVariableHeader(client_id=helperbot@bumper/helperbot, will_topic=None, will_message=None, username=None, password=None))
[2020-01-06 07:49:17,333] :: INFO :: mqttserver :: mqttserver :: authenticate :: 267 :: Bumper Authentication Success - Helperbot: helperbot@bumper/helperbot
[2020-01-06 07:49:17,333] :: DEBUG :: hbmqtt.broker :: broker :: authenticate :: 560 :: 'bumper' plugin result: True
[2020-01-06 07:49:17,335] :: DEBUG :: hbmqtt.broker :: broker :: client_connected :: 413 :: helperbot@bumper/helperbot Start messages handling
[2020-01-06 07:49:17,336] :: DEBUG :: hbmqtt.broker.plugins.packet_logger_plugin :: logging :: on_mqtt_packet_sent :: 44 :: helperbot@bumper/helperbot -out-> ConnackPacket(ts=2020-01-06 07:49:17.334237, fixed=MQTTFixedHeader(length=2, flags=0x0), variable=ConnackVariableHeader(session_parent=0x0, return_code=0x0), payload=None)
[2020-01-06 07:49:17,337] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: _reader_loop :: 357 :: helperbot@bumper/helperbot Starting reader coro
[2020-01-06 07:49:17,339] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: start :: 111 :: Handler tasks started
[2020-01-06 07:49:17,340] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: _retry_deliveries :: 150 :: Begin messages delivery retries
[2020-01-06 07:49:17,340] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: _retry_deliveries :: 158 :: End messages delivery retries
[2020-01-06 07:49:17,340] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: start :: 113 :: Handler ready
[2020-01-06 07:49:17,340] :: DEBUG :: hbmqtt.broker :: broker :: client_connected :: 415 :: Retained messages queue size: 0
[2020-01-06 07:49:17,340] :: DEBUG :: hbmqtt.broker :: broker :: publish_session_retained_messages :: 741 :: Publishing 0 messages retained for session (client id=helperbot@bumper/helperbot)
[2020-01-06 07:49:17,344] :: DEBUG :: hbmqtt.client.plugins.packet_logger_plugin :: logging :: on_mqtt_packet_received :: 34 :: helperbot@bumper/helperbot <-in-- ConnackPacket(ts=2020-01-06 07:49:17.339020, fixed=MQTTFixedHeader(length=2, flags=0x0), variable=ConnackVariableHeader(session_parent=0x0, return_code=0x0), payload=None)
[2020-01-06 07:49:17,344] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: _reader_loop :: 357 :: helperbot@bumper/helperbot Starting reader coro
[2020-01-06 07:49:17,345] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: mqtt_deliver_next_message :: 459 :: 0 message(s) available for delivery
[2020-01-06 07:49:17,346] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: start :: 111 :: Handler tasks started
[2020-01-06 07:49:17,346] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: _retry_deliveries :: 150 :: Begin messages delivery retries
[2020-01-06 07:49:17,346] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: _retry_deliveries :: 158 :: End messages delivery retries
[2020-01-06 07:49:17,346] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: start :: 113 :: Handler ready
[2020-01-06 07:49:17,346] :: DEBUG :: hbmqtt.client :: client :: connect_coro :: 415 :: connected to 127.0.1.1:8883
[2020-01-06 07:49:17,347] :: DEBUG :: hbmqtt.client :: client :: handle_connection_close :: 440 :: Watch broker disconnection
[2020-01-06 07:49:17,347] :: DEBUG :: hbmqtt.client.plugins.packet_logger_plugin :: logging :: on_mqtt_packet_sent :: 44 :: helperbot@bumper/helperbot -out-> SubscribePacket(ts=2020-01-06 07:49:17.347125, fixed=MQTTFixedHeader(length=77, flags=0x2), variable=PacketIdVariableHeader(packet_id=1), payload=SubscribePayload(topics=[('iot/p2p/+/+/+/+/helperbot/bumper/helperbot/+/+/+', 0), ('iot/p2p/+', 0), ('iot/atr/+', 0)]))
[2020-01-06 07:49:17,349] :: DEBUG :: hbmqtt.broker.plugins.packet_logger_plugin :: logging :: on_mqtt_packet_received :: 34 :: helperbot@bumper/helperbot <-in-- SubscribePacket(ts=2020-01-06 07:49:17.348581, fixed=MQTTFixedHeader(length=77, flags=0x2), variable=PacketIdVariableHeader(packet_id=1), payload=SubscribePayload(topics=[('iot/p2p/+/+/+/+/helperbot/bumper/helperbot/+/+/+', 0), ('iot/p2p/+', 0), ('iot/atr/+', 0)]))
[2020-01-06 07:49:17,350] :: DEBUG :: hbmqtt.broker :: broker :: client_connected :: 465 :: helperbot@bumper/helperbot handling subscription
[2020-01-06 07:49:17,352] :: DEBUG :: hbmqtt.broker :: broker :: topic_filtering :: 595 :: 'bumper' plugin result: None
[2020-01-06 07:49:17,352] :: DEBUG :: hbmqtt.broker :: broker :: topic_filtering :: 595 :: 'auth_anonymous' plugin result: None
[2020-01-06 07:49:17,352] :: DEBUG :: hbmqtt.broker :: broker :: topic_filtering :: 595 :: 'auth_file' plugin result: None
[2020-01-06 07:49:17,352] :: DEBUG :: hbmqtt.broker :: broker :: topic_filtering :: 595 :: 'broker_sys' plugin result: None
[2020-01-06 07:49:17,352] :: DEBUG :: hbmqtt.broker :: broker :: topic_filtering :: 595 :: 'packet_logger_plugin' plugin result: None
[2020-01-06 07:49:17,352] :: DEBUG :: hbmqtt.broker :: broker :: topic_filtering :: 595 :: 'topic_taboo' plugin result: True
[2020-01-06 07:49:17,354] :: DEBUG :: hbmqtt.broker :: broker :: topic_filtering :: 595 :: 'bumper' plugin result: None
[2020-01-06 07:49:17,354] :: DEBUG :: hbmqtt.broker :: broker :: topic_filtering :: 595 :: 'auth_anonymous' plugin result: None
[2020-01-06 07:49:17,354] :: DEBUG :: hbmqtt.broker :: broker :: topic_filtering :: 595 :: 'auth_file' plugin result: None
[2020-01-06 07:49:17,355] :: DEBUG :: hbmqtt.broker :: broker :: topic_filtering :: 595 :: 'broker_sys' plugin result: None
[2020-01-06 07:49:17,355] :: DEBUG :: hbmqtt.broker :: broker :: topic_filtering :: 595 :: 'packet_logger_plugin' plugin result: None
[2020-01-06 07:49:17,355] :: DEBUG :: hbmqtt.broker :: broker :: topic_filtering :: 595 :: 'topic_taboo' plugin result: True
[2020-01-06 07:49:17,356] :: DEBUG :: hbmqtt.broker :: broker :: topic_filtering :: 595 :: 'bumper' plugin result: None
[2020-01-06 07:49:17,357] :: DEBUG :: hbmqtt.broker :: broker :: topic_filtering :: 595 :: 'auth_anonymous' plugin result: None
[2020-01-06 07:49:17,357] :: DEBUG :: hbmqtt.broker :: broker :: topic_filtering :: 595 :: 'auth_file' plugin result: None
[2020-01-06 07:49:17,357] :: DEBUG :: hbmqtt.broker :: broker :: topic_filtering :: 595 :: 'broker_sys' plugin result: None
[2020-01-06 07:49:17,357] :: DEBUG :: hbmqtt.broker :: broker :: topic_filtering :: 595 :: 'packet_logger_plugin' plugin result: None
[2020-01-06 07:49:17,357] :: DEBUG :: hbmqtt.broker :: broker :: topic_filtering :: 595 :: 'topic_taboo' plugin result: True
[2020-01-06 07:49:17,358] :: DEBUG :: hbmqtt.broker :: broker :: publish_retained_messages_for_subscription :: 756 :: Begin broadcasting messages retained due to subscription on 'iot/p2p/+/+/+/+/helperbot/bumper/helperbot/+/+/+' from (client id=helperbot@bumper/helperbot)
[2020-01-06 07:49:17,358] :: DEBUG :: hbmqtt.broker :: broker :: publish_retained_messages_for_subscription :: 760 :: matching : $SYS/broker/version iot/p2p/+/+/+/+/helperbot/bumper/helperbot/+/+/+
[2020-01-06 07:49:17,359] :: DEBUG :: hbmqtt.broker :: broker :: publish_retained_messages_for_subscription :: 770 :: End broadcasting messages retained due to subscription on 'iot/p2p/+/+/+/+/helperbot/bumper/helperbot/+/+/+' from (client id=helperbot@bumper/helperbot)
[2020-01-06 07:49:17,359] :: DEBUG :: hbmqtt.broker :: broker :: publish_retained_messages_for_subscription :: 756 :: Begin broadcasting messages retained due to subscription on 'iot/p2p/+' from (client id=helperbot@bumper/helperbot)
[2020-01-06 07:49:17,359] :: DEBUG :: hbmqtt.broker :: broker :: publish_retained_messages_for_subscription :: 760 :: matching : $SYS/broker/version iot/p2p/+
[2020-01-06 07:49:17,359] :: DEBUG :: hbmqtt.broker :: broker :: publish_retained_messages_for_subscription :: 770 :: End broadcasting messages retained due to subscription on 'iot/p2p/+' from (client id=helperbot@bumper/helperbot)
[2020-01-06 07:49:17,359] :: DEBUG :: hbmqtt.broker :: broker :: publish_retained_messages_for_subscription :: 756 :: Begin broadcasting messages retained due to subscription on 'iot/atr/+' from (client id=helperbot@bumper/helperbot)
[2020-01-06 07:49:17,359] :: DEBUG :: hbmqtt.broker :: broker :: publish_retained_messages_for_subscription :: 760 :: matching : $SYS/broker/version iot/atr/+
[2020-01-06 07:49:17,359] :: DEBUG :: hbmqtt.broker :: broker :: publish_retained_messages_for_subscription :: 770 :: End broadcasting messages retained due to subscription on 'iot/atr/+' from (client id=helperbot@bumper/helperbot)
[2020-01-06 07:49:17,360] :: DEBUG :: hbmqtt.broker :: broker :: client_connected :: 481 :: {'iot/p2p/+/+/+/+/helperbot/bumper/helperbot/+/+/+': [(Session(clientId=helperbot@bumper/helperbot, state=connected), 0)], 'iot/p2p/+': [(Session(clientId=helperbot@bumper/helperbot, state=connected), 0)], 'iot/atr/+': [(Session(clientId=helperbot@bumper/helperbot, state=connected), 0)]}
[2020-01-06 07:49:17,360] :: DEBUG :: hbmqtt.broker.plugins.packet_logger_plugin :: logging :: on_mqtt_packet_sent :: 44 :: helperbot@bumper/helperbot -out-> SubackPacket(ts=2020-01-06 07:49:17.357647, fixed=MQTTFixedHeader(length=5, flags=0x0), variable=PacketIdVariableHeader(packet_id=1), payload=SubackPayload(return_codes=[0, 0, 0]))
[2020-01-06 07:49:17,362] :: DEBUG :: hbmqtt.client.plugins.packet_logger_plugin :: logging :: on_mqtt_packet_received :: 34 :: helperbot@bumper/helperbot <-in-- SubackPacket(ts=2020-01-06 07:49:17.361396, fixed=MQTTFixedHeader(length=5, flags=0x0), variable=PacketIdVariableHeader(packet_id=1), payload=SubackPayload(return_codes=[0, 0, 0]))
[2020-01-06 07:49:17,403] :: DEBUG :: root :: confserver :: confserver_app :: 94 :: Adding confserver sub_api (portal_api_appsvr)
[2020-01-06 07:49:17,404] :: DEBUG :: root :: confserver :: confserver_app :: 94 :: Adding confserver sub_api (portal_api_dimr)
[2020-01-06 07:49:17,404] :: DEBUG :: root :: confserver :: confserver_app :: 94 :: Adding confserver sub_api (portal_api_iot)
[2020-01-06 07:49:17,404] :: DEBUG :: root :: confserver :: confserver_app :: 94 :: Adding confserver sub_api (portal_api_lg)
[2020-01-06 07:49:17,404] :: DEBUG :: root :: confserver :: confserver_app :: 94 :: Adding confserver sub_api (portal_api_neng)
[2020-01-06 07:49:17,404] :: DEBUG :: root :: confserver :: confserver_app :: 94 :: Adding confserver sub_api (portal_api_pim)
[2020-01-06 07:49:17,405] :: DEBUG :: root :: confserver :: confserver_app :: 94 :: Adding confserver sub_api (portal_api_users)
[2020-01-06 07:49:17,405] :: DEBUG :: root :: confserver :: confserver_app :: 94 :: Adding confserver sub_api (v1_global_auth)
[2020-01-06 07:49:17,405] :: DEBUG :: root :: confserver :: confserver_app :: 94 :: Adding confserver sub_api (v1_private_ad)
[2020-01-06 07:49:17,409] :: DEBUG :: root :: confserver :: confserver_app :: 94 :: Adding confserver sub_api (v1_private_campaign)
[2020-01-06 07:49:17,411] :: DEBUG :: root :: confserver :: confserver_app :: 94 :: Adding confserver sub_api (v1_private_common)
[2020-01-06 07:49:17,414] :: DEBUG :: root :: confserver :: confserver_app :: 94 :: Adding confserver sub_api (v1_private_message)
[2020-01-06 07:49:17,416] :: DEBUG :: root :: confserver :: confserver_app :: 94 :: Adding confserver sub_api (v1_private_shop)
[2020-01-06 07:49:17,417] :: DEBUG :: root :: confserver :: confserver_app :: 94 :: Adding confserver sub_api (v1_private_user)
[2020-01-06 07:49:17,421] :: DEBUG :: root :: confserver :: confserver_app :: 94 :: Adding confserver sub_api (v2_private_user)
<PlainResource 'base' >
<DynamicResource 'remove-bot' /bot/remove/{did}>
<DynamicResource 'remove-client' /client/remove/{resource}>
<DynamicResource 'restart-service' /restart
{service}>
<PlainResource /lookup.do>
<PrefixedSubAppResource /v1 -> <Application 0x7fc8d0dbeb00>>
<PrefixedSubAppResource /v2 -> <Application 0x7fc8d0da9630>>
<PrefixedSubAppResource /api -> <Application 0x7fc8d0da99b0>>

How to setup bumper as service? And again error MQTT connection failed: ConnectionRefusedError(111)

@bmartin5692

My bumper is setup on headless raspianOs. I have two problems.

  1. ConnectionRefusedError(111)
    I tried a lot of ways. All infos i found, but i can not solve it. The curious is, my Deebot950 is
    connected and i can control it extern from fhem. Please update installguide for raspianOs.
root@raspberrypi:/opt/bumper-master# pipenv run python -m bumper --listen 192.168.178.42 --announce 192.168.178.42 --debug
[2020-06-14 11:19:38,976] :: INFO :: bumper :: __init__ :: start :: 194 :: Starting Bumper
[2020-06-14 11:19:38,982] :: DEBUG :: hbmqtt.broker.plugins :: manager :: _load_plugins :: 61 :: Loading plugins for namespace hbmqtt.broker.plugins
[2020-06-14 11:19:38,983] :: DEBUG :: hbmqtt.broker.plugins :: manager :: _load_plugin :: 69 ::  Loading plugin bumper = bumper.mqttserver:BumperMQTTServer_Plugin
[2020-06-14 11:19:38,984] :: DEBUG :: hbmqtt.broker.plugins :: manager :: _load_plugin :: 71 ::  Initializing plugin bumper = bumper.mqttserver:BumperMQTTServer_Plugin
[2020-06-14 11:19:38,985] :: DEBUG :: hbmqtt.broker.plugins.bumper :: mqttserver :: _read_password_file :: 318 :: Reading user database from /opt/bumper-master/data/passwd
[2020-06-14 11:19:38,985] :: DEBUG :: hbmqtt.broker.plugins.bumper :: mqttserver :: _read_password_file :: 326 :: 0 user(s) read from file /opt/bumper-master/data/passwd
[2020-06-14 11:19:38,986] :: DEBUG :: hbmqtt.broker.plugins :: manager :: _load_plugins :: 65 ::  Plugin bumper ready
[2020-06-14 11:19:39,003] :: DEBUG :: hbmqtt.broker.plugins :: manager :: _load_plugin :: 69 ::  Loading plugin auth_anonymous = hbmqtt.plugins.authentication:AnonymousAuthPlugin
[2020-06-14 11:19:39,105] :: DEBUG :: hbmqtt.broker.plugins :: manager :: _load_plugin :: 71 ::  Initializing plugin auth_anonymous = hbmqtt.plugins.authentication:AnonymousAuthPlugin
[2020-06-14 11:19:39,106] :: DEBUG :: hbmqtt.broker.plugins :: manager :: _load_plugins :: 65 ::  Plugin auth_anonymous ready
[2020-06-14 11:19:39,110] :: DEBUG :: hbmqtt.broker.plugins :: manager :: _load_plugin :: 69 ::  Loading plugin auth_file = hbmqtt.plugins.authentication:FileAuthPlugin
[2020-06-14 11:19:39,112] :: DEBUG :: hbmqtt.broker.plugins :: manager :: _load_plugin :: 71 ::  Initializing plugin auth_file = hbmqtt.plugins.authentication:FileAuthPlugin
[2020-06-14 11:19:39,114] :: DEBUG :: hbmqtt.broker.plugins.auth_file :: authentication :: _read_password_file :: 63 :: Reading user database from /opt/bumper-master/data/passwd
[2020-06-14 11:19:39,114] :: DEBUG :: hbmqtt.broker.plugins.auth_file :: authentication :: _read_password_file :: 71 :: 0 user(s) read from file /opt/bumper-master/data/passwd
[2020-06-14 11:19:39,115] :: DEBUG :: hbmqtt.broker.plugins :: manager :: _load_plugins :: 65 ::  Plugin auth_file ready
[2020-06-14 11:19:39,115] :: DEBUG :: hbmqtt.broker.plugins :: manager :: _load_plugin :: 69 ::  Loading plugin broker_sys = hbmqtt.plugins.sys.broker:BrokerSysPlugin
[2020-06-14 11:19:39,121] :: DEBUG :: hbmqtt.broker.plugins :: manager :: _load_plugin :: 71 ::  Initializing plugin broker_sys = hbmqtt.plugins.sys.broker:BrokerSysPlugin
[2020-06-14 11:19:39,121] :: DEBUG :: hbmqtt.broker.plugins :: manager :: _load_plugins :: 65 ::  Plugin broker_sys ready
[2020-06-14 11:19:39,122] :: DEBUG :: hbmqtt.broker.plugins :: manager :: _load_plugin :: 69 ::  Loading plugin packet_logger_plugin = hbmqtt.plugins.logging:PacketLoggerPlugin
[2020-06-14 11:19:39,126] :: DEBUG :: hbmqtt.broker.plugins :: manager :: _load_plugin :: 71 ::  Initializing plugin packet_logger_plugin = hbmqtt.plugins.logging:PacketLoggerPlugin
[2020-06-14 11:19:39,126] :: DEBUG :: hbmqtt.broker.plugins :: manager :: _load_plugins :: 65 ::  Plugin packet_logger_plugin ready
[2020-06-14 11:19:39,127] :: DEBUG :: hbmqtt.broker.plugins :: manager :: _load_plugin :: 69 ::  Loading plugin topic_taboo = hbmqtt.plugins.topic_checking:TopicTabooPlugin
[2020-06-14 11:19:39,131] :: DEBUG :: hbmqtt.broker.plugins :: manager :: _load_plugin :: 71 ::  Initializing plugin topic_taboo = hbmqtt.plugins.topic_checking:TopicTabooPlugin
[2020-06-14 11:19:39,132] :: DEBUG :: hbmqtt.broker.plugins :: manager :: _load_plugins :: 65 ::  Plugin topic_taboo ready
[2020-06-14 11:19:39,151] :: INFO :: mqttserver :: mqttserver :: broker_coro :: 152 :: Starting MQTT Server at 192.168.178.42:8883
[2020-06-14 11:19:39,152] :: DEBUG :: hbmqtt.broker :: broker :: start :: 218 :: Broker starting
[2020-06-14 11:19:39,156] :: DEBUG :: hbmqtt.broker :: broker :: start :: 231 :: Listener configuration 'default' is not bound
[2020-06-14 11:19:39,167] :: DEBUG :: hbmqtt.client.plugins :: manager :: _load_plugins :: 61 :: Loading plugins for namespace hbmqtt.client.plugins
[2020-06-14 11:19:39,168] :: DEBUG :: hbmqtt.client.plugins :: manager :: _load_plugin :: 69 ::  Loading plugin packet_logger_plugin = hbmqtt.plugins.logging:PacketLoggerPlugin
[2020-06-14 11:19:39,173] :: DEBUG :: hbmqtt.client.plugins :: manager :: _load_plugin :: 71 ::  Initializing plugin packet_logger_plugin = hbmqtt.plugins.logging:PacketLoggerPlugin
[2020-06-14 11:19:39,174] :: DEBUG :: hbmqtt.client.plugins :: manager :: _load_plugins :: 65 ::  Plugin packet_logger_plugin ready
[2020-06-14 11:19:39,176] :: DEBUG :: hbmqtt.client :: client :: connect :: 140 :: Connect to: mqtts://192.168.178.42:8883/
[2020-06-14 11:19:39,186] :: INFO :: xmppserver :: xmppserver :: start_async_server :: 30 :: Starting XMPP Server at 192.168.178.42:5223
[2020-06-14 11:19:39,194] :: WARNING :: hbmqtt.client :: client :: _connect_coro :: 426 :: MQTT connection failed: ConnectionRefusedError(111, "Connect call failed ('192.168.178.42', 8883)")
[2020-06-14 11:19:39,195] :: WARNING :: hbmqtt.client :: client :: connect :: 145 :: Connection failed: ConnectException(ConnectionRefusedError(111, "Connect call failed ('192.168.178.42', 8883)"))
[2020-06-14 11:19:39,196] :: DEBUG :: hbmqtt.client :: client :: reconnect :: 193 :: Reconnecting with session parameters: Session(clientId=helperbot@bumper/helperbot, state=disconnected)
[2020-06-14 11:19:39,200] :: INFO :: hbmqtt.broker :: broker :: start :: 285 :: Listener 'tls1' bind to 192.168.178.42:8883 (max_connections=-1)
[2020-06-14 11:19:39,203] :: DEBUG :: hbmqtt.broker :: broker :: start :: 293 :: Broker started
[2020-06-14 11:19:39,205] :: DEBUG :: hbmqtt.broker :: broker :: retain_message :: 602 :: Retaining message on topic $SYS/broker/version
[2020-06-14 11:19:39,206] :: DEBUG :: hbmqtt.broker.plugins.broker_sys :: broker :: on_broker_post_start :: 75 :: $SYS disabled
[2020-06-14 11:19:40,199] :: DEBUG :: hbmqtt.client :: client :: reconnect :: 200 :: Reconnect attempt 1 ...
[2020-06-14 11:19:40,289] :: DEBUG :: hbmqtt.client.plugins.packet_logger_plugin :: logging :: on_mqtt_packet_sent :: 44 :: helperbot@bumper/helperbot -out-> ConnectPacket(ts=2020-06-14 11:19:40.279795, fixed=MQTTFixedHeader(length=38, flags=0x0), variable=ConnectVariableHeader(proto_name=MQTT, proto_level=4, flags=0x2, keepalive=9), payload=ConnectVariableHeader(client_id=helperbot@bumper/helperbot, will_topic=None, will_message=None, username=None, password=None))
[2020-06-14 11:19:40,290] :: INFO :: hbmqtt.broker :: broker :: acquire_connection :: 90 :: Listener 'tls1': 1 connections acquired
[2020-06-14 11:19:40,290] :: INFO :: hbmqtt.broker :: broker :: client_connected :: 354 :: Connection from 192.168.178.42:58186 on listener 'tls1'
[2020-06-14 11:19:40,298] :: DEBUG :: hbmqtt.broker :: broker :: delete_session :: 783 :: Delete session : session helperbot@bumper/helperbot doesn't exist
[2020-06-14 11:19:40,299] :: DEBUG :: hbmqtt.broker :: broker :: client_connected :: 389 :: Keep-alive timeout=11
[2020-06-14 11:19:40,304] :: DEBUG :: hbmqtt.broker.plugins.packet_logger_plugin :: logging :: on_mqtt_packet_received :: 36 :: <-in-- ConnectPacket(ts=2020-06-14 11:19:40.292077, fixed=MQTTFixedHeader(length=38, flags=0x0), variable=ConnectVariableHeader(proto_name=MQTT, proto_level=4, flags=0x2, keepalive=9), payload=ConnectVariableHeader(client_id=helperbot@bumper/helperbot, will_topic=None, will_message=None, username=None, password=None))
[2020-06-14 11:19:40,306] :: INFO :: mqttserver :: mqttserver :: authenticate :: 267 :: Bumper Authentication Success - Helperbot: helperbot@bumper/helperbot
[2020-06-14 11:19:40,307] :: DEBUG :: hbmqtt.broker :: broker :: authenticate :: 560 :: 'bumper' plugin result: True
[2020-06-14 11:19:40,313] :: DEBUG :: hbmqtt.broker :: broker :: client_connected :: 413 :: helperbot@bumper/helperbot Start messages handling
[2020-06-14 11:19:40,317] :: DEBUG :: hbmqtt.broker.plugins.packet_logger_plugin :: logging :: on_mqtt_packet_sent :: 44 :: helperbot@bumper/helperbot -out-> ConnackPacket(ts=2020-06-14 11:19:40.309340, fixed=MQTTFixedHeader(length=2, flags=0x0), variable=ConnackVariableHeader(session_parent=0x0, return_code=0x0), payload=None)
[2020-06-14 11:19:40,323] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: _reader_loop :: 357 :: helperbot@bumper/helperbot Starting reader coro
[2020-06-14 11:19:40,333] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: start :: 111 :: Handler tasks started
[2020-06-14 11:19:40,334] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: _retry_deliveries :: 150 :: Begin messages delivery retries
[2020-06-14 11:19:40,334] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: _retry_deliveries :: 158 :: End messages delivery retries
[2020-06-14 11:19:40,335] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: start :: 113 :: Handler ready
[2020-06-14 11:19:40,336] :: DEBUG :: hbmqtt.broker :: broker :: client_connected :: 415 :: Retained messages queue size: 0
[2020-06-14 11:19:40,337] :: DEBUG :: hbmqtt.broker :: broker :: publish_session_retained_messages :: 741 :: Publishing 0 messages retained for session (client id=helperbot@bumper/helperbot)
[2020-06-14 11:19:40,348] :: DEBUG :: hbmqtt.client.plugins.packet_logger_plugin :: logging :: on_mqtt_packet_received :: 34 :: helperbot@bumper/helperbot <-in-- ConnackPacket(ts=2020-06-14 11:19:40.328957, fixed=MQTTFixedHeader(length=2, flags=0x0), variable=ConnackVariableHeader(session_parent=0x0, return_code=0x0), payload=None)
[2020-06-14 11:19:40,350] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: _reader_loop :: 357 :: helperbot@bumper/helperbot Starting reader coro
[2020-06-14 11:19:40,354] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: mqtt_deliver_next_message :: 459 :: 0 message(s) available for delivery
[2020-06-14 11:19:40,357] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: start :: 111 :: Handler tasks started
[2020-06-14 11:19:40,358] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: _retry_deliveries :: 150 :: Begin messages delivery retries
[2020-06-14 11:19:40,358] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: _retry_deliveries :: 158 :: End messages delivery retries
[2020-06-14 11:19:40,359] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: start :: 113 :: Handler ready
[2020-06-14 11:19:40,360] :: DEBUG :: hbmqtt.client :: client :: _connect_coro :: 415 :: connected to 192.168.178.42:8883
[2020-06-14 11:19:40,365] :: DEBUG :: hbmqtt.client :: client :: handle_connection_close :: 440 :: Watch broker disconnection
[2020-06-14 11:19:40,366] :: DEBUG :: hbmqtt.client.plugins.packet_logger_plugin :: logging :: on_mqtt_packet_sent :: 44 :: helperbot@bumper/helperbot -out-> SubscribePacket(ts=2020-06-14 11:19:40.362878, fixed=MQTTFixedHeader(length=77, flags=0x2), variable=PacketIdVariableHeader(packet_id=1), payload=SubscribePayload(topics=[('iot/p2p/+/+/+/+/helperbot/bumper/helperbot/+/+/+', 0), ('iot/p2p/+', 0), ('iot/atr/+', 0)]))
[2020-06-14 11:19:40,374] :: DEBUG :: hbmqtt.broker.plugins.packet_logger_plugin :: logging :: on_mqtt_packet_received :: 34 :: helperbot@bumper/helperbot <-in-- SubscribePacket(ts=2020-06-14 11:19:40.369880, fixed=MQTTFixedHeader(length=77, flags=0x2), variable=PacketIdVariableHeader(packet_id=1), payload=SubscribePayload(topics=[('iot/p2p/+/+/+/+/helperbot/bumper/helperbot/+/+/+', 0), ('iot/p2p/+', 0), ('iot/atr/+', 0)]))
[2020-06-14 11:19:40,378] :: DEBUG :: hbmqtt.broker :: broker :: client_connected :: 465 :: helperbot@bumper/helperbot handling subscription
[2020-06-14 11:19:40,388] :: DEBUG :: hbmqtt.broker :: broker :: topic_filtering :: 595 :: 'bumper' plugin result: None
[2020-06-14 11:19:40,389] :: DEBUG :: hbmqtt.broker :: broker :: topic_filtering :: 595 :: 'auth_anonymous' plugin result: None
[2020-06-14 11:19:40,389] :: DEBUG :: hbmqtt.broker :: broker :: topic_filtering :: 595 :: 'auth_file' plugin result: None
[2020-06-14 11:19:40,390] :: DEBUG :: hbmqtt.broker :: broker :: topic_filtering :: 595 :: 'broker_sys' plugin result: None
[2020-06-14 11:19:40,390] :: DEBUG :: hbmqtt.broker :: broker :: topic_filtering :: 595 :: 'packet_logger_plugin' plugin result: None
[2020-06-14 11:19:40,391] :: DEBUG :: hbmqtt.broker :: broker :: topic_filtering :: 595 :: 'topic_taboo' plugin result: True
[2020-06-14 11:19:40,401] :: DEBUG :: hbmqtt.broker :: broker :: topic_filtering :: 595 :: 'bumper' plugin result: None
[2020-06-14 11:19:40,402] :: DEBUG :: hbmqtt.broker :: broker :: topic_filtering :: 595 :: 'auth_anonymous' plugin result: None
[2020-06-14 11:19:40,402] :: DEBUG :: hbmqtt.broker :: broker :: topic_filtering :: 595 :: 'auth_file' plugin result: None
[2020-06-14 11:19:40,403] :: DEBUG :: hbmqtt.broker :: broker :: topic_filtering :: 595 :: 'broker_sys' plugin result: None
[2020-06-14 11:19:40,403] :: DEBUG :: hbmqtt.broker :: broker :: topic_filtering :: 595 :: 'packet_logger_plugin' plugin result: None
[2020-06-14 11:19:40,404] :: DEBUG :: hbmqtt.broker :: broker :: topic_filtering :: 595 :: 'topic_taboo' plugin result: True
[2020-06-14 11:19:40,420] :: DEBUG :: root :: confserver :: confserver_app :: 96 :: Adding confserver sub_api (portal_api_appsvr)
[2020-06-14 11:19:40,421] :: DEBUG :: root :: confserver :: confserver_app :: 96 :: Adding confserver sub_api (portal_api_dimr)
[2020-06-14 11:19:40,421] :: DEBUG :: root :: confserver :: confserver_app :: 96 :: Adding confserver sub_api (portal_api_iot)
[2020-06-14 11:19:40,422] :: DEBUG :: root :: confserver :: confserver_app :: 96 :: Adding confserver sub_api (portal_api_lg)
[2020-06-14 11:19:40,422] :: DEBUG :: root :: confserver :: confserver_app :: 96 :: Adding confserver sub_api (portal_api_neng)
[2020-06-14 11:19:40,423] :: DEBUG :: root :: confserver :: confserver_app :: 96 :: Adding confserver sub_api (portal_api_pim)
[2020-06-14 11:19:40,425] :: DEBUG :: root :: confserver :: confserver_app :: 96 :: Adding confserver sub_api (portal_api_users)
[2020-06-14 11:19:40,426] :: DEBUG :: root :: confserver :: confserver_app :: 96 :: Adding confserver sub_api (upload_global)
[2020-06-14 11:19:40,429] :: DEBUG :: root :: confserver :: confserver_app :: 96 :: Adding confserver sub_api (v1_global_auth)
[2020-06-14 11:19:40,429] :: DEBUG :: root :: confserver :: confserver_app :: 96 :: Adding confserver sub_api (v1_private_ad)
[2020-06-14 11:19:40,438] :: DEBUG :: root :: confserver :: confserver_app :: 96 :: Adding confserver sub_api (v1_private_campaign)
[2020-06-14 11:19:40,442] :: DEBUG :: root :: confserver :: confserver_app :: 96 :: Adding confserver sub_api (v1_private_common)
[2020-06-14 11:19:40,458] :: DEBUG :: root :: confserver :: confserver_app :: 96 :: Adding confserver sub_api (v1_private_message)
[2020-06-14 11:19:40,466] :: DEBUG :: root :: confserver :: confserver_app :: 96 :: Adding confserver sub_api (v1_private_shop)
[2020-06-14 11:19:40,470] :: DEBUG :: root :: confserver :: confserver_app :: 96 :: Adding confserver sub_api (v1_private_user)
[2020-06-14 11:19:40,500] :: DEBUG :: root :: confserver :: confserver_app :: 96 :: Adding confserver sub_api (v2_private_user)
[2020-06-14 11:19:40,634] :: DEBUG :: hbmqtt.broker :: broker :: topic_filtering :: 595 :: 'bumper' plugin result: None
[2020-06-14 11:19:40,635] :: DEBUG :: hbmqtt.broker :: broker :: topic_filtering :: 595 :: 'auth_anonymous' plugin result: None
[2020-06-14 11:19:40,635] :: DEBUG :: hbmqtt.broker :: broker :: topic_filtering :: 595 :: 'auth_file' plugin result: None
[2020-06-14 11:19:40,635] :: DEBUG :: hbmqtt.broker :: broker :: topic_filtering :: 595 :: 'broker_sys' plugin result: None
[2020-06-14 11:19:40,636] :: DEBUG :: hbmqtt.broker :: broker :: topic_filtering :: 595 :: 'packet_logger_plugin' plugin result: None
[2020-06-14 11:19:40,636] :: DEBUG :: hbmqtt.broker :: broker :: topic_filtering :: 595 :: 'topic_taboo' plugin result: True
[2020-06-14 11:19:40,640] :: DEBUG :: hbmqtt.broker :: broker :: publish_retained_messages_for_subscription :: 756 :: Begin broadcasting messages retained due to subscription on 'iot/p2p/+/+/+/+/helperbot/bumper/helperbot/+/+/+' from (client id=helperbot@bumper/helperbot)
[2020-06-14 11:19:40,641] :: DEBUG :: hbmqtt.broker :: broker :: publish_retained_messages_for_subscription :: 760 :: matching : $SYS/broker/version iot/p2p/+/+/+/+/helperbot/bumper/helperbot/+/+/+
[2020-06-14 11:19:40,644] :: DEBUG :: hbmqtt.broker :: broker :: publish_retained_messages_for_subscription :: 770 :: End broadcasting messages retained due to subscription on 'iot/p2p/+/+/+/+/helperbot/bumper/helperbot/+/+/+' from (client id=helperbot@bumper/helperbot)
[2020-06-14 11:19:40,645] :: DEBUG :: hbmqtt.broker :: broker :: publish_retained_messages_for_subscription :: 756 :: Begin broadcasting messages retained due to subscription on 'iot/p2p/+' from (client id=helperbot@bumper/helperbot)
[2020-06-14 11:19:40,645] :: DEBUG :: hbmqtt.broker :: broker :: publish_retained_messages_for_subscription :: 760 :: matching : $SYS/broker/version iot/p2p/+
[2020-06-14 11:19:40,647] :: DEBUG :: hbmqtt.broker :: broker :: publish_retained_messages_for_subscription :: 770 :: End broadcasting messages retained due to subscription on 'iot/p2p/+' from (client id=helperbot@bumper/helperbot)
[2020-06-14 11:19:40,647] :: DEBUG :: hbmqtt.broker :: broker :: publish_retained_messages_for_subscription :: 756 :: Begin broadcasting messages retained due to subscription on 'iot/atr/+' from (client id=helperbot@bumper/helperbot)
[2020-06-14 11:19:40,648] :: DEBUG :: hbmqtt.broker :: broker :: publish_retained_messages_for_subscription :: 760 :: matching : $SYS/broker/version iot/atr/+
[2020-06-14 11:19:40,649] :: DEBUG :: hbmqtt.broker :: broker :: publish_retained_messages_for_subscription :: 770 :: End broadcasting messages retained due to subscription on 'iot/atr/+' from (client id=helperbot@bumper/helperbot)
[2020-06-14 11:19:40,651] :: DEBUG :: hbmqtt.broker :: broker :: client_connected :: 481 :: {'iot/p2p/+/+/+/+/helperbot/bumper/helperbot/+/+/+': [(Session(clientId=helperbot@bumper/helperbot, state=connected), 0)], 'iot/p2p/+': [(Session(clientId=helperbot@bumper/helperbot, state=connected), 0)], 'iot/atr/+': [(Session(clientId=helperbot@bumper/helperbot, state=connected), 0)]}
[2020-06-14 11:19:40,663] :: DEBUG :: hbmqtt.broker.plugins.packet_logger_plugin :: logging :: on_mqtt_packet_sent :: 44 :: helperbot@bumper/helperbot -out-> SubackPacket(ts=2020-06-14 11:19:40.637978, fixed=MQTTFixedHeader(length=5, flags=0x0), variable=PacketIdVariableHeader(packet_id=1), payload=SubackPayload(return_codes=[0, 0, 0]))
[2020-06-14 11:19:40,675] :: DEBUG :: hbmqtt.client.plugins.packet_logger_plugin :: logging :: on_mqtt_packet_received :: 34 :: helperbot@bumper/helperbot <-in-- SubackPacket(ts=2020-06-14 11:19:40.671467, fixed=MQTTFixedHeader(length=5, flags=0x0), variable=PacketIdVariableHeader(packet_id=1), payload=SubackPayload(return_codes=[0, 0, 0]))
[2020-06-14 11:19:41,922] :: INFO :: hbmqtt.broker :: broker :: acquire_connection :: 90 :: Listener 'tls1': 2 connections acquired
[2020-06-14 11:19:41,923] :: INFO :: hbmqtt.broker :: broker :: client_connected :: 354 :: Connection from 192.168.178.66:55714 on listener 'tls1'
[2020-06-14 11:19:41,936] :: DEBUG :: hbmqtt.broker :: broker :: delete_session :: 783 :: Delete session : session fhemuser@bumper/GLBbe7d18eG9 doesn't exist
[2020-06-14 11:19:41,937] :: DEBUG :: hbmqtt.broker :: broker :: client_connected :: 389 :: Keep-alive timeout=32
[2020-06-14 11:19:41,945] :: DEBUG :: hbmqtt.broker.plugins.packet_logger_plugin :: logging :: on_mqtt_packet_received :: 36 :: <-in-- ConnectPacket(ts=2020-06-14 11:19:41.929157, fixed=MQTTFixedHeader(length=70, flags=0x0), variable=ConnectVariableHeader(proto_name=MQTT, proto_level=4, flags=0xc2, keepalive=30), payload=ConnectVariableHeader(client_id=fhemuser@bumper/GLBbe7d18eG9, will_topic=None, will_message=None, [email protected], password=123456))
[2020-06-14 11:19:41,948] :: DEBUG :: bumper :: db :: check_authcode :: 212 :: Checking for authcode: 123456
[2020-06-14 11:19:41,956] :: INFO :: mqttserver :: mqttserver :: authenticate :: 278 :: Bumper Authentication Success - Client - Username: [email protected] - ClientID: fhemuser@bumper/GLBbe7d18eG9
[2020-06-14 11:19:41,959] :: DEBUG :: hbmqtt.broker :: broker :: authenticate :: 560 :: 'bumper' plugin result: True
[2020-06-14 11:19:41,969] :: DEBUG :: hbmqtt.broker :: broker :: client_connected :: 413 :: fhemuser@bumper/GLBbe7d18eG9 Start messages handling
[2020-06-14 11:19:41,977] :: DEBUG :: hbmqtt.broker.plugins.packet_logger_plugin :: logging :: on_mqtt_packet_sent :: 44 :: fhemuser@bumper/GLBbe7d18eG9 -out-> ConnackPacket(ts=2020-06-14 11:19:41.961692, fixed=MQTTFixedHeader(length=2, flags=0x0), variable=ConnackVariableHeader(session_parent=0x0, return_code=0x0), payload=None)
[2020-06-14 11:19:41,993] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: _reader_loop :: 357 :: fhemuser@bumper/GLBbe7d18eG9 Starting reader coro
[2020-06-14 11:19:41,998] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: start :: 111 :: Handler tasks started
[2020-06-14 11:19:41,999] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: _retry_deliveries :: 150 :: Begin messages delivery retries
[2020-06-14 11:19:41,999] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: _retry_deliveries :: 158 :: End messages delivery retries
[2020-06-14 11:19:42,000] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: start :: 113 :: Handler ready
[2020-06-14 11:19:42,001] :: DEBUG :: hbmqtt.broker :: broker :: client_connected :: 415 :: Retained messages queue size: 0
[2020-06-14 11:19:42,002] :: DEBUG :: hbmqtt.broker :: broker :: publish_session_retained_messages :: 741 :: Publishing 0 messages retained for session (client id=fhemuser@bumper/GLBbe7d18eG9)
[2020-06-14 11:19:42,012] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: mqtt_deliver_next_message :: 459 :: 0 message(s) available for delivery
[2020-06-14 11:19:42,014] :: DEBUG :: hbmqtt.broker.plugins.packet_logger_plugin :: logging :: on_mqtt_packet_received :: 34 :: fhemuser@bumper/GLBbe7d18eG9 <-in-- SubscribePacket(ts=2020-06-14 11:19:42.007436, fixed=MQTTFixedHeader(length=6, flags=0x2), variable=PacketIdVariableHeader(packet_id=60), payload=SubscribePayload(topics=[('#', 0)]))
[2020-06-14 11:19:42,018] :: DEBUG :: hbmqtt.broker :: broker :: client_connected :: 465 :: fhemuser@bumper/GLBbe7d18eG9 handling subscription
[2020-06-14 11:19:42,028] :: DEBUG :: hbmqtt.broker :: broker :: topic_filtering :: 595 :: 'bumper' plugin result: None
[2020-06-14 11:19:42,029] :: DEBUG :: hbmqtt.broker :: broker :: topic_filtering :: 595 :: 'auth_anonymous' plugin result: None
[2020-06-14 11:19:42,029] :: DEBUG :: hbmqtt.broker :: broker :: topic_filtering :: 595 :: 'auth_file' plugin result: None
[2020-06-14 11:19:42,030] :: DEBUG :: hbmqtt.broker :: broker :: topic_filtering :: 595 :: 'broker_sys' plugin result: None
[2020-06-14 11:19:42,030] :: DEBUG :: hbmqtt.broker :: broker :: topic_filtering :: 595 :: 'packet_logger_plugin' plugin result: None
[2020-06-14 11:19:42,031] :: DEBUG :: hbmqtt.broker :: broker :: topic_filtering :: 595 :: 'topic_taboo' plugin result: True
[2020-06-14 11:19:42,034] :: DEBUG :: hbmqtt.broker :: broker :: publish_retained_messages_for_subscription :: 756 :: Begin broadcasting messages retained due to subscription on '#' from (client id=fhemuser@bumper/GLBbe7d18eG9)
[2020-06-14 11:19:42,035] :: DEBUG :: hbmqtt.broker :: broker :: publish_retained_messages_for_subscription :: 760 :: matching : $SYS/broker/version #
[2020-06-14 11:19:42,036] :: DEBUG :: hbmqtt.broker :: broker :: publish_retained_messages_for_subscription :: 762 :: $SYS/broker/version and # match
[2020-06-14 11:19:42,039] :: DEBUG :: hbmqtt.broker.plugins.packet_logger_plugin :: logging :: on_mqtt_packet_sent :: 44 :: fhemuser@bumper/GLBbe7d18eG9 -out-> SubackPacket(ts=2020-06-14 11:19:42.031974, fixed=MQTTFixedHeader(length=3, flags=0x0), variable=PacketIdVariableHeader(packet_id=60), payload=SubackPayload(return_codes=[0]))
[2020-06-14 11:19:42,044] :: DEBUG :: hbmqtt.broker.plugins.packet_logger_plugin :: logging :: on_mqtt_packet_sent :: 44 :: fhemuser@bumper/GLBbe7d18eG9 -out-> PublishPacket(ts=2020-06-14 11:19:42.040898, fixed=MQTTFixedHeader(length=41, flags=0x1), variable=PublishVariableHeader(topic=$SYS/broker/version, packet_id=None), payload=PublishPayload(data="b'HBMQTT version 0.9.5'"))
[2020-06-14 11:19:42,046] :: DEBUG :: hbmqtt.broker :: broker :: publish_retained_messages_for_subscription :: 770 :: End broadcasting messages retained due to subscription on '#' from (client id=fhemuser@bumper/GLBbe7d18eG9)
[2020-06-14 11:19:42,048] :: DEBUG :: hbmqtt.broker :: broker :: client_connected :: 481 :: {'iot/p2p/+/+/+/+/helperbot/bumper/helperbot/+/+/+': [(Session(clientId=helperbot@bumper/helperbot, state=connected), 0)], 'iot/p2p/+': [(Session(clientId=helperbot@bumper/helperbot, state=connected), 0)], 'iot/atr/+': [(Session(clientId=helperbot@bumper/helperbot, state=connected), 0)], '#': [(Session(clientId=fhemuser@bumper/GLBbe7d18eG9, state=connected), 0)]}
[2020-06-14 11:19:43,282] :: INFO :: hbmqtt.broker :: broker :: acquire_connection :: 90 :: Listener 'tls1': 3 connections acquired
[2020-06-14 11:19:43,283] :: INFO :: hbmqtt.broker :: broker :: client_connected :: 354 :: Connection from 192.168.178.24:51565 on listener 'tls1'
[2020-06-14 11:19:43,301] :: DEBUG :: hbmqtt.broker :: broker :: delete_session :: 783 :: Delete session : session bb5d3df7-0ec5-4f38-b930-b6e0ed03b963@yna5xi/GMth doesn't exist
[2020-06-14 11:19:43,302] :: DEBUG :: hbmqtt.broker :: broker :: client_connected :: 389 :: Keep-alive timeout=62
[2020-06-14 11:19:43,308] :: DEBUG :: hbmqtt.broker.plugins.packet_logger_plugin :: logging :: on_mqtt_packet_received :: 36 :: <-in-- ConnectPacket(ts=2020-06-14 11:19:43.292320, fixed=MQTTFixedHeader(length=92, flags=0x0), variable=ConnectVariableHeader(proto_name=MQTT, proto_level=4, flags=0xc2, keepalive=60), payload=ConnectVariableHeader(client_id=bb5d3df7-0ec5-4f38-b930-b6e0ed03b963@yna5xi/GMth, will_topic=None, will_message=None, username=E03312796B09HCBJ0091, password=XGmD4NFb))
[2020-06-14 11:19:43,314] :: INFO :: mqttserver :: mqttserver :: authenticate :: 257 :: Bumper Authentication Success - Bot - SN: E03312796B09HCBJ0091 - DID: bb5d3df7-0ec5-4f38-b930-b6e0ed03b963 - Class: yna5xi
[2020-06-14 11:19:43,317] :: DEBUG :: hbmqtt.broker :: broker :: authenticate :: 560 :: 'bumper' plugin result: True
[2020-06-14 11:19:43,327] :: DEBUG :: hbmqtt.broker :: broker :: client_connected :: 413 :: bb5d3df7-0ec5-4f38-b930-b6e0ed03b963@yna5xi/GMth Start messages handling
[2020-06-14 11:19:43,335] :: DEBUG :: hbmqtt.broker.plugins.packet_logger_plugin :: logging :: on_mqtt_packet_sent :: 44 :: bb5d3df7-0ec5-4f38-b930-b6e0ed03b963@yna5xi/GMth -out-> ConnackPacket(ts=2020-06-14 11:19:43.319557, fixed=MQTTFixedHeader(length=2, flags=0x0), variable=ConnackVariableHeader(session_parent=0x0, return_code=0x0), payload=None)
[2020-06-14 11:19:43,354] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: _reader_loop :: 357 :: bb5d3df7-0ec5-4f38-b930-b6e0ed03b963@yna5xi/GMth Starting reader coro
[2020-06-14 11:19:43,363] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: start :: 111 :: Handler tasks started
[2020-06-14 11:19:43,364] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: _retry_deliveries :: 150 :: Begin messages delivery retries
[2020-06-14 11:19:43,365] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: _retry_deliveries :: 158 :: End messages delivery retries
[2020-06-14 11:19:43,366] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: start :: 113 :: Handler ready
[2020-06-14 11:19:43,368] :: DEBUG :: hbmqtt.broker :: broker :: client_connected :: 415 :: Retained messages queue size: 0
[2020-06-14 11:19:43,369] :: DEBUG :: hbmqtt.broker :: broker :: publish_session_retained_messages :: 741 :: Publishing 0 messages retained for session (client id=bb5d3df7-0ec5-4f38-b930-b6e0ed03b963@yna5xi/GMth)
[2020-06-14 11:19:43,380] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: mqtt_deliver_next_message :: 459 :: 0 message(s) available for delivery
[2020-06-14 11:19:43,392] :: DEBUG :: hbmqtt.broker.plugins.packet_logger_plugin :: logging :: on_mqtt_packet_received :: 34 :: bb5d3df7-0ec5-4f38-b930-b6e0ed03b963@yna5xi/GMth <-in-- SubscribePacket(ts=2020-06-14 11:19:43.387025, fixed=MQTTFixedHeader(length=75, flags=0x2), variable=PacketIdVariableHeader(packet_id=96), payload=SubscribePayload(topics=[('iot/p2p/+/+/+/+/bb5d3df7-0ec5-4f38-b930-b6e0ed03b963/yna5xi/GMth/+/+/+', 0)]))
[2020-06-14 11:19:43,396] :: DEBUG :: hbmqtt.broker :: broker :: client_connected :: 465 :: bb5d3df7-0ec5-4f38-b930-b6e0ed03b963@yna5xi/GMth handling subscription
[2020-06-14 11:19:43,406] :: DEBUG :: hbmqtt.broker :: broker :: topic_filtering :: 595 :: 'bumper' plugin result: None
[2020-06-14 11:19:43,407] :: DEBUG :: hbmqtt.broker :: broker :: topic_filtering :: 595 :: 'auth_anonymous' plugin result: None
[2020-06-14 11:19:43,408] :: DEBUG :: hbmqtt.broker :: broker :: topic_filtering :: 595 :: 'auth_file' plugin result: None
[2020-06-14 11:19:43,408] :: DEBUG :: hbmqtt.broker :: broker :: topic_filtering :: 595 :: 'broker_sys' plugin result: None
[2020-06-14 11:19:43,408] :: DEBUG :: hbmqtt.broker :: broker :: topic_filtering :: 595 :: 'packet_logger_plugin' plugin result: None
[2020-06-14 11:19:43,409] :: DEBUG :: hbmqtt.broker :: broker :: topic_filtering :: 595 :: 'topic_taboo' plugin result: True
[2020-06-14 11:19:43,413] :: DEBUG :: hbmqtt.broker :: broker :: publish_retained_messages_for_subscription :: 756 :: Begin broadcasting messages retained due to subscription on 'iot/p2p/+/+/+/+/bb5d3df7-0ec5-4f38-b930-b6e0ed03b963/yna5xi/GMth/+/+/+' from (client id=bb5d3df7-0ec5-4f38-b930-b6e0ed03b963@yna5xi/GMth)
[2020-06-14 11:19:43,414] :: DEBUG :: hbmqtt.broker :: broker :: publish_retained_messages_for_subscription :: 760 :: matching : $SYS/broker/version iot/p2p/+/+/+/+/bb5d3df7-0ec5-4f38-b930-b6e0ed03b963/yna5xi/GMth/+/+/+
[2020-06-14 11:19:43,417] :: DEBUG :: hbmqtt.broker :: broker :: publish_retained_messages_for_subscription :: 770 :: End broadcasting messages retained due to subscription on 'iot/p2p/+/+/+/+/bb5d3df7-0ec5-4f38-b930-b6e0ed03b963/yna5xi/GMth/+/+/+' from (client id=bb5d3df7-0ec5-4f38-b930-b6e0ed03b963@yna5xi/GMth)
[2020-06-14 11:19:43,419] :: DEBUG :: hbmqtt.broker :: broker :: client_connected :: 481 :: {'iot/p2p/+/+/+/+/helperbot/bumper/helperbot/+/+/+': [(Session(clientId=helperbot@bumper/helperbot, state=connected), 0)], 'iot/p2p/+': [(Session(clientId=helperbot@bumper/helperbot, state=connected), 0)], 'iot/atr/+': [(Session(clientId=helperbot@bumper/helperbot, state=connected), 0)], '#': [(Session(clientId=fhemuser@bumper/GLBbe7d18eG9, state=connected), 0)], 'iot/p2p/+/+/+/+/bb5d3df7-0ec5-4f38-b930-b6e0ed03b963/yna5xi/GMth/+/+/+': [(Session(clientId=bb5d3df7-0ec5-4f38-b930-b6e0ed03b963@yna5xi/GMth, state=connected), 0)]}
[2020-06-14 11:19:43,421] :: DEBUG :: hbmqtt.broker.plugins.packet_logger_plugin :: logging :: on_mqtt_packet_sent :: 44 :: bb5d3df7-0ec5-4f38-b930-b6e0ed03b963@yna5xi/GMth -out-> SubackPacket(ts=2020-06-14 11:19:43.410384, fixed=MQTTFixedHeader(length=3, flags=0x0), variable=PacketIdVariableHeader(packet_id=96), payload=SubackPayload(return_codes=[0]))
^C[2020-06-14 11:19:44,093] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: _reader_loop :: 423 :: Task cancelled, reader loop ending
[2020-06-14 11:19:44,094] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: broker_handler :: handle_disconnect :: 57 :: Client disconnecting
[2020-06-14 11:19:44,095] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: _reader_loop :: 437 :: fhemuser@bumper/GLBbe7d18eG9 Reader coro stopped
[2020-06-14 11:19:44,096] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: _stop_waiters :: 133 :: Stopping 0 puback waiters
[2020-06-14 11:19:44,097] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: _stop_waiters :: 134 :: Stopping 0 pucomp waiters
[2020-06-14 11:19:44,098] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: _stop_waiters :: 135 :: Stopping 0 purec waiters
[2020-06-14 11:19:44,099] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: _stop_waiters :: 136 :: Stopping 0 purel waiters
[2020-06-14 11:19:44,100] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: stop :: 121 :: waiting for tasks to be stopped
[2020-06-14 11:19:44,107] :: DEBUG :: hbmqtt.broker :: broker :: client_connected :: 500 :: Client loop cancelled
[2020-06-14 11:19:44,108] :: DEBUG :: hbmqtt.broker :: broker :: client_connected :: 507 :: helperbot@bumper/helperbot Client disconnected
[2020-06-14 11:19:44,109] :: INFO :: hbmqtt.broker :: broker :: release_connection :: 101 :: Listener 'tls1': 2 connections acquired
[2020-06-14 11:19:44,111] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: _reader_loop :: 423 :: Task cancelled, reader loop ending
[2020-06-14 11:19:44,113] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: client_handler :: handle_connection_closed :: 170 :: Broker closed connection
[2020-06-14 11:19:44,114] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: _reader_loop :: 437 :: helperbot@bumper/helperbot Reader coro stopped
[2020-06-14 11:19:44,115] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: _stop_waiters :: 133 :: Stopping 0 puback waiters
[2020-06-14 11:19:44,116] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: _stop_waiters :: 134 :: Stopping 0 pucomp waiters
[2020-06-14 11:19:44,117] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: _stop_waiters :: 135 :: Stopping 0 purec waiters
[2020-06-14 11:19:44,118] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: _stop_waiters :: 136 :: Stopping 0 purel waiters
[2020-06-14 11:19:44,119] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: stop :: 121 :: waiting for tasks to be stopped
[2020-06-14 11:19:44,127] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: mqtt_deliver_next_message :: 465 :: Delivering message None
[2020-06-14 11:19:44,133] :: DEBUG :: hbmqtt.broker :: broker :: client_connected :: 500 :: Client loop cancelled
[2020-06-14 11:19:44,134] :: DEBUG :: hbmqtt.broker :: broker :: client_connected :: 507 :: bb5d3df7-0ec5-4f38-b930-b6e0ed03b963@yna5xi/GMth Client disconnected
[2020-06-14 11:19:44,135] :: INFO :: hbmqtt.broker :: broker :: release_connection :: 101 :: Listener 'tls1': 1 connections acquired
[2020-06-14 11:19:44,138] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: mqtt_deliver_next_message :: 465 :: Delivering message None
[2020-06-14 11:19:44,145] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: mqtt_deliver_next_message :: 465 :: Delivering message None
[2020-06-14 11:19:44,152] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: _reader_loop :: 423 :: Task cancelled, reader loop ending
[2020-06-14 11:19:44,153] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: broker_handler :: handle_disconnect :: 57 :: Client disconnecting
[2020-06-14 11:19:44,154] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: _reader_loop :: 437 :: bb5d3df7-0ec5-4f38-b930-b6e0ed03b963@yna5xi/GMth Reader coro stopped
[2020-06-14 11:19:44,155] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: _stop_waiters :: 133 :: Stopping 0 puback waiters
[2020-06-14 11:19:44,156] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: _stop_waiters :: 134 :: Stopping 0 pucomp waiters
[2020-06-14 11:19:44,157] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: _stop_waiters :: 135 :: Stopping 0 purec waiters
[2020-06-14 11:19:44,158] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: _stop_waiters :: 136 :: Stopping 0 purel waiters
[2020-06-14 11:19:44,160] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: stop :: 121 :: waiting for tasks to be stopped
[2020-06-14 11:19:44,165] :: DEBUG :: hbmqtt.broker :: broker :: client_connected :: 500 :: Client loop cancelled
[2020-06-14 11:19:44,166] :: DEBUG :: hbmqtt.broker :: broker :: client_connected :: 507 :: fhemuser@bumper/GLBbe7d18eG9 Client disconnected
[2020-06-14 11:19:44,167] :: INFO :: hbmqtt.broker :: broker :: release_connection :: 101 :: Listener 'tls1': 0 connections acquired
[2020-06-14 11:19:44,173] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: _reader_loop :: 423 :: Task cancelled, reader loop ending
[2020-06-14 11:19:44,174] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: broker_handler :: handle_disconnect :: 57 :: Client disconnecting
[2020-06-14 11:19:44,175] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: _reader_loop :: 437 :: helperbot@bumper/helperbot Reader coro stopped
[2020-06-14 11:19:44,176] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: _stop_waiters :: 133 :: Stopping 0 puback waiters
[2020-06-14 11:19:44,177] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: _stop_waiters :: 134 :: Stopping 0 pucomp waiters
[2020-06-14 11:19:44,178] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: _stop_waiters :: 135 :: Stopping 0 purec waiters
[2020-06-14 11:19:44,179] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: _stop_waiters :: 136 :: Stopping 0 purel waiters
[2020-06-14 11:19:44,181] :: DEBUG :: hbmqtt.mqtt.protocol.handler :: handler :: stop :: 121 :: waiting for tasks to be stopped
[2020-06-14 11:19:44,199] :: INFO :: bumper :: __init__ :: main :: 368 :: Keyboard Interrupt!
[2020-06-14 11:19:44,201] :: INFO :: bumper :: __init__ :: shutdown :: 239 :: Shutting down
[2020-06-14 11:19:44,202] :: ERROR :: confserver :: confserver :: stop_server :: 174 :: 'NoneType' object has no attribute 'shutdown'
Traceback (most recent call last):
  File "/opt/bumper-master/bumper/confserver.py", line 171, in stop_server
    await self.runner.shutdown()
AttributeError: 'NoneType' object has no attribute 'shutdown'
[2020-06-14 11:19:44,203] :: ERROR :: confserver :: confserver :: stop_server :: 174 :: 'NoneType' object has no attribute 'shutdown'
Traceback (most recent call last):
  File "/opt/bumper-master/bumper/confserver.py", line 171, in stop_server
    await self.runner.shutdown()
AttributeError: 'NoneType' object has no attribute 'shutdown'
[2020-06-14 11:19:44,204] :: DEBUG :: hbmqtt.broker :: broker :: shutdown :: 328 :: Broker closing
[2020-06-14 11:19:44,205] :: INFO :: hbmqtt.broker :: broker :: shutdown :: 329 :: Broker closed
[2020-06-14 11:19:44,206] :: INFO :: bumper :: __init__ :: shutdown :: 265 :: Shutdown complete
root@raspberrypi:/opt/bumper-master#

Ping and Portscan

root@raspberrypi:~# nc -zv 192.168.178.42 8883
Connection to 192.168.178.42 8883 port [tcp/*] succeeded!
root@raspberrypi:~# nc -zv 192.168.178.42 5223
Connection to 192.168.178.42 5223 port [tcp/*] succeeded!
root@raspberrypi:~# nc -zv 192.168.178.42 443
Connection to 192.168.178.42 443 port [tcp/https] succeeded!
root@raspberrypi:~# ping ecouser.net
PING ecouser.net (192.168.178.42) 56(84) bytes of data.
64 bytes from raspberrypi.fritz.box (192.168.178.42): icmp_seq=1 ttl=64 time=0.102 ms
64 bytes from raspberrypi.fritz.box (192.168.178.42): icmp_seq=2 ttl=64 time=0.089 ms
64 bytes from raspberrypi.fritz.box (192.168.178.42): icmp_seq=3 ttl=64 time=0.059 ms
^C
--- ecouser.net ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 46ms
rtt min/avg/max/mdev = 0.059/0.083/0.102/0.019 ms
root@raspberrypi:~# ping ecovacs.com
PING ecovacs.com (192.168.178.42) 56(84) bytes of data.
64 bytes from raspberrypi.fritz.box (192.168.178.42): icmp_seq=1 ttl=64 time=0.099 ms
64 bytes from raspberrypi.fritz.box (192.168.178.42): icmp_seq=2 ttl=64 time=0.121 ms
64 bytes from raspberrypi.fritz.box (192.168.178.42): icmp_seq=3 ttl=64 time=0.129 ms
^C
--- ecovacs.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 68ms
rtt min/avg/max/mdev = 0.099/0.116/0.129/0.015 ms
root@raspberrypi:~# ping ecovacs.net
PING ecovacs.net (192.168.178.42) 56(84) bytes of data.
64 bytes from raspberrypi.fritz.box (192.168.178.42): icmp_seq=1 ttl=64 time=0.141 ms
64 bytes from raspberrypi.fritz.box (192.168.178.42): icmp_seq=2 ttl=64 time=0.084 ms
64 bytes from raspberrypi.fritz.box (192.168.178.42): icmp_seq=3 ttl=64 time=0.060 ms
^C
--- ecovacs.net ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 52ms
rtt min/avg/max/mdev = 0.060/0.095/0.141/0.033 ms
root@raspberrypi:~#
  1. the real use for bumper is, running in background. So can you please provide a
    servicefile for systemd?
root@raspberrypi:/opt/bumper-master# cat /etc/systemd/system/bumper.service
[Unit]
Description=Bumper
After=network.target

[Service]
User=user
Restart=always
Type=simple
WorkingDirectory=/opt/bumper-master
ExecStart=/usr/local/bin/pipenv run python -m bumper --listen 192.168.178.42 --announce 192.168.178.42

[Install]
WantedBy=multi-user.target
root@raspberrypi:/opt/bumper-master#

Features supported?

First of all, thank you for keeping this project alive.

Do all of the features from the Ecovacs app work with bumper? For example, zone-cleaning, no-go lines, etc.

Documentation of MQTT communication between Server/helperbot/App/bot

Edited after Brians reply.

Hi Brian,
I still try to solve my problems to get bumper run with my OZMO_Slim10.

I'm not clear about the need of the helperbot. It might be useless. In my understanding it is just a kind of logging-help.

If i've understood it right, the Ecovacs-App(or sucks or an MQTT-tool) issues a command to the bot. The command is received by the bumper-MQTT-server, transformed by the helperbot into MQTT, sent to the bumper-MQTT-Server and distributed according to the subscriptions to the bot, the helperbot and to maybe additional MQTT-tools. The bot answers to the bumper-MQTT-Server which distributes the answer according the subscriptions to the helperbot, the App and to maybe additional MQTT-Tools.

The only action the helperbot does, is to report the reception of the command, the response and in case of errors or not answered commands to report these errors. No communication takes place between the bot and the helperbot.

Is that right ? If so, I think it should be documented more clearly, omitted or optionally controlled by a flag. In my case of error debugging it seems more confusing than helping.

Regards Markus

Robot not showing up in iOS app

Describe the bug
I've managed to set up everything including certs on iOS. However when logging in to the Ecovacs Home app on my iPhone I don't see my robot. The robot had already been setup before hand and if i turn off the DNS redirects I can see my robot.

To Reproduce
Steps to reproduce the behavior:

  1. Complete bumper setup including iOS certs
  2. open Ecovacs Home app

Expected behavior
Robot is seen in the app to control

Screenshots

https://i.imgur.com/UD6dKXD.png

Desktop (please complete the following information):

  • OS: Ubuntu 19

Smartphone (please complete the following information):

  • Device: iPhone XS Max
  • OS: iOS 12.4.1

Vacuum (please complete the following information):

  • Model: Deebot Ozmo 950

Additional context
Here are the logs from when the iPhone app is launched: https://pastebin.com/AZqSXVjj

When I click on Add a Robot I get a Request timed out error. The logs for that portion is: https://pastebin.com/EWGcfxRf

Self-signed certificates not accepted by Android client

After installing Bumper via git-clone and 'pipenv install' successfully on a Debian Buster virtual machine, I fired it up. Certificates were generated automatically. I created a passwd file inside the bumper subdirectory, since Bumper was complaining that it was missing. After killing and restarting it, I still get two (unrelated?) warnings,
[2019-12-27 00:17:01,149] :: WARNING :: hbmqtt.client :: MQTT connection failed: ConnectionRefusedError(111, "Connect call failed ('192.168.10.42', 8883)") [2019-12-27 00:17:01,149] :: WARNING :: hbmqtt.client :: Connection failed: ConnectException(ConnectionRefusedError(111, "Connect call failed ('192.168.10.42', 8883)"))
but it's running.
It seems my DNS-spoofing for (mq-ww.ecouser.net, portal-ww.ecouser.net, gl-de-openapi.ecovacs.com, msg-ww.ecouser.net, bigdata-china.ecovacs.com and others) seems to be working as intended.

Describe the bug
When trying to connect the Ecovacs HOME V1.3.1 app (Android 8.0.0 and SM-N950F, also tried other devices) I get many errors:
101,-9005
103,-9005
204,-9005
,-9005
016,-9005
003,-9005
020,-9005
207,-9005
The app tries to connect to the HTTPS service on port 443 which hands out the self-signed certificate formerly created. Obviously that certificate is rejected by the app, since the client replies "TLSv1.2 Record Layer: Alert (Level: Fatal, Description: Certificate Unknown)" and ends the connection.
Installing the CA-Certificate manually on the Android client didn't help.

To Reproduce
Steps to reproduce the behavior:

  1. Start Bumper
  2. Connect using a Android 8.0.0 device running the Ecovacs HOME app V1.3.1
  3. Capture traffic on the server using wireshark

Expected behavior
Ecovacs HOME app connects to bumper.

Screenshots
-- unable to paste one --

Desktop (please complete the following information):

  • OS: Debian Buster

Smartphone (please complete the following information):

  • Device: SM-N950F, SM-T825
  • OS: Android 8.0.0

Vacuum (please complete the following information):

  • Model: Deebot OZMO 950

Additional context

Deboot Bumper Dockercontainer for Rasberry PI2 or 3 based on rasbian OS

Is it possible to provide a Docker version of the bumper for a Rasberry PI? Most of the User have for example Octoprint etc. As base OS i would say Rasberian would be good.

I want to have a Bumper Docker Image for the Rasberry PI based on raperian

The advantage of the Rasbery PI would be that you can also run a DNS bind e.g. for the Fritzbox as a DNS server.

Would it even run on a Rasberry PI because of the Pyton?

I would also test the release and give feedback.

Can't use android app - DNS Configuration

Hello I've followed the instructions to use the android app (cert, dns fowarding etc), now when I open the app I get "error sending data (nnn,-9005)" where nnn looks like a random number. I've got the latest app and an Ozmo 930

Installation failed (Docker image)

I tried to install Docker on an Ubuntu 18.04 LXC Container running in Proxmox.

I installed docker using this How-To: https://www.digitalocean.com/community/tutorials/so-installieren-und-verwenden-sie-docker-auf-ubuntu-18-04-de

After installing Docker I followed the instructions in https://bumper.readthedocs.io/en/latest/Docker/ but was not able to run a Container with the Docker image.

When entering the followin command as root user:

docker run -it -e "BUMPER_ANNOUNCE_IP=192.168.178.102" -p 443:443 -p 8007:8007 -p 8883:8883 -p 5223:5223 -v /home/user/bumper/data:/bumper/data --name bumper bmartin5692/bumper

I get the following Error message:

docker: Error response from daemon: OCI runtime create failed: container_linux.go:349: starting container process caused "process_linux.go:449: container init caused \"rootfs_linux.go:58: mounting \\\"proc\\\" to rootfs \\\"/var/lib/docker/overlay2/6429b386f1931f390cae4bae6e9651defcdbb1e3cbbbdb1062be7756dc2981b7/merged\\\" at \\\"/proc\\\" caused \\\"permission denied\\\"\"": unknown.

Can you please help?

Docker builds failing after latest PR

After the latest PR docker builds are failing.

Looks to be related to version changes in yarl and multidict from the requirements.txt.
Revert to yarl 1.3.0 and multidict 4.5.2

Create docker container

Hi, I am volunteering to assist with testing as I have recently purchased a D600 and am successfully using your fork of the sucks library in Home Assistant at present. I’ll download the server on the weekend and have a play.

Also, jumping the gun a little here (lol) but may I suggest that you add support for running your app in a Docker container? Again would be happy to help there as well.

This looks like a cool project as I am not a fan of cloud based APIs for all my IOT devices and outside of the Deebot I have managed to avoid all of them..

Logged out, can't log back in

Describe the bug
After a toddler hits the log-out button, I cannot log in.

To Reproduce
Steps to reproduce the behavior:

  1. Hand phone to toddler
  2. Gaze upon the "login" screen
  3. Attempt to log in with usual username/password
  4. See Log

Expected behavior
Login with view of robot

Actual Behavior
[2019-10-14 16:51:35,487] :: INFO :: confserver :: client with devid $HASH attempting login
[2019-10-14 16:51:38,566] :: ERROR :: confserver :: 'did'
Traceback (most recent call last):
File "/root/bumper/bumper/confserver.py", line 492, in _auth_any
bumper.user_add_bot(tmpuser["userid"], bot["did"])
KeyError: 'did'

Desktop (please complete the following information):

  • OS: [e.g. Linux/Mac/Windows]

Smartphone (please complete the following information):

  • Device: Nexus Ancient
  • OS: Android 5.1.1

Vacuum (please complete the following information):

  • Model: Deebot N79

Extra Info

Sucks cannot log in using any username/password combination.

Certificate handling and generation

Bumper currently ships with CA certs and keys.

Preferably these certs would instead be provided by the user or generated at first run.

Requirements:

  • A CA Cert must be provided that can be imported into devices (phones, browsers, etc).
  • Must be a v3 certificate
  • Certs should include SANs (Subject Alternate Names) for all of the *.ecovacs, etc domains.

Port 8000 not existing

Describe the bug
When trying to log in to bumper over the Home Assistant Implementation of Ecovacs (using sucks) it tries to connect to /user.do on Port 8000. Since there is no port 8000 in bumper integration fails.

Expected behavior
Since Port 8000 is used - also according to the documentation of sucks - the necessary answer should come through this port.

Vacuum (please complete the following information):

  • Deebot Slim 2

Additional context
It’s all about Home Assistant connecting to bumper. Bumper works fine since I could connect via iOS-App.

XMPP Not Functioning with N79S

Describe the bug
No traffic visible on console output using either documentation in README or "python start_bumper.py" when attempting to connect Deebot N79S

To Reproduce
Steps to reproduce the behavior:

  1. Set up Bumper using QuickStart guide
  2. Set up DNS forwards in pfsense
  3. Connect Deebot to network

Expected behavior
We expected to see output from the console, however nothing beyond the startup messages were printed.

Desktop (please complete the following information):

  • OS: Archlinux inside LXC container, kernel 4.15.18

Smartphone (please complete the following information):

  • Device: Nexus 4
  • OS: Android 5.1.1

Vacuum (please complete the following information):

  • Model: Deebot N79S

Multi-floor Maps and cleaning areas

The original Ecovacs service provides multi-floor map and area management through the Ecovacs HOME app for certain robot types (such as the OZMO 950), once "Advanced Mode" is enabled. Using bumper I found out, that I can't save maps, edit areas (part, merge, rename, etc.) and consequently can't send the bot to clean a particular set of predefined areas.

Describe the solution you'd like
It would be great to have that feature just like with the original service.

XMPP - User doesn't have permission to bot (errno 103)

This happens when the bot was last on Ecovacs Network. When the app tries to control the bot it gets an errno 103, stating another user is using / registered the bot and it should be reset.

Some bots allow for adding additional users and ACLs, this was discovered while working with the Ozmo930.

Bumper should attempt to add the fuid_ user as an owner/full permissions to bypass this issue so a user doesn't need to fully reset the bot.

Issue-
The fix put in place previously seems to work for Ozmo930 (and possibly others). My Ozmo601 was not providing the same error message causing this add user catch to not engage.

Error with install

Firstly thanks for doing this project. I dont like placing all my faith in a cloud server running my deebot.

I have having issues when trying to run the code....I keep getting this error.

Traceback (most recent call last):
File "start_bumper.py", line 4, in
import bumper
File "/usr/src/bumper-dev_broken-XMPP/bumper/init.py", line 3, in
from .confserver import ConfServer
File "/usr/src/bumper-dev_broken-XMPP/bumper/confserver.py", line 11, in
import contextvars
ModuleNotFoundError: No module named 'contextvars'

I am running alpine linux with python 3.6.8
I have tried installing contextvars with the following " pipenv install contextvars" but i still get the same error.

I am not a linux user so I am struggling, any pointers would help.

Thanks

Anfrage: Anleitung für Nichtprogrammierer

Hallo,
als Endanwender ohne Programmierkenntnisse, habe ich Interesse mit einem freien Raspberry Pi 3b einen wie hier beschriebenen Server für meinen Ozmo 950 aufzubauen. Leider ist mir die hier angegebene Beschreibung nicht hilfreich.

Gibt es irgendwo eine detaillierte Anweisungsbeschreibung (Schritt für Schritt Anleitung) für die Verwendung auf einem Raspberry mit einer Fritzbox?

Ich danke.

Change randomid from 6 to 4 characters

Describe the bug
Reported by @KoelnSolar - When the randomid sent with commands to a bot is 6 characters the bot is unresponsive to commands after GetWKVer, but changing to 4 characters everything works.

Unsure where we got 6 characters, but it could have been an oversight originally that didn't cause issues on other bot models.

Tested with 901 without issue, and will update to 4 characters moving forward.

Error when running with Docker - Container does not start

Hi there,

When running Sucks with Docker, the Container does not seem to start.
It gives the Error exec user process caused "exec format error".

OS: Raspbian 10
System: Raspberry Pi 4 B

I cannot get the Container to start, when running the Command stated in your Readme.

Greetings,
Max

Persist state

Persist the state in a database, probably SQLite.

This will be needed for any eventual auth systems, or settings that are long-term server-side for example nickname. It should track bots, users, and clients.

Create_Certs not utilizing Bumper_SAN.txt

Reported by @DENightOne

When I generate the cert with the using create_certs_linux (alpine and Debian) it generates a cert without the contents of the Bumper_SAN.txt file included....only generates SAN of localhost..127.0.0.0 and machine name and machine IP. When I generated the certs with create_certs_windows it worked fine (meaning contents of Bumper_SAN.txt included...so I just generated the certs on a windows machine and copied them over.

Command-line args not working

Reported by @DENightOne

Secondly, --debug and –listen (and I assume –annouce) don’t work at all.... I had to hardcode the BUMPER_LISTEN and DEBUG into the file to get it to work..... once I hardcode the environmental variables it worked fine... (took a brief look at the code and it seems there is no provision for arguments)

Catch errors from bot for debug messages

Catch errors sent by bots over either MQTT or XMPP to log out to debug.
Example from MQTT:

  • Topic: iot/atr/errors/<DID>/<CLASS>/<RESOURCE>/x
  • Message: <ctl ts='1551538248617' td='errors' old='' new='110'/>
    • "DustBox out"

This would make it easier to debug bot-level issues in relation to bumper.

Move to asyncio

I want to move towards all components being asyncio. The goal is to get away from threads without impacting performance (or maybe it will get better....). This should make the code easier to work on and reduce the risk of multiple threads interacting with a non-thread safe database at the same time.

Display image for bots in Ecovacs Home app

The Ecovacs Home app doesn't have a cache of bot images to display, and is requesting a picture from the API. This isn't currently handled in Bumper, so the picture is missing for bots.

The app requests a picture for the bot being shown with the following:
Method: GET
Path: /api/pim/file/get/{id}

Bumper should ship with a generic placeholder image that can be shown when this is requested.

[Doku enhancement] Trust certificate on android 9 pie

Hello ladies and gentlemen,
english is not my mother tongue, I hope you understand it anyway.

With none of the instructions in www, I managed to make the file system writable on Android 9 Pie (Samsung J6), so I'm not able to put certificates to the system store.

The only thing that helped me was patching the Ecovacs Home app.
I did it in Kali Linux and I don't know if this works in Windows.

  1. Download Ecovacs Home App to PC. E.g. https://addons.mozilla.org/de/firefox/addon/apkgk-downloader/

  2. If not present get a Java JDK >= 8 (bin/jarsigner is needed; e.g. https://openjdk.java.net/ )

  3. Clone https://github.com/levyitay/AddSecurityExceptionAndroid

  4. The script addSecurityExceptions.sh is unusable because there are errors in the file AndroidManifest.xml : Line 19 and line line 26 contains illegal spaces. So I run the commands manually (with the apk in the same dir as apktool.jar).

mkdir ~/.android
keytool -genkey -v -keystore ~/.android/debug.keystore -storepass android -alias androiddebugkey -keypass android -keyalg RSA -keysize 2048 -validity 10000
java -jar "apktool.jar" d -f -o /tmp/ecohome "com-eco-global-app1572580800.apk"
cp "network_security_config.xml" /tmp/ecohome/res/xml/.
# do the next line only once!
sed -E "s/(<application.*)(>)/\1 android\:networkSecurityConfig=\"@xml\/network_security_config\" \2 /" /tmp/ecohome/AndroidManifest.xml > /tmp/ecohome/AndroidManifest.xml.new
mv /tmp/ecohome/AndroidManifest.xml.new /tmp/ecohome/AndroidManifest.xml
vim /tmp/ecohome/AndroidManifest.xml
# kill the space in "org.simalliance.openmobileap i.SMARTCARD" (actually two lines 19 and 26)
java -jar "apktool.jar" empty-framework-dir --force /tmp/ecohome
java -jar "apktool.jar" b -o ./ecohome.apk /tmp/ecohome
<pathtoJDK/bin/>jarsigner -verbose -keystore ~/.android/debug.keystore -storepass android -keypass android ./ecohome.apk androiddebugkey
  1. upload ecohome.apk to smartphone, deinstall the original app, install the patched one manually and be happy.

I have to admit that I haven't tried Bumper yet (still to come). I used this procedure for mitmproxy and that's why I came across this project. But I believe that this procedure could also be necessary for the Bumper-CA.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.