Code Monkey home page Code Monkey logo

upsy-desky's Introduction

Upsy Desky

This repository contains the source files for the Upsy Desky, a device which lets you connect your standing desk to any home automation system.

You can buy one on Tindie:

I sell on Tindie

Need Support?

If you need help with your Upsy Desky, please join the Upsy Desky Discord server where you can ask for help from the community and myself.

Repository Structure

At the root of the repository you will find these directories:

  • pcb: KiCad schematic and PCB design files (CC BY-NC-SA 4.0)
  • enclosure: Fusion 360 design files and STLs for the enclosure (CC BY-NC-SA 4.0)
  • firmware: ESPHome configuration files for the stock firmware (MIT)

With these you can make your own Upsy Desky from scratch, or you can make changes to the design and firmware to suit your needs. (If you do, I would love to see it!)

What's new‽

This is the successor to the WiFi Standing Desk Controller, packed with improvements and bug fixes — most notably:

  • USB-C port for easy flashing (and because USB-C is cool 😎)
  • Runtime firmware configuration -- no more manual flashing or compiling ESPHome to change stuff
  • Improved enclosure design with a more snug fit and screw-mounted PCB, allowing for easier repairs and troubleshooting
  • Replacing the D1 Mini with an ESP32-WROOM module, providing hardware UART for more reliable desk connection
  • A catchier name, because "WiFi Standing Desk Controller" was a mouthful

This revision also fixes some annoying issues from the first version, such as the desk sometimes lowering on startup, or simply not powering at all without a hacky workaround.

In a nutshell...

As with the original version of this product, it can connect your motorized standing desk to your home automation system. It can read your desk's current height, and set it as well. This lets you create automations that integrate with your desk, for example:

  • If you're sitting for too long, raise desk to standing height
  • When you leave home, raise desk to max height so the cat can't knock things over
  • Have an infinite number of presets for everyone in your household
  • Send desk height data to InfluxDB to analyze how often you're sitting vs. standing
  • Publish your desk's height on the internet

Or whatever else you'd like. The possibilities are endless! As long as the possibilities involve a standing desk.

Compatibility

Any standing desk that uses RJ45 to connect to the keypad is likely compatible, but the control boxes listed here are verified to be compatible.

Documentation

You can find everything you need in the documentation.

Licenses

The ESPHome configs are licensed under MIT; everything else (enclosure and PCB design) are CC BY-NC-SA 4.0. The appropriate license files are available in the root of the repo.

upsy-desky's People

Contributors

tjhorner 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

upsy-desky's Issues

Fatal errors in ESPHome 2023.12.0b1

Troubleshooting Guide

  • I have followed the steps in the troubleshooting guide and my issue is either not listed or is not solved.

Description

With ESPHome 2023.12.0b1, Upsy Desky can't be controlled/updated with ESPHome anymore since the same pins are used twice.

Logs

INFO ESPHome 2023.12.0b1
INFO Reading configuration /config/esphome/upsy-desky-9fb5cc.yaml...
Failed config

output.gpio: [source <unicode string>:24]
  
  Pin 21 is used in multiple places.
  platform: gpio
  inverted: True
  id: standing_desk_up_pin
  pin: 
    number: 21
    mode: 
      output: True
      input: False
      open_drain: False
      pullup: False
      pulldown: False
    inverted: False
    ignore_strapping_warning: False
    drive_strength: 20.0
output.gpio: [source <unicode string>:29]
  
  Pin 22 is used in multiple places.
  platform: gpio
  inverted: True
  id: standing_desk_down_pin
  pin: 
    number: 22
    mode: 
      output: True
      input: False
      open_drain: False
      pullup: False
      pulldown: False
    inverted: False
    ignore_strapping_warning: False
    drive_strength: 20.0
output.gpio: [source <unicode string>:2]
  
  Pin 21 is used in multiple places.
  platform: gpio
  inverted: True
  id: button_bit1
  pin: 
    number: 21
    mode: 
      output: True
      input: False
      open_drain: False
      pullup: False
      pulldown: False
    inverted: False
    ignore_strapping_warning: False
    drive_strength: 20.0
