Coder Social home page Coder Social logo

linakdeskapp's People

Contributors

alexkoon avatar anetczuk 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

linakdeskapp's Issues

error on startup: „ModuleNotFoundError: No module named 'linak_dpg_bt'”

When I try to start I get the following error:

LinakDeskApp/src$ python3 -m linakdeskapp*
Traceback (most recent call last):
File "/usr/lib/python3.9/runpy.py", line 197, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/usr/lib/python3.9/runpy.py", line 87, in _run_code
exec(code, run_globals)
File "/home/emil/programy/LinakDeskApp/src/linakdeskapp/main.py", line 7, in
from .main import main
File "/home/emil/programy/LinakDeskApp/src/linakdeskapp/main.py", line 46, in
from linakdeskapp.bt_device_connector import BTDeviceConnector
File "/home/emil/programy/LinakDeskApp/src/linakdeskapp/bt_device_connector.py", line 43, in
from linak_dpg_bt.linak_device import LinakDesk
ModuleNotFoundError: No module named 'linak_dpg_bt'

buttons do not work

Hi Anetczuk,

At first: great project and thanks for sharing it at GitHub!

I bought an Inwerk Masterlift 2.
The Linak components are CBD6S 300W and I use a DPG1M (its the one without the lightstrip and without the display showing the hight).

My command opening your app:
sudo python3 src/linakdeskapp/main.py

I am able to connect and it is showing all the information. If my desk goes up and down (by my DPG1M) all the values are updated immediately.

If I click on "up" nothing is happening even if I press it longer (the other buttons do not work either). The log output is:

2020-05-09 11:08:46,695 DEBUG    NotifHndlr-2 linak_dpg_bt.linak_device.LinakDesk:_handle_heigh_speed_notification [linak_device.py:714] Received height: 9960 3160 data: HeightSpeed[DeskPosition[3160] DeskSpeed[0]]
2020-05-09 11:09:01,213 INFO     MainThread linak_dpg_bt.desk_mover.DeskMoverThread:moveUp [desk_mover.py:122] moving up
2020-05-09 11:09:01,216 INFO     MainThread linak_dpg_bt.desk_mover.DeskMoverThread:stopMoving [desk_mover.py:157] stopping device
2020-05-09 11:09:01,252 DEBUG    MainThread linak_dpg_bt.connection.BTLEConnection:_send_command_single [connection.py:225] Sending ControlCommand.STOP_MOVING: 0xFF 0x00 to Characteristic.CONTROL[99FA0002-338A-1024-8A49-009C0215F78A, 0xe] w_resp=False
2020-05-09 11:09:01,255 INFO     MainThread linak_dpg_bt.desk_mover.DeskMoverThread:spawnThread [desk_mover.py:164] new thread spawned <CommandThread(DeskMover-7, started daemon 140648759031552)>
2020-05-09 11:09:01,314 INFO     MainThread linak_dpg_bt.desk_mover.DeskMoverThread:stopMoving [desk_mover.py:155] stopping thread <CommandThread(DeskMover-7, started daemon 140648759031552)>
2020-05-09 11:09:01,756 DEBUG    DeskMover-7 linak_dpg_bt.connection.BTLEConnection:_send_command_single [connection.py:225] Sending ControlCommand.MOVE_1_UP: 0x47 0x00 to Characteristic.CONTROL[99FA0002-338A-1024-8A49-009C0215F78A, 0xe] w_resp=False
2020-05-09 11:09:01,757 DEBUG    DeskMover-7 linak_dpg_bt.desk_mover.CommandThread:_thread_loop [desk_mover.py:106] thread terminated
2020-05-09 11:09:01,757 INFO     MainThread linak_dpg_bt.desk_mover.DeskMoverThread:stopMoving [desk_mover.py:157] stopping device
2020-05-09 11:09:02,258 DEBUG    MainThread linak_dpg_bt.connection.BTLEConnection:_send_command_single [connection.py:225] Sending ControlCommand.STOP_MOVING: 0xFF 0x00 to Characteristic.CONTROL[99FA0002-338A-1024-8A49-009C0215F78A, 0xe] w_resp=False

What could be the reason? How can I fix it?

Thank you in advance!

Kind regards,
Lennard

Matplotlib: NotImplementedError on removeButton('Subplots')

I tried this app (master clone) and failing. I'm using Gentoo Linux.

Environment:

Linux 5.9.2-gentoo #2 SMP Sat Nov 7 13:43:31 CET 2020
Python 3.8.6
Matplotlib 3.3.3 (with wxwidgets, cairo, qt5)
Pandas 1.1.4-r1

Hardware: Linak DPG1C

