senec 0.8.0 → 0.10.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/senec/constants.rb +8 -4
- data/lib/senec/request.rb +9 -2
- data/lib/senec/value.rb +13 -7
- data/lib/senec/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 527ddd13c38f45eca03b8318f29222d8f4f2fc1d3c34139f1f0642cb10a7db1a
|
4
|
+
data.tar.gz: c277e0d2dd6f68ac0b02f77d36ff3b9dd0bee46206a902c189a1b715975d3c5c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e2013e5206c4ef197828440d7fc3549cfce2b4254b0e22c936edf288e00a7a19e4cec246b9a49f4b19c1979104603bb5f56e7fddf70261153f7c933b94f1c668
|
7
|
+
data.tar.gz: 6d0f15867763036a3edead7450fcfd8a27a3ea5d3a278cbb9960d7225e7d5226bd21d003d83417aa3eee8908f82ae8036437f7aec81f224dd3f085dd0f2623fe
|
data/lib/senec/constants.rb
CHANGED
@@ -2,11 +2,8 @@ module Senec
|
|
2
2
|
# For a full list of available vars, see http://[IP-of-your-SENEC]/vars.html
|
3
3
|
# Comments taken from https://gist.github.com/smashnet/82ad0b9d7f0ba2e5098e6649ba08f88a
|
4
4
|
BASIC_REQUEST = {
|
5
|
-
STATISTIC: {
|
6
|
-
CURRENT_STATE: '', # Current state of the system (int, see SYSTEM_STATE_NAME)
|
7
|
-
MEASURE_TIME: '' # Unix timestamp for above values (ms)
|
8
|
-
},
|
9
5
|
ENERGY: {
|
6
|
+
STAT_STATE: '', # Current state of the system (int, see SYSTEM_STATE_NAME)
|
10
7
|
GUI_BAT_DATA_CURRENT: '', # Battery charge current: negative if discharging, positiv if charging (A)
|
11
8
|
GUI_BAT_DATA_FUEL_CHARGE: '', # Remaining battery (percent)
|
12
9
|
GUI_BAT_DATA_POWER: '', # Battery charge power: negative if discharging, positiv if charging (W)
|
@@ -16,6 +13,13 @@ module Senec
|
|
16
13
|
GUI_INVERTER_POWER: '', # PV production (W)
|
17
14
|
STAT_HOURS_OF_OPERATION: '' # Appliance hours of operation
|
18
15
|
},
|
16
|
+
WIZARD: {
|
17
|
+
APPLICATION_VERSION: ''
|
18
|
+
},
|
19
|
+
RTC: {
|
20
|
+
UTC_OFFSET: '',
|
21
|
+
WEB_TIME: ''
|
22
|
+
},
|
19
23
|
PV1: {
|
20
24
|
MPP_POWER: '' # List: MPP power (W)
|
21
25
|
},
|
data/lib/senec/request.rb
CHANGED
@@ -52,8 +52,12 @@ module Senec
|
|
52
52
|
get('TEMPMEASURE', 'CASE_TEMP')
|
53
53
|
end
|
54
54
|
|
55
|
+
def application_version
|
56
|
+
get('WIZARD', 'APPLICATION_VERSION')
|
57
|
+
end
|
58
|
+
|
55
59
|
def current_state
|
56
|
-
get('
|
60
|
+
get('ENERGY', 'STAT_STATE')
|
57
61
|
end
|
58
62
|
|
59
63
|
def current_state_name
|
@@ -63,7 +67,10 @@ module Senec
|
|
63
67
|
end
|
64
68
|
|
65
69
|
def measure_time
|
66
|
-
get('
|
70
|
+
web_time = get('RTC', 'WEB_TIME')
|
71
|
+
utc_offset = get('RTC', 'UTC_OFFSET')
|
72
|
+
|
73
|
+
web_time - (utc_offset * 60)
|
67
74
|
end
|
68
75
|
|
69
76
|
private
|
data/lib/senec/value.rb
CHANGED
@@ -1,14 +1,17 @@
|
|
1
1
|
module Senec
|
2
2
|
class Value
|
3
|
-
def initialize(
|
4
|
-
@
|
3
|
+
def initialize(raw)
|
4
|
+
@raw = raw
|
5
|
+
@prefix, @value = raw&.split('_')
|
5
6
|
end
|
6
7
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
8
|
+
attr_reader :prefix, :value, :raw
|
9
|
+
|
10
|
+
def valid?
|
11
|
+
prefix && PREFIXES.include?(prefix)
|
12
|
+
end
|
11
13
|
|
14
|
+
def decoded
|
12
15
|
case prefix
|
13
16
|
when 'fl'
|
14
17
|
decoded_float(value)
|
@@ -18,7 +21,7 @@ module Senec
|
|
18
21
|
value
|
19
22
|
# TODO: There are some more prefixes to handle
|
20
23
|
else
|
21
|
-
raise Senec::DecodingError, "Unknown value '#{@
|
24
|
+
raise Senec::DecodingError, "Unknown value '#{@raw}'"
|
22
25
|
end
|
23
26
|
end
|
24
27
|
|
@@ -28,6 +31,9 @@ module Senec
|
|
28
31
|
|
29
32
|
private
|
30
33
|
|
34
|
+
PREFIXES = %w[fl i3 u1 u3 u6 u8 st].freeze
|
35
|
+
private_constant :PREFIXES
|
36
|
+
|
31
37
|
def decoded_float(hex)
|
32
38
|
["0x#{hex}".to_i(16)].pack('L').unpack1('F').round(1)
|
33
39
|
end
|
data/lib/senec/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: senec
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.10.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Georg Ledermann
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-08-
|
11
|
+
date: 2023-08-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|
@@ -73,7 +73,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
73
73
|
- !ruby/object:Gem::Version
|
74
74
|
version: '0'
|
75
75
|
requirements: []
|
76
|
-
rubygems_version: 3.4.
|
76
|
+
rubygems_version: 3.4.19
|
77
77
|
signing_key:
|
78
78
|
specification_version: 4
|
79
79
|
summary: Unofficial Ruby Client for SENEC Home
|