output.gpio: [source <unicode string>:7]
  
  Pin 22 is used in multiple places.
  platform: gpio
  inverted: True
  id: button_bit2
  pin: 
    number: 22
    mode: 
      output: True
      input: False
      open_drain: False
      pullup: False
      pulldown: False
    inverted: False
    ignore_strapping_warning: False
    drive_strength: 20.0

Which version of the Upsy Desky firmware config are you running?

1.2.0

How do you manage your Upsy Desky's updates?

ESPHome YAML Config

If you're using an ESPHome YAML config, which version of ESPHome are you running?

2023.12.0b1

ESPHome Config

substitutions:
  name: upsy-desky-9fb5cc
packages:
  tj_horner.upsy_desky: github://tjhorner/upsy-desky/firmware/config.yaml
esphome:
  name: ${name}
  name_add_mac_suffix: false
api:
  encryption:
    key: dfsjkfdfjsdjnkfsjhkd


wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

Adapter Cable Research

There are many different standing desk brands out there, and most of them use the RJ45 pinout that this project does. However, there are a few that do not! How do we add support for them? I think the best solution is to create adapter cables which can easily and cheaply modify the pinout or physical connector so that the Upsy Desky can communicate with the desk.

For example

  • LoctekMotion desks
    • Uses RJ45
    • Different pinout (see here)
    • Solved with a custom cable which is wired differently at one of the terminating ends
  • Autonomous.ai desks
    • Uses RJ50
    • Different pinout
    • Solved with a custom cable which terminates in RJ45 at one end and RJ50 at the other

I think this is a good way to solve the problem, but I'm not entirely sure how to manufacture these at scale. I'll be researching different ways to do this.

Edit: Ah, I just thought of something. What about the passthrough? I guess I would need to ship cables in pairs, since you would need two if you want to use the original keypad. Wondering if there's a more economical way to do that?

Events when keypad buttons are pressed

The stock firmware should send events when the keypad buttons are pressed so that they can be tied to other actions within Home Assistant.

i.e., an upsy_desky.button_pressed event with data detailing which button was pressed.

WN17CM2 Support

I was able to set up the UpsyDesky easily, but the unit would not power on with just the RJ45 from the desk controller box. Once connecting a USB-C, the unit was detected by Home Assistant but would not control the desk or detect a height. Additionally, the desk keypad daisy-chained through the UpsyDesky would not control the desk.

Here's what the box looks like:
Screenshot 2022-09-05 at 15 59

IKEA UPPSPEL behaviour changes with Upsy Desky connected - macro buttons weird

Troubleshooting Guide

  • I have followed the steps in the troubleshooting guide and my issue is either not listed or is not solved.

Description

With Upsy Desky connected to my IKEA UPPSPEL desk, the 1, 2, 3, 4 height macro buttons on the included physical controller no longer work the same. If held down they will drive the desk to the programmed height, but without upsy desky connected, they require only being clicked once, and will drive the desk until it reaches the programmed height without needing to hold them down.

Otherwise everything is behaving normally and Upsy Desky performing well for me.

Controller box model number on my unit is JCB36N2AG-230
keypad is JCHT35K9C-4-V3-B/01-H-2D0-L/N-1

Logs

WebUI doesn't show any logs when interacting with the physical height macro buttons

Which version of the Upsy Desky firmware config are you running?

No response

How do you manage your Upsy Desky's updates?

OTA Updates

If you're using an ESPHome YAML config, which version of ESPHome are you running?

No response

ESPHome Config

No response

Desky Support

Today I followed this Home Assistant project's instructions for my Desky (Australian) desk, using a D1 Mini. Everything appears to be working fine.

However, it looks like this Upsy-Desky project might be a bit more robust, hence why I'm interested.

Feature request: Zigbee/Thread support

Hi,