Executing python3 -m linakdeskapp results in:

2020-11-28 20:35:58,177 DEBUG    MainThread linakdeskapp.main:main [main.py:108] Starting the application
2020-11-28 20:35:58,177 DEBUG    MainThread linakdeskapp.main:main [main.py:109] Logger log file: /home/mono/.projects/LinakDeskApp/src/log.txt
/home/mono/.projects/LinakDeskApp/src/linakdeskapp/gui/mpl/mpl_toolbar.py:39: MatplotlibDeprecationWarning:
The _init_toolbar function was deprecated in Matplotlib 3.3 and will be removed two minor releases later. Use __init__ instead.
  self._init_toolbar()    ## add current buttons
2020-11-28 20:35:58,632 ERROR    MainThread linakdeskapp.main:main [main.py:131] Exception occurred
Traceback (most recent call last):
  File "/home/mono/.projects/LinakDeskApp/src/linakdeskapp/main.py", line 124, in main
    exitCode = runApp(args)
  File "/home/mono/.projects/LinakDeskApp/src/linakdeskapp/main.py", line 77, in runApp
    window = MainWindow()
  File "/home/mono/.projects/LinakDeskApp/src/linakdeskapp/gui/main_window.py", line 51, in __init__
    self.ui.setupUi(self)
  File "<string>", line 26, in setupUi
  File "/home/mono/.projects/LinakDeskApp/src/linakdeskapp/gui/app_settings_widget.py", line 85, in __init__
    self.ui.setupUi(self)
  File "<string>", line 41, in setupUi
  File "/home/mono/.projects/LinakDeskApp/src/linakdeskapp/gui/position_chart_widget.py", line 57, in __init__
    self.toolbar = DynamicToolbar(self.ui.positionChart, self)
  File "/home/mono/.projects/LinakDeskApp/src/linakdeskapp/gui/mpl/mpl_toolbar.py", line 27, in __init__
    self.removeButton( 'Subplots' )
  File "/home/mono/.projects/LinakDeskApp/src/linakdeskapp/gui/mpl/mpl_toolbar.py", line 39, in removeButton
    self._init_toolbar()    ## add current buttons
  File "/usr/lib/python3.8/site-packages/matplotlib/cbook/deprecation.py", line 234, in wrapper
    return func(*args, **kwargs)
  File "/usr/lib/python3.8/site-packages/matplotlib/backend_bases.py", line 2942, in _init_toolbar
    raise NotImplementedError
NotImplementedError

2020-11-28 20:35:58,634 INFO     MainThread linakdeskapp.main:main [main.py:147] Calculation time:  456.26497269ms

May i need some different versions of libraries? To be honest, i didn't worked yet with matplotlib and not sure, whats its trying here.

If i should try something, please let me know.

Thanks and best regards.

Package app as flatpak

Having this app as Flatpak will be great since it will make it easily installable in every Linux distro that supports Flatpak, which is almost everyone. Uploading it to https://flathub.org/ will make it visible and allow everyone to easily install it.

Missing executable bit on install_reqs.sh

Minor stuff, just noticed that configure_all.sh fails on executing install_reqs.sh

$ ./configure_all.sh 
Installing dependencies
./configure_all.sh: line 13: /[...]/LinakDeskApp/src/install_reqs.sh: Permission denied

Other than that, seems that configure_all.sh nor configure_autostart.sh is called during installation.

Thanks for the project!

Multiplatform

Hey,
I really like your App. More than the Original one.
Would it be possible, to get it working on Windows systems?
As I see, you are using bluepy, which is not running on other systems than Linux.
Are there bluetooth libraries which are working on both systems and do not need much modification of your code?
I would love it

ValueError in case of initialize start of application

Considering, #3 is fixed, if the application was never started yet, following error appears (in CLI/log):

