Skip to content

Hyperion 2.1.1

Latest
Compare
Choose a tag to compare
@github-actions github-actions released this 14 Jun 17:45

🌿 Hyperion goes green!

Resource consumption during builds has been drastically reduced behind the scenes by streamlining processes and encouraging reuse.

This release also involves significant refactoring of the core elements of the platform and the API.
This version comes with many bug fixes and a number of long-awaited new features and improvements.

You can download the executables from GitHub or even better via our official repositories for Debian, Ubuntu and Fedora.

Installation and update instructions can be found on the comprehensive instructions page. Just select the method you would like to use.

Note

This release supersedes versions 2.1 and 2.1.0, which had some critical issues. Many thanks to those who shared their findings, and we apologise for any inconvenience caused.

Change details

⚠️ Breaking Changes

  • Rename "-v" & "--verbose" options to "-i" & "--info to not overlap with version information

JSON-API

  • Standardized subscription update elements: ledcolors-imagestream-update, ledcolors-ledstream-update, and logmsg-update now return data under data instead of result.
  • Global configuration elements are now separated from instance-specific ones.

✨ Added

  • Windows: Added a new grabber using DXGI DDA (Desktop Duplication API) for improved GPU-based performance. Thanks to @davidsansome (#1745, #1753)
  • Support for bottom-up image handling using the MF grabber. Thanks to @Thinner77 (#1752)
  • Support for FTDI chip-based LED devices (WS2812, SK6812, APA102). Thanks to @nurikk (#1746)
  • Support for 16-bit HD108 LEDs via SPI. Thanks to @FutureMan0 (#1826)
  • Support for HomeAssistant devices (#1763)
  • Support for Skydimo devices
  • Support for new Nanoleaf device types
  • Support for gaps in matrix layout (#1696)
  • Support for NV12 format in Flat-Buffer image streams
  • Support for SizeDecimation in Flat-Buffer inputs
  • Support for temperature adjustment (#658)
  • Configurable grabber inactivity detection interval (#1740)
  • Dominant color processing across the full image, applied to all LEDs (#1853)
  • Selectable source and target instances in the forwarder
  • Import, export, and backup of Hyperion's configuration via UI, JSON-API, and CLI (--importConfig, --exportConfig) (#804)
  • Option to force read-only mode at startup (--readonlyMode)
  • Effects: Limit update rate to 200 Hz
  • Systray: Support for multiple instances
  • UI:
    • Validation to ensure key ports do not overlap across editors/pages
    • Enhanced error dialog with additional details
    • LED preview displays the associated instance name
  • HTTP Server: Support for Cross-Origin Resource Sharing (CORS) (#1496)
  • GitHub builds Added Windows 11 on arm64 platform

JSON-API

  • New event subscriptions: Suspend, Resume, Idle, IdleResume, Restart, Quit
  • Support for direct/multi-instance addressing within single requests (#809)
  • serverinfo subcommands: getInfo, subscribe, unsubscribe, getSubscriptions, getSubscriptionCommands
  • Query/save specific configuration items per instance
  • Update frequency limits:
    • Images: 25 Hz
    • Raw LED colors: 40 Hz
    • LED device data: 200 Hz
  • Request instance data (e.g., image snapshots, LED colors). Thanks to @xIronic (#1839)

🔧 Changed

  • Instances no longer depend on the first instance; any can be created, started, stopped, or removed independently.

  • Security Fixes:

    • Fixed Cross-Site Scripting (XSS) vulnerabilities (CVE-2024-4174, CVE-2024-4175)
    • Added detailed logs for "Trust on first use" certificates, especially when a certificate can't be stored
  • Fixes:

    • Broken links in README. Thanks to @blueicehaller (#1780)
    • RGB24/BGR24 cleanup. Thanks to @Thinner77 (#1748, #1749)
    • Clarifying comments in MF grabber. Thanks to @Thinner77 (#1754)
    • Nanoleaf LED strip overlap error. Thanks to @geekykayaker (#1844)
    • Philips Hue APIv2 support without Entertainment group (#1742)
    • hyperion-v4l2 screenshot failures (#1722)
    • Token dialog not closing
    • Kodi color calibration and wizard refactor (#1674)
    • Forwarding to custom targets (#1713)
    • Screen capture error (#1824)
    • Python 3.12 crash fixes (#1747)
    • UI LED buffer/layout sync issues
    • Last effect event not cleared in source overview
    • Smoothing issues (#1863)
    • Crash when switching display managers (XCB/X11 to Wayland)
    • Effect not suspended when instance is stopped (#1586)
    • Background effect incorrectly starts when instance is disabled
    • Incorrect target directory built during effect export
    • Removed stale _logger object
    • Windows: improper use of “/dev/null”
    • Fragmented HTTP headers causing "incorrect HTTP headers" error (#1688)
    • Misleading "Access Denied" message; disabled "Identify" for the same serial device type (#1737)
    • WebUI unreachable via IPv6 (#1871)
    • Align install_pr script working with default Qt6 builds & show authentication failures (#1871)
  • Web UI:

    • Workaround that Content type is wrongly resoved (#1692)
    • Sorted instance lists; active instances are now highlighted in dropdowns
  • Networking/UI:

    • Replaced custom WebSocket implementation with QWebSockets (#1816, #1448, #1247, #1130)
    • Fixed mDNS browser deadlock by moving it to a dedicated thread
  • Platform-Specific:

    • macOS: Use ScreenCaptureKit on macOS 15+
    • Standalone grabber no longer captures without a connected remote host
  • Layout:

    • Removed maximum LED limit from matrix layout schema to match UI (#1804)
  • Refactors:

    • ImageResampler improvements. Thanks to @Thinner77 (#1744)

    • Corrected confusing _noSignalDetected logic. Thanks to @Thinner77 (#1731)

    • Removed unused libraries for Amlogic. Thanks to @Portisch (#1725)

    • GrabberWrapper constructors (#1714)

    • Database access and validation/migration on startup

    • Forwarder cleanup

    • Flatbuffer client/connection handling

    • Decoupled effect definitions from instances

    • Decoupled WebServer from SSDP handler

    • Python effects: support parallel processing (Python 3.12)

    • Corrected threads' affinity

    • Use of smart pointers

    • UI code streamlining

    • Improved install_pr script

    • Replaced exceptions by signaling errors in main program and standalone grabbers

    • Enhanced resilience and error handling

    • Build:

      • Updated CompileHowto for macOS. Thanks to @Rastafabisch (#1757)
      • Added missing ENABLE_MDNS. Thanks to @Links2004 (#1711)
      • Build system now uses pre-built dependencies to reduce resource usage
      • Introduced CMakePresets and a CMakeUserPresets template
      • GitHub Windows, Pull request artifacts are built with RelWithDebInfo (#1865 )
      • Added Debian Trixie to PR-builds for early testing

JSON-API

  • Consistent token authorization across sessions and single requests
  • Improved error messages (e.g., JSON parsing, token issues)
  • Random TAN generation per API request (from UI)
  • Configuration requests no longer require a running instance
  • Commands are ignored during shutdown
  • Fixed IPv4-in-IPv6 handling for external connections
  • Fixed admin authentication token validation (#1251)
  • Fixed error on missing effects in builds
  • Corrected mapping type for running instances

🗑️ Removed

JSON-API

  • Removed the ability to disable local admin authorization
    • authorize-adminRequired is now always true
  • Removed: session-updates subscription
  • Deprecated: serverinfo/subscribe
    • Use subscribe / unsubscribe subcommands instead
  • Deprecated: DirectX grabber in favour of the new DXGI DDA grabber
  • Removed "-c" console option on Windows. Hyperion can be started via terminal to get the required console output

Builds

  • Removed builds for following operating system LTS or software component versions, as they are End-of-Life and do not receive maintenance nor security updates any longer
    • Debian Buster
    • Ubuntu Focal Fossa (20.04)
    • Qt5