I would love to get a Zigbee/Thread version of the Upsy-Desky. Would that require a new hardware revision or can support be added via a firmware update?

Thanks!

HTTP API Backwards Compatibility

In 0.3.0, some of the underlying entity IDs were changed, and since the HTTP API uses those IDs in the endpoint URLs, it broke anything that relied on those endpoints.

I would like to preserve compatibility with the old endpoints, and the best way to do this is probably with the Copy component. Creating one for each of the changed IDs should be sufficient to make the old endpoints work

Feature Request: Serial Port Control

Feature request: For scenarios where connecting and controlling upsy desky via wifi (e.g., restrictive and isolated corporate wifi networks :)), it would be great to be able to control upsy-desky direct from a serial port connected to the computer. I envision something like the http APIs replicated to use UART-driven commands to the ESP.

Unable to update to ESPHome version to `2023.5.1` or have it connect to read the logs

I'm facing an issue when trying to update the device using the ESPHome addon in Home Assistant.

Here's the error message I get on the ESPHome console:

/config/esphome/.esphome/packages/663b17eb/firmware/addons/runtime-config.yaml: In lambda function:
/config/esphome/.esphome/packages/663b17eb/firmware/addons/runtime-config.yaml:14:45: error: no matching function for call to 'esphome::standing_desk_height::StandingDeskHeightSensor::set_unit_of_measurement(std::__cxx11::string&)'
           id(desk_height)->set_unit_of_measurement(x);
                                             ^
In file included from src/esphome/components/light/light_state.h:4,
                 from src/esphome/core/controller.h:11,
                 from src/esphome/components/api/api_server.h:4,
                 from src/esphome/components/api/api_connection.h:6,
                 from src/esphome.h:3,
                 from src/main.cpp:3:
src/esphome/core/entity_base.h:82:8: note: candidate: 'void esphome::EntityBase_UnitOfMeasurement::set_unit_of_measurement(const char*)'
   void set_unit_of_measurement(const char *unit_of_measurement);
        ^~~~~~~~~~~~~~~~~~~~~~~
src/esphome/core/entity_base.h:82:8: note:   no known conversion for argument 1 from 'std::__cxx11::string' {aka 'std::__cxx11::basic_string<char>'} to 'const char*'
/config/esphome/.esphome/packages/663b17eb/firmware/addons/runtime-config.yaml:15:59: error: no matching function for call to 'esphome::number::NumberTraits::set_unit_of_measurement(std::__cxx11::string&)'
           id(target_desk_height)->traits.set_unit_of_measurement(x);
                                                           ^
In file included from src/esphome/components/light/light_state.h:4,
                 from src/esphome/core/controller.h:11,
                 from src/esphome/components/api/api_server.h:4,
                 from src/esphome/components/api/api_connection.h:6,
                 from src/esphome.h:3,
                 from src/main.cpp:3:
src/esphome/core/entity_base.h:82:8: note: candidate: 'void esphome::EntityBase_UnitOfMeasurement::set_unit_of_measurement(const char*)'
   void set_unit_of_measurement(const char *unit_of_measurement);
        ^~~~~~~~~~~~~~~~~~~~~~~
src/esphome/core/entity_base.h:82:8: note:   no known conversion for argument 1 from 'std::__cxx11::string' {aka 'std::__cxx11::basic_string<char>'} to 'const char*'
Compiling /data/upsy-desky-58032c/.pioenvs/upsy-desky-58032c/lib69d/AsyncTCP-esphome/AsyncTCP.cpp.o
*** [/data/upsy-desky-58032c/.pioenvs/upsy-desky-58032c/src/main.cpp.o] Error 1
========================= [FAILED] Took 84.68 seconds =======================

At first I thought it could be some incompatibility issue or some other local problem so I removed it from ESPHome, downloaded FW version 1.0 from this repo and flashed it again. When adopting it back the device gets properly added to Home Assistant but I run into the same error compiling the update.

Also tried a fresh factory reset. Same issue.