2020-11-28 21:53:13,278 DEBUG    MainThread linakdeskapp.main:main [main.py:108] Starting the application
2020-11-28 21:53:13,280 DEBUG    MainThread linakdeskapp.main:main [main.py:109] Logger log file: /home/mono/.projects/LinakDeskApp/src/log.txt
2020-11-28 21:53:13,774 DEBUG    MainThread linakdeskapp.gui.suspenddetector.QSuspendTimer:start [suspenddetector.py:49] starting suspension detector
2020-11-28 21:53:13,781 DEBUG    MainThread linakdeskapp.gui.main_window.MainWindow:setIconTheme [main_window.py:102] setting tray theme: <TrayIconTheme.WHITE: ('office-chair-gray.png', 'office-chair-white.png', 'office-chair-red.png')>
2020-11-28 21:53:13,785 DEBUG    MainThread linakdeskapp.gui.main_window.MainWindow:_updateTrayIcon [main_window.py:125] setting tray icon office-chair-gray.png <PyQt5.QtGui.QIcon object at 0x7f3b783779d0>
2020-11-28 21:53:13,788 DEBUG    MainThread linakdeskapp.gui.main_window.MainWindow:loadSettings [main_window.py:145] loading app state from /home/mono/.config/arnet/LinakDeskApp.ini
2020-11-28 21:53:13,788 DEBUG    MainThread linakdeskapp.gui.app_settings_widget.AppSettingsWidget:_toggleAutoReconnectTime [app_settings_widget.py:182] setting auto reconnect timer to 60
2020-11-28 21:53:13,788 WARNING  MainThread linakdeskapp.gui.app_settings_widget.AppSettingsWidget:_setCurrentTrayTheme [app_settings_widget.py:319] could not find index for theme: ''
2020-11-28 21:53:13,790 DEBUG    MainThread linakdeskapp.gui.main_window.MainWindow:_updateTrayIcon [main_window.py:125] setting tray icon office-chair-gray.png <PyQt5.QtGui.QIcon object at 0x7f3b783779d0>
2020-11-28 21:53:13,794 DEBUG    MainThread linakdeskapp.gui.main_window.MainWindow:_tryReconnectOnStartup [main_window.py:98] trying reconnect on startup
2020-11-28 21:53:13,795 DEBUG    MainThread linakdeskapp.bt_device_connector.BTDeviceConnector:_changeConnectionStatus [bt_device_connector.py:150] changing connection state to ConnectionState.CONN_IN_PROGRESS
2020-11-28 21:53:13,795 DEBUG    MainThread linakdeskapp.gui.main_window.MainWindow:_updateTrayIcon [main_window.py:125] setting tray icon office-chair-gray.png <PyQt5.QtGui.QIcon object at 0x7f3b783779d0>
2020-11-28 21:53:13,798 DEBUG    MainThread linakdeskapp.gui.main_window.MainWindow:_updateTrayIcon [main_window.py:125] setting tray icon office-chair-gray.png <PyQt5.QtGui.QIcon object at 0x7f3b783779d0>
2020-11-28 21:53:13,816 DEBUG    Connect-1 linakdeskapp.bt_device_connector.ThreadWorker:run [bt_device_connector.py:288] Worker start
2020-11-28 21:53:13,822 DEBUG    Connect-1 linak_dpg_bt.connection.BTLEConnection:__init__ [connection.py:62] Constructed BTLEConnection object: <linak_dpg_bt.connection.BTLEConnection object at 0x7f3b78380d90>
2020-11-28 21:53:13,823 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 0x7f3b78380af0>
2020-11-28 21:53:13,823 DEBUG    Connect-1 linak_dpg_bt.linak_device.LinakDesk:_connect [linak_device.py:347] Initializing the device
2020-11-28 21:53:13,823 DEBUG    Connect-1 linak_dpg_bt.connection.BTLEConnection:connect [connection.py:95] Trying to connect to
2020-11-28 21:53:13,823 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/mono/.projects/LinakDeskApp/lib/linak_bt_desk/linak_dpg_bt/linak_device.py", line 340, in initialize
    self._connect()
  File "/home/mono/.projects/LinakDeskApp/lib/linak_bt_desk/linak_dpg_bt/linak_device.py", line 348, in _connect
    with self._conn as conn:
  File "/home/mono/.projects/LinakDeskApp/lib/linak_bt_desk/linak_dpg_bt/synchronized.py", line 80, in decorator
    return func(self, *args, **kws)
  File "/home/mono/.projects/LinakDeskApp/lib/linak_bt_desk/linak_dpg_bt/connection.py", line 75, in __enter__
    self.connect()
  File "/home/mono/.projects/LinakDeskApp/lib/linak_bt_desk/linak_dpg_bt/synchronized.py", line 80, in decorator
    return func(self, *args, **kws)
  File "/home/mono/.projects/LinakDeskApp/lib/linak_bt_desk/linak_dpg_bt/connection.py", line 37, in wrapper
    return func(*args)
  File "/home/mono/.projects/LinakDeskApp/lib/linak_bt_desk/linak_dpg_bt/connection.py", line 101, in connect
    self._conn.connect(self._mac, addrType='random')
  File "/home/mono/.local/lib/python3.8/site-packages/bluepy/btle.py", line 445, in connect
    self._connect(addr, addrType, iface)
  File "/home/mono/.local/lib/python3.8/site-packages/bluepy/btle.py", line 423, in _connect
    raise ValueError("Expected MAC address, got %s" % repr(addr))
