ruby_home 0.2.1 → 0.2.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (106) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/tests.yml +41 -0
  3. data/.gitignore +2 -2
  4. data/.rubocop.yml +2 -9
  5. data/.standard.yml +3 -0
  6. data/CHANGELOG.md +18 -0
  7. data/Gemfile +2 -2
  8. data/README.md +40 -77
  9. data/Rakefile +4 -4
  10. data/examples/air_purifier.rb +66 -0
  11. data/examples/air_quality_sensor.rb +119 -0
  12. data/examples/battery_service.rb +58 -0
  13. data/examples/carbon_dioxide_sensor.rb +78 -0
  14. data/examples/carbon_monoxide_sensor.rb +78 -0
  15. data/examples/contact_sensor.rb +66 -0
  16. data/examples/door.rb +48 -0
  17. data/examples/fan.rb +30 -0
  18. data/examples/fan_v2.rb +68 -0
  19. data/examples/garage_door_opener.rb +71 -0
  20. data/examples/heater_cooler.rb +92 -0
  21. data/examples/humidifier_dehumidifier.rb +88 -0
  22. data/examples/humidity_sensor.rb +62 -0
  23. data/examples/leak_sensor.rb +66 -0
  24. data/examples/light_sensor.rb +64 -0
  25. data/examples/lightbulb.rb +31 -0
  26. data/examples/lock_mechanism.rb +34 -0
  27. data/examples/motion_sensor.rb +66 -0
  28. data/examples/occupancy_sensor.rb +66 -0
  29. data/examples/outlet.rb +29 -0
  30. data/examples/security_system.rb +53 -0
  31. data/examples/smoke_sensor.rb +66 -0
  32. data/examples/switch.rb +16 -0
  33. data/examples/television.rb +73 -0
  34. data/examples/temperature_sensor.rb +62 -0
  35. data/examples/thermostat.rb +113 -0
  36. data/examples/window.rb +48 -0
  37. data/examples/window_covering.rb +72 -0
  38. data/lib/ruby_home.rb +21 -22
  39. data/lib/ruby_home/accessory.rb +1 -1
  40. data/lib/ruby_home/accessory_collection.rb +6 -6
  41. data/lib/ruby_home/accessory_info.rb +18 -18
  42. data/lib/ruby_home/characteristic.rb +13 -7
  43. data/lib/ruby_home/characteristic_collection.rb +13 -13
  44. data/lib/ruby_home/config/categories.yml +39 -0
  45. data/lib/ruby_home/config/characteristics.yml +190 -319
  46. data/lib/ruby_home/config/manual_characteristics.yml +278 -0
  47. data/lib/ruby_home/config/manual_services.yml +45 -0
  48. data/lib/ruby_home/config/services.yml +338 -304
  49. data/lib/ruby_home/configuration.rb +21 -2
  50. data/lib/ruby_home/device_id.rb +3 -3
  51. data/lib/ruby_home/dns/service.rb +4 -6
  52. data/lib/ruby_home/dns/text_record.rb +10 -10
  53. data/lib/ruby_home/errors.rb +1 -0
  54. data/lib/ruby_home/factories/characteristic_factory.rb +38 -37
  55. data/lib/ruby_home/factories/service_factory.rb +72 -72
  56. data/lib/ruby_home/factories/templates/characteristic_template.rb +6 -6
  57. data/lib/ruby_home/factories/templates/service_template.rb +12 -11
  58. data/lib/ruby_home/hap/crypto/chacha20poly1305.rb +2 -2
  59. data/lib/ruby_home/hap/crypto/hkdf.rb +4 -4
  60. data/lib/ruby_home/hap/crypto/session_key.rb +7 -7
  61. data/lib/ruby_home/hap/decrypter.rb +8 -8
  62. data/lib/ruby_home/hap/encrypter.rb +5 -6
  63. data/lib/ruby_home/hap/ev_response.rb +17 -17
  64. data/lib/ruby_home/hap/hap_request.rb +1 -1
  65. data/lib/ruby_home/hap/server.rb +4 -4
  66. data/lib/ruby_home/hap/server_handler.rb +8 -10
  67. data/lib/ruby_home/hap/session.rb +22 -22
  68. data/lib/ruby_home/hap/values/base_value.rb +3 -3
  69. data/lib/ruby_home/hap/values/bool_value.rb +4 -4
  70. data/lib/ruby_home/hap/values/float_value.rb +4 -4
  71. data/lib/ruby_home/hap/values/identify_value.rb +1 -1
  72. data/lib/ruby_home/hap/values/int32_value.rb +4 -4
  73. data/lib/ruby_home/hap/values/null_value.rb +1 -1
  74. data/lib/ruby_home/hap/values/string_value.rb +11 -11
  75. data/lib/ruby_home/hap/values/uint32_value.rb +5 -5
  76. data/lib/ruby_home/hap/values/uint8_value.rb +14 -14
  77. data/lib/ruby_home/hex_helper.rb +3 -3
  78. data/lib/ruby_home/http/application.rb +7 -7
  79. data/lib/ruby_home/http/controllers/accessories_controller.rb +3 -3
  80. data/lib/ruby_home/http/controllers/application_controller.rb +6 -6
  81. data/lib/ruby_home/http/controllers/characteristics_controller.rb +29 -29
  82. data/lib/ruby_home/http/controllers/identify_controller.rb +10 -10
  83. data/lib/ruby_home/http/controllers/pair_setups_controller.rb +19 -19
  84. data/lib/ruby_home/http/controllers/pair_verifies_controller.rb +9 -9
  85. data/lib/ruby_home/http/controllers/pairings_controller.rb +6 -6
  86. data/lib/ruby_home/http/serializers/accessory_serializer.rb +5 -5
  87. data/lib/ruby_home/http/serializers/characteristic_serializer.rb +27 -19
  88. data/lib/ruby_home/http/serializers/characteristic_value_serializer.rb +5 -5
  89. data/lib/ruby_home/http/serializers/object_serializer.rb +1 -1
  90. data/lib/ruby_home/http/serializers/service_serializer.rb +19 -9
  91. data/lib/ruby_home/http/serializers/uuid_helper.rb +2 -2
  92. data/lib/ruby_home/http/services/session_notifier.rb +8 -8
  93. data/lib/ruby_home/http/services/start_srp_service.rb +3 -3
  94. data/lib/ruby_home/http/services/verify_finish_service.rb +22 -22
  95. data/lib/ruby_home/http/services/verify_srp_service.rb +22 -22
  96. data/lib/ruby_home/identifier_cache.rb +4 -5
  97. data/lib/ruby_home/password.rb +14 -14
  98. data/lib/ruby_home/persistable.rb +19 -12
  99. data/lib/ruby_home/service.rb +5 -2
  100. data/lib/ruby_home/service_collection.rb +1 -1
  101. data/lib/ruby_home/version.rb +1 -1
  102. data/rubyhome.gemspec +31 -31
  103. data/sbin/characteristic_generator.rb +22 -24
  104. data/sbin/service_generator.rb +38 -19
  105. metadata +85 -44
  106. data/.travis.yml +0 -31
