Break out common light/group code into Controllable module