standing-desk-interceptor icon indicating copy to clipboard operation
standing-desk-interceptor copied to clipboard

Posibility to use with custom controller based on ESP32

Open uxigene opened this issue 5 years ago • 7 comments

Hello,

Thanks for your work, it's really nice! Good job!

Are you pleanning (if it's possible) to create sort of sdk/api/library (whatever) in order to make possibil to use some custom controllers based on ESP32 or something? It would be really really nice to have.

uxigene avatar May 22 '20 23:05 uxigene

The up and down commands should be possible to use from an esp32 right now :) You just have to set Pin4 to high and talk serial on RX/TX Pins.

I don't know where the height is stored at the moment. Didn't come around designing the pcb for intercepting

Future plan would be having an omega onion to intercept the communication and control the table with both the custom mc and the normal buttons.

But once, the protocol is in the open, it should be easy to implement a custom controller :) it is just normal serial communication, which should be possible with every MC

nv1t avatar Jun 11 '20 21:06 nv1t

@nv1t Nice job. Please don't stop. This can be a great project. Let me know if I can contribute, I'm frontend software engineer, so I can do web UI, not sure I can do something for this project, but I'll be glad to help.

uxigene avatar Jun 11 '20 21:06 uxigene

I had a look into the esp32 and i think i am going to use it as a main Microcontroller for this project. It does support 2x UART Interfaces and MicroPython. I have seen some Threading/asyncio implementation and it really might be the right platform for this :)

nv1t avatar Feb 04 '21 12:02 nv1t

@evghenix feel free to have a look: https://github.com/grssmnn/ha-flexispot-standing-desk I still have a problem when the control panel is turned off and I try to query the height. The desk controller is returning 0x00 0x00 0x00 as payload.

grssmnn avatar Feb 05 '21 19:02 grssmnn

 @grssmnn @nv1t I've started new project. Currently it's in development phase but MVP is done (probably with some bugs) :) The goal is to collect as many desks as we can with similar functionality and have sort of universal firmware for them. You can check the homepage https://deskmatik.com and the repo https://github.com/deskmatik/deskmatik

It's written in C++ not sure how bad or good it is, C++ is not mine best skill and it supports Flexidesk (thanks for the protocol interception). Tested it with ESP8266 (NodeMCU)

Now it has WiFi connection interface. It tries to connect to the WiFi network, in case it fails the ESP starts Access Point mode. In this mode you can connect to its WiFi network, navigate to default IP which is 192.168.4.1 and setup your WiFi network credentials. The desk control is now done over simple http requests.

Future plans:

  1. Add more main boards like ESP32 (which is probably already supported, just have to check this).
  2. Create good and intuitive UI.
  3. Integrate MQTT communication protocol.
  4. Make home assistant integration.
  5. Native mobile app.
  6. More features like Pin Code, scheduled movements to the desired position, etc.
  7. Maybe a security protocol implementation in your local network will be a great plus.
  8. OTA updates.
  9. Good documentation.

A lot of ideas and not much free time. Hope you can enjoy it.

Some screen shots:

deskmatik-screen-shots

uxigene avatar Mar 10 '21 23:03 uxigene

And if you use Home Assisant, I have just built anESPHome implementation: https://github.com/iMicknl/LoctekMotion_IoT/tree/main/packages/esphome. You can use all presets (up to 4 if your device allows it), up/down and it will display the height. (I have the same issue as @grssmnn here, the height will only be refreshed after you execute a command).

@evghenix looks great! Cool project :)

iMicknl avatar Mar 25 '21 23:03 iMicknl

Hey @iMicknl , thanks. Cool project. It looks like more desks are using same communication protocol. BTW, I also started developing the native app for it. I'll update you when I have first stable release. I'm planing the mobile app as well.

The app will make all stuff more user friendly. Currently my app has settings and control views. Also you can control the desk using hotkeys. CTRL+ALT+UP, CTRL+ALT+DOWN and CTRL+ALT+1,2,3 to move the desk at saved position.

Here you can track the progress of it https://github.com/deskmatik/deskmatik/issues/1

Here are some screen shots:

empty loading not-selected selected

uxigene avatar Mar 26 '21 12:03 uxigene