@@ -0,0 +1,48 @@
1
+ require "ruby_home"
2
+
3
+ accessory_information = RubyHome::ServiceFactory.create(:accessory_information)
4
+ window = RubyHome::ServiceFactory.create(:window,
5
+ target_position: 0, # required
6
+ position_state: 1, # required
7
+ current_position: 0, # required
8
+ name: "window", # optional
9
+ obstruction_detected: false) # optional
10
+
11
+ window.target_position.after_update do |target_position|
12
+ puts "window target position #{target_position}"
13
+
14
+ if target_position < window.current_position
15
+ window.position_state = 0
16
+ elsif target_position > window.current_position
17
+ window.position_state = 1
18
+ end
19
+
20
+ sleep 1
21
+
22
+ window.current_position = target_position
23
+ window.position_state = 2
24
+ end
25
+
26
+ position_state_values = {
27
+ 0 => "Decreasing",
28
+ 1 => "Increasing",
29
+ 2 => "Stopped"
30
+ }
31
+ window.position_state.after_update do |position_state|
32
+ state = position_state_values[position_state]
33
+ puts "window position state #{state}"
34
+ end
35
+
36
+ window.current_position.after_update do |current_position|
37
+ puts "window current position #{current_position}"
38
+ end
39
+
40
+ window.obstruction_detected.after_update do |obstruction_detected|
41
+ if obstruction_detected
42
+ puts "window obstruction detected"
43
+ else
44
+ puts "window no obstruction detected"
45
+ end
46
+ end
47
+
48
+ RubyHome.run
@@ -0,0 +1,72 @@
1
+ require "ruby_home"
2
+
3
+ accessory_information = RubyHome::ServiceFactory.create(:accessory_information)
4
+ window_covering = RubyHome::ServiceFactory.create(:window_covering,
5
+ target_position: 0, # required
6
+ position_state: 1, # required
7
+ current_position: 0, # required
8
+ name: "window_covering", # optional
9
+ obstruction_detected: false, # optional
10
+ current_vertical_tilt_angle: 0, # optional
11
+ target_vertical_tilt_angle: 0, # optional
12
+ current_horizontal_tilt_angle: 0, # optional
13
+ target_horizontal_tilt_angle: 0) # optional
14
+
15
+ window_covering.target_position.after_update do |target_position|
16
+ puts "window covering target position #{target_position}"
17
+
18
+ if target_position < window_covering.current_position
19
+ window_covering.position_state = 0
20
+ elsif target_position > window_covering.current_position
21
+ window_covering.position_state = 1
22
+ end
23
+
24
+ sleep 1
25
+
26
+ window_covering.current_position = target_position
27
+ window_covering.position_state = 2
28
+ end
29
+
30
+ position_state_values = {
31
+ 0 => "Decreasing",
32
+ 1 => "Increasing",
33
+ 2 => "Stopped"
34
+ }
35
+ window_covering.position_state.after_update do |position_state|
36
+ state = position_state_values[position_state]
37
+ puts "window covering position state #{state}"
38
+ end
39
+
40
+ window_covering.current_position.after_update do |current_position|
41
+ puts "window covering current position #{current_position}"
42
+ end
43
+
44
+ window_covering.obstruction_detected.after_update do |obstruction_detected|
45
+ if obstruction_detected
46
+ puts "window covering obstruction detected"
47
+ else
48
+ puts "window covering no obstruction detected"
49
+ end
50
+ end
51
+
52
+ window_covering.current_vertical_tilt_angle.after_update do |current_vertical_tilt_angle|
53
+ puts "window covering current_vertical_tilt_angle #{current_vertical_tilt_angle}"
54
+ end
55
+
56
+ window_covering.target_vertical_tilt_angle.after_update do |target_vertical_tilt_angle|
57
+ puts "window covering target_vertical_tilt_angle #{target_vertical_tilt_angle}"
58
+ sleep 1
59
+ window_covering.current_vertical_tilt_angle = target_vertical_tilt_angle
60
+ end
61
+
62
+ window_covering.current_horizontal_tilt_angle.after_update do |current_horizontal_tilt_angle|
63
+ puts "window covering current_horizontal_tilt_angle #{current_horizontal_tilt_angle}"
64
+ end
65
+
66
+ window_covering.target_horizontal_tilt_angle.after_update do |target_horizontal_tilt_angle|
67
+ puts "window covering target_horizontal_tilt_angle #{target_horizontal_tilt_angle}"
68
+ sleep 1
69
+ window_covering.current_horizontal_tilt_angle = target_horizontal_tilt_angle
70
+ end
71
+
72
+ RubyHome.run
data/lib/ruby_home.rb CHANGED
@@ -1,26 +1,25 @@
1
- require 'bindata'
2
- require 'dnssd'
3
- require 'facets/hash/slice'
4
- require 'hkdf'
5
- require 'oj'
6
- require 'rack'
7
- require 'rbnacl'
8
- require 'ruby_home/srp'
9
- require 'ruby_home/tlv'
10
- require 'securerandom'
11
- require 'sinatra/base'
12
- require 'socket'
13
- require 'webrick'
14
- require 'wisper'
15
- require 'yaml'
1
+ require "dnssd"
2
+ require "facets/hash/slice"
3
+ require "hkdf"
4
+ require "oj"
5
+ require "rack"
6
+ require "rbnacl"
7
+ require "ruby_home/srp"
8
+ require "ruby_home/tlv"
9
+ require "securerandom"
10
+ require "sinatra/base"
11
+ require "socket"
12
+ require "webrick"
13
+ require "wisper"
14
+ require "yaml"
16
15
 
17
16
  module RubyHome
18
17
  [
19
- '/ruby_home/hap/**/*.rb',
20
- '/ruby_home/http/**/*.rb',
21
- '/ruby_home/factories/**/*.rb',
22
- '/ruby_home/dns/**/*.rb',
23
- '/ruby_home/*.rb'
18
+ "/ruby_home/hap/**/*.rb",
19
+ "/ruby_home/http/**/*.rb",
20
+ "/ruby_home/factories/**/*.rb",
21
+ "/ruby_home/dns/**/*.rb",
22
+ "/ruby_home/*.rb"
24
23
  ].each do |pattern|
25
24
  Dir[File.dirname(__FILE__) + pattern].each { |file| require file }
26
25
  end
@@ -37,8 +36,8 @@ module RubyHome
37
36
  end
38
37
 
39
38
  def run
40
- trap 'INT' do shutdown end
41
- trap 'TERM' do shutdown end
39
+ trap("INT") { shutdown }
40
+ trap("TERM") { shutdown }
42
41
 
43
42
  greet
44
43
  start
@@ -1,4 +1,4 @@
1
- require_relative 'accessory_collection'
1
+ require_relative "accessory_collection"
2
2
 
3
3
  module RubyHome
4
4
  class Accessory
@@ -25,12 +25,12 @@ module RubyHome
25
25
 
26
26
  private
27
27
 
28
- def services
29
- accessories.flat_map(&:services)
30
- end
28
+ def services
29
+ accessories.flat_map(&:services)
30
+ end
31
31
 
32
- def characteristics
33
- services.flat_map(&:characteristics)
34
- end
32
+ def characteristics
33
+ services.flat_map(&:characteristics)
34
+ end
35
35
  end
36
36
  end
@@ -1,10 +1,10 @@
1
- require_relative 'persistable'
1
+ require_relative "persistable"
2
2
 
3
3
  module RubyHome
4
4
  class AccessoryInfo
5
5
  include Persistable
6
6
 
7
- self.source = 'accessory_info.yml'
7
+ self.source = "accessory_info.yml"
8
8
 
9
9
  def self.instance
10
10
  @@_instance ||= persisted || create
@@ -14,7 +14,7 @@ module RubyHome
14
14
  @@_instance = nil
15
15
  end
16
16
 
17
- USERNAME = -'Pair-Setup'
17
+ USERNAME = -"Pair-Setup"
18
18
 
19
19
  def initialize(device_id: nil, paired_clients: [], password: nil, signature_key: nil)
20
20
  @device_id = device_id
@@ -44,8 +44,8 @@ module RubyHome
44
44
  @paired_clients ||= []
45
45
  end
46
46
 
47
- def add_paired_client(admin: false, identifier: , public_key: )
48
- @paired_clients << { admin: admin, identifier: identifier, public_key: public_key }
47
+ def add_paired_client(identifier:, public_key:, admin: false)
48
+ @paired_clients << {admin: admin, identifier: identifier, public_key: public_key}
49
49
  save
50
50
  end
51
51
 
@@ -59,22 +59,22 @@ module RubyHome
59
59
  end
60
60
 
61
61
  def signing_key
62
- @signing_key ||= RbNaCl::Signatures::Ed25519::SigningKey.new([signature_key].pack('H*'))
62
+ @signing_key ||= RbNaCl::Signatures::Ed25519::SigningKey.new([signature_key].pack("H*"))
63
63
  end
64
64
 
65
65
  private
66
66
 
67
- def signature_key
68
- @signature_key ||= RbNaCl::Signatures::Ed25519::SigningKey.generate.to_bytes.unpack1('H*')
69
- end
70
-
71
- def persisted_attributes
72
- {
73
- device_id: device_id,
74
- paired_clients: paired_clients,
75
- password: password,
76
- signature_key: signature_key
77
- }
78
- end
67
+ def signature_key
68
+ @signature_key ||= RbNaCl::Signatures::Ed25519::SigningKey.generate.to_bytes.unpack1("H*")
69
+ end
70
+
71
+ def persisted_attributes
72
+ {
73
+ device_id: device_id,
74
+ paired_clients: paired_clients,
75
+ password: password,
76
+ signature_key: signature_key
77
+ }
78
+ end
79
79
  end
80
80
  end
@@ -1,4 +1,4 @@
1
- require_relative 'characteristic_collection'
1
+ require_relative "characteristic_collection"
2
2
 
3
3
  module RubyHome
4
4
  class DuplicateCharacteristicError < StandardError; end
@@ -19,19 +19,20 @@ module RubyHome
19
19
  end
20
20
 
21
21
  PROPERTIES = {
22
- 'cnotify' => 'ev',
23
- 'read' => 'pr',
24
- 'uncnotify' => nil,
25
- 'write' => 'pw',
22
+ "cnotify" => "ev",
23
+ "read" => "pr",
24
+ "uncnotify" => nil,
25
+ "write" => "pw"
26
26
  }.freeze
27
27
 
28
- def initialize(uuid:, name:, description:, format:, unit:, properties:, service: , value_object: )
28
+ def initialize(uuid:, name:, description:, format:, unit:, properties:, constraints:, service:, value_object:)
29
29
  @uuid = uuid
30
30
  @name = name
31
31
  @description = description
32
32
  @format = format
33
33
  @unit = unit
34
34
  @properties = properties
35
+ @constraints = constraints
35
36
  @service = service
36
37
  @value_object = value_object
37
38
  end
@@ -44,8 +45,9 @@ module RubyHome
44
45
  :format,
45
46
  :unit,
46
47
  :properties,
48
+ :constraints,
47
49
  :instance_id,
48
- :value_object,
50
+ :value_object
49
51
  )
50
52
 
51
53
  def instance_id=(new_id)
@@ -66,6 +68,10 @@ module RubyHome
66
68
  service.instance_id
67
69
  end
68
70
 
71
+ def valid_values
72
+ constraints.fetch("ValidValues", {}).keys.map(&:to_i)
73
+ end
74
+
69
75
  def method_missing(method_name, *args, &block)
70
76
  value.send(method_name, *args, &block)
71
77
  end
