saj_collector 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 39d04599063647006f8f24f1a19c830ea9198fd8
4
- data.tar.gz: 7e4966a4c373658f8a57dee8f51c3bc4e4bbecb8
3
+ metadata.gz: 6051e60be83878368fff7a972f99ce37590d75b5
4
+ data.tar.gz: 844b49249c038b790ab31afd297d064edf80601d
5
5
  SHA512:
6
- metadata.gz: ee0354c0a008234f28290d7ec8ac016304f76b85d2e8f11b2fb9b984add47311a332bea8db6e673e5db6669e9555a9124286ff7ec89f335515a9aea317107689
7
- data.tar.gz: 9dec42beb8eef437e4fb985db0c329dbc1ff2dee431b1c147ecdca14b2e08595ba33b5dfe1f839e026fcd1fecfa12700c880000f1e92b25ff437f3a12992b5f3
6
+ metadata.gz: 9dabb743328c6f2e7900ea34772e2ad12fc938f267d8d65bb6fd5ef63f535dd62ac07f1b6edf0aecfca58ef562973253d91a21f5208f42f239f6301787cababb
7
+ data.tar.gz: b03734bf6113c704391bbeb179a283ef8a1fcda02b13f1f96c5651f31aa1fb79c206eede289ffa5d7ee1062fb36b2bc7ce4fc24219b5b18291d74310b19947ee
data/Rakefile CHANGED
@@ -1,4 +1,8 @@
1
1
  require 'bundler/gem_tasks'
2
+ require 'rspec/core/rake_task'
2
3
  require 'rubocop/rake_task'
3
4
 
5
+ RSpec::Core::RakeTask.new(:spec)
4
6
  RuboCop::RakeTask.new
7
+
8
+ task :default => :spec
data/exe/saj_collector CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require "rexml/document"
3
+ require 'rexml/document'
4
4
  require 'net/http'
5
5
  require 'pvoutput/client'
6
6
  require 'yaml'
@@ -13,15 +13,15 @@ sajcollector_config = YAML::load_file('/etc/saj_collector/saj_collector.yaml')
13
13
  pvoutput = PVOutput::Client.new(sajcollector_config[:system_id], sajcollector_config[:api_key])
14
14
 
15
15
  options = {
16
- 'temperature' => 0, # Temperature in celcius
16
+ 'temperature' => 0, # Temperature in celcius
17
17
  'energy_generated' => 0, # Energy generation in watt hours
18
- 'power_generated' => 0, # Power generation in watts
19
- 'voltage' => 0, # Voltage in volts
20
- 'amperage' => 0, # Amperage
21
- 'power_today' => 0,
22
- 'power_all_time' => 0,
23
- 'runtime_today' => 0,
24
- 'runtime_all_time' => 0
18
+ 'power_generated' => 0, # Power generation in watts
19
+ 'voltage' => 0, # Voltage in volts
20
+ 'amperage' => 0, # Amperage
21
+ 'power_today' => 0,
22
+ 'power_all_time' => 0,
23
+ 'runtime_today' => 0,
24
+ 'runtime_all_time' => 0,
25
25
  }
26
26
 
27
27
  # Get the current realtime data from the SAJ device
@@ -31,39 +31,39 @@ c = Net::HTTP.get(sajcollector_config[:saj], '/real_time_data.xml')
31
31
  doc = REXML::Document.new c
32
32
 
33
33
  # Get the temperature
