def recallScene(sceneName):
    briOnly =  __addon__.getSetting("brightnessonly" + sceneName) == "true"
    state = hueAddonSettings.data["scene" + sceneName]
    logDebug("recall preset" + sceneName + ": " + str(state))

    bridge = hue.Bridge(ip=hueAddonSettings.data["bridgeip"], id=hueAddonSettings.data["bridgeid"],username=hueAddonSettings.data.get("bridgeusername", None))
    bridge.setFullStateLights(state,  xbmccommon.getConfiguredLampsList(), briOnly)
    def _setState(self, state, briOnly=False):
        __addon__ = xbmcaddon.Addon(id=self.addonId)

        hueAddonSettings = xbmccommon.HueControlSettings()
        bridge = hue.Bridge(ip=hueAddonSettings.data["bridgeip"], id=hueAddonSettings.data["bridgeid"], username=hueAddonSettings.data.get("bridgeusername", None))

        lamps = xbmccommon.getConfiguredLampsList()
        bridge.setFullStateLights(state, lamps, briOnly)
Exemple #3
0
def hue_show():
    h = hue.Bridge()
    h.setLight(2, bri=50, transitiontime=1)
    time.sleep(1)
    h.setLight(2, bri=254, transitiontime=1)
    time.sleep(1)
    h.setLight(2, bri=50, transitiontime=1)
    time.sleep(1)
    h.setLight(2, bri=254, transitiontime=1)
Exemple #4
0
    def __init__(self):
        with open('{}/settings.yml'.format(sys.path[0]), 'r') as ymlfile:
            settings = yaml.load(ymlfile)

            logging.debug(settings)

            self.bridge = hue.Bridge(settings['hue']['ip'],
                                     settings['hue']['username'])
            self.group = settings['hue']['light']
Exemple #5
0
def hue_show():
    delay_sec = 0.2
    h = hue.Bridge()
    h.setLight(2, bri=50, transitiontime=delay_sec)
    time.sleep(delay_sec)
    h.setLight(2, bri=254, transitiontime=delay_sec)
    time.sleep(delay_sec)
    h.setLight(2, bri=50, transitiontime=delay_sec)
    time.sleep(delay_sec)
    h.setLight(2, bri=254, transitiontime=delay_sec)
    def onPlayBackStarted(self):
        __addon__ = xbmcaddon.Addon(id=self.addonId)

        logDebug("--> onPlayBackStarted {0}, {1}".format(xbmc.Player().getTotalTime(), __addon__.getSetting("minvideolength")))

        if xbmc.Player().isPlayingVideo() and (xbmc.Player().getTotalTime() >= (float(__addon__.getSetting("minvideolength")) * 60) or xbmc.Player().getTotalTime() == 0):
            if (self.CONTROLLING_LAMPS == 0):
                hueAddonSettings = xbmccommon.HueControlSettings()

                bridge = hue.Bridge(ip=hueAddonSettings.data["bridgeip"], id=hueAddonSettings.data["bridgeid"], username=hueAddonSettings.data.get("bridgeusername", None))
                self.savedlampstate = bridge.getFullState()

            self.CONTROLLING_LAMPS = 1
            self._setScene("scenePlaying")
Exemple #7
0
def start(sta):
    relay = machine.Pin(5, machine.Pin.OUT)
    relay.value(1)  # Relay is active-low
    led = machine.Pin(2, machine.Pin.OUT)
    led.value(0)  # LED is active-low
    while not sta.isconnected():
        sleep_ms(500)
    sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    sock.bind((sta.ifconfig()[0], 4444))
    sock.settimeout(1.8)
    print("listening on " + sta.ifconfig()[0])
    print("Find HUE")
    hue_br = hue.Bridge()
    is_on = False
    led.value(1)

    while True:
        last_time = ticks_ms()
        try:
            line, addr = sock.recvfrom(1024)
            time = ticks_ms()
        except OSError:
            if is_on:
                led.value(0)
                relay.value(1)
                hue_br.setGroup(1, on=False)
                is_on = False
                led.value(1)
            sleep_ms(100)
            continue
        led.value(0)
        print(ticks_diff(time, last_time))
        last_time = time
        if b'hb' in line:
            if not is_on:
                relay.value(0)
                hue_br.setGroup(1, on=True)
                is_on = True
        elif b'off' in line:
            print(line)
            relay.value(1)
            hue_br.setGroup(1, on=False)
            is_on = False
            sock.sendto("off", addr)
        else:
            print(line)
        led.value(1)