@@ -17,7 +17,7 @@ module RubyHome
17
17
  @characteristics << characteristic
18
18
  end
19
19
 
20
- alias all to_a
20
+ alias_method :all, :to_a
21
21
 
22
22
  def contains_instance_id?(instance_id)
23
23
  map(&:instance_id).include?(instance_id)
@@ -25,24 +25,24 @@ module RubyHome
25
25
 
26
26
  private
27
27
 
28
- attr_reader :characteristics
28
+ attr_reader :characteristics
29
29
 
30
- def define_service_getter(characteristic)
31
- service = characteristic.service
30
+ def define_service_getter(characteristic)
31
+ service = characteristic.service
32
32
 
33
- unless service.respond_to?(characteristic.name)
34
- service.define_singleton_method(characteristic.name) { characteristic }
35
- end
33
+ unless service.respond_to?(characteristic.name)
34
+ service.define_singleton_method(characteristic.name) { characteristic }
36
35
  end
36
+ end
37
37
 
38
- def define_service_setter(characteristic)
39
- service = characteristic.service
38
+ def define_service_setter(characteristic)
39
+ service = characteristic.service
40
40
 
41
- unless service.respond_to?("#{characteristic.name}=")
42
- service.define_singleton_method("#{characteristic.name}=") do |args|
43
- characteristic.value = args
44
- end
41
+ unless service.respond_to?("#{characteristic.name}=")
42
+ service.define_singleton_method("#{characteristic.name}=") do |args|
43
+ characteristic.value = args
45
44
  end
46
45
  end
46
+ end
47
47
  end
48
48
  end
@@ -0,0 +1,39 @@
1
+ ---
2
+ :other: 1
3
+ :bridge: 2
4
+ :fan: 3
5
+ :garage_door_opener: 4
6
+ :lightbulb: 5
7
+ :door_lock: 6
8
+ :outlet: 7
9
+ :switch: 8
10
+ :thermostat: 9
11
+ :sensor: 10
12
+ :alarm_system: 11
13
+ :security_system: 11
14
+ :door: 12
15
+ :window: 13
16
+ :window_covering: 14
17
+ :programmable_switch: 15
18
+ :range_extender: 16
19
+ :camera: 17
20
+ :ip_camera: 17
21
+ :video_doorbell: 18
22
+ :air_purifier: 19
23
+ :air_heater: 20
24
+ :air_conditioner: 21
25
+ :air_humidifier: 22
26
+ :air_dehumidifier: 23
27
+ :apple_tv: 24
28
+ :homepod: 25
29
+ :speaker: 26
30
+ :airport: 27
31
+ :sprinkler: 28
32
+ :faucet: 29
33
+ :shower_head: 30
34
+ :television: 31
35
+ :target_controller: 32
36
+ :router: 33
37
+ :audio_receiver: 34
38
+ :tv_set_top_box: 35
39
+ :tv_streaming_stick: 36
@@ -4,8 +4,6 @@
4
4
  :uuid: 000000A6-0000-1000-8000-0026BB765291
5
5
  :format: uint32
6
6
  :unit: nil
7
- :permissions:
8
- - securedRead
9
7
  :properties:
10
8
  - read
11
9
  - cnotify
@@ -18,13 +16,11 @@
18
16
  :uuid: 000000B0-0000-1000-8000-0026BB765291
19
17
  :format: uint8
20
18
  :unit: nil
21
- :permissions:
22
- - securedRead
23
- - securedWrite
24
19
  :properties:
25
20
  - read
26
21
  - write
27
22
  - cnotify
23
+ - uncnotify
28
24
  :constraints:
29
25
  ValidValues:
30
26
  '0': Inactive
@@ -34,24 +30,21 @@
34
30
  :uuid: 00000001-0000-1000-8000-0026BB765291
35
31
  :format: bool
36
32
  :unit: nil
37
- :permissions:
38
- - securedRead
39
- - securedWrite
40
33
  :properties:
41
34
  - read
42
35
  - write
43
36
  - cnotify
44
- :constraints:
37
+ - uncnotify
38
+ :constraints:
45
39
  - :name: :air_particulate_density
46
40
  :description: Air Particulate Density
47
41
  :uuid: 00000064-0000-1000-8000-0026BB765291
48
42
  :format: float
49
43
  :unit: nil
50
- :permissions:
51
- - securedRead
52
44
  :properties:
53
45
  - read
54
46
  - cnotify
47
+ - uncnotify
55
48
  :constraints:
56
49
  MaximumValue: 1000
57
50
  MinimumValue: 0
@@ -61,11 +54,10 @@
61
54
  :uuid: 00000065-0000-1000-8000-0026BB765291
62
55
  :format: uint8
63
56
  :unit: nil
64
- :permissions:
65
- - securedRead
66
57
  :properties:
67
58
  - read
68
59
  - cnotify
60
+ - uncnotify
69
61
  :constraints:
70
62
  ValidValues:
71
63
  '0': 2.5 μm
@@ -75,8 +67,6 @@
75
67
  :uuid: '00000095-0000-1000-8000-0026BB765291'
76
68
  :format: uint8
77
69
  :unit: nil
78
- :permissions:
79
- - securedRead
80
70
  :properties:
81
71
  - read
82
72
  - cnotify
@@ -94,24 +84,21 @@
94
84
  :uuid: 00000005-0000-1000-8000-0026BB765291
95
85
  :format: bool
96
86
  :unit: nil
97
- :permissions:
98
- - securedRead
99
- - securedWrite
100
87
  :properties:
101
88
  - read
102
89
  - write
103
90
  - cnotify
104
- :constraints:
91
+ - uncnotify
92
+ :constraints:
105
93
  - :name: :battery_level
106
94
  :description: Battery Level
107
95
  :uuid: '00000068-0000-1000-8000-0026BB765291'
108
96
  :format: uint8
109
97
  :unit: '"percentage"'
110
- :permissions:
111
- - securedRead
112
98
  :properties:
113
99
  - read
114
100
  - cnotify
101
+ - uncnotify
115
102
  :constraints:
116
103
  MaximumValue: 100
117
104
  MinimumValue: 0
@@ -121,13 +108,11 @@
121
108
  :uuid: '00000008-0000-1000-8000-0026BB765291'
122
109
  :format: int32
123
110
  :unit: '"percentage"'
124
- :permissions:
125
- - securedRead
126
- - securedWrite
127
111
  :properties:
128
112
  - read
129
113
  - write
130
114
  - cnotify
115
+ - uncnotify
131
116
  :constraints:
132
117
  MaximumValue: 100
133
118
  MinimumValue: 0
@@ -137,8 +122,6 @@
137
122
  :uuid: '00000092-0000-1000-8000-0026BB765291'
138
123
  :format: uint8
139
124
  :unit: nil
140
- :permissions:
141
- - securedRead
142
125
  :properties:
143
126
  - read
144
127
  - cnotify
@@ -152,11 +135,10 @@
152
135
  :uuid: '00000093-0000-1000-8000-0026BB765291'
153
136
  :format: float
154
137
  :unit: nil
155
- :permissions:
156
- - securedRead
157
138
  :properties:
158
139
  - read
159
140
  - cnotify
141
+ - uncnotify
160
142
  :constraints:
161
143
  MaximumValue: 100000
162
144
  MinimumValue: 0
@@ -165,11 +147,10 @@
165
147
  :uuid: '00000094-0000-1000-8000-0026BB765291'
166
148
  :format: float
167
149
  :unit: nil
168
- :permissions:
169
- - securedRead
170
150
  :properties:
171
151
  - read
172
152
  - cnotify
153
+ - uncnotify
173
154
  :constraints:
174
155
  MaximumValue: 100000
175
156
  MinimumValue: 0
@@ -178,8 +159,6 @@
178
159
  :uuid: '00000069-0000-1000-8000-0026BB765291'
179
160
  :format: uint8
180
161
  :unit: nil
181
- :permissions:
182
- - securedRead
183
162
  :properties:
184
163
  - read
185
164
  - cnotify
@@ -193,11 +172,10 @@
193
172
  :uuid: '00000090-0000-1000-8000-0026BB765291'
194
173
  :format: float
195
174
  :unit: nil
196
- :permissions:
197
- - securedRead
198
175
  :properties:
199
176
  - read
200
177
  - cnotify
178
+ - uncnotify
201
179
  :constraints:
202
180
  MaximumValue: 100
203
181
  MinimumValue: 0
@@ -206,11 +184,10 @@
206
184
  :uuid: '00000091-0000-1000-8000-0026BB765291'
207
185
  :format: float
208
186
  :unit: nil
209
- :permissions:
210
- - securedRead
211
187
  :properties:
212
188
  - read
213
189
  - cnotify
190
+ - uncnotify
214
191
  :constraints:
215
192
  MaximumValue: 100
216
193
  MinimumValue: 0
@@ -219,11 +196,10 @@
219
196
  :uuid: '0000008F-0000-1000-8000-0026BB765291'
220
197
  :format: uint8
221
198
  :unit: nil
222
- :permissions:
223
- - securedRead
224
199
  :properties:
225
200
  - read
226
201
  - cnotify
202
+ - uncnotify
227
203
  :constraints:
228
204
  ValidValues:
229
205
  '0': Not Charging
@@ -234,13 +210,11 @@
234
210
  :uuid: 000000CE-0000-1000-8000-0026BB765291
