huawei_solar 0.0.4 → 0.0.5
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/.irbrc +1 -0
- data/.tool-versions +1 -1
- data/CHANGELOG.md +6 -0
- data/Gemfile +0 -1
- data/Gemfile.lock +2 -7
- data/README.md +14 -2
- data/lib/huawei_solar/version.rb +1 -1
- data/lib/huawei_solar.rb +14 -6
- metadata +7 -7
- data/.pryrc +0 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bb059d5db290300b5ff49e9685ca5fe6bc18620f9b63f48fa30ea5679b45e8d8
|
4
|
+
data.tar.gz: f8421e69233715364fe19aa6152f81fabaceb7b503f94911acc5a7e5abe48573
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f5ae6f6af83de404b20adf8e5b7573fd9b028d1db7b4b031f8ae068ce9cd9506abb8fb0cc222157ea0753817888920d31a2c51f2ca2ce9603f4aed028bb60a5e
|
7
|
+
data.tar.gz: e75ebfb14c92943a5be81265dc4771bbfad7a1eb3dc29758512c2d350259bdd975e377c65075e036526308412f249802e48c37a2b683d2d3642cf7685c5412db
|
data/.irbrc
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
IRB.conf[:IRB_NAME] = "[huawei_solar]"
|
data/.tool-versions
CHANGED
@@ -1 +1 @@
|
|
1
|
-
ruby 3.
|
1
|
+
ruby 3.2.2
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,11 @@
|
|
1
1
|
## [Unreleased]
|
2
2
|
|
3
|
+
## [0.0.5] - 2023-08-05
|
4
|
+
- Add `read_all` method
|
5
|
+
- Change `with_unit` option to `units` or `unit` option.
|
6
|
+
- Add `keys` option for return hash instead of array when retrieve multiple keys
|
7
|
+
- Change development console from pry to irb
|
8
|
+
|
3
9
|
## [0.0.4] - 2023-01-25
|
4
10
|
- Add more meter metrics
|
5
11
|
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,22 +1,17 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
huawei_solar (0.0.
|
4
|
+
huawei_solar (0.0.5)
|
5
5
|
rmodbus (~> 1.3.3)
|
6
6
|
|
7
7
|
GEM
|
8
8
|
remote: https://rubygems.org/
|
9
9
|
specs:
|
10
10
|
ast (2.4.2)
|
11
|
-
coderay (1.1.3)
|
12
|
-
method_source (1.0.0)
|
13
11
|
minitest (5.15.0)
|
14
12
|
parallel (1.22.1)
|
15
13
|
parser (3.1.1.0)
|
16
14
|
ast (~> 2.4.1)
|
17
|
-
pry (0.14.1)
|
18
|
-
coderay (~> 1.1)
|
19
|
-
method_source (~> 1.0)
|
20
15
|
rainbow (3.1.1)
|
21
16
|
rake (13.0.6)
|
22
17
|
regexp_parser (2.2.1)
|
@@ -42,12 +37,12 @@ GEM
|
|
42
37
|
|
43
38
|
PLATFORMS
|
44
39
|
arm64-darwin-21
|
40
|
+
arm64-darwin-22
|
45
41
|
x86_64-linux
|
46
42
|
|
47
43
|
DEPENDENCIES
|
48
44
|
huawei_solar!
|
49
45
|
minitest (~> 5.0)
|
50
|
-
pry (~> 0.14)
|
51
46
|
rake (~> 13.0)
|
52
47
|
rubocop (~> 1.21)
|
53
48
|
rubocop-minitest (~> 0.19)
|
data/README.md
CHANGED
@@ -19,14 +19,26 @@ hs = HuaweiSolar.new("192.168.0.110", 502)
|
|
19
19
|
|
20
20
|
hs.read(:inverter_model) # => "SUN2000-3.68KTL-L1"
|
21
21
|
hs.read(:inverter_input_power) # => 234.0
|
22
|
-
hs.read(:inverter_input_power,
|
22
|
+
hs.read(:inverter_input_power, unit: true) # => "234.0 W"
|
23
23
|
|
24
24
|
hs.read(%i[inverter_output_power inverter_daily_energy meter_grid_power])
|
25
25
|
# => [225.0, 5.82, -339.0]
|
26
26
|
|
27
|
-
hs.read(%i[inverter_output_power inverter_daily_energy meter_grid_power],
|
27
|
+
hs.read(%i[inverter_output_power inverter_daily_energy meter_grid_power], units: true)
|
28
28
|
# => ["225.0 W", "5.82 kWh", "-339.0 W"]
|
29
29
|
|
30
|
+
hs.read(%i[inverter_output_power inverter_daily_energy meter_grid_power], units: true, keys: true)
|
31
|
+
# => {:inverter_output_power=>"606.0 W", :inverter_daily_energy=>"15.15 kWh", :meter_grid_power=>"353.0 W"}
|
32
|
+
|
33
|
+
hs.read_all
|
34
|
+
# => ["SUN2000-3.68KTL-L1", "XXXXXXXX", 2, 224.8, 3.08, ..]
|
35
|
+
|
36
|
+
hs.read_all(units: true)
|
37
|
+
# => ["SUN2000-3.68KTL-L1", "XXXXXXXX", 2, "224.8 V", "3.08 A", ..]
|
38
|
+
|
39
|
+
hs.read_all(keys: true)
|
40
|
+
# => { "inverter_model"=>"SUN2000-3.68KTL-L1", "inverter_serial_number"=>"XXXXXXXX", "inverter_pv_strings"=>2, ... }
|
41
|
+
|
30
42
|
hs.close
|
31
43
|
```
|
32
44
|
|
data/lib/huawei_solar/version.rb
CHANGED
data/lib/huawei_solar.rb
CHANGED
@@ -12,8 +12,12 @@ class HuaweiSolar
|
|
12
12
|
@registers = YAML.load_file(File.expand_path("../data/registers.yml", __dir__))
|
13
13
|
end
|
14
14
|
|
15
|
-
def read(name,
|
16
|
-
name.is_a?(Array) ? read_multiple(name,
|
15
|
+
def read(name, **options)
|
16
|
+
name.is_a?(Array) ? read_multiple(name, **options) : read_single(name, **options)
|
17
|
+
end
|
18
|
+
|
19
|
+
def read_all(**options)
|
20
|
+
read_multiple(@registers.keys, **options)
|
17
21
|
end
|
18
22
|
|
19
23
|
def close
|
@@ -22,7 +26,7 @@ class HuaweiSolar
|
|
22
26
|
|
23
27
|
private
|
24
28
|
|
25
|
-
def read_single(name,
|
29
|
+
def read_single(name, **options) # rubocop:disable Metrics/AbcSize
|
26
30
|
register = register_by_name(name)
|
27
31
|
type = find_type(register["type"])
|
28
32
|
gain = register["gain"]
|
@@ -35,11 +39,15 @@ class HuaweiSolar
|
|
35
39
|
value = value.is_a?(Array) && value.size == 1 ? value.first : value
|
36
40
|
value = gain ? value / (gain * 1.0) : value
|
37
41
|
|
38
|
-
|
42
|
+
(options[:units] || options[:unit]) && !unit.nil? ? "#{value} #{unit}" : value
|
39
43
|
end
|
40
44
|
|
41
|
-
def read_multiple(names,
|
42
|
-
|
45
|
+
def read_multiple(names, **options)
|
46
|
+
if options[:keys]
|
47
|
+
names.to_h { |name| [name, read_single(name, **options)] }
|
48
|
+
else
|
49
|
+
names.map { |name| read_single(name, **options) }
|
50
|
+
end
|
43
51
|
end
|
44
52
|
|
45
53
|
def register_by_name(name)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: huawei_solar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Javier Aranda
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-08-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rmodbus
|
@@ -26,7 +26,7 @@ dependencies:
|
|
26
26
|
version: 1.3.3
|
27
27
|
description:
|
28
28
|
email:
|
29
|
-
-
|
29
|
+
- aranda@hey.com
|
30
30
|
executables: []
|
31
31
|
extensions: []
|
32
32
|
extra_rdoc_files:
|
@@ -35,7 +35,7 @@ extra_rdoc_files:
|
|
35
35
|
files:
|
36
36
|
- ".editorconfig"
|
37
37
|
- ".envrc"
|
38
|
-
- ".
|
38
|
+
- ".irbrc"
|
39
39
|
- ".rubocop.yml"
|
40
40
|
- ".tool-versions"
|
41
41
|
- CHANGELOG.md
|
@@ -58,8 +58,8 @@ licenses:
|
|
58
58
|
- MIT
|
59
59
|
metadata:
|
60
60
|
homepage_uri: https://github.com/javierav/huawei_solar
|
61
|
-
source_code_uri: https://github.com/javierav/huawei_solar/tree/v0.0.
|
62
|
-
changelog_uri: https://github.com/javierav/huawei_solar/blob/v0.0.
|
61
|
+
source_code_uri: https://github.com/javierav/huawei_solar/tree/v0.0.5
|
62
|
+
changelog_uri: https://github.com/javierav/huawei_solar/blob/v0.0.5/CHANGELOG.md
|
63
63
|
rubygems_mfa_required: 'true'
|
64
64
|
post_install_message:
|
65
65
|
rdoc_options:
|
@@ -77,7 +77,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
77
77
|
- !ruby/object:Gem::Version
|
78
78
|
version: '0'
|
79
79
|
requirements: []
|
80
|
-
rubygems_version: 3.
|
80
|
+
rubygems_version: 3.4.10
|
81
81
|
signing_key:
|
82
82
|
specification_version: 4
|
83
83
|
summary: A library for connect to Huawei Solar inverters using Modbus TCP
|
data/.pryrc
DELETED