Upsy Desky Documentation
website·Indexed 32 days ago
https://upsy-desky.tjhorner.dev/Documentation for Upsy Desky, a device for controlling standing desks. Includes guides on initial setup, Wi-Fi connectivity, firmware updates via ESPHome, and integrations with Home Assistant, Hubitat, and Stream Deck. Provides technical reference for GPIO mapping, desk compatibility checks, decoder configuration, and open-source schematics.
What's inside Upsy Desky
- Upsy Desky is an open-source device that acts as a 'man in the middle' between a standing desk's control box and its handset. It intercepts and issues commands to the desk, allowing for integration into home automation systems while retaining the original handset's functionality. The firmware is based on ESPHome, providing support for protocols like MQTT and native integration with Home Assistant.
Integrate Upsy Desky with Home Assistant
Because Upsy Desky firmware is based on ESPHome, it integrates seamlessly with Home Assistant. This is the recommended method for connecting the desk to other smart home devices and creating complex automations.Automate standing and sitting heights with the upsy-desky-autostand integration
Theupsy-desky-autostandis a community-provided Python script that allows users to automate their desk height transitions. It enables setting desired standing and sitting heights and switching between them after a specified duration during the workday. To prevent interruptions, it includes ICS integration to detect and avoid transitions during meetings.# GitHub Repository https://github.com/signalnine/upsy-desky-autostandUnderstand how desk height decoders work
The firmware uses a 'decoder' to interpret the serial protocol of a desk's control box, converting raw bytes into a usable height value. Available decoders includeuplift,jarvis, andomnidesk. Note that decoders may work across different brands; for example, theupliftdecoder is compatible with certain Jarvis desks.Collect and analyze Upsy Desky device logs
Because logs are not stored persistently, you must start collection before a disconnection occurs.
- Connect the device directly via USB.
- In the ESPHome Dashboard, select the device and click LOGS.
- Use the Plug into this computer option.
- Keep the log window open until a disconnection is observed in Home Assistant, then click Download Logs.
Analysis Tips:
- Search for
Event: Disconnectedto identify Wi-Fi issues. - Look for stack traces (hex addresses) which indicate device crashes or resets.
- Check the Device Info sensor after reconnection; the 'Reset:' field identifies if a watchdog timer caused a reboot.
Generate UART message captures for protocol analysis
To identify the data patterns for a custom decoder (such as determining desk height), perform the following steps while monitoring the ESPHome logs via the web interface, dashboard, or CLI:
- Connect the Upsy Desky to both the control box and the keypad.
- Trigger the specific actions you wish to intercept by pressing the physical buttons on the keypad.
- To analyze height reporting, raise the desk to its maximum height and then lower it to its minimum height. This provides a comprehensive capture of the packet structure and the range of height values.
Add a Preset Dropdown helper to Home Assistant
The
ha-upsy-deskycommunity package adds a helper dropdown to Home Assistant that allows you to assign human-readable names to desk presets 1-4. The package includes logic to automatically stop the desk if it is currently moving before triggering the selected preset.Installation Steps:
- Download the
ha-upsy-desky.zippackage. - Unzip the contents into your Home Assistant
config/packagesdirectory (this will create anha-upsy-deskyfolder). - Open and modify the
helpers.yamlfile to define your preferred preset labels.
- Download the
Download 3D model files for Upsy Desky enclosure
The enclosure consists of two parts: the case and the cover. Depending on the purchase date of the unit, a different STL version is required to accommodate the RJ45 jack length:
- Units purchased on or after January 3rd: Use the 'large' enclosure version to accommodate a longer RJ45 jack.
- Standard units: Use the default enclosure STL files.
Integrate Upsy Desky with Home Assistant and ESPHome
Because Upsy Desky uses ESPHome firmware, it can be integrated into Home Assistant for advanced automations, such as height-based triggers, custom presets, or exporting height data to InfluxDB. Users can customize the default configuration and re-flash the device using the ESPHome dashboard.Rename the Upsy Desky device in Home Assistant
By default, Upsy Desky devices appear in Home Assistant as
upsy-desky-XXXXXX(based on the MAC address). To change this to a more descriptive name:- Navigate to Settings > Devices & Services > ESPHome.
- Select your Upsy Desky device.
- Click the pencil icon in the top-right corner of the device page to edit the name.
- Enter the new name and save.
Perform a manual OTA firmware update
You can update the Upsy Desky by uploading a pre-compiled binary via its web interface. This is useful for applying stock firmware releases without a full ESPHome setup.- Navigate to the Upsy Desky's IP address in a web browser.
- Download the
firmware.binfile from the latest GitHub releases page. - In the device's web interface, go to the OTA section and select the downloaded
firmware.binfile. - Wait for the OTA process to complete.
Browser requirements for Upsy Desky USB provisioning
Provisioning Upsy Desky via USB requires a web browser that supports the Web Serial API. Supported browsers include Google Chrome, Microsoft Edge, Firefox 151+, and other Chromium-based browsers.