bellrichm / WeeWX-MQTTSubscribe

A WeeWX service and driver that receives data from MQTT.
GNU General Public License v3.0
52 stars 13 forks source link

Error in Debian 12 with python 3.11 - AttributeError: 'Client' object has no attribute '_sock' #200

Closed jmceara closed 6 months ago

jmceara commented 7 months ago

Fresh install of Debian 12 (Python 5.0.2 using venv) + Weewx 5

Feb 12 20:05:33 skynet3.jonis.com.br systemd[1]: Started weewx.service - WeeWX weather system.
Feb 12 20:05:33 skynet3.jonis.com.br weewxd[1704745]: INFO __main__: Initializing weewxd version 5.0.2
Feb 12 20:05:33 skynet3.jonis.com.br weewxd[1704745]: INFO __main__: Command line: /home/jmaurin/weewx-venv/lib/python3.11/site-packages/weewxd.py                                                     /home/jmaurin/weewx-data/weewx.conf
Feb 12 20:05:33 skynet3.jonis.com.br weewxd[1704745]: INFO __main__: Using Python 3.11.2 (main, Mar 13 2023, 12:18:29) [GCC 12.2.0]
Feb 12 20:05:33 skynet3.jonis.com.br weewxd[1704745]: INFO __main__: Located at /home/jmaurin/weewx-venv/bin/python3
Feb 12 20:05:33 skynet3.jonis.com.br weewxd[1704745]: INFO __main__: Platform Linux-6.1.0-18-amd64-x86_64-with-glibc2.36
Feb 12 20:05:33 skynet3.jonis.com.br weewxd[1704745]: INFO __main__: Locale: 'en_GB.UTF-8'
Feb 12 20:05:33 skynet3.jonis.com.br weewxd[1704745]: INFO __main__: Entry path: /home/jmaurin/weewx-venv/lib/python3.11/site-packages/weewxd.py
Feb 12 20:05:33 skynet3.jonis.com.br weewxd[1704745]: INFO __main__: WEEWX_ROOT: /home/jmaurin/weewx-data
Feb 12 20:05:33 skynet3.jonis.com.br weewxd[1704745]: INFO __main__: Configuration file: /home/jmaurin/weewx-data/weewx.conf
Feb 12 20:05:33 skynet3.jonis.com.br weewxd[1704745]: INFO __main__: User module: /home/jmaurin/weewx-data/bin/user
Feb 12 20:05:33 skynet3.jonis.com.br weewxd[1704745]: INFO __main__: Debug: 0
Feb 12 20:05:33 skynet3.jonis.com.br weewxd[1704745]: INFO weewx.engine: Loading station type MQTTSubscribeDriver (user.MQTTSubscribe)
Feb 12 20:05:33 skynet3.jonis.com.br weewxd[1704745]: INFO user.MQTTSubscribe: (Driver) Version is 2.3.1-rc01
Feb 12 20:05:33 skynet3.jonis.com.br weewxd[1704745]: INFO user.MQTTSubscribe: (Driver) Log level: 0
Feb 12 20:05:33 skynet3.jonis.com.br weewxd[1704745]: INFO user.MQTTSubscribe: (Driver) Log debug setting: 0
Feb 12 20:05:33 skynet3.jonis.com.br weewxd[1704745]: INFO user.MQTTSubscribe: (Driver) Log console: False
Feb 12 20:05:33 skynet3.jonis.com.br weewxd[1704745]: INFO user.MQTTSubscribe: (Driver) Log file: None
Feb 12 20:05:33 skynet3.jonis.com.br weewxd[1704745]: INFO user.MQTTSubscribe: (Driver) Max loop interval is: 0
Feb 12 20:05:33 skynet3.jonis.com.br weewxd[1704745]: INFO user.MQTTSubscribe: (Driver) message_callback_provider_name is user.MQTTSubscribe.Messag                                                    eCallbackProvider
Feb 12 20:05:33 skynet3.jonis.com.br weewxd[1704745]: INFO user.MQTTSubscribe: (Driver) clientid is MQTTSubscribe-6197
Feb 12 20:05:33 skynet3.jonis.com.br weewxd[1704745]: INFO user.MQTTSubscribe: (Driver) client_session is True
Feb 12 20:05:33 skynet3.jonis.com.br weewxd[1704745]: INFO user.MQTTSubscribe: (Driver) host is localhost
Feb 12 20:05:33 skynet3.jonis.com.br weewxd[1704745]: INFO user.MQTTSubscribe: (Driver) port is 1883
Feb 12 20:05:33 skynet3.jonis.com.br python3[1704745]: Exception ignored in: <function Client.__del__ at 0x7f5ba1c31260>
Feb 12 20:05:33 skynet3.jonis.com.br python3[1704745]: Traceback (most recent call last):
Feb 12 20:05:33 skynet3.jonis.com.br python3[1704745]:   File "/home/jmaurin/weewx-venv/lib/python3.11/site-packages/paho/mqtt/client.py", line 874                                                    , in __del__
Feb 12 20:05:33 skynet3.jonis.com.br weewxd[1704745]: INFO user.MQTTSubscribe: (Driver) keepalive is 60
Feb 12 20:05:33 skynet3.jonis.com.br python3[1704745]:     self._reset_sockets()
Feb 12 20:05:33 skynet3.jonis.com.br python3[1704745]:   File "/home/jmaurin/weewx-venv/lib/python3.11/site-packages/paho/mqtt/client.py", line 113                                                    3, in _reset_sockets
Feb 12 20:05:33 skynet3.jonis.com.br python3[1704745]:     self._sock_close()
Feb 12 20:05:33 skynet3.jonis.com.br python3[1704745]:   File "/home/jmaurin/weewx-venv/lib/python3.11/site-packages/paho/mqtt/client.py", line 111                                                    9, in _sock_close
Feb 12 20:05:33 skynet3.jonis.com.br python3[1704745]:     if not self._sock:
Feb 12 20:05:33 skynet3.jonis.com.br python3[1704745]:            ^^^^^^^^^^
Feb 12 20:05:33 skynet3.jonis.com.br python3[1704745]: AttributeError: 'Client' object has no attribute '_sock'
Feb 12 20:05:33 skynet3.jonis.com.br weewxd[1704745]: INFO user.MQTTSubscribe: (Driver) username is None
Feb 12 20:05:33 skynet3.jonis.com.br weewxd[1704745]: INFO user.MQTTSubscribe: (Driver) min_delay is 1
Feb 12 20:05:33 skynet3.jonis.com.br weewxd[1704745]: INFO user.MQTTSubscribe: (Driver) max_delay is 120
Feb 12 20:05:33 skynet3.jonis.com.br weewxd[1704745]: INFO user.MQTTSubscribe: (Driver) password is set
Feb 12 20:05:33 skynet3.jonis.com.br weewxd[1704745]: INFO user.MQTTSubscribe: (Driver) Archive topic is None
Feb 12 20:05:33 skynet3.jonis.com.br weewxd[1704745]: ERROR weewx.engine: Import of driver failed: Client.__init__() missing 1 required positional                                                     argument: 'callback_api_version' (<class 'TypeError'>)
Feb 12 20:05:33 skynet3.jonis.com.br weewxd[1704745]: CRITICAL weewx.engine:     ****  Traceback (most recent call last):
Feb 12 20:05:33 skynet3.jonis.com.br weewxd[1704745]: CRITICAL weewx.engine:     ****    File "/home/jmaurin/weewx-venv/lib/python3.11/site-package                                                    s/weewx/engine.py", line 115, in setupStation
Feb 12 20:05:33 skynet3.jonis.com.br weewxd[1704745]: CRITICAL weewx.engine:     ****      self.console = loader_function(config_dict, self)
Feb 12 20:05:33 skynet3.jonis.com.br weewxd[1704745]: CRITICAL weewx.engine:     ****                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Feb 12 20:05:33 skynet3.jonis.com.br weewxd[1704745]: CRITICAL weewx.engine:     ****    File "/home/jmaurin/weewx-data/bin/user/MQTTSubscribe.py",                                                     line 1982, in loader
Feb 12 20:05:33 skynet3.jonis.com.br weewxd[1704745]: CRITICAL weewx.engine:     ****      return MQTTSubscribeDriver(config_dict, engine) # pragma                                                    : no cover
Feb 12 20:05:33 skynet3.jonis.com.br weewxd[1704745]: CRITICAL weewx.engine:     ****             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Feb 12 20:05:33 skynet3.jonis.com.br weewxd[1704745]: CRITICAL weewx.engine:     ****    File "/home/jmaurin/weewx-data/bin/user/MQTTSubscribe.py",                                                     line 2011, in __init__
Feb 12 20:05:33 skynet3.jonis.com.br weewxd[1704745]: CRITICAL weewx.engine:     ****      self.subscriber = MQTTSubscriber(stn_dict, self.logger)
Feb 12 20:05:33 skynet3.jonis.com.br weewxd[1704745]: CRITICAL weewx.engine:     ****                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Feb 12 20:05:33 skynet3.jonis.com.br weewxd[1704745]: CRITICAL weewx.engine:     ****    File "/home/jmaurin/weewx-data/bin/user/MQTTSubscribe.py",                                                     line 1628, in __init__
Feb 12 20:05:33 skynet3.jonis.com.br weewxd[1704745]: CRITICAL weewx.engine:     ****      self.client = mqtt.Client(client_id=clientid, userdata=s                                                    elf.userdata, clean_session=clean_session)
Feb 12 20:05:33 skynet3.jonis.com.br weewxd[1704745]: CRITICAL weewx.engine:     ****                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Feb 12 20:05:33 skynet3.jonis.com.br weewxd[1704745]: CRITICAL weewx.engine:     ****  TypeError: Client.__init__() missing 1 required positional a                                                    rgument: 'callback_api_version'
Feb 12 20:05:33 skynet3.jonis.com.br weewxd[1704745]: CRITICAL __main__: Unable to load driver: Client.__init__() missing 1 required positional arg                                                    ument: 'callback_api_version'
Feb 12 20:05:33 skynet3.jonis.com.br weewxd[1704745]: CRITICAL __main__:     ****  Exiting...
Feb 12 20:05:33 skynet3.jonis.com.br systemd[1]: weewx.service: Main process exited, code=exited, status=4/NOPERMISSION
Feb 12 20:05:33 skynet3.jonis.com.br systemd[1]: weewx.service: Failed with result 'exit-code'.
bellrichm commented 7 months ago

Latest paho-mqtt release is not backwards comptible. You’ll have to downgrade pip install paho-mqtt==1.6.1

jmceara commented 6 months ago

Latest paho-mqtt release is not backwards comptible. You’ll have to downgrade pip install paho-mqtt==1.6.1

Yep, just did tha tand it's working.