On top of that ESPHome seems to be unable to connect to it to read the logs.

This is what I get from the ESPHome site when I click on the Logs option for the Upsy Desky.

INFO Reading configuration /config/esphome/upsy-desky-58032c.yaml...
INFO Starting log output from upsy-desky-58032c.local using esphome API
WARNING upsy-desky-58032c.local: Connection error occurred: [Errno 104] Connection reset by peer
WARNING Can't connect to ESPHome API for upsy-desky-58032c.local: Connection isn't established yet (ConnectionState.CLOSED)
INFO Trying to connect to upsy-desky-58032c.local in the background
WARNING upsy-desky-58032c.local: Connection error occurred: [Errno 104] Connection reset by peer
WARNING upsy-desky-58032c.local: Connection error occurred: [Errno 104] Connection reset by peer
WARNING upsy-desky-58032c.local: Connection error occurred: [Errno 104] Connection reset by peer
WARNING upsy-desky-58032c.local: Connection error occurred: [Errno 104] Connection reset by peer

And this is the counterpart, from the logs in the Upsy Desky captive portal while ESPHome is trying to connect

16:28:19	[W]	[ota:393]	Remote closed connection
16:28:19	[W]	[ota:154]	Reading magic bytes failed!
16:28:43	[W]	[api.connection:085]	::FFFF:192.168.20.10: Reading failed: BAD_INDICATOR errno=11
16:28:46	[W]	[api.connection:085]	::FFFF:192.168.20.10: Reading failed: BAD_INDICATOR errno=11
16:28:49	[W]	[api.connection:085]	::FFFF:192.168.20.10: Reading failed: BAD_INDICATOR errno=11
16:28:56	[W]	[api.connection:085]	::FFFF:192.168.20.10: Reading failed: BAD_INDICATOR errno=11
16:29:06	[W]	[api.connection:085]	::FFFF:192.168.20.10: Reading failed: BAD_INDICATOR errno=11

Autonomous Desk Support

Perhaps it uses a different protocol?
I cut the controller cable with the RJ50 and spliced in an RJ45 on both cut ends, following the pinouts from #5 (comment)
It seems like it should be fine since power and ground at least seem right with multimeter testing.
It does still work with the controller when using two keystone jacks punched down back to back.

When I attach the upsy-desky to the desk, it powers on and I can see it in home assistant, but it does not control the desk or read height.

When plugging in the controller to the upsy-desky, the controller display shows full digits and the backlight powers on
However, the buttons only make the backlight turn on while pressed (the normal behavior), but do not operate the desk and the height is not shown.

The controller is https://www.timotion.com/en/products/controls/tdh6-series and the box is https://www.timotion.com/en/products/control-boxes/tc15-series

EDIT: I have also attempted powering the upsy-desky with USB before plugging in the controller, and it does not seem to make any difference.

ROL ERGO Support

I'm trying to check see if I can get Upsy-Desky to work with a ROL ERGO GF-470 (Swedish manufacturer of standup desks, I do believe they have sold some controllers to IKEA as well). This is what I have found so far.

This is a picture of the circuit board of the controller box which the original keypad for the desk connects to.
rol_ergo_controller

This is how the inside of the keypad looks like
rol_ergo_keypad

What we can conclude from this is that according to the Desk Compatability the ROL ERGO desk is not compatible of the bat by simply pluging in a ethernet cable.

But seeing that it had 5V, RX and TX pins made me hopeful so I got a RJ45 breakoutboard and tried to make a cable that would match the pinout out the ROL ERGO controller with what Upsy-Desky needs. However I have had no luck so far.

What I noted was that the 5V from the ROL ERGO controller drops to bellow 1V when I connect Upsy-Desky so I assume the 5V from the controller is powerful enough to handle data signals and not to drive the Upsy-Desky. To get around this and troubleshoot I simply attached usb power to Upsy-Desky while everything was connected to the ROL ERGO controller.

Worth noting could be that from the picture of inside the keypad the desk will move up if red+green wire is shorted and it will move down if the white+green wire is shorted.

