@switchbot/homebridge-switchbot 3.6.1-beta.10 → 3.6.1-beta.11

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 (109) hide show
  1. package/dist/device/blindtilt.d.ts.map +1 -1
  2. package/dist/device/blindtilt.js +9 -0
  3. package/dist/device/blindtilt.js.map +1 -1
  4. package/dist/device/bot.d.ts.map +1 -1
  5. package/dist/device/bot.js +34 -1
  6. package/dist/device/bot.js.map +1 -1
  7. package/dist/device/ceilinglight.d.ts.map +1 -1
  8. package/dist/device/ceilinglight.js +3 -0
  9. package/dist/device/ceilinglight.js.map +1 -1
  10. package/dist/device/contact.d.ts.map +1 -1
  11. package/dist/device/contact.js +12 -0
  12. package/dist/device/contact.js.map +1 -1
  13. package/dist/device/curtain.d.ts.map +1 -1
  14. package/dist/device/curtain.js +9 -0
  15. package/dist/device/curtain.js.map +1 -1
  16. package/dist/device/fan.d.ts.map +1 -1
  17. package/dist/device/fan.js +9 -0
  18. package/dist/device/fan.js.map +1 -1
  19. package/dist/device/hub.d.ts.map +1 -1
  20. package/dist/device/hub.js +9 -0
  21. package/dist/device/hub.js.map +1 -1
  22. package/dist/device/humidifier.d.ts.map +1 -1
  23. package/dist/device/humidifier.js +6 -0
  24. package/dist/device/humidifier.js.map +1 -1
  25. package/dist/device/iosensor.d.ts.map +1 -1
  26. package/dist/device/iosensor.js +9 -0
  27. package/dist/device/iosensor.js.map +1 -1
  28. package/dist/device/lightstrip.d.ts.map +1 -1
  29. package/dist/device/lightstrip.js +3 -0
  30. package/dist/device/lightstrip.js.map +1 -1
  31. package/dist/device/lock.d.ts.map +1 -1
  32. package/dist/device/lock.js +12 -0
  33. package/dist/device/lock.js.map +1 -1
  34. package/dist/device/meter.d.ts.map +1 -1
  35. package/dist/device/meter.js +9 -0
  36. package/dist/device/meter.js.map +1 -1
  37. package/dist/device/meterplus.d.ts.map +1 -1
  38. package/dist/device/meterplus.js +9 -0
  39. package/dist/device/meterplus.js.map +1 -1
  40. package/dist/device/motion.d.ts.map +1 -1
  41. package/dist/device/motion.js +10 -1
  42. package/dist/device/motion.js.map +1 -1
  43. package/dist/device/plug.d.ts.map +1 -1
  44. package/dist/device/plug.js +4 -1
  45. package/dist/device/plug.js.map +1 -1
  46. package/dist/device/robotvacuumcleaner.d.ts.map +1 -1
  47. package/dist/device/robotvacuumcleaner.js +7 -1
  48. package/dist/device/robotvacuumcleaner.js.map +1 -1
  49. package/dist/device/waterdetector.d.ts.map +1 -1
  50. package/dist/device/waterdetector.js +6 -0
  51. package/dist/device/waterdetector.js.map +1 -1
  52. package/dist/irdevice/airconditioner.d.ts.map +1 -1
  53. package/dist/irdevice/airconditioner.js +8 -1
  54. package/dist/irdevice/airconditioner.js.map +1 -1
  55. package/dist/irdevice/airpurifier.d.ts.map +1 -1
  56. package/dist/irdevice/airpurifier.js +6 -0
  57. package/dist/irdevice/airpurifier.js.map +1 -1
  58. package/dist/irdevice/camera.d.ts.map +1 -1
  59. package/dist/irdevice/camera.js +3 -0
  60. package/dist/irdevice/camera.js.map +1 -1
  61. package/dist/irdevice/fan.d.ts.map +1 -1
  62. package/dist/irdevice/fan.js +3 -0
  63. package/dist/irdevice/fan.js.map +1 -1
  64. package/dist/irdevice/irdevice.d.ts +9 -0
  65. package/dist/irdevice/irdevice.d.ts.map +1 -1
  66. package/dist/irdevice/irdevice.js +29 -2
  67. package/dist/irdevice/irdevice.js.map +1 -1
  68. package/dist/irdevice/light.d.ts.map +1 -1
  69. package/dist/irdevice/light.js +9 -0
  70. package/dist/irdevice/light.js.map +1 -1
  71. package/dist/irdevice/other.d.ts.map +1 -1
  72. package/dist/irdevice/other.js +30 -0
  73. package/dist/irdevice/other.js.map +1 -1
  74. package/dist/irdevice/tv.d.ts.map +1 -1
  75. package/dist/irdevice/tv.js +9 -0
  76. package/dist/irdevice/tv.js.map +1 -1
  77. package/dist/irdevice/vacuumcleaner.d.ts.map +1 -1
  78. package/dist/irdevice/vacuumcleaner.js +3 -0
  79. package/dist/irdevice/vacuumcleaner.js.map +1 -1
  80. package/dist/irdevice/waterheater.js +1 -1
  81. package/dist/irdevice/waterheater.js.map +1 -1
  82. package/package.json +1 -1
  83. package/src/device/blindtilt.ts +12 -0
  84. package/src/device/bot.ts +45 -1
  85. package/src/device/ceilinglight.ts +4 -0
  86. package/src/device/contact.ts +16 -0
  87. package/src/device/curtain.ts +12 -0
  88. package/src/device/fan.ts +12 -0
  89. package/src/device/hub.ts +12 -0
  90. package/src/device/humidifier.ts +8 -0
  91. package/src/device/iosensor.ts +12 -0
  92. package/src/device/lightstrip.ts +4 -0
  93. package/src/device/lock.ts +16 -0
  94. package/src/device/meter.ts +12 -0
  95. package/src/device/meterplus.ts +12 -0
  96. package/src/device/motion.ts +14 -2
  97. package/src/device/plug.ts +5 -1
  98. package/src/device/robotvacuumcleaner.ts +9 -1
  99. package/src/device/waterdetector.ts +8 -0
  100. package/src/irdevice/airconditioner.ts +11 -2
  101. package/src/irdevice/airpurifier.ts +8 -0
  102. package/src/irdevice/camera.ts +4 -0
  103. package/src/irdevice/fan.ts +4 -0
  104. package/src/irdevice/irdevice.ts +35 -2
  105. package/src/irdevice/light.ts +12 -0
  106. package/src/irdevice/other.ts +40 -0
  107. package/src/irdevice/tv.ts +12 -0
  108. package/src/irdevice/vacuumcleaner.ts +4 -0
  109. package/src/irdevice/waterheater.ts +1 -1
