Repository navigation
Releases: Videobarista/blackmagic-hyperdeck-ha
Release list
v1.1.3
v1.1.3
Maintenance release - no change in behavior on the HyperDeck itself.
- CI: workflows updated to actions/checkout@v5, github/codeql-action@v4 and ubuntu-24.04, resolving the Node.js 20 and CodeQL v3 deprecation warnings.
- Added Ruff linting (ruff.toml + Ruff workflow); the code is lint-clean with behavior-neutral cleanups only (import order, the builtin TimeoutError).
- Config flow: added descriptions under the host and port fields (English and Dutch).
- README: added the "Open in HACS" button, pinned status badges to main, and turned the old v0.1.0/v0.2.0 note into a regular "Why the Ethernet Protocol and not the REST API" section.
v1.2.0
v1.2.0
Fixed
- A HyperDeck that is switched off while Home Assistant starts no longer shows "Failed to set up". Setup now always succeeds: the media player shows Off, the other entities are unavailable, and the integration reconnects in the background every 10 seconds. When the deck comes back, everything resumes without a restart.
- Going offline and coming back are each logged once at info level instead of producing error messages.
Added
- Aligned with the Home Assistant quality scale: Bronze (self-assessed; Home Assistant only grades core integrations). Includes quality_scale.yaml, tests for the config flow and setup, and a Tests workflow.
- README: removal instructions and a Quality scale section.
Note
- The test-before-setup rule is a deliberate deviation: a powered-off deck is normal in production, so setup does not fail for an unreachable device. The connection is still verified when you first add a deck.
v1.1.2
v1.1.2
Fixed: setup could still fail entirely with "105 no disk" - the earlier fix only covered the "clips get" query, but on real hardware the same rejection can come from other status queries too, depending on state. All four setup queries (transport info, slot info, configuration, clips) and the ongoing poll now fall back to an empty/default value instead of aborting, whichever one the deck happens to reject.
v1.1.1
v1.1.1
Added a generic icon.png (and icon@2x.png) at custom_components/blackmagic_hyperdeck/brand/, satisfying HACS's brand-assets check. No Blackmagic branding is used - it's an original, generic tape-deck/transport icon.
v1.1.0
v1.1.0
Repo brought up to the same standard as the maintainer's other integrations: SECURITY.md, dependabot (GitHub Actions, monthly), CI workflows for CodeQL, hassfest, and HACS validation, and a /Brand folder for community-contributed icons.
Also: a code quality pass removed the one remaining assert (replaced with a proper exception) and added debug logging to a few exception handlers that were previously failing silently with no log trace at all - no functional changes, just clearer diagnostics.
v1.0.2
Full Changelog: v1.0.1...v1.0.2
Fixed: with no media inserted, the deck rejects "clips get" with "105 no disk" - this took the entire integration setup down with it ("Cannot reach HyperDeck: 105 no disk", despite the deck being perfectly reachable). Now treated as an empty clip list instead of a fatal error, so the integration works normally with an empty slot.
Also: setup failures now distinguish a genuinely unreachable deck ("Cannot reach HyperDeck...") from the deck answering but rejecting a command ("...rejected a setup command..."), so future errors of this kind are less confusing to diagnose.
v1.0.1
Changed: when the deck is unreachable (powered off, unplugged, network down), the media player now shows "Off" instead of the grey "Unavailable" badge — a HyperDeck being off is a normal, expected state, not an integration error. It keeps showing the last known clip and timecode while off.
Buttons, switches, and sensors are unaffected and still show as unavailable when disconnected, since there's nothing to press or display for those while the deck can't be reached.
Full Changelog: v1.0.0...v1.0.1
v.1.0.3
Full Changelog: v1.0.2...v.1.0.3
Fixed: pressing a control (play, record, seek, loop switch, ...) that the deck rejects outright - most commonly "105 no disk" with no media inserted - flooded the Home Assistant log with a full ERROR-level traceback per press. This is now caught on every entity (buttons, switches, media player) and logged at debug level only, since the deck rejecting a routine command is expected behavior for this hardware, not a bug.
v1.0.0: Add files via upload
First stable release. Home Assistant HACS integration for Blackmagic HyperDeck disk recorders (Studio, Extreme, Shuttle, and older models), controlled via the classic HyperDeck Ethernet Protocol (TCP port 9993) rather than Blackmagic's newer REST API (December 2024, port 80) - the Ethernet Protocol has shipped on virtually every networked HyperDeck since ~2013, so this trades nothing for broad compatibility across old and new hardware. Confirmed working end-to-end on a real HyperDeck Studio Pro (protocol version 1.8).
Features:
- Media player entity with play/pause/stop/next/previous/seek, clip name, and a live progress bar
- Buttons: Play, Stop, Record, Next clip, Previous clip, Restart clip
- Sensors: Timecode, Current clip, Transport mode, Clip progress (%)
- Switches: Loop timeline, Loop single clip
- Realtime updates via the protocol's own asynchronous notifications, with a light poll fallback for timecode
Known limitations:
- The protocol has no standalone command to set the loop/single-clip flags - they're parameters of "play" itself, so toggling either switch re-issues a play command (the deck's current speed is preserved, so this won't start playback while stopped).
- Clip-progress accuracy relies on reading (never writing) the deck's own "configuration: timecode output" setting, when available.
Install via HACS as a custom repository (see below).