Do you think there is a chance to get this desk working with Upsy-Desky, and how could I then assist in the troubleshooting?

Clarify BOM for manufacturing PCB

Troubleshooting Guide

  • I have followed the steps in the troubleshooting guide and my issue is either not listed or is not solved.

Description

I'm trying to assemble a PCB order directly from a PCB manufacturer (not because I don't like you earning some money off this project, but because shipping and importing from the USA to Europe is more pain than ordering from China). During the process I noticed some inconsistencies in the component descriptions in the KiCad project, the BOM file from Tindie and the actual packages on the PCB.

  • Component D1 is marked as 1N5817, but this component as well as the linked datasheet on Tindie refer to a through-hole part. The PCB, however, clearly needs an SMD part, so shouldn't this component more likely be a 1N5819WS?
  • Component U1 is marked as CP2102N-Axx-xQFN28, which has a QFN28 package with 7 pins per edge. However, the PCB has 8 pins per edge, so I would actually need a CP2102N-Axx-xQFN24 chip, no?

Also, a bit more information in regards to how to order the PCB at the manufacturer of your choice would be nice, although I do understand if you wouldn't like to do that because of the support effort this could create. However, you could still profit from referrals. A great example in my opinion is the Valetudo Dreame Breakout PCB for the Valetudo project, where there is even a community of people sharing their PCBs (not a use-case for upsy-desky, of course) and consolidating orders for reduced shipping cost.

Logs

No response

Which version of the Upsy Desky firmware config are you running?

No response

How do you manage your Upsy Desky's updates?

None

If you're using an ESPHome YAML config, which version of ESPHome are you running?

No response

ESPHome Config

No response

Simulating the up/down buttons.

I'm working on an integration to control the Upsy Desky using the REST API. And I would like to have up/down hold buttons just like the desk control panel has. But I don't see a direct way to do this.

Is there a command I can send that emulates these buttons? If not, is this something that could potentially be implemented? Or is there an issue making this impossible/problematic to do?

Feature request: Support for child lock / control lock

Some desks (e.g., Uplift V2) have a child lock feature. Enabling child lock via the keypad also prevents upsy-desky from controlling the desk, so this feature appears to be enabled on the control box itself, rather than the keypad.

Two enhancement requests related to this feature:

  • Support for detecting if child lock is enabled or not
  • Support for changing the status of the child lock (lock or unlock the desk)

Geekdesk Support

Hello! I recently received the Upsy desky and would like to try it out on my geekdesk.
It looks like pin 3 has 5v and pins 1,5,7,8 all appear to be grounds.

The controller is labelled ey-h6032c, and does also have an rj11 port. I found this manufacturer page, but it didn't seem to have much information. https://www.eyoungonline.com/products/pro_51.html

Guessing at a minimum I would need to make a custom cat 5 cable to swap the 5v and gnd to match the upsy desky?

Want check with you before breaking anything too badly.
Edit: adding some photos of the main controller board, let me know if photos of the remote controller would also help.

PXL_20220905_183145601
PXL_20220905_183213432
PXL_20220905_183006486

Thanks,
James

FYI: the Jarvis protocol has been reverse engineered to use **just** the uart / no need for additional GPIO

AWESOME WORK!

I did something similar but the code is much less professional looking!

Not too long after buttoning everything up, I stumbled on the work of @maraid who managed to figure out how to send the "up/down/m{1,4}" messages over uart: https://github.com/maraid/Jarvis#technical-notes

It does look like you can do a lot more via just the UART compared to the uart and the GPIOs to simulate button presses but i'm not sure if the additional features are worth re-factoring the Jarvis firmware to use just the uart or not.

In any case, this looks fantastic!

Feature request: Ability to set height offset to match actual desk height

First of all, great work! I received my Upsy Desky's in the mail today and I wish setting up commercial devices was this straightforward and reliable...