34
- doc.elements.each("real_time_data/temp"){
34
+ doc.elements.each('real_time_data/temp'){
35
35
  |e| options[:temperature] = e.text
36
36
  }
37
37
 
38
38
  # e-today is in kWh where pvoutput is Wh
39
- doc.elements.each("real_time_data/e-today"){
39
+ doc.elements.each('real_time_data/e-today'){
40
40
  |e| options[:energy_generated] = e.text.to_f * 1000
41
41
  }
42
42
 
43
43
  # Get the power generated
44
- doc.elements.each("real_time_data/p-ac"){
44
+ doc.elements.each('real_time_data/p-ac'){
45
45
  |e| options[:power_generated] = e.text
46
46
  }
47
47
 
48
48
  # Get the current amperage
49
- doc.elements.each("real_time_data/i-grid"){
49
+ doc.elements.each('real_time_data/i-grid'){
50
50
  |e| options[:amperage] = e.text
51
51
  }
52
52
 
53
53
  # Get the voltage
54
- doc.elements.each("real_time_data/v-grid"){
54
+ doc.elements.each('real_time_data/v-grid'){
55
55
  |e| options[:voltage] = e.text
56
56
  }
57
- doc.elements.each("real_time_data/e-today"){
57
+ doc.elements.each('real_time_data/e-today'){
58
58
  |e| options[:power_today] = e.text
59
59
  }
60
- doc.elements.each("real_time_data/e-total"){
60
+ doc.elements.each('real_time_data/e-total'){
61
61
  |e| options[:power_all_time] = e.text
62
62
  }
63
- doc.elements.each("real_time_data/t-today"){
63
+ doc.elements.each('real_time_data/t-today'){
64
64
  |e| options[:runtime_today] = e.text
65
65
  }
66
- doc.elements.each("real_time_data/t-total"){
66
+ doc.elements.each('real_time_data/t-total'){
67
67
  |e| options[:runtime_all_time] = e.text
68
68
  }
69
69
 
@@ -85,7 +85,7 @@ puts " Run Time: #{options[:runtime_all_time]} Hours"
85
85
 
86
86
  pvoutput.add_status(
87
87
  :energy_generated => options[:energy_generated],
88
- :power_generated => options[:power_generated],
89
- :temperature => options[:temperature],
90
- :voltage => options[:voltage],
91
- )
88
+ :power_generated => options[:power_generated],
89
+ :temperature => options[:temperature],
90
+ :voltage => options[:voltage]
91
+ )
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require "rexml/document"
3
+ require 'rexml/document'
4
4
  require 'net/http'
5
5
  require 'pvoutput/client'
6
6
  require 'yaml'
@@ -18,38 +18,33 @@ c = Net::HTTP.get(sajcollector_config[:saj], '/day_trend.xml')
18
18
  # Let REXML parse the XML file
19
19
  doc = REXML::Document.new c
20
20
 
21
- days = 0
22
-
23
- # Get the number of days of the current month
24
- doc.elements.each("day_trend/days"){
25
- |e| days = e.text.to_i
26
- }
21
+ # Get the current day number, we can't post data for future dates
22
+ time = Time.now
23
+ days = time.day
24
+ m = time.strftime('%Y%m')
27
25
 
28
- puts "Number of days this month #{days}"
26
+ puts "Number of days until now for this month #{days}"
29
27
 
30
28
  options = {
31
- 'output_date' => 0, # Day generated
32
- 'energy_generated' => 0 # Energy generation in watt hours
33
29
  }
34
30
 
35
- time = Time.now
36
- m = time.strftime('%Y%m')
37
31
  counter = 0
38
- current_day = "00"
32
+ current_day = '00"'
39
33
 
40
34
  while counter < days
41
- options[:output_date] = "#{m}#{current_day.next!}"
42
-
35
+ value = {
36
+ :energy_generated => 0 }
43
37
  # Get the power output of the day,
44
38
  doc.elements.each("day_trend/d#{counter}"){
45
- |e| options[:energy_generated] = (e.text.to_i * 100).to_s
39
+ |e| value[:energy_generated] = (e.text.to_i * 100).to_s
46
40
  }
47
- puts "Energy generated (#{options[:output_date]}) : #{options[:energy_generated]} WH"
48
-
49
- pvoutput.add_output(
50
- :output_date => options[:output_date],
51
- :energy_generated => options[:energy_generated],
52
- )
41
+ options[:"#{m}#{current_day.next!}"] = value
53
42
 
54
43
  counter += 1
55
44
  end
45
+
46
+ options.each do |date, values|
47
+ puts "Energy generated #{date} :#{values[:energy_generated]} WH"
48
+ end
49
+
50
+ pvoutput.add_batch_output(options)
@@ -1,3 +1,3 @@
1
1
  module SAJCollector
2
- VERSION = '0.2.0'.freeze
2
+ VERSION = '0.3.0'.freeze
3
3
  end
@@ -18,9 +18,11 @@ Gem::Specification.new do |spec|
18
18
  spec.require_paths = ['lib']
19
19
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
20
 
21
- spec.add_dependency 'pvoutput' , '~> 0.2.0'
21
+ spec.add_dependency 'pvoutput', '~> 0.3.0'
22
22
 
23
23
  spec.add_development_dependency 'bundler', '~> 1.10'
24
24
  spec.add_development_dependency 'rake', '~> 10.0'
25
+ spec.add_development_dependency 'rspec'
25
26
  spec.add_development_dependency 'rubocop'
27
+ spec.add_development_dependency 'rubocop-rspec'
26
28
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: saj_collector
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Johnny Willemsen
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-02-27 00:00:00.000000000 Z
11
+ date: 2016-02-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pvoutput
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.2.0
19
+ version: 0.3.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.2.0
26
+ version: 0.3.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '10.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: rubocop
57
71
  requirement: !ruby/object:Gem::Requirement
@@ -66,6 +80,20 @@ dependencies:
66
80
  - - ">="
67
81
  - !ruby/object:Gem::Version
68
82
  version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rubocop-rspec
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
69
97
  description:
70
98
  email:
71
99
  - jwillemsen@remedy.nl