ValueError: Expected MAC address, got ''
2020-11-28 21:53:13,825 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 0x7f3b78380af0>
2020-11-28 21:53:13,826 DEBUG    Connect-1 linakdeskapp.bt_device_connector.BTDeviceConnector:_changeConnectionStatus [bt_device_connector.py:150] changing connection state to ConnectionState.DISCONNECTED
2020-11-28 21:53:13,826 DEBUG    Connect-1 linakdeskapp.bt_device_connector.ThreadWorker:run [bt_device_connector.py:290] Worker complete
2020-11-28 21:53:13,830 DEBUG    MainThread linakdeskapp.gui.main_window.MainWindow:_updateTrayIcon [main_window.py:125] setting tray icon office-chair-gray.png <PyQt5.QtGui.QIcon object at 0x7f3b783779d0>
2020-11-28 21:53:13,850 DEBUG    MainThread linakdeskapp.gui.main_window.MainWindow:_updateTrayIcon [main_window.py:125] setting tray icon office-chair-gray.png <PyQt5.QtGui.QIcon object at 0x7f3b783779d0>

Obviously its trying to connect to an empty MAC address which will not work.

Cannot run the programs

I followed the README.md and could not run the programs. Im using ubuntu 20. Where can I get these dependencies prompted in the error message?

Steps to reproduce

  1. clone repository
  2. python -m venv env
  3. activate newly created python environment
  4. pip install dependencies given in README.md
  5. run these commands given in Actual result section

Expected result

Error should not be throwed.

Actual result

  • When doing: ./src/linakdeskctl
./src/linakdeskctl
Traceback (most recent call last):
  File "/home/linux_user/anaconda3/lib/python3.8/runpy.py", line 194, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/home/linux_user/anaconda3/lib/python3.8/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/home/linux_user/Desktop/some_folder/some_folder/LinakDeskApp/src/linakdeskapp/__main__.py", line 7, in <module>
    from .main import main
  File "/home/linux_user/Desktop/some_folder/some_folder/LinakDeskApp/src/linakdeskapp/main.py", line 46, in <module>
    from linakdeskapp.bt_device_connector import BTDeviceConnector
  File "/home/linux_user/Desktop/some_folder/some_folder/LinakDeskApp/src/linakdeskapp/bt_device_connector.py", line 43, in <module>
    from linak_dpg_bt.linak_device import LinakDesk
ModuleNotFoundError: No module named 'linak_dpg_bt'
  • When doing: ./src/linakdeskapp/main.py
./src/linakdeskapp/main.py
Traceback (most recent call last):
  File "./src/linakdeskapp/main.py", line 46, in <module>
    from linakdeskapp.bt_device_connector import BTDeviceConnector
  File "/home/linux_user/Desktop/some_folder/some_folder/LinakDeskApp/src/linakdeskapp/bt_device_connector.py", line 43, in <module>
    from linak_dpg_bt.linak_device import LinakDesk
ModuleNotFoundError: No module named 'linak_dpg_bt'
  • When doing: cd src; python3 -m linakdeskapp
cd src; python3 -m linakdeskapp
Traceback (most recent call last):
  File "/home/linux_user/anaconda3/lib/python3.8/runpy.py", line 194, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/home/linux_user/anaconda3/lib/python3.8/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/home/linux_user/Desktop/some_folder/some_folder/LinakDeskApp/src/linakdeskapp/__main__.py", line 7, in <module>
    from .main import main
  File "/home/linux_user/Desktop/some_folder/some_folder/LinakDeskApp/src/linakdeskapp/main.py", line 46, in <module>
    from linakdeskapp.bt_device_connector import BTDeviceConnector
  File "/home/linux_user/Desktop/some_folder/some_folder/LinakDeskApp/src/linakdeskapp/bt_device_connector.py", line 43, in <module>
    from linak_dpg_bt.linak_device import LinakDesk
ModuleNotFoundError: No module named 'linak_dpg_bt'

MacOS support?

Similar to #6, I wonder if this would work on MacOS?

It seems that Bluepy is Linux only. Is that correct?

Bluetooth command failed (code: 1, error: Invalid handle)

Glad to submit the first issue in this repository. Very nice work, this application looks great.

I am getting an error of some kind when I try to connect to my IKEA Linak powered standing desk.

Here is a link to the desk.
https://www.ikea.com/gb/en/p/idasen-desk-sit-stand-black-dark-grey-s89280993/

If this desk isn't supported I'm not here to chase you down to make you support the IKEA desks but could you maybe share some insights into how you managed to create this application? I'm not a Python programmer myself so I can't help too much with coding.