I have the new(ish) paddle controller on my Uplift V2 and it has the ability to calibrate the actual desk height to match the actual height of the desk. For example, I have massive casters on my desk, which raises the desk up and I was able to set the display on the paddle to match reality.

Desk Height not being reported

Hi there,

thank you for the great product, first.

Ive been using it without a problem since it arrived, sadly, since updating all my ESPhome controllers yesterday, the upsy-desky stopped reporting the desk height. It still works otherwise, but it only shows N/A for the height.

Rolling back to the firmware uploaded to Github has not helped this.

Please do not hesitate to tell me what further information you need. Thank you!

grafik

Questions on what I have seen so far...

I have just a few questions based on playing with the Upsy-Desky over the weekend:

  1. Is it to be expected behavior that after setting artificial min / max height values in UD, that the desk's keypad will still allow raising and lowering outside of those limits? Is there any way to get the UD to force the keypad to respect those limits?
  2. I'd like to experiment with setting up the webserver and API with HTTPS. Is SSH to the device something that can be turned on? Or maybe it's possible to specify the webserver cert / key values through the YAML config somehow?
  3. On that note, is there documentation on all of the available YAML config options which are available through this unit?
  4. My Jarvis desk only has up and down controls, but I would love to be able to set some button presets using the UD and be able to recall them using the standard API method. Is there maybe an undocumented API method for setting those button presets on the UD itself if those memory locations don't exist in the desk's controller?

Super cool little device! Thanks for a neat IOT gadget!

Tons of protobuf errors since updating to 1.0.1 and esphome 2023.5.1

I updated my upsy to 1.0.1 after updating to esphome 2023.5.1, and I'm now getting a ton of protobuf error messages in the logs. I did remove and re-add the integration in HASS, but I'm seeing the same logs from both the esphome add-on as well as the integration.

upsy-desky-694234 @ 192.168.1.103: Connection error occurred: Invalid protobuf message: type=16 data=b'\n\x0bdesk_height\x15\x98\x1c1a\x1a\x0bDesk Height""upsy-desky-694234sensordesk_height*\x1dmdi:human-male-height-variant2\r\xff\xff?\xb3\xe8;\x08\x80P\xd4\xfc?#8\x01': Error parsing message
upsy-desky-694234 @ 192.168.1.103: Connection error occurred: Invalid protobuf message: type=16 data=b'\n\x0bdesk_height\x15\x98\x1c1a\x1a\x0bDesk Height""upsy-desky-694234sensordesk_height*\x1dmdi:human-male-height-variant2\x18\xff\xff?\xb3F]\r\x80`\xd4\xfc?|\xf4\xfc?\xff\xff?\xb3\x85\xe1\x0e\x808\x01': Error parsing message
upsy-desky-694234 @ 192.168.1.103: Connection error occurred: Invalid protobuf message: type=49 data=b'\n\x12target_desk_height\x150V\x18\x01\x1a\x12Target Desk Height")upsy-desky-694234numbertarget_desk_height5\x9a\x99\xc9A=33KBE\xcd\xcc\xcc=Z\x05xV\xad\xbaY': Error parsing message
upsy-desky-694234 @ 192.168.1.103: Connection error occurred: Invalid protobuf message: type=16 data=b'\n\x0bdesk_height\x15\x98\x1c1a\x1a\x0bDesk Height""upsy-desky-694234sensordesk_height*\x1dmdi:human-male-height-variant2\x05\xff\xff?\xb3X8\x01': Error parsing message
upsy-desky-694234 @ 192.168.1.103: Connection error occurred: Invalid protobuf message: type=16 data=b'\n\x0bdesk_height\x15\x98\x1c1a\x1a\x0bDesk Height""upsy-desky-694234sensordesk_height*\x1dmdi:human-male-height-variant2\x18\xff\xff?\xb3F]\r\x80`\xd4\xfc?\x8c\xf3\xfc?\xff\xff?\xb3\x85\xe1\x0e\x808\x01': Error parsing message

Jarvis Desk V2 Hardware Target Height requires two commands

