# 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
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