def setup(hass, config): """Set up Eufy devices.""" import lakeside if CONF_USERNAME in config[DOMAIN] and CONF_PASSWORD in config[DOMAIN]: data = lakeside.get_devices(config[DOMAIN][CONF_USERNAME], config[DOMAIN][CONF_PASSWORD]) for device in data: kind = device['type'] if kind not in EUFY_DISPATCH: continue discovery.load_platform(hass, EUFY_DISPATCH[kind], DOMAIN, device, config) for device_info in config[DOMAIN][CONF_DEVICES]: kind = device_info['type'] if kind not in EUFY_DISPATCH: continue device = {} device['address'] = device_info['address'] device['code'] = device_info['access_token'] device['type'] = device_info['type'] device['name'] = device_info['name'] discovery.load_platform(hass, EUFY_DISPATCH[kind], DOMAIN, device, config) return True
def setup(hass: HomeAssistant, config: ConfigType) -> bool: """Set up Eufy devices.""" if CONF_USERNAME in config[DOMAIN] and CONF_PASSWORD in config[DOMAIN]: data = lakeside.get_devices(config[DOMAIN][CONF_USERNAME], config[DOMAIN][CONF_PASSWORD]) for device in data: kind = device["type"] if kind not in EUFY_DISPATCH: continue discovery.load_platform(hass, EUFY_DISPATCH[kind], DOMAIN, device, config) for device_info in config[DOMAIN][CONF_DEVICES]: kind = device_info["type"] if kind not in EUFY_DISPATCH: continue device = {} device["address"] = device_info["address"] device["code"] = device_info["access_token"] device["type"] = device_info["type"] device["name"] = device_info["name"] discovery.load_platform(hass, EUFY_DISPATCH[kind], DOMAIN, device, config) return True
def start_pairing(self, timeout): """ Start the pairing process. timeout -- Timeout in seconds at which to quit pairing """ if self.username is None or self.password is None: return self.pairing = True for dev in lakeside.get_devices(self.username, self.password): if not self.pairing: break _id = 'eufy-' + dev['id'] if _id not in self.devices: address = dev['address'] code = dev['code'] model = dev['type'] name = dev['name'] if model in ['T1201', 'T1202', 'T1211']: eufy_dev = lakeside.switch(address, code, model) device = EufySwitch(self, _id, name, eufy_dev) elif model in ['T1011', 'T1012', 'T1013']: eufy_dev = lakeside.bulb(address, code, model) device = EufyBulb(self, _id, name, eufy_dev) else: continue self.handle_device_added(device)
def hex_to_rgb(value): value = value.lstrip('#') lv = len(value) return tuple(int(value[i:i + lv // 3], 16) for i in range(0, lv, lv // 3)) def_power = True def_brightness = 20 def_temperature = 20 def_colors = get_colors() email = os.getenv("EUFY_EMAIL") password = os.getenv("EUFY_PASSWORD") devices = lakeside.get_devices(email, password) bulb = lakeside.bulb(devices[0]['address'], devices[0]['code'], devices[0]['type']) bulb.connect() @app.route('/light', methods=['POST']) def turnOnBulb(): power = request.args.get("power", type=str) if (power is not None): power = power == "True" else: power = def_power brightness = request.args.get("brightness", type=int) or def_brightness temperature = request.args.get("temperature", type=int) or def_temperature parsed_colors = request.args.get("colors", type=str)
import json import lakeside secrets = {} with open("secrets.json") as f: secrets = json.load(f) # TODO add device details cache devices = lakeside.get_devices(secrets["username"], secrets["password"]) d = devices[0] print("Bulb info: %s" % str(d)) bulb = lakeside.bulb(d["address"], d["code"], d["type"]) bulb.connect() if bulb.get_status().bulbinfo.packet.bulbstate.power == 0: print("Toggling bulb on") bulb.set_power(power=1) else: print("Toggling bulb off") bulb.set_power(power=0)
import lakeside import time username = '******' password = '******' devices = lakeside.get_devices(username, password) bulb = lakeside.bulb(devices[1]['address'], devices[1]['code'], devices[1]['type']) bulb.connect() brightness = 50 for i in range(25): bulb.set_state(power=True, brightness=brightness, temperature=i * 4) time.sleep(0.25) for i in range(2): bulb.set_state(power=True) time.sleep(1) bulb.set_state(power=False) time.sleep(1) switch = lakeside.switch(devices[4]['address'], devices[4]['code'], devices[4]['type']) switch.connect() for i in range(2): switch.set_state(power=True) time.sleep(1)