ruby_home 0.2.1 → 0.2.6

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 (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,278 @@
1
+ # These characteristics are unavailable within HomeKit Accessory Simulator
2
+ # running sbin/characteristic_generator.rb wont automatically generate them
3
+
4
+ ---
5
+ - :name: :active_identifier
6
+ :description: Active Identifier
7
+ :uuid: 000000E7-0000-1000-8000-0026BB765291
8
+ :format: uint32
9
+ :unit: nil
10
+ :properties:
11
+ - read
12
+ - write
13
+ - cnotify
14
+ :constraints:
15
+ - :name: :closed_captions
16
+ :description: Closed Captions
17
+ :uuid: 000000DD-0000-1000-8000-0026BB765291
18
+ :format: uint8
19
+ :unit: nil
20
+ :properties:
21
+ - read
22
+ - write
23
+ - cnotify
24
+ :constraints:
25
+ MaximumValue: 1
26
+ MinimumValue: 0
27
+ ValidValues:
28
+ '0': Disabled
29
+ '1': Enabled
30
+ - :name: :configured_name
31
+ :description: Configured Name
32
+ :uuid: 000000E3-0000-1000-8000-0026BB765291
33
+ :format: string
34
+ :unit: nil
35
+ :properties:
36
+ - read
37
+ - write
38
+ - cnotify
39
+ :constraints:
40
+ - :name: :current_media_state
41
+ :description: Current Media State
42
+ :uuid: 000000E0-0000-1000-8000-0026BB765291
43
+ :format: uint8
44
+ :unit: nil
45
+ :properties:
46
+ - read
47
+ - cnotify
48
+ :constraints:
49
+ MaximumValue: 5
50
+ MinimumValue: 0
51
+ ValidValues:
52
+ '0': Play
53
+ '1': Pause
54
+ '2': Stop
55
+ '3':
56
+ '4': Loading
57
+ '5': Interrupted
58
+ - :name: :current_visibility_state
59
+ :description: Current Visibility State
60
+ :uuid: 00000135-0000-1000-8000-0026BB765291
61
+ :format: uint8
62
+ :unit: nil
63
+ :properties:
64
+ - read
65
+ - cnotify
66
+ :constraints:
67
+ MaximumValue: 3
68
+ MinimumValue: 0
69
+ ValidValues:
70
+ '0': Shown
71
+ '1': Hidden
72
+ '2':
73
+ '3':
74
+ :constraints:
75
+ - :name: :display_order
76
+ :description: Display Order
77
+ :uuid: 00000136-0000-1000-8000-0026BB765291
78
+ :format: tlv8
79
+ :unit: nil
80
+ :properties:
81
+ - read
82
+ - write
83
+ - cnotify
84
+ :constraints:
85
+ - :name: :identifier
86
+ :description: Identifier
87
+ :uuid: 000000E6-0000-1000-8000-0026BB765291
88
+ :format: uint32
89
+ :unit: nil
90
+ :properties:
91
+ - read
92
+ :constraints:
93
+ MinimumValue: 0
94
+ StepValue: 1
95
+ - :name: :input_device_type
96
+ :description: Input Device Type
97
+ :uuid: 000000DC-0000-1000-8000-0026BB765291
98
+ :format: uint8
99
+ :unit: nil
100
+ :properties:
101
+ - read
102
+ - cnotify
103
+ :constraints:
104
+ MaximumValue: 6
105
+ MinimumValue: 0
106
+ ValidValues:
107
+ '0': Other
108
+ '1': Television
109
+ '2': Recording
110
+ '3': Tuner
111
+ '4': Playback
112
+ '5': Audio System
113
+ '6':
114
+ - :name: :input_source_type
115
+ :description: Input Source Type
116
+ :uuid: 000000DB-0000-1000-8000-0026BB765291
117
+ :format: uint8
118
+ :unit: nil
119
+ :properties:
120
+ - read
121
+ - cnotify
122
+ :constraints:
123
+ MaximumValue: 10
124
+ MinimumValue: 0
125
+ ValidValues:
126
+ '0': Other
127
+ '1': Home Screen
128
+ '2': Tuner
129
+ '3': HDMI
130
+ '4': Composite Video
131
+ '5': S Video
132
+ '6': Component Video
133
+ '7': DVI
134
+ '8': Airplay
135
+ '9': USB
136
+ '10': Application
137
+ - :name: :picture_mode
138
+ :description: Picture Mode
139
+ :uuid: 000000E2-0000-1000-8000-0026BB765291
140
+ :format: uint8
141
+ :unit: nil
142
+ :properties:
143
+ - read
144
+ - write
145
+ - cnotify
146
+ :constraints:
147
+ MaximumValue: 13
148
+ MinimumValue: 0
149
+ ValidValues:
150
+ '0': Other
151
+ '1': Standard
152
+ '2': Calibrated
153
+ '3': Calibrated Dark
154
+ '4': Vivid
155
+ '5': Game
156
+ '6': Computer
157
+ '7': Custom
158
+ '8':
159
+ '9':
160
+ '10':
161
+ '11':
162
+ '12':
163
+ '13':
164
+ - :name: :power_mode_selection
165
+ :description: Power Mode Selection
166
+ :uuid: 000000DF-0000-1000-8000-0026BB765291
167
+ :format: uint8
168
+ :unit: nil
169
+ :properties:
170
+ - write
171
+ :constraints:
172
+ MaximumValue: 1
173
+ MinimumValue: 0
174
+ ValidValues:
175
+ '0': Show
176
+ '1': Hide
177
+ - :name: :remote_key
178
+ :description: Remote Key
179
+ :uuid: 000000E1-0000-1000-8000-0026BB765291
180
+ :format: uint8
181
+ :unit: nil
182
+ :properties:
183
+ - write
184
+ :constraints:
185
+ MaximumValue: 16
186
+ MinimumValue: 0
187
+ ValidValues:
188
+ '0': Rewind
189
+ '1': Fast Forward
190
+ '2': Next Track
191
+ '3': Previous Track
192
+ '4': Arrow Up
193
+ '5': Arrow Down
194
+ '6': Arrow Left
195
+ '7': Arrow Right
196
+ '8': Select
197
+ '9': Back
198
+ '10': Exit
199
+ '11': Play Pause
200
+ '12':
201
+ '13':
202
+ '14':
203
+ '15': Information
204
+ '16':
205
+ - :name: :sleep_discovery_mode
206
+ :description: Sleep Discovery Mode
207
+ :uuid: 000000E8-0000-1000-8000-0026BB765291
208
+ :format: uint8
209
+ :unit: nil
210
+ :properties:
211
+ - read
212
+ - cnotify
213
+ :constraints:
214
+ MaximumValue: 1
215
+ MinimumValue: 0
216
+ ValidValues:
217
+ '0': Not Discoverable
218
+ '1': Always Discoverable
219
+ - :name: :target_media_state
220
+ :description: Target Media State
221
+ :uuid: 00000137-0000-1000-8000-0026BB765291
222
+ :format: uint8
223
+ :unit: nil
224
+ :properties:
225
+ - read
226
+ - write
227
+ - cnotify
228
+ :constraints:
229
+ MaximumValue: 2
230
+ MinimumValue: 0
231
+ ValidValues:
232
+ '0': Play
233
+ '1': Pause
234
+ '2': Stop
235
+ - :name: :target_visibility_state
236
+ :description: Target Visibility State
237
+ :uuid: 00000134-0000-1000-8000-0026BB765291
238
+ :format: uint8
239
+ :unit: nil
240
+ :properties:
241
+ - read
242
+ - write
243
+ - cnotify
244
+ :constraints:
245
+ MaximumValue: 1
246
+ MinimumValue: 0
247
+ ValidValues:
248
+ '0': Shown
249
+ '1': Hidden
250
+ - :name: :volume_control_type
251
+ :description: Volume Control Type
252
+ :uuid: 000000E9-0000-1000-8000-0026BB765291
253
+ :format: uint8
254
+ :unit: nil
255
+ :properties:
256
+ - read
257
+ - cnotify
258
+ :constraints:
259
+ MaximumValue: 3
260
+ MinimumValue: 0
261
+ ValidValues:
262
+ '0': None
263
+ '1': Relative
264
+ '2': Relative with Current
265
+ '3': Absolute
266
+ - :name: :volume_selector
267
+ :description: Volume Selector
268
+ :uuid: 000000EA-0000-1000-8000-0026BB765291
269
+ :format: uint8
270
+ :unit: nil
271
+ :properties:
272
+ - write
273
+ :constraints:
274
+ MaximumValue: 1
275
+ MinimumValue: 0
276
+ ValidValues:
277
+ '0': Increment
278
+ '1': Decrement
@@ -0,0 +1,45 @@
1
+ # These services are unavailable within HomeKit Accessory Simulator
2
+ # running sbin/service_generator.rb wont automatically generate them
3
+
4
+ ---
5
+ - :name: :television
6
+ :description: Television
7
+ :uuid: '000000D8-0000-1000-8000-0026BB765291'
8
+ :optional_characteristic_names:
9
+ - :brightness
10
+ - :closed_captions
11
+ - :current_media_state
12
+ - :display_order
13
+ - :name
14
+ - :picture_mode
15
+ - :power_mode_selection
16
+ - :target_media_state
17
+ :required_characteristic_names:
18
+ - :active
19
+ - :active_identifier
20
+ - :configured_name
21
+ - :remote_key
22
+ - :sleep_discovery_mode
23
+ - :name: :television_speaker
24
+ :description: Television Speaker
25
+ :uuid: 00000113-0000-1000-8000-0026BB765291
26
+ :optional_characteristic_names:
27
+ - :active
28
+ - :volume
29
+ - :volume_control_type
30
+ - :volume_selector
31
+ :required_characteristic_names:
32
+ - :mute
33
+ - :name: :input_source
34
+ :description: Input Source
35
+ :uuid: 000000D9-0000-1000-8000-0026BB765291
36
+ :optional_characteristic_names:
37
+ - :identifier
38
+ - :input_device_type
39
+ - :target_visibility_state
40
+ :required_characteristic_names:
41
+ - :configured_name
42
+ - :current_visibility_state
43
+ - :input_source_type
44
+ - :is_configured
45
+ - :name
@@ -2,415 +2,449 @@
2
2
  - :name: :accessory_information
3
3
  :description: Accessory Information
4
4
  :uuid: 0000003E-0000-1000-8000-0026BB765291
5
- :optional_characteristics_uuids:
6
- - 00000053-0000-1000-8000-0026BB765291
7
- - 000000A6-0000-1000-8000-0026BB765291
8
- :required_characteristics_uuids:
9
- - 00000014-0000-1000-8000-0026BB765291
10
- - 00000020-0000-1000-8000-0026BB765291
11
- - 00000021-0000-1000-8000-0026BB765291
12
- - 00000023-0000-1000-8000-0026BB765291
13
- - 00000030-0000-1000-8000-0026BB765291
14
- - 00000052-0000-1000-8000-0026BB765291
5
+ :optional_characteristic_names:
6
+ - :accessory_flags
7
+ - :hardware_revision
8
+ :required_characteristic_names:
9
+ - :firmware_revision
10
+ - :identify
11
+ - :manufacturer
12
+ - :model
13
+ - :name
14
+ - :serial_number
15
15
  - :name: :air_purifier
16
16
  :description: Air Purifier
17
17
  :uuid: 000000BB-0000-1000-8000-0026BB765291
18
- :optional_characteristics_uuids:
19
- - 000000A7-0000-1000-8000-0026BB765291
20
- - 00000023-0000-1000-8000-0026BB765291
21
- - 000000B6-0000-1000-8000-0026BB765291
22
- - '00000029-0000-1000-8000-0026BB765291'
23
- :required_characteristics_uuids:
24
- - 000000B0-0000-1000-8000-0026BB765291
25
- - 000000A9-0000-1000-8000-0026BB765291
26
- - 000000A8-0000-1000-8000-0026BB765291
18
+ :optional_characteristic_names:
19
+ - :lock_physical_controls
20
+ - :name
21
+ - :rotation_speed
22
+ - :swing_mode
23
+ :required_characteristic_names:
24
+ - :active
25
+ - :current_air_purifier_state
26
+ - :target_air_purifier_state
27
27
  - :name: :air_quality_sensor
28
28
  :description: Air Quality Sensor
29
29
  :uuid: '0000008D-0000-1000-8000-0026BB765291'
30
- :optional_characteristics_uuids:
31
- - 00000075-0000-1000-8000-0026BB765291
32
- - 00000077-0000-1000-8000-0026BB765291
33
- - 0000007A-0000-1000-8000-0026BB765291
34
- - '00000079-0000-1000-8000-0026BB765291'
35
- - 00000023-0000-1000-8000-0026BB765291
36
- - 000000C3-0000-1000-8000-0026BB765291
37
- - 000000C4-0000-1000-8000-0026BB765291
38
- - 000000C5-0000-1000-8000-0026BB765291
39
- - 000000C6-0000-1000-8000-0026BB765291
40
- - 000000C7-0000-1000-8000-0026BB765291
41
- - 000000C8-0000-1000-8000-0026BB765291
42
- - '00000090-0000-1000-8000-0026BB765291'
43
- - '00000093-0000-1000-8000-0026BB765291'
44
- :required_characteristics_uuids:
45
- - '00000095-0000-1000-8000-0026BB765291'
30
+ :optional_characteristic_names:
31
+ - :carbon_dioxide_level
32
+ - :carbon_monoxide_level
33
+ - :name
34
+ - :nitrogen_dioxide_density
35
+ - :ozone_density
36
+ - :pm10_density
37
+ - :pm2_5_density
38
+ - :status_active
39
+ - :status_fault
40
+ - :status_low_battery
41
+ - :status_tampered
42
+ - :sulphur_dioxide_density
43
+ - :voc_density
44
+ :required_characteristic_names:
45
+ - :air_quality
46
46
  - :name: :battery_service
47
47
  :description: Battery Service
48
48
  :uuid: '00000096-0000-1000-8000-0026BB765291'
49
- :optional_characteristics_uuids:
50
- - 00000023-0000-1000-8000-0026BB765291
51
- :required_characteristics_uuids:
52
- - '00000068-0000-1000-8000-0026BB765291'
53
- - '0000008F-0000-1000-8000-0026BB765291'
54
- - '00000079-0000-1000-8000-0026BB765291'
49
+ :optional_characteristic_names:
50
+ - :name
51
+ :required_characteristic_names:
52
+ - :battery_level
53
+ - :charging_state
54
+ - :status_low_battery
55
55
  - :name: :camera_rtp_stream_management
56
56
  :description: Camera RTP Stream Management
57
57
  :uuid: 00000110-0000-1000-8000-0026BB765291
58
- :optional_characteristics_uuids:
59
- - 00000023-0000-1000-8000-0026BB765291
60
- :required_characteristics_uuids:
61
- - 00000114-0000-1000-8000-0026BB765291
62
- - 00000115-0000-1000-8000-0026BB765291
63
- - 00000116-0000-1000-8000-0026BB765291
64
- - 00000117-0000-1000-8000-0026BB765291
65
- - 00000120-0000-1000-8000-0026BB765291
66
- - '00000118-0000-1000-8000-0026BB765291'
58
+ :optional_characteristic_names:
59
+ - :name
60
+ :required_characteristic_names:
61
+ - :selected_rtp_stream_configuration
62
+ - :setup_endpoints
63
+ - :streaming_status
64
+ - :supported_audio_stream_configuration
65
+ - :supported_rtp_configuration
66
+ - :supported_video_stream_configuration
67
67
  - :name: :carbon_dioxide_sensor
68
68
  :description: Carbon Dioxide Sensor
69
69
  :uuid: '00000097-0000-1000-8000-0026BB765291'
70
- :optional_characteristics_uuids:
71
- - 00000075-0000-1000-8000-0026BB765291
72
- - 00000077-0000-1000-8000-0026BB765291
73
- - '00000079-0000-1000-8000-0026BB765291'
74
- - 0000007A-0000-1000-8000-0026BB765291
75
- - '00000093-0000-1000-8000-0026BB765291'
76
- - '00000094-0000-1000-8000-0026BB765291'
77
- - 00000023-0000-1000-8000-0026BB765291
78
- :required_characteristics_uuids:
79
- - '00000092-0000-1000-8000-0026BB765291'
70
+ :optional_characteristic_names:
71
+ - :carbon_dioxide_level
72
+ - :carbon_dioxide_peak_level
73
+ - :name
74
+ - :status_active
75
+ - :status_fault
76
+ - :status_low_battery
77
+ - :status_tampered
78
+ :required_characteristic_names:
79
+ - :carbon_dioxide_detected
80
80
  - :name: :carbon_monoxide_sensor
81
81
  :description: Carbon Monoxide Sensor
82
82
  :uuid: 0000007F-0000-1000-8000-0026BB765291
83
- :optional_characteristics_uuids:
84
- - 00000075-0000-1000-8000-0026BB765291
85
- - 00000077-0000-1000-8000-0026BB765291
86
- - '00000079-0000-1000-8000-0026BB765291'
87
- - 0000007A-0000-1000-8000-0026BB765291
88
- - '00000090-0000-1000-8000-0026BB765291'
89
- - '00000091-0000-1000-8000-0026BB765291'
90
- - 00000023-0000-1000-8000-0026BB765291
91
- :required_characteristics_uuids:
92
- - '00000069-0000-1000-8000-0026BB765291'
83
+ :optional_characteristic_names:
84
+ - :carbon_monoxide_level
85
+ - :carbon_monoxide_peak_level
86
+ - :name
87
+ - :status_active
88
+ - :status_fault
89
+ - :status_low_battery
90
+ - :status_tampered
91
+ :required_characteristic_names:
92
+ - :carbon_monoxide_detected
93
93
  - :name: :contact_sensor
94
94
  :description: Contact Sensor
95
95
  :uuid: '00000080-0000-1000-8000-0026BB765291'
96
- :optional_characteristics_uuids:
97
- - 00000075-0000-1000-8000-0026BB765291
98
- - 00000077-0000-1000-8000-0026BB765291
99
- - 0000007A-0000-1000-8000-0026BB765291
100
- - '00000079-0000-1000-8000-0026BB765291'
101
- - 00000023-0000-1000-8000-0026BB765291
102
- :required_characteristics_uuids:
103
- - 0000006A-0000-1000-8000-0026BB765291
96
+ :optional_characteristic_names:
97
+ - :name
98
+ - :status_active
99
+ - :status_fault
100
+ - :status_low_battery
101
+ - :status_tampered
102
+ :required_characteristic_names:
103
+ - :contact_sensor_state
104
104
  - :name: :door
105
105
  :description: Door
106
106
  :uuid: '00000081-0000-1000-8000-0026BB765291'
107
- :optional_characteristics_uuids:
108
- - 0000006F-0000-1000-8000-0026BB765291
109
- - 00000024-0000-1000-8000-0026BB765291
110
- - 00000023-0000-1000-8000-0026BB765291
111
- :required_characteristics_uuids:
112
- - 0000006D-0000-1000-8000-0026BB765291
113
- - 00000072-0000-1000-8000-0026BB765291
114
- - 0000007C-0000-1000-8000-0026BB765291
107
+ :optional_characteristic_names:
108
+ - :hold_position
109
+ - :name
110
+ - :obstruction_detected
111
+ :required_characteristic_names:
112
+ - :current_position
113
+ - :position_state
114
+ - :target_position
115
115
  - :name: :doorbell
116
116
  :description: Doorbell
117
117
  :uuid: 00000121-0000-1000-8000-0026BB765291
118
- :optional_characteristics_uuids:
119
- - '00000008-0000-1000-8000-0026BB765291'
120
- - '00000119-0000-1000-8000-0026BB765291'
121
- - 00000023-0000-1000-8000-0026BB765291
122
- :required_characteristics_uuids:
123
- - 00000073-0000-1000-8000-0026BB765291
118
+ :optional_characteristic_names:
119
+ - :brightness
120
+ - :name
121
+ - :volume
122
+ :required_characteristic_names:
123
+ - :programmable_switch_event
124
124
  - :name: :fan
125
125
  :description: Fan
126
126
  :uuid: 00000040-0000-1000-8000-0026BB765291
127
- :optional_characteristics_uuids:
128
- - '00000028-0000-1000-8000-0026BB765291'
129
- - '00000029-0000-1000-8000-0026BB765291'
130
- - 00000023-0000-1000-8000-0026BB765291
131
- :required_characteristics_uuids:
132
- - 00000025-0000-1000-8000-0026BB765291
127
+ :optional_characteristic_names:
128
+ - :name
129
+ - :rotation_direction
130
+ - :rotation_speed
131
+ :required_characteristic_names:
132
+ - :on
133
133
  - :name: :fan_v2
134
134
  :description: Fan v2
135
135
  :uuid: 000000B7-0000-1000-8000-0026BB765291
136
- :optional_characteristics_uuids:
137
- - 000000AF-0000-1000-8000-0026BB765291
138
- - 000000BF-0000-1000-8000-0026BB765291
139
- - 000000A7-0000-1000-8000-0026BB765291
140
- - 00000023-0000-1000-8000-0026BB765291
141
- - '00000028-0000-1000-8000-0026BB765291'
142
- - '00000029-0000-1000-8000-0026BB765291'
143
- - 000000B6-0000-1000-8000-0026BB765291
144
- :required_characteristics_uuids:
145
- - 000000B0-0000-1000-8000-0026BB765291
136
+ :optional_characteristic_names:
137
+ - :current_fan_state
138
+ - :lock_physical_controls
139
+ - :name
140
+ - :rotation_direction
141
+ - :rotation_speed
142
+ - :swing_mode
143
+ - :target_fan_state
144
+ :required_characteristic_names:
145
+ - :active
146
146
  - :name: :filter_maintenance
147
147
  :description: Filter Maintenance
148
148
  :uuid: 000000BA-0000-1000-8000-0026BB765291
149
- :optional_characteristics_uuids:
150
- - 000000AB-0000-1000-8000-0026BB765291
151
- - 000000AD-0000-1000-8000-0026BB765291
152
- - 00000023-0000-1000-8000-0026BB765291
153
- :required_characteristics_uuids:
154
- - 000000AC-0000-1000-8000-0026BB765291
149
+ :optional_characteristic_names:
150
+ - :filter_life_level
151
+ - :name
152
+ - :reset_filter_indication
153
+ :required_characteristic_names:
154
+ - :filter_change_indication
155
+ - :name: :faucet
156
+ :description: Faucet
157
+ :uuid: 000000D7-0000-1000-8000-0026BB765291
158
+ :optional_characteristic_names:
159
+ - :name
160
+ - :status_fault
161
+ :required_characteristic_names:
162
+ - :active
155
163
  - :name: :garage_door_opener
156
164
  :description: Garage Door Opener
157
165
  :uuid: 00000041-0000-1000-8000-0026BB765291
158
- :optional_characteristics_uuids:
159
- - 0000001D-0000-1000-8000-0026BB765291
160
- - 0000001E-0000-1000-8000-0026BB765291
161
- - 00000023-0000-1000-8000-0026BB765291
162
- :required_characteristics_uuids:
163
- - 0000000E-0000-1000-8000-0026BB765291
164
- - 00000032-0000-1000-8000-0026BB765291
165
- - 00000024-0000-1000-8000-0026BB765291
166
+ :optional_characteristic_names:
167
+ - :lock_current_state
168
+ - :lock_target_state
169
+ - :name
170
+ :required_characteristic_names:
171
+ - :current_door_state
172
+ - :obstruction_detected
173
+ - :target_door_state
166
174
  - :name: :heater_cooler
167
175
  :description: Heater Cooler
168
176
  :uuid: 000000BC-0000-1000-8000-0026BB765291
169
- :optional_characteristics_uuids:
170
- - 000000A7-0000-1000-8000-0026BB765291
171
- - 00000023-0000-1000-8000-0026BB765291
172
- - 000000B6-0000-1000-8000-0026BB765291
173
- - 0000000D-0000-1000-8000-0026BB765291
174
- - 00000012-0000-1000-8000-0026BB765291
175
- - 00000036-0000-1000-8000-0026BB765291
176
- - '00000029-0000-1000-8000-0026BB765291'
177
- :required_characteristics_uuids:
178
- - 000000B0-0000-1000-8000-0026BB765291
179
- - 000000B1-0000-1000-8000-0026BB765291
180
- - 000000B2-0000-1000-8000-0026BB765291
181
- - 00000011-0000-1000-8000-0026BB765291
177
+ :optional_characteristic_names:
178
+ - :cooling_threshold_temperature
179
+ - :heating_threshold_temperature
180
+ - :lock_physical_controls
181
+ - :name
182
+ - :rotation_speed
183
+ - :swing_mode
184
+ - :temperature_display_units
185
+ :required_characteristic_names:
186
+ - :active
187
+ - :current_heater_cooler_state
188
+ - :current_temperature
189
+ - :target_heater_cooler_state
182
190
  - :name: :humidifier_dehumidifier
183
191
  :description: Humidifier Dehumidifier
184
192
  :uuid: 000000BD-0000-1000-8000-0026BB765291
185
- :optional_characteristics_uuids:
186
- - 000000A7-0000-1000-8000-0026BB765291
187
- - 00000023-0000-1000-8000-0026BB765291
188
- - 000000B6-0000-1000-8000-0026BB765291
189
- - 000000B5-0000-1000-8000-0026BB765291
190
- - 000000C9-0000-1000-8000-0026BB765291
191
- - 000000CA-0000-1000-8000-0026BB765291
192
- - '00000029-0000-1000-8000-0026BB765291'
193
- :required_characteristics_uuids:
194
- - 00000010-0000-1000-8000-0026BB765291
195
- - 000000B3-0000-1000-8000-0026BB765291
196
- - 000000B4-0000-1000-8000-0026BB765291
197
- - 000000B0-0000-1000-8000-0026BB765291
193
+ :optional_characteristic_names:
194
+ - :lock_physical_controls
195
+ - :name
196
+ - :relative_humidity_dehumidifier_threshold
197
+ - :relative_humidity_humidifier_threshold
198
+ - :rotation_speed
199
+ - :swing_mode
200
+ - :water_level
201
+ :required_characteristic_names:
202
+ - :active
203
+ - :current_humidifier_dehumidifier_state
204
+ - :current_relative_humidity
205
+ - :target_humidifier_dehumidifier_state
198
206
  - :name: :humidity_sensor
199
207
  :description: Humidity Sensor
200
208
  :uuid: '00000082-0000-1000-8000-0026BB765291'
201
- :optional_characteristics_uuids:
202
- - 00000075-0000-1000-8000-0026BB765291
203
- - 00000077-0000-1000-8000-0026BB765291
204
- - 0000007A-0000-1000-8000-0026BB765291
205
- - '00000079-0000-1000-8000-0026BB765291'
206
- - 00000023-0000-1000-8000-0026BB765291
207
- :required_characteristics_uuids:
208
- - 00000010-0000-1000-8000-0026BB765291
209
+ :optional_characteristic_names:
210
+ - :name
211
+ - :status_active
212
+ - :status_fault
213
+ - :status_low_battery
214
+ - :status_tampered
215
+ :required_characteristic_names:
216
+ - :current_relative_humidity
217
+ - :name: :irrigation_system
218
+ :description: Irrigation System
219
+ :uuid: 000000CF-0000-1000-8000-0026BB765291
220
+ :optional_characteristic_names:
221
+ - :name
222
+ - :remaining_duration
223
+ - :status_fault
224
+ :required_characteristic_names:
225
+ - :active
226
+ - :in_use
227
+ - :program_mode
209
228
  - :name: :leak_sensor
210
229
  :description: Leak Sensor
211
230
  :uuid: '00000083-0000-1000-8000-0026BB765291'
212
- :optional_characteristics_uuids:
213
- - 00000075-0000-1000-8000-0026BB765291
214
- - 00000077-0000-1000-8000-0026BB765291
215
- - 0000007A-0000-1000-8000-0026BB765291
216
- - '00000079-0000-1000-8000-0026BB765291'
217
- - 00000023-0000-1000-8000-0026BB765291
218
- :required_characteristics_uuids:
219
- - 00000070-0000-1000-8000-0026BB765291
231
+ :optional_characteristic_names:
232
+ - :name
233
+ - :status_active
234
+ - :status_fault
235
+ - :status_low_battery
236
+ - :status_tampered
237
+ :required_characteristic_names:
238
+ - :leak_detected
220
239
  - :name: :light_sensor
221
240
  :description: Light Sensor
222
241
  :uuid: '00000084-0000-1000-8000-0026BB765291'
223
- :optional_characteristics_uuids:
224
- - 00000075-0000-1000-8000-0026BB765291
225
- - 00000077-0000-1000-8000-0026BB765291
226
- - 0000007A-0000-1000-8000-0026BB765291
227
- - '00000079-0000-1000-8000-0026BB765291'
228
- - 00000023-0000-1000-8000-0026BB765291
229
- :required_characteristics_uuids:
230
- - 0000006B-0000-1000-8000-0026BB765291
242
+ :optional_characteristic_names:
243
+ - :name
244
+ - :status_active
245
+ - :status_fault
246
+ - :status_low_battery
247
+ - :status_tampered
248
+ :required_characteristic_names:
249
+ - :current_ambient_light_level
231
250
  - :name: :lightbulb
232
251
  :description: Lightbulb
233
252
  :uuid: 00000043-0000-1000-8000-0026BB765291
234
- :optional_characteristics_uuids:
235
- - '00000008-0000-1000-8000-0026BB765291'
236
- - 00000013-0000-1000-8000-0026BB765291
237
- - 0000002F-0000-1000-8000-0026BB765291
238
- - 00000023-0000-1000-8000-0026BB765291
239
- :required_characteristics_uuids:
240
- - 00000025-0000-1000-8000-0026BB765291
253
+ :optional_characteristic_names:
254
+ - :brightness
255
+ - :color_temperature
256
+ - :hue
257
+ - :name
258
+ - :saturation
259
+ :required_characteristic_names:
260
+ - :on
241
261
  - :name: :lock_management
242
262
  :description: Lock Management
243
263
  :uuid: 00000044-0000-1000-8000-0026BB765291
244
- :optional_characteristics_uuids:
245
- - 0000001F-0000-1000-8000-0026BB765291
246
- - 00000005-0000-1000-8000-0026BB765291
247
- - 0000001A-0000-1000-8000-0026BB765291
248
- - 00000001-0000-1000-8000-0026BB765291
249
- - 0000001C-0000-1000-8000-0026BB765291
250
- - 0000000E-0000-1000-8000-0026BB765291
251
- - 00000022-0000-1000-8000-0026BB765291
252
- - 00000023-0000-1000-8000-0026BB765291
253
- :required_characteristics_uuids:
254
- - '00000019-0000-1000-8000-0026BB765291'
255
- - 00000037-0000-1000-8000-0026BB765291
264
+ :optional_characteristic_names:
265
+ - :administrator_only_access
266
+ - :audio_feedback
267
+ - :current_door_state
268
+ - :lock_last_known_action
269
+ - :lock_management_auto_security_timeout
270
+ - :logs
271
+ - :motion_detected
272
+ - :name
273
+ :required_characteristic_names:
274
+ - :lock_control_point
275
+ - :version
256
276
  - :name: :lock_mechanism
257
277
  :description: Lock Mechanism
258
278
  :uuid: 00000045-0000-1000-8000-0026BB765291
259
- :optional_characteristics_uuids:
260
- - 00000023-0000-1000-8000-0026BB765291
261
- :required_characteristics_uuids:
262
- - 0000001D-0000-1000-8000-0026BB765291
263
- - 0000001E-0000-1000-8000-0026BB765291
279
+ :optional_characteristic_names:
280
+ - :name
281
+ :required_characteristic_names:
282
+ - :lock_current_state
283
+ - :lock_target_state
264
284
  - :name: :microphone
265
285
  :description: Microphone
266
286
  :uuid: 00000112-0000-1000-8000-0026BB765291
267
- :optional_characteristics_uuids:
268
- - '00000119-0000-1000-8000-0026BB765291'
269
- - 00000023-0000-1000-8000-0026BB765291
270
- :required_characteristics_uuids:
271
- - 0000011A-0000-1000-8000-0026BB765291
287
+ :optional_characteristic_names:
288
+ - :name
289
+ :required_characteristic_names:
290
+ - :mute
291
+ - :volume
272
292
  - :name: :motion_sensor
273
293
  :description: Motion Sensor
274
294
  :uuid: '00000085-0000-1000-8000-0026BB765291'
275
- :optional_characteristics_uuids:
276
- - 00000075-0000-1000-8000-0026BB765291
277
- - 00000077-0000-1000-8000-0026BB765291
278
- - 0000007A-0000-1000-8000-0026BB765291
279
- - '00000079-0000-1000-8000-0026BB765291'
280
- - 00000023-0000-1000-8000-0026BB765291
281
- :required_characteristics_uuids:
282
- - 00000022-0000-1000-8000-0026BB765291
295
+ :optional_characteristic_names:
296
+ - :name
297
+ - :status_active
298
+ - :status_fault
299
+ - :status_low_battery
300
+ - :status_tampered
301
+ :required_characteristic_names:
302
+ - :motion_detected
283
303
  - :name: :occupancy_sensor
284
304
  :description: Occupancy Sensor
285
305
  :uuid: '00000086-0000-1000-8000-0026BB765291'
286
- :optional_characteristics_uuids:
287
- - 00000075-0000-1000-8000-0026BB765291
288
- - 00000077-0000-1000-8000-0026BB765291
289
- - 0000007A-0000-1000-8000-0026BB765291
290
- - '00000079-0000-1000-8000-0026BB765291'
291
- - 00000023-0000-1000-8000-0026BB765291
292
- :required_characteristics_uuids:
293
- - 00000071-0000-1000-8000-0026BB765291
306
+ :optional_characteristic_names:
307
+ - :name
308
+ - :status_active
309
+ - :status_fault
310
+ - :status_low_battery
311
+ - :status_tampered
312
+ :required_characteristic_names:
313
+ - :occupancy_detected
294
314
  - :name: :outlet
295
315
  :description: Outlet
296
316
  :uuid: 00000047-0000-1000-8000-0026BB765291
297
- :optional_characteristics_uuids:
298
- - 00000023-0000-1000-8000-0026BB765291
299
- :required_characteristics_uuids:
300
- - 00000025-0000-1000-8000-0026BB765291
301
- - 00000026-0000-1000-8000-0026BB765291
317
+ :optional_characteristic_names:
318
+ - :name
319
+ :required_characteristic_names:
320
+ - :on
321
+ - :outlet_in_use
302
322
  - :name: :security_system
303
323
  :description: Security System
304
324
  :uuid: 0000007E-0000-1000-8000-0026BB765291
305
- :optional_characteristics_uuids:
306
- - 00000077-0000-1000-8000-0026BB765291
307
- - 0000007A-0000-1000-8000-0026BB765291
308
- - '0000008E-0000-1000-8000-0026BB765291'
309
- - 00000023-0000-1000-8000-0026BB765291
310
- :required_characteristics_uuids:
311
- - 00000066-0000-1000-8000-0026BB765291
312
- - 00000067-0000-1000-8000-0026BB765291
325
+ :optional_characteristic_names:
326
+ - :name
327
+ - :security_system_alarm_type
328
+ - :status_fault
329
+ - :status_tampered
330
+ :required_characteristic_names:
331
+ - :security_system_current_state
332
+ - :security_system_target_state
313
333
  - :name: :service_label
314
334
  :description: Service Label
315
335
  :uuid: 000000CC-0000-1000-8000-0026BB765291
316
- :optional_characteristics_uuids:
317
- - 00000023-0000-1000-8000-0026BB765291
318
- :required_characteristics_uuids:
319
- - 000000CD-0000-1000-8000-0026BB765291
336
+ :optional_characteristic_names:
337
+ - :name
338
+ :required_characteristic_names:
339
+ - :service_label_namespace
320
340
  - :name: :slat
321
341
  :description: Slat
322
342
  :uuid: 000000B9-0000-1000-8000-0026BB765291
323
- :optional_characteristics_uuids:
324
- - 00000023-0000-1000-8000-0026BB765291
325
- - 000000C1-0000-1000-8000-0026BB765291
326
- - 000000C2-0000-1000-8000-0026BB765291
327
- - 000000B6-0000-1000-8000-0026BB765291
328
- :required_characteristics_uuids:
329
- - 000000C0-0000-1000-8000-0026BB765291
330
- - 000000AA-0000-1000-8000-0026BB765291
343
+ :optional_characteristic_names:
344
+ - :current_tilt_angle
345
+ - :name
346
+ - :swing_mode
347
+ - :target_tilt_angle
348
+ :required_characteristic_names:
349
+ - :current_slat_state
350
+ - :slat_type
331
351
  - :name: :smoke_sensor
332
352
  :description: Smoke Sensor
333
353
  :uuid: '00000087-0000-1000-8000-0026BB765291'
334
- :optional_characteristics_uuids:
335
- - 00000075-0000-1000-8000-0026BB765291
336
- - 00000077-0000-1000-8000-0026BB765291
337
- - 0000007A-0000-1000-8000-0026BB765291
338
- - '00000079-0000-1000-8000-0026BB765291'
339
- - 00000023-0000-1000-8000-0026BB765291
340
- :required_characteristics_uuids:
341
- - 00000076-0000-1000-8000-0026BB765291
354
+ :optional_characteristic_names:
355
+ - :name
356
+ - :status_active
357
+ - :status_fault
358
+ - :status_low_battery
359
+ - :status_tampered
360
+ :required_characteristic_names:
361
+ - :smoke_detected
342
362
  - :name: :speaker
343
363
  :description: Speaker
344
364
  :uuid: 00000113-0000-1000-8000-0026BB765291
345
- :optional_characteristics_uuids:
346
- - '00000119-0000-1000-8000-0026BB765291'
347
- - 00000023-0000-1000-8000-0026BB765291
348
- :required_characteristics_uuids:
349
- - 0000011A-0000-1000-8000-0026BB765291
365
+ :optional_characteristic_names:
366
+ - :name
367
+ - :volume
368
+ :required_characteristic_names:
369
+ - :mute
350
370
  - :name: :stateless_programmable_switch
351
371
  :description: Stateless Programmable Switch
352
372
  :uuid: '00000089-0000-1000-8000-0026BB765291'
353
- :optional_characteristics_uuids:
354
- - 00000023-0000-1000-8000-0026BB765291
355
- - 000000CB-0000-1000-8000-0026BB765291
356
- :required_characteristics_uuids:
357
- - 00000073-0000-1000-8000-0026BB765291
373
+ :optional_characteristic_names:
374
+ - :name
375
+ - :service_label_index
376
+ :required_characteristic_names:
377
+ - :programmable_switch_event
358
378
  - :name: :switch
359
379
  :description: Switch
360
380
  :uuid: '00000049-0000-1000-8000-0026BB765291'
361
- :optional_characteristics_uuids:
362
- - 00000023-0000-1000-8000-0026BB765291
363
- :required_characteristics_uuids:
364
- - 00000025-0000-1000-8000-0026BB765291
381
+ :optional_characteristic_names:
382
+ - :name
383
+ :required_characteristic_names:
384
+ - :on
365
385
  - :name: :temperature_sensor
366
386
  :description: Temperature Sensor
367
387
  :uuid: '0000008A-0000-1000-8000-0026BB765291'
368
- :optional_characteristics_uuids:
369
- - 00000075-0000-1000-8000-0026BB765291
370
- - 00000077-0000-1000-8000-0026BB765291
371
- - '00000079-0000-1000-8000-0026BB765291'
372
- - 0000007A-0000-1000-8000-0026BB765291
373
- - 00000023-0000-1000-8000-0026BB765291
374
- :required_characteristics_uuids:
375
- - 00000011-0000-1000-8000-0026BB765291
388
+ :optional_characteristic_names:
389
+ - :name
390
+ - :status_active
391
+ - :status_fault
392
+ - :status_low_battery
393
+ - :status_tampered
394
+ :required_characteristic_names:
395
+ - :current_temperature
376
396
  - :name: :thermostat
377
397
  :description: Thermostat
378
398
  :uuid: 0000004A-0000-1000-8000-0026BB765291
379
- :optional_characteristics_uuids:
380
- - 00000010-0000-1000-8000-0026BB765291
381
- - 00000034-0000-1000-8000-0026BB765291
382
- - 0000000D-0000-1000-8000-0026BB765291
383
- - 00000012-0000-1000-8000-0026BB765291
384
- - 00000023-0000-1000-8000-0026BB765291
385
- :required_characteristics_uuids:
386
- - 0000000F-0000-1000-8000-0026BB765291
387
- - 00000033-0000-1000-8000-0026BB765291
388
- - 00000011-0000-1000-8000-0026BB765291
389
- - 00000035-0000-1000-8000-0026BB765291
390
- - 00000036-0000-1000-8000-0026BB765291
399
+ :optional_characteristic_names:
400
+ - :cooling_threshold_temperature
401
+ - :current_relative_humidity
402
+ - :heating_threshold_temperature
403
+ - :name
404
+ - :target_relative_humidity
405
+ :required_characteristic_names:
406
+ - :current_heating_cooling_state
407
+ - :current_temperature
408
+ - :target_heating_cooling_state
409
+ - :target_temperature
410
+ - :temperature_display_units
411
+ - :name: :valve
412
+ :description: Valve
413
+ :uuid: 000000D0-0000-1000-8000-0026BB765291
414
+ :optional_characteristic_names:
415
+ - :is_configured
416
+ - :name
417
+ - :remaining_duration
418
+ - :service_label_index
419
+ - :set_duration
420
+ - :status_fault
421
+ :required_characteristic_names:
422
+ - :active
423
+ - :in_use
424
+ - :valve_type
391
425
  - :name: :window
392
426
  :description: Window
393
427
  :uuid: '0000008B-0000-1000-8000-0026BB765291'
394
- :optional_characteristics_uuids:
395
- - 0000006F-0000-1000-8000-0026BB765291
396
- - 00000024-0000-1000-8000-0026BB765291
397
- - 00000023-0000-1000-8000-0026BB765291
398
- :required_characteristics_uuids:
399
- - 0000006D-0000-1000-8000-0026BB765291
400
- - 0000007C-0000-1000-8000-0026BB765291
401
- - 00000072-0000-1000-8000-0026BB765291
428
+ :optional_characteristic_names:
429
+ - :hold_position
430
+ - :name
431
+ - :obstruction_detected
432
+ :required_characteristic_names:
433
+ - :current_position
434
+ - :position_state
435
+ - :target_position
402
436
  - :name: :window_covering
403
437
  :description: Window Covering
404
438
  :uuid: '0000008C-0000-1000-8000-0026BB765291'
405
- :optional_characteristics_uuids:
406
- - 0000006F-0000-1000-8000-0026BB765291
407
- - 0000007B-0000-1000-8000-0026BB765291
408
- - 0000007D-0000-1000-8000-0026BB765291
409
- - 0000006C-0000-1000-8000-0026BB765291
410
- - 0000006E-0000-1000-8000-0026BB765291
411
- - 00000024-0000-1000-8000-0026BB765291
412
- - 00000023-0000-1000-8000-0026BB765291
413
- :required_characteristics_uuids:
414
- - 0000006D-0000-1000-8000-0026BB765291
415
- - 0000007C-0000-1000-8000-0026BB765291
416
- - 00000072-0000-1000-8000-0026BB765291
439
+ :optional_characteristic_names:
440
+ - :current_horizontal_tilt_angle
441
+ - :current_vertical_tilt_angle
442
+ - :hold_position
443
+ - :name
444
+ - :obstruction_detected
445
+ - :target_horizontal_tilt_angle
446
+ - :target_vertical_tilt_angle
447
+ :required_characteristic_names:
448
+ - :current_position
449
+ - :position_state
450
+ - :target_position