235
211
  :format: uint32
236
212
  :unit: nil
237
- :permissions:
238
- - securedRead
239
- - securedWrite
240
213
  :properties:
241
214
  - read
242
215
  - write
243
216
  - cnotify
217
+ - uncnotify
244
218
  :constraints:
245
219
  MaximumValue: 500
246
220
  MinimumValue: 140
@@ -250,8 +224,6 @@
250
224
  :uuid: 0000006A-0000-1000-8000-0026BB765291
251
225
  :format: uint8
252
226
  :unit: nil
253
- :permissions:
254
- - securedRead
255
227
  :properties:
256
228
  - read
257
229
  - cnotify
@@ -265,13 +237,11 @@
265
237
  :uuid: 0000000D-0000-1000-8000-0026BB765291
266
238
  :format: float
267
239
  :unit: '"celsius"'
268
- :permissions:
269
- - securedRead
270
- - securedWrite
271
240
  :properties:
272
241
  - read
273
242
  - write
274
243
  - cnotify
244
+ - uncnotify
275
245
  :constraints:
276
246
  MaximumValue: 35
277
247
  MinimumValue: 10
@@ -281,11 +251,10 @@
281
251
  :uuid: 000000A9-0000-1000-8000-0026BB765291
282
252
  :format: uint8
283
253
  :unit: nil
284
- :permissions:
285
- - securedRead
286
254
  :properties:
287
255
  - read
288
256
  - cnotify
257
+ - uncnotify
289
258
  :constraints:
290
259
  ValidValues:
291
260
  '0': Inactive
@@ -296,11 +265,10 @@
296
265
  :uuid: 0000006B-0000-1000-8000-0026BB765291
297
266
  :format: float
298
267
  :unit: '"lux"'
299
- :permissions:
300
- - securedRead
301
268
  :properties:
302
269
  - read
303
270
  - cnotify
271
+ - uncnotify
304
272
  :constraints:
305
273
  MaximumValue: 100000
306
274
  MinimumValue: 0.0001
@@ -309,8 +277,6 @@
309
277
  :uuid: 0000000E-0000-1000-8000-0026BB765291
310
278
  :format: uint8
311
279
  :unit: nil
312
- :permissions:
313
- - securedRead
314
280
  :properties:
315
281
  - read
316
282
  - cnotify
@@ -327,11 +293,10 @@
327
293
  :uuid: 000000AF-0000-1000-8000-0026BB765291
328
294
  :format: uint8
329
295
  :unit: nil
330
- :permissions:
331
- - securedRead
332
296
  :properties:
333
297
  - read
334
298
  - cnotify
299
+ - uncnotify
335
300
  :constraints:
336
301
  ValidValues:
337
302
  '0': Inactive
@@ -342,11 +307,10 @@
342
307
  :uuid: 000000B1-0000-1000-8000-0026BB765291
343
308
  :format: uint8
344
309
  :unit: nil
345
- :permissions:
346
- - securedRead
347
310
  :properties:
348
311
  - read
349
312
  - cnotify
313
+ - uncnotify
350
314
  :constraints:
351
315
  ValidValues:
352
316
  '0': Inactive
@@ -358,8 +322,6 @@
358
322
  :uuid: 0000000F-0000-1000-8000-0026BB765291
359
323
  :format: uint8
360
324
  :unit: nil
361
- :permissions:
362
- - securedRead
363
325
  :properties:
364
326
  - read
365
327
  - cnotify
@@ -374,11 +336,10 @@
374
336
  :uuid: 0000006C-0000-1000-8000-0026BB765291
375
337
  :format: int32
376
338
  :unit: '"arcdegrees"'
377
- :permissions:
378
- - securedRead
379
339
  :properties:
380
340
  - read
381
341
  - cnotify
342
+ - uncnotify
382
343
  :constraints:
383
344
  MaximumValue: 90
384
345
  MinimumValue: -90
@@ -388,11 +349,10 @@
388
349
  :uuid: 000000B3-0000-1000-8000-0026BB765291
389
350
  :format: uint8
390
351
  :unit: nil
391
- :permissions:
392
- - securedRead
393
352
  :properties:
394
353
  - read
395
354
  - cnotify
355
+ - uncnotify
396
356
  :constraints:
397
357
  ValidValues:
398
358
  '0': Inactive
@@ -404,11 +364,10 @@
404
364
  :uuid: 0000006D-0000-1000-8000-0026BB765291
405
365
  :format: uint8
406
366
  :unit: '"percentage"'
407
- :permissions:
408
- - securedRead
409
367
  :properties:
410
368
  - read
411
369
  - cnotify
370
+ - uncnotify
412
371
  :constraints:
413
372
  MaximumValue: 100
414
373
  MinimumValue: 0
@@ -418,11 +377,10 @@
418
377
  :uuid: 00000010-0000-1000-8000-0026BB765291
419
378
  :format: float
420
379
  :unit: '"percentage"'
421
- :permissions:
422
- - securedRead
423
380
  :properties:
424
381
  - read
425
382
  - cnotify
383
+ - uncnotify
426
384
  :constraints:
427
385
  MaximumValue: 100
428
386
  MinimumValue: 0
@@ -432,11 +390,10 @@
432
390
  :uuid: 000000AA-0000-1000-8000-0026BB765291
433
391
  :format: uint8
434
392
  :unit: nil
435
- :permissions:
436
- - securedRead
437
393
  :properties:
438
394
  - read
439
395
  - cnotify
396
+ - uncnotify
440
397
  :constraints:
441
398
  ValidValues:
442
399
  '0': Fixed
@@ -447,11 +404,10 @@
447
404
  :uuid: 00000011-0000-1000-8000-0026BB765291
448
405
  :format: float
449
406
  :unit: '"celsius"'
450
- :permissions:
451
- - securedRead
452
407
  :properties:
453
408
  - read
454
409
  - cnotify
410
+ - uncnotify
455
411
  :constraints:
456
412
  MaximumValue: 100
457
413
  MinimumValue: 0
@@ -461,11 +417,10 @@
461
417
  :uuid: 000000C1-0000-1000-8000-0026BB765291
462
418
  :format: int32
463
419
  :unit: '"arcdegrees"'
464
- :permissions:
465
- - securedRead
466
420
  :properties:
467
421
  - read
468
422
  - cnotify
423
+ - uncnotify
469
424
  :constraints:
470
425
  MaximumValue: 90
471
426
  MinimumValue: -90
@@ -475,11 +430,10 @@
475
430
  :uuid: 0000006E-0000-1000-8000-0026BB765291
476
431
  :format: int32
477
432
  :unit: '"arcdegrees"'
478
- :permissions:
479
- - securedRead
480
433
  :properties:
481
434
  - read
482
435
  - cnotify
436
+ - uncnotify
483
437
  :constraints:
484
438
  MaximumValue: 90
485
439
  MinimumValue: -90
@@ -489,24 +443,21 @@
489
443
  :uuid: 0000011D-0000-1000-8000-0026BB765291
490
444
  :format: float
491
445
  :unit: nil
492
- :permissions:
493
- - securedRead
494
- - securedWrite
495
446
  :properties:
496
447
  - read
497
448
  - write
498
449
  - cnotify
499
- :constraints:
450
+ - uncnotify
451
+ :constraints:
500
452
  - :name: :filter_change_indication
501
453
  :description: Filter Change Indication
502
454
  :uuid: 000000AC-0000-1000-8000-0026BB765291
503
455
  :format: uint8
504
456
  :unit: nil
505
- :permissions:
506
- - securedRead
507
457
  :properties:
508
458
  - read
509
459
  - cnotify
460
+ - uncnotify
510
461
  :constraints:
511
462
  ValidValues:
512
463
  '0': Filter OK
@@ -516,11 +467,10 @@
516
467
  :uuid: 000000AB-0000-1000-8000-0026BB765291
517
468
  :format: float
518
469
  :unit: nil
519
- :permissions:
520
- - securedRead
521
470
  :properties:
522
471
  - read
523
472
  - cnotify
473
+ - uncnotify
524
474
  :constraints:
525
475
  MaximumValue: 100
526
476
  MinimumValue: 0
@@ -530,33 +480,27 @@
530
480
  :uuid: 00000052-0000-1000-8000-0026BB765291
531
481
  :format: string
532
482
  :unit: nil
533
- :permissions:
534
- - securedRead
535
483
  :properties:
536
484
  - read
537
- :constraints:
485
+ :constraints:
538
486
  - :name: :hardware_revision
539
487
  :description: Hardware Revision
540
488
  :uuid: 00000053-0000-1000-8000-0026BB765291
541
489
  :format: string
542
490
  :unit: nil
543
- :permissions:
544
- - securedRead
545
491
  :properties:
546
492
  - read
547
- :constraints:
493
+ :constraints:
548
494
  - :name: :heating_threshold_temperature
549
495
  :description: Heating Threshold Temperature
550
496
  :uuid: 00000012-0000-1000-8000-0026BB765291
551
497
  :format: float
552
498
  :unit: '"celsius"'
553
- :permissions:
554
- - securedRead
555
- - securedWrite
556
499
  :properties:
557
500
  - read
558
501
  - write
559
502
  - cnotify
503
+ - uncnotify
560
504
  :constraints:
561
505
  MaximumValue: 25
562
506
  MinimumValue: 0
