Desky Standing Desk (ESPHome) [Works with Desky, Uplift, Jiecang, Assmann & others]

The config for that button can be simpler/more direct for that wire as it only uses one wire.

But it shouldn’t be triggered on boot. Mine doesn’t.

I don’t know what’s triggering it and am somewhat out of ideas.

Maybe try activating pullup or pulldown resistors for the pin?

And separately maybe try commenting out the existing on_boot code and see if that changes anything.

And triple check your wiring for that pin.

Also, I recall seeing similar issues on this forum “thing X turns on/off momentarily on restart/ boot”. So maybe dig around to see if you can find a similar issue/solution.

Definitely look at early_pin_init

why you, sir, are a genius @Mahko_Mahko.

I read through all your suggestions but the last one made more sense so I started that first. I set early_pin_init: false and after the board updated and came back online…no desk movement, and even when I rebooted the board manually, no desk movement! problem is solved! thank you

1 Like

hi, I have a desk from a manufacturer where the motor control box has two RJ-45 ports. My question is - can I plug the DIY remote controller in the second RJ-45 slot or do I have to create a passthrough box - so that the original physical controller and the DIY one are on the same connection?

Is it a Jiecang based desk?

hello, it says manufacturer: Loctek ergonomic technology corp.

Then you are probably better off over here.

Where I can see you’ve asked the same question…

Yeah, however, did not hey any response there yet and since then I realized that I actually have the motor from the same vendor. Anyway, my question was a bit generic - if having two rj45 ports pass through is the only way.

Thanks, anyway.

So I got this working a while ago and it’s been amazing. I’m trying to integrate it with some other stuff, and now I’d like to trigger automations based on the direction the desk is moving.

Is there a way to tell? The only way I can think of doing that is comparing the current height a second ago, but I have no clue how to do that.

1 Like

If you are moving the desk using the move_to command…

on_...:
  then:
    - lambda: id(my_desky).move_to(150);

Then you can make use of the DESKY_OPERATION feature that Ssieb kindly built at my request. Also see this bit. They were inspired by thier cover equivalents (COVER_OPERATION_OPENING, COVER_OPERATION_CLOSING)

How ever this feature won’t report direction if you use the desks native contoller or trigger the memory buttons via ESPHome.

I recently worked around this by basically doing what you’ve suggested, which is watch for changes in height.

My implementation is bascially a “delta sensor”. There’s probably a better way to do this but it’s ok for my purpose for the moment.

Make sense?

  - platform: copy
    source_id: desky_height_cm
    id: desky_height_cm_delta
    name: "Desky Desk Height Delta"
    accuracy_decimals: 1
    internal: true
    icon: mdi:arrow-expand-vertical
    unit_of_measurement: cm
    filters:
       #Convert to Delta
      - lambda: |-
          static float last_value = 0;
          float  change = 0;
          change = x - last_value;
          last_value = x;
          return change;
    on_value:
      then:
        - lambda: |-
            if ( x > 0){ return id(desky_last_movement_direction).publish_state("Up");}
            else if (x < 0){return id(desky_last_movement_direction).publish_state("Down"); }
        - lambda: |-
            if (id(desky_height_cm_delta).state != 0) {
                id(desky_is_moving).publish_state(true);
            }
        - delay: 200ms
        - lambda: return id(desky_is_moving).publish_state(false);

binary_sensor:
  - platform: template
    id: desky_is_moving
    name: Desky Is Moving
    # lambda: return id(my_desky).current_operation != desky::DESKY_OPERATION_IDLE;
    icon: "mdi:motion"
    filters:
      - delayed_off: 1s

Interesting, I’ll give it a try, thanks!

1 Like

Can anyone report success with a MAIDeSITe desk?

All desks so far have had Jiecang controllers. Have you done any digging to check whether this is a Jiecang controller? I think it’s pretty unlikely.

Acutally no, my main concern until now was the construction of the frame regarding stability. The MAIDeSITe desk seemed to be the most stiff compared to others.

Maybe this works: Turn your LoctekMotion/FlexiSpot standing desk into a smart desk! - #36 by m1scha

I’ll check the hardware once the desk arives and report about it.

1 Like

That’s probably the best idea. Don’t be too afraid to unscrew the controller box and take a peak at the board inside (although taking apart that may void your warranty). Even just Google imaging the control box and control panel you can often find out who the OEM is, which is the secret to finding the right project which will work or can be adapted.

Okay, thanks! Here are some close-up pictures. Can you possibly determine from the outward appearance if it is supported?

I think you will be in luck!

I would buy parts.

It’s possible the newer Jiecang controllers may have a different or slightly different protocol, but this is looking pretty promising as a start!

The hardware looks quite similar!

1 Like

Great, thank you so much for taking the the time!

1 Like

I have just received the desk and checked everything. Although it is manufactured by Jiecang, the controller seems to be different. Here are some additional pictures of the MaideSite desk.

There is one 6 wire RJ-12 connector that’s directly connected to the control box. Maybe I can hock up the esp there?



Could you send more photos please? Perhaps similar to those in this post. Or a vid.

Just want to get a clearer picture of the system diagram.

Also see if you can spot your controller here.

I couldn’t find the controller in the list you shared. It appears that the motor drivers are integrated with the display.

Here are some pictures and the wiring diagram. Each leg and power are directly connected to the touch display box.