public
Rubygem
Description: Ruby gem to control a Rock's Bar-B-Que Stoker
Clone URL: git://github.com/tbuser/stoker.git
Click here to lend your support to: stoker and make a donation at www.pledgie.com !
stoker / test.rb
100644 119 lines (96 sloc) 3.394 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
#!/usr/bin/env ruby
# TODO: make this into a proper testing framework :)
 
$TEST = false
$TEST_HTML = File.open("tests/test1.html")
 
require "lib/stoker"
require "benchmark"
 
def get_sensors(connection="http")
  stoker = Net::Stoker.new("10.1.1.8", :connection => connection)
 
  # puts "Getting data..."
  stoker.get
 
  # 530000112A584E30: Yellow
  # 440000112A621E30: Pit Temp
  # 0E0000112A5D1630: Blue
  # 9C00001195DEE430: Red
 
  # 140000002AA65105: Fan
 
  # puts "Listing blowers:"
  # stoker.blowers.each do |blower|
  # puts "#{blower.serial_number}, #{blower.name}, #{blower.sensor.name rescue ''}"
  # end
  #
  # puts "Listing sensors:"
  # stoker.sensors.each do |sensor|
  # puts "#{sensor.serial_number}, #{sensor.name}, #{sensor.temp}, #{sensor.target}, #{sensor.alarm}, #{sensor.low}, #{sensor.high}, #{sensor.blower.name rescue ''}"
  # end
end
 
Benchmark.bm do |x|
  x.report("http") { get_sensors("http"); }
  sleep(3)
  x.report("socket") { get_sensors("socket"); }
end
 
#sensor = stoker.sensor("530000112A584E30")
#res = sensor.update_attributes(:name => "Yellow Foo", :blower_serial_number => stoker.blower("140000002AA65105").serial_number)
#puts res.to_s
 
# name = sensor.name
# serial_number = sensor.serial_number
#
# puts "#{serial_number} was #{name} changing to Test"
# sensor.name = "Test"
#
# puts "name is now #{sensor.name}"
#
# puts "Getting data..."
# stoker.get
#
# sensor = stoker.sensor(serial_number)
# puts "#{sensor.serial_number} is now #{sensor.name} changing back to #{name}"
# sensor.update_attributes :name => name
#
# puts "name is now #{sensor.name}"
#
# puts "Getting data..."
# stoker.get
#
# sensor = stoker.sensor(serial_number)
# puts "#{sensor.serial_number} is now back to #{sensor.name}"
 
#
# puts "Red: #{stoker.sensor("Red").temp}"
# puts "9C00001195DEE430: #{stoker.sensor("9C00001195DEE430").name}"
# puts "Pit Temp Blower: #{stoker.sensor("pit temp").blower.name}"
#
# puts "Fan Sensor: #{stoker.blower("Fan").sensor.name}"
# puts "140000002AA65105: #{stoker.blower("140000002AA65105").name}"
 
# stoker.sensor("Red").update_attributes :name => "Rouge", :target => 123, :blower => stoker.blower("Fan")
# stoker.sensor("Red").update_attributes :name => "Rouge", :target => "100"
 
# stoker.sensor("Red").name = "Rouge"
# stoker.blower("Fan").name = "Blower"
 
# stoker.sensor("Pit Temp").target = 42
# stoker.sensor("Pit Temp").alarm = "none"
 
# stoker.sensor("Pit Temp").target = 100
# stoker.sensor("Pit Temp").alarm = "fire"
# stoker.sensor("Pit Temp").low = 90
# stoker.sensor("Pit Temp").high = 110
 
# puts
#
# stoker.sensor("Red").blower = stoker.blower("Fan")
#
# puts stoker.sensor("Pit Temp").blower_serial_number
# puts stoker.sensor("Red").blower_serial_number
# puts stoker.blower("Fan").sensor.name
#
# puts
#
# stoker.blower("Fan").sensor = stoker.sensor("Pit Temp")
#
# puts stoker.sensor("Pit Temp").blower_serial_number
# puts stoker.sensor("Red").blower_serial_number
# puts stoker.blower("Fan").sensor.name
 
# ideas:
 
# puts stoker.meat_sensor.temp
 
# stoker.blower("main").on
# stoker.blower("main").off
# stoker.blower("main").on?
 
# stoker.meat_sensor.keep_warm # => when meat sensor approaches target, sets the target of fire sensor to target of meat sensor
 
# stoker.monitor(:frequency => 60) do |event|
# puts "#{Time.now.strftime("%Y-%m-%d %H:%M:%S")}: #{event.name} - #{event.temp}"
# end