@@ -566,23 +510,19 @@
566
510
  :uuid: 0000006F-0000-1000-8000-0026BB765291
567
511
  :format: bool
568
512
  :unit: nil
569
- :permissions:
570
- - securedWrite
571
513
  :properties:
572
514
  - write
573
- :constraints:
515
+ :constraints:
574
516
  - :name: :hue
575
517
  :description: Hue
576
518
  :uuid: 00000013-0000-1000-8000-0026BB765291
577
519
  :format: float
578
520
  :unit: '"arcdegrees"'
579
- :permissions:
580
- - securedRead
581
- - securedWrite
582
521
  :properties:
583
522
  - read
584
523
  - write
585
524
  - cnotify
525
+ - uncnotify
586
526
  :constraints:
587
527
  MaximumValue: 360
588
528
  MinimumValue: 0
@@ -592,47 +532,66 @@
592
532
  :uuid: 00000014-0000-1000-8000-0026BB765291
593
533
  :format: bool
594
534
  :unit: nil
595
- :permissions:
596
- - securedWrite
597
535
  :properties:
598
536
  - write
599
- :constraints:
537
+ :constraints:
600
538
  - :name: :image_mirroring
601
539
  :description: Image Mirroring
602
540
  :uuid: 0000011F-0000-1000-8000-0026BB765291
603
541
  :format: bool
604
542
  :unit: nil
605
- :permissions:
606
- - securedRead
607
- - securedWrite
608
543
  :properties:
609
544
  - read
610
545
  - write
611
546
  - cnotify
612
- :constraints:
547
+ - uncnotify
548
+ :constraints:
613
549
  - :name: :image_rotation
614
550
  :description: Image Rotation
615
551
  :uuid: 0000011E-0000-1000-8000-0026BB765291
616
552
  :format: float
617
553
  :unit: '"arcdegrees"'
618
- :permissions:
619
- - securedRead
620
- - securedWrite
621
554
  :properties:
622
555
  - read
623
556
  - write
624
557
  - cnotify
558
+ - uncnotify
625
559
  :constraints:
626
560
  MaximumValue: 270
627
561
  MinimumValue: 0
628
562
  StepValue: 90
563
+ - :name: :in_use
564
+ :description: In Use
565
+ :uuid: 000000D2-0000-1000-8000-0026BB765291
566
+ :format: uint8
567
+ :unit: nil
568
+ :properties:
569
+ - read
570
+ - cnotify
571
+ - uncnotify
572
+ :constraints:
573
+ ValidValues:
574
+ '0': Not in use
575
+ '1': In use
576
+ - :name: :is_configured
577
+ :description: Is Configured
578
+ :uuid: 000000D6-0000-1000-8000-0026BB765291
579
+ :format: uint8
580
+ :unit: nil
581
+ :properties:
582
+ - read
583
+ - write
584
+ - cnotify
585
+ - uncnotify
586
+ :constraints:
587
+ ValidValues:
588
+ '0': Not Configured
589
+ '1': Configured
629
590
  - :name: :leak_detected
630
591
  :description: Leak Detected
631
592
  :uuid: 00000070-0000-1000-8000-0026BB765291
632
593
  :format: uint8
633
594
  :unit: nil
634
- :permissions:
635
- - securedRead
636
595
  :properties:
637
596
  - read
638
597
  - cnotify
@@ -646,18 +605,14 @@
646
605
  :uuid: '00000019-0000-1000-8000-0026BB765291'
647
606
  :format: tlv8
648
607
  :unit: nil
649
- :permissions:
650
- - securedWrite
651
608
  :properties:
652
609
  - write
653
- :constraints:
610
+ :constraints:
654
611
  - :name: :lock_current_state
655
612
  :description: Lock Current State
656
613
  :uuid: 0000001D-0000-1000-8000-0026BB765291
657
614
  :format: uint8
658
615
  :unit: nil
659
- :permissions:
660
- - securedRead
661
616
  :properties:
662
617
  - read
663
618
  - cnotify
@@ -673,11 +628,10 @@
673
628
  :uuid: 0000001C-0000-1000-8000-0026BB765291
674
629
  :format: uint8
675
630
  :unit: nil
676
- :permissions:
677
- - securedRead
678
631
  :properties:
679
632
  - read
680
633
  - cnotify
634
+ - uncnotify
681
635
  :constraints:
682
636
  ValidValues:
683
637
  '0': Secured Physically, Interior
@@ -694,26 +648,22 @@
694
648
  :uuid: 0000001A-0000-1000-8000-0026BB765291
695
649
  :format: uint32
696
650
  :unit: '"seconds"'
697
- :permissions:
698
- - securedRead
699
- - securedWrite
700
651
  :properties:
701
652
  - read
702
653
  - write
703
654
  - cnotify
704
- :constraints:
655
+ - uncnotify
656
+ :constraints:
705
657
  - :name: :lock_physical_controls
706
658
  :description: Lock Physical Controls
707
659
  :uuid: 000000A7-0000-1000-8000-0026BB765291
708
660
  :format: uint8
709
661
  :unit: nil
710
- :permissions:
711
- - securedRead
712
- - securedWrite
713
662
  :properties:
714
663
  - read
715
664
  - write
716
665
  - cnotify
666
+ - uncnotify
717
667
  :constraints:
718
668
  ValidValues:
719
669
  '0': Control Lock Disabled
@@ -723,9 +673,6 @@
723
673
  :uuid: 0000001E-0000-1000-8000-0026BB765291
724
674
  :format: uint8
725
675
  :unit: nil
726
- :permissions:
727
- - securedRead
728
- - securedWrite
729
676
  :properties:
730
677
  - read
731
678
  - write
@@ -740,87 +687,72 @@
740
687
  :uuid: 0000001F-0000-1000-8000-0026BB765291
741
688
  :format: tlv8
742
689
  :unit: nil
743
- :permissions:
744
- - securedRead
745
690
  :properties:
746
691
  - read
747
692
  - cnotify
748
- :constraints:
693
+ - uncnotify
694
+ :constraints:
749
695
  - :name: :manufacturer
750
696
  :description: Manufacturer
751
697
  :uuid: 00000020-0000-1000-8000-0026BB765291
752
698
  :format: string
753
699
  :unit: nil
754
- :permissions:
755
- - securedRead
756
700
  :properties:
757
701
  - read
758
- :constraints:
702
+ :constraints:
759
703
  - :name: :model
760
704
  :description: Model
761
705
  :uuid: 00000021-0000-1000-8000-0026BB765291
762
706
  :format: string
763
707
  :unit: nil
764
- :permissions:
765
- - securedRead
766
708
  :properties:
767
709
  - read
768
- :constraints:
710
+ :constraints:
769
711
  - :name: :motion_detected
770
712
  :description: Motion Detected
771
713
  :uuid: 00000022-0000-1000-8000-0026BB765291
772
714
  :format: bool
773
715
  :unit: nil
774
- :permissions:
775
- - securedRead
776
716
  :properties:
777
717
  - read
778
718
  - cnotify
779
719
  - uncnotify
780
- :constraints:
720
+ :constraints:
781
721
  - :name: :mute
782
722
  :description: Mute
783
723
  :uuid: 0000011A-0000-1000-8000-0026BB765291
784
724
  :format: bool
785
725
  :unit: nil
786
- :permissions:
787
- - securedRead
788
- - securedWrite
789
726
  :properties:
790
727
  - read
791
728
  - write
792
729
  - cnotify
793
- :constraints:
730
+ - uncnotify
731
+ :constraints:
794
732
  - :name: :name
795
733
  :description: Name
796
734
  :uuid: 00000023-0000-1000-8000-0026BB765291
797
735
  :format: string
798
736
  :unit: nil
799
- :permissions:
800
- - securedRead
801
737
  :properties:
802
738
  - read
803
- :constraints:
739
+ :constraints:
804
740
  - :name: :night_vision
805
741
  :description: Night Vision
806
742
  :uuid: 0000011B-0000-1000-8000-0026BB765291
807
743
  :format: bool
808
744
  :unit: nil
809
- :permissions:
810
- - securedRead
811
- - securedWrite
812
745
  :properties:
813
746
  - read
814
747
  - write
815
748
  - cnotify
816
- :constraints:
749
+ - uncnotify
750
+ :constraints:
817
751
  - :name: :nitrogen_dioxide_density
818
752
  :description: Nitrogen Dioxide Density
819
753
  :uuid: 000000C4-0000-1000-8000-0026BB765291
820
754
  :format: float
821
755
  :unit: nil
822
- :permissions:
823
- - securedRead
824
756
  :properties:
825
757
  - read
826
758
  - cnotify
@@ -834,20 +766,16 @@
834
766
  :uuid: 00000024-0000-1000-8000-0026BB765291
835
767
  :format: bool
836
768
  :unit: nil
837
- :permissions:
838
- - securedRead
839
769
  :properties:
840
770
  - read
841
771
  - cnotify
842
772
  - uncnotify
843
- :constraints:
773
+ :constraints:
844
774
  - :name: :occupancy_detected
845
775
  :description: Occupancy Detected
846
776
  :uuid: 00000071-0000-1000-8000-0026BB765291
847
777
  :format: uint8
848
778
  :unit: nil
849
- :permissions:
850
- - securedRead
851
779
  :properties:
852
780
  - read
853
781
  - cnotify
