def setup_platform(hass, config, add_devices, discovery_info=None): """Setup the sensor.""" import brainfm email = config.get(CONF_EMAIL) password = config.get(CONF_PASSWORD) client = brainfm.Connection(email, password) dev = [] for sensor_type in ["sleep"]:#, "relax", "focus"]: dev.append(BrainfmSensor(sensor_type, client, hass)) add_devices(dev)
def cli(ctx): ctx.obj = brainfm.Connection()
def cli(ctx, sid, api_endpoint, stream_endpoint): ctx.obj = brainfm.Connection(sid=sid, api_endpoint=api_endpoint, stream_endpoint=stream_endpoint)
import pathlib import requests import sys import terminaltables import webbrowser CONFIG_PATH = pathlib.Path("~/.brainfm/config").expanduser() CACHE_PATH = pathlib.Path("~/.brainfm/cache").expanduser() CACHE_PATH.mkdir(parents=True, exist_ok=True) STATIONS_PATTERN = jmespath.compile("[*].[station_id, name, canonical_name]") # TODO graceful failure when config is missing/invalid with CONFIG_PATH.open() as fp: config = json.load(fp) client = brainfm.Connection(config["email"], config["password"]) # TODO expire cached values if (CACHE_PATH / "svu").exists(): with (CACHE_PATH / "svu").open() as fp: client._svu = fp.read() else: with (CACHE_PATH / "svu").open(mode="w") as fp: fp.write(client.svu) cached = {"stations": None} if (CACHE_PATH / "stations").exists(): with (CACHE_PATH / "stations").open() as fp: cached["stations"] = json.load(fp)