@@ -19,6 +19,9 @@ export class VacuumCleaner extends irdeviceBase {
19
19
  accessory.category = 1 /* this.hap.Categories.OTHER */;
20
20
  // Initialize Switch Service
21
21
  accessory.context.Switch = accessory.context.Switch ?? {};
22
+ if (accessory.context.Switch.Name) {
23
+ accessory.context.Switch.Name = this.validateAndCleanString(accessory.context.Switch.Name, 'Switch Name', accessory.context.Switch.Name);
24
+ }
22
25
  this.Switch = {
23
26
  Name: accessory.context.Switch.Name ?? `${accessory.displayName} ${device.remoteType}`,
24
27
  Service: accessory.getService(this.hap.Service.Switch) ?? accessory.addService(this.hap.Service.Switch),
@@ -1 +1 @@
1
- {"version":3,"file":"vacuumcleaner.js","sourceRoot":"","sources":["../../src/irdevice/vacuumcleaner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vacuumcleaner.js","sourceRoot":"","sources":["../../src/irdevice/vacuumcleaner.ts"],"names":[],"mappings":"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"}
@@ -26,7 +26,7 @@ export class WaterHeater extends irdeviceBase {
26
26
  };
27
27
  accessory.context.Valve = this.Valve;
28
28
  this.Valve.Service
29
- .setCharacteristic(this.hap.Characteristic.Name, accessory.displayName)
29
+ .setCharacteristic(this.hap.Characteristic.Name, this.Valve.Name)
30
30
  .setCharacteristic(this.hap.Characteristic.ValveType, this.hap.Characteristic.ValveType.GENERIC_VALVE)
31
31
  .getCharacteristic(this.hap.Characteristic.Active)
32
32
  .onGet(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"waterheater.js","sourceRoot":"","sources":["../../src/irdevice/waterheater.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"waterheater.js","sourceRoot":"","sources":["../../src/irdevice/waterheater.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "displayName": "SwitchBot",
3
3
  "name": "@switchbot/homebridge-switchbot",
4
- "version": "3.6.1-beta.10",
4
+ "version": "3.6.1-beta.11",
5
5
  "description": "The SwitchBot plugin allows you to access your SwitchBot device(s) from HomeKit.",
6
6
  "author": {
7
7
  "name": "SwitchBot",
@@ -80,6 +80,10 @@ export class BlindTilt extends deviceBase {
80
80
 
81
81
  // Initialize WindowCovering Service
82
82
  accessory.context.WindowCovering = accessory.context.WindowCovering ?? {};
83
+ if (accessory.context.WindowCovering.Name) {
84
+ accessory.context.WindowCovering.Name = this.validateAndCleanString(accessory.context.WindowCovering.Name,
85
+ 'WindowCovering Name', accessory.context.WindowCovering.Name);
86
+ }
83
87
  this.WindowCovering = {
84
88
  Name: accessory.context.WindowCovering.Name ?? accessory.displayName,
85
89
  Service: accessory.getService(this.hap.Service.WindowCovering) ?? accessory.addService(this.hap.Service.WindowCovering) as Service,
@@ -146,6 +150,10 @@ export class BlindTilt extends deviceBase {
146
150
 
147
151
  // Initialize Battery Service
148
152
  accessory.context.Battery = accessory.context.Battery ?? {};
153
+ if (accessory.context.Battery.Name) {
154
+ accessory.context.Battery.Name = this.validateAndCleanString(accessory.context.Battery.Name,
155
+ 'Battery Name', accessory.context.Battery.Name);
156
+ }
149
157
  this.Battery = {
150
158
  Name: accessory.context.Battery.Name ?? `${accessory.displayName} Battery`,
151
159
  Service: accessory.getService(this.hap.Service.Battery) ?? accessory.addService(this.hap.Service.Battery) as Service,
@@ -172,6 +180,10 @@ export class BlindTilt extends deviceBase {
172
180
  }
173
181
  } else {
174
182
  accessory.context.LightSensor = accessory.context.LightSensor ?? {};
183
+ if (accessory.context.LightSensor.Name) {
184
+ accessory.context.LightSensor.Name = this.validateAndCleanString(accessory.context.LightSensor.Name,
185
+ 'LightSensor Name', accessory.context.LightSensor.Name);
186
+ }
175
187
  this.LightSensor = {
176
188
  Name: accessory.context.LightSensor.Name ?? `${accessory.displayName} Light Sensor`,
177
189
  Service: accessory.getService(this.hap.Service.LightSensor) ?? accessory.addService(this.hap.Service.LightSensor) as Service,
package/src/device/bot.ts CHANGED
@@ -115,8 +115,12 @@ export class Bot extends deviceBase {
115
115
  this.doBotUpdate = new Subject();
116
116
  this.botUpdateInProgress = false;
117
117
 
118
- accessory.context.Battery = accessory.context.Battery ?? {};
119
118
  // Initialize Battery property
119
+ accessory.context.Battery = accessory.context.Battery ?? {};
120
+ if (accessory.context.Battery.Name) {
121
+ accessory.context.Battery.Name = this.validateAndCleanString(accessory.context.Battery.Name,
122
+ 'Battery Name', accessory.context.Battery.Name);
123
+ }
120
124
  this.Battery = {
121
125
  Name: accessory.context.Battery.Name ?? `${accessory.displayName} Battery`,
122
126
  Service: accessory.getService(this.hap.Service.Battery) ?? accessory.addService(this.hap.Service.Battery) as Service,
@@ -136,6 +140,10 @@ export class Bot extends deviceBase {
136
140
  accessory.category = this.hap.Categories.SWITCH;
137
141
  // Initialize Switch Service
138
142
  accessory.context.Switch = accessory.context.Switch ?? {};
143
+ if (accessory.context.Switch.Name) {
144
+ accessory.context.Switch.Name = this.validateAndCleanString(accessory.context.Switch.Name,
145
+ 'Switch Name', accessory.context.Switch.Name);
146
+ }
139
147
  this.Switch = {
140
148
  Name: accessory.context.Switch.Name ?? accessory.displayName,
141
149
  Service: accessory.getService(this.hap.Service.Switch) ?? accessory.addService(this.hap.Service.Switch) as Service,
@@ -162,6 +170,10 @@ export class Bot extends deviceBase {
162
170
  accessory.category = this.hap.Categories.GARAGE_DOOR_OPENER;
163
171
  // Initialize GarageDoor Service
164
172
  accessory.context.GarageDoor = accessory.context.GarageDoor ?? {};
173
+ if (accessory.context.GarageDoor.Name) {
174
+ accessory.context.GarageDoor.Name = this.validateAndCleanString(accessory.context.GarageDoor.Name,
175
+ 'GarageDoor Name', accessory.context.GarageDoor.Name);
176
+ }
165
177
  this.GarageDoor = {
166
178
  Name: accessory.context.GarageDoor.Name ?? accessory.displayName,
167
179
  Service: accessory.getService(this.hap.Service.GarageDoorOpener) ?? accessory.addService(this.hap.Service.GarageDoorOpener) as Service,
@@ -195,6 +207,10 @@ export class Bot extends deviceBase {
195
207
  accessory.category = this.hap.Categories.DOOR;
196
208
  // Initialize Door Service
197
209
  accessory.context.Door = accessory.context.Door ?? {};
210
+ if (accessory.context.Door.Name) {
211
+ accessory.context.Door.Name = this.validateAndCleanString(accessory.context.Door.Name,
212
+ 'Door Name', accessory.context.Door.Name);
213
+ }
198
214
  this.Door = {
199
215
  Name: accessory.context.Door.Name ?? accessory.displayName,
200
216
  Service: accessory.getService(this.hap.Service.Door) ?? accessory.addService(this.hap.Service.Door) as Service,
@@ -227,6 +243,10 @@ export class Bot extends deviceBase {
227
243
  accessory.category = this.hap.Categories.WINDOW;
228
244
  // Initialize Window Service
229
245
  accessory.context.Window = accessory.context.Window ?? {};
246
+ if (accessory.context.Window.Name) {
247
+ accessory.context.Window.Name = this.validateAndCleanString(accessory.context.Window.Name,
248
+ 'Window Name', accessory.context.Window.Name);
249
+ }
230
250
  this.Window = {
231
251
  Name: accessory.context.Window.Name ?? accessory.displayName,
232
252
  Service: accessory.getService(this.hap.Service.Window) ?? accessory.addService(this.hap.Service.Window) as Service,
@@ -259,6 +279,10 @@ export class Bot extends deviceBase {
259
279
  accessory.category = this.hap.Categories.WINDOW_COVERING;
260
280
  // Initialize WindowCovering Service
261
281
  accessory.context.WindowCovering = accessory.context.WindowCovering ?? {};
282
+ if (accessory.context.WindowCovering.Name) {
283
+ accessory.context.WindowCovering.Name = this.validateAndCleanString(accessory.context.WindowCovering.Name,
284
+ 'WindowCovering Name', accessory.context.WindowCovering.Name);
285
+ }
262
286
  this.WindowCovering = {
263
287
  Name: accessory.context.WindowCovering.Name ?? accessory.displayName,
264
288
  Service: accessory.getService(this.hap.Service.WindowCovering) ?? accessory.addService(this.hap.Service.WindowCovering) as Service,
@@ -292,6 +316,10 @@ export class Bot extends deviceBase {
292
316
  accessory.category = this.hap.Categories.DOOR_LOCK;
293
317
  // Initialize Lock Service
294
318
  accessory.context.LockMechanism = accessory.context.LockMechanism ?? {};
319
+ if (accessory.context.LockMechanism.Name) {
320
+ accessory.context.LockMechanism.Name = this.validateAndCleanString(accessory.context.LockMechanism.Name,
321
+ 'LockMechanism Name', accessory.context.LockMechanism.Name);
322
+ }
295
323
  this.LockMechanism = {
296
324
  Name: accessory.context.LockMechanism.Name ?? accessory.displayName,
297
325
  Service: accessory.getService(this.hap.Service.LockMechanism) ?? accessory.addService(this.hap.Service.LockMechanism) as Service,
@@ -319,6 +347,10 @@ export class Bot extends deviceBase {
319
347
  accessory.category = this.hap.Categories.FAUCET;
320
348
  // Initialize Faucet Service
321
349
  accessory.context.Faucet = accessory.context.Faucet ?? {};
350
+ if (accessory.context.Faucet.Name) {
351
+ accessory.context.Faucet.Name = this.validateAndCleanString(accessory.context.Faucet.Name,
352
+ 'Faucet Name', accessory.context.Faucet.Name);
353
+ }
322
354
  this.Faucet = {
323
355
  Name: accessory.context.Faucet.Name ?? accessory.displayName,
324
356
  Service: accessory.getService(this.hap.Service.Faucet) ?? accessory.addService(this.hap.Service.Faucet) as Service,
@@ -345,6 +377,10 @@ export class Bot extends deviceBase {
345
377
  accessory.category = this.hap.Categories.FAN;
346
378
  // Initialize Fan Service
347
379
  accessory.context.Fan = accessory.context.Fan ?? {};
380
+ if (accessory.context.Fan.Name) {
381
+ accessory.context.Fan.Name = this.validateAndCleanString(accessory.context.Fan.Name,
382
+ 'Fan Name', accessory.context.Fan.Name);
383
+ }
348
384
  this.Fan = {
349
385
  Name: accessory.context.Fan.Name ?? accessory.displayName,
350
386
  Service: accessory.getService(this.hap.Service.Fanv2) ?? accessory.addService(this.hap.Service.Fanv2) as Service,
@@ -371,6 +407,10 @@ export class Bot extends deviceBase {
371
407
  accessory.category = this.hap.Categories.PROGRAMMABLE_SWITCH;
372
408
  // Initialize StatefulProgrammableSwitch Service
373
409
  accessory.context.StatefulProgrammableSwitch = accessory.context.StatefulProgrammableSwitch ?? {};
410
+ if (accessory.context.StatefulProgrammableSwitch.Name) {
411
+ accessory.context.StatefulProgrammableSwitch.Name = this.validateAndCleanString(accessory.context.StatefulProgrammableSwitch.Name,
412
+ 'StatefulProgrammableSwitch Name', accessory.context.StatefulProgrammableSwitch.Name);
413
+ }
374
414
  this.StatefulProgrammableSwitch = {
375
415
  Name: accessory.context.StatefulProgrammableSwitch.Name ?? accessory.displayName,
376
416
  Service: accessory.getService(this.hap.Service.StatefulProgrammableSwitch)
@@ -398,6 +438,10 @@ export class Bot extends deviceBase {
398
438
  accessory.category = this.hap.Categories.OUTLET;
399
439
  // Initialize Switch property
400
440
  accessory.context.Outlet = accessory.context.Outlet ?? {};
441
+ if (accessory.context.Outlet.Name) {
442
+ accessory.context.Outlet.Name = this.validateAndCleanString(accessory.context.Outlet.Name,
443
+ 'Outlet Name', accessory.context.Outlet.Name);
444
+ }
401
445
  this.Outlet = {
402
446
  Name: accessory.context.Outlet.Name ?? accessory.displayName,
403
447
  Service: accessory.getService(this.hap.Service.Outlet) ?? accessory.addService(this.hap.Service.Outlet) as Service,
@@ -68,6 +68,10 @@ export class CeilingLight extends deviceBase {
68
68
 
69
69
  // Initialize LightBulb Service
70
70
  accessory.context.LightBulb = accessory.context.LightBulb ?? {};
71
+ if (accessory.context.LightBulb.Name) {
72
+ accessory.context.LightBulb.Name = this.validateAndCleanString(accessory.context.LightBulb.Name,
73
+ 'LightBulb Name', accessory.context.LightBulb.Name);
74
+ }
71
75
  this.LightBulb = {
72
76
  Name: accessory.context.LightBulb.Name ?? accessory.displayName,
73
77
  Service: accessory.getService(this.hap.Service.Lightbulb) ?? accessory.addService(this.hap.Service.Lightbulb) as Service,
@@ -74,6 +74,10 @@ export class Contact extends deviceBase {
74
74
 
75
75
  // Initialize Contact Sensor Service
76
76
  accessory.context.ContactSensor = accessory.context.ContactSensor ?? {};
77
+ if (accessory.context.ContactSensor.Name) {
78
+ accessory.context.ContactSensor.Name = this.validateAndCleanString(accessory.context.ContactSensor.Name,
79
+ 'ContactSensor Name', accessory.context.ContactSensor.Name);
80
+ }
77
81
  this.ContactSensor = {
78
82
  Name: accessory.context.ContactSensor.Name ?? accessory.displayName,
79
83
  Service: accessory.getService(this.hap.Service.ContactSensor) ?? accessory.addService(this.hap.Service.ContactSensor) as Service,
@@ -92,6 +96,10 @@ export class Contact extends deviceBase {
92
96
 
93
97
  // Initialize Battery Service
94
98
  accessory.context.Battery = accessory.context.Battery ?? {};
99
+ if (accessory.context.Battery.Name) {
100
+ accessory.context.Battery.Name = this.validateAndCleanString(accessory.context.Battery.Name,
101
+ 'Battery Name', accessory.context.Battery.Name);
102
+ }
95
103
  this.Battery = {
96
104
  Name: accessory.context.Battery.Name ?? `${accessory.displayName} Battery`,
97
105
  Service: accessory.getService(this.hap.Service.Battery) ?? accessory.addService(this.hap.Service.Battery) as Service,
@@ -125,6 +133,10 @@ export class Contact extends deviceBase {
125
133
  }
126
134
  } else {
127
135
  accessory.context.MotionSensor = accessory.context.MotionSensor ?? {};
136
+ if (accessory.context.MotionSensor.Name) {
137
+ accessory.context.MotionSensor.Name = this.validateAndCleanString(accessory.context.MotionSensor.Name,
138
+ 'MotionSensor Name', accessory.context.MotionSensor.Name);
139
+ }
128
140
  this.MotionSensor = {
129
141
  Name: accessory.context.MotionSensor.Name ?? `${accessory.displayName} Motion Sensor`,
130
142
  Service: accessory.getService(this.hap.Service.MotionSensor) ?? accessory.addService(this.hap.Service.MotionSensor) as Service,
@@ -151,6 +163,10 @@ export class Contact extends deviceBase {
151
163
  }
152
164
  } else {
153
165
  accessory.context.LightSensor = accessory.context.LightSensor ?? {};
166
+ if (accessory.context.LightSensor.Name) {
167
+ accessory.context.LightSensor.Name = this.validateAndCleanString(accessory.context.LightSensor.Name,
168
+ 'LightSensor Name', accessory.context.LightSensor.Name);
169
+ }
154
170
  this.LightSensor = {
155
171
  Name: accessory.context.LightSensor.Name ?? `${accessory.displayName} Light Sensor`,
156
172
  Service: accessory.getService(this.hap.Service.LightSensor) ?? accessory.addService(this.hap.Service.LightSensor) as Service,
@@ -73,6 +73,10 @@ export class Curtain extends deviceBase {
73
73
 
74
74
  // Initialize WindowCovering Service
75
75
  accessory.context.WindowCovering = accessory.context.WindowCovering ?? {};
76
+ if (accessory.context.WindowCovering.Name) {
77
+ accessory.context.WindowCovering.Name = this.validateAndCleanString(accessory.context.WindowCovering.Name,
78
+ 'WindowCovering Name', accessory.context.WindowCovering.Name);
79
+ }
76
80
  this.WindowCovering = {
77
81
  Name: accessory.context.WindowCovering.Name ?? accessory.displayName,
78
82
  Service: accessory.getService(this.hap.Service.WindowCovering) ?? accessory.addService(this.hap.Service.WindowCovering) as Service,
@@ -129,6 +133,10 @@ export class Curtain extends deviceBase {
129
133
 
130
134
  // Initialize Battery Service
131
135
  accessory.context.Battery = accessory.context.Battery ?? {};
136
+ if (accessory.context.Battery.Name) {
137
+ accessory.context.Battery.Name = this.validateAndCleanString(accessory.context.Battery.Name,
138
+ 'Battery Name', accessory.context.Battery.Name);
139
+ }
132
140
  this.Battery = {
133
141
  Name: accessory.context.Battery.Name ?? `${accessory.displayName} Battery`,
134
142
  Service: accessory.getService(this.hap.Service.Battery) ?? accessory.addService(this.hap.Service.Battery) as Service,
@@ -168,6 +176,10 @@ export class Curtain extends deviceBase {
168
176
  }
169
177
  } else {
170
178
  accessory.context.LightSensor = accessory.context.LightSensor ?? {};
179
+ if (accessory.context.LightSensor.Name) {
180
+ accessory.context.LightSensor.Name = this.validateAndCleanString(accessory.context.LightSensor.Name,
181
+ 'LightSensor Name', accessory.context.LightSensor.Name);
182
+ }
171
183
  this.LightSensor = {
172
184
  Name: accessory.context.LightSensor.Name ?? `${accessory.displayName} Light Sensor`,
173
185
  Service: accessory.getService(this.hap.Service.LightSensor) ?? this.accessory.addService(this.hap.Service.LightSensor) as Service,
package/src/device/fan.ts CHANGED
@@ -67,6 +67,10 @@ export class Fan extends deviceBase {
67
67
 
68
68
  // Initialize Fan Service
69
69
  accessory.context.Fan = accessory.context.Fan ?? {};
70
+ if (accessory.context.Fan.Name) {
71
+ accessory.context.Fan.Name = this.validateAndCleanString(accessory.context.Fan.Name,
72
+ 'Fan Name', accessory.context.Fan.Name);
73
+ }
70
74
  this.Fan = {
71
75
  Name: accessory.context.Fan.Name ?? accessory.displayName,
72
76
  Service: accessory.getService(this.hap.Service.Fanv2) ?? accessory.addService(this.hap.Service.Fanv2) as Service,
@@ -102,6 +106,10 @@ export class Fan extends deviceBase {
102
106
 
103
107
  // Initialize Battery Service
104
108
  accessory.context.Battery = accessory.context.Battery ?? {};
109
+ if (accessory.context.Battery.Name) {
110
+ accessory.context.Battery.Name = this.validateAndCleanString(accessory.context.Battery.Name,
111
+ 'Battery Name', accessory.context.Battery.Name);
112
+ }
105
113
  this.Battery = {
106
114
  Name: accessory.context.Battery.Name ?? accessory.displayName,
107
115
  Service: accessory.getService(this.hap.Service.Battery) ?? accessory.addService(this.hap.Service.Battery) as Service,
@@ -135,6 +143,10 @@ export class Fan extends deviceBase {
135
143
 
136
144
  // Initialize LightBulb Service
137
145
  accessory.context.LightBulb = accessory.context.LightBulb ?? {};
146
+ if (accessory.context.LightBulb.Name) {
147
+ accessory.context.LightBulb.Name = this.validateAndCleanString(accessory.context.LightBulb.Name,
148
+ 'LightBulb Name', accessory.context.LightBulb.Name);
149
+ }
138
150
  this.LightBulb = {
139
151
  Name: accessory.context.LightBulb.Name ?? accessory.displayName,
140
152
  Service: accessory.getService(this.hap.Service.Lightbulb) ?? accessory.addService(this.hap.Service.Lightbulb) as Service,
package/src/device/hub.ts CHANGED
@@ -71,6 +71,10 @@ export class Hub extends deviceBase {
71
71
  }
72
72
  } else {
73
73
  accessory.context.TemperatureSensor = accessory.context.TemperatureSensor ?? {};
74
+ if (accessory.context.TemperatureSensor.Name) {
75
+ accessory.context.TemperatureSensor.Name = this.validateAndCleanString(accessory.context.TemperatureSensor.Name,
76
+ 'TemperatureSensor Name', accessory.context.TemperatureSensor.Name);
77
+ }
74
78
  this.TemperatureSensor = {
75
79
  Name: accessory.context.TemperatureSensor.Name ?? `${accessory.displayName} Temperature Sensor`,
76
80
  Service: accessory.getService(this.hap.Service.TemperatureSensor) ?? this.accessory.addService(this.hap.Service.TemperatureSensor) as Service,
@@ -103,6 +107,10 @@ export class Hub extends deviceBase {
103
107
  }
104
108
  } else {
105
109
  accessory.context.HumiditySensor = accessory.context.HumiditySensor ?? {};
110
+ if (accessory.context.HumiditySensor.Name) {
111
+ accessory.context.HumiditySensor.Name = this.validateAndCleanString(accessory.context.HumiditySensor.Name,
112
+ 'HumiditySensor Name', accessory.context.HumiditySensor.Name);
113
+ }
106
114
  this.HumiditySensor = {
107
115
  Name: accessory.context.HumiditySensor.Name ?? `${accessory.displayName} Humidity Sensor`,
108
116
  Service: accessory.getService(this.hap.Service.HumiditySensor) ?? this.accessory.addService(this.hap.Service.HumiditySensor) as Service,
@@ -131,6 +139,10 @@ export class Hub extends deviceBase {
131
139
  }
132
140
  } else {
133
141
  accessory.context.LightSensor = accessory.context.LightSensor ?? {};
142
+ if (accessory.context.LightSensor.Name) {
143
+ accessory.context.LightSensor.Name = this.validateAndCleanString(accessory.context.LightSensor.Name,
144
+ 'LightSensor Name', accessory.context.LightSensor.Name);
145
+ }
134
146
  this.LightSensor = {
135
147
  Name: accessory.context.LightSensor.Name ?? `${accessory.displayName} Light Sensor`,
136
148
  Service: accessory.getService(this.hap.Service.LightSensor) ?? this.accessory.addService(this.hap.Service.LightSensor) as Service,
@@ -67,6 +67,10 @@ export class Humidifier extends deviceBase {
67
67
 
68
68
  // Initialize the HumidifierDehumidifier Service
69
69
  accessory.context.HumidifierDehumidifier = accessory.context.HumidifierDehumidifier ?? {};
70
+ if (accessory.context.HumidifierDehumidifier.Name) {
71
+ accessory.context.HumidifierDehumidifier.Name = this.validateAndCleanString(accessory.context.HumidifierDehumidifier.Name,
72
+ 'HumidifierDehumidifier Name', accessory.context.HumidifierDehumidifier.Name);
73
+ }
70
74
  this.HumidifierDehumidifier = {
71
75
  Name: accessory.context.HumidifierDehumidifier.Name ?? accessory.displayName,
72
76
  Service: accessory.getService(this.hap.Service.HumidifierDehumidifier)
@@ -128,6 +132,10 @@ export class Humidifier extends deviceBase {
128
132
  }
129
133
  } else {
130
134
  accessory.context.TemperatureSensor = accessory.context.TemperatureSensor ?? {};
135
+ if (accessory.context.TemperatureSensor.Name) {
136
+ accessory.context.TemperatureSensor.Name = this.validateAndCleanString(accessory.context.TemperatureSensor.Name,
137
+ 'TemperatureSensor Name', accessory.context.TemperatureSensor.Name);
138
+ }
131
139
  this.TemperatureSensor = {
132
140
  Name: accessory.context.TemperatureSensor.Name ?? `${accessory.displayName} Temperature Sensor`,
133
141
  Service: accessory.getService(this.hap.Service.TemperatureSensor) ?? this.accessory.addService(this.hap.Service.TemperatureSensor) as Service,
@@ -70,6 +70,10 @@ export class IOSensor extends deviceBase {
70
70
 
71
71
  // Initialize Battery Service
72
72
  accessory.context.Battery = accessory.context.Battery ?? {};
73
+ if (accessory.context.Battery.Name) {
74
+ accessory.context.Battery.Name = this.validateAndCleanString(accessory.context.Battery.Name,
75
+ 'Battery Name', accessory.context.Battery.Name);
76
+ }
73
77
  this.Battery = {
74
78
  Name: accessory.context.Battery.Name ?? `${accessory.displayName} Battery`,
75
79
  Service: accessory.getService(this.hap.Service.Battery) ?? accessory.addService(this.hap.Service.Battery) as Service,
@@ -103,6 +107,10 @@ export class IOSensor extends deviceBase {
103
107
  }
104
108
  } else {
105
109
  accessory.context.TemperatureSensor = accessory.context.TemperatureSensor ?? {};
110
+ if (accessory.context.TemperatureSensor.Name) {
111
+ accessory.context.TemperatureSensor.Name = this.validateAndCleanString(accessory.context.TemperatureSensor.Name,
112
+ 'TemperatureSensor Name', accessory.context.TemperatureSensor.Name);
113
+ }
106
114
  this.TemperatureSensor = {
107
115
  Name: accessory.context.TemperatureSensor.Name ?? `${accessory.displayName} Temperature Sensor`,
108
116
  Service: accessory.getService(this.hap.Service.TemperatureSensor) ?? this.accessory.addService(this.hap.Service.TemperatureSensor) as Service,
@@ -135,6 +143,10 @@ export class IOSensor extends deviceBase {
135
143
  }
136
144
  } else {
137
145
  accessory.context.HumiditySensor = accessory.context.HumiditySensor ?? {};
146
+ if (accessory.context.HumiditySensor.Name) {
147
+ accessory.context.HumiditySensor.Name = this.validateAndCleanString(accessory.context.HumiditySensor.Name,
148
+ 'HumiditySensor Name', accessory.context.HumiditySensor.Name);
149
+ }
138
150
  this.HumiditySensor = {
139
151
  Name: accessory.context.HumiditySensor.Name ?? `${accessory.displayName} Humidity Sensor`,
140
152
  Service: accessory.getService(this.hap.Service.HumiditySensor) ?? this.accessory.addService(this.hap.Service.HumiditySensor) as Service,
@@ -68,6 +68,10 @@ export class StripLight extends deviceBase {
68
68
 
69
69
  // Initialize the LightBulb Service
70
70
  accessory.context.LightBulb = accessory.context.LightBulb ?? {};
71
+ if (accessory.context.LightBulb.Name) {
72
+ accessory.context.LightBulb.Name = this.validateAndCleanString(accessory.context.LightBulb.Name,
73
+ 'LightBulb Name', accessory.context.LightBulb.Name);
74
+ }
71
75
  this.LightBulb = {
72
76
  Name: accessory.context.LightBulb.Name ?? accessory.displayName,
73
77
  Service: accessory.getService(this.hap.Service.Lightbulb) ?? accessory.addService(this.hap.Service.Lightbulb) as Service,
@@ -70,6 +70,10 @@ export class Lock extends deviceBase {
70
70
 
71
71
  // Initialize LockMechanism Service
72
72
  accessory.context.LockMechanism = accessory.context.LockMechanism ?? {};
73
+ if (accessory.context.LockMechanism.Name) {
74
+ accessory.context.LockMechanism.Name = this.validateAndCleanString(accessory.context.LockMechanism.Name,
75
+ 'LockMechanism Name', accessory.context.LockMechanism.Name);
76
+ }
73
77
  this.LockMechanism = {
74
78
  Name: accessory.context.LockMechanism.Name ?? accessory.displayName,
75
79
  Service: accessory.getService(this.hap.Service.LockMechanism) ?? accessory.addService(this.hap.Service.LockMechanism) as Service,
@@ -89,6 +93,10 @@ export class Lock extends deviceBase {
89
93
 
90
94
  // Initialize Battery property
91
95
  accessory.context.Battery = accessory.context.Battery ?? {};
96
+ if (accessory.context.Battery.Name) {
97
+ accessory.context.Battery.Name = this.validateAndCleanString(accessory.context.Battery.Name,
98
+ 'Battery Name', accessory.context.Battery.Name);
99
+ }
92
100
  this.Battery = {
93
101
  Name: accessory.context.Battery.Name ?? `${accessory.displayName} Battery`,
94
102
  Service: accessory.getService(this.hap.Service.Battery) ?? accessory.addService(this.hap.Service.Battery) as Service,
@@ -121,6 +129,10 @@ export class Lock extends deviceBase {
121
129
  }
122
130
  } else {
123
131
  accessory.context.ContactSensor = accessory.context.ContactSensor ?? {};
132
+ if (accessory.context.ContactSensor.Name) {
133
+ accessory.context.ContactSensor.Name = this.validateAndCleanString(accessory.context.ContactSensor.Name,
134
+ 'ContactSensor Name', accessory.context.ContactSensor.Name);
135
+ }
124
136
  this.ContactSensor = {
125
137
  Name: accessory.context.ContactSensor.Name ?? `${accessory.displayName} Contact Sensor`,
126
138
  Service: accessory.getService(this.hap.Service.ContactSensor) ?? this.accessory.addService(this.hap.Service.ContactSensor) as Service,
@@ -147,6 +159,10 @@ export class Lock extends deviceBase {
147
159
  }
148
160
  } else {
149
161
  accessory.context.Switch = accessory.context.Switch ?? {};
162
+ if (accessory.context.Switch.Name) {
163
+ accessory.context.Switch.Name = this.validateAndCleanString(accessory.context.Switch.Name,
164
+ 'Switch Name', accessory.context.Switch.Name);
165
+ }
150
166
  this.Switch = {
151
167
  Name: accessory.context.Switch.Name ?? `${accessory.displayName} Latch`,
152
168
  Service: accessory.getService(this.hap.Service.Switch) ?? accessory.addService(this.hap.Service.Switch) as Service,
@@ -65,6 +65,10 @@ export class Meter extends deviceBase {
65
65
 
66
66
  // Initialize Battery Service
67
67
  accessory.context.Battery = accessory.context.Battery ?? {};
68
+ if (accessory.context.Battery.Name) {
69
+ accessory.context.Battery.Name = this.validateAndCleanString(accessory.context.Battery.Name,
70
+ 'Battery Name', accessory.context.Battery.Name);
71
+ }
68
72
  this.Battery = {
69
73
  Name: accessory.context.Battery.Name ?? `${accessory.displayName} Battery`,
70
74
  Service: accessory.getService(this.hap.Service.Battery) ?? accessory.addService(this.hap.Service.Battery) as Service,
@@ -97,6 +101,10 @@ export class Meter extends deviceBase {
97
101
  }
98
102
  } else {
99
103
  accessory.context.TemperatureSensor = accessory.context.TemperatureSensor ?? {};
104
+ if (accessory.context.TemperatureSensor.Name) {
105
+ accessory.context.TemperatureSensor.Name = this.validateAndCleanString(accessory.context.TemperatureSensor.Name,
106
+ 'TemperatureSensor Name', accessory.context.TemperatureSensor.Name);
107
+ }
100
108
  this.TemperatureSensor = {
101
109
  Name: accessory.context.TemperatureSensor.Name ?? `${accessory.displayName} Temperature Sensor`,
102
110
  Service: accessory.getService(this.hap.Service.TemperatureSensor) ?? this.accessory.addService(this.hap.Service.TemperatureSensor) as Service,
@@ -128,6 +136,10 @@ export class Meter extends deviceBase {
128
136
  }
129
137
  } else {
130
138
  accessory.context.HumiditySensor = accessory.context.HumiditySensor ?? {};
139
+ if (accessory.context.HumiditySensor.Name) {
140
+ accessory.context.HumiditySensor.Name = this.validateAndCleanString(accessory.context.HumiditySensor.Name,
141
+ 'HumiditySensor Name', accessory.context.HumiditySensor.Name);
142
+ }
131
143
  this.HumiditySensor = {
132
144
  Name: accessory.context.HumiditySensorName ?? `${accessory.displayName} Humidity Sensor`,
133
145
  Service: accessory.getService(this.hap.Service.HumiditySensor) ?? this.accessory.addService(this.hap.Service.HumiditySensor) as Service,
@@ -70,6 +70,10 @@ export class MeterPlus extends deviceBase {
70
70
 
71
71
  // Initialize Battery Service
72
72
  accessory.context.Battery = accessory.context.Battery ?? {};
73
+ if (accessory.context.Battery.Name) {
74
+ accessory.context.Battery.Name = this.validateAndCleanString(accessory.context.Battery.Name,
75
+ 'Battery Name', accessory.context.Battery.Name);
76
+ }
73
77
  this.Battery = {
74
78
  Name: accessory.context.Battery.Name ?? `${accessory.displayName} Battery`,
75
79
  Service: accessory.getService(this.hap.Service.Battery) ?? accessory.addService(this.hap.Service.Battery) as Service,
@@ -102,6 +106,10 @@ export class MeterPlus extends deviceBase {
102
106
  }
103
107
  } else {
104
108
  accessory.context.TemperatureSensor = accessory.context.TemperatureSensor ?? {};
109
+ if (accessory.context.TemperatureSensor.Name) {
110
+ accessory.context.TemperatureSensor.Name = this.validateAndCleanString(accessory.context.TemperatureSensor.Name,
111
+ 'TemperatureSensor Name', accessory.context.TemperatureSensor.Name);
112
+ }
105
113
  this.TemperatureSensor = {
106
114
  Name: accessory.context.TemperatureSensor.Name ?? `${accessory.displayName} Temperature Sensor`,
107
115
  Service: accessory.getService(this.hap.Service.TemperatureSensor) ?? this.accessory.addService(this.hap.Service.TemperatureSensor) as Service,
@@ -133,6 +141,10 @@ export class MeterPlus extends deviceBase {
133
141
  }
134
142
  } else {
135
143
  accessory.context.HumiditySensor = accessory.context.HumiditySensor ?? {};
144
+ if (accessory.context.HumiditySensor.Name) {
145
+ accessory.context.HumiditySensor.Name = this.validateAndCleanString(accessory.context.HumiditySensor.Name,
146
+ 'HumiditySensor Name', accessory.context.HumiditySensor.Name);
147
+ }
136
148
  this.HumiditySensor = {
137
149
  Name: accessory.context.HumiditySensor.Name ?? `${accessory.displayName} Humidity Sensor`,
138
150
  Service: accessory.getService(this.hap.Service.HumiditySensor) ?? this.accessory.addService(this.hap.Service.HumiditySensor) as Service,
@@ -69,6 +69,10 @@ export class Motion extends deviceBase {
69
69
 
70
70
  // Initialize Motion Sensor property
71
71
  accessory.context.MotionSensor = accessory.context.MotionSensor ?? {};
72
+ if (accessory.context.MotionSensor.Name) {
73
+ accessory.context.MotionSensor.Name = this.validateAndCleanString(accessory.context.MotionSensor.Name,
74
+ 'MotionSensor Name', accessory.context.MotionSensor.Name);
75
+ }
72
76
  this.MotionSensor = {
73
77
  Name: accessory.context.MotionSensor.Name ?? `${accessory.displayName} Motion Sensor`,
74
78
  Service: accessory.getService(this.hap.Service.MotionSensor) ?? accessory.addService(this.hap.Service.MotionSensor) as Service,
@@ -78,7 +82,7 @@ export class Motion extends deviceBase {
78
82
 
79
83
  // Initialize Motion Sensor Characteristics
80
84
  this.MotionSensor.Service
81
- .setCharacteristic(this.hap.Characteristic.Name, accessory.displayName)
85
+ .setCharacteristic(this.hap.Characteristic.Name, this.MotionSensor.Name)
82
86
  .setCharacteristic(this.hap.Characteristic.StatusActive, true)
83
87
  .getCharacteristic(this.hap.Characteristic.MotionDetected)
84
88
  .onGet(() => {
@@ -88,6 +92,10 @@ export class Motion extends deviceBase {
88
92
 
89
93
  // Initialize Battery Service
90
94
  accessory.context.Battery = accessory.context.Battery ?? {};
95
+ if (accessory.context.Battery.Name) {
96
+ accessory.context.Battery.Name = this.validateAndCleanString(accessory.context.Battery.Name,
97
+ 'Battery Name', accessory.context.Battery.Name);
98
+ }
91
99
  this.Battery = {
92
100
  Name: accessory.context.Battery.Name ?? `${accessory.displayName} Battery`,
93
101
  Service: accessory.getService(this.hap.Service.Battery) ?? accessory.addService(this.hap.Service.Battery) as Service,
@@ -121,6 +129,10 @@ export class Motion extends deviceBase {
121
129
  }
122
130
  } else {
123
131
  accessory.context.LightSensor = accessory.context.LightSensor ?? {};
132
+ if (accessory.context.LightSensor.Name) {
133
+ accessory.context.LightSensor.Name = this.validateAndCleanString(accessory.context.LightSensor.Name,
134
+ 'LightSensor Name', accessory.context.LightSensor.Name);
135
+ }
124
136
  this.LightSensor = {
125
137
  Name: accessory.context.LightSensor.Name ?? `${accessory.displayName} Light Sensor`,
126
138
  Service: accessory.getService(this.hap.Service.LightSensor) ?? this.accessory.addService(this.hap.Service.LightSensor) as Service,
@@ -130,7 +142,7 @@ export class Motion extends deviceBase {
130
142
 
131
143
  // Initialize LightSensor Characteristics
132
144
  this.LightSensor!.Service
133
- .setCharacteristic(this.hap.Characteristic.Name, this.LightSensor!.Name)
145
+ .setCharacteristic(this.hap.Characteristic.Name, this.LightSensor.Name)
134
146
  .setCharacteristic(this.hap.Characteristic.StatusActive, true)
135
147
  .getCharacteristic(this.hap.Characteristic.CurrentAmbientLightLevel)
136
148
  .onGet(() => {
@@ -49,6 +49,10 @@ export class Plug extends deviceBase {
49
49
 
50
50
  // Initialize Outlet Service
51
51
  accessory.context.Outlet = accessory.context.Outlet ?? {};
52
+ if (accessory.context.Outlet.Name) {
53
+ accessory.context.Outlet.Name = this.validateAndCleanString(accessory.context.Outlet.Name,
54
+ 'Outlet Name', accessory.context.Outlet.Name);
55
+ }
52
56
  this.Outlet = {
53
57
  Name: accessory.context.Outlet.Name ?? accessory.displayName,
54
58
  Service: accessory.getService(this.hap.Service.Outlet) ?? accessory.addService(this.hap.Service.Outlet) as Service,
@@ -58,7 +62,7 @@ export class Plug extends deviceBase {
58
62
 
59
63
  // Initialize Outlet Characteristics
60
64
  this.Outlet.Service
61
- .setCharacteristic(this.hap.Characteristic.Name, accessory.displayName)
65
+ .setCharacteristic(this.hap.Characteristic.Name, this.Outlet.Name)
62
66
  .getCharacteristic(this.hap.Characteristic.On)
63
67
  .onGet(() => {
64
68
  return this.Outlet.On;