@@ -861,45 +789,38 @@
861
789
  :uuid: 00000025-0000-1000-8000-0026BB765291
862
790
  :format: bool
863
791
  :unit: nil
864
- :permissions:
865
- - securedRead
866
- - securedWrite
867
792
  :properties:
868
793
  - read
869
794
  - write
870
795
  - cnotify
871
- :constraints:
796
+ - uncnotify
797
+ :constraints:
872
798
  - :name: :optical_zoom
873
799
  :description: Optical Zoom
874
800
  :uuid: 0000011C-0000-1000-8000-0026BB765291
875
801
  :format: float
876
802
  :unit: nil
877
- :permissions:
878
- - securedRead
879
- - securedWrite
880
803
  :properties:
881
804
  - read
882
805
  - write
883
806
  - cnotify
884
- :constraints:
807
+ - uncnotify
808
+ :constraints:
885
809
  - :name: :outlet_in_use
886
810
  :description: Outlet In Use
887
811
  :uuid: 00000026-0000-1000-8000-0026BB765291
888
812
  :format: bool
889
813
  :unit: nil
890
- :permissions:
891
- - securedRead
892
814
  :properties:
893
815
  - read
894
816
  - cnotify
895
- :constraints:
817
+ - uncnotify
818
+ :constraints:
896
819
  - :name: :ozone_density
897
820
  :description: Ozone Density
898
821
  :uuid: 000000C3-0000-1000-8000-0026BB765291
899
822
  :format: float
900
823
  :unit: nil
901
- :permissions:
902
- - securedRead
903
824
  :properties:
904
825
  - read
905
826
  - cnotify
@@ -913,54 +834,41 @@
913
834
  :uuid: 0000004C-0000-1000-8000-0026BB765291
914
835
  :format: tlv8
915
836
  :unit: nil
916
- :permissions:
917
- - read
918
- - write
919
837
  :properties:
920
838
  - read
921
839
  - write
922
- :constraints:
840
+ :constraints:
923
841
  - :name: :pair_verify
924
842
  :description: Pair Verify
925
843
  :uuid: 0000004E-0000-1000-8000-0026BB765291
926
844
  :format: tlv8
927
845
  :unit: nil
928
- :permissions:
929
- - read
930
- - write
931
846
  :properties:
932
847
  - read
933
848
  - write
934
- :constraints:
849
+ :constraints:
935
850
  - :name: :pairing_features
936
851
  :description: Pairing Features
937
852
  :uuid: 0000004F-0000-1000-8000-0026BB765291
938
853
  :format: uint8
939
854
  :unit: nil
940
- :permissions:
941
- - read
942
855
  :properties:
943
856
  - read
944
- :constraints:
857
+ :constraints:
945
858
  - :name: :pairing_pairings
946
859
  :description: Pairing Pairings
947
860
  :uuid: 00000050-0000-1000-8000-0026BB765291
948
861
  :format: tlv8
949
862
  :unit: nil
950
- :permissions:
951
- - securedRead
952
- - securedWrite
953
863
  :properties:
954
864
  - read
955
865
  - write
956
- :constraints:
866
+ :constraints:
957
867
  - :name: :pm10_density
958
868
  :description: PM10 Density
959
869
  :uuid: 000000C7-0000-1000-8000-0026BB765291
960
870
  :format: float
961
871
  :unit: nil
962
- :permissions:
963
- - securedRead
964
872
  :properties:
965
873
  - read
966
874
  - cnotify
@@ -974,8 +882,6 @@
974
882
  :uuid: 000000C6-0000-1000-8000-0026BB765291
975
883
  :format: float
976
884
  :unit: nil
977
- :permissions:
978
- - securedRead
979
885
  :properties:
980
886
  - read
981
887
  - cnotify
@@ -989,26 +895,38 @@
989
895
  :uuid: 00000072-0000-1000-8000-0026BB765291
990
896
  :format: uint8
991
897
  :unit: nil
992
- :permissions:
993
- - securedRead
994
898
  :properties:
995
899
  - read
996
900
  - cnotify
901
+ - uncnotify
997
902
  :constraints:
998
903
  ValidValues:
999
904
  '0': Decreasing
1000
905
  '1': Increasing
1001
906
  '2': Stopped
907
+ - :name: :program_mode
908
+ :description: Program Mode
909
+ :uuid: 000000D1-0000-1000-8000-0026BB765291
910
+ :format: uint8
911
+ :unit: nil
912
+ :properties:
913
+ - read
914
+ - cnotify
915
+ - uncnotify
916
+ :constraints:
917
+ ValidValues:
918
+ '0': No program scheduled
919
+ '1': Program scheduled
920
+ '2': Program scheduled (Manual Mode)
1002
921
  - :name: :programmable_switch_event
1003
922
  :description: Programmable Switch Event
1004
923
  :uuid: 00000073-0000-1000-8000-0026BB765291
1005
924
  :format: uint8
1006
925
  :unit: nil
1007
- :permissions:
1008
- - securedRead
1009
926
  :properties:
1010
927
  - read
1011
928
  - cnotify
929
+ - uncnotify
1012
930
  :constraints:
1013
931
  ValidValues:
1014
932
  '0': Single Press
@@ -1018,14 +936,12 @@
1018
936
  :description: Relative Humidity Dehumidifier Threshold
1019
937
  :uuid: 000000C9-0000-1000-8000-0026BB765291
1020
938
  :format: float
1021
- :unit: nil
1022
- :permissions:
1023
- - securedRead
1024
- - securedWrite
939
+ :unit: '"percentage"'
1025
940
  :properties:
1026
941
  - read
1027
942
  - write
1028
943
  - cnotify
944
+ - uncnotify
1029
945
  :constraints:
1030
946
  MaximumValue: 100
1031
947
  MinimumValue: 0
@@ -1034,25 +950,34 @@
1034
950
  :description: Relative Humidity Humidifier Threshold
1035
951
  :uuid: 000000CA-0000-1000-8000-0026BB765291
1036
952
  :format: float
1037
- :unit: nil
1038
- :permissions:
1039
- - securedRead
1040
- - securedWrite
953
+ :unit: '"percentage"'
1041
954
  :properties:
1042
955
  - read
1043
956
  - write
1044
957
  - cnotify
958
+ - uncnotify
1045
959
  :constraints:
1046
960
  MaximumValue: 100
1047
961
  MinimumValue: 0
1048
962
  StepValue: 1
963
+ - :name: :remaining_duration
964
+ :description: Remaining Duration
965
+ :uuid: 000000D4-0000-1000-8000-0026BB765291
966
+ :format: uint32
967
+ :unit: nil
968
+ :properties:
969
+ - read
970
+ - cnotify
971
+ - uncnotify
972
+ :constraints:
973
+ MaximumValue: 3600
974
+ MinimumValue: 0
975
+ StepValue: 1
1049
976
  - :name: :reset_filter_indication
1050
977
  :description: Reset Filter Indication
1051
978
  :uuid: 000000AD-0000-1000-8000-0026BB765291
1052
979
  :format: uint8
1053
980
  :unit: nil
1054
- :permissions:
1055
- - securedWrite
1056
981
  :properties:
1057
982
  - write
1058
983
  :constraints:
@@ -1064,13 +989,11 @@
1064
989
  :uuid: '00000028-0000-1000-8000-0026BB765291'
1065
990
  :format: int32
1066
991
  :unit: nil
1067
- :permissions:
1068
- - securedRead
1069
- - securedWrite
1070
992
  :properties:
1071
993
  - read
1072
994
  - write
1073
995
  - cnotify
996
+ - uncnotify
1074
997
  :constraints:
1075
998
  ValidValues:
1076
999
  '0': Clockwise
@@ -1080,13 +1003,11 @@
1080
1003
  :uuid: '00000029-0000-1000-8000-0026BB765291'
1081
1004
  :format: float
1082
1005
  :unit: '"percentage"'
1083
- :permissions:
1084
- - securedRead
1085
- - securedWrite
1086
1006
  :properties:
1087
1007
  - read
1088
1008
  - write
1089
1009
  - cnotify
1010
+ - uncnotify
1090
1011
  :constraints:
1091
1012
  MaximumValue: 100
1092
1013
  MinimumValue: 0
@@ -1096,13 +1017,11 @@
1096
1017
  :uuid: 0000002F-0000-1000-8000-0026BB765291
1097
1018
  :format: float
1098
1019
  :unit: '"percentage"'
1099
- :permissions:
1100
- - securedRead
1101
- - securedWrite
1102
1020
  :properties:
1103
1021
  - read
1104
1022
  - write
1105
1023
  - cnotify
1024
+ - uncnotify
1106
1025
  :constraints:
1107
1026
  MaximumValue: 100
1108
1027
  MinimumValue: 0
@@ -1112,11 +1031,10 @@
1112
1031
  :uuid: '0000008E-0000-1000-8000-0026BB765291'
1113
1032
  :format: uint8
1114
1033
  :unit: nil
1115
- :permissions:
1116
- - securedRead
1117
1034
  :properties:
1118
1035
  - read
1119
1036
  - cnotify
1037
+ - uncnotify
1120
1038
  :constraints:
1121
1039
  MaximumValue: 1
1122
1040
  MinimumValue: 0
@@ -1126,8 +1044,6 @@
1126
1044
  :uuid: 00000066-0000-1000-8000-0026BB765291
1127
1045
  :format: uint8
