senec 0.8.0 → 0.9.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 +5 -4
- data/lib/senec/request.rb +5 -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: c99082ac76970b9dd8c23b3d847c329bae0a1499108cb4da23cc6890db0799c1
|
4
|
+
data.tar.gz: 2a7b3fd24ec219b64ad3345745d3dbe783293327849bf225356d63b3b02a1ca8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 046047abcc8df94341e6da4e1209bd828045a93c0d64f4970b49fdffa41afd88c815194b64372ceee09cacf30dbdacdd12be36a6d6d0bdf40a6b5a8f04a367c7
|
7
|
+
data.tar.gz: 4620d56810a324f10a9a14607afb35f198e6275c77eea18d41aa5ee1339ce0f97e207ba82a5f9d12636bcaacef8709e273dcd8dc1f524bf9b0ea2825b8a06421
|
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,10 @@ module Senec
|
|
16
13
|
GUI_INVERTER_POWER: '', # PV production (W)
|
17
14
|
STAT_HOURS_OF_OPERATION: '' # Appliance hours of operation
|
18
15
|
},
|
16
|
+
RTC: {
|
17
|
+
UTC_OFFSET: '',
|
18
|
+
WEB_TIME: ''
|
19
|
+
},
|
19
20
|
PV1: {
|
20
21
|
MPP_POWER: '' # List: MPP power (W)
|
21
22
|
},
|
data/lib/senec/request.rb
CHANGED
@@ -53,7 +53,7 @@ module Senec
|
|
53
53
|
end
|
54
54
|
|
55
55
|
def current_state
|
56
|
-
get('
|
56
|
+
get('ENERGY', 'STAT_STATE')
|
57
57
|
end
|
58
58
|
|
59
59
|
def current_state_name
|
@@ -63,7 +63,10 @@ module Senec
|
|
63
63
|
end
|
64
64
|
|
65
65
|
def measure_time
|
66
|
-
get('
|
66
|
+
web_time = get('RTC', 'WEB_TIME')
|
67
|
+
utc_offset = get('RTC', 'UTC_OFFSET')
|
68
|
+
|
69
|
+
web_time - (utc_offset * 60)
|
67
70
|
end
|
68
71
|
|
69
72
|
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.9.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-18 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
|