I tried asking Linak if they had some documentation but they responded by saying that was proprietary information. Do you have any advice for someone who hasn't programmed against a bluetooth interface before on how to reverse engineer and figure out how to connect to a Linak desk?

Bluetooth command failed (code: 1, error: Invalid handle) seems to be the important bit where it fails.

linak_dpg_bt.connection.BTLEConnection:read_characteristic_by_enum [connection.py:292] Got exception from bluepy while making a request: Bluetooth command failed (code: 1, error: Invalid handle)
linak_dpg_bt.connection:wrapper [connection.py:39] bluetooth exception occurred: <class 'bluepy.btle.BTLEGattError'> Bluetooth command failed (code: 1, error: Invalid handle)
linak_dpg_bt.connection.BTLEConnection:disconnect [connection.py:118] disconnecting

Here is the full log

2020-02-19 15:19:11,935 DEBUG    MainThread __main__:main [main.py:108] Starting the application
2020-02-19 15:19:11,935 DEBUG    MainThread __main__:main [main.py:109] Logger log file: /home/hermann/Programs/LinakDeskApp/log.txt
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
2020-02-19 15:19:11,984 DEBUG    MainThread linakdeskapp.gui.suspenddetector.QSuspendTimer:start [suspenddetector.py:44] starting suspension detector
2020-02-19 15:19:11,985 DEBUG    MainThread linakdeskapp.gui.main_window.MainWindow:setIconTheme [main_window.py:102] setting tray theme: <TrayIconTheme.WHITE: ('office-chair-gray.png', 'office-chair-white.png', 'office-chair-red.png')>
2020-02-19 15:19:11,989 DEBUG    MainThread linakdeskapp.gui.main_window.MainWindow:loadSettings [main_window.py:142] loading app state from /root/.config/arnet/LinakDeskApp.ini
2020-02-19 15:19:11,990 DEBUG    MainThread linakdeskapp.gui.app_settings_widget.AppSettingsWidget:_toggleAutoReconnectTime [app_settings_widget.py:182] setting auto reconnect timer to 60
2020-02-19 15:19:11,990 DEBUG    MainThread linakdeskapp.gui.main_window.MainWindow:_tryReconnectOnStartup [main_window.py:98] trying reconnect on startup
2020-02-19 15:19:11,990 DEBUG    MainThread linakdeskapp.bt_device_connector.BTDeviceConnector:_changeConnectionStatus [bt_device_connector.py:150] changing connection state to ConnectionState.CONN_IN_PROGRESS

2020-02-19 15:19:12,20  DEBUG    Connect-1 linakdeskapp.bt_device_connector.ThreadWorker:run [bt_device_connector.py:287] Worker start
2020-02-19 15:19:12,23  DEBUG    Connect-1 linak_dpg_bt.connection.BTLEConnection:__init__ [connection.py:62] Constructed BTLEConnection object: <linak_dpg_bt.connection.BTLEConnection object at 0x7fb9c3045a60>
2020-02-19 15:19:12,23  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 0x7fb9c30457c0>
2020-02-19 15:19:12,23  DEBUG    Connect-1 linak_dpg_bt.linak_device.LinakDesk:_connect [linak_device.py:347] Initializing the device
2020-02-19 15:19:12,23  DEBUG    Connect-1 linak_dpg_bt.connection.BTLEConnection:connect [connection.py:95] Trying to connect to 
2020-02-19 15:19:12,23  ERROR    Connect-1 linak_dpg_bt.linak_device.LinakDesk:initialize [linak_device.py:343] Initialization failed: <class 'ValueError'> Expected MAC address, got ''
2020-02-19 15:19:12,23  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 0x7fb9c30457c0>
2020-02-19 15:19:12,23  DEBUG    Connect-1 linakdeskapp.bt_device_connector.BTDeviceConnector:_changeConnectionStatus [bt_device_connector.py:150] changing connection state to ConnectionState.DISCONNECTED
2020-02-19 15:19:12,24  DEBUG    Connect-1 linakdeskapp.bt_device_connector.ThreadWorker:run [bt_device_connector.py:289] Worker complete

// Scan for desk

