コード例 #1
0
ファイル: flux_led.py プロジェクト: wgfreewill/home-assistant
def setup_platform(hass, config, add_devices_callback, discovery_info=None):
    """Setup the Flux lights."""
    import flux_led
    lights = []
    light_ips = []
    for ipaddr, device_config in config["devices"].items():
        device = {}
        device['name'] = device_config[ATTR_NAME]
        device['ipaddr'] = ipaddr
        light = FluxLight(device)
        if light.is_valid:
            lights.append(light)
            light_ips.append(ipaddr)

    if not config['automatic_add']:
        add_devices_callback(lights)
        return

    # Find the bulbs on the LAN
    scanner = flux_led.BulbScanner()
    scanner.scan(timeout=10)
    for device in scanner.getBulbInfo():
        ipaddr = device['ipaddr']
        if ipaddr in light_ips:
            continue
        device['name'] = device['id'] + " " + ipaddr
        light = FluxLight(device)
        if light.is_valid:
            lights.append(light)
            light_ips.append(ipaddr)

    add_devices_callback(lights)
コード例 #2
0
ファイル: flux_led.py プロジェクト: yuanyewa/home-assistant
def setup_platform(hass, config, add_devices, discovery_info=None):
    """Set up the Flux lights."""
    import flux_led
    lights = []
    light_ips = []

    for ipaddr, device_config in config.get(CONF_DEVICES, {}).items():
        device = {}
        device['name'] = device_config[CONF_NAME]
        device['ipaddr'] = ipaddr
        device[CONF_PROTOCOL] = device_config[CONF_PROTOCOL]
        device[ATTR_MODE] = device_config[ATTR_MODE]
        light = FluxLight(device)
        lights.append(light)
        light_ips.append(ipaddr)

    if not config.get(CONF_AUTOMATIC_ADD, False):
        add_devices(lights, True)
        return

    # Find the bulbs on the LAN
    scanner = flux_led.BulbScanner()
    scanner.scan(timeout=10)
    for device in scanner.getBulbInfo():
        ipaddr = device['ipaddr']
        if ipaddr in light_ips:
            continue
        device['name'] = '{} {}'.format(device['id'], ipaddr)
        device[ATTR_MODE] = MODE_RGBW
        device[CONF_PROTOCOL] = None
        light = FluxLight(device)
        lights.append(light)

    add_devices(lights, True)
コード例 #3
0
ファイル: flux_led.py プロジェクト: jaharkes/home-assistant
def setup_platform(hass, config, add_devices, discovery_info=None):
    """Setup the Flux lights."""
    import flux_led
    lights = []
    light_ips = []
    for ipaddr, device_config in config[CONF_DEVICES].items():
        device = {}
        device['name'] = device_config[CONF_NAME]
        device['ipaddr'] = ipaddr
        device[ATTR_MODE] = device_config[ATTR_MODE]
        light = FluxLight(device)
        if light.is_valid:
            lights.append(light)
            light_ips.append(ipaddr)

    if not config[CONF_AUTOMATIC_ADD]:
        add_devices(lights)
        return

    # Find the bulbs on the LAN
    scanner = flux_led.BulbScanner()
    scanner.scan(timeout=10)
    for device in scanner.getBulbInfo():
        ipaddr = device['ipaddr']
        if ipaddr in light_ips:
            continue
        device['name'] = device['id'] + " " + ipaddr
        device[ATTR_MODE] = 'rgbw'
        light = FluxLight(device)
        if light.is_valid:
            lights.append(light)
            light_ips.append(ipaddr)

    add_devices(lights)
コード例 #4
0
def bulb_scan():
    try:
        ip_addresses = []
        scanner = flux_led.BulbScanner()
        bulbs_found = scanner.scan(10)
        for bulb in bulbs_found:
            ip_addresses.append(bulb['ipaddr'])
            logger.info(ip_addresses)
        return ip_addresses
    except Exception as exc:
        logger.error(str(exc))
コード例 #5
0
def setup_platform(hass, config, add_devices, discovery_info=None):
    """Setup the Flux lights."""
    import flux_led
    lights = []
    light_ips = []

    for ipaddr, device_config in config.get(CONF_DEVICES, {}).items():
        device = {}
        device['name'] = device_config[CONF_NAME]
        device['ipaddr'] = ipaddr
        device[CONF_PROTOCOL] = device_config[CONF_PROTOCOL]
        device[ATTR_MODE] = device_config[ATTR_MODE]
        light = FluxLight(device)
        if light.is_valid:
            lights.append(light)
            light_ips.append(ipaddr)

    if discovery_info:
        device = {}
        # discovery_info: ip address,device id,device type
        device['ipaddr'] = discovery_info[0]
        device['name'] = discovery_info[1]
        # As we don't know protocol and mode set to none to autodetect.
        device[CONF_PROTOCOL] = None
        device[ATTR_MODE] = None

        light = FluxLight(device)
        if light.is_valid:
            lights.append(light)
            light_ips.append(device['ipaddr'])

    if not config.get(CONF_AUTOMATIC_ADD, False):
        add_devices(lights)
        return

    # Find the bulbs on the LAN
    scanner = flux_led.BulbScanner()
    scanner.scan(timeout=10)
    for device in scanner.getBulbInfo():
        ipaddr = device['ipaddr']
        if ipaddr in light_ips:
            continue
        device['name'] = device['id'] + " " + ipaddr
        device[ATTR_MODE] = 'rgbw'
        device[CONF_PROTOCOL] = None
        light = FluxLight(device)
        if light.is_valid:
            lights.append(light)
            light_ips.append(ipaddr)

    add_devices(lights)
コード例 #6
0
def setup_platform():
    """Set up the Flux lights."""

    import flux_led

    lights = []
    light_ips = []

    # Find the bulbs on the LAN
    scanner = flux_led.BulbScanner()
    scanner.scan(timeout=10)
    for device in scanner.getBulbInfo():
        ipaddr = device["ipaddr"]
        if ipaddr in light_ips:
            continue
        device["name"] = "{} {}".format(device["id"], ipaddr)
        device[ATTR_MODE] = None
        device[CONF_PROTOCOL] = None
        device[CONF_CUSTOM_EFFECT] = None
        dlight = FluxLight(device)
        lights.append(dlight)
        return dlight
コード例 #7
0
ファイル: test.py プロジェクト: conner-s/Lights
import flux_led
from PySide2 import QtWidgets
from ui import ui

bulb_scanner = flux_led.BulbScanner()


class QtUi(ui.Ui_MainWindow, QtWidgets.QMainWindow):
    def __init__(self):
        super(QtUi, self).__init__()
        self.setupUi(self)
        self.setWindowTitle("Python Lights")
        self.active_bulb = None

        # button function connection
        self.rgb_enter.clicked.connect(self.get_user_rgb)
        self.set_light.clicked.connect(self.connect_bulb)
        self.set_white_button.clicked.connect(self.set_white)
        self.set_red_button.clicked.connect(self.set_red)
        self.lights_on_button.clicked.connect(self.set_light_on)
        self.lights_off_button.clicked.connect(self.set_light_off)
        self.bright_lights_button.clicked.connect(self.brighten_light)
        self.dim_lights_button.clicked.connect(self.dim_light)

        found_bulbs = bulb_scanner.scan(3)
        if found_bulbs is not None:
            # Populates list with bulbs on the network
            for e in found_bulbs:
                item = QtWidgets.QListWidgetItem(self.light_list)
                bulb_ip = str(e)[12:25]
                item.setText(bulb_ip)