I recently received my order for the V2 hardware to hookup to my Fully Jarvis desk (fully assembled). This specific desk uses the uplift decoder. I have the desk working and hooked up to Home Assistant.

When attempting to make the desk go to it's maximum or minimum height, it always requires two commands to be sent. For instance, the max height of my desk is 49.2 inches, however, when I tell the desk to go to 49.2 it will always stop at 43.2. If I send the command again to go to 49.2 it will complete it's travel and reach max height of 49.2. The same thing happens on the way down, my minimum is 30.0 inches, however, it will always stop around 35.2.

A separate issue I noticed, I have to set my limits slightly above and below the reported min and max heights to actually reach them. Otherwise they always stop .3 inches before each value (using the hardware button will get me all the way).

Furna Desk Dupport

Apologies for opening an issue for this, but I wanted to confirm for anyone searching this repository that the Furna E2 desk sold in the UK is supported by this project. Their other desks may be support as well, but I can only confirm using my E2 purchased in 2018.

The controller on mine appears to be a JCB36N2 so it's using the Fully Jarvis decoder.

All functions work including reading the desk height (when set to cm) and the presets.

Thanks for the great project! I will close this issue right away as I only wanted it here for people who might for this desk in the future.

Accuracy/Granularity of Height

Hi, thanks for all the development :)

I'm using the rest API with Uplift desk.

When issuing a GET request, I get an accurate 0.1-inch precision as on the physical panel.
But, when I PUT some height, it often goes to a close-by position, only about 0.5-inch precision. Following PUT requests to close positions not moving the table at all.

Is this the expected behavior? Is it configurable or could easily be fixed by changing the firmware?

Automatic Protocol Detection

The current protocol system is confusing and tedious, so I would like the firmware to be able to automatically detect the protocol that a control box is using (maybe as part of OOBE?) and automatically switch to that and save it to flash.

esphome MQTT support

Thanks for upsy-desky!

I'm currently running it on my network, and I have a separate server polling the http endpoint and publishing the data to various other data stores, including MQTT. I'm a complete novice with esphome. I recently found that they have builtin MQTT support, which would be perfect for my needs.

Would this be useful to anyone else? @tjhorner, would you accept a PR adding MQTT client to publish desk height messages? If so, I'm happy to do some research and learn my way through implementing it.

Ramping Down (soft stop)

I've noticed that when I command the desk to a specific height, it tends to sometimes miss the mark by around a quarter to half an inch. I also noticed that it tends to stop very abruptly.

But when I use one of the 4 presets the movement actually ramps down when the desk get near the target height. It hits the target much more reliably this way, and with less of a jarring stop.

I'm wondering if this ramping could be achieved with go to commands as well. I worry somewhat that the hard stopping could cause excess wear, in addition to the annoyance of not actually hitting the target reliably.

Conflicting ID: `status`

I'm attempting to use the default config as part of a larger ESPHome config:

---
packages:
  desk_config: "github://tjhorner/upsy-desky/firmware/config.yaml"
  device_base: !include common/device_base.yaml

substitutions:
  device_name: fully-jarvis-desk-controller
  device_friendly_name: Fully Jarvis Desk Controller
  device_static_ip: 192.168.10.100

When I attempt to compile this in ESPHome 2022.8.3, I get this error:

INFO Reading configuration /config/esphome/fully_jarvis_desk_controller.yaml...
Failed config

light.status_led: [source /config/esphome/.esphome/packages/111ab185/firmware/config.yaml:129]
  platform: status_led
  
  ID 'status' conflicts with the name of an esphome integration, please use another ID name.
  id: status
  pin: GPIO23
  restore_mode: ALWAYS_ON

light:
- platform: status_led
id: status
pin: GPIO23
restore_mode: ALWAYS_ON

LINAK Support

It would be great if it could support LINAK controllers, these are OEMed to many desk manufacturers and used an RJ45 connection. My IKEA desk is LINAK.

I will most likely buy a device from you when you launch, and can help provide whatever info you need to add support.

