Skip to content

ltomes/ha-nvidia-shield

Repository files navigation

NVIDIA Shield

hacs License: MIT

Enhanced NVIDIA Shield TV integration for Home Assistant. ADB-based media session tracking, Jellyfin rich metadata, power monitoring, and receiver coordination.

Status: Early access (0.1.x). Tested on the author's own setup; expect rough edges and occasional breaking changes until 1.0. Please file issues on GitHub if anything is broken.

graph TD
    subgraph "NVIDIA Shield Integration"
        ADB["ADB Media Session"] -->|now playing| Entity["media_player.nvidia_shield"]
        JF["Jellyfin"] -->|rich metadata| Entity
        ATV["Android TV Remote"] -->|power / commands| Entity
        PWR["Smart Plug"] -->|power state| Entity
    end

    Entity -->|"media_dag_*"| MZ["Media Zone"]

    style Entity fill:#76b900,color:#fff
    style MZ fill:#1a73e8,color:#fff
    style ADB fill:#444,color:#fff
    style JF fill:#00a4dc,color:#fff
    style ATV fill:#444,color:#fff
    style PWR fill:#444,color:#fff
Loading

Features

  • ADB Media Session -- Now-playing from any app (PipePipe, Spotify, VLC, Plex, etc.), not just Jellyfin
  • Jellyfin Rich Metadata -- Title, series, season/episode, duration, position, stream details (resolution, codec, HDR, audio format)
  • Power Monitoring -- Smart plug for reliable on/off detection with auto-discovered sibling sensors (watts, voltage, current)
  • Receiver Coordination -- Links to a receiver entity and input name
  • Intent Tracking -- Commands reflect in HA state immediately, self-heal against actual device state
  • Privacy Mode -- Show only app name without media details for non-Jellyfin apps
  • Controlled ADB Pairing -- Dedicated pairing step in config flow + re-pair button entity
  • Media DAG Attributes -- Full signal chain data for Media Zone orchestration

Installation

HACS (recommended)

  1. In HACS, open the overflow menu (⋮) → Custom repositories.
  2. Paste https://github.com/ltomes/ha-nvidia-shield, pick type Integration, click Add.
  3. Find NVIDIA Shield in the HACS list and click Download.
  4. Restart Home Assistant.
  5. Go to Settings → Devices & Services → Add Integration, search for NVIDIA Shield, and set up the integration (see Configuration).

Manual

Copy custom_components/nvidia_shield to your HA config/custom_components/ directory, restart, then add the integration from Settings → Devices & Services.

Configuration

  1. Settings > Devices & Services > Add Integration > "NVIDIA Shield"
  2. Select the Android TV Remote entity for your Shield
  3. Enable ADB if you want now-playing from all apps
  4. If ADB is enabled, the next step will pair -- approve the prompt on the Shield
  5. Optionally configure Jellyfin, receiver, power switch

ADB Pairing

ADB is paired during setup via a dedicated config flow step. If you need to re-pair later (e.g., after factory reset), use the "Pair ADB" button on the device page in HA.

Requirements: Settings > Developer options > Network debugging enabled on the Shield.

Options

  • Jellyfin Media Player -- Auto-detected or manually selected
  • Receiver + Input -- For Media Zone coordination
  • Power Switch -- Smart plug entity
  • ADB Host/Port -- Override auto-detection if needed

Entities

Entity Type Description
Media Player media_player Main entity with playback controls and metadata
Current App sensor Currently running app
Now Playing sensor Formatted now-playing string
Pair ADB button Initiate or re-pair ADB connection

Development

Shared ADB helpers live in ha-adb-common and are also used by ha-hisense-tv. For HACS installs, a copy is vendored at custom_components/nvidia_shield/ha_adb_common/ so end users need nothing extra. We plan to publish ha-adb-common to PyPI so it can be declared as a normal manifest.json requirement; until then, the vendored copy is the source consumed at runtime.

To hack on the shared code locally, clone ha-adb-common as a sibling directory and run uv sync --extra dev — the [tool.uv.sources] section in pyproject.toml wires it up editable.

Part of the Media Zone Ecosystem

This integration works standalone, but pairs with ha-media-zone to create a unified zone controller:

License

MIT

About

Home Assistant integration for NVIDIA Shield TV: ADB media session tracking, Jellyfin stream metadata, smart-plug power monitoring

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages