예제 #1
0
    # Init async event loop
    loop = initialize_event_loop()

    # Check if all information are available to setup Hass.io
    if not bootstrap.check_environment():
        sys.exit(1)

    # init executor pool
    executor = ThreadPoolExecutor(thread_name_prefix="SyncWorker")
    loop.set_default_executor(executor)

    _LOGGER.info("Initialize Hass.io setup")
    coresys = loop.run_until_complete(bootstrap.initialize_coresys())

    bootstrap.migrate_system_env(coresys)

    _LOGGER.info("Setup HassIO")
    loop.run_until_complete(coresys.core.setup())

    loop.call_soon_threadsafe(loop.create_task, coresys.core.start())
    loop.call_soon_threadsafe(bootstrap.reg_signal, loop)

    try:
        _LOGGER.info("Run Hass.io")
        loop.run_forever()
    finally:
        _LOGGER.info("Stopping Hass.io")
        loop.run_until_complete(coresys.core.stop())
        executor.shutdown(wait=False)
        loop.close()
예제 #2
0
# pylint: disable=invalid-name
if __name__ == "__main__":
    bootstrap.initialize_logging()

    if not bootstrap.check_environment():
        exit(1)

    loop = asyncio.get_event_loop()
    executor = ThreadPoolExecutor(thread_name_prefix="SyncWorker")
    loop.set_default_executor(executor)

    _LOGGER.info("Initialize Hassio setup")
    config = bootstrap.initialize_system_data()
    hassio = core.HassIO(loop, config)

    bootstrap.migrate_system_env(config)

    _LOGGER.info("Run Hassio setup")
    loop.run_until_complete(hassio.setup())

    _LOGGER.info("Start Hassio task")
    loop.call_soon_threadsafe(loop.create_task, hassio.start())
    loop.call_soon_threadsafe(bootstrap.reg_signal, loop, hassio)

    _LOGGER.info("Run Hassio loop")
    loop.run_forever()

    _LOGGER.info("Cleanup system")
    executor.shutdown(wait=False)
    loop.close()