saj_collector 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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