ruby_home 0.1.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 (59) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +13 -0
  3. data/.hound.yml +2 -0
  4. data/.rspec +3 -0
  5. data/.rubocop.yml +9 -0
  6. data/.travis.yml +21 -0
  7. data/Gemfile +6 -0
  8. data/LICENSE +21 -0
  9. data/README.md +36 -0
  10. data/Rakefile +7 -0
  11. data/bin/console +14 -0
  12. data/bin/rubyhome +16 -0
  13. data/bin/setup +8 -0
  14. data/lib/ruby_home.rb +6 -0
  15. data/lib/ruby_home/accessory_info.rb +99 -0
  16. data/lib/ruby_home/broadcast.rb +31 -0
  17. data/lib/ruby_home/config/characteristics.yml +1692 -0
  18. data/lib/ruby_home/config/services.yml +416 -0
  19. data/lib/ruby_home/device_id.rb +30 -0
  20. data/lib/ruby_home/dns/service.rb +44 -0
  21. data/lib/ruby_home/dns/text_record.rb +100 -0
  22. data/lib/ruby_home/factories/accessory_factory.rb +78 -0
  23. data/lib/ruby_home/factories/characteristic_factory.rb +57 -0
  24. data/lib/ruby_home/factories/templates/characteristic_template.rb +43 -0
  25. data/lib/ruby_home/factories/templates/service_template.rb +50 -0
  26. data/lib/ruby_home/hap/accessory.rb +26 -0
  27. data/lib/ruby_home/hap/characteristic.rb +60 -0
  28. data/lib/ruby_home/hap/hex_pad.rb +13 -0
  29. data/lib/ruby_home/hap/hkdf_encryption.rb +34 -0
  30. data/lib/ruby_home/hap/http_decryption.rb +58 -0
  31. data/lib/ruby_home/hap/http_encryption.rb +43 -0
  32. data/lib/ruby_home/hap/service.rb +38 -0
  33. data/lib/ruby_home/http/application.rb +28 -0
  34. data/lib/ruby_home/http/cache.rb +30 -0
  35. data/lib/ruby_home/http/controllers/accessories_controller.rb +19 -0
  36. data/lib/ruby_home/http/controllers/application_controller.rb +37 -0
  37. data/lib/ruby_home/http/controllers/characteristics_controller.rb +49 -0
  38. data/lib/ruby_home/http/controllers/pair_setups_controller.rb +146 -0
  39. data/lib/ruby_home/http/controllers/pair_verifies_controller.rb +81 -0
  40. data/lib/ruby_home/http/controllers/pairings_controller.rb +38 -0
  41. data/lib/ruby_home/http/hap_request.rb +56 -0
  42. data/lib/ruby_home/http/hap_response.rb +57 -0
  43. data/lib/ruby_home/http/hap_server.rb +65 -0
  44. data/lib/ruby_home/http/serializers/accessory_serializer.rb +21 -0
  45. data/lib/ruby_home/http/serializers/characteristic_serializer.rb +26 -0
  46. data/lib/ruby_home/http/serializers/characteristic_value_serializer.rb +21 -0
  47. data/lib/ruby_home/http/serializers/object_serializer.rb +39 -0
  48. data/lib/ruby_home/http/serializers/service_serializer.rb +20 -0
  49. data/lib/ruby_home/identifier_cache.rb +59 -0
  50. data/lib/ruby_home/rack/handler/hap_server.rb +26 -0
  51. data/lib/ruby_home/tlv.rb +83 -0
  52. data/lib/ruby_home/tlv/bytes.rb +19 -0
  53. data/lib/ruby_home/tlv/int.rb +15 -0
  54. data/lib/ruby_home/tlv/utf8.rb +18 -0
  55. data/lib/ruby_home/version.rb +3 -0
  56. data/rubyhome.gemspec +43 -0
  57. data/sbin/characteristic_generator.rb +83 -0
  58. data/sbin/service_generator.rb +69 -0
  59. metadata +352 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 6ee1bab57c905588f1ea3b558c4a303a2935321cdb8e95e04416ff5812c40727
