import logging import time from pathlib import Path from typing import Optional import typer from citadel.mqtt import Client from .app import Yamaha from .senario import load_from_file, SENARIOS def main(\ mqtt_user: str = typer.Option(... , envvar="YAMAHA_MQTT_USER"),\ mqtt_pwd: str = typer.Option(... , envvar="YAMAHA_MQTT_PWD"),\ mqtt_host: str = typer.Option(... , envvar="YAMAHA_MQTT_HOST"),\ mqtt_port: int = typer.Option(... , envvar="YAMAHA_MQTT_PORT"),\ yamaha_host: str = typer.Option(... , envvar="YAMAHA_HOST"),\ senarios_file: Optional[Path] = typer.Option(None, exists=True, file_okay=True, dir_okay=False, readable=True, resolve_path=True)\ ): if senarios_file: load_from_file(senarios_file) client = Client() client.setup(mqtt_host, mqtt_port, mqtt_user, mqtt_pwd) yamaha = Yamaha(yamaha_host, client) client.loop_forever() if __name__ == "__main__": # create logger logger = logging.getLogger('') logger.setLevel(logging.DEBUG) # create console handler and set level to debug ch = logging.StreamHandler() ch.setLevel(logging.DEBUG) # create formatter formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') # add formatter to ch ch.setFormatter(formatter) # add ch to logger logger.addHandler(ch) #deactive urllib3 logger too verbose logger = logging.getLogger('urllib3') logger.setLevel(logging.ERROR) typer.run(main)