senec 0.17.2 → 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 (87) 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/.rspec_status +69 -0
  6. data/.rubocop.yml +1 -1
  7. data/.ruby-lsp/.gitignore +1 -0
  8. data/.ruby-lsp/Gemfile +6 -0
  9. data/.ruby-lsp/Gemfile.lock +170 -0
  10. data/.ruby-lsp/main_lockfile_hash +1 -0
  11. data/.ruby-lsp/needs_update +0 -0
  12. data/LICENSE +1 -1
  13. data/README.md +56 -56
  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 +71 -13
  81. data/.github/workflows/push.yml +0 -37
  82. data/Gemfile +0 -43
  83. data/bin/console +0 -14
  84. data/bin/setup +0 -8
  85. data/lib/senec/cloud/dashboard.rb +0 -69
  86. data/lib/senec/cloud/technical_data.rb +0 -69
  87. data/senec.gemspec +0 -32
@@ -1,69 +0,0 @@
1
- require_relative 'connection'
2
-
3
- # Model for the Senec dashboard data.
4
- #
5
- # Example use:
6
- #
7
- # connection = Senec::Cloud::Connection.new(username: '...', password: '...')
8
- #
9
- # # Get the data of a specific system:
10
- # Dashboard[connection].find('123456')
11
- #
12
- # # Get the data of the default system:
13
- # Dashboard[connection].first
14
- #
15
- module Senec
16
- module Cloud
17
- class Dashboard
18
- class Finder
19
- def initialize(connection)
20
- @connection = connection
21
- end
22
- attr_reader :connection
23
-
24
- def find(system_id)
25
- Dashboard.new(connection:, system_id:).tap(&:load_data)
26
- end
27
-
28
- def first
29
- find(connection.default_system_id)
30
- end
31
- end
32
-
33
- def self.[](connection)
34
- Finder.new(connection)
35
- end
36
-
37
- def initialize(connection: nil, system_id: nil, data: nil)
38
- raise ArgumentError unless connection.nil? ^ data.nil?
39
-
40
- @connection = connection
41
- @system_id = system_id
42
-
43
- # Useful for testing only
44
- @data = data
45
- end
46
-
47
- def load_data
48
- raise 'Data already present!' if @data
49
-
50
- @system_id ||= connection.default_system_id
51
- @data = fetch_data
52
- end
53
-
54
- attr_reader :system_id, :data
55
-
56
- private
57
-
58
- def get(path, params: nil)
59
- @connection.get(path, params:)
60
- end
61
-
62
- def fetch_data
63
- return unless system_id
64
-
65
- get("/v1/senec/systems/#{system_id}/dashboard")
66
- end
67
- end
68
- end
69
- end
@@ -1,69 +0,0 @@
1
- require_relative 'connection'
2
-
3
- # Model for the Senec technical data.
4
- #
5
- # Example use:
6
- #
7
- # connection = Senec::Cloud::Connection.new(username: '...', password: '...')
8
- #
9
- # # Get the data of a specific system:
10
- # TechnicalData[connection].find('123456')
11
- #
12
- # # Get the data of the default system:
13
- # TechnicalData[connection].first
14
- #
15
- module Senec
16
- module Cloud
17
- class TechnicalData
18
- class Finder
19
- def initialize(connection)
20
- @connection = connection
21
- end
22
- attr_reader :connection
23
-
24
- def find(system_id)
25
- TechnicalData.new(connection:, system_id:).tap(&:load_data)
26
- end
27
-
28
- def first
29
- find(connection.default_system_id)
30
- end
31
- end
32
-
33
- def self.[](connection)
34
- Finder.new(connection)
35
- end
36
-
37
- def initialize(connection: nil, system_id: nil, data: nil)
38
- raise ArgumentError unless connection.nil? ^ data.nil?
39
-
40
- @connection = connection
41
- @system_id = system_id
42
-
43
- # Useful for testing only
44
- @data = data
45
- end
46
-
47
- def load_data
48
- raise 'Data already present!' if @data
49
-
50
- @system_id ||= connection.default_system_id
51
- @data = fetch_data
52
- end
53
-
54
- attr_reader :system_id, :data
55
-
56
- private
57
-
58
- def get(path, params: nil)
59
- @connection.get(path, params:)
60
- end
61
-
62
- def fetch_data
63
- return unless system_id
64
-
65
- get("/v1/senec/systems/#{system_id}/technical-data")
66
- end
67
- end
68
- end
69
- end
data/senec.gemspec DELETED
@@ -1,32 +0,0 @@
1
- require_relative 'lib/senec/version'
2
-
3
- Gem::Specification.new do |spec|
4
- spec.name = 'senec'
5
- spec.version = Senec::VERSION
6
- spec.authors = ['Georg Ledermann']
7
- spec.email = ['georg@ledermann.dev']
8
-
9
- spec.summary = 'Unofficial Ruby Client for SENEC Home'
10
- spec.description = 'Access your local SENEC Solar Battery Storage System'
11
- spec.homepage = 'https://github.com/solectrus/senec'
12
- spec.license = 'MIT'
13
- spec.required_ruby_version = Gem::Requirement.new('>= 3.2.0')
14
- spec.add_dependency 'faraday'
15
- spec.add_dependency 'faraday-net_http_persistent'
16
- spec.add_dependency 'faraday-request-timer'
17
-
18
- spec.metadata['homepage_uri'] = spec.homepage
19
- spec.metadata['source_code_uri'] = 'https://github.com/solectrus/senec'
20
- spec.metadata['changelog_uri'] = 'https://github.com/solectrus/senec/releases'
21
- spec.metadata['rubygems_mfa_required'] = 'true'
22
-
23
- # Specify which files should be added to the gem when it is released.
24
- # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
25
- spec.files =
26
- Dir.chdir(File.expand_path(__dir__)) do
27
- `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
28
- end
29
- spec.bindir = 'exe'
30
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
31
- spec.require_paths = ['lib']
32
- end