4
+ data.tar.gz: 8383552d3c59b1360ba854b5cada8159a98dac180fa137a4be907057ca2c84e6
5
+ SHA512:
6
+ metadata.gz: 1a3be890c661e77d1c69348b04520b8426e6a7861d517880d99dd7d7619bf46eab47d433516139bb53af887c7429a007495e199877b0f58f3e4b0a5099ea1010
7
+ data.tar.gz: ef7aec5965acaf52f8da6084a63de3d0e51d1ef9df4e8049d7dc8940d497b926988296f6e9bf014e8e414a26716f926e227e704c0c38e4de1fa53166c20219be
data/.gitignore ADDED
@@ -0,0 +1,13 @@
1
+ .byebug_history
2
+ .rspec_status
3
+ /.bundle/
4
+ /.yardoc
5
+ /_yardoc/
6
+ /coverage/
7
+ /doc/
8
+ /pkg/
9
+ /spec/reports/
10
+ /tmp/
11
+ Gemfile.lock
12
+ accessory_info.yml
13
+ identifier_cache.yml
data/.hound.yml ADDED
@@ -0,0 +1,2 @@
1
+ ruby:
2
+ config_file: .rubocop.yml
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --format documentation
2
+ --color
3
+ --require spec_helper
data/.rubocop.yml ADDED
@@ -0,0 +1,9 @@
1
+ Style:
2
+ TrailingCommaInLiteral:
3
+ Enabled: false
4
+ Documentation:
5
+ Enabled: false
6
+ FrozenStringLiteralComment:
7
+ Enabled: false
8
+ IndentationConsistency:
9
+ AllowProtectedAndPrivateMethodsBeIndented: true
data/.travis.yml ADDED
@@ -0,0 +1,21 @@
1
+ language: ruby
2
+ cache: bundler
3
+
4
+ before_install:
5
+ - sudo apt-get -qq update
6
+ - sudo apt-get install -y libavahi-compat-libdnssd-dev
7
+ - gem update --system
8
+ - gem --version
9
+ - gem install bundler -v 1.16.1
10
+ - bundle --version
11
+ - bundle
12
+
13
+ rvm:
14
+ - 2.5.0
15
+ - ruby-head
16
+
17
+ matrix:
18
+ fast_finish: true
19
+
20
+ notifications:
21
+ email: false
data/Gemfile ADDED
@@ -0,0 +1,6 @@
1
+ source 'https://rubygems.org'
2
+
3
+ git_source(:github) {|repo_name| 'https://github.com/#{repo_name}' }
4
+
5
+ # Specify your gem's dependencies in ruby_home.gemspec
6
+ gemspec
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2018 Karl Entwistle
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,36 @@
1
+ [![Maintainability](https://api.codeclimate.com/v1/badges/a13f62c597b3746a7ef5/maintainability)](https://codeclimate.com/github/karlentwistle/ruby_home/maintainability)
2
+ [![Build Status](https://travis-ci.org/karlentwistle/ruby_home.svg?branch=master)](https://travis-ci.org/karlentwistle/ruby_home)
3
+
4
+ # Ruby Home
5
+
6
+ RubyHome is a lightweight service you can run on your home network that emulates the iOS HomeKit API. It supports community contributed plugins, which are modules that provide a bridge from HomeKit to various 3rd-party APIs provided by manufacturers of smart home devices.
7
+
8
+ ## Installation
9
+
10
+ Add this line to your application's Gemfile:
11
+
12
+ ```ruby
13
+ gem 'ruby_home'
14
+ ```
15
+
16
+ And then execute:
17
+
18
+ $ bundle
19
+
20
+ Or install it yourself as:
21
+
22
+ $ gem install ruby_home
23
+
24
+ ## Usage
25
+
26
+ TODO: Write usage instructions here
27
+
28
+ ## Development
29
+
30
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
31
+
32
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
33
+
34
+ ## Contributing
35
+
36
+ Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/ruby_home.
data/Rakefile ADDED
@@ -0,0 +1,7 @@
1
+ require 'bundler/gem_tasks'
2
+ require 'rspec/core/rake_task'
3
+ require_relative 'lib/ruby_home'
4
+
5
+ RSpec::Core::RakeTask.new(:spec)
6
+
7
+ task :default => :spec
data/bin/console ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'bundler/setup'
4
+ require 'ruby_home'
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require 'pry'
11
+ # Pry.start
12
+
13
+ require 'irb'
14
+ IRB.start(__FILE__)
data/bin/rubyhome ADDED
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require_relative '../lib/ruby_home'
4
+
5
+ accessory_information = RubyHome::AccessoryFactory.create(:accessory_information)
6
+ fan = RubyHome::AccessoryFactory.create(:fan)
7
+
8
+ fan.characteristic(:on).on(:updated) do |new_value|
9
+ if new_value == 1
10
+ puts "Fan switched on"
11
+ else
12
+ puts "Fan switched off"
13
+ end
14
+ end
15
+
16
+ RubyHome::Broadcast.run
data/bin/setup ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
data/lib/ruby_home.rb ADDED
@@ -0,0 +1,6 @@
1
+ require_relative 'ruby_home/version'
2
+ require_relative 'ruby_home/broadcast'
3
+ require_relative 'ruby_home/identifier_cache'
4
+ Dir[File.dirname(__FILE__) + '/ruby_home/factories/*.rb'].each { |file| require file }
5
+
6
+ module RubyHome; end
@@ -0,0 +1,99 @@
1
+ require 'ed25519'
2
+ require 'yaml/store'
3
+ require_relative 'device_id'
4
+
5
+ module RubyHome
6
+ class AccessoryInfo
7
+ PERSISTABLE = [ :device_id, :paired_clients, :password, :signature_key, :username ].freeze
8
+
9
+ def initialize(store)
10
+ @store = store
11
+
12
+ read
13
+
14
+ @device_id ||= DeviceID.generate
15
+ @paired_clients ||= []
16
+ @signature_key ||= Ed25519::SigningKey.generate.to_bytes.unpack1('H*')
17
+ end
18
+
19
+ attr_reader :store
20
+ attr_reader :device_id, :signature_key, :paired_clients, :password, :username
21
+ attr_writer :device_id, :paired_clients, :password, :username
22
+
23
+ def signature_key=(signature_key)
24
+ @signing_key = nil
25
+ @signature_key = signature_key
26
+ end
27
+
28
+ def signing_key
29
+ @signing_key ||= Ed25519::SigningKey.new([signature_key].pack('H*'))
30
+ end
31
+
32
+ def username
33
+ 'Pair-Setup'
34
+ end
35
+
36
+ def password
37
+ '031-45-154'
38
+ end
39
+
40
+ def to_hash
41
+ Hash[*PERSISTABLE.flat_map { |attribute| [attribute, send(attribute)] }]
42
+ end
43
+
44
+ def read
45
+ store.transaction(true) do
46
+ store.fetch(:accessory_info, {}).each do |key, value|
47
+ send("#{key}=", value)
48
+ end
49
+ end
50
+ end
51
+
52
+ def save
53
+ store.transaction do
54
+ store[:accessory_info] = to_hash
55
+ end
56
+ end
57
+
58
+ def self.pstore=(new_storage)
59
+ @@accessory_info = AccessoryInfo.new(new_storage)
60
+ end
61
+
62
+ @@accessory_info = AccessoryInfo.new(YAML::Store.new 'accessory_info.yml')
63
+
64
+ class << self
65
+ PERSISTABLE.each do |attribute|
66
+ define_method("#{attribute}=") do |value, save=true|
67
+ @@accessory_info.send("#{attribute}=", value)
68
+ save
69
+ end
70
+
71
+ define_method(attribute) do
72
+ @@accessory_info.send(attribute)
73
+ end
74
+ end
75
+
76
+ def save
77
+ @@accessory_info.save
78
+ end
79
+
80
+ def signing_key
81
+ @@accessory_info.signing_key
82
+ end
83
+
84
+ def paired?
85
+ @@accessory_info.paired_clients.any?
86
+ end
87
+
88
+ def add_paired_client(admin: false, identifier: , public_key: )
89
+ @@accessory_info.paired_clients << { admin: admin, identifier: identifier, public_key: public_key }
90
+ save
91
+ end
92
+
93
+ def remove_paired_client(identifier)
94
+ @@accessory_info.paired_clients.delete_if { |h| h[:identifier] == identifier }
95
+ save
96
+ end
97
+ end
98
+ end
99
+ end
@@ -0,0 +1,31 @@
1
+ require_relative 'dns/service'
2
+ require_relative 'http/application'
3
+
4
+ Thread.abort_on_exception = true
5
+
6
+ module RubyHome
7
+ class Broadcast
8
+ def self.run
9
+ threads = []
10
+ threads << Thread.new do
11
+ dns_service
12
+ end
13
+ threads.each(&:join)
14
+
15
+ http_server.run!
16
+ end
17
+
18
+ def self.dns_service
19
+ @_dns_service ||= begin
20
+ service = RubyHome::DNS::Service.new(http_server.port)
21
+
22
+ service.register
23
+ service
24
+ end
25
+ end
26
+
27
+ def self.http_server
28
+ @_http_server ||= RubyHome::HTTP::Application
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,1692 @@
1
+ ---
2
+ - :name: :accessory_flags
3
+ :description: Accessory Flags
4
+ :uuid: 000000A6-0000-1000-8000-0026BB765291
5
+ :format: uint32
6
+ :unit: nil
7
+ :permissions:
8
+ - securedRead
9
+ :properties:
10
+ - read
11
+ - cnotify
12
+ - uncnotify
13
+ :constraints:
14
+ ValidBits:
15
+ '0': Requires Additional Setup
16
+ - :name: :active
17
+ :description: Active
18
+ :uuid: 000000B0-0000-1000-8000-0026BB765291
19
+ :format: uint8
20
+ :unit: nil
21
+ :permissions:
22
+ - securedRead
23
+ - securedWrite
24
+ :properties:
25
+ - read
26
+ - write
27
+ - cnotify
28
+ :constraints:
29
+ ValidValues:
30
+ '0': Inactive
31
+ '1': Active
32
+ - :name: :administrator_only_access
33
+ :description: Administrator Only Access
34
+ :uuid: 00000001-0000-1000-8000-0026BB765291
35
+ :format: bool
36
+ :unit: nil
37
+ :permissions:
38
+ - securedRead
39
+ - securedWrite
40
+ :properties:
41
+ - read
42
+ - write
43
+ - cnotify
44
+ :constraints:
45
+ - :name: :air_particulate_density
46
+ :description: Air Particulate Density
47
+ :uuid: 00000064-0000-1000-8000-0026BB765291
48
+ :format: float
49
+ :unit: nil
50
+ :permissions:
51
+ - securedRead
52
+ :properties:
53
+ - read
54
+ - cnotify
55
+ :constraints:
56
+ MaximumValue: 1000
57
+ MinimumValue: 0
58
+ StepValue: 1
59
+ - :name: :air_particulate_size
60
+ :description: Air Particulate Size
61
+ :uuid: 00000065-0000-1000-8000-0026BB765291
62
+ :format: uint8
63
+ :unit: nil
64
+ :permissions:
65
+ - securedRead
66
+ :properties:
67
+ - read
68
+ - cnotify
69
+ :constraints:
70
+ ValidValues:
71
+ '0': 2.5 μm
72
+ '1': 10 μm
73
+ - :name: :air_quality
74
+ :description: Air Quality
75
+ :uuid: '00000095-0000-1000-8000-0026BB765291'
76
+ :format: uint8
77
+ :unit: nil
78
+ :permissions:
79
+ - securedRead
80
+ :properties:
81
+ - read
82
+ - cnotify
83
+ - uncnotify
84
+ :constraints:
85
+ ValidValues:
86
+ '0': Unknown
87
+ '1': Excellent
88
+ '2': Good
89
+ '3': Fair
90
+ '4': Inferior
91
+ '5': Poor
92
+ - :name: :audio_feedback
93
+ :description: Audio Feedback
94
+ :uuid: 00000005-0000-1000-8000-0026BB765291
95
+ :format: bool
96
+ :unit: nil
97
+ :permissions:
98
+ - securedRead
99
+ - securedWrite
100
+ :properties:
101
+ - read
102
+ - write
103
+ - cnotify
104
+ :constraints:
105
+ - :name: :battery_level
106
+ :description: Battery Level
107
+ :uuid: '00000068-0000-1000-8000-0026BB765291'
108
+ :format: uint8
109
+ :unit: '"percentage"'
110
+ :permissions:
111
+ - securedRead
112
+ :properties:
113
+ - read
114
+ - cnotify
115
+ :constraints:
116
+ MaximumValue: 100
117
+ MinimumValue: 0
118
+ StepValue: 1
119
+ - :name: :brightness
120
+ :description: Brightness
121
+ :uuid: '00000008-0000-1000-8000-0026BB765291'
122
+ :format: int32
123
+ :unit: '"percentage"'
124
+ :permissions:
125
+ - securedRead
126
+ - securedWrite
127
+ :properties:
128
+ - read
129
+ - write
130
+ - cnotify
131
+ :constraints:
132
+ MaximumValue: 100
133
+ MinimumValue: 0
134
+ StepValue: 1
135
+ - :name: :carbon_dioxide_detected
136
+ :description: Carbon Dioxide Detected
137
+ :uuid: '00000092-0000-1000-8000-0026BB765291'
138
+ :format: uint8
139
+ :unit: nil
140
+ :permissions:
141
+ - securedRead
142
+ :properties:
143
+ - read
144
+ - cnotify
145
+ - uncnotify
146
+ :constraints:
147
+ ValidValues:
148
+ '0': CO2 Levels Normal
149
+ '1': CO2 Levels Abnormal
150
+ - :name: :carbon_dioxide_level
151
+ :description: Carbon Dioxide Level
152
+ :uuid: '00000093-0000-1000-8000-0026BB765291'
153
+ :format: float
154
+ :unit: nil
155
+ :permissions:
156
+ - securedRead
157
+ :properties:
158
+ - read
159
+ - cnotify
160
+ :constraints:
161
+ MaximumValue: 100000
162
+ MinimumValue: 0
163
+ - :name: :carbon_dioxide_peak_level
164
+ :description: Carbon Dioxide Peak Level
165
+ :uuid: '00000094-0000-1000-8000-0026BB765291'
166
+ :format: float
167
+ :unit: nil
168
+ :permissions:
169
+ - securedRead
170
+ :properties:
171
+ - read
172
+ - cnotify
173
+ :constraints:
174
+ MaximumValue: 100000
175
+ MinimumValue: 0
176
+ - :name: :carbon_monoxide_detected
177
+ :description: Carbon Monoxide Detected
178
+ :uuid: '00000069-0000-1000-8000-0026BB765291'
179
+ :format: uint8
180
+ :unit: nil
181
+ :permissions:
182
+ - securedRead
183
+ :properties:
184
+ - read
185
+ - cnotify
186
+ - uncnotify
187
+ :constraints:
188
+ ValidValues:
189
+ '0': CO Levels Normal
190
+ '1': CO Levels Abnormal
191
+ - :name: :carbon_monoxide_level
192
+ :description: Carbon Monoxide Level
193
+ :uuid: '00000090-0000-1000-8000-0026BB765291'
194
+ :format: float
195
+ :unit: nil
196
+ :permissions:
197
+ - securedRead
198
+ :properties:
199
+ - read
200
+ - cnotify
201
+ :constraints:
202
+ MaximumValue: 100
203
+ MinimumValue: 0
204
+ - :name: :carbon_monoxide_peak_level
205
+ :description: Carbon Monoxide Peak Level
206
+ :uuid: '00000091-0000-1000-8000-0026BB765291'
207
+ :format: float
208
+ :unit: nil
209
+ :permissions:
210
+ - securedRead
211
+ :properties:
212
+ - read
213
+ - cnotify
214
+ :constraints:
215
+ MaximumValue: 100
216
+ MinimumValue: 0
217
+ - :name: :charging_state
218
+ :description: Charging State
219
+ :uuid: '0000008F-0000-1000-8000-0026BB765291'
220
+ :format: uint8
221
+ :unit: nil
222
+ :permissions:
223
+ - securedRead
224
+ :properties:
225
+ - read
226
+ - cnotify
227
+ :constraints:
228
+ ValidValues:
229
+ '0': Not Charging
230
+ '1': Charging
231
+ '2': Not Chargeable
232
+ - :name: :color_temperature
233
+ :description: Color Temperature
234
+ :uuid: 000000CE-0000-1000-8000-0026BB765291
235
+ :format: uint32
236
+ :unit: nil
237
+ :permissions:
238
+ - securedRead
239
+ - securedWrite
240
+ :properties:
241
+ - read
242
+ - write
243
+ - cnotify
244
+ :constraints:
245
+ MaximumValue: 500
246
+ MinimumValue: 140
247
+ StepValue: 1
248
+ - :name: :contact_sensor_state
249
+ :description: Contact Sensor State
250
+ :uuid: 0000006A-0000-1000-8000-0026BB765291
251
+ :format: uint8
252
+ :unit: nil
253
+ :permissions:
254
+ - securedRead
255
+ :properties:
256
+ - read
257
+ - cnotify
258
+ - uncnotify
259
+ :constraints:
260
+ ValidValues:
261
+ '0': Contact Detected
262
+ '1': Contact Not Detected
263
+ - :name: :cooling_threshold_temperature
264
+ :description: Cooling Threshold Temperature
265
+ :uuid: 0000000D-0000-1000-8000-0026BB765291
266
+ :format: float
267
+ :unit: '"celsius"'
268
+ :permissions:
269
+ - securedRead
270
+ - securedWrite
271
+ :properties:
272
+ - read
273
+ - write
274
+ - cnotify
275
+ :constraints:
276
+ MaximumValue: 35
277
+ MinimumValue: 10
278
+ StepValue: 0.1
279
+ - :name: :current_air_purifier_state
280
+ :description: Current Air Purifier State
281
+ :uuid: 000000A9-0000-1000-8000-0026BB765291
282
+ :format: uint8
283
+ :unit: nil
284
+ :permissions:
285
+ - securedRead
286
+ :properties:
287
+ - read
288
+ - cnotify
289
+ :constraints:
290
+ ValidValues:
291
+ '0': Inactive
292
+ '1': Idle
293
+ '2': Purifying Air
294
+ - :name: :current_ambient_light_level
295
+ :description: Current Ambient Light Level
296
+ :uuid: 0000006B-0000-1000-8000-0026BB765291
297
+ :format: float
298
+ :unit: '"lux"'
299
+ :permissions:
300
+ - securedRead
301
+ :properties:
302
+ - read
303
+ - cnotify
304
+ :constraints:
305
+ MaximumValue: 100000
306
+ MinimumValue: 0.0001
307
+ - :name: :current_door_state
308
+ :description: Current Door State
309
+ :uuid: 0000000E-0000-1000-8000-0026BB765291
310
+ :format: uint8
311
+ :unit: nil
312
+ :permissions:
313
+ - securedRead
314
+ :properties:
315
+ - read
316
+ - cnotify
317
+ - uncnotify
318
+ :constraints:
319
+ ValidValues:
320
+ '0': Open
321
+ '1': Closed
322
+ '2': Opening
323
+ '3': Closing
324
+ '4': Stopped
325
+ - :name: :current_fan_state
326
+ :description: Current Fan State
327
+ :uuid: 000000AF-0000-1000-8000-0026BB765291
328
+ :format: uint8
329
+ :unit: nil
330
+ :permissions:
331
+ - securedRead
332
+ :properties:
333
+ - read
334
+ - cnotify
335
+ :constraints:
336
+ ValidValues:
337
+ '0': Inactive
338
+ '1': Idle
339
+ '2': Blowing Air
340
+ - :name: :current_heater_cooler_state
341
+ :description: Current Heater Cooler State
342
+ :uuid: 000000B1-0000-1000-8000-0026BB765291
343
+ :format: uint8
344
+ :unit: nil
345
+ :permissions:
346
+ - securedRead
347
+ :properties:
348
+ - read
349
+ - cnotify
350
+ :constraints:
351
+ ValidValues:
352
+ '0': Inactive
353
+ '1': Idle
354
+ '2': Heating
355
+ '3': Cooling
356
+ - :name: :current_heating_cooling_state
357
+ :description: Current Heating Cooling State
358
+ :uuid: 0000000F-0000-1000-8000-0026BB765291
359
+ :format: uint8
360
+ :unit: nil
361
+ :permissions:
362
+ - securedRead
363
+ :properties:
364
+ - read
365
+ - cnotify
366
+ - uncnotify
367
+ :constraints:
368
+ ValidValues:
369
+ '0': 'Off'
370
+ '1': Heat
371
+ '2': Cool
372
+ - :name: :current_horizontal_tilt_angle
373
+ :description: Current Horizontal Tilt Angle
374
+ :uuid: 0000006C-0000-1000-8000-0026BB765291
375
+ :format: int32
376
+ :unit: '"arcdegrees"'
377
+ :permissions:
378
+ - securedRead
379
+ :properties:
380
+ - read
381
+ - cnotify
382
+ :constraints:
383
+ MaximumValue: 90
384
+ MinimumValue: -90
385
+ StepValue: 1
386
+ - :name: :current_humidifier_dehumidifier_state
387
+ :description: Current Humidifier Dehumidifier State
388
+ :uuid: 000000B3-0000-1000-8000-0026BB765291
389
+ :format: uint8
390
+ :unit: nil
391
+ :permissions:
392
+ - securedRead
393
+ :properties:
394
+ - read
395
+ - cnotify
396
+ :constraints:
397
+ ValidValues:
398
+ '0': Inactive
399
+ '1': Idle
400
+ '2': Humidifying
401
+ '3': Dehumidifying
402
+ - :name: :current_position
403
+ :description: Current Position
404
+ :uuid: 0000006D-0000-1000-8000-0026BB765291
405
+ :format: uint8
406
+ :unit: '"percentage"'
407
+ :permissions:
408
+ - securedRead
409
+ :properties:
410
+ - read
411
+ - cnotify
412
+ :constraints:
413
+ MaximumValue: 100
414
+ MinimumValue: 0
415
+ StepValue: 1
416
+ - :name: :current_relative_humidity
417
+ :description: Current Relative Humidity
418
+ :uuid: 00000010-0000-1000-8000-0026BB765291
419
+ :format: float
420
+ :unit: '"percentage"'
421
+ :permissions:
422
+ - securedRead
423
+ :properties:
424
+ - read
425
+ - cnotify
426
+ :constraints:
427
+ MaximumValue: 100
428
+ MinimumValue: 0
429
+ StepValue: 1
430
+ - :name: :current_slat_state
431
+ :description: Current Slat State
432
+ :uuid: 000000AA-0000-1000-8000-0026BB765291
433
+ :format: uint8
434
+ :unit: nil
435
+ :permissions:
436
+ - securedRead
437
+ :properties:
438
+ - read
439
+ - cnotify
440
+ :constraints:
441
+ ValidValues:
442
+ '0': Fixed
443
+ '1': Jammed
444
+ '2': Swinging
445
+ - :name: :current_temperature
446
+ :description: Current Temperature
447
+ :uuid: 00000011-0000-1000-8000-0026BB765291
448
+ :format: float
449
+ :unit: '"celsius"'
450
+ :permissions:
451
+ - securedRead
452
+ :properties:
453
+ - read
454
+ - cnotify
455
+ :constraints:
456
+ MaximumValue: 100
457
+ MinimumValue: 0
458
+ StepValue: 0.1
459
+ - :name: :current_tilt_angle
460
+ :description: Current Tilt Angle
461
+ :uuid: 000000C1-0000-1000-8000-0026BB765291
462
+ :format: int32
463
+ :unit: '"arcdegrees"'
464
+ :permissions:
465
+ - securedRead
466
+ :properties:
467
+ - read
468
+ - cnotify
469
+ :constraints:
470
+ MaximumValue: 90
471
+ MinimumValue: -90
472
+ StepValue: 1
473
+ - :name: :current_vertical_tilt_angle
474
+ :description: Current Vertical Tilt Angle
475
+ :uuid: 0000006E-0000-1000-8000-0026BB765291
476
+ :format: int32
477
+ :unit: '"arcdegrees"'
478
+ :permissions:
479
+ - securedRead
480
+ :properties:
481
+ - read
482
+ - cnotify
483
+ :constraints:
484
+ MaximumValue: 90
485
+ MinimumValue: -90
486
+ StepValue: 1
487
+ - :name: :digital_zoom
488
+ :description: Digital Zoom
489
+ :uuid: 0000011D-0000-1000-8000-0026BB765291
490
+ :format: float
491
+ :unit: nil
492
+ :permissions:
493
+ - securedRead
494
+ - securedWrite
495
+ :properties:
496
+ - read
497
+ - write
498
+ - cnotify
499
+ :constraints:
500
+ - :name: :filter_change_indication
501
+ :description: Filter Change Indication
502
+ :uuid: 000000AC-0000-1000-8000-0026BB765291
503
+ :format: uint8
504
+ :unit: nil
505
+ :permissions:
506
+ - securedRead
507
+ :properties:
508
+ - read
509
+ - cnotify
510
+ :constraints:
511
+ ValidValues:
512
+ '0': Filter OK
513
+ '1': Change Filter
514
+ - :name: :filter_life_level
515
+ :description: Filter Life Level
516
+ :uuid: 000000AB-0000-1000-8000-0026BB765291
517
+ :format: float
518
+ :unit: nil
519
+ :permissions:
520
+ - securedRead
521
+ :properties:
522
+ - read
523
+ - cnotify
524
+ :constraints:
525
+ MaximumValue: 100
526
+ MinimumValue: 0
527
+ stepValue: 1
528
+ - :name: :firmware_revision
529
+ :description: Firmware Revision
530
+ :uuid: 00000052-0000-1000-8000-0026BB765291
531
+ :format: string
532
+ :unit: nil
533
+ :permissions:
534
+ - securedRead
535
+ :properties:
536
+ - read
537
+ :constraints:
538
+ - :name: :hardware_revision
539
+ :description: Hardware Revision
540
+ :uuid: 00000053-0000-1000-8000-0026BB765291
541
+ :format: string
542
+ :unit: nil
543
+ :permissions:
544
+ - securedRead
545
+ :properties:
546
+ - read
547
+ :constraints:
548
+ - :name: :heating_threshold_temperature
549
+ :description: Heating Threshold Temperature
550
+ :uuid: 00000012-0000-1000-8000-0026BB765291
551
+ :format: float
552
+ :unit: '"celsius"'
553
+ :permissions:
554
+ - securedRead
555
+ - securedWrite
556
+ :properties:
557
+ - read
558
+ - write
559
+ - cnotify
560
+ :constraints:
561
+ MaximumValue: 25
562
+ MinimumValue: 0
563
+ StepValue: 0.1
564
+ - :name: :hold_position
565
+ :description: Hold Position
566
+ :uuid: 0000006F-0000-1000-8000-0026BB765291
567
+ :format: bool
568
+ :unit: nil
569
+ :permissions:
570
+ - securedWrite
571
+ :properties:
572
+ - write
573
+ :constraints:
574
+ - :name: :hue
575
+ :description: Hue
576
+ :uuid: 00000013-0000-1000-8000-0026BB765291
577
+ :format: float
578
+ :unit: '"arcdegrees"'
579
+ :permissions:
580
+ - securedRead
581
+ - securedWrite
582
+ :properties:
583
+ - read
584
+ - write
585
+ - cnotify
586
+ :constraints:
587
+ MaximumValue: 360
588
+ MinimumValue: 0
589
+ StepValue: 1
590
+ - :name: :identify
591
+ :description: Identify
592
+ :uuid: 00000014-0000-1000-8000-0026BB765291
593
+ :format: bool
594
+ :unit: nil
595
+ :permissions:
596
+ - securedWrite
597
+ :properties:
598
+ - write
599
+ :constraints:
600
+ - :name: :image_mirroring
601
+ :description: Image Mirroring
602
+ :uuid: 0000011F-0000-1000-8000-0026BB765291
603
+ :format: bool
604
+ :unit: nil
605
+ :permissions:
606
+ - securedRead
607
+ - securedWrite
608
+ :properties:
609
+ - read
610
+ - write
611
+ - cnotify
612
+ :constraints:
613
+ - :name: :image_rotation
614
+ :description: Image Rotation
615
+ :uuid: 0000011E-0000-1000-8000-0026BB765291
616
+ :format: float
617
+ :unit: '"arcdegrees"'
618
+ :permissions:
619
+ - securedRead
620
+ - securedWrite
621
+ :properties:
622
+ - read
623
+ - write
624
+ - cnotify
625
+ :constraints:
626
+ MaximumValue: 270
627
+ MinimumValue: 0
628
+ StepValue: 90
629
+ - :name: :leak_detected
630
+ :description: Leak Detected
631
+ :uuid: 00000070-0000-1000-8000-0026BB765291
632
+ :format: uint8
633
+ :unit: nil
634
+ :permissions:
635
+ - securedRead
636
+ :properties:
637
+ - read
638
+ - cnotify
639
+ - uncnotify
640
+ :constraints:
641
+ ValidValues:
642
+ '0': Leak Not Detected
643
+ '1': Leak Detected
644
+ - :name: :lock_control_point
645
+ :description: Lock Control Point
646
+ :uuid: '00000019-0000-1000-8000-0026BB765291'
647
+ :format: tlv8
648
+ :unit: nil
649
+ :permissions:
650
+ - securedWrite
651
+ :properties:
652
+ - write
653
+ :constraints:
654
+ - :name: :lock_current_state
655
+ :description: Lock Current State
656
+ :uuid: 0000001D-0000-1000-8000-0026BB765291
657
+ :format: uint8
658
+ :unit: nil
659
+ :permissions:
660
+ - securedRead
661
+ :properties:
662
+ - read
663
+ - cnotify
664
+ - uncnotify
665
+ :constraints:
666
+ ValidValues:
667
+ '0': Unsecured
668
+ '1': Secured
669
+ '2': Jammed
670
+ '3': Unknown
671
+ - :name: :lock_last_known_action
672
+ :description: Lock Last Known Action
673
+ :uuid: 0000001C-0000-1000-8000-0026BB765291
674
+ :format: uint8
675
+ :unit: nil
676
+ :permissions:
677
+ - securedRead
678
+ :properties:
679
+ - read
680
+ - cnotify
681
+ :constraints:
682
+ ValidValues:
683
+ '0': Secured Physically, Interior
684
+ '1': Unsecured Physically, Interior
685
+ '2': Secured Physically, Exterior
686
+ '3': Unsecured Physically, Exterior
687
+ '4': Secured by Keypad
688
+ '5': Unsecured by Keypad
689
+ '6': Secured Remotely
690
+ '7': Unsecured Remotely
691
+ '8': Secured by Auto Secure Timeout
692
+ - :name: :lock_management_auto_security_timeout
693
+ :description: Lock Management Auto Security Timeout
694
+ :uuid: 0000001A-0000-1000-8000-0026BB765291
695
+ :format: uint32
696
+ :unit: '"seconds"'
697
+ :permissions:
698
+ - securedRead
699
+ - securedWrite
700
+ :properties:
701
+ - read
702
+ - write
703
+ - cnotify
704
+ :constraints:
705
+ - :name: :lock_physical_controls
706
+ :description: Lock Physical Controls
707
+ :uuid: 000000A7-0000-1000-8000-0026BB765291
708
+ :format: uint8
709
+ :unit: nil
710
+ :permissions:
711
+ - securedRead
712
+ - securedWrite
713
+ :properties:
714
+ - read
715
+ - write
716
+ - cnotify
717
+ :constraints:
718
+ ValidValues:
719
+ '0': Control Lock Disabled
720
+ '1': Control Lock Enabled
721
+ - :name: :lock_target_state
722
+ :description: Lock Target State
723
+ :uuid: 0000001E-0000-1000-8000-0026BB765291
724
+ :format: uint8
725
+ :unit: nil
726
+ :permissions:
727
+ - securedRead
728
+ - securedWrite
729
+ :properties:
730
+ - read
731
+ - write
732
+ - cnotify
733
+ - uncnotify
734
+ :constraints:
735
+ ValidValues:
736
+ '0': Unsecured
737
+ '1': Secured
738
+ - :name: :logs
739
+ :description: Logs
740
+ :uuid: 0000001F-0000-1000-8000-0026BB765291
741
+ :format: tlv8
742
+ :unit: nil
743
+ :permissions:
744
+ - securedRead
745
+ :properties:
746
+ - read
747
+ - cnotify
748
+ :constraints:
749
+ - :name: :manufacturer
750
+ :description: Manufacturer
751
+ :uuid: 00000020-0000-1000-8000-0026BB765291
752
+ :format: string
753
+ :unit: nil
754
+ :permissions:
755
+ - securedRead
756
+ :properties:
757
+ - read
758
+ :constraints:
759
+ - :name: :model
760
+ :description: Model
761
+ :uuid: 00000021-0000-1000-8000-0026BB765291
762
+ :format: string
763
+ :unit: nil
764
+ :permissions:
765
+ - securedRead
766
+ :properties:
767
+ - read
768
+ :constraints:
769
+ - :name: :motion_detected
770
+ :description: Motion Detected
771
+ :uuid: 00000022-0000-1000-8000-0026BB765291
772
+ :format: bool
773
+ :unit: nil
774
+ :permissions:
775
+ - securedRead
776
+ :properties:
777
+ - read
778
+ - cnotify
779
+ - uncnotify
780
+ :constraints:
781
+ - :name: :mute
782
+ :description: Mute
783
+ :uuid: 0000011A-0000-1000-8000-0026BB765291
784
+ :format: bool
785
+ :unit: nil
786
+ :permissions:
787
+ - securedRead
788
+ - securedWrite
789
+ :properties:
790
+ - read
791
+ - write
792
+ - cnotify
793
+ :constraints:
794
+ - :name: :name
795
+ :description: Name
796
+ :uuid: 00000023-0000-1000-8000-0026BB765291
797
+ :format: string
798
+ :unit: nil
799
+ :permissions:
800
+ - securedRead
801
+ :properties:
802
+ - read
803
+ :constraints:
804
+ - :name: :night_vision
805
+ :description: Night Vision
806
+ :uuid: 0000011B-0000-1000-8000-0026BB765291
807
+ :format: bool
808
+ :unit: nil
809
+ :permissions:
810
+ - securedRead
811
+ - securedWrite
812
+ :properties:
813
+ - read
814
+ - write
815
+ - cnotify
816
+ :constraints:
817
+ - :name: :nitrogen_dioxide_density
818
+ :description: Nitrogen Dioxide Density
819
+ :uuid: 000000C4-0000-1000-8000-0026BB765291
820
+ :format: float
821
+ :unit: nil
822
+ :permissions:
823
+ - securedRead
824
+ :properties:
825
+ - read
826
+ - cnotify
827
+ - uncnotify
828
+ :constraints:
829
+ MaximumValue: 1000
830
+ MinimumValue: 0
831
+ StepValue: 1
832
+ - :name: :obstruction_detected
833
+ :description: Obstruction Detected
834
+ :uuid: 00000024-0000-1000-8000-0026BB765291
835
+ :format: bool
836
+ :unit: nil
837
+ :permissions:
838
+ - securedRead
839
+ :properties:
840
+ - read
841
+ - cnotify
842
+ - uncnotify
843
+ :constraints:
844
+ - :name: :occupancy_detected
845
+ :description: Occupancy Detected
846
+ :uuid: 00000071-0000-1000-8000-0026BB765291
847
+ :format: uint8
848
+ :unit: nil
849
+ :permissions:
850
+ - securedRead
851
+ :properties:
852
+ - read
853
+ - cnotify
854
+ - uncnotify
855
+ :constraints:
856
+ ValidValues:
857
+ '0': Occupancy Not Detected
858
+ '1': Occupancy Detected
859
+ - :name: :on
860
+ :description: 'On'
861
+ :uuid: 00000025-0000-1000-8000-0026BB765291
862
+ :format: bool
863
+ :unit: nil
864
+ :permissions:
865
+ - securedRead
866
+ - securedWrite
867
+ :properties:
868
+ - read
869
+ - write
870
+ - cnotify
871
+ :constraints:
872
+ - :name: :optical_zoom
873
+ :description: Optical Zoom
874
+ :uuid: 0000011C-0000-1000-8000-0026BB765291
875
+ :format: float
876
+ :unit: nil
877
+ :permissions:
878
+ - securedRead
879
+ - securedWrite
880
+ :properties:
881
+ - read
882
+ - write
883
+ - cnotify
884
+ :constraints:
885
+ - :name: :outlet_in_use
886
+ :description: Outlet In Use
887
+ :uuid: 00000026-0000-1000-8000-0026BB765291
888
+ :format: bool
889
+ :unit: nil
890
+ :permissions:
891
+ - securedRead
892
+ :properties:
893
+ - read
894
+ - cnotify
895
+ :constraints:
896
+ - :name: :ozone_density
897
+ :description: Ozone Density
898
+ :uuid: 000000C3-0000-1000-8000-0026BB765291
899
+ :format: float
900
+ :unit: nil
901
+ :permissions:
902
+ - securedRead
903
+ :properties:
904
+ - read
905
+ - cnotify
906
+ - uncnotify
907
+ :constraints:
908
+ MaximumValue: 1000
909
+ MinimumValue: 0
910
+ StepValue: 1
911
+ - :name: :pair_setup
912
+ :description: Pair Setup
913
+ :uuid: 0000004C-0000-1000-8000-0026BB765291
914
+ :format: tlv8
915
+ :unit: nil
916
+ :permissions:
917
+ - read
918
+ - write
919
+ :properties:
920
+ - read
921
+ - write
922
+ :constraints:
923
+ - :name: :pair_verify
924
+ :description: Pair Verify
925
+ :uuid: 0000004E-0000-1000-8000-0026BB765291
926
+ :format: tlv8
927
+ :unit: nil
928
+ :permissions:
929
+ - read
930
+ - write
931
+ :properties:
932
+ - read
933
+ - write
934
+ :constraints:
935
+ - :name: :pairing_features
936
+ :description: Pairing Features
937
+ :uuid: 0000004F-0000-1000-8000-0026BB765291
938
+ :format: uint8
939
+ :unit: nil
940
+ :permissions:
941
+ - read
942
+ :properties:
943
+ - read
944
+ :constraints:
945
+ - :name: :pairing_pairings
946
+ :description: Pairing Pairings
947
+ :uuid: 00000050-0000-1000-8000-0026BB765291
948
+ :format: tlv8
949
+ :unit: nil
950
+ :permissions:
951
+ - securedRead
952
+ - securedWrite
953
+ :properties:
954
+ - read
955
+ - write
956
+ :constraints:
957
+ - :name: :pm10_density
958
+ :description: PM10 Density
959
+ :uuid: 000000C7-0000-1000-8000-0026BB765291
960
+ :format: float
961
+ :unit: nil
962
+ :permissions:
963
+ - securedRead
964
+ :properties:
965
+ - read
966
+ - cnotify
967
+ - uncnotify
968
+ :constraints:
969
+ MaximumValue: 1000
970
+ MinimumValue: 0
971
+ StepValue: 1
972
+ - :name: :pm2_5_density
973
+ :description: PM2.5 Density
974
+ :uuid: 000000C6-0000-1000-8000-0026BB765291
975
+ :format: float
976
+ :unit: nil
977
+ :permissions:
978
+ - securedRead
979
+ :properties:
980
+ - read
981
+ - cnotify
982
+ - uncnotify
983
+ :constraints:
984
+ MaximumValue: 1000
985
+ MinimumValue: 0
986
+ StepValue: 1
987
+ - :name: :position_state
988
+ :description: Position State
989
+ :uuid: 00000072-0000-1000-8000-0026BB765291
990
+ :format: uint8
991
+ :unit: nil
992
+ :permissions:
993
+ - securedRead
994
+ :properties:
995
+ - read
996
+ - cnotify
997
+ :constraints:
998
+ ValidValues:
999
+ '0': Decreasing
1000
+ '1': Increasing
1001
+ '2': Stopped
1002
+ - :name: :programmable_switch_event
1003
+ :description: Programmable Switch Event
1004
+ :uuid: 00000073-0000-1000-8000-0026BB765291
1005
+ :format: uint8
1006
+ :unit: nil
1007
+ :permissions:
1008
+ - securedRead
1009
+ :properties:
1010
+ - read
1011
+ - cnotify
1012
+ :constraints:
1013
+ ValidValues:
1014
+ '0': Single Press
1015
+ '1': Double Press
1016
+ '2': Long Press
1017
+ - :name: :relative_humidity_dehumidifier_threshold
1018
+ :description: Relative Humidity Dehumidifier Threshold
1019
+ :uuid: 000000C9-0000-1000-8000-0026BB765291
1020
+ :format: float
1021
+ :unit: nil
1022
+ :permissions:
1023
+ - securedRead
1024
+ - securedWrite
1025
+ :properties:
1026
+ - read
1027
+ - write
1028
+ - cnotify
1029
+ :constraints:
1030
+ MaximumValue: 100
1031
+ MinimumValue: 0
1032
+ StepValue: 1
1033
+ - :name: :relative_humidity_humidifier_threshold
1034
+ :description: Relative Humidity Humidifier Threshold
1035
+ :uuid: 000000CA-0000-1000-8000-0026BB765291
1036
+ :format: float
1037
+ :unit: nil
1038
+ :permissions:
1039
+ - securedRead
1040
+ - securedWrite
1041
+ :properties:
1042
+ - read
1043
+ - write
1044
+ - cnotify
1045
+ :constraints:
1046
+ MaximumValue: 100
1047
+ MinimumValue: 0
1048
+ StepValue: 1
1049
+ - :name: :reset_filter_indication
1050
+ :description: Reset Filter Indication
1051
+ :uuid: 000000AD-0000-1000-8000-0026BB765291
1052
+ :format: uint8
1053
+ :unit: nil
1054
+ :permissions:
1055
+ - securedWrite
1056
+ :properties:
1057
+ - write
1058
+ :constraints:
1059
+ MaximumValue: 1
1060
+ MinimumValue: 1
1061
+ StepValue: 1
1062
+ - :name: :rotation_direction
1063
+ :description: Rotation Direction
1064
+ :uuid: '00000028-0000-1000-8000-0026BB765291'
1065
+ :format: int32
1066
+ :unit: nil
1067
+ :permissions:
1068
+ - securedRead
1069
+ - securedWrite
1070
+ :properties:
1071
+ - read
1072
+ - write
1073
+ - cnotify
1074
+ :constraints:
1075
+ ValidValues:
1076
+ '0': Clockwise
1077
+ '1': Counter-clockwise
1078
+ - :name: :rotation_speed
1079
+ :description: Rotation Speed
1080
+ :uuid: '00000029-0000-1000-8000-0026BB765291'
1081
+ :format: float
1082
+ :unit: '"percentage"'
1083
+ :permissions:
1084
+ - securedRead
1085
+ - securedWrite
1086
+ :properties:
1087
+ - read
1088
+ - write
1089
+ - cnotify
1090
+ :constraints:
1091
+ MaximumValue: 100
1092
+ MinimumValue: 0
1093
+ StepValue: 1
1094
+ - :name: :saturation
1095
+ :description: Saturation
1096
+ :uuid: 0000002F-0000-1000-8000-0026BB765291
1097
+ :format: float
1098
+ :unit: '"percentage"'
1099
+ :permissions:
1100
+ - securedRead
1101
+ - securedWrite
1102
+ :properties:
1103
+ - read
1104
+ - write
1105
+ - cnotify
1106
+ :constraints:
1107
+ MaximumValue: 100
1108
+ MinimumValue: 0
1109
+ StepValue: 1
1110
+ - :name: :security_system_alarm_type
1111
+ :description: Security System Alarm Type
1112
+ :uuid: '0000008E-0000-1000-8000-0026BB765291'
1113
+ :format: uint8
1114
+ :unit: nil
1115
+ :permissions:
1116
+ - securedRead
1117
+ :properties:
1118
+ - read
1119
+ - cnotify
1120
+ :constraints:
1121
+ MaximumValue: 1
1122
+ MinimumValue: 0
1123
+ StepValue: 1
1124
+ - :name: :security_system_current_state
1125
+ :description: Security System Current State
1126
+ :uuid: 00000066-0000-1000-8000-0026BB765291
1127
+ :format: uint8
1128
+ :unit: nil
1129
+ :permissions:
1130
+ - securedRead
1131
+ :properties:
1132
+ - read
1133
+ - cnotify
1134
+ - uncnotify
1135
+ :constraints:
1136
+ ValidValues:
1137
+ '0': Stay Arm
1138
+ '1': Away Arm
1139
+ '2': Night Arm
1140
+ '3': Disarmed
1141
+ '4': Alarm Triggered
1142
+ - :name: :security_system_target_state
1143
+ :description: Security System Target State
1144
+ :uuid: 00000067-0000-1000-8000-0026BB765291
1145
+ :format: uint8
1146
+ :unit: nil
1147
+ :permissions:
1148
+ - securedRead
1149
+ - securedWrite
1150
+ :properties:
1151
+ - read
1152
+ - write
1153
+ - cnotify
1154
+ :constraints:
1155
+ ValidValues:
1156
+ '0': Stay Arm
1157
+ '1': Away Arm
1158
+ '2': Night Arm
1159
+ '3': Disarm
1160
+ - :name: :selected_rtp_stream_configuration
1161
+ :description: Selected RTP Stream Configuration
1162
+ :uuid: 00000117-0000-1000-8000-0026BB765291
1163
+ :format: tlv8
1164
+ :unit: nil
1165
+ :permissions:
1166
+ - securedRead
1167
+ - securedWrite
1168
+ :properties:
1169
+ - read
1170
+ - write
1171
+ :constraints:
1172
+ - :name: :serial_number
1173
+ :description: Serial Number
1174
+ :uuid: 00000030-0000-1000-8000-0026BB765291
1175
+ :format: string
1176
+ :unit: nil
1177
+ :permissions:
1178
+ - securedRead
1179
+ :properties:
1180
+ - read
1181
+ :constraints:
1182
+ MaximumLength: 64
1183
+ - :name: :service_label_index
1184
+ :description: Service Label Index
1185
+ :uuid: 000000CB-0000-1000-8000-0026BB765291
1186
+ :format: uint8
1187
+ :unit: nil
1188
+ :permissions:
1189
+ - securedRead
1190
+ :properties:
1191
+ - read
1192
+ :constraints:
1193
+ MaximumValue: 255
1194
+ MinimumValue: 1
1195
+ StepValue: 1
1196
+ - :name: :service_label_namespace
1197
+ :description: Service Label Namespace
1198
+ :uuid: 000000CD-0000-1000-8000-0026BB765291
1199
+ :format: uint8
1200
+ :unit: nil
1201
+ :permissions:
1202
+ - securedRead
1203
+ :properties:
1204
+ - read
1205
+ :constraints:
1206
+ ValidValues:
1207
+ '0': Dots
1208
+ '1': Arabic Numerals
1209
+ - :name: :setup_endpoints
1210
+ :description: Setup Endpoints
1211
+ :uuid: '00000118-0000-1000-8000-0026BB765291'
1212
+ :format: tlv8
1213
+ :unit: nil
1214
+ :permissions:
1215
+ - securedRead
1216
+ - securedWrite
1217
+ :properties:
1218
+ - read
1219
+ - write
1220
+ :constraints:
1221
+ - :name: :slat_type
1222
+ :description: Slat Type
1223
+ :uuid: 000000C0-0000-1000-8000-0026BB765291
1224
+ :format: uint8
1225
+ :unit: nil
1226
+ :permissions:
1227
+ - securedRead
1228
+ :properties:
1229
+ - read
1230
+ :constraints:
1231
+ ValidValues:
1232
+ '0': Horizontal
1233
+ '1': Vertical
1234
+ - :name: :smoke_detected
1235
+ :description: Smoke Detected
1236
+ :uuid: 00000076-0000-1000-8000-0026BB765291
1237
+ :format: uint8
1238
+ :unit: nil
1239
+ :permissions:
1240
+ - securedRead
1241
+ :properties:
1242
+ - read
1243
+ - cnotify
1244
+ - uncnotify
1245
+ :constraints:
1246
+ ValidValues:
1247
+ '0': Smoke Not Detected
1248
+ '1': Smoke Detected
1249
+ - :name: :status_active
1250
+ :description: Status Active
1251
+ :uuid: 00000075-0000-1000-8000-0026BB765291
1252
+ :format: bool
1253
+ :unit: nil
1254
+ :permissions:
1255
+ - securedRead
1256
+ :properties:
1257
+ - read
1258
+ - cnotify
1259
+ :constraints:
1260
+ - :name: :status_fault
1261
+ :description: Status Fault
1262
+ :uuid: 00000077-0000-1000-8000-0026BB765291
1263
+ :format: uint8
1264
+ :unit: nil
1265
+ :permissions:
1266
+ - securedRead
1267
+ :properties:
1268
+ - read
1269
+ - cnotify
1270
+ - uncnotify
1271
+ :constraints:
1272
+ ValidValues:
1273
+ '0': No Fault
1274
+ '1': General Fault
1275
+ - :name: :status_jammed
1276
+ :description: Status Jammed
1277
+ :uuid: '00000078-0000-1000-8000-0026BB765291'
1278
+ :format: uint8
1279
+ :unit: nil
1280
+ :permissions:
1281
+ - securedRead
1282
+ :properties:
1283
+ - read
1284
+ - cnotify
1285
+ - uncnotify
1286
+ :constraints:
1287
+ ValidValues:
1288
+ '0': Not Jammed
1289
+ '1': Jammed
1290
+ - :name: :status_low_battery
1291
+ :description: Status Low Battery
1292
+ :uuid: '00000079-0000-1000-8000-0026BB765291'
1293
+ :format: uint8
1294
+ :unit: nil
1295
+ :permissions:
1296
+ - securedRead
1297
+ :properties:
1298
+ - read
1299
+ - cnotify
1300
+ - uncnotify
1301
+ :constraints:
1302
+ ValidValues:
1303
+ '0': Battery Level Normal
1304
+ '1': Battery Level Low
1305
+ - :name: :status_tampered
1306
+ :description: Status Tampered
1307
+ :uuid: 0000007A-0000-1000-8000-0026BB765291
1308
+ :format: uint8
1309
+ :unit: nil
1310
+ :permissions:
1311
+ - securedRead
1312
+ :properties:
1313
+ - read
1314
+ - cnotify
1315
+ - uncnotify
1316
+ :constraints:
1317
+ ValidValues:
1318
+ '0': Not Tampered
1319
+ '1': Tampered
1320
+ - :name: :streaming_status
1321
+ :description: Streaming Status
1322
+ :uuid: 00000120-0000-1000-8000-0026BB765291
1323
+ :format: tlv8
1324
+ :unit: nil
1325
+ :permissions:
1326
+ - securedRead
1327
+ :properties:
1328
+ - read
1329
+ - cnotify
1330
+ :constraints:
1331
+ - :name: :sulphur_dioxide_density
1332
+ :description: Sulphur Dioxide Density
1333
+ :uuid: 000000C5-0000-1000-8000-0026BB765291
1334
+ :format: float
1335
+ :unit: nil
1336
+ :permissions:
1337
+ - securedRead
1338
+ :properties:
1339
+ - read
1340
+ - cnotify
1341
+ - uncnotify
1342
+ :constraints:
1343
+ MaximumValue: 1000
1344
+ MinimumValue: 0
1345
+ StepValue: 1
1346
+ - :name: :supported_audio_stream_configuration
1347
+ :description: Supported Audio Stream Configuration
1348
+ :uuid: 00000115-0000-1000-8000-0026BB765291
1349
+ :format: tlv8
1350
+ :unit: nil
1351
+ :permissions:
1352
+ - securedRead
1353
+ :properties:
1354
+ - read
1355
+ :constraints:
1356
+ - :name: :supported_rtp_configuration
1357
+ :description: Supported RTP Configuration
1358
+ :uuid: 00000116-0000-1000-8000-0026BB765291
1359
+ :format: tlv8
1360
+ :unit: nil
1361
+ :permissions:
1362
+ - securedRead
1363
+ :properties:
1364
+ - read
1365
+ :constraints:
1366
+ - :name: :supported_video_stream_configuration
1367
+ :description: Supported Video Stream Configuration
1368
+ :uuid: 00000114-0000-1000-8000-0026BB765291
1369
+ :format: tlv8
1370
+ :unit: nil
1371
+ :permissions:
1372
+ - securedRead
1373
+ :properties:
1374
+ - read
1375
+ :constraints:
1376
+ - :name: :swing_mode
1377
+ :description: Swing Mode
1378
+ :uuid: 000000B6-0000-1000-8000-0026BB765291
1379
+ :format: uint8
1380
+ :unit: nil
1381
+ :permissions:
1382
+ - securedRead
1383
+ - securedWrite
1384
+ :properties:
1385
+ - read
1386
+ - write
1387
+ - cnotify
1388
+ :constraints:
1389
+ ValidValues:
1390
+ '0': Swing Disabled
1391
+ '1': Swing Enabled
1392
+ - :name: :target_air_purifier_state
1393
+ :description: Target Air Purifier State
1394
+ :uuid: 000000A8-0000-1000-8000-0026BB765291
1395
+ :format: uint8
1396
+ :unit: nil
1397
+ :permissions:
1398
+ - securedRead
1399
+ - securedWrite
1400
+ :properties:
1401
+ - read
1402
+ - write
1403
+ - cnotify
1404
+ :constraints:
1405
+ ValidValues:
1406
+ '0': Manual
1407
+ '1': Auto
1408
+ - :name: :target_air_quality
1409
+ :description: Target Air Quality
1410
+ :uuid: 000000AE-0000-1000-8000-0026BB765291
1411
+ :format: uint8
1412
+ :unit: nil
1413
+ :permissions:
1414
+ - securedRead
1415
+ - securedWrite
1416
+ :properties:
1417
+ - read
1418
+ - write
1419
+ - cnotify
1420
+ :constraints:
1421
+ ValidValues:
1422
+ '0': Excellent
1423
+ '1': Good
1424
+ '2': Fair
1425
+ - :name: :target_door_state
1426
+ :description: Target Door State
1427
+ :uuid: 00000032-0000-1000-8000-0026BB765291
1428
+ :format: uint8
1429
+ :unit: nil
1430
+ :permissions:
1431
+ - securedRead
1432
+ - securedWrite
1433
+ :properties:
1434
+ - read
1435
+ - write
1436
+ - cnotify
1437
+ :constraints:
1438
+ ValidValues:
1439
+ '0': Open
1440
+ '1': Closed
1441
+ - :name: :target_fan_state
1442
+ :description: Target Fan State
1443
+ :uuid: 000000BF-0000-1000-8000-0026BB765291
1444
+ :format: uint8
1445
+ :unit: nil
1446
+ :permissions:
1447
+ - securedRead
1448
+ - securedWrite
1449
+ :properties:
1450
+ - read
1451
+ - write
1452
+ - cnotify
1453
+ :constraints:
1454
+ ValidValues:
1455
+ '0': Manual
1456
+ '1': Auto
1457
+ - :name: :target_heater_cooler_state
1458
+ :description: Target Heater Cooler State
1459
+ :uuid: 000000B2-0000-1000-8000-0026BB765291
1460
+ :format: uint8
1461
+ :unit: nil
1462
+ :permissions:
1463
+ - securedRead
1464
+ - securedWrite
1465
+ :properties:
1466
+ - read
1467
+ - write
1468
+ - cnotify
1469
+ :constraints:
1470
+ ValidValues:
1471
+ '0': Auto
1472
+ '1': Heat
1473
+ '2': Cool
1474
+ - :name: :target_heating_cooling_state
1475
+ :description: Target Heating Cooling State
1476
+ :uuid: 00000033-0000-1000-8000-0026BB765291
1477
+ :format: uint8
1478
+ :unit: nil
1479
+ :permissions:
1480
+ - securedRead
1481
+ - securedWrite
1482
+ :properties:
1483
+ - read
1484
+ - write
1485
+ - cnotify
1486
+ :constraints:
1487
+ ValidValues:
1488
+ '0': 'Off'
1489
+ '1': Heat
1490
+ '2': Cool
1491
+ '3': Auto
1492
+ - :name: :target_horizontal_tilt_angle
1493
+ :description: Target Horizontal Tilt Angle
1494
+ :uuid: 0000007B-0000-1000-8000-0026BB765291
1495
+ :format: int32
1496
+ :unit: '"arcdegrees"'
1497
+ :permissions:
1498
+ - securedRead
1499
+ - securedWrite
1500
+ :properties:
1501
+ - read
1502
+ - write
1503
+ - cnotify
1504
+ :constraints:
1505
+ MaximumValue: 90
1506
+ MinimumValue: -90
1507
+ StepValue: 1
1508
+ - :name: :target_humidifier_dehumidifier_state
1509
+ :description: Target Humidifier Dehumidifier State
1510
+ :uuid: 000000B4-0000-1000-8000-0026BB765291
1511
+ :format: uint8
1512
+ :unit: nil
1513
+ :permissions:
1514
+ - securedRead
1515
+ - securedWrite
1516
+ :properties:
1517
+ - read
1518
+ - write
1519
+ - cnotify
1520
+ :constraints:
1521
+ ValidValues:
1522
+ '0': Humidifier or Dehumidifier
1523
+ '1': Humidifier
1524
+ '2': Dehumidifier
1525
+ - :name: :target_position
1526
+ :description: Target Position
1527
+ :uuid: 0000007C-0000-1000-8000-0026BB765291
1528
+ :format: uint8
1529
+ :unit: '"percentage"'
1530
+ :permissions:
1531
+ - securedRead
1532
+ - securedWrite
1533
+ :properties:
1534
+ - read
1535
+ - write
1536
+ - cnotify
1537
+ :constraints:
1538
+ MaximumValue: 100
1539
+ MinimumValue: 0
1540
+ StepValue: 1
1541
+ - :name: :target_relative_humidity
1542
+ :description: Target Relative Humidity
1543
+ :uuid: 00000034-0000-1000-8000-0026BB765291
1544
+ :format: float
1545
+ :unit: '"percentage"'
1546
+ :permissions:
1547
+ - securedRead
1548
+ - securedWrite
1549
+ :properties:
1550
+ - read
1551
+ - write
1552
+ - cnotify
1553
+ :constraints:
1554
+ MaximumValue: 100
1555
+ MinimumValue: 0
1556
+ StepValue: 1
1557
+ - :name: :target_slat_state
1558
+ :description: Target Slat State
1559
+ :uuid: 000000BE-0000-1000-8000-0026BB765291
1560
+ :format: uint8
1561
+ :unit: nil
1562
+ :permissions:
1563
+ - securedRead
1564
+ - securedWrite
1565
+ :properties:
1566
+ - read
1567
+ - write
1568
+ - cnotify
1569
+ :constraints:
1570
+ ValidValues:
1571
+ '0': Manual
1572
+ '1': Auto
1573
+ - :name: :target_temperature
1574
+ :description: Target Temperature
1575
+ :uuid: 00000035-0000-1000-8000-0026BB765291
1576
+ :format: float
1577
+ :unit: '"celsius"'
1578
+ :permissions:
1579
+ - securedRead
1580
+ - securedWrite
1581
+ :properties:
1582
+ - read
1583
+ - write
1584
+ - cnotify
1585
+ :constraints:
1586
+ MaximumValue: 38
1587
+ MinimumValue: 10
1588
+ StepValue: 0.1
1589
+ - :name: :target_tilt_angle
1590
+ :description: Target Tilt Angle
1591
+ :uuid: 000000C2-0000-1000-8000-0026BB765291
1592
+ :format: int32
1593
+ :unit: '"arcdegrees"'
1594
+ :permissions:
1595
+ - securedRead
1596
+ - securedWrite
1597
+ :properties:
1598
+ - read
1599
+ - write
1600
+ - cnotify
1601
+ :constraints:
1602
+ MaximumValue: 90
1603
+ MinimumValue: -90
1604
+ StepValue: 1
1605
+ - :name: :target_vertical_tilt_angle
1606
+ :description: Target Vertical Tilt Angle
1607
+ :uuid: 0000007D-0000-1000-8000-0026BB765291
1608
+ :format: int32
1609
+ :unit: '"arcdegrees"'
1610
+ :permissions:
1611
+ - securedRead
1612
+ - securedWrite
1613
+ :properties:
1614
+ - read
1615
+ - write
1616
+ - cnotify
1617
+ :constraints:
1618
+ MaximumValue: 90
1619
+ MinimumValue: -90
1620
+ StepValue: 1
1621
+ - :name: :temperature_display_units
1622
+ :description: Temperature Display Units
1623
+ :uuid: 00000036-0000-1000-8000-0026BB765291
1624
+ :format: uint8
1625
+ :unit: nil
1626
+ :permissions:
1627
+ - securedRead
1628
+ - securedWrite
1629
+ :properties:
1630
+ - read
1631
+ - write
1632
+ - cnotify
1633
+ :constraints:
1634
+ ValidValues:
1635
+ '0': Celsius
1636
+ '1': Fahrenheit
1637
+ - :name: :version
1638
+ :description: Version
1639
+ :uuid: 00000037-0000-1000-8000-0026BB765291
1640
+ :format: string
1641
+ :unit: nil
1642
+ :permissions:
1643
+ - securedRead
1644
+ :properties:
1645
+ - read
1646
+ - cnotify
1647
+ :constraints:
1648
+ MaximumLength: 64
1649
+ - :name: :voc_density
1650
+ :description: VOC Density
1651
+ :uuid: 000000C8-0000-1000-8000-0026BB765291
1652
+ :format: float
1653
+ :unit: nil
1654
+ :permissions:
1655
+ - securedRead
1656
+ :properties:
1657
+ - read
1658
+ - cnotify
1659
+ - uncnotify
1660
+ :constraints:
1661
+ MaximumValue: 1000
1662
+ MinimumValue: 0
1663
+ StepValue: 1
1664
+ - :name: :volume
1665
+ :description: Volume
1666
+ :uuid: '00000119-0000-1000-8000-0026BB765291'
1667
+ :format: uint8
1668
+ :unit: '"percentage"'
1669
+ :permissions:
1670
+ - securedRead
1671
+ - securedWrite
1672
+ :properties:
1673
+ - read
1674
+ - write
1675
+ - cnotify
1676
+ :constraints:
1677
+ MaximumValue: 100
1678
+ MinimumValue: 0
1679
+ StepValue: 1
1680
+ - :name: :water_level
1681
+ :description: Water Level
1682
+ :uuid: 000000B5-0000-1000-8000-0026BB765291
1683
+ :format: float
1684
+ :unit: nil
1685
+ :permissions:
1686
+ - securedRead
1687
+ :properties:
1688
+ - read
1689
+ - cnotify
1690
+ :constraints:
1691
+ MaximumValue: 100
1692
+ MinimumValue: 0