Disco Lights
Jump to navigation
Jump to search
I set up a few lights around the room, with LIFX bulbs, but you could as easily use Phillips Hue bulbs.
Then i run LIFXstyle or Hue-topia.
Then i run my color-changing-lights script:
tell application "LIFXStyle"
set hueScaleFactor to 3 # larger number: cycle faster, smaller number: cylce slower
set intraLampHueOffset to 45 # number of hue steps to take per bulb (so they're offset from each other)
set kMaxValue to 255 # constant: don't change this number
set groupNameList to {"Barn"} #, "Pool"} #, "Music Room"}
set lampList to my get_all_lamps_in_group_list(groupNameList)
repeat with curLamp in lampList
set (whiteness of curLamp) to 25
set (brightness of curLamp) to kMaxValue
end repeat
set hueStart to hue of item 1 of lampList
set hueStartScaled to (hueStart / hueScaleFactor) as integer
set hueEndScaled to (kMaxValue / hueScaleFactor) as integer
repeat
repeat with hueValue from hueStartScaled to hueEndScaled
set curScaledHue to (hueValue * hueScaleFactor)
repeat with itemNo from 1 to count of lampList
set curLamp to item itemNo of lampList
set curLampHue to ((curScaledHue + (itemNo * intraLampHueOffset)) mod kMaxValue) as integer
set (hue of curLamp) to curLampHue
end repeat
delay 0.25
end repeat
set hueStartScaled to 0
end repeat
end tell
on get_all_lamps_in_group_list(groupNameList)
set lampList to {}
repeat with curGroup in groupNameList
set lampList to lampList & my get_group_lamp_list(curGroup)
end repeat
return lampList
end get_all_lamps_in_group_list
on get_group_lamp_list(groupName)
set lampList to {}
tell application "LIFXStyle"
set lampGroup to a reference to lamps of (first group whose title is groupName)
repeat with lampNo from 1 to (count of lampGroup)
set lampList to lampList & {a reference to (item lampNo of lampGroup)}
end repeat
end tell
return lampList
end get_group_lamp_list