senec 0.18.0 → 0.19.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.
Files changed (82) hide show
  1. checksums.yaml +4 -4
  2. data/.DS_Store +0 -0
  3. data/.env +6 -0
  4. data/.env.test +1 -1
  5. data/.gitignore +13 -0
  6. data/.rspec_status +69 -0
  7. data/.rubocop.yml +1 -1
  8. data/.ruby-lsp/.gitignore +1 -0
  9. data/.ruby-lsp/Gemfile +6 -0
  10. data/.ruby-lsp/Gemfile.lock +170 -0
  11. data/.ruby-lsp/main_lockfile_hash +1 -0
  12. data/.ruby-lsp/needs_update +0 -0
  13. data/README.md +50 -79
  14. data/coverage/.last_run.json +5 -0
  15. data/coverage/.resultset.json +1367 -0
  16. data/coverage/.resultset.json.lock +0 -0
  17. data/coverage/assets/0.13.2/DataTables-1.10.20/images/sort_asc.png +0 -0
  18. data/coverage/assets/0.13.2/DataTables-1.10.20/images/sort_asc_disabled.png +0 -0
  19. data/coverage/assets/0.13.2/DataTables-1.10.20/images/sort_both.png +0 -0
  20. data/coverage/assets/0.13.2/DataTables-1.10.20/images/sort_desc.png +0 -0
  21. data/coverage/assets/0.13.2/DataTables-1.10.20/images/sort_desc_disabled.png +0 -0
  22. data/coverage/assets/0.13.2/application.css +1 -0
  23. data/coverage/assets/0.13.2/application.js +7 -0
  24. data/coverage/assets/0.13.2/colorbox/border.png +0 -0
  25. data/coverage/assets/0.13.2/colorbox/controls.png +0 -0
  26. data/coverage/assets/0.13.2/colorbox/loading.gif +0 -0
  27. data/coverage/assets/0.13.2/colorbox/loading_background.png +0 -0
  28. data/coverage/assets/0.13.2/favicon_green.png +0 -0
  29. data/coverage/assets/0.13.2/favicon_red.png +0 -0
  30. data/coverage/assets/0.13.2/favicon_yellow.png +0 -0
  31. data/coverage/assets/0.13.2/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  32. data/coverage/assets/0.13.2/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  33. data/coverage/assets/0.13.2/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  34. data/coverage/assets/0.13.2/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  35. data/coverage/assets/0.13.2/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  36. data/coverage/assets/0.13.2/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  37. data/coverage/assets/0.13.2/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  38. data/coverage/assets/0.13.2/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  39. data/coverage/assets/0.13.2/images/ui-icons_222222_256x240.png +0 -0
  40. data/coverage/assets/0.13.2/images/ui-icons_2e83ff_256x240.png +0 -0
  41. data/coverage/assets/0.13.2/images/ui-icons_454545_256x240.png +0 -0
  42. data/coverage/assets/0.13.2/images/ui-icons_888888_256x240.png +0 -0
  43. data/coverage/assets/0.13.2/images/ui-icons_cd0a0a_256x240.png +0 -0
  44. data/coverage/assets/0.13.2/loading.gif +0 -0
  45. data/coverage/assets/0.13.2/magnify.png +0 -0
  46. data/coverage/coverage.json +1368 -0
  47. data/coverage/index.html +15044 -0
  48. data/lib/.DS_Store +0 -0
  49. data/lib/senec/cloud/connection.rb +96 -39
  50. data/lib/senec/cloud/error.rb +0 -6
  51. data/lib/senec/cloud/stats_overview.rb +52 -0
  52. data/lib/senec/cloud/wallboxes.rb +52 -0
  53. data/lib/senec/local/request.rb +1 -1
  54. data/lib/senec/local/state.rb +1 -0
  55. data/lib/senec/version.rb +1 -1
  56. data/lib/senec.rb +2 -2
  57. data/pkg/senec-0.1.0.gem +0 -0
  58. data/pkg/senec-0.10.0.gem +0 -0
  59. data/pkg/senec-0.11.0.gem +0 -0
  60. data/pkg/senec-0.12.0.gem +0 -0
  61. data/pkg/senec-0.13.0.gem +0 -0
  62. data/pkg/senec-0.14.0.gem +0 -0
  63. data/pkg/senec-0.15.0.gem +0 -0
  64. data/pkg/senec-0.17.0.gem +0 -0
  65. data/pkg/senec-0.17.1.gem +0 -0
  66. data/pkg/senec-0.17.2.gem +0 -0
  67. data/pkg/senec-0.18.0.gem +0 -0
  68. data/pkg/senec-0.2.0.gem +0 -0
  69. data/pkg/senec-0.3.0.gem +0 -0
  70. data/pkg/senec-0.4.0.gem +0 -0
  71. data/pkg/senec-0.5.0.gem +0 -0
  72. data/pkg/senec-0.6.0.gem +0 -0
  73. data/pkg/senec-0.6.1.gem +0 -0
  74. data/pkg/senec-0.6.2.gem +0 -0
  75. data/pkg/senec-0.7.0.gem +0 -0
  76. data/pkg/senec-0.7.1.gem +0 -0
  77. data/pkg/senec-0.7.2.gem +0 -0
  78. data/pkg/senec-0.8.0.gem +0 -0
  79. data/pkg/senec-0.9.0.gem +0 -0
  80. metadata +72 -5
  81. data/lib/senec/cloud/dashboard.rb +0 -80
  82. data/lib/senec/cloud/technical_data.rb +0 -69
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a6af14cd79b5176290de5c80e492c31a4e0891770b720fd5017b2b830898838b
4
- data.tar.gz: 59477e8b56dea17973fa2e1e7e05e4266d67172f9be54375c120fdd2bbca885a
3
+ metadata.gz: 8c81bf0bc96f0b9999439a9bf71b3fa8a9c5f800da863993c88f283dbdb38789
4
+ data.tar.gz: 1e937cb44485d678cc2253471d034704fa719d83bb6b654e2321db0a78ecf41e
5
5
  SHA512:
6
- metadata.gz: 19c4f8ae182ef21edaf0e07d62fda3ad45640ac43018c19af26dd125b34987981497f6adade28dcf31e873566fff63f82e5a83639813a1406a8fc0831c81fc8f
7
- data.tar.gz: 3bac421adcf8eca7f5f07bdf4ef2a4a5deba0515058cb630f9797cf3c0b64c674123685ba4441c7c0404b097961872a0a730d1d1a5165003c217bbd85ee8912d
6
+ metadata.gz: 18ee7b975cc280a168e5bd9ca2bb9e334d7413f91efdee5f5de1aaf8d33fd5729ef36e0c32fc61c6f83d3460bf7428d48ca306cb258a469291caf2305fa612f3
7
+ data.tar.gz: f24b264fe9f0600e25e218531e27ad39f99fb712bf587951b7cbc9b4f54ea0ad47472611ca5b4017778f882e772b008699f324e360c73b5b086924c2e7e642e5
data/.DS_Store ADDED
Binary file
data/.env ADDED
@@ -0,0 +1,6 @@
1
+ SENEC_USERNAME=georg@ledermann.dev
2
+ SENEC_PASSWORD=g75rnww3y
3
+ SENEC_SYSTEM_ID=0
4
+
5
+ SENEC_HOST=senec
6
+ SENEC_SCHEMA=https
data/.env.test CHANGED
@@ -1,6 +1,6 @@
1
1
  SENEC_USERNAME=mail@example.com
2
2
  SENEC_PASSWORD=topsecret
3
- SENEC_SYSTEM_ID=123456
3
+ SENEC_SYSTEM_ID=0
4
4
 
5
5
  SENEC_HOST=senec
6
6
  SENEC_SCHEMA=https
