Skip to content

Instantly share code, notes, and snippets.

@gaffneyc
Created September 21, 2011 17:29
Show Gist options
  • Save gaffneyc/1232732 to your computer and use it in GitHub Desktop.
Save gaffneyc/1232732 to your computer and use it in GitHub Desktop.
class UserCodeSchedule < ActiveRecord::Base
def send_starting_schedule
send_command('set_schedule', options('start'))
end
def send_ending_schedule
send_command('set_schedule', options('end'))
end
def options(option_type)
if option_type == 'start'
case self.schedule_type
when "recurrence"
{
:schedule_id => "#{self.starting_bridge_schedule_id}",
:schedule_type => "1",
:start_datetime =>"#{self.recurrence_time_start.to_i}",
:end_datetime =>"2147483646", #max unix time
:daysofweek => "#{self.recurrence_days_of_week}",
:scenes => "#{self.start_scene.zwave_scene_id}"
}
when "occurrence"
{
:schedule_id => "#{self.starting_bridge_schedule_id}",
:schedule_type => "0",
:start_datetime => "#{self.occurrence_start.to_i}",
:end_datetime =>"2147483646", # ignored for occurrences
:scenes => "#{self.start_scene.zwave_scene_id}"
}
end
elsif option_type == 'end'
case self.schedule_type
when "recurrence"
days_of_week = self.recurrence_days_of_week
{
:schedule_id => "#{self.ending_bridge_schedule_id}",
:schedule_type => "1",
:start_datetime =>"#{self.recurrence_time_end.to_i}",
:end_datetime =>"2147483646", #max unix time
:daysofweek => "#{days_of_week}",
:scenes => "#{self.end_scene.zwave_scene_id}"
}
when "occurrence"
{
:schedule_id => "#{self.ending_bridge_schedule_id}",
:schedule_type => "0",
:start_datetime => "#{self.occurrence_end.to_i}",
:end_datetime =>"2147483646", #max unix time - ignored for occurrences
:scenes => "#{self.end_scene.zwave_scene_id}"
}
end
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment