homebridge-deconz 1.0.17 → 1.0.18
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.
@@ -665,9 +665,12 @@ class Gateway extends AccessoryDelegate {
|
|
665
665
|
let { serviceName } = device.resource
|
666
666
|
await this.importAccessoryType(serviceName)
|
667
667
|
if (DeconzAccessory[serviceName] == null) {
|
668
|
-
// this.warn('%s: %s:
|
668
|
+
// this.warn('%s: %s: accessory type not available', body.name, serviceName)
|
669
669
|
serviceName = 'Sensor'
|
670
670
|
}
|
671
|
+
if (this.context.settingsById[id]?.serviceName != null) {
|
672
|
+
await this.importServiceType(this.context.settingsById[id].serviceName)
|
673
|
+
}
|
671
674
|
for (const resourceServiceName of Object.keys(device.subtypesByServiceName)) {
|
672
675
|
await this.importServiceType(resourceServiceName)
|
673
676
|
}
|
@@ -26,6 +26,8 @@ class Light extends DeconzAccessory {
|
|
26
26
|
this.addPropertyDelegate({
|
27
27
|
key: 'serviceName',
|
28
28
|
value: device.resource.serviceName
|
29
|
+
}).on('didSet', (value) => {
|
30
|
+
gateway.context.settingsById[device.id].serviceName = value
|
29
31
|
})
|
30
32
|
|
31
33
|
this.service = this.createService(device.resource, {
|
@@ -139,8 +139,8 @@ class DeconzAccessory extends AccessoryDelegate {
|
|
139
139
|
}
|
140
140
|
if (DeconzService[params.serviceName] == null) {
|
141
141
|
this.warn(
|
142
|
-
'%s: %s:
|
143
|
-
resource.rpath,
|
142
|
+
'%s: %s: service type not available',
|
143
|
+
resource.rpath, params.serviceName
|
144
144
|
)
|
145
145
|
return
|
146
146
|
}
|
@@ -292,7 +292,7 @@ class DeconzAccessory extends AccessoryDelegate {
|
|
292
292
|
case 'serviceName':
|
293
293
|
if (this.values.serviceName != null) {
|
294
294
|
value = OptionParser.toString(key, body[key])
|
295
|
-
if (
|
295
|
+
if (['Light', 'Outlet', 'Switch', 'Valve'].includes(value) == null) {
|
296
296
|
throw new Error(`${value}: illegal serviceName`)
|
297
297
|
}
|
298
298
|
this.values.serviceName = value
|