1128
1046
  :unit: nil
1129
- :permissions:
1130
- - securedRead
1131
1047
  :properties:
1132
1048
  - read
1133
1049
  - cnotify
@@ -1144,13 +1060,11 @@
1144
1060
  :uuid: 00000067-0000-1000-8000-0026BB765291
1145
1061
  :format: uint8
1146
1062
  :unit: nil
1147
- :permissions:
1148
- - securedRead
1149
- - securedWrite
1150
1063
  :properties:
1151
1064
  - read
1152
1065
  - write
1153
1066
  - cnotify
1067
+ - uncnotify
1154
1068
  :constraints:
1155
1069
  ValidValues:
1156
1070
  '0': Stay Arm
@@ -1162,20 +1076,15 @@
1162
1076
  :uuid: 00000117-0000-1000-8000-0026BB765291
1163
1077
  :format: tlv8
1164
1078
  :unit: nil
1165
- :permissions:
1166
- - securedRead
1167
- - securedWrite
1168
1079
  :properties:
1169
1080
  - read
1170
1081
  - write
1171
- :constraints:
1082
+ :constraints:
1172
1083
  - :name: :serial_number
1173
1084
  :description: Serial Number
1174
1085
  :uuid: 00000030-0000-1000-8000-0026BB765291
1175
1086
  :format: string
1176
1087
  :unit: nil
1177
- :permissions:
1178
- - securedRead
1179
1088
  :properties:
1180
1089
  - read
1181
1090
  :constraints:
@@ -1185,8 +1094,6 @@
1185
1094
  :uuid: 000000CB-0000-1000-8000-0026BB765291
1186
1095
  :format: uint8
1187
1096
  :unit: nil
1188
- :permissions:
1189
- - securedRead
1190
1097
  :properties:
1191
1098
  - read
1192
1099
  :constraints:
@@ -1198,33 +1105,40 @@
1198
1105
  :uuid: 000000CD-0000-1000-8000-0026BB765291
1199
1106
  :format: uint8
1200
1107
  :unit: nil
1201
- :permissions:
1202
- - securedRead
1203
1108
  :properties:
1204
1109
  - read
1205
1110
  :constraints:
1206
1111
  ValidValues:
1207
1112
  '0': Dots
1208
1113
  '1': Arabic Numerals
1114
+ - :name: :set_duration
1115
+ :description: Set Duration
1116
+ :uuid: 000000D3-0000-1000-8000-0026BB765291
1117
+ :format: uint32
1118
+ :unit: nil
1119
+ :properties:
1120
+ - read
1121
+ - write
1122
+ - cnotify
1123
+ - uncnotify
1124
+ :constraints:
1125
+ MaximumValue: 3600
1126
+ MinimumValue: 0
1127
+ StepValue: 1
1209
1128
  - :name: :setup_endpoints
1210
1129
  :description: Setup Endpoints
1211
1130
  :uuid: '00000118-0000-1000-8000-0026BB765291'
1212
1131
  :format: tlv8
1213
1132
  :unit: nil
1214
- :permissions:
1215
- - securedRead
1216
- - securedWrite
1217
1133
  :properties:
1218
1134
  - read
1219
1135
  - write
1220
- :constraints:
1136
+ :constraints:
1221
1137
  - :name: :slat_type
1222
1138
  :description: Slat Type
1223
1139
  :uuid: 000000C0-0000-1000-8000-0026BB765291
1224
1140
  :format: uint8
1225
1141
  :unit: nil
1226
- :permissions:
1227
- - securedRead
1228
1142
  :properties:
1229
1143
  - read
1230
1144
  :constraints:
@@ -1236,8 +1150,6 @@
1236
1150
  :uuid: 00000076-0000-1000-8000-0026BB765291
1237
1151
  :format: uint8
1238
1152
  :unit: nil
1239
- :permissions:
1240
- - securedRead
1241
1153
  :properties:
1242
1154
  - read
1243
1155
  - cnotify
@@ -1251,19 +1163,16 @@
1251
1163
  :uuid: 00000075-0000-1000-8000-0026BB765291
1252
1164
  :format: bool
1253
1165
  :unit: nil
1254
- :permissions:
1255
- - securedRead
1256
1166
  :properties:
1257
1167
  - read
1258
1168
  - cnotify
1259
- :constraints:
1169
+ - uncnotify
1170
+ :constraints:
1260
1171
  - :name: :status_fault
1261
1172
  :description: Status Fault
1262
1173
  :uuid: 00000077-0000-1000-8000-0026BB765291
1263
1174
  :format: uint8
1264
1175
  :unit: nil
1265
- :permissions:
1266
- - securedRead
1267
1176
  :properties:
1268
1177
  - read
1269
1178
  - cnotify
@@ -1277,8 +1186,6 @@
1277
1186
  :uuid: '00000078-0000-1000-8000-0026BB765291'
1278
1187
  :format: uint8
1279
1188
  :unit: nil
1280
- :permissions:
1281
- - securedRead
1282
1189
  :properties:
1283
1190
  - read
1284
1191
  - cnotify
@@ -1292,8 +1199,6 @@
1292
1199
  :uuid: '00000079-0000-1000-8000-0026BB765291'
1293
1200
  :format: uint8
1294
1201
  :unit: nil
1295
- :permissions:
1296
- - securedRead
1297
1202
  :properties:
1298
1203
  - read
1299
1204
  - cnotify
@@ -1307,8 +1212,6 @@
1307
1212
  :uuid: 0000007A-0000-1000-8000-0026BB765291
1308
1213
  :format: uint8
1309
1214
  :unit: nil
1310
- :permissions:
1311
- - securedRead
1312
1215
  :properties:
1313
1216
  - read
1314
1217
  - cnotify
@@ -1322,19 +1225,16 @@
1322
1225
  :uuid: 00000120-0000-1000-8000-0026BB765291
1323
1226
  :format: tlv8
1324
1227
  :unit: nil
1325
- :permissions:
1326
- - securedRead
1327
1228
  :properties:
1328
1229
  - read
1329
1230
  - cnotify
1330
- :constraints:
1231
+ - uncnotify
1232
+ :constraints:
1331
1233
  - :name: :sulphur_dioxide_density
1332
1234
  :description: Sulphur Dioxide Density
1333
1235
  :uuid: 000000C5-0000-1000-8000-0026BB765291
1334
1236
  :format: float
1335
1237
  :unit: nil
1336
- :permissions:
1337
- - securedRead
1338
1238
  :properties:
1339
1239
  - read
1340
1240
  - cnotify
@@ -1348,43 +1248,35 @@
1348
1248
  :uuid: 00000115-0000-1000-8000-0026BB765291
1349
1249
  :format: tlv8
1350
1250
  :unit: nil
1351
- :permissions:
1352
- - securedRead
1353
1251
  :properties:
1354
1252
  - read
1355
- :constraints:
1253
+ :constraints:
1356
1254
  - :name: :supported_rtp_configuration
1357
1255
  :description: Supported RTP Configuration
1358
1256
  :uuid: 00000116-0000-1000-8000-0026BB765291
1359
1257
  :format: tlv8
1360
1258
  :unit: nil
1361
- :permissions:
1362
- - securedRead
1363
1259
  :properties:
1364
1260
  - read
1365
- :constraints:
1261
+ :constraints:
1366
1262
  - :name: :supported_video_stream_configuration
1367
1263
  :description: Supported Video Stream Configuration
1368
1264
  :uuid: 00000114-0000-1000-8000-0026BB765291
1369
1265
  :format: tlv8
1370
1266
  :unit: nil
1371
- :permissions:
1372
- - securedRead
1373
1267
  :properties:
1374
1268
  - read
1375
- :constraints:
1269
+ :constraints:
1376
1270
  - :name: :swing_mode
1377
1271
  :description: Swing Mode
1378
1272
  :uuid: 000000B6-0000-1000-8000-0026BB765291
1379
1273
  :format: uint8
1380
1274
  :unit: nil
1381
- :permissions:
1382
- - securedRead
1383
- - securedWrite
1384
1275
  :properties:
1385
1276
  - read
1386
1277
  - write
1387
1278
  - cnotify
1279
+ - uncnotify
1388
1280
  :constraints:
1389
1281
  ValidValues:
1390
1282
  '0': Swing Disabled
@@ -1394,13 +1286,11 @@
1394
1286
  :uuid: 000000A8-0000-1000-8000-0026BB765291
1395
1287
  :format: uint8
1396
1288
  :unit: nil
1397
- :permissions:
1398
- - securedRead
1399
- - securedWrite
1400
1289
  :properties:
1401
1290
  - read
1402
1291
  - write
1403
1292
  - cnotify
1293
+ - uncnotify
1404
1294
  :constraints:
1405
1295
  ValidValues:
1406
1296
  '0': Manual
@@ -1410,13 +1300,11 @@
1410
1300
  :uuid: 000000AE-0000-1000-8000-0026BB765291
1411
1301
  :format: uint8
1412
1302
  :unit: nil
1413
- :permissions:
1414
- - securedRead
1415
- - securedWrite
1416
1303
  :properties:
1417
1304
  - read
1418
1305
  - write
1419
1306
  - cnotify
1307
+ - uncnotify
1420
1308
  :constraints:
1421
1309
  ValidValues:
1422
1310
  '0': Excellent
