anetczuk / LinakDeskApp

Desktop application that allows control of Linak office desk under Linux
MIT License
143 stars 13 forks source link

App unable to connect - ValueError: Expected MAC address, got '' #16

Closed spthiel closed 7 months ago

spthiel commented 7 months ago

On my linux mint 21.3 laptop the app is unable to connect to the desk

This is the log:

2024-01-25 13:50:59,700 DEBUG    MainThread __main__:main [main.py:109] Starting the application
2024-01-25 13:50:59,700 DEBUG    MainThread __main__:main [main.py:110] Logger log file: /home/n/apps/LinakDeskApp/tmp/log/log.txt
2024-01-25 13:50:59,758 DEBUG    MainThread linakdeskapp.gui.suspenddetector.QSuspendTimer:start [suspenddetector.py:49] starting suspension detector
2024-01-25 13:50:59,760 DEBUG    MainThread linakdeskapp.gui.main_window.MainWindow:setIconTheme [main_window.py:103] setting tray theme: <TrayIconTheme.WHITE: ('office-chair-gray.png', 'office-chair-white.png', 'office-chair-red.png')>
2024-01-25 13:50:59,764 DEBUG    MainThread linakdeskapp.gui.main_window.MainWindow:_updateTrayIcon [main_window.py:126] setting tray icon office-chair-gray.png <PyQt5.QtGui.QIcon object at 0x7fd6339afac0>
2024-01-25 13:50:59,766 DEBUG    MainThread linakdeskapp.gui.main_window.MainWindow:loadSettings [main_window.py:146] loading app state from /home/n/.config/arnet/LinakDeskApp.ini
2024-01-25 13:50:59,766 DEBUG    MainThread linakdeskapp.gui.app_settings_widget.AppSettingsWidget:_toggleAutoReconnectTime [app_settings_widget.py:182] setting auto reconnect timer to 60
2024-01-25 13:50:59,766 WARNING  MainThread linakdeskapp.gui.app_settings_widget.AppSettingsWidget:_setCurrentTrayTheme [app_settings_widget.py:319] could not find index for theme: ''
2024-01-25 13:50:59,767 DEBUG    MainThread linakdeskapp.gui.main_window.MainWindow:_updateTrayIcon [main_window.py:126] setting tray icon office-chair-gray.png <PyQt5.QtGui.QIcon object at 0x7fd6339afac0>
2024-01-25 13:50:59,768 INFO     MainThread linakdeskapp.gui.webserver_settings_widget.WebServerSettingsWidget:attachConnector [webserver_settings_widget.py:40] desk connector attached to webserver <linakdeskapp.bt_device_connector.BTDeviceConnector object at 0x7fd6339afbe0>
2024-01-25 13:50:59,768 DEBUG    MainThread linakdeskapp.gui.main_window.MainWindow:_tryReconnectOnStartup [main_window.py:99] trying reconnect on startup
2024-01-25 13:50:59,768 DEBUG    MainThread linakdeskapp.bt_device_connector.BTDeviceConnector:_changeConnectionStatus [bt_device_connector.py:150] changing connection state to ConnectionState.CONN_IN_PROGRESS
2024-01-25 13:50:59,768 DEBUG    MainThread linakdeskapp.gui.main_window.MainWindow:_updateTrayIcon [main_window.py:126] setting tray icon office-chair-gray.png <PyQt5.QtGui.QIcon object at 0x7fd6339afac0>
2024-01-25 13:50:59,768 DEBUG    MainThread linakdeskapp.gui.main_window.MainWindow:_updateTrayIcon [main_window.py:126] setting tray icon office-chair-gray.png <PyQt5.QtGui.QIcon object at 0x7fd6339afac0>
2024-01-25 13:50:59,799 DEBUG    Connect-1 linakdeskapp.bt_device_connector.ThreadWorker:run [bt_device_connector.py:288] Worker start
2024-01-25 13:50:59,802 DEBUG    Connect-1 linak_dpg_bt.connection.BTLEConnection:__init__ [connection.py:62] Constructed BTLEConnection object: <linak_dpg_bt.connection.BTLEConnection object at 0x7fd62dda6bf0>
2024-01-25 13:50:59,802 DEBUG    Connect-1 linak_dpg_bt.linak_device.LinakDesk:__init__ [linak_device.py:109] Constructed LinakDesk object: <linak_dpg_bt.linak_device.LinakDesk object at 0x7fd62dda6950>
2024-01-25 13:50:59,802 DEBUG    Connect-1 linak_dpg_bt.linak_device.LinakDesk:_connect [linak_device.py:347] Initializing the device
2024-01-25 13:50:59,802 DEBUG    Connect-1 linak_dpg_bt.connection.BTLEConnection:connect [connection.py:95] Trying to connect to
2024-01-25 13:50:59,802 ERROR    Connect-1 linak_dpg_bt.linak_device.LinakDesk:initialize [linak_device.py:343] Initialization failed: <class 'ValueError'> Expected MAC address, got ''
Traceback (most recent call last):
  File "/home/n/apps/LinakDeskApp/lib/linak_bt_desk/linak_dpg_bt/linak_device.py", line 340, in initialize
    self._connect()
  File "/home/n/apps/LinakDeskApp/lib/linak_bt_desk/linak_dpg_bt/linak_device.py", line 348, in _connect
    with self._conn as conn:
  File "/home/n/apps/LinakDeskApp/lib/linak_bt_desk/linak_dpg_bt/synchronized.py", line 80, in decorator
    return func(self, *args, **kws)
  File "/home/n/apps/LinakDeskApp/lib/linak_bt_desk/linak_dpg_bt/connection.py", line 75, in __enter__
    self.connect()
  File "/home/n/apps/LinakDeskApp/lib/linak_bt_desk/linak_dpg_bt/synchronized.py", line 80, in decorator
    return func(self, *args, **kws)
  File "/home/n/apps/LinakDeskApp/lib/linak_bt_desk/linak_dpg_bt/connection.py", line 37, in wrapper
    return func(*args)
  File "/home/n/apps/LinakDeskApp/lib/linak_bt_desk/linak_dpg_bt/connection.py", line 101, in connect
    self._conn.connect(self._mac, addrType='random')
  File "/home/n/.local/lib/python3.10/site-packages/bluepy/btle.py", line 445, in connect
    self._connect(addr, addrType, iface)
  File "/home/n/.local/lib/python3.10/site-packages/bluepy/btle.py", line 423, in _connect
    raise ValueError("Expected MAC address, got %s" % repr(addr))
