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.

Tokens
7.1K
Snippets
25
Records
77
Agent score
60%

What's inside Upsy Desky

  1. Overview of Upsy Desky standing desk automation

    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.
  2. Automate standing and sitting heights with the upsy-desky-autostand integration

    The upsy-desky-autostand is 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-autostand
  3. Understand 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 include uplift, jarvis, and omnidesk. Note that decoders may work across different brands; for example, the uplift decoder is compatible with certain Jarvis desks.
  4. Collect and analyze Upsy Desky device logs

    Because logs are not stored persistently, you must start collection before a disconnection occurs.

    1. Connect the device directly via USB.
    2. In the ESPHome Dashboard, select the device and click LOGS.
    3. Use the Plug into this computer option.
    4. Keep the log window open until a disconnection is observed in Home Assistant, then click Download Logs.

    Analysis Tips:

    • Search for Event: Disconnected to 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.
  5. 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:

    1. Connect the Upsy Desky to both the control box and the keypad.
    2. Trigger the specific actions you wish to intercept by pressing the physical buttons on the keypad.
    3. 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.
  6. Add a Preset Dropdown helper to Home Assistant

    The ha-upsy-desky community 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:

    1. Download the ha-upsy-desky.zip package.
    2. Unzip the contents into your Home Assistant config/packages directory (this will create an ha-upsy-desky folder).
    3. Open and modify the helpers.yaml file to define your preferred preset labels.
  7. 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.
  8. 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.
  9. 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:

    1. Navigate to Settings > Devices & Services > ESPHome.
    2. Select your Upsy Desky device.
    3. Click the pencil icon in the top-right corner of the device page to edit the name.
    4. Enter the new name and save.
  10. 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.
    1. Navigate to the Upsy Desky's IP address in a web browser.
    2. Download the firmware.bin file from the latest GitHub releases page.
    3. In the device's web interface, go to the OTA section and select the downloaded firmware.bin file.
    4. Wait for the OTA process to complete.
  11. 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.