androidtv.androidtv.androidtv_async module

Communicate with an Android TV device via ADB over a network.

ADB Debugging must be enabled.

class androidtv.androidtv.androidtv_async.AndroidTVAsync(host, port=5555, adbkey='', adb_server_ip='', adb_server_port=5037, state_detection_rules=None, signer=None)[source]

Bases: BaseTVAsync, BaseAndroidTV

Representation of an Android TV device.

Parameters:
  • host (str) – The address of the device; may be an IP address or a host name

  • port (int) – The device port to which we are connecting (default is 5555)

  • adbkey (str) – The path to the adbkey file for ADB authentication

  • adb_server_ip (str) – The IP address of the ADB server

  • adb_server_port (int) – The port for the ADB server

  • state_detection_rules (dict, None) – A dictionary of rules for determining the state (see BaseTV)

  • signer (PythonRSASigner, None) – The signer for the ADB keys, as loaded by androidtv.adb_manager.adb_manager_async.ADBPythonAsync.load_adbkey()

classmethod from_base(base_tv)[source]

Construct an AndroidTVAsync object from a BaseTVAsync object.

Parameters:

base_tv (BaseTVAsync) – The object that will be converted to an AndroidTVAsync object

Returns:

atv – The constructed AndroidTVAsync object

Return type:

AndroidTVAsync

async get_properties(get_running_apps=True, lazy=False)[source]

Get the properties needed for Home Assistant updates.

Parameters:
  • get_running_apps (bool) – Whether or not to get the running_apps() property

  • lazy (bool) – Whether or not to continue retrieving properties if the device is off or the screensaver is running

Returns:

  • screen_on (bool, None) – Whether or not the device is on, or None if it was not determined

  • awake (bool, None) – Whether or not the device is awake (screensaver is not running), or None if it was not determined

  • audio_state (str, None) – The audio state, as determined from “dumpsys audio”, or None if it was not determined

  • wake_lock_size (int, None) – The size of the current wake lock, or None if it was not determined

  • current_app (str, None) – The current app property, or None if it was not determined

  • media_session_state (int, None) – The state from the output of dumpsys media_session, or None if it was not determined

  • audio_output_device (str, None) – The current audio playback device, or None if it was not determined

  • is_volume_muted (bool, None) – Whether or not the volume is muted, or None if it was not determined

  • volume (int, None) – The absolute volume level, or None if it was not determined

  • running_apps (list, None) – A list of the running apps, or None if it was not determined

  • hdmi_input (str, None) – The HDMI input, or None if it could not be determined

async get_properties_dict(get_running_apps=True, lazy=True)[source]

Get the properties needed for Home Assistant updates and return them as a dictionary.

Parameters:
  • get_running_apps (bool) – Whether or not to get the running_apps() property

  • lazy (bool) – Whether or not to continue retrieving properties if the device is off or the screensaver is running

Returns:

A dictionary with keys 'screen_on', 'awake', 'wake_lock_size', 'current_app', 'media_session_state', 'audio_state', 'audio_output_device', 'is_volume_muted', 'volume', 'running_apps', and 'hdmi_input'

Return type:

dict

async update(get_running_apps=True, lazy=True)[source]

Get the info needed for a Home Assistant update.

Parameters:
  • get_running_apps (bool) – Whether or not to get the running_apps() property

  • lazy (bool) – Whether or not to continue retrieving properties if the device is off or the screensaver is running

Returns:

  • state (str) – The state of the device

  • current_app (str) – The current running app

  • running_apps (list) – A list of the running apps if get_running_apps is True, otherwise the list [current_app]

  • audio_output_device (str) – The current audio playback device

  • is_volume_muted (bool) – Whether or not the volume is muted

  • volume_level (float) – The volume level (between 0 and 1)