(Note their are a few github projects already for the LINAK)

IKEA UPPSPEL support

Hi,

asking for support for the IKEA's UPPSEL
controller seems to be a rebranded JCB36N2
(https://www.jiecang.com/JCB36N2-pd45762211.html)

Works partially.

I set both uplift and jarvis template.
All 4 desk preset works (both from web page and via MQTT)
Current height is not handled.

How can I help debugging?

thank you

m.

Preset Button 2-4 are only moving the desk a small bit but Preset 1 works as expected

Troubleshooting Guide

  • I have followed the steps in the troubleshooting guide and my issue is either not listed or is not solved.

Description

Installed my Upsy Desky to my aeris Smart Desk and the preset button 1 works as expected, setting the height of the desk to the stored value after clicking it. However, clicking on the presets buttons 2-4 does move the desk into the right direction but only for a centimetre and it stops again. The buttons of the desk work as expected, the set desired height works as expected.

Logs

No response

Which version of the Upsy Desky firmware config are you running?

1.1.1

How do you manage your Upsy Desky's updates?

OTA Updates

If you're using an ESPHome YAML config, which version of ESPHome are you running?

2023.5.4

ESPHome Config

No response

ESPHome Bluetooth Proxy Capabilities

Home Assistant added Bluetooth proxy support back in September to extend the reach of Bluetooth across your house. Given that the ESP32 is the main board for this integration, it would be great to have the option to enable that on the Upsy Desky. I'd like to set up some integrations to help force me to stand more during the day or control lights if I'm in my office and have a meeting starting or ending. Since the Upsy is right under me, there isn't a much better option to prove if I'm sitting there or not. I've never worked with the ESP32 but I think I have a file that'll drop right in.
config.txt

Target Height Entity Should Track Height

Troubleshooting Guide

  • I have followed the steps in the troubleshooting guide and my issue is either not listed or is not solved.

Description

If I set the Target Height via the Target Height entity, then move the desk via some other mechanism (preset, physical controller) the target height stays at whatever value it was previously set to. I'd love to see it adjust to match the actual height of the desk (which is effectively the new target, just set via some other mechanism).

Logs

No response

Which version of the Upsy Desky firmware config are you running?

No response

How do you manage your Upsy Desky's updates?

ESPHome YAML Config

If you're using an ESPHome YAML config, which version of ESPHome are you running?

2023.9.3

ESPHome Config

---
substitutions:
  name: "upsy-desky-534044"
  friendly_name: "Upsy Desky 534044"
  device_description: "Fully Jarvis Desk Controller"

packages:
  base_config: !include config_deps/base_config.yaml
  upsy_desky:
    url: https://github.com/tjhorner/upsy-desky
    file: firmware/stock.yaml
    ref: v1.1.1

esphome:
  name: ${name}
  name_add_mac_suffix: false
  friendly_name: ${friendly_name}
  comment: ${device_description}

Upsy Desky occasionally reboots in the middle of long travel

Troubleshooting Guide

  • I have followed the steps in the troubleshooting guide and my issue is either not listed or is not solved.

Description

When raising my standing desk from sitting to full standing height, it often quits half way. It is unresponsive for a minute until it reboots, and then I can repeat the command to get to full height. This sounds like a power supply issue to me. The demand to raise height draws more power than Upsy Desky can support and it reboots. Does anyone else have this issue?

Logs

No response

Which version of the Upsy Desky firmware config are you running?

No response

How do you manage your Upsy Desky's updates?

ESPHome YAML Config

If you're using an ESPHome YAML config, which version of ESPHome are you running?

2023.10.3

ESPHome Config

No response

Add a named default value for the height units

As always thank you for the great device and continued work on the software part of it.

Would it be possible to add a named default value for the height units in the config.yaml, as it is done for the desk variant or the min/max height? Right now it is hard-coded to default to in.

This would allow for an easy substitution in ESPHome with whatever is considered the real default, in my case cm.

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.