async def instance_start_and_switch(): """Wait for an instance to start.""" instance_ready = asyncio.Event() def instance_update(json): print("receive json %s", json) for data in json["data"]: if data["instance"] == 1 and data["running"]: instance_ready.set() hc = client.HyperionClient(HOST, callbacks={"instance-update": instance_update}) if not await hc.async_client_connect(): logging.error("Could not connect to: %s", HOST) return if not client.ResponseOK(await hc.async_start_instance(instance=1)): logging.error("Could not start instance on: %s", HOST) return # Blocks waiting for the instance to start. await instance_ready.wait() if not client.ResponseOK(await hc.async_switch_instance(instance=1)): logging.error("Could not switch instance on: %s", HOST) return await hc.async_client_disconnect()
async def print_brightness(): """Print Hyperion brightness.""" hyperion_client = client.HyperionClient(HOST) if not await hyperion_client.async_client_connect(): return print("Brightness: %i%%" % hyperion_client.adjustment[0][const.KEY_BRIGHTNESS])
async def print_if_auth_required(): """Print whether auth is required.""" hc = client.HyperionClient(HOST) await hc.async_client_connect() result = await hc.async_is_auth_required() print("Result: %s" % result)
async def async_setup_platform(hass, config, async_add_entities, discovery_info=None): """Set up a Hyperion server remote.""" name = config[CONF_NAME] host = config[CONF_HOST] port = config[CONF_PORT] priority = config[CONF_PRIORITY] hyperion_client = client.HyperionClient(host, port) if not await hyperion_client.async_client_connect(): raise PlatformNotReady async_add_entities([Hyperion(name, priority, hyperion_client)])
def create_hyperion_client( *args: Any, **kwargs: Any, ) -> client.HyperionClient: """Create a Hyperion Client.""" return client.HyperionClient(*args, **kwargs)
#!/usr/bin/python """Simple Hyperion client callback demonstration.""" import asyncio from hyperion import client HOST = "hyperion" def callback(json): """Sample callback function.""" print("Received Hyperion callback: %s" % json) if __name__ == "__main__": hyperion_client = client.HyperionClient(HOST, default_callback=callback) asyncio.get_event_loop().run_until_complete( hyperion_client.async_client_connect()) asyncio.get_event_loop().run_forever()