Exemple #8
0
import usocket as socket
import hue
addr = socket.getaddrinfo('0.0.0.0', 1234)[0][-1]
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((addr))
s.listen(1)
h = hue.Bridge()
while True:
    clientsocket, address = s.accept()
    print("client connected!")
    clientsocket.send(bytes("welcome to server", "utf-8="))
    h.setGroup(1, on=False)
    h.setGroup(2, on=False)
Exemple #9
0
secret_file = 'config.secret'
try:
    # try to read API key from file
    with open(secret_file, 'r') as f:
        hue_api_key = f.read()
except IOError:
    # register with Hue bridge if no API key is present
    hue_api_key = hue.Bridge.register(config['Hue']['Host'])
    if hue_api_key is None:
        sys.exit(1)
    with open(secret_file, 'w') as f:
        f.write(hue_api_key)

# connect to bridge
bridge = hue.Bridge(config['Hue']['Host'], hue_api_key)

# set up MQTT
mqtt_prefix = config['MQTT']['Prefix']


def on_connect(client, userdata, flags, rc):
    mqtt_logger.info('Connected!')


def on_disconnect(client, userdata, rc):
    mqtt_logger.info('Disconnected!')
    sys.exit(1)


def on_publish(client, userdata, mid):
            progress.close();
            
        if (not bridge.isAuthorized()):
            xbmccommon.notify(__language__(30016), duration=5000)
        else:
            hueAddonSettings.data["bridgeusername"] = bridge.username
            # For safety remove any old (fixed) usernames
            bridge.DELETE("/config/whitelist/{0}".format(huecontrol.OLD_BRIDGEUSER))
            
            xbmccommon.notify(__language__(30017), duration=5000)
            
        hueAddonSettings.store()
    
elif (parameters['action'] == "savescene"):
    
    bridge = hue.Bridge(ip=hueAddonSettings.data["bridgeip"], id=hueAddonSettings.data["bridgeid"], username=hueAddonSettings.data.get("bridgeusername", None))
    
    state = bridge.getFullState()

    id = parameters['id']
    logDebug("save scene" + id + ": " + str(state))
    __addon__.setSetting("scene" + id, "") # I used to store the complete state here, write an empty string now, to "unbloat" the settings.xml
    hueAddonSettings.data["scene" + id] = state
    
    if hueAddonSettings.store():
        presetname = __addon__.getSetting("namescene" + id)
        if presetname == "":
            presetname = id
        xbmccommon.notify(__language__(30034).format(presetname))

elif (parameters['action'] == "recallscene"):
Exemple #11
0
        key.action()


if __name__ == '__main__':
    import keybow
    import keyboard
    import shutdown
    import hue
    import time
    import config
    import state
    import helpers

    conf = config.Env(['HUE_TOKEN', 'ROOM_NAME'])
    room = hue.Room(conf.env['ROOM_NAME'],
                    hue.Bridge(conf.env['HUE_TOKEN'], DISCOVERY_URL))
    state_engine = state.Engine()

    helpers.generate_keyboards(room, keyboard, state_engine)

    app = App(hue, state_engine, keybow)

    @keybow.on()
    def handle_key(index, state):

        if state:
            keybow.set_led(index, 0, 0, 255)
            app.execute_action(index)
        else:
            app.update_leds()