2020-02-19 15:19:16,45  DEBUG    MainThread linakdeskapp.bt_device_connector.BTDeviceConnector:scanDevices [bt_device_connector.py:74] Scanning bluetooth devices
2020-02-19 15:19:18,277 DEBUG    MainThread linak_dpg_bt.linak_device.LinakDesk:__del__ [linak_device.py:112] Deleting LinakDesk object: <linak_dpg_bt.linak_device.LinakDesk object at 0x7fb9c30457c0>
2020-02-19 15:19:18,277 DEBUG    MainThread linak_dpg_bt.connection.BTLEConnection:__del__ [connection.py:87] Deleting BTLEConnection object: <linak_dpg_bt.connection.BTLEConnection object at 0x7fb9c3045a60>
2020-02-19 15:19:18,277 DEBUG    MainThread linak_dpg_bt.connection.BTLEConnection:disconnect [connection.py:118] disconnecting
2020-02-19 15:19:26,298 DEBUG    MainThread linakdeskapp.bt_device_connector.BTDeviceConnector:scanDevices [bt_device_connector.py:90] Scanning finished
2020-02-19 15:19:26,300 DEBUG    MainThread linakdeskapp.gui.suspenddetector.QSuspendTimer:checkResumed [suspenddetector.py:62] resumed from suspend / hibernation after 10.512005[s]
2020-02-19 15:19:26,316 DEBUG    MainThread linakdeskapp.bt_device_connector.BTDeviceConnector:scanDevices [bt_device_connector.py:74] Scanning bluetooth devices
2020-02-19 15:19:36,458 DEBUG    MainThread linakdeskapp.bt_device_connector.BTDeviceConnector:scanDevices [bt_device_connector.py:90] Scanning finished
2020-02-19 15:19:36,458 DEBUG    MainThread linakdeskapp.gui.suspenddetector.QSuspendTimer:checkResumed [suspenddetector.py:62] resumed from suspend / hibernation after 10.158263[s]
2020-02-19 15:19:40,27  DEBUG    MainThread linakdeskapp.bt_device_connector.BTDeviceConnector:scanDevices [bt_device_connector.py:74] Scanning bluetooth devices
2020-02-19 15:19:50,281 DEBUG    MainThread linakdeskapp.bt_device_connector.BTDeviceConnector:scanDevices [bt_device_connector.py:90] Scanning finished
2020-02-19 15:19:50,283 DEBUG    MainThread linakdeskapp.gui.suspenddetector.QSuspendTimer:checkResumed [suspenddetector.py:62] resumed from suspend / hibernation after 10.97479[s]
2020-02-19 15:19:54,537 DEBUG    MainThread linakdeskapp.bt_device_connector.BTDeviceConnector:_changeConnectionStatus [bt_device_connector.py:150] changing connection state to ConnectionState.CONN_IN_PROGRESS

// Connect to my IKEA desk, failed connection