ValueError: Expected MAC address, got ''
2024-01-25 13:50:59,803 DEBUG    Connect-1 linakdeskapp.bt_device_connector.BTDeviceConnector:_initializeDevice [bt_device_connector.py:119] Could not connect to to device: <linak_dpg_bt.linak_device.LinakDesk object at 0x7fd62dda6950>
2024-01-25 13:50:59,803 DEBUG    Connect-1 linakdeskapp.bt_device_connector.BTDeviceConnector:_changeConnectionStatus [bt_device_connector.py:150] changing connection state to ConnectionState.DISCONNECTED
2024-01-25 13:50:59,803 DEBUG    Connect-1 linakdeskapp.bt_device_connector.ThreadWorker:run [bt_device_connector.py:290] Worker complete
2024-01-25 13:50:59,804 DEBUG    MainThread linakdeskapp.gui.main_window.MainWindow:_updateTrayIcon [main_window.py:126] setting tray icon office-chair-gray.png <PyQt5.QtGui.QIcon object at 0x7fd6339afac0>
2024-01-25 13:50:59,806 DEBUG    MainThread linakdeskapp.gui.main_window.MainWindow:_updateTrayIcon [main_window.py:126] setting tray icon office-chair-gray.png <PyQt5.QtGui.QIcon object at 0x7fd6339afac0>
anetczuk commented 7 months ago

Have you tried to use following menu option: "Connection -> Connect to..." then "Scan BT" and "Connect" on desired device? This might need permissions to "le on" shell command, so consider adding additional privileges to your user or run once with root to connect. If you resist to running app under root (reasonable) then there is command line argument "--connect". You can use it to pass MAC of device when running for first time. Then the MAC will be saved and reused without additional privileges.

spthiel commented 7 months ago

Oh derp didn't realize there was a menu