@@ -1427,13 +1315,11 @@
1427
1315
  :uuid: 00000032-0000-1000-8000-0026BB765291
1428
1316
  :format: uint8
1429
1317
  :unit: nil
1430
- :permissions:
1431
- - securedRead
1432
- - securedWrite
1433
1318
  :properties:
1434
1319
  - read
1435
1320
  - write
1436
1321
  - cnotify
1322
+ - uncnotify
1437
1323
  :constraints:
1438
1324
  ValidValues:
1439
1325
  '0': Open
@@ -1443,13 +1329,11 @@
1443
1329
  :uuid: 000000BF-0000-1000-8000-0026BB765291
1444
1330
  :format: uint8
1445
1331
  :unit: nil
1446
- :permissions:
1447
- - securedRead
1448
- - securedWrite
1449
1332
  :properties:
1450
1333
  - read
1451
1334
  - write
1452
1335
  - cnotify
1336
+ - uncnotify
1453
1337
  :constraints:
1454
1338
  ValidValues:
1455
1339
  '0': Manual
@@ -1459,13 +1343,11 @@
1459
1343
  :uuid: 000000B2-0000-1000-8000-0026BB765291
1460
1344
  :format: uint8
1461
1345
  :unit: nil
1462
- :permissions:
1463
- - securedRead
1464
- - securedWrite
1465
1346
  :properties:
1466
1347
  - read
1467
1348
  - write
1468
1349
  - cnotify
1350
+ - uncnotify
1469
1351
  :constraints:
1470
1352
  ValidValues:
1471
1353
  '0': Auto
@@ -1476,13 +1358,11 @@
1476
1358
  :uuid: 00000033-0000-1000-8000-0026BB765291
1477
1359
  :format: uint8
1478
1360
  :unit: nil
1479
- :permissions:
1480
- - securedRead
1481
- - securedWrite
1482
1361
  :properties:
1483
1362
  - read
1484
1363
  - write
1485
1364
  - cnotify
1365
+ - uncnotify
1486
1366
  :constraints:
1487
1367
  ValidValues:
1488
1368
  '0': 'Off'
@@ -1494,13 +1374,11 @@
1494
1374
  :uuid: 0000007B-0000-1000-8000-0026BB765291
1495
1375
  :format: int32
1496
1376
  :unit: '"arcdegrees"'
1497
- :permissions:
1498
- - securedRead
1499
- - securedWrite
1500
1377
  :properties:
1501
1378
  - read
1502
1379
  - write
1503
1380
  - cnotify
1381
+ - uncnotify
1504
1382
  :constraints:
1505
1383
  MaximumValue: 90
1506
1384
  MinimumValue: -90
@@ -1510,13 +1388,11 @@
1510
1388
  :uuid: 000000B4-0000-1000-8000-0026BB765291
1511
1389
  :format: uint8
1512
1390
  :unit: nil
1513
- :permissions:
1514
- - securedRead
1515
- - securedWrite
1516
1391
  :properties:
1517
1392
  - read
1518
1393
  - write
1519
1394
  - cnotify
1395
+ - uncnotify
1520
1396
  :constraints:
1521
1397
  ValidValues:
1522
1398
  '0': Humidifier or Dehumidifier
@@ -1527,13 +1403,11 @@
1527
1403
  :uuid: 0000007C-0000-1000-8000-0026BB765291
1528
1404
  :format: uint8
1529
1405
  :unit: '"percentage"'
1530
- :permissions:
1531
- - securedRead
1532
- - securedWrite
1533
1406
  :properties:
1534
1407
  - read
1535
1408
  - write
1536
1409
  - cnotify
1410
+ - uncnotify
1537
1411
  :constraints:
1538
1412
  MaximumValue: 100
1539
1413
  MinimumValue: 0
@@ -1543,13 +1417,11 @@
1543
1417
  :uuid: 00000034-0000-1000-8000-0026BB765291
1544
1418
  :format: float
1545
1419
  :unit: '"percentage"'
1546
- :permissions:
1547
- - securedRead
1548
- - securedWrite
1549
1420
  :properties:
1550
1421
  - read
1551
1422
  - write
1552
1423
  - cnotify
1424
+ - uncnotify
1553
1425
  :constraints:
1554
1426
  MaximumValue: 100
1555
1427
  MinimumValue: 0
@@ -1559,13 +1431,11 @@
1559
1431
  :uuid: 000000BE-0000-1000-8000-0026BB765291
1560
1432
  :format: uint8
1561
1433
  :unit: nil
1562
- :permissions:
1563
- - securedRead
1564
- - securedWrite
1565
1434
  :properties:
1566
1435
  - read
1567
1436
  - write
1568
1437
  - cnotify
1438
+ - uncnotify
1569
1439
  :constraints:
1570
1440
  ValidValues:
1571
1441
  '0': Manual
@@ -1575,13 +1445,11 @@
1575
1445
  :uuid: 00000035-0000-1000-8000-0026BB765291
1576
1446
  :format: float
1577
1447
  :unit: '"celsius"'
1578
- :permissions:
1579
- - securedRead
1580
- - securedWrite
1581
1448
  :properties:
1582
1449
  - read
1583
1450
  - write
1584
1451
  - cnotify
1452
+ - uncnotify
1585
1453
  :constraints:
1586
1454
  MaximumValue: 38
1587
1455
  MinimumValue: 10
@@ -1591,13 +1459,11 @@
1591
1459
  :uuid: 000000C2-0000-1000-8000-0026BB765291
1592
1460
  :format: int32
1593
1461
  :unit: '"arcdegrees"'
1594
- :permissions:
1595
- - securedRead
1596
- - securedWrite
1597
1462
  :properties:
1598
1463
  - read
1599
1464
  - write
1600
1465
  - cnotify
1466
+ - uncnotify
1601
1467
  :constraints:
1602
1468
  MaximumValue: 90
1603
1469
  MinimumValue: -90
@@ -1607,13 +1473,11 @@
1607
1473
  :uuid: 0000007D-0000-1000-8000-0026BB765291
1608
1474
  :format: int32
1609
1475
  :unit: '"arcdegrees"'
1610
- :permissions:
1611
- - securedRead
1612
- - securedWrite
1613
1476
  :properties:
1614
1477
  - read
1615
1478
  - write
1616
1479
  - cnotify
1480
+ - uncnotify
1617
1481
  :constraints:
1618
1482
  MaximumValue: 90
1619
1483
  MinimumValue: -90
@@ -1623,27 +1487,39 @@
1623
1487
  :uuid: 00000036-0000-1000-8000-0026BB765291
1624
1488
  :format: uint8
1625
1489
  :unit: nil
1626
- :permissions:
1627
- - securedRead
1628
- - securedWrite
1629
1490
  :properties:
1630
1491
  - read
1631
1492
  - write
1632
1493
  - cnotify
1494
+ - uncnotify
1633
1495
  :constraints:
1634
1496
  ValidValues:
1635
1497
  '0': Celsius
1636
1498
  '1': Fahrenheit
1499
+ - :name: :valve_type
1500
+ :description: Valve Type
1501
+ :uuid: 000000D5-0000-1000-8000-0026BB765291
1502
+ :format: uint8
1503
+ :unit: nil
1504
+ :properties:
1505
+ - read
1506
+ - cnotify
1507
+ - uncnotify
1508
+ :constraints:
1509
+ ValidValues:
1510
+ '0': Generic valve
1511
+ '1': Irrigation
1512
+ '2': Shower head
1513
+ '3': Water faucet
1637
1514
  - :name: :version
1638
1515
  :description: Version
1639
1516
  :uuid: 00000037-0000-1000-8000-0026BB765291
1640
1517
  :format: string
1641
1518
  :unit: nil
1642
- :permissions:
1643
- - securedRead
1644
1519
  :properties:
1645
1520
  - read
1646
1521
  - cnotify
1522
+ - uncnotify
1647
1523
  :constraints:
1648
1524
  MaximumLength: 64
1649
1525
  - :name: :voc_density
@@ -1651,8 +1527,6 @@
1651
1527
  :uuid: 000000C8-0000-1000-8000-0026BB765291
1652
1528
  :format: float
1653
1529
  :unit: nil
1654
- :permissions:
1655
- - securedRead
1656
1530
  :properties:
1657
1531
  - read
1658
1532
  - cnotify
@@ -1666,13 +1540,11 @@
1666
1540
  :uuid: '00000119-0000-1000-8000-0026BB765291'
1667
1541
  :format: uint8
1668
1542
  :unit: '"percentage"'
1669
- :permissions:
1670
- - securedRead
1671
- - securedWrite
1672
1543
  :properties:
1673
1544
  - read
1674
1545
  - write
1675
1546
  - cnotify
1547
+ - uncnotify
1676
1548
  :constraints:
1677
1549
  MaximumValue: 100
1678
1550
  MinimumValue: 0
@@ -1681,12 +1553,11 @@
1681
1553
  :description: Water Level
1682
1554
  :uuid: 000000B5-0000-1000-8000-0026BB765291
1683
1555
  :format: float
1684
- :unit: nil
1685
- :permissions:
1686
- - securedRead
1556
+ :unit: '"percentage"'
1687
1557
  :properties:
1688
1558
  - read
1689
1559
  - cnotify
1560
+ - uncnotify
1690
1561
  :constraints:
1691
1562
  MaximumValue: 100
1692
1563
  MinimumValue: 0