2020-02-19 15:19:54,539 DEBUG    Connect-2 linakdeskapp.bt_device_connector.ThreadWorker:run [bt_device_connector.py:287] Worker start
2020-02-19 15:19:54,539 DEBUG    Connect-2 linak_dpg_bt.connection.BTLEConnection:__init__ [connection.py:62] Constructed BTLEConnection object: <linak_dpg_bt.connection.BTLEConnection object at 0x7fb9c3045ca0>
2020-02-19 15:19:54,540 DEBUG    Connect-2 linak_dpg_bt.linak_device.LinakDesk:__init__ [linak_device.py:109] Constructed LinakDesk object: <linak_dpg_bt.linak_device.LinakDesk object at 0x7fb9c3045d00>
2020-02-19 15:19:54,540 DEBUG    Connect-2 linak_dpg_bt.linak_device.LinakDesk:_connect [linak_device.py:347] Initializing the device
2020-02-19 15:19:54,540 DEBUG    Connect-2 linak_dpg_bt.connection.BTLEConnection:connect [connection.py:95] Trying to connect to f1:0c:41:3a:4b:20
2020-02-19 15:19:54,786 DEBUG    Connect-2 linak_dpg_bt.connection.BTLEConnection:connect [connection.py:112] Connected to f1:0c:41:3a:4b:20
2020-02-19 15:19:55,322 DEBUG    Connect-2 linak_dpg_bt.connection.BTLEConnection:subscribe_to_notification_enum [connection.py:231] Subscribing to Characteristic.HEIGHT_SPEED[99FA0021-338A-1024-8A49-009C0215F78A, 0x1d]
2020-02-19 15:19:55,323 DEBUG    Connect-2 linak_dpg_bt.connection.BTLEConnection:subscribe_to_notification_enum [connection.py:236] Writing value <class 'bytes'>:0x01 0x00 to Characteristic.HEIGHT_SPEED[99FA0021-338A-1024-8A49-009C0215F78A, 0x1d] w_resp=False
2020-02-19 15:19:55,324 DEBUG    Connect-2 linak_dpg_bt.connection.BTLEConnection:subscribe_to_notification_enum [connection.py:231] Subscribing to Characteristic.TWO[99FA0022-338A-1024-8A49-009C0215F78A, 0x20]
2020-02-19 15:19:55,324 DEBUG    Connect-2 linak_dpg_bt.connection.BTLEConnection:subscribe_to_notification_enum [connection.py:236] Writing value <class 'bytes'>:0x01 0x00 to Characteristic.TWO[99FA0022-338A-1024-8A49-009C0215F78A, 0x20] w_resp=False
2020-02-19 15:19:55,325 DEBUG    Connect-2 linak_dpg_bt.connection.BTLEConnection:subscribe_to_notification_enum [connection.py:231] Subscribing to Characteristic.THREE[99FA0023-338A-1024-8A49-009C0215F78A, 0x23]
2020-02-19 15:19:55,325 DEBUG    Connect-2 linak_dpg_bt.connection.BTLEConnection:subscribe_to_notification_enum [connection.py:236] Writing value <class 'bytes'>:0x01 0x00 to Characteristic.THREE[99FA0023-338A-1024-8A49-009C0215F78A, 0x23] w_resp=False
2020-02-19 15:19:55,326 DEBUG    Connect-2 linak_dpg_bt.connection.BTLEConnection:subscribe_to_notification_enum [connection.py:231] Subscribing to Characteristic.FOUR[99FA0024-338A-1024-8A49-009C0215F78A, 0x26]
2020-02-19 15:19:55,326 DEBUG    Connect-2 linak_dpg_bt.connection.BTLEConnection:subscribe_to_notification_enum [connection.py:236] Writing value <class 'bytes'>:0x01 0x00 to Characteristic.FOUR[99FA0024-338A-1024-8A49-009C0215F78A, 0x26] w_resp=False
2020-02-19 15:19:55,326 DEBUG    Connect-2 linak_dpg_bt.connection.BTLEConnection:subscribe_to_notification_enum [connection.py:231] Subscribing to Characteristic.FIVE[99FA0025-338A-1024-8A49-009C0215F78A, 0x29]
2020-02-19 15:19:55,327 DEBUG    Connect-2 linak_dpg_bt.connection.BTLEConnection:subscribe_to_notification_enum [connection.py:236] Writing value <class 'bytes'>:0x01 0x00 to Characteristic.FIVE[99FA0025-338A-1024-8A49-009C0215F78A, 0x29] w_resp=False
2020-02-19 15:19:55,327 DEBUG    Connect-2 linak_dpg_bt.connection.BTLEConnection:subscribe_to_notification_enum [connection.py:231] Subscribing to Characteristic.SIX[99FA0026-338A-1024-8A49-009C0215F78A, 0x2c]
2020-02-19 15:19:55,327 DEBUG    Connect-2 linak_dpg_bt.connection.BTLEConnection:subscribe_to_notification_enum [connection.py:236] Writing value <class 'bytes'>:0x01 0x00 to Characteristic.SIX[99FA0026-338A-1024-8A49-009C0215F78A, 0x2c] w_resp=False
2020-02-19 15:19:55,328 DEBUG    Connect-2 linak_dpg_bt.connection.BTLEConnection:subscribe_to_notification_enum [connection.py:231] Subscribing to Characteristic.SEVEN[99FA0027-338A-1024-8A49-009C0215F78A, 0x2f]
2020-02-19 15:19:55,328 DEBUG    Connect-2 linak_dpg_bt.connection.BTLEConnection:subscribe_to_notification_enum [connection.py:236] Writing value <class 'bytes'>:0x01 0x00 to Characteristic.SEVEN[99FA0027-338A-1024-8A49-009C0215F78A, 0x2f] w_resp=False
2020-02-19 15:19:55,329 DEBUG    Connect-2 linak_dpg_bt.connection.BTLEConnection:subscribe_to_notification_enum [connection.py:231] Subscribing to Characteristic.EIGHT[99FA0028-338A-1024-8A49-009C0215F78A, 0x32]
2020-02-19 15:19:55,329 DEBUG    Connect-2 linak_dpg_bt.connection.BTLEConnection:subscribe_to_notification_enum [connection.py:236] Writing value <class 'bytes'>:0x01 0x00 to Characteristic.EIGHT[99FA0028-338A-1024-8A49-009C0215F78A, 0x32] w_resp=False
2020-02-19 15:19:55,330 DEBUG    Connect-2 linak_dpg_bt.connection.BTLEConnection:read_characteristic_by_enum [connection.py:284] Reading char: Characteristic.MASK[99FA0029-338A-1024-8A49-009C0215F78A, 0x35]
2020-02-19 15:19:55,516 ERROR    Connect-2 linak_dpg_bt.connection.BTLEConnection:read_characteristic_by_enum [connection.py:292] Got exception from bluepy while making a request: Bluetooth command failed (code: 1, error: Invalid handle)
2020-02-19 15:19:55,517 ERROR    Connect-2 linak_dpg_bt.connection:wrapper [connection.py:39] bluetooth exception occurred: <class 'bluepy.btle.BTLEGattError'> Bluetooth command failed (code: 1, error: Invalid handle)
2020-02-19 15:19:55,517 DEBUG    Connect-2 linak_dpg_bt.connection.BTLEConnection:disconnect [connection.py:118] disconnecting
2020-02-19 15:19:55,521 ERROR    Connect-2 linak_dpg_bt.linak_device.LinakDesk:initialize [linak_device.py:343] Initialization failed: <class 'bluepy.btle.BTLEGattError'> Bluetooth command failed (code: 1, error: Invalid handle)
2020-02-19 15:19:55,522 DEBUG    Connect-2 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 0x7fb9c3045d00>
2020-02-19 15:19:55,522 DEBUG    Connect-2 linakdeskapp.bt_device_connector.BTDeviceConnector:_changeConnectionStatus [bt_device_connector.py:150] changing connection state to ConnectionState.DISCONNECTED
2020-02-19 15:19:55,522 DEBUG    Connect-2 linakdeskapp.bt_device_connector.ThreadWorker:run [bt_device_connector.py:289] Worker complete