data/.gitignore ADDED
@@ -0,0 +1,13 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /_yardoc/
4
+ /coverage/
5
+ /doc/
6
+ /pkg/
7
+ /spec/reports/
8
+ /tmp/
9
+ .env
10
+
11
+ # rspec failure tracking
12
+ .rspec_status
13
+ Gemfile.lock
data/.rspec_status ADDED
@@ -0,0 +1,69 @@
1
+ example_id | status | run_time |
2
+ ------------------------------------------------------ | ------ | --------------- |
3
+ ./spec/lib/senec/cloud/connection_spec.rb[1:1:1:1] | passed | 0.01205 seconds |
4
+ ./spec/lib/senec/cloud/connection_spec.rb[1:1:2:1] | passed | 0.00345 seconds |
5
+ ./spec/lib/senec/cloud/stats_overview_spec.rb[1:1:1] | passed | 0.00109 seconds |
6
+ ./spec/lib/senec/cloud/stats_overview_spec.rb[1:1:2] | passed | 0.00036 seconds |
7
+ ./spec/lib/senec/cloud/stats_overview_spec.rb[1:2:1:1] | passed | 0.0088 seconds |
8
+ ./spec/lib/senec/cloud/stats_overview_spec.rb[1:2:1:2] | passed | 0.01001 seconds |
9
+ ./spec/lib/senec/cloud/stats_overview_spec.rb[1:2:1:3] | passed | 0.01061 seconds |
10
+ ./spec/lib/senec/cloud/stats_overview_spec.rb[1:2:1:4] | passed | 0.0072 seconds |
11
+ ./spec/lib/senec/cloud/stats_overview_spec.rb[1:2:1:5] | passed | 0.00686 seconds |
12
+ ./spec/lib/senec/cloud/wallboxes_spec.rb[1:1:1] | passed | 0.0003 seconds |
13
+ ./spec/lib/senec/cloud/wallboxes_spec.rb[1:1:2] | passed | 0.00004 seconds |
14
+ ./spec/lib/senec/cloud/wallboxes_spec.rb[1:1:3] | passed | 0.00023 seconds |
15
+ ./spec/lib/senec/cloud/wallboxes_spec.rb[1:1:4] | passed | 0.00063 seconds |
16
+ ./spec/lib/senec/cloud/wallboxes_spec.rb[1:2:1:1] | passed | 0.00688 seconds |
17
+ ./spec/lib/senec/cloud/wallboxes_spec.rb[1:2:1:2] | passed | 0.00804 seconds |
18
+ ./spec/lib/senec/cloud/wallboxes_spec.rb[1:2:1:3] | passed | 0.00888 seconds |
19
+ ./spec/lib/senec/cloud/wallboxes_spec.rb[1:2:2:1] | passed | 0.00021 seconds |
20
+ ./spec/lib/senec/cloud/wallboxes_spec.rb[1:2:2:2] | passed | 0.00662 seconds |
21
+ ./spec/lib/senec/cloud/wallboxes_spec.rb[1:2:3:1] | passed | 0.00627 seconds |
22
+ ./spec/lib/senec/local/request_spec.rb[1:1:1:1] | passed | 0.00106 seconds |
23
+ ./spec/lib/senec/local/request_spec.rb[1:1:2:1] | passed | 0.00071 seconds |
24
+ ./spec/lib/senec/local/request_spec.rb[1:1:3:1] | passed | 0.00062 seconds |
25
+ ./spec/lib/senec/local/request_spec.rb[1:1:4:1] | passed | 0.00063 seconds |
26
+ ./spec/lib/senec/local/request_spec.rb[1:1:5:1] | passed | 0.00072 seconds |
27
+ ./spec/lib/senec/local/request_spec.rb[1:1:6:1] | passed | 0.00058 seconds |
28
+ ./spec/lib/senec/local/request_spec.rb[1:1:7:1] | passed | 0.00057 seconds |
29
+ ./spec/lib/senec/local/request_spec.rb[1:1:8:1] | passed | 0.00064 seconds |
30
+ ./spec/lib/senec/local/request_spec.rb[1:1:9:1] | passed | 0.00062 seconds |
31
+ ./spec/lib/senec/local/request_spec.rb[1:1:10:1] | passed | 0.00062 seconds |
32
+ ./spec/lib/senec/local/request_spec.rb[1:1:11:1] | passed | 0.00342 seconds |
33
+ ./spec/lib/senec/local/request_spec.rb[1:1:12:1] | passed | 0.00089 seconds |
34
+ ./spec/lib/senec/local/request_spec.rb[1:1:13:1] | passed | 0.0008 seconds |
35
+ ./spec/lib/senec/local/request_spec.rb[1:1:14:1] | passed | 0.00082 seconds |
36
+ ./spec/lib/senec/local/request_spec.rb[1:1:14:2] | passed | 0.00092 seconds |
37
+ ./spec/lib/senec/local/request_spec.rb[1:1:15:1] | passed | 0.00084 seconds |
38
+ ./spec/lib/senec/local/request_spec.rb[1:1:16:1] | passed | 0.001 seconds |
39
+ ./spec/lib/senec/local/request_spec.rb[1:1:17:1] | passed | 0.00166 seconds |
40
+ ./spec/lib/senec/local/request_spec.rb[1:2:1] | passed | 0.01896 seconds |
41
+ ./spec/lib/senec/local/request_spec.rb[1:3:1] | passed | 0.00842 seconds |
42
+ ./spec/lib/senec/local/request_spec.rb[1:4:1] | passed | 0.00175 seconds |
43
+ ./spec/lib/senec/local/request_spec.rb[1:5:1:1] | passed | 0.00123 seconds |
44
+ ./spec/lib/senec/local/request_spec.rb[1:6:1:1] | passed | 0.00093 seconds |
45
+ ./spec/lib/senec/local/request_spec.rb[1:7:1:1:1] | passed | 0.00088 seconds |
46
+ ./spec/lib/senec/local/request_spec.rb[1:7:1:2:1] | passed | 0.00056 seconds |
47
+ ./spec/lib/senec/local/request_spec.rb[1:7:1:3:1] | passed | 0.0051 seconds |
48
+ ./spec/lib/senec/local/state_spec.rb[1:1:1:1] | passed | 0.0059 seconds |
49
+ ./spec/lib/senec/local/state_spec.rb[1:1:2:1] | passed | 0.00488 seconds |
50
+ ./spec/lib/senec/local/state_spec.rb[1:1:3:1] | passed | 0.00462 seconds |
51
+ ./spec/lib/senec/local/state_spec.rb[1:1:4:1] | passed | 0.00491 seconds |
52
+ ./spec/lib/senec/local/state_spec.rb[1:1:5:1] | passed | 0.00008 seconds |
53
+ ./spec/lib/senec/local/value_spec.rb[1:1:1:1] | passed | 0.00006 seconds |
54
+ ./spec/lib/senec/local/value_spec.rb[1:1:1:2] | passed | 0.00007 seconds |
55
+ ./spec/lib/senec/local/value_spec.rb[1:1:2:1] | passed | 0.00015 seconds |
56
+ ./spec/lib/senec/local/value_spec.rb[1:1:2:2] | passed | 0.00004 seconds |
57
+ ./spec/lib/senec/local/value_spec.rb[1:1:3:1] | passed | 0.00004 seconds |
58
+ ./spec/lib/senec/local/value_spec.rb[1:1:3:2] | passed | 0.00003 seconds |
59
+ ./spec/lib/senec/local/value_spec.rb[1:1:4:1] | passed | 0.00004 seconds |
60
+ ./spec/lib/senec/local/value_spec.rb[1:1:4:2] | passed | 0.00003 seconds |
61
+ ./spec/lib/senec/local/value_spec.rb[1:1:5:1] | passed | 0.00004 seconds |
62
+ ./spec/lib/senec/local/value_spec.rb[1:1:5:2] | passed | 0.00004 seconds |
63
+ ./spec/lib/senec/local/value_spec.rb[1:1:6:1] | passed | 0.00003 seconds |
64
+ ./spec/lib/senec/local/value_spec.rb[1:1:6:2] | passed | 0.00004 seconds |
65
+ ./spec/lib/senec/local/value_spec.rb[1:1:7:1] | passed | 0.00004 seconds |
66
+ ./spec/lib/senec/local/value_spec.rb[1:1:7:2] | passed | 0.00003 seconds |
67
+ ./spec/lib/senec/local/value_spec.rb[1:1:8:1] | passed | 0.00005 seconds |
68
+ ./spec/lib/senec/local/value_spec.rb[1:1:9:1] | passed | 0.00005 seconds |
69
+ ./spec/senec_spec.rb[1:1] | passed | 0.00004 seconds |
data/.rubocop.yml CHANGED
@@ -1,4 +1,4 @@
1
- require:
1
+ plugins:
2
2
  - rubocop-performance
