• v0.3.2 8e8acccbb2

    0.3.2
    Release / release (push) Successful in 3s
    Stable

    alexei.dolgolyov released this 2026-05-18 13:14:03 +03:00 | 1 commits to master since this release

    v0.3.2 (2026-05-18)

    Features

    • Targeted service callsremote_media_player.execute_script and remote_media_player.play_media_file now accept Home Assistant's standard target: block (device_id, entity_id, area_id). Calls without a target keep the legacy fan-out behavior and run on every configured hub, so existing automations continue to work. Targets are resolved against the device/entity registries and filtered to Remote Media Player hubs only; unmatched targets log a warning and are skipped.
      • services.yaml declares target: with integration: remote_media_player, and the voluptuous schemas accept the device_id / entity_id / area_id keys HA injects.
    • execute_script parameter rename — the script payload field is now params: (a named dict, validated against the server-side script schema) instead of the previous args: list. Breaking for automations that still use args:; update them to params: with the named keys your script expects.

    Bug Fixes

    • Compatibility with new browser-folders response shapeMediaServerClient.list_browser_folders() now unwraps the new server response ({"folders": {...}, "management_enabled": bool}) introduced after server commit c9ee41a, while still accepting the older flat dict. Restores folder listing on freshly updated media servers.

    UI / Localization

    • Updated English and Russian translations + strings.json for the new target:-aware service descriptions and the params field rename. Service descriptions now explain the "no target = all hubs" behavior.

    Documentation

    • README "Execute Script Service" section rewritten to document the target: block, the params: payload, and the destructive-script safety note.

    All changes above are bundled in the single release commit tagged v0.3.2.

    Downloads
  • v0.3.1 b92b69b0e8

    0.3.1
    Release / release (push) Successful in 4s
    Stable

    alexei.dolgolyov released this 2026-05-18 03:18:09 +03:00 | 2 commits to master since this release

    v0.3.1 (2026-05-18)

    Features

    • Foreground process sensors — new "Foreground" device (linked to the hub via via_device) exposing what's currently in focus on the remote PC:
      • sensor.foreground_process — process name as state, with full payload (PID, exec path, window title, fullscreen flag, monitor, geometry, browser detection, browser page title/URL, error) as attributes
      • sensor.window_title, sensor.pid, sensor.foreground_monitor, sensor.process_started (TIMESTAMP device class)
      • binary_sensor.fullscreen, binary_sensor.minimized
      • Fed by a new ForegroundCoordinator polling GET /api/foreground every 5s, with near-real-time updates via the existing WebSocket (foreground / foreground_update push frames flow into the coordinator) (9d27727)
    • Optional API tokenCONF_TOKEN is now optional. When the media server runs without api_tokens configured (auth disabled), the integration omits the Authorization header and ?token= query from REST, WebSocket, and album-art URLs. Server-side auth rejections still surface as invalid_auth in the UI (ab05852)

    Performance

    • Shared DisplayCoordinator — a single /api/display/monitors poll per cycle is now fanned out to all per-display entities (binary sensors, numbers, selects, sensors, switches) via CoordinatorEntity. Removes ~9x redundant requests per polling cycle that previously came from each entity calling get_display_monitors() in its own async_update (ab05852)
    • Optimistic write-throughcoordinator.apply_optimistic(...) keeps sibling entities in sync after slider/select writes without an extra network round-trip (ab05852)

    UI / Localization

    • Display entities migrated to Home Assistant translation keys (strings.json / translations/*), so per-language UI text flows through the standard locale mechanism instead of hardcoded English strings (9d27727)

    All Commits
    Hash Message Author
    9d27727 feat(foreground): foreground process sensors + translation key migration alexei.dolgolyov
    ab05852 feat: shared DisplayCoordinator + optional API token alexei.dolgolyov
    Downloads
  • v0.3.0 68e338de4e

    0.3.0
    Release / release (push) Successful in 3s
    Stable

    alexei.dolgolyov released this 2026-05-15 14:52:48 +03:00 | 5 commits to master since this release

    v0.3.0 (2026-05-15)

    Migration / Behavior Changes

    • Each physical monitor is now its own Home Assistant device, linked to the media-server hub via via_device. Existing brightness and power entities migrate to per-display devices automatically on first reload — unique_ids are preserved, but entities will move under new devices in the UI and can be placed in their own area/room (4156ded)
    • The hub keeps the media_player and script buttons; per-display devices hold the power switch, brightness slider, and the new DDC/CI capability entities (4156ded)

    Features

    • New diagnostic sensors: DisplayResolutionSensor exposes the active resolution parsed from EDID (4156ded)
    • New diagnostic binary sensors: DisplayPrimaryBinarySensor and DisplayPowerControlBinarySensor make it visible why a power switch is or isn't created for a given display (4156ded)
    • New select entities:
      • DisplayInputSourceSelect — switch active input (HDMI1, DP1, etc.) via DDC/CI
      • DisplayColorPresetSelect — color temperature presets
      • DisplayPictureModeSelect — VCP 0xDC scene modes (4156ded)
    • New number entity: DisplayContrastNumber exposed alongside the existing brightness slider (4156ded)
    • Per-display devices now show real manufacturer/model pulled from EDID; device names no longer prepend the hub title (the hierarchy is already shown via via_device) (4156ded)
    • Select and number entities verify the server's success flag and re-sync from the actual monitor state when a write is silently rejected — some monitors honor DDC/CI reads but ignore writes for certain codes (4156ded)

    Performance

    • api_client no longer forces ?refresh=true on every poll, letting the integration ride the media server's TTL cache instead of triggering a full DDC/CI probe per entity update (4156ded)

    All Commits
    Hash Message Author
    4156ded feat(displays): per-display devices + DDC/CI capability entities alexei.dolgolyov
    Downloads
  • v0.1.1 b0d98a9d45

    0.1.1
    Release / release (push) Successful in 4s
    Stable

    alexei.dolgolyov released this 2026-03-26 21:41:06 +03:00 | 7 commits to master since this release

    v0.1.1 (2026-03-26)

    ⚠️ Breaking Changes

    • Replace positional script args (list) with typed named params (dict) — update any automations calling remote_media_player.execute_script to use the new params format (de4b7cf)

    Features

    • Add execute_script service documentation to README (de4b7cf)

    All Commits
    Hash Message Author
    de4b7cf feat: replace script args with typed named parameters alexei.dolgolyov
    Downloads
  • v0.1.0 f84cfec43f

    0.1.0
    Release / release (push) Successful in 3s
    Stable

    alexei.dolgolyov released this 2026-03-26 00:45:14 +03:00 | 10 commits to master since this release

    v0.1.0 (2026-03-26)

    Initial release of the Remote Media Player custom integration for Home Assistant.

    Features

    • HACS-ready Home Assistant custom integration for controlling remote PC media playback (7837714)
    • Add turn on / turn off / toggle support for the media player entity (e66f2f3)
    • Add automatic script reload support (e4eeb2a)
    • Add media browser integration for Home Assistant (8cbe33e)
    • Add display monitor brightness and power control entities (83153db)

    Bug Fixes

    • Fix entity not becoming unavailable on server shutdown (02bdcc5)

    Performance

    • Reduce WebSocket reconnect interval to 5 seconds (959c6a4)
    • Codebase audit fixes: stability and performance (a37eb46)

    Development / Internal

    Documentation

    • Update README with valid repository URLs (f2b618a)
    • Replace GitHub URLs with git.dolgolyov-family.by (b3624e6)
    • Update CLAUDE.md with git push rules, versioning rules, and commit approval rules (725fc02, b13aa86, 3798833)

    CI/Build

    • Add Gitea release workflow (6c56576)

    All Commits
    Hash Message Author
    7837714 Initial commit: HACS-ready Home Assistant integration alexei.dolgolyov
    f2b618a Update README with valid GitHub repository URLs alexei.dolgolyov
    725fc02 Update CLAUDE.md with git push rules and repo link alexei.dolgolyov
    b3624e6 Replace GitHub URLs with git.dolgolyov-family.by alexei.dolgolyov
    b13aa86 Add versioning rules to CLAUDE.md alexei.dolgolyov
    3798833 Update CLAUDE.md with commit/push approval rules alexei.dolgolyov
    e66f2f3 Add turn_on/turn_off/toggle support alexei.dolgolyov
    959c6a4 Reduce WebSocket reconnect interval to 5 seconds alexei.dolgolyov
    e4eeb2a Add automatic script reload support alexei.dolgolyov
    8cbe33e Add media browser integration for Home Assistant alexei.dolgolyov
    02bdcc5 Fix entity not becoming unavailable on server shutdown alexei.dolgolyov
    83153db Add display monitor brightness and power control entities alexei.dolgolyov
    a37eb46 Codebase audit fixes: stability and performance alexei.dolgolyov
    6c56576 ci: add Gitea release workflow alexei.dolgolyov
    Downloads