homebridge-deconz 0.0.21 → 0.0.23
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.
package/config.schema.json
CHANGED
package/lib/Deconz/Resource.js
CHANGED
@@ -256,7 +256,7 @@ class Resource {
|
|
256
256
|
*/
|
257
257
|
get prio () {
|
258
258
|
if (this.rtype === 'groups') return -1
|
259
|
-
if (this.rtype === 'lights') return this.endpoint
|
259
|
+
if (this.rtype === 'lights') return 0xFF - this.endpoint
|
260
260
|
return sensorsPrios.indexOf(this.serviceName)
|
261
261
|
}
|
262
262
|
|
@@ -21,6 +21,8 @@ class Light extends DeconzAccessory {
|
|
21
21
|
* @param {Deconz.Device} device - The device.
|
22
22
|
*/
|
23
23
|
constructor (gateway, device, settings = {}) {
|
24
|
+
// settings.forceEveEnergy = true
|
25
|
+
|
24
26
|
super(gateway, device, gateway.Accessory.Categories.LIGHTBULB)
|
25
27
|
|
26
28
|
this.identify()
|
@@ -35,12 +37,14 @@ class Light extends DeconzAccessory {
|
|
35
37
|
serviceName: this.values.serviceName
|
36
38
|
})
|
37
39
|
|
40
|
+
let nLights = 1
|
38
41
|
for (const subtype in device.resourceBySubtype) {
|
39
42
|
const resource = device.resourceBySubtype[subtype]
|
40
43
|
if (subtype === device.primary) {
|
41
44
|
continue
|
42
45
|
}
|
43
46
|
if (resource.rtype === 'lights') {
|
47
|
+
nLights++
|
44
48
|
this.createService(resource, { serviceName: this.values.serviceName })
|
45
49
|
} else {
|
46
50
|
this.createService(resource)
|
@@ -48,16 +52,66 @@ class Light extends DeconzAccessory {
|
|
48
52
|
}
|
49
53
|
|
50
54
|
if (this.serviceByServiceName.Consumption != null) {
|
55
|
+
// Current Consumption to be computed by history if not exposed by device
|
56
|
+
const currentConsumption =
|
57
|
+
this.service.values.currentConsumption === undefined
|
58
|
+
? this.service.addCharacteristicDelegate({
|
59
|
+
key: 'currentConsumption',
|
60
|
+
Characteristic: this.Characteristics.eve.CurrentConsumption,
|
61
|
+
unit: ' W'
|
62
|
+
})
|
63
|
+
: null
|
51
64
|
this.historyService = new History.Consumption(
|
52
65
|
this, {},
|
53
|
-
this.
|
54
|
-
|
66
|
+
this.service.characteristicDelegate('totalConsumption'),
|
67
|
+
currentConsumption,
|
68
|
+
this.service.characteristicDelegate('on')
|
55
69
|
)
|
56
70
|
} else if (this.serviceByServiceName.Power != null) {
|
71
|
+
// Total Consumption to be computed by history
|
72
|
+
const TotalConsumption = this.service.addCharacteristicDelegate({
|
73
|
+
key: 'totalConsumption',
|
74
|
+
Characteristic: this.Characteristics.eve.TotalConsumption,
|
75
|
+
unit: ' kWh',
|
76
|
+
value: 0
|
77
|
+
})
|
57
78
|
this.historyService = new History.Power(
|
58
79
|
this, {},
|
59
|
-
this.
|
80
|
+
this.service.characteristicDelegate('currentConsumption'),
|
81
|
+
TotalConsumption,
|
82
|
+
this.service.characteristicDelegate('on')
|
60
83
|
)
|
84
|
+
} else if (this.values.serviceName === 'Outlet' && settings.forceEveEnergy) {
|
85
|
+
if (nLights > 1) {
|
86
|
+
// Eve would recognise device as Eve Energy Strip.
|
87
|
+
} else if (this.serviceByServiceName.Switch != null) {
|
88
|
+
// Eve would recognise device as Eve Button.
|
89
|
+
} else {
|
90
|
+
// Needed for Eve to recognise device as Eve Energy.
|
91
|
+
this.service.addCharacteristicDelegate({
|
92
|
+
key: 'totalConsumption',
|
93
|
+
Characteristic: this.Characteristics.eve.TotalConsumption,
|
94
|
+
unit: ' kWh'
|
95
|
+
})
|
96
|
+
this.historyService = new History.On(
|
97
|
+
this, {},
|
98
|
+
this.service.characteristicDelegate('on')
|
99
|
+
)
|
100
|
+
}
|
101
|
+
}
|
102
|
+
|
103
|
+
if (this.values.serviceName === 'Outlet' && this.historyService != null) {
|
104
|
+
if (nLights > 1) {
|
105
|
+
// Eve would recognise device as Eve Energy Strip.
|
106
|
+
} else if (this.serviceByServiceName.Switch != null) {
|
107
|
+
// Eve would recognise device as Eve Button.
|
108
|
+
} else {
|
109
|
+
// Needed for Eve to show history for On.
|
110
|
+
this.service.addCharacteristicDelegate({
|
111
|
+
key: 'lockPhysicalControls',
|
112
|
+
Characteristic: this.Characteristics.hap.LockPhysicalControls
|
113
|
+
})
|
114
|
+
}
|
61
115
|
}
|
62
116
|
|
63
117
|
this.createSettingsService()
|
@@ -157,7 +157,6 @@ class DeconzAccessory extends homebridgeLib.AccessoryDelegate {
|
|
157
157
|
if (service != null) {
|
158
158
|
service.addResource(resource)
|
159
159
|
}
|
160
|
-
this.consumptionService = service
|
161
160
|
} else if (params.serviceName === 'Switch') {
|
162
161
|
// Default button
|
163
162
|
if (resource.capabilities.buttons == null) {
|
@@ -71,7 +71,7 @@ class GatewaySettings extends homebridgeLib.ServiceDelegate {
|
|
71
71
|
this.addCharacteristicDelegate({
|
72
72
|
key: 'logLevel',
|
73
73
|
Characteristic: this.Characteristics.my.LogLevel,
|
74
|
-
value:
|
74
|
+
value: this.accessoryDelegate.logLevel
|
75
75
|
})
|
76
76
|
|
77
77
|
this.addCharacteristicDelegate({
|
@@ -190,6 +190,7 @@ class Light extends DeconzService.LightsResource {
|
|
190
190
|
this.addCharacteristicDelegates()
|
191
191
|
|
192
192
|
if (this.capabilities.bri && this.capabilities.ct && !this.capabilities.hs) {
|
193
|
+
this.adaptiveLightingNotInitialised = true
|
193
194
|
this.addCharacteristicDelegate({
|
194
195
|
key: 'supportedTransitionConfiguration',
|
195
196
|
Characteristic: this.Characteristics.hap
|
@@ -428,7 +429,8 @@ class Light extends DeconzService.LightsResource {
|
|
428
429
|
}
|
429
430
|
|
430
431
|
initAdaptiveLighting () {
|
431
|
-
if (this.
|
432
|
+
if (this.adaptiveLightingNotInitialised) {
|
433
|
+
delete this.adaptiveLightingNotInitialised
|
432
434
|
this.adaptiveLighting = new homebridgeLib.AdaptiveLighting(
|
433
435
|
this.brightnessDelegate, this.colorTemperatureDelegate
|
434
436
|
)
|
@@ -458,7 +460,7 @@ class Light extends DeconzService.LightsResource {
|
|
458
460
|
this.values.brightness * this.platform.config.brightnessAdjustment
|
459
461
|
)
|
460
462
|
if (ct == null) {
|
461
|
-
this.warn('
|
463
|
+
this.warn('adaptive lighting: cannot compute Color Temperature')
|
462
464
|
return
|
463
465
|
}
|
464
466
|
if (this.values.colormode === 'ct' && ct === this.values.colorTemperature) {
|
package/package.json
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
"displayName": "Homebridge deCONZ",
|
5
5
|
"author": "Erik Baauw",
|
6
6
|
"license": "Apache-2.0",
|
7
|
-
"version": "0.0.
|
7
|
+
"version": "0.0.23",
|
8
8
|
"keywords": [
|
9
9
|
"homebridge-plugin",
|
10
10
|
"homekit",
|
@@ -20,14 +20,13 @@
|
|
20
20
|
"deconz": "cli/deconz.js"
|
21
21
|
},
|
22
22
|
"engines": {
|
23
|
-
"deCONZ": "2.
|
23
|
+
"deCONZ": "2.18.2",
|
24
24
|
"homebridge": "^1.5.0",
|
25
|
-
"node": "^16.17.
|
25
|
+
"node": "^16.17.1"
|
26
26
|
},
|
27
27
|
"dependencies": {
|
28
|
-
"homebridge-lib": "~5.6.
|
29
|
-
"
|
30
|
-
"ws": "^8.8.1",
|
28
|
+
"homebridge-lib": "~5.6.8",
|
29
|
+
"ws": "^8.9.0",
|
31
30
|
"xml2js": "~0.4.23"
|
32
31
|
},
|
33
32
|
"scripts": {
|
@@ -42,8 +41,14 @@
|
|
42
41
|
"url": "https://github.com/ebaauw/homebridge-deconz/issues"
|
43
42
|
},
|
44
43
|
"homepage": "https://github.com/ebaauw/homebridge-deconz#readme",
|
45
|
-
"funding":
|
46
|
-
|
47
|
-
|
48
|
-
|
44
|
+
"funding": [
|
45
|
+
{
|
46
|
+
"type": "github",
|
47
|
+
"url": "https://github.com/sponsors/ebaauw"
|
48
|
+
},
|
49
|
+
{
|
50
|
+
"type": "paypal",
|
51
|
+
"url": "https://www.paypal.me/ebaauw/EUR"
|
52
|
+
}
|
53
|
+
]
|
49
54
|
}
|