Using the Rest API
Using the api is fairly simple as long as your using a Smart Home hub that sends local (on your house network) rest api calls.
Smart home hubs that should be able to send local Rest Api requests are:
- Homey Pro with flows or homey script
- Samsung Smartthings using web requester
- Apple Homebridge with http-webhooks
- Hubitat
- Probably others
Then you can make a call to the api endpoints using http e.g.
http://192.168.68.120/<api-endpoint>
List of Api endpoints
Sensors
- Get Desk Height
- Get Desk Height Percentage
- Get preset button M1, M2, M3, M4 height value from the desk
- Get desk idle time in secconds
- Get desk idle timestamp in days, hh:mm:ss
- Get desk Status
- Get desk Firmware
Buttons
- Press preset button M1, M2, M3, M4 on the desk
- Press Nudge Down button on the desk
- Press Nudge Up button on the desk
- Stop the desk moving
- Press Desk Memory Preset Buttons M1, M2, M3, M4
- Reset Idle Timer
- Restart the ESP32 device
- Send Heights to Log
- Calibrate Fully Jarvis Desk Button
Number Controls
- Get Desk Height
- Set Desk Height
- Get Desk Min Height (as specified in configuration field)
- Set Desk Min Height (in configuration field)
- Get Desk Max Height (as specified in configuration field)
- Set Desk Max Height (in configuration field)
- Get Desk Down Offset by value (in mm)
- Set Desk Down Offset by value (in mm)
- Get Desk Up Offset by value (in mm)
- Set Desk Up Offset by value (in mm)
Switch
Cover Control
Light Controls
Sensor Controls
Get Desk Height
GET http://<ipnumberhere>/sensor/Desk Height
Response
{
"name_id": "sensor/Desk Height",
"id": "sensor-desk_height",
"value": 102,
"state": "102.0 cm"
}
Get Desk Height Percentage
GET http://<ipnumberhere>/sensor/Desk Height Percent
Response
{
"name_id": "sensor/Desk Height Percent",
"id": "sensor-desk_height_percent",
"value": 62.5,
"state": "62.5 %"
}
Get preset button M1, M2, M3, M4 height value from the desk
GET http://<ipnumberhere>/sensor/Desk M1 Height
Changing m1 to m2, m3 or m4 for the other memory presets.
Response
{
"name_id": "sensor/Desk M1 Height",
"id": "sensor-desk_m1_height",
"value": 70,
"state": "70.0 cm"
}
Get desk idle time in secconds
GET http://<ipnumberhere>/sensor/Idle Time
Response
{
"name_id": "sensor/Idle Time",
"id": "sensor-idle_time",
"value": 7095,
"state": "7095.0 s"
}
Get desk idle timestamp in days, hh:mm:ss
GET http://<ipnumberhere>/sensor/Idle Timestamp
Response
{
"name_id": "text_sensor/Idle Timestamp",
"id": "text_sensor-idle_timestamp",
"value": "02:07:50",
"state": "02:07:50"
}
Get desk Status
GET http://<ipnumberhere>/text_sensor/Desk Status
Response
{
"name_id": "text_sensor/Desk Status",
"id": "text_sensor-desk_status",
"value": "Idle",
"state": "Idle"
}
Get desk Firmware
GET http://<ipnumberhere>/update/Desk Firmware
Response
{
"name_id": "update/Desk Firmware",
"id": "update-desk_firmware",
"value": "2026.5.0",
"state": "NO UPDATE"
}
Button Controls
Press preset button M1, M2, M3, M4 on the desk
POST http://<ipnumberhere>/button/Desk M1/press
Changing m1 to m2, m3 or m4 for the other memory presets.
Response
No data returned just a 200 OK status
Press Nudge Down button on the desk
POST http://<ipnumberhere>/button/Desk Nudge Down/press
Response
No data returned just a 200 OK status
Press Nudge Up button on the desk
POST http://<ipnumberhere>/button/Desk Nudge Up/press
Response
No data returned just a 200 OK status
Stop the desk moving
POST http://<ipnumberhere>/button/Desk Stop/press
Response
No data returned just a 200 OK status
Press Desk Memory Preset Buttons M1, M2, M3, M4
POST http://<ipnumberhere>/button/Set Desk M1/press
Changing m1 to m2, m3 or m4 for the other memory presets.
Response
No data returned just a 200 OK status
Reset the Idle Timer
POST http://<ipnumberhere>/button/Reset Idle Timer/press
Response
No data returned just a 200 OK status
Restart the ESP32 device
POST http://<ipnumberhere>/button/ESP32 Restart/press
Response
No data returned just a 200 OK status
Send Heights to Log
POST http://<ipnumberhere>/button/Send Heights to Log/press
Response
No data returned just a 200 OK status.
View the DeskUp Pro's web server to view the heights sent or the ESPHome device log.
Calibrate Fully Jarvis Desk
POST http://<ipnumberhere>/button/Calibrate Fully Jarvis Desk/press
Response
No data returned just a 200 OK status.
Number Controls
Get Desk Height
GET http://<ipnumberhere>/number/Desk Height
Response
{
"name_id": "number/Desk Height",
"id": "number-desk_height",
"value": "102.0",
"state": "102.0 cm"
}
Set Desk Height
POST http://<ipnumberhere>/number/Desk Height/set?value=80
Response
No data returned just a 200 OK status
Get Desk Min Height (as specified in configuration field)
GET http://<ipnumberhere>/number/Min Height
Response
{
"name_id": "number/Min Height",
"id": "number-min_height",
"value": "62.00",
"state": "62.00 cm"
}
Set Desk Min Height (in configuration field)
POST http://<ipnumberhere>/number/Min Height/set?value=74
Response
No data returned just a 200 OK status
Get Desk Max Height (as specified in configuration field)
GET http://<ipnumberhere>/number/Max Height
Response
{
"name_id": "number/Max Height",
"id": "number-max_height",
"value": "126.00",
"state": "126.00 cm"
}
Set Desk Max Height (in configuration field)
POST http://<ipnumberhere>/number/Max Height/set?value=126
Response
No data returned just a 200 OK status
Get Desk Down Offset by value (in mm)
GET http://<ipnumberhere>/number/Offset Down by
Response
{
"name_id": "number/Offset Down by",
"id": "number-offset_down_by",
"value": "0",
"state": "0 mm"
}
Set Desk Down Offset by value (in mm)
POST http://<ipnumberhere>/number/Offset Down by/set?value=0
Response
No data returned just a 200 OK status
Get Desk Up Offset by value (in mm)
GET http://<ipnumberhere>/number/Offset Up by
Response
{
"name_id": "number/Offset Up by",
"id": "number-offset_up_by",
"value": "1",
"state": "1 mm"
}
Set Desk Up Offset by value (in mm)
POST http://<ipnumberhere>/number/Offset Up by/set?value=1
Response
No data returned just a 200 OK status
Switch
Get Desk Send Wake Up Cmd
GET http://<ipnumberhere>/switch/Send Wake Up Cmd
Response
{
"name_id": "switch/Send Wake Up Cmd",
"id": "switch-send_wake_up_cmd",
"value": false,
"state": "OFF"
}
Set Desk Send Wake Up Cmd
POST http://<ipnumberhere>/switch/Send Wake Up Cmd/turn_on
Response
No data returned just a 200 OK status
Select
Get Desk Control Code Variant
GET http://<ipnumberhere>/select/Desk Control Code Variant
Response
{
"name_id": "select/Desk Control Code Variant",
"id": "select-desk_control_code_variant",
"value": "Default",
"state": "Default"
}
Set Desk Control Code Variant
Allowed values are (case sensitive): Default, Rocka, Fully Jarvis
POST http://<ipnumberhere>/select/Desk Control Code Variant/set?option=Default
Response
No data returned just a 200 OK status
Cover Control
Get Cover details
GET http://<ipnumberhere>/cover/Height Slider
Response
{
"name_id": "cover/Height Slider",
"id": "cover-height_slider",
"value": 0.18,
"state": "OPEN",
"current_operation": "IDLE",
"position": 0.18
}
Set Cover Position
POST http://<ipnumberhere>/cover/Height Slider/set?position=0.1
Allowed values 0.0 to 1.0
Response
No data returned just a 200 OK status
Light Control (S3 Chips only support the LED)
Get ESP32 Led Details
GET http://<ipnumberhere>/light/ESP32 LED
Response
{
"name_id": "light/ESP32 LED",
"id": "light-esp32_led",
"state": "OFF",
"color_mode": "rgb",
"brightness": 255,
"color": {
"r": 255,
"g": 255,
"b": 255
}
}
Turn on the ESP32 Led and set the colour
POST http://<ipnumberhere>/light/ESP32 LED/turn_on?r=25&g=25&b=125
For more info view this page.
Response
No data returned just a 200 OK status
Turn off the ESP32 Led
POST http://<ipnumberhere>/light/ESP32 LED/turn_off
Response
No data returned just a 200 OK status