# Optional TV power with HDMI-CEC

Desktop player **0.7.16** adds adapter detection, a manual TV/power-state query and explicit Wake TV / TV standby requests. Open the player’s **Recovery & diagnostics → TV power (HDMI-CEC)**.

1. Enable HDMI-CEC on the TV and any equipment in the HDMI path. Keep the player powered separately from the TV’s switched USB ports.
2. Choose **Detect adapters**. An interface means CEC hardware is visible to the player; HDMI video alone does not establish this.
3. Choose **Check TV** on the intended adapter. A responding TV may report On, Standby, Transitioning or Unknown. A non-response does not prove CEC is absent.
4. Test **Wake TV** and **TV standby** while someone can see the physical screen. Check the command result in Activity, then query the TV again. A sent request is not proof the TV changed power.

CEC port names identify adapter connections, such as `/dev/cec0` or `COM3`. They are not automatically matched to dashboard screen names. On a multi-screen player, identify each connection before putting a TV into standby. Commands address the TV (logical address 0) on the chosen adapter; they do not broadcast standby or request an HDMI input change. CEC behaviour can still vary by TV.

The player stays awake and connected. Existing Maintenance/Standby artwork and playback schedules do not send TV power commands. Players with a detected CEC adapter also offer a TV power schedule in player Settings. Choose wake and standby times, days, timezone and the CEC connection; it stays disabled until saved. Keep the two times at least 15 minutes apart. The player must be powered and online within 15 minutes of each time. Missed windows wait for the next selected day. Saving changes cancels queued requests, while commands already running may finish. These requests control the TV only, and their results do not confirm its physical power state. Commands expire after five minutes and are not replayed after a controller restart.

## Linux and Raspberry Pi

The 0.7.16 `.deb` depends on the distribution’s `cec-utils`/libCEC package. It adds the signage account to a dedicated CEC group, with device rules limited to CEC nodes and Pulse-Eight USB adapters. Reboot after installation so group membership and device permissions apply. A compatible kernel/driver must expose the adapter. Supported Raspberry Pi HDMI hardware can provide CEC; other PCs can need a USB-CEC adapter.

An application update ZIP does not install OS packages or replace root-owned device rules. Existing installations need the matching `.deb` installed before these controls can work. Manual archive installations need `cec-utils` and the documented kiosk setup run by an administrator. The existing PC ISO is unchanged.

## Windows

The 0.7.16 Setup.exe and update ZIP include the x64 libCEC client/library and its Microsoft runtime dependencies. A compatible USB/internal CEC interface and its driver are still required. Most ordinary HDMI video outputs should not be assumed to expose CEC. Missing drivers, access errors and query timeouts appear as unavailable/error results rather than confirmed TV power.

## Android TV and Google TV

The candidate Android APK reports whether Android advertises `android.hardware.hdmi.cec`. Its normal app installation has no access to Android’s privileged CEC service, so the dashboard does not enable direct TV power controls. System settings can link box/TV power independently of dsigns. A manufacturer-provided API or privileged system integration would be separate work. The absence of the feature flag does not prove the device’s firmware has no CEC functions.

## Evidence and limits

Software checks cover non-waking queries, explicit adapter/TV targeting, unknown power after requests, command expiry, duplicate/customer/platform/offline gates and bounded telemetry. Physical TV wake/standby, per-port mappings, Windows USB-driver installation, HDMI splitters/receivers and Android power behaviour require testing on the actual hardware. No universal compatibility is claimed.

Implementation references: [libCEC](https://github.com/Pulse-Eight/libcec), [Android CEC service](https://source.android.com/docs/devices/tv/hdmi-cec).
