fritzbox-smarthome 0.7.0 → 0.8.1
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/.ruby-version +1 -1
- data/CHANGELOG.md +10 -0
- data/fritzbox-smarthome.gemspec +3 -2
- data/lib/fritzbox/smarthome/actor.rb +8 -8
- data/lib/fritzbox/smarthome/heater.rb +6 -8
- data/lib/fritzbox/smarthome/lightbulb.rb +0 -3
- data/lib/fritzbox/smarthome/null_logger.rb +0 -2
- data/lib/fritzbox/smarthome/properties/simple_on_off.rb +5 -6
- data/lib/fritzbox/smarthome/properties.rb +1 -4
- data/lib/fritzbox/smarthome/smoke_detector.rb +2 -4
- data/lib/fritzbox/smarthome/switch.rb +18 -20
- data/lib/fritzbox/smarthome/version.rb +1 -1
- data/lib/fritzbox/smarthome.rb +7 -6
- metadata +29 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 528b676ec721f36ef9160187f1acc391b4d3b87c77cf20c85616276c023f8cfa
|
4
|
+
data.tar.gz: eb15ac3b83ed9b96b8c451661a6468513c751249fcece13bbc8198d4052de013
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 79cb9a87734ba4926de6425ab870434adf7542ae6410378bad51c79278913afde03e71fe587c2ac2c50a44657b635fe6e7c8595de0b40cf8c4b82eb9cf707d6a
|
7
|
+
data.tar.gz: 5900723f11a2479856eb8afc45ec792d19dbc8228001681176db7f3e582f9f92f25212e473719494aa2cdb1aa3864b66c276f0ed199a7984e9fe4f55447ca61b
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
3.2
|
1
|
+
3.4.2
|
data/CHANGELOG.md
CHANGED
data/fritzbox-smarthome.gemspec
CHANGED
@@ -20,8 +20,9 @@ Gem::Specification.new do |spec|
|
|
20
20
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
21
21
|
spec.require_paths = ['lib']
|
22
22
|
|
23
|
-
spec.add_dependency 'activesupport', '>=
|
24
|
-
spec.add_dependency 'activemodel', '>=
|
23
|
+
spec.add_dependency 'activesupport', '>= 7.0', '< 8.1'
|
24
|
+
spec.add_dependency 'activemodel', '>= 7.0', '< 8.1'
|
25
|
+
spec.add_dependency 'csv', '~> 3.2' # For httparty to silence deprecation warning in ruby >= 3.3.0
|
25
26
|
spec.add_dependency 'httparty', '~> 0.20'
|
26
27
|
spec.add_dependency 'nori', '~> 2.6'
|
27
28
|
spec.add_dependency 'nokogiri', '~> 1.13'
|
@@ -2,15 +2,15 @@ module Fritzbox
|
|
2
2
|
module Smarthome
|
3
3
|
class Actor < Resource
|
4
4
|
include ActiveModel::Model
|
5
|
+
include ActiveModel::Attributes
|
5
6
|
|
6
|
-
|
7
|
-
:
|
8
|
-
:
|
9
|
-
:
|
10
|
-
:
|
11
|
-
:
|
12
|
-
:
|
13
|
-
:group_members
|
7
|
+
attribute :id, :string
|
8
|
+
attribute :type #, :symbol
|
9
|
+
attribute :ain, :string
|
10
|
+
attribute :present, :string
|
11
|
+
attribute :name, :string
|
12
|
+
attribute :manufacturer, :string
|
13
|
+
attribute :group_members #, :string, array: true
|
14
14
|
|
15
15
|
ResourceNotFound = Class.new(RuntimeError)
|
16
16
|
|
@@ -1,14 +1,12 @@
|
|
1
1
|
module Fritzbox
|
2
2
|
module Smarthome
|
3
3
|
class Heater < Actor
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
:hkr_next_change_period,
|
11
|
-
:hkr_next_change_temp
|
4
|
+
attribute :battery, :integer
|
5
|
+
attribute :batterylow, :integer
|
6
|
+
attribute :hkr_temp_is, :float
|
7
|
+
attribute :hkr_temp_set, :float
|
8
|
+
attribute :hkr_next_change_period, :time
|
9
|
+
attribute :hkr_next_change_temp, :float
|
12
10
|
|
13
11
|
class << self
|
14
12
|
def match?(data)
|
@@ -9,20 +9,20 @@ module Fritzbox
|
|
9
9
|
extend ActiveSupport::Concern
|
10
10
|
|
11
11
|
included do
|
12
|
-
|
12
|
+
attribute :simpleonoff_state, :integer
|
13
13
|
end
|
14
14
|
|
15
15
|
module ClassMethods
|
16
16
|
def new_from_api(data)
|
17
17
|
instance = defined?(super) ? super : new
|
18
|
-
instance.simpleonoff_state = data.dig('simpleonoff', 'state')
|
18
|
+
instance.simpleonoff_state = data.dig('simpleonoff', 'state')
|
19
19
|
instance
|
20
20
|
end
|
21
21
|
end
|
22
22
|
|
23
23
|
# @return [Boolean]
|
24
24
|
def active?
|
25
|
-
simpleonoff_state
|
25
|
+
simpleonoff_state == 1
|
26
26
|
end
|
27
27
|
|
28
28
|
# Makes a request to the Fritzbox and set the current instance's active state.
|
@@ -43,10 +43,9 @@ module Fritzbox
|
|
43
43
|
def toggle!
|
44
44
|
raise ArgumentError, "Attribute `ain` is missing on #{inspect}" unless respond_to?(:ain)
|
45
45
|
value = active? ? 0 : 1
|
46
|
-
response =
|
47
|
-
Fritzbox::Smarthome::Resource.get(command: 'setsimpleonoff', ain: ain, onoff: value)
|
46
|
+
response = Fritzbox::Smarthome::Resource.get(command: 'setsimpleonoff', ain: ain, onoff: value)
|
48
47
|
|
49
|
-
response.ok? &&
|
48
|
+
response.ok? && self.simpleonoff_state = value
|
50
49
|
end
|
51
50
|
end
|
52
51
|
end
|
@@ -1,19 +1,17 @@
|
|
1
1
|
module Fritzbox
|
2
2
|
module Smarthome
|
3
3
|
class Switch < Actor
|
4
|
-
|
5
4
|
include Properties::SimpleOnOff
|
6
5
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
:temperature_offset
|
6
|
+
attribute :switch_state, :integer
|
7
|
+
attribute :switch_mode, :string
|
8
|
+
attribute :switch_lock, :integer
|
9
|
+
attribute :switch_devicelock, :integer
|
10
|
+
attribute :powermeter_voltage, :integer
|
11
|
+
attribute :powermeter_power, :integer
|
12
|
+
attribute :powermeter_energy, :integer
|
13
|
+
attribute :temperature_celsius, :integer
|
14
|
+
attribute :temperature_offset, :integer
|
17
15
|
|
18
16
|
class << self
|
19
17
|
def match?(data)
|
@@ -25,15 +23,15 @@ module Fritzbox
|
|
25
23
|
super(data)
|
26
24
|
|
27
25
|
assign_attributes(
|
28
|
-
switch_state: data.dig('switch', 'state')
|
29
|
-
switch_mode: data.dig('switch', 'mode')
|
30
|
-
switch_lock: data.dig('switch', 'lock')
|
31
|
-
switch_devicelock: data.dig('switch', 'devicelock')
|
32
|
-
powermeter_voltage: data.dig('powermeter', 'voltage')
|
33
|
-
powermeter_power: data.dig('powermeter', 'power')
|
34
|
-
powermeter_energy: data.dig('powermeter', 'energy')
|
35
|
-
temperature_celsius: data.dig('temperature', 'celsius')
|
36
|
-
temperature_offset: data.dig('temperature', 'offset')
|
26
|
+
switch_state: data.dig('switch', 'state'),
|
27
|
+
switch_mode: data.dig('switch', 'mode'),
|
28
|
+
switch_lock: data.dig('switch', 'lock'),
|
29
|
+
switch_devicelock: data.dig('switch', 'devicelock'),
|
30
|
+
powermeter_voltage: data.dig('powermeter', 'voltage'),
|
31
|
+
powermeter_power: data.dig('powermeter', 'power'),
|
32
|
+
powermeter_energy: data.dig('powermeter', 'energy'),
|
33
|
+
temperature_celsius: data.dig('temperature', 'celsius'),
|
34
|
+
temperature_offset: data.dig('temperature', 'offset')
|
37
35
|
)
|
38
36
|
end
|
39
37
|
end
|
data/lib/fritzbox/smarthome.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'active_model'
|
2
2
|
require 'active_support/all'
|
3
3
|
require 'httparty'
|
4
|
+
require 'stringio'
|
4
5
|
require 'nori'
|
5
6
|
|
6
7
|
require 'fritzbox/smarthome/version'
|
@@ -18,13 +19,13 @@ module Fritzbox
|
|
18
19
|
module Smarthome
|
19
20
|
class Configuration
|
20
21
|
include ActiveModel::Model
|
22
|
+
include ActiveModel::Attributes
|
21
23
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
:logger
|
24
|
+
attribute :endpoint, :string
|
25
|
+
attribute :username, :string
|
26
|
+
attribute :password, :string
|
27
|
+
attribute :verify_ssl, :boolean
|
28
|
+
attribute :logger
|
28
29
|
end
|
29
30
|
|
30
31
|
@config = Configuration.new.tap do |defaults|
|
metadata
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fritzbox-smarthome
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Klaus Meyer
|
8
|
-
autorequire:
|
9
8
|
bindir: exe
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 2025-04-21 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
12
|
- !ruby/object:Gem::Dependency
|
14
13
|
name: activesupport
|
@@ -16,40 +15,54 @@ dependencies:
|
|
16
15
|
requirements:
|
17
16
|
- - ">="
|
18
17
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
20
|
-
- - "
|
18
|
+
version: '7.0'
|
19
|
+
- - "<"
|
21
20
|
- !ruby/object:Gem::Version
|
22
|
-
version: '
|
21
|
+
version: '8.1'
|
23
22
|
type: :runtime
|
24
23
|
prerelease: false
|
25
24
|
version_requirements: !ruby/object:Gem::Requirement
|
26
25
|
requirements:
|
27
26
|
- - ">="
|
28
27
|
- !ruby/object:Gem::Version
|
29
|
-
version: '
|
30
|
-
- - "
|
28
|
+
version: '7.0'
|
29
|
+
- - "<"
|
31
30
|
- !ruby/object:Gem::Version
|
32
|
-
version: '
|
31
|
+
version: '8.1'
|
33
32
|
- !ruby/object:Gem::Dependency
|
34
33
|
name: activemodel
|
35
34
|
requirement: !ruby/object:Gem::Requirement
|
36
35
|
requirements:
|
37
36
|
- - ">="
|
38
37
|
- !ruby/object:Gem::Version
|
39
|
-
version: '
|
40
|
-
- - "
|
38
|
+
version: '7.0'
|
39
|
+
- - "<"
|
41
40
|
- !ruby/object:Gem::Version
|
42
|
-
version: '
|
41
|
+
version: '8.1'
|
43
42
|
type: :runtime
|
44
43
|
prerelease: false
|
45
44
|
version_requirements: !ruby/object:Gem::Requirement
|
46
45
|
requirements:
|
47
46
|
- - ">="
|
48
47
|
- !ruby/object:Gem::Version
|
49
|
-
version: '
|
50
|
-
- - "
|
48
|
+
version: '7.0'
|
49
|
+
- - "<"
|
51
50
|
- !ruby/object:Gem::Version
|
52
|
-
version: '
|
51
|
+
version: '8.1'
|
52
|
+
- !ruby/object:Gem::Dependency
|
53
|
+
name: csv
|
54
|
+
requirement: !ruby/object:Gem::Requirement
|
55
|
+
requirements:
|
56
|
+
- - "~>"
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
version: '3.2'
|
59
|
+
type: :runtime
|
60
|
+
prerelease: false
|
61
|
+
version_requirements: !ruby/object:Gem::Requirement
|
62
|
+
requirements:
|
63
|
+
- - "~>"
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: '3.2'
|
53
66
|
- !ruby/object:Gem::Dependency
|
54
67
|
name: httparty
|
55
68
|
requirement: !ruby/object:Gem::Requirement
|
@@ -184,7 +197,6 @@ homepage: https://github.com/klausmeyer/fritzbox-smarthome
|
|
184
197
|
licenses:
|
185
198
|
- MIT
|
186
199
|
metadata: {}
|
187
|
-
post_install_message:
|
188
200
|
rdoc_options: []
|
189
201
|
require_paths:
|
190
202
|
- lib
|
@@ -199,8 +211,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
199
211
|
- !ruby/object:Gem::Version
|
200
212
|
version: '0'
|
201
213
|
requirements: []
|
202
|
-
rubygems_version: 3.
|
203
|
-
signing_key:
|
214
|
+
rubygems_version: 3.6.2
|
204
215
|
specification_version: 4
|
205
216
|
summary: Client library to interface with Smarthome features of your FritzBox
|
206
217
|
test_files: []
|