import cec from engine import log from engine.main import SETTINGS TV = None class TVControl: def __init__(self): cec.init() devices = cec.list_devices() # self.debug() self.tv = None for device in devices: if devices[device].osd_string == SETTINGS.get('CECTVName'): self.tv = devices[device] if not self.tv: raise RuntimeError('TV not found. Run TVControl.debug() to find device name') self.devices = {} if SETTINGS.get('ControlOtherCECDevices'): for device in devices: if devices[device] is not self.tv: self.devices[devices[device].osd_string] = devices[device] global TV TV = self def debug(self): log.debug(cec.list_adapters()) devices = cec.list_devices() log.debug(devices) for device in devices: log.debug(devices[device].osd_string) log.debug(devices[device].vendor) log.debug(devices[device].address) log.debug(devices[device].is_active()) def power_on(self): self.tv.power_on() def is_on(self): self.tv.is_on() def power_off(self): self.tv.standby() def is_active(self): self.tv.is_active() def make_active(self): cec.set_active_source()