コード例 #1
0
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
コード例 #2
0
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
コード例 #3
0
    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)
コード例 #4
0

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)
コード例 #5
0
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)
コード例 #6
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)