3
3
  - rubocop-rspec
4
4
  - rubocop-rake
@@ -0,0 +1 @@
1
+ *
data/.ruby-lsp/Gemfile ADDED
@@ -0,0 +1,6 @@
1
+ # This custom gemfile is automatically generated by the Ruby LSP.
2
+ # It should be automatically git ignored, but in any case: do not commit it to your repository.
3
+
4
+ eval_gemfile(File.expand_path("../Gemfile", __dir__))
5
+ gem "ruby-lsp", require: false, group: :development
6
+ gem "debug", require: false, group: :development, platforms: :mri
@@ -0,0 +1,170 @@
1
+ PATH
2
+ remote: ..
3
+ specs:
4
+ senec (0.19.0)
5
+ faraday
6
+ faraday-net_http_persistent
7
+ faraday-request-timer
8
+
9
+ GEM
10
+ remote: https://rubygems.org/
11
+ specs:
12
+ addressable (2.8.7)
13
+ public_suffix (>= 2.0.2, < 7.0)
14
+ ast (2.4.3)
15
+ base64 (0.3.0)
16
+ bigdecimal (3.2.2)
17
+ connection_pool (2.5.3)
18
+ crack (1.0.0)
19
+ bigdecimal
20
+ rexml
21
+ date (3.4.1)
22
+ debug (1.11.0)
23
+ irb (~> 1.10)
24
+ reline (>= 0.3.8)
25
+ diff-lcs (1.6.2)
26
+ docile (1.4.1)
27
+ dotenv (3.1.8)
28
+ erb (5.0.2)
29
+ faraday (2.13.3)
30
+ faraday-net_http (>= 2.0, < 3.5)
31
+ json
32
+ logger
33
+ faraday-net_http (3.4.1)
34
+ net-http (>= 0.5.0)
35
+ faraday-net_http_persistent (2.3.1)
36
+ faraday (~> 2.5)
37
+ net-http-persistent (>= 4.0.4, < 5)
38
+ faraday-request-timer (0.2.0)
39
+ faraday (>= 0.9.0)
40
+ hashdiff (1.2.0)
41
+ io-console (0.8.1)
42
+ irb (1.15.2)
43
+ pp (>= 0.6.0)
44
+ rdoc (>= 4.0.0)
45
+ reline (>= 0.4.2)
46
+ json (2.13.0)
47
+ language_server-protocol (3.17.0.5)
48
+ lint_roller (1.1.0)
49
+ logger (1.7.0)
50
+ net-http (0.6.0)
51
+ uri
52
+ net-http-persistent (4.0.6)
53
+ connection_pool (~> 2.2, >= 2.2.4)
54
+ parallel (1.27.0)
55
+ parser (3.3.8.0)
56
+ ast (~> 2.4.1)
57
+ racc
58
+ pp (0.6.2)
59
+ prettyprint
60
+ prettyprint (0.2.0)
61
+ prism (1.4.0)
62
+ psych (5.2.6)
63
+ date
64
+ stringio
65
+ public_suffix (6.0.2)
66
+ racc (1.8.1)
67
+ rainbow (3.1.1)
68
+ rake (13.3.0)
69
+ rbs (3.9.4)
70
+ logger
71
+ rdoc (6.14.2)
72
+ erb
73
+ psych (>= 4.0.0)
74
+ regexp_parser (2.10.0)
75
+ reline (0.6.2)
76
+ io-console (~> 0.5)
77
+ rexml (3.4.1)
78
+ rspec (3.13.1)
79
+ rspec-core (~> 3.13.0)
80
+ rspec-expectations (~> 3.13.0)
81
+ rspec-mocks (~> 3.13.0)
82
+ rspec-core (3.13.5)
83
+ rspec-support (~> 3.13.0)
84
+ rspec-expectations (3.13.5)
85
+ diff-lcs (>= 1.2.0, < 2.0)
86
+ rspec-support (~> 3.13.0)
87
+ rspec-mocks (3.13.5)
88
+ diff-lcs (>= 1.2.0, < 2.0)
89
+ rspec-support (~> 3.13.0)
90
+ rspec-support (3.13.4)
91
+ rubocop (1.78.0)
92
+ json (~> 2.3)
93
+ language_server-protocol (~> 3.17.0.2)
94
+ lint_roller (~> 1.1.0)
95
+ parallel (~> 1.10)
96
+ parser (>= 3.3.0.2)
97
+ rainbow (>= 2.2.2, < 4.0)
98
+ regexp_parser (>= 2.9.3, < 3.0)
99
+ rubocop-ast (>= 1.45.1, < 2.0)
100
+ ruby-progressbar (~> 1.7)
101
+ unicode-display_width (>= 2.4.0, < 4.0)
102
+ rubocop-ast (1.46.0)
103
+ parser (>= 3.3.7.2)
104
+ prism (~> 1.4)
105
+ rubocop-performance (1.25.0)
106
+ lint_roller (~> 1.1)
107
+ rubocop (>= 1.75.0, < 2.0)
108
+ rubocop-ast (>= 1.38.0, < 2.0)
109
+ rubocop-rake (0.7.1)
110
+ lint_roller (~> 1.1)
111
+ rubocop (>= 1.72.1)
112
+ rubocop-rspec (3.6.0)
113
+ lint_roller (~> 1.1)
114
+ rubocop (~> 1.72, >= 1.72.1)
115
+ rubocop-thread_safety (0.7.3)
116
+ lint_roller (~> 1.1)
117
+ rubocop (~> 1.72, >= 1.72.1)
118
+ rubocop-ast (>= 1.44.0, < 2.0)
119
+ ruby-lsp (0.26.1)
120
+ language_server-protocol (~> 3.17.0)
121
+ prism (>= 1.2, < 2.0)
122
+ rbs (>= 3, < 5)
123
+ ruby-progressbar (1.13.0)
124
+ simplecov (0.22.0)
125
+ docile (~> 1.1)
126
+ simplecov-html (~> 0.11)
127
+ simplecov_json_formatter (~> 0.1)
128
+ simplecov-html (0.13.2)
129
+ simplecov_json_formatter (0.1.4)
130
+ stringio (3.1.7)
131
+ unicode-display_width (3.1.4)
132
+ unicode-emoji (~> 4.0, >= 4.0.4)
133
+ unicode-emoji (4.0.4)
134
+ uri (1.0.3)
135
+ vcr (6.3.1)
136
+ base64
137
+ webmock (3.25.1)
138
+ addressable (>= 2.8.0)
139
+ crack (>= 0.3.2)
140
+ hashdiff (>= 0.4.0, < 2.0.0)
141
+
142
+ PLATFORMS
143
+ arm64-darwin-21
144
+ arm64-darwin-22
145
+ arm64-darwin-23
146
+ arm64-darwin-24
147
+ x86_64-darwin-20
148
+
149
+ DEPENDENCIES
150
+ base64
151
+ bigdecimal
152
+ debug
153
+ dotenv
154
+ irb
155
+ rake
156
+ rdoc
157
+ rspec
158
+ rubocop
159
+ rubocop-performance
160
+ rubocop-rake
161
+ rubocop-rspec
162
+ rubocop-thread_safety
163
+ ruby-lsp
164
+ senec!
165
+ simplecov
166
+ vcr
167
+ webmock
168
+
169
+ BUNDLED WITH
170
+ 2.7.1
@@ -0,0 +1 @@
1
+ 8153269239a500b4008859350acabed4f88d9cf1d06554b279dc100a09392858
File without changes
data/README.md CHANGED
@@ -1,11 +1,11 @@
1
1
  [![Continuous integration](https://github.com/solectrus/senec/actions/workflows/push.yml/badge.svg)](https://github.com/solectrus/senec/actions/workflows/push.yml)
2
2
  [![wakatime](https://wakatime.com/badge/user/697af4f5-617a-446d-ba58-407e7f3e0243/project/84ac7dc2-9288-497c-bb20-9c6123d3de66.svg)](https://wakatime.com/badge/user/697af4f5-617a-446d-ba58-407e7f3e0243/project/84ac7dc2-9288-497c-bb20-9c6123d3de66)
3
- [![Maintainability](https://api.codeclimate.com/v1/badges/7f87c569e806d4f19368/maintainability)](https://codeclimate.com/github/solectrus/senec/maintainability)
4
- [![Test Coverage](https://api.codeclimate.com/v1/badges/7f87c569e806d4f19368/test_coverage)](https://codeclimate.com/github/solectrus/senec/test_coverage)
3
+ [![Maintainability](https://qlty.sh/gh/solectrus/projects/senec/maintainability.svg)](https://qlty.sh/gh/solectrus/projects/senec)
4
+ [![Code Coverage](https://qlty.sh/gh/solectrus/projects/senec/coverage.svg)](https://qlty.sh/gh/solectrus/projects/senec)
5
5
 
6
6
  # Unofficial Ruby Client for SENEC Home
7
7
 
8
- Access your local SENEC Solar Battery Storage System or the SENEC Cloud from Ruby.
8
+ Access your local SENEC Solar Battery Storage System or the SENEC Cloud (mein-senec.de) from Ruby.
9
9
 
10
10
  **WARNING:** I'm not affiliated in any way with the SENEC company.
11
11
 
@@ -13,7 +13,7 @@ Inspired by:
13
13
 
14
14
  - https://github.com/mchwalisz/pysenec
15
15
  - https://gist.github.com/smashnet/82ad0b9d7f0ba2e5098e6649ba08f88a
16
- - https://documenter.getpostman.com/view/932140/2s9YXib2td
16
+ - https://github.com/marq24/ha-senec-v3
17
17
 
18
18
  ## Installation
19
19
 
@@ -23,93 +23,64 @@ $ gem install senec
23
23
 
24
24
  ## Usage
25
25
 
26
- ### Cloud access (V2.1, V3 and V4)
26
+ ### Cloud access (V2.1, V3 and Home.4)
27
27
 
28
- ```ruby
28
+ ````ruby
29
29
  require 'senec'
30
30
 
31
- # Login to the SENEC cloud
31
+ # Login to the SENEC cloud (mein-senec.de):
32
32
  connection = Senec::Cloud::Connection.new(username: 'me@example.com', password: 'my-secret-senec-password')
33
33
 
34
- # List all available systems
35
- puts connection.systems
36
-
37
- # => [{"id"=>"123456", "steuereinheitnummer"=>"S123XXX", "gehaeusenummer"=>"DE-V3-XXXX", "strasse"=>"Musterstraße", "hausnummer"=>"27a", "postleitzahl"=>"99999", "ort"=>"Musterort", "laendercode"=>"DE", "zeitzone"=>"Europe/Berlin", "wallboxIds"=>["1"], "systemType"=>"V3"}]
38
-
39
34
  # Get the Dashboard data of first systems (without knowing the ID):
40
35
  puts Senec::Cloud::Dashboard[connection].first.data
41
36
 
42
- # => {"aktuell"=>
43
- # {"stromerzeugung"=>{"wert"=>0.01, "einheit"=>"W"},
44
- # "stromverbrauch"=>{"wert"=>860.0, "einheit"=>"W"},
45
- # "netzeinspeisung"=>{"wert"=>0.01, "einheit"=>"W"},
46
- # "netzbezug"=>{"wert"=>852.6270000000001, "einheit"=>"W"},
47
- # "speicherbeladung"=>{"wert"=>0.01, "einheit"=>"W"},
48
- # "speicherentnahme"=>{"wert"=>11.68, "einheit"=>"W"},
49
- # "speicherfuellstand"=>{"wert"=>1.0e-05, "einheit"=>"%"},
50
- # "autarkie"=>{"wert"=>1.35, "einheit"=>"%"},
51
- # "wallbox"=>{"wert"=>0.01, "einheit"=>"W"}},
52
- # "heute"=>
53
- # {"stromerzeugung"=>{"wert"=>3339.84375, "einheit"=>"Wh"},
54
- # "stromverbrauch"=>{"wert"=>21000.0, "einheit"=>"Wh"},
55
- # "netzeinspeisung"=>{"wert"=>13.671875, "einheit"=>"Wh"},
56
- # "netzbezug"=>{"wert"=>17546.38671875, "einheit"=>"Wh"},
57
- # "speicherbeladung"=>{"wert"=>119.140625, "einheit"=>"Wh"},
58
- # "speicherentnahme"=>{"wert"=>254.39453125, "einheit"=>"Wh"},
59
- # "speicherfuellstand"=>{"wert"=>0.0, "einheit"=>"%"},
60
- # "autarkie"=>{"wert"=>16.47, "einheit"=>"%"},
61
- # "wallbox"=>{"wert"=>0.0, "einheit"=>"Wh"}},
62
- # "zeitstempel"=>"2023-11-26T18:45:23Z",
63
- # "electricVehicleConnected"=>false}
64
-
65
- # Get the Dashboard data of a specific system (by ID):
66
- puts Senec::Cloud::Dashboard[connection].find("123456").data
67
-
68
- # => {"aktuell"=>
69
- # {"stromerzeugung"=>{"wert"=>0.01, "einheit"=>"W"},
70
- # ....
71
-
72
- # Dashboard data can be requested in different versions, v1 and v2 are available, v1 is the default.
73
- # To request the data in version 2, pass the version parameter to the `data` method:
74
- puts Senec::Cloud::Dashboard[connection].first.data(version: 'v2')
75
-
76
37
  # => {
77
- # 'currently' => {
78
- # 'powerGenerationInW' => 1.0e-05,
79
- # 'powerConsumptionInW' => 1350.37,
80
- # 'gridFeedInInW' => 1.0e-05,
81
- # 'gridDrawInW' => 1321.26966059603,
82
- # 'batteryChargeInW' => 1.0e-05,
83
- # 'batteryDischargeInW' => 11.6411423841,
84
- # 'batteryLevelInPercent' => 1.0e-05,
85
- # 'selfSufficiencyInPercent' => 2.16,
86
- # 'wallboxInW' => 1.0e-05
38
+ # 'wartungsplan' => {
39
+ # 'possibleMaintenanceTypes' => [],
40
+ # 'applicable' => false,
41
+ # 'maintenanceDueSoon' => false,
42
+ # 'maintenanceOverdue' => false,
43
+ # 'minorMaintenancePossible' => false
44
+ # },
45
+ # 'suppressedNotificationIds' => [],
46
+ # 'steuereinheitState' => 'AKKU_VOLL',
47
+ # 'wartungNotwendig' => false,
48
+ # 'firmwareVersion' => 826,
49
+ # 'gridimport' => {
50
+ # 'today' => 0.0302734375,
51
+ # 'now' => 0.0
52
+ # },
53
+ # 'powergenerated' => {
54
+ # 'today' => 30.94140625,
55
+ # 'now' => 2.382683
56
+ # },
57
+ # 'consumption' => {
58
+ # 'today' => 5.501953125,
59
+ # 'now' => 0.327035
60
+ # },
61
+ # 'gridexport' => {
62
+ # 'today' => 24.779296875,
63
+ # 'now' => 2.032288
87
64
  # },
88
- # 'today' => {
89
- # 'powerGenerationInWh' => 3.90625,
90
- # 'powerConsumptionInWh' => 9119.14,
91
- # 'gridFeedInInWh' => 0.0,
92
- # 'gridDrawInWh' => 9011.71875,
93
- # 'batteryChargeInWh' => 0.0,
94
- # 'batteryDischargeInWh' => 107.421875,
95
- # 'batteryLevelInPercent' => 1.0e-05,
96
- # 'selfSufficiencyInPercent' => 1.18,
97
- # 'wallboxInWh' => 0.0
65
+ # 'accuexport' => {
66
+ # 'today' => 2.55419921875,
67
+ # 'now' => 0.0
98
68
  # },
99
- # 'timestamp' => '2025-01-11T06:45:09Z',
100
- # 'electricVehicleConnected' => false
69
+ # 'accuimport' => {
70
+ # 'today' => 1.84619140625,
71
+ # 'now' => 0.01752
72
+ # },
73
+ # 'acculevel' => {
74
+ # 'today' => 89.47079467773438,
75
+ # 'now' => 100.0
76
+ # },
77
+ # 'mcuOperationalModeId' => 2,
78
+ # 'senecBatteryStorageGeneration' => 'V3',
79
+ # 'machine' => 'MCU',
80
+ # 'lastupdated' => 1_753_277_119,
81
+ # 'state' => 13
101
82
  # }
102
83
 
103
- # Get the Technical Data of a specific system (by ID):
104
- puts Senec::Cloud::TechnicalData[connection].find("123456").data
105
-
106
- # => {"systemOverview"=>{"systemId"=>123456, "productName"=>"SENEC.Home V3 hybrid duo", ...
107
-
108
- # Get the Technical Data of first systems (without knowing the ID):
109
- puts Senec::Cloud::TechnicalData[connection].first.data
110
-
111
- # => {"systemOverview"=>{"systemId"=>123456, "productName"=>"SENEC.Home V3 hybrid duo", ...
112
- ```
113
84
 
114
85
  ### Local access (V2.1 and V3 only)
115
86
 
@@ -152,7 +123,7 @@ puts "Measure time: #{Time.at request.measure_time}"
152
123
  # Grid power: 315 W
153
124
  # Current state of the system: 14
154
125
  # Measure time: 2021-10-06 17:50:22 +0200
155
- ```
126
+ ````
156
127
 
157
128
  To get the state name (in English, German or Italian) instead of just the number:
158
129
 
@@ -0,0 +1,5 @@
1
+ {
2
+ "result": {
3
+ "line": 100.0
4
+ }
5
+ }