# Get light object
light = Bridge('192.168.0.190')["Jessi's Lamp"]

isOn = light.on

if len(sys.argv) < 2:
    # Display brightness
    currentBrightness = light.brightness
    print('Current brightness is %.1f%% (%d/255).' %
          (float(currentBrightness) / 255. * 100., currentBrightness))
    # Display instructions for use and exit
    print(
        'To set brightness, pass desired %. Example: "python setBedsideBrightness.py 15.5"'
    )
    sys.exit()

# Retrieve desired percentage, map to 8-bit
brightnessPercent = float(sys.argv[1])
brightnessSetting = int(round(brightnessPercent * 255 / 100.0))
print('Brightness set: %.1f%% (%d/255).' %
      (brightnessPercent, brightnessSetting))

# Readjust light brightness
if not isOn:
    light.on = True
light.brightness = brightnessSetting

# Light set to 0: turn off light
if brightnessSetting == 0:
    light.on = False
Ejemplo n.º 2
0
nextDivisionTime = startTime + divisionTime
print('First update: %s' %
      str(datetime.datetime.fromtimestamp(nextDivisionTime)))

# TODO: remove after testing
firstFraction = (nextDivisionTime - endTime) / (startTime - endTime)
firstBrightness = int(
    (nextDivisionTime - endTime) / (startTime - endTime) * brightnessStart)
print('firstFraction: %.2f\tfirstBrightness: %d' %
      (firstFraction, firstBrightness))

while time.time() < endTime:
    # Check if update timer has passed
    if time.time() > nextDivisionTime:
        # Readjust light brightness
        brightnessInterpolated = (time.time() - endTime) / (
            startTime - endTime) * brightnessStart
        light.brightness = int(brightnessInterpolated)
        # Update division time
        nextDivisionTime += divisionTime
        nextDivisionTimeString = str(
            datetime.datetime.fromtimestamp(nextDivisionTime))
        print('nextDivisionTime passed. New brightness: %3d. Next update: %s' %
              (light.brightness, nextDivisionTimeString))
    # Sleep to reduce compute load
    time.sleep(2)

# Countdown has ended: turn off light
light.on = False