exception during startup: The _init_toolbar function was deprecated in Matplotlib 3.3

When I try to start application I get the following error.

src$ python3 -m linakdeskapp*



2021-02-06 09:52:39,544 DEBUG    MainThread linakdeskapp.main:main [main.py:108] Starting the application
2021-02-06 09:52:39,544 DEBUG    MainThread linakdeskapp.main:main [main.py:109] Logger log file: /home/emil/programy/LinakDeskApp/src/log.txt
/home/emil/programy/LinakDeskApp/src/linakdeskapp/gui/mpl/mpl_toolbar.py:39: MatplotlibDeprecationWarning: 
The _init_toolbar function was deprecated in Matplotlib 3.3 and will be removed two minor releases later. Use __init__ instead.
  self._init_toolbar()    ## add current buttons
2021-02-06 09:52:39,655 ERROR    MainThread linakdeskapp.main:main [main.py:131] Exception occurred
Traceback (most recent call last):
  File "/home/emil/programy/LinakDeskApp/src/linakdeskapp/main.py", line 124, in main
    exitCode = runApp(args)
  File "/home/emil/programy/LinakDeskApp/src/linakdeskapp/main.py", line 77, in runApp
    window = MainWindow()
  File "/home/emil/programy/LinakDeskApp/src/linakdeskapp/gui/main_window.py", line 51, in __init__
    self.ui.setupUi(self)
  File "<string>", line 26, in setupUi
  File "/home/emil/programy/LinakDeskApp/src/linakdeskapp/gui/app_settings_widget.py", line 85, in __init__
    self.ui.setupUi(self)
  File "<string>", line 41, in setupUi
  File "/home/emil/programy/LinakDeskApp/src/linakdeskapp/gui/position_chart_widget.py", line 57, in __init__
    self.toolbar = DynamicToolbar(self.ui.positionChart, self)
  File "/home/emil/programy/LinakDeskApp/src/linakdeskapp/gui/mpl/mpl_toolbar.py", line 27, in __init__
    self.removeButton( 'Subplots' )
  File "/home/emil/programy/LinakDeskApp/src/linakdeskapp/gui/mpl/mpl_toolbar.py", line 39, in removeButton
    self._init_toolbar()    ## add current buttons
  File "/usr/lib/python3/dist-packages/matplotlib/cbook/deprecation.py", line 234, in wrapper
    return func(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/matplotlib/backend_bases.py", line 2942, in _init_toolbar
    raise NotImplementedError
NotImplementedError

2021-02-06 09:52:39,658 INFO     MainThread linakdeskapp.main:main [main.py:147] Calculation time:  113.75737190ms

Issue connecting to Linak SmartDesk

I just bought a Linak SmartDesk with the DPG1C controller.
Bluetooth works with the official app (off course), but this application has issues connecting.

The connection process appears to hang while reading the MASK characteristic, here:
https://github.com/anetczuk/linak_bt_desk/blob/e782cf39b6dd2d255f5e184c60f614ed6b99b3af/linak_dpg_bt/linak_device.py#L375

When I swap the block after that, which retreives the name, that one works fine. Again getting the MASK blocks.

When I comment out the 3 lines getting the MASK (375-377), I get the debug information in the attached log.
linak-debug-log.txt

Please let me know what I can do to help solve this issue.

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

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>

Request for an android version

There is an un-investigative issue in connecting my windows laptop to the idasen desk.

Please may I request an android version of the app.

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.