Home Assistant custom integration for NVIDIA Shield TV that composes the Android TV Remote, Jellyfin, smart plug, and receiver entities into a single unified media player with ADB-based now-playing from any app. Part of the Media Zone ecosystem. Entities: - media_player: power (with smart plug fallback), transport, input, volume routed to receiver, rich stream info overlay when Jellyfin is active - sensor: DAG attributes and stream info - button: Pair ADB Config: - Two-step flow: basic setup + optional ADB pairing on the Shield - Configurable ADB port (default 5555) - Pick an existing Jellyfin media_player entity — stream info is read from the HA Jellyfin integration's own DataUpdateCoordinator, so no server URL / API key / extra config needed here - Privacy mode (adb_store_app_info=False) suppresses non-Jellyfin media details, showing only the app name Ecosystem: - Exposes media_dag_* attributes for ha-media-zone orchestration - Exposes media_dag_running_apps and async_bring_to_foreground for the Media Zone card's app switcher Shared ADB code lives in ltomes/ha-adb-common and is vendored at custom_components/nvidia_shield/ha_adb_common/ for HACS installs. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
39 lines
1.1 KiB
Python
39 lines
1.1 KiB
Python
"""Constants for the Nvidia Shield integration."""
|
|
|
|
# Re-export shared Media DAG constants
|
|
from .ha_adb_common.const import ( # noqa: F401
|
|
ATTR_MEDIA_DAG_JELLYFIN_ENTITY,
|
|
ATTR_MEDIA_DAG_NOW_PLAYING,
|
|
ATTR_MEDIA_DAG_RECEIVER_ENTITY,
|
|
ATTR_MEDIA_DAG_RECEIVER_INPUT,
|
|
ATTR_MEDIA_DAG_ROLE,
|
|
ATTR_MEDIA_DAG_RUNNING_APPS,
|
|
)
|
|
|
|
DOMAIN = "nvidia_shield"
|
|
|
|
CONF_ANDROIDTV_ENTITY = "androidtv_entity"
|
|
CONF_JELLYFIN_ENTITY = "jellyfin_entity"
|
|
CONF_RECEIVER_ENTITY = "receiver_entity"
|
|
CONF_RECEIVER_INPUT = "receiver_input"
|
|
CONF_POWER_ENTITY = "power_entity"
|
|
CONF_ADB_ENABLED = "adb_enabled"
|
|
CONF_ADB_STORE_APP_INFO = "adb_store_app_info"
|
|
CONF_ADB_HOST = "adb_host"
|
|
CONF_ADB_PORT = "adb_port"
|
|
|
|
ADB_POLL_INTERVAL = 10 # seconds
|
|
ADB_RETRY_INTERVAL = 300 # seconds before retrying a failed ADB connection
|
|
DEFAULT_ADB_PORT = 5555
|
|
|
|
DEFAULT_NAME = "Nvidia Shield"
|
|
|
|
# Emotiva DAG attribute we read to get available inputs
|
|
ATTR_MEDIA_DAG_INPUT_MAP = "media_dag_input_map"
|
|
|
|
# Known Jellyfin app package IDs
|
|
JELLYFIN_APP_IDS = [
|
|
"org.jellyfin.androidtv",
|
|
"org.jellyfin.mobile",
|
|
]
|