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 +4 -4
- data/Rakefile +4 -0
- data/exe/saj_collector +22 -22
- data/exe/saj_output_collector +17 -22
- data/lib/saj_collector/version.rb +1 -1
- data/saj_collector.gemspec +3 -1
- metadata +32 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6051e60be83878368fff7a972f99ce37590d75b5
|
4
|
+
data.tar.gz: 844b49249c038b790ab31afd297d064edf80601d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9dabb743328c6f2e7900ea34772e2ad12fc938f267d8d65bb6fd5ef63f535dd62ac07f1b6edf0aecfca58ef562973253d91a21f5208f42f239f6301787cababb
|
7
|
+
data.tar.gz: b03734bf6113c704391bbeb179a283ef8a1fcda02b13f1f96c5651f31aa1fb79c206eede289ffa5d7ee1062fb36b2bc7ce4fc24219b5b18291d74310b19947ee
|
data/Rakefile
CHANGED
data/exe/saj_collector
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
require
|
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'
|
16
|
+
'temperature' => 0, # Temperature in celcius
|
17
17
|
'energy_generated' => 0, # Energy generation in watt hours
|
18
|
-
'power_generated'
|
19
|
-
'voltage'
|
20
|
-
'amperage'
|
21
|
-
'power_today'
|
22
|
-
'power_all_time'
|
23
|
-
'runtime_today'
|
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(
|
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(
|
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(
|
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(
|
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(
|
54
|
+
doc.elements.each('real_time_data/v-grid'){
|
55
55
|
|e| options[:voltage] = e.text
|
56
56
|
}
|
57
|
-
doc.elements.each(
|
57
|
+
doc.elements.each('real_time_data/e-today'){
|
58
58
|
|e| options[:power_today] = e.text
|
59
59
|
}
|
60
|
-
doc.elements.each(
|
60
|
+
doc.elements.each('real_time_data/e-total'){
|
61
61
|
|e| options[:power_all_time] = e.text
|
62
62
|
}
|
63
|
-
doc.elements.each(
|
63
|
+
doc.elements.each('real_time_data/t-today'){
|
64
64
|
|e| options[:runtime_today] = e.text
|
65
65
|
}
|
66
|
-
doc.elements.each(
|
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
|
89
|
-
:temperature
|
90
|
-
:voltage
|
91
|
-
|
88
|
+
:power_generated => options[:power_generated],
|
89
|
+
:temperature => options[:temperature],
|
90
|
+
:voltage => options[:voltage]
|
91
|
+
)
|
data/exe/saj_output_collector
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
require
|
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
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
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 =
|
32
|
+
current_day = '00"'
|
39
33
|
|
40
34
|
while counter < days
|
41
|
-
|
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|
|
39
|
+
|e| value[:energy_generated] = (e.text.to_i * 100).to_s
|
46
40
|
}
|
47
|
-
|
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)
|
data/saj_collector.gemspec
CHANGED
@@ -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'
|
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.
|
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-
|
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.
|
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.
|
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
|