homebridge-deconz 1.0.12 → 1.0.13
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/cli/deconz.js +6 -4
- package/cli/otau.js +6 -4
- package/cli/ui.js +10 -7
- package/homebridge-ui/server.js +2 -4
- package/index.js +7 -3
- package/lib/Deconz/Device.js +2 -2
- package/lib/Deconz/Resource.js +9 -6
- package/lib/Deconz/index.js +2 -7
- package/lib/DeconzAccessory/AirPurifier.js +2 -4
- package/lib/DeconzAccessory/Gateway.js +27 -9
- package/lib/DeconzAccessory/Light.js +30 -21
- package/lib/DeconzAccessory/Sensor.js +4 -4
- package/lib/DeconzAccessory/Thermostat.js +4 -4
- package/lib/DeconzAccessory/WarningDevice.js +4 -4
- package/lib/DeconzAccessory/WindowCovering.js +2 -4
- package/lib/DeconzAccessory/index.js +35 -13
- package/lib/DeconzPlatform.js +14 -9
- package/lib/DeconzService/AirPressure.js +3 -4
- package/lib/DeconzService/AirPurifier.js +3 -4
- package/lib/DeconzService/AirQuality.js +4 -4
- package/lib/DeconzService/Alarm.js +3 -4
- package/lib/DeconzService/Battery.js +7 -4
- package/lib/DeconzService/Button.js +3 -3
- package/lib/DeconzService/CarbonMonoxide.js +3 -4
- package/lib/DeconzService/Consumption.js +4 -4
- package/lib/DeconzService/Contact.js +3 -4
- package/lib/DeconzService/Daylight.js +4 -4
- package/lib/DeconzService/Flag.js +3 -4
- package/lib/DeconzService/Gateway.js +3 -3
- package/lib/DeconzService/Humidity.js +3 -4
- package/lib/DeconzService/Label.js +3 -4
- package/lib/DeconzService/Leak.js +3 -4
- package/lib/DeconzService/Light.js +7 -4
- package/lib/DeconzService/LightLevel.js +4 -4
- package/lib/DeconzService/LightsResource.js +3 -4
- package/lib/DeconzService/Motion.js +3 -4
- package/lib/DeconzService/Outlet.js +3 -4
- package/lib/DeconzService/Power.js +4 -4
- package/lib/DeconzService/Schedule.js +5 -4
- package/lib/DeconzService/SensorsResource.js +3 -4
- package/lib/DeconzService/Smoke.js +3 -4
- package/lib/DeconzService/Status.js +3 -4
- package/lib/DeconzService/Switch.js +3 -4
- package/lib/DeconzService/Temperature.js +3 -4
- package/lib/DeconzService/Thermostat.js +3 -4
- package/lib/DeconzService/Valve.js +4 -6
- package/lib/DeconzService/WarningDevice.js +4 -4
- package/lib/DeconzService/WindowCovering.js +4 -4
- package/lib/DeconzService/index.js +3 -36
- package/package.json +9 -5
package/cli/deconz.js
CHANGED
@@ -5,9 +5,11 @@
|
|
5
5
|
//
|
6
6
|
// Command line interface to deCONZ gateway.
|
7
7
|
|
8
|
-
|
8
|
+
import { createRequire } from 'node:module'
|
9
9
|
|
10
|
-
|
11
|
-
const pkgJson = require('../package.json')
|
10
|
+
import { DeconzTool } from 'hb-deconz-tools/DeconzTool'
|
12
11
|
|
13
|
-
|
12
|
+
const require = createRequire(import.meta.url)
|
13
|
+
const packageJson = require('../package.json')
|
14
|
+
|
15
|
+
new DeconzTool(packageJson).main()
|
package/cli/otau.js
CHANGED
@@ -5,9 +5,11 @@
|
|
5
5
|
//
|
6
6
|
// Command line interface to deCONZ gateway.
|
7
7
|
|
8
|
-
|
8
|
+
import { createRequire } from 'node:module'
|
9
9
|
|
10
|
-
|
11
|
-
const pkgJson = require('../package.json')
|
10
|
+
import { OtauTool } from 'hb-deconz-tools/OtauTool'
|
12
11
|
|
13
|
-
|
12
|
+
const require = createRequire(import.meta.url)
|
13
|
+
const packageJson = require('../package.json')
|
14
|
+
|
15
|
+
new OtauTool(packageJson).main()
|
package/cli/ui.js
CHANGED
@@ -5,13 +5,16 @@
|
|
5
5
|
//
|
6
6
|
// Command line interface to Homebridge deCONZ UI Server.
|
7
7
|
|
8
|
-
|
8
|
+
import { readFile } from 'node:fs/promises'
|
9
|
+
import { createRequire } from 'node:module'
|
9
10
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
}
|
11
|
+
import { CommandLineParser } from 'hb-lib-tools/CommandLineParser'
|
12
|
+
import { CommandLineTool } from 'hb-lib-tools/CommandLineTool'
|
13
|
+
import { HttpClient } from 'hb-lib-tools/HttpClient'
|
14
|
+
import { JsonFormatter } from 'hb-lib-tools/JsonFormatter'
|
15
|
+
import { OptionParser } from 'hb-lib-tools/OptionParser'
|
16
|
+
|
17
|
+
const require = createRequire(import.meta.url)
|
15
18
|
const packageJson = require('../package.json')
|
16
19
|
|
17
20
|
const { b, u } = CommandLineTool
|
@@ -247,7 +250,7 @@ class Main extends CommandLineTool {
|
|
247
250
|
*/
|
248
251
|
async readJsonFile (filename) {
|
249
252
|
this.vdebug('reading %s', filename)
|
250
|
-
const text = await
|
253
|
+
const text = await readFile(filename)
|
251
254
|
this.debug('%s: %d bytes', filename, text.length)
|
252
255
|
const body = JSON.parse(text)
|
253
256
|
this.vdebug('%s: %j', filename, body)
|
package/homebridge-ui/server.js
CHANGED
@@ -3,10 +3,8 @@
|
|
3
3
|
// Homebridge plug-in for deCONZ.
|
4
4
|
// Copyright © 2022-2024 Erik Baauw. All rights reserved.
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
const { UiServer } = require('homebridge-lib')
|
9
|
-
const { Discovery } = require('hb-deconz-tools')
|
6
|
+
import { UiServer } from 'hb-lib-tools/UiServer'
|
7
|
+
import { Discovery } from 'hb-deconz-tools/Discovery'
|
10
8
|
|
11
9
|
class DeconzUiServer extends UiServer {
|
12
10
|
constructor () {
|
package/index.js
CHANGED
@@ -3,11 +3,15 @@
|
|
3
3
|
//
|
4
4
|
// Homebridge plugin for deCONZ.
|
5
5
|
|
6
|
-
|
6
|
+
import { createRequire } from 'node:module'
|
7
7
|
|
8
|
-
|
8
|
+
import { DeconzPlatform } from './lib/DeconzPlatform.js'
|
9
|
+
|
10
|
+
const require = createRequire(import.meta.url)
|
9
11
|
const packageJson = require('./package.json')
|
10
12
|
|
11
|
-
|
13
|
+
function main (homebridge) {
|
12
14
|
DeconzPlatform.loadPlatform(homebridge, packageJson, 'deCONZ', DeconzPlatform)
|
13
15
|
}
|
16
|
+
|
17
|
+
export { main as default }
|
package/lib/Deconz/Device.js
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
//
|
4
4
|
// Homebridge plugin for deCONZ.
|
5
5
|
|
6
|
-
|
6
|
+
import { Deconz } from './index.js'
|
7
7
|
|
8
8
|
/** Delegate class for a Zigbee or virtual device on a deCONZ gateway.
|
9
9
|
*
|
@@ -112,4 +112,4 @@ class Device {
|
|
112
112
|
}
|
113
113
|
}
|
114
114
|
|
115
|
-
|
115
|
+
Deconz.Device = Device
|
package/lib/Deconz/Resource.js
CHANGED
@@ -3,12 +3,15 @@
|
|
3
3
|
//
|
4
4
|
// Homebridge plugin for deCONZ.
|
5
5
|
|
6
|
-
|
6
|
+
import { OptionParser } from 'homebridge-lib/OptionParser'
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
8
|
+
import { ApiClient } from 'hb-deconz-tools/ApiClient'
|
9
|
+
|
10
|
+
import { Deconz } from './index.js'
|
11
|
+
import { DeconzAccessory } from '../DeconzAccessory/index.js'
|
12
|
+
import '../DeconzAccessory/Gateway.js'
|
13
|
+
import { DeconzService } from '../DeconzService/index.js'
|
14
|
+
import '../DeconzService/Button.js'
|
12
15
|
|
13
16
|
const { toInstance, toInt, toObject, toString } = OptionParser
|
14
17
|
const { buttonEvent } = ApiClient
|
@@ -1157,4 +1160,4 @@ class Resource {
|
|
1157
1160
|
}
|
1158
1161
|
}
|
1159
1162
|
|
1160
|
-
|
1163
|
+
Deconz.Resource = Resource
|
package/lib/Deconz/index.js
CHANGED
@@ -3,14 +3,9 @@
|
|
3
3
|
//
|
4
4
|
// Homebridge plugin for deCONZ.
|
5
5
|
|
6
|
-
'use strict'
|
7
|
-
|
8
6
|
/** Library to discover, monitor, and interact with a deCONZ gateway.
|
9
7
|
* @hideconstructor
|
10
8
|
*/
|
11
|
-
class Deconz {
|
12
|
-
static get Device () { return require('./Device') }
|
13
|
-
static get Resource () { return require('./Resource') }
|
14
|
-
}
|
9
|
+
class Deconz {}
|
15
10
|
|
16
|
-
|
11
|
+
export { Deconz }
|
@@ -3,9 +3,7 @@
|
|
3
3
|
//
|
4
4
|
// Homebridge plugin for deCONZ.
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
const DeconzAccessory = require('../DeconzAccessory')
|
6
|
+
import { DeconzAccessory } from '../DeconzAccessory/index.js'
|
9
7
|
|
10
8
|
class AirPurifier extends DeconzAccessory {
|
11
9
|
/** Instantiate a delegate for an accessory corresponding to a device.
|
@@ -33,4 +31,4 @@ class AirPurifier extends DeconzAccessory {
|
|
33
31
|
}
|
34
32
|
}
|
35
33
|
|
36
|
-
|
34
|
+
DeconzAccessory.AirPurifier = AirPurifier
|
@@ -3,14 +3,29 @@
|
|
3
3
|
//
|
4
4
|
// Homebridge plugin for deCONZ.
|
5
5
|
|
6
|
-
|
6
|
+
import { timeout } from 'homebridge-lib'
|
7
|
+
import { AccessoryDelegate } from 'homebridge-lib/AccessoryDelegate'
|
8
|
+
import { OptionParser } from 'homebridge-lib/OptionParser'
|
9
|
+
|
10
|
+
import { ApiClient } from 'hb-deconz-tools/ApiClient'
|
11
|
+
import { ApiError } from 'hb-deconz-tools/ApiError'
|
12
|
+
import { WsClient } from 'hb-deconz-tools/WsClient'
|
13
|
+
|
14
|
+
import { Deconz } from '../Deconz/index.js'
|
15
|
+
import '../Deconz/Resource.js'
|
16
|
+
import '../Deconz/Device.js'
|
17
|
+
|
18
|
+
import { DeconzAccessory } from '../DeconzAccessory/index.js'
|
19
|
+
import '../DeconzAccessory/AirPurifier.js'
|
20
|
+
import '../DeconzAccessory/Light.js'
|
21
|
+
import '../DeconzAccessory/Sensor.js'
|
22
|
+
import '../DeconzAccessory/Thermostat.js'
|
23
|
+
import '../DeconzAccessory/WarningDevice.js'
|
24
|
+
import '../DeconzAccessory/WindowCovering.js'
|
25
|
+
|
26
|
+
import { DeconzService } from '../DeconzService/index.js'
|
7
27
|
|
8
|
-
const { AccessoryDelegate, OptionParser, timeout } = require('homebridge-lib')
|
9
|
-
const { ApiClient, ApiError, WsClient } = require('hb-deconz-tools')
|
10
28
|
const { HttpError } = ApiClient
|
11
|
-
const Deconz = require('../Deconz')
|
12
|
-
const DeconzAccessory = require('../DeconzAccessory')
|
13
|
-
const DeconzService = require('../DeconzService')
|
14
29
|
|
15
30
|
const migration = {
|
16
31
|
name: 'homebridge-deconz',
|
@@ -225,7 +240,7 @@ class Gateway extends AccessoryDelegate {
|
|
225
240
|
this.exposeErrorById = {}
|
226
241
|
|
227
242
|
/** The service delegate for the Gateway Settings settings.
|
228
|
-
* @type {DeconzService.
|
243
|
+
* @type {DeconzService.Gateway}
|
229
244
|
*/
|
230
245
|
this.service = new DeconzService.Gateway(this, {
|
231
246
|
name: this.name + ' Gateway',
|
@@ -1134,7 +1149,7 @@ class Gateway extends AccessoryDelegate {
|
|
1134
1149
|
} else {
|
1135
1150
|
this.debug('%s: exposed by legacy code', name)
|
1136
1151
|
}
|
1137
|
-
this.addAccessory(id)
|
1152
|
+
await this.addAccessory(id)
|
1138
1153
|
changed = true
|
1139
1154
|
}
|
1140
1155
|
} else {
|
@@ -1160,6 +1175,9 @@ class Gateway extends AccessoryDelegate {
|
|
1160
1175
|
|
1161
1176
|
this.vdebug('analysing schedules...')
|
1162
1177
|
if (this.values.exposeSchedules) {
|
1178
|
+
if (DeconzService.Schedule == null) {
|
1179
|
+
await import('../DeconzService/Schedule.js')
|
1180
|
+
}
|
1163
1181
|
for (const rid in fullState.schedules) {
|
1164
1182
|
if (this.scheduleServicesByRid[rid] == null) {
|
1165
1183
|
this.scheduleServicesByRid[rid] = new DeconzService.Schedule(
|
@@ -1225,4 +1243,4 @@ class Gateway extends AccessoryDelegate {
|
|
1225
1243
|
}
|
1226
1244
|
}
|
1227
1245
|
|
1228
|
-
|
1246
|
+
DeconzAccessory.Gateway = Gateway
|
@@ -3,10 +3,10 @@
|
|
3
3
|
//
|
4
4
|
// Homebridge plugin for deCONZ.
|
5
5
|
|
6
|
-
|
6
|
+
import { ServiceDelegate } from 'homebridge-lib/ServiceDelegate'
|
7
|
+
import 'homebridge-lib/ServiceDelegate/History'
|
7
8
|
|
8
|
-
|
9
|
-
const DeconzAccessory = require('../DeconzAccessory')
|
9
|
+
import { DeconzAccessory } from '../DeconzAccessory/index.js'
|
10
10
|
|
11
11
|
/** Delegate class for a HomeKit accessory, corresponding to a light device
|
12
12
|
* or groups resource.
|
@@ -127,26 +127,33 @@ class Light extends DeconzAccessory {
|
|
127
127
|
})
|
128
128
|
}
|
129
129
|
} else {
|
130
|
+
this.debug('servicesByServiceName: %j', Object.keys(this.servicesByServiceName))
|
131
|
+
this.debug('servicesByServiceName[%s]: %j', this.values.serviceName, Object.keys(this.servicesByServiceName[this.values.serviceName]))
|
130
132
|
for (const i in this.servicesByServiceName[this.values.serviceName]) {
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
Characteristic: this.Characteristics.hap.ServiceLabelIndex,
|
135
|
-
silent: true,
|
136
|
-
value: Number(i) + 1
|
137
|
-
})
|
138
|
-
service.values.index = Number(i) + 1
|
139
|
-
if (i === '0') {
|
140
|
-
continue
|
141
|
-
}
|
142
|
-
this.historyService?.addLastOnDelegate(
|
143
|
-
service.characteristicDelegate('on'),
|
133
|
+
try {
|
134
|
+
const service = this.servicesByServiceName[this.values.serviceName][i]
|
135
|
+
this.debug('service %d: %j', i, service.rpath)
|
144
136
|
service.addCharacteristicDelegate({
|
145
|
-
key: '
|
146
|
-
Characteristic: this.Characteristics.
|
147
|
-
silent: true
|
137
|
+
key: 'index',
|
138
|
+
Characteristic: this.Characteristics.hap.ServiceLabelIndex,
|
139
|
+
silent: true,
|
140
|
+
value: Number(i) + 1
|
148
141
|
})
|
149
|
-
|
142
|
+
service.values.index = Number(i) + 1
|
143
|
+
if (i === '0') {
|
144
|
+
continue
|
145
|
+
}
|
146
|
+
this.historyService?.addLastOnDelegate(
|
147
|
+
service.characteristicDelegate('on'),
|
148
|
+
service.addCharacteristicDelegate({
|
149
|
+
key: 'lastActivation',
|
150
|
+
Characteristic: this.Characteristics.eve.LastActivation,
|
151
|
+
silent: true
|
152
|
+
})
|
153
|
+
)
|
154
|
+
} catch (error) {
|
155
|
+
this.warn(error)
|
156
|
+
}
|
150
157
|
}
|
151
158
|
}
|
152
159
|
|
@@ -157,4 +164,6 @@ class Light extends DeconzAccessory {
|
|
157
164
|
}
|
158
165
|
}
|
159
166
|
|
160
|
-
|
167
|
+
DeconzAccessory.Light = Light
|
168
|
+
DeconzAccessory.Outlet = Light
|
169
|
+
DeconzAccessory.Switch = Light
|
@@ -8,10 +8,10 @@
|
|
8
8
|
// Stateless Programmable Switch (Eve button)
|
9
9
|
// Sensors
|
10
10
|
|
11
|
-
|
11
|
+
import { ServiceDelegate } from 'homebridge-lib/ServiceDelegate'
|
12
|
+
import 'homebridge-lib/ServiceDelegate/History'
|
12
13
|
|
13
|
-
|
14
|
-
const DeconzAccessory = require('../DeconzAccessory')
|
14
|
+
import { DeconzAccessory } from '../DeconzAccessory/index.js'
|
15
15
|
|
16
16
|
class Sensor extends DeconzAccessory {
|
17
17
|
constructor (gateway, device) {
|
@@ -150,4 +150,4 @@ class Sensor extends DeconzAccessory {
|
|
150
150
|
}
|
151
151
|
}
|
152
152
|
|
153
|
-
|
153
|
+
DeconzAccessory.Sensor = Sensor
|
@@ -3,10 +3,10 @@
|
|
3
3
|
//
|
4
4
|
// Homebridge plugin for deCONZ.
|
5
5
|
|
6
|
-
|
6
|
+
import { ServiceDelegate } from 'homebridge-lib/ServiceDelegate'
|
7
|
+
import 'homebridge-lib/ServiceDelegate/History'
|
7
8
|
|
8
|
-
|
9
|
-
const DeconzAccessory = require('../DeconzAccessory')
|
9
|
+
import { DeconzAccessory } from '../DeconzAccessory/index.js'
|
10
10
|
|
11
11
|
class Thermostat extends DeconzAccessory {
|
12
12
|
/** Instantiate a delegate for an accessory corresponding to a device.
|
@@ -42,4 +42,4 @@ class Thermostat extends DeconzAccessory {
|
|
42
42
|
}
|
43
43
|
}
|
44
44
|
|
45
|
-
|
45
|
+
DeconzAccessory.Thermostat = Thermostat
|
@@ -3,10 +3,10 @@
|
|
3
3
|
//
|
4
4
|
// Homebridge plugin for deCONZ.
|
5
5
|
|
6
|
-
|
6
|
+
import { ServiceDelegate } from 'homebridge-lib/ServiceDelegate'
|
7
|
+
import 'homebridge-lib/ServiceDelegate/History'
|
7
8
|
|
8
|
-
|
9
|
-
const DeconzAccessory = require('../DeconzAccessory')
|
9
|
+
import { DeconzAccessory } from '../DeconzAccessory/index.js'
|
10
10
|
|
11
11
|
/** Delegate class for a HomeKit accessory, corresponding to a light device
|
12
12
|
* or groups resource.
|
@@ -57,4 +57,4 @@ class WarningDevice extends DeconzAccessory {
|
|
57
57
|
}
|
58
58
|
}
|
59
59
|
|
60
|
-
|
60
|
+
DeconzAccessory.WarningDevice = WarningDevice
|
@@ -3,9 +3,7 @@
|
|
3
3
|
//
|
4
4
|
// Homebridge plugin for deCONZ.
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
const DeconzAccessory = require('../DeconzAccessory')
|
6
|
+
import { DeconzAccessory } from '../DeconzAccessory/index.js'
|
9
7
|
|
10
8
|
/** Delegate class for a HomeKit accessory, corresponding to a light device
|
11
9
|
* or groups resource.
|
@@ -42,4 +40,4 @@ class WindowCovering extends DeconzAccessory {
|
|
42
40
|
}
|
43
41
|
}
|
44
42
|
|
45
|
-
|
43
|
+
DeconzAccessory.WindowCovering = WindowCovering
|
@@ -3,11 +3,41 @@
|
|
3
3
|
//
|
4
4
|
// Homebridge plugin for deCONZ.
|
5
5
|
|
6
|
-
|
6
|
+
import { AccessoryDelegate } from 'homebridge-lib/AccessoryDelegate'
|
7
|
+
import { OptionParser } from 'homebridge-lib/OptionParser'
|
7
8
|
|
8
|
-
|
9
|
-
|
10
|
-
|
9
|
+
import { ApiClient } from 'hb-deconz-tools/ApiClient'
|
10
|
+
|
11
|
+
import { DeconzService } from '../DeconzService/index.js'
|
12
|
+
import '../DeconzService/AirPressure.js'
|
13
|
+
import '../DeconzService/AirPurifier.js'
|
14
|
+
import '../DeconzService/AirQuality.js'
|
15
|
+
import '../DeconzService/Alarm.js'
|
16
|
+
import '../DeconzService/Battery.js'
|
17
|
+
import '../DeconzService/Button.js'
|
18
|
+
import '../DeconzService/CarbonMonoxide.js'
|
19
|
+
import '../DeconzService/Consumption.js'
|
20
|
+
import '../DeconzService/Contact.js'
|
21
|
+
import '../DeconzService/Daylight.js'
|
22
|
+
import '../DeconzService/Flag.js'
|
23
|
+
import '../DeconzService/Gateway.js'
|
24
|
+
import '../DeconzService/Humidity.js'
|
25
|
+
import '../DeconzService/Label.js'
|
26
|
+
import '../DeconzService/Leak.js'
|
27
|
+
import '../DeconzService/Light.js'
|
28
|
+
import '../DeconzService/LightLevel.js'
|
29
|
+
import '../DeconzService/Motion.js'
|
30
|
+
import '../DeconzService/Outlet.js'
|
31
|
+
import '../DeconzService/Power.js'
|
32
|
+
import '../DeconzService/Schedule.js'
|
33
|
+
import '../DeconzService/Status.js'
|
34
|
+
import '../DeconzService/Smoke.js'
|
35
|
+
import '../DeconzService/Switch.js'
|
36
|
+
import '../DeconzService/Temperature.js'
|
37
|
+
import '../DeconzService/Thermostat.js'
|
38
|
+
import '../DeconzService/Valve.js'
|
39
|
+
import '../DeconzService/WarningDevice.js'
|
40
|
+
import '../DeconzService/WindowCovering.js'
|
11
41
|
|
12
42
|
const { HttpError } = ApiClient
|
13
43
|
const { SINGLE, DOUBLE, LONG } = DeconzService.Button
|
@@ -17,14 +47,6 @@ const { SINGLE, DOUBLE, LONG } = DeconzService.Button
|
|
17
47
|
* @extends AccessoryDelegate
|
18
48
|
*/
|
19
49
|
class DeconzAccessory extends AccessoryDelegate {
|
20
|
-
static get Light () { return require('./Light') }
|
21
|
-
static get Gateway () { return require('./Gateway') }
|
22
|
-
static get Outlet () { return DeconzAccessory.Light }
|
23
|
-
static get Sensor () { return require('./Sensor') }
|
24
|
-
static get Switch () { return DeconzAccessory.Light }
|
25
|
-
static get WarningDevice () { return require('./WarningDevice') }
|
26
|
-
static get WindowCovering () { return require('./WindowCovering') }
|
27
|
-
|
28
50
|
/** Instantiate a delegate for an accessory corresponding to a device.
|
29
51
|
* @param {DeconzAccessory.Gateway} gateway - The gateway.
|
30
52
|
* @param {Deconz.Device} device - The device.
|
@@ -330,4 +352,4 @@ class DeconzAccessory extends AccessoryDelegate {
|
|
330
352
|
}
|
331
353
|
}
|
332
354
|
|
333
|
-
|
355
|
+
export { DeconzAccessory }
|
package/lib/DeconzPlatform.js
CHANGED
@@ -3,12 +3,17 @@
|
|
3
3
|
//
|
4
4
|
// Homebridge plugin for deCONZ.
|
5
5
|
|
6
|
-
|
6
|
+
import { once } from 'node:events'
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
8
|
+
import { timeout } from 'homebridge-lib'
|
9
|
+
import { HttpClient } from 'homebridge-lib/HttpClient'
|
10
|
+
import { OptionParser } from 'homebridge-lib/OptionParser'
|
11
|
+
import { Platform } from 'homebridge-lib/Platform'
|
12
|
+
|
13
|
+
import { Discovery } from 'hb-deconz-tools/Discovery'
|
14
|
+
|
15
|
+
import { DeconzAccessory } from './DeconzAccessory/index.js'
|
16
|
+
import './DeconzAccessory/Gateway.js'
|
12
17
|
|
13
18
|
class DeconzPlatform extends Platform {
|
14
19
|
constructor (log, configJson, homebridge, bridge) {
|
@@ -112,7 +117,7 @@ class DeconzPlatform extends Platform {
|
|
112
117
|
this.gatewayMap[id] = new DeconzAccessory.Gateway(this, { config, host })
|
113
118
|
}
|
114
119
|
await this.gatewayMap[id].found(host, config)
|
115
|
-
await
|
120
|
+
await once(this.gatewayMap[id], 'initialised')
|
116
121
|
this.emit('found')
|
117
122
|
}
|
118
123
|
|
@@ -137,12 +142,12 @@ class DeconzPlatform extends Platform {
|
|
137
142
|
}
|
138
143
|
} else {
|
139
144
|
this.debug('job %d: find at least one gateway', jobs.length)
|
140
|
-
jobs.push(
|
145
|
+
jobs.push(once(this, 'found'))
|
141
146
|
for (const id in this.gatewayMap) {
|
142
147
|
const gateway = this.gatewayMap[id]
|
143
148
|
const host = gateway.values.host
|
144
149
|
this.debug('job %d: find gateway %s', jobs.length, id)
|
145
|
-
jobs.push(
|
150
|
+
jobs.push(once(gateway, 'initialised'))
|
146
151
|
try {
|
147
152
|
const config = await this.discovery.config(host)
|
148
153
|
await this.foundGateway(host, config)
|
@@ -259,4 +264,4 @@ class DeconzPlatform extends Platform {
|
|
259
264
|
}
|
260
265
|
}
|
261
266
|
|
262
|
-
|
267
|
+
export { DeconzPlatform }
|
@@ -3,9 +3,8 @@
|
|
3
3
|
//
|
4
4
|
// Homebridge plugin for deCONZ.
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
const DeconzService = require('../DeconzService')
|
6
|
+
import { DeconzService } from '../DeconzService/index.js'
|
7
|
+
import '../DeconzService/SensorsResource.js'
|
9
8
|
|
10
9
|
/**
|
11
10
|
* @memberof DeconzService
|
@@ -47,4 +46,4 @@ class AirPressure extends DeconzService.SensorsResource {
|
|
47
46
|
}
|
48
47
|
}
|
49
48
|
|
50
|
-
|
49
|
+
DeconzService.AirPressure = AirPressure
|
@@ -3,9 +3,8 @@
|
|
3
3
|
//
|
4
4
|
// Homebridge plugin for deCONZ.
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
const DeconzService = require('../DeconzService')
|
6
|
+
import { DeconzService } from '../DeconzService/index.js'
|
7
|
+
import '../DeconzService/SensorsResource.js'
|
9
8
|
|
10
9
|
class FilterMaintenance extends DeconzService.SensorsResource {
|
11
10
|
constructor (accessory, resource, params = {}) {
|
@@ -203,4 +202,4 @@ class AirPurifier extends DeconzService.SensorsResource {
|
|
203
202
|
}
|
204
203
|
}
|
205
204
|
|
206
|
-
|
205
|
+
DeconzService.AirPurifier = AirPurifier
|
@@ -3,10 +3,10 @@
|
|
3
3
|
//
|
4
4
|
// Homebridge plugin for deCONZ.
|
5
5
|
|
6
|
-
|
6
|
+
import { ApiClient } from 'hb-deconz-tools/ApiClient'
|
7
7
|
|
8
|
-
|
9
|
-
|
8
|
+
import { DeconzService } from '../DeconzService/index.js'
|
9
|
+
import '../DeconzService/SensorsResource.js'
|
10
10
|
|
11
11
|
const { dateToString } = ApiClient
|
12
12
|
|
@@ -170,4 +170,4 @@ class AirQuality extends DeconzService.SensorsResource {
|
|
170
170
|
}
|
171
171
|
}
|
172
172
|
|
173
|
-
|
173
|
+
DeconzService.AirQuality = AirQuality
|
@@ -3,9 +3,8 @@
|
|
3
3
|
//
|
4
4
|
// Homebridge plugin for deCONZ.
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
const DeconzService = require('../DeconzService')
|
6
|
+
import { DeconzService } from '../DeconzService/index.js'
|
7
|
+
import '../DeconzService/SensorsResource.js'
|
9
8
|
|
10
9
|
/**
|
11
10
|
* @memberof DeconzService
|
@@ -33,4 +32,4 @@ class Alarm extends DeconzService.SensorsResource {
|
|
33
32
|
}
|
34
33
|
}
|
35
34
|
|
36
|
-
|
35
|
+
DeconzService.Alarm = Alarm
|
@@ -3,10 +3,13 @@
|
|
3
3
|
//
|
4
4
|
// Homebridge plugin for deCONZ.
|
5
5
|
|
6
|
-
|
6
|
+
import { ServiceDelegate } from 'homebridge-lib/ServiceDelegate'
|
7
|
+
import 'homebridge-lib/ServiceDelegate/Battery'
|
8
|
+
|
9
|
+
import { ApiClient } from 'hb-deconz-tools/ApiClient'
|
10
|
+
|
11
|
+
import { DeconzService } from '../DeconzService/index.js'
|
7
12
|
|
8
|
-
const { ApiClient } = require('hb-deconz-tools')
|
9
|
-
const { ServiceDelegate } = require('homebridge-lib')
|
10
13
|
const { dateToString } = ApiClient
|
11
14
|
|
12
15
|
/**
|
@@ -74,4 +77,4 @@ class Battery extends ServiceDelegate.Battery {
|
|
74
77
|
}
|
75
78
|
}
|
76
79
|
|
77
|
-
|
80
|
+
DeconzService.Battery = Battery
|
@@ -3,9 +3,9 @@
|
|
3
3
|
//
|
4
4
|
// Homebridge plugin for deCONZ.
|
5
5
|
|
6
|
-
|
6
|
+
import { ServiceDelegate } from 'homebridge-lib/ServiceDelegate'
|
7
7
|
|
8
|
-
|
8
|
+
import { DeconzService } from './index.js'
|
9
9
|
|
10
10
|
const deconzEvent = {
|
11
11
|
PRESS: 0,
|
@@ -174,4 +174,4 @@ class Button extends ServiceDelegate {
|
|
174
174
|
}
|
175
175
|
}
|
176
176
|
|
177
|
-
|
177
|
+
DeconzService.Button = Button
|
@@ -3,9 +3,8 @@
|
|
3
3
|
//
|
4
4
|
// Homebridge plugin for deCONZ.
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
const DeconzService = require('../DeconzService')
|
6
|
+
import { DeconzService } from '../DeconzService/index.js'
|
7
|
+
import '../DeconzService/SensorsResource.js'
|
9
8
|
|
10
9
|
/**
|
11
10
|
* @memberof DeconzService
|
@@ -35,4 +34,4 @@ class CarbonMonoxide extends DeconzService.SensorsResource {
|
|
35
34
|
}
|
36
35
|
}
|
37
36
|
|
38
|
-
|
37
|
+
DeconzService.CarbonMonoxide = CarbonMonoxide
|
@@ -3,10 +3,10 @@
|
|
3
3
|
//
|
4
4
|
// Homebridge plugin for deCONZ.
|
5
5
|
|
6
|
-
|
6
|
+
import { ApiClient } from 'hb-deconz-tools/ApiClient'
|
7
7
|
|
8
|
-
|
9
|
-
|
8
|
+
import { DeconzService } from '../DeconzService/index.js'
|
9
|
+
import '../DeconzService/SensorsResource.js'
|
10
10
|
|
11
11
|
const { dateToString } = ApiClient
|
12
12
|
|
@@ -74,4 +74,4 @@ class Consumption extends DeconzService.SensorsResource {
|
|
74
74
|
}
|
75
75
|
}
|
76
76
|
|
77
|
-
|
77
|
+
DeconzService.Consumption = Consumption
|
@@ -3,9 +3,8 @@
|
|
3
3
|
//
|
4
4
|
// Homebridge plugin for deCONZ.
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
const DeconzService = require('../DeconzService')
|
6
|
+
import { DeconzService } from '../DeconzService/index.js'
|
7
|
+
import '../DeconzService/SensorsResource.js'
|
9
8
|
|
10
9
|
/**
|
11
10
|
* @memberof DeconzService
|
@@ -37,4 +36,4 @@ class Contact extends DeconzService.SensorsResource {
|
|
37
36
|
}
|
38
37
|
}
|
39
38
|
|
40
|
-
|
39
|
+
DeconzService.Contact = Contact
|
@@ -3,10 +3,10 @@
|
|
3
3
|
//
|
4
4
|
// Homebridge plugin for deCONZ.
|
5
5
|
|
6
|
-
|
6
|
+
import { ApiClient } from 'hb-deconz-tools/ApiClient'
|
7
7
|
|
8
|
-
|
9
|
-
|
8
|
+
import { DeconzService } from '../DeconzService/index.js'
|
9
|
+
import '../DeconzService/SensorsResource.js'
|
10
10
|
|
11
11
|
const { dateToString } = ApiClient
|
12
12
|
|
@@ -132,4 +132,4 @@ class Daylight extends DeconzService.SensorsResource {
|
|
132
132
|
}
|
133
133
|
}
|
134
134
|
|
135
|
-
|
135
|
+
DeconzService.Daylight = Daylight
|
@@ -3,9 +3,8 @@
|
|
3
3
|
//
|
4
4
|
// Homebridge plugin for deCONZ.
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
const DeconzService = require('../DeconzService')
|
6
|
+
import { DeconzService } from '../DeconzService/index.js'
|
7
|
+
import '../DeconzService/SensorsResource.js'
|
9
8
|
|
10
9
|
/**
|
11
10
|
* @memberof DeconzService
|
@@ -49,4 +48,4 @@ class Flag extends DeconzService.SensorsResource {
|
|
49
48
|
}
|
50
49
|
}
|
51
50
|
|
52
|
-
|
51
|
+
DeconzService.Flag = Flag
|
@@ -3,9 +3,9 @@
|
|
3
3
|
//
|
4
4
|
// Homebridge plugin for deCONZ.
|
5
5
|
|
6
|
-
|
6
|
+
import { ServiceDelegate } from 'homebridge-lib/ServiceDelegate'
|
7
7
|
|
8
|
-
|
8
|
+
import { DeconzService } from './index.js'
|
9
9
|
|
10
10
|
/** Delegate class for a DeconzGateway service.
|
11
11
|
* @extends ServiceDelegate
|
@@ -55,4 +55,4 @@ class Gateway extends ServiceDelegate {
|
|
55
55
|
}
|
56
56
|
}
|
57
57
|
|
58
|
-
|
58
|
+
DeconzService.Gateway = Gateway
|
@@ -3,9 +3,8 @@
|
|
3
3
|
//
|
4
4
|
// Homebridge plugin for deCONZ.
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
const DeconzService = require('../DeconzService')
|
6
|
+
import { DeconzService } from '../DeconzService/index.js'
|
7
|
+
import '../DeconzService/SensorsResource.js'
|
9
8
|
|
10
9
|
/**
|
11
10
|
* @memberof DeconzService
|
@@ -38,4 +37,4 @@ class Humidity extends DeconzService.SensorsResource {
|
|
38
37
|
}
|
39
38
|
}
|
40
39
|
|
41
|
-
|
40
|
+
DeconzService.Humidity = Humidity
|
@@ -3,9 +3,8 @@
|
|
3
3
|
//
|
4
4
|
// Homebridge plugin for deCONZ.
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
const DeconzService = require('../DeconzService')
|
6
|
+
import { DeconzService } from '../DeconzService/index.js'
|
7
|
+
import '../DeconzService/SensorsResource.js'
|
9
8
|
|
10
9
|
/**
|
11
10
|
* @memberof DeconzService
|
@@ -105,4 +104,4 @@ class Label extends DeconzService.SensorsResource {
|
|
105
104
|
}
|
106
105
|
}
|
107
106
|
|
108
|
-
|
107
|
+
DeconzService.Label = Label
|
@@ -3,9 +3,8 @@
|
|
3
3
|
//
|
4
4
|
// Homebridge plugin for deCONZ.
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
const DeconzService = require('../DeconzService')
|
6
|
+
import { DeconzService } from '../DeconzService/index.js'
|
7
|
+
import '../DeconzService/SensorsResource.js'
|
9
8
|
|
10
9
|
/**
|
11
10
|
* @memberof DeconzService
|
@@ -35,4 +34,4 @@ class Leak extends DeconzService.SensorsResource {
|
|
35
34
|
}
|
36
35
|
}
|
37
36
|
|
38
|
-
|
37
|
+
DeconzService.Leak = Leak
|
@@ -3,10 +3,13 @@
|
|
3
3
|
//
|
4
4
|
// Homebridge plugin for deCONZ.
|
5
5
|
|
6
|
-
|
6
|
+
import { timeout } from 'homebridge-lib'
|
7
|
+
import { AdaptiveLighting } from 'homebridge-lib/AdaptiveLighting'
|
8
|
+
import { Colour } from 'homebridge-lib/Colour'
|
9
|
+
import { ServiceDelegate } from 'homebridge-lib/ServiceDelegate'
|
7
10
|
|
8
|
-
|
9
|
-
|
11
|
+
import { DeconzService } from '../DeconzService/index.js'
|
12
|
+
import '../DeconzService/LightsResource.js'
|
10
13
|
|
11
14
|
const { defaultGamut, xyToHsv, hsvToXy, ctToXy } = Colour
|
12
15
|
|
@@ -589,4 +592,4 @@ class Light extends DeconzService.LightsResource {
|
|
589
592
|
}
|
590
593
|
}
|
591
594
|
|
592
|
-
|
595
|
+
DeconzService.Light = Light
|
@@ -3,10 +3,10 @@
|
|
3
3
|
//
|
4
4
|
// Homebridge plugin for deCONZ.
|
5
5
|
|
6
|
-
|
6
|
+
import { ApiClient } from 'hb-deconz-tools/ApiClient'
|
7
7
|
|
8
|
-
|
9
|
-
|
8
|
+
import { DeconzService } from '../DeconzService/index.js'
|
9
|
+
import '../DeconzService/SensorsResource.js'
|
10
10
|
|
11
11
|
const { lightLevelToLux } = ApiClient
|
12
12
|
|
@@ -53,4 +53,4 @@ class LightLevel extends DeconzService.SensorsResource {
|
|
53
53
|
}
|
54
54
|
}
|
55
55
|
|
56
|
-
|
56
|
+
DeconzService.LightLevel = LightLevel
|
@@ -3,10 +3,9 @@
|
|
3
3
|
//
|
4
4
|
// Homebridge plugin for deCONZ.
|
5
5
|
|
6
|
-
|
6
|
+
import { timeout } from 'homebridge-lib'
|
7
7
|
|
8
|
-
|
9
|
-
const DeconzService = require('../DeconzService')
|
8
|
+
import { DeconzService } from '../DeconzService/index.js'
|
10
9
|
|
11
10
|
class LightsResource extends DeconzService {
|
12
11
|
constructor (accessory, resource, params) {
|
@@ -104,4 +103,4 @@ class LightsResource extends DeconzService {
|
|
104
103
|
}
|
105
104
|
}
|
106
105
|
|
107
|
-
|
106
|
+
DeconzService.LightsResource = LightsResource
|
@@ -3,9 +3,8 @@
|
|
3
3
|
//
|
4
4
|
// Homebridge plugin for deCONZ.
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
const DeconzService = require('../DeconzService')
|
6
|
+
import { DeconzService } from '../DeconzService/index.js'
|
7
|
+
import '../DeconzService/SensorsResource.js'
|
9
8
|
|
10
9
|
/**
|
11
10
|
* @memberof DeconzService
|
@@ -88,4 +87,4 @@ class Motion extends DeconzService.SensorsResource {
|
|
88
87
|
}
|
89
88
|
}
|
90
89
|
|
91
|
-
|
90
|
+
DeconzService.Motion = Motion
|
@@ -3,9 +3,8 @@
|
|
3
3
|
//
|
4
4
|
// Homebridge plugin for deCONZ.
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
const DeconzService = require('../DeconzService')
|
6
|
+
import { DeconzService } from '../DeconzService/index.js'
|
7
|
+
import '../DeconzService/LightsResource.js'
|
9
8
|
|
10
9
|
class Outlet extends DeconzService.LightsResource {
|
11
10
|
constructor (accessory, resource, params = {}) {
|
@@ -81,4 +80,4 @@ class Outlet extends DeconzService.LightsResource {
|
|
81
80
|
}
|
82
81
|
}
|
83
82
|
|
84
|
-
|
83
|
+
DeconzService.Outlet = Outlet
|
@@ -3,10 +3,10 @@
|
|
3
3
|
//
|
4
4
|
// Homebridge plugin for deCONZ.
|
5
5
|
|
6
|
-
|
6
|
+
import { ApiClient } from 'hb-deconz-tools/ApiClient'
|
7
7
|
|
8
|
-
|
9
|
-
|
8
|
+
import { DeconzService } from '../DeconzService/index.js'
|
9
|
+
import '../DeconzService/SensorsResource.js'
|
10
10
|
|
11
11
|
const { dateToString } = ApiClient
|
12
12
|
|
@@ -84,4 +84,4 @@ class Power extends DeconzService.SensorsResource {
|
|
84
84
|
}
|
85
85
|
}
|
86
86
|
|
87
|
-
|
87
|
+
DeconzService.Power = Power
|
@@ -3,10 +3,11 @@
|
|
3
3
|
//
|
4
4
|
// Homebridge plugin for deCONZ.
|
5
5
|
|
6
|
-
|
6
|
+
import { ServiceDelegate } from 'homebridge-lib/ServiceDelegate'
|
7
7
|
|
8
|
-
|
9
|
-
|
8
|
+
import { ApiClient } from 'hb-deconz-tools/ApiClient'
|
9
|
+
|
10
|
+
import { DeconzService } from '../DeconzService/index.js'
|
10
11
|
|
11
12
|
const { HttpError } = ApiClient
|
12
13
|
|
@@ -66,4 +67,4 @@ class Schedule extends ServiceDelegate {
|
|
66
67
|
}
|
67
68
|
}
|
68
69
|
|
69
|
-
|
70
|
+
DeconzService.Schedule = Schedule
|
@@ -3,10 +3,9 @@
|
|
3
3
|
//
|
4
4
|
// Homebridge plugin for deCONZ.
|
5
5
|
|
6
|
-
|
6
|
+
import { ApiClient } from 'hb-deconz-tools/ApiClient'
|
7
7
|
|
8
|
-
|
9
|
-
const DeconzService = require('../DeconzService')
|
8
|
+
import { DeconzService } from '../DeconzService/index.js'
|
10
9
|
|
11
10
|
const { dateToString } = ApiClient
|
12
11
|
|
@@ -86,4 +85,4 @@ class SensorsResource extends DeconzService {
|
|
86
85
|
}
|
87
86
|
}
|
88
87
|
|
89
|
-
|
88
|
+
DeconzService.SensorsResource = SensorsResource
|
@@ -3,9 +3,8 @@
|
|
3
3
|
//
|
4
4
|
// Homebridge plugin for deCONZ.
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
const DeconzService = require('../DeconzService')
|
6
|
+
import { DeconzService } from '../DeconzService/index.js'
|
7
|
+
import '../DeconzService/SensorsResource.js'
|
9
8
|
|
10
9
|
/**
|
11
10
|
* @memberof DeconzService
|
@@ -48,4 +47,4 @@ class Smoke extends DeconzService.SensorsResource {
|
|
48
47
|
}
|
49
48
|
}
|
50
49
|
|
51
|
-
|
50
|
+
DeconzService.Smoke = Smoke
|
@@ -3,9 +3,8 @@
|
|
3
3
|
//
|
4
4
|
// Homebridge plugin for deCONZ.
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
const DeconzService = require('../DeconzService')
|
6
|
+
import { DeconzService } from '../DeconzService/index.js'
|
7
|
+
import '../DeconzService/SensorsResource.js'
|
9
8
|
|
10
9
|
/**
|
11
10
|
* @memberof DeconzService
|
@@ -74,4 +73,4 @@ class Status extends DeconzService.SensorsResource {
|
|
74
73
|
}
|
75
74
|
}
|
76
75
|
|
77
|
-
|
76
|
+
DeconzService.Status = Status
|
@@ -3,9 +3,8 @@
|
|
3
3
|
//
|
4
4
|
// Homebridge plugin for deCONZ.
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
const DeconzService = require('../DeconzService')
|
6
|
+
import { DeconzService } from '../DeconzService/index.js'
|
7
|
+
import '../DeconzService/LightsResource.js'
|
9
8
|
|
10
9
|
class Switch extends DeconzService.LightsResource {
|
11
10
|
constructor (accessory, resource, params = {}) {
|
@@ -75,4 +74,4 @@ class Switch extends DeconzService.LightsResource {
|
|
75
74
|
}
|
76
75
|
}
|
77
76
|
|
78
|
-
|
77
|
+
DeconzService.Switch = Switch
|
@@ -3,9 +3,8 @@
|
|
3
3
|
//
|
4
4
|
// Homebridge plugin for deCONZ.
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
const DeconzService = require('../DeconzService')
|
6
|
+
import { DeconzService } from '../DeconzService/index.js'
|
7
|
+
import '../DeconzService/SensorsResource.js'
|
9
8
|
|
10
9
|
/**
|
11
10
|
* @memberof DeconzService
|
@@ -67,4 +66,4 @@ class Temperature extends DeconzService.SensorsResource {
|
|
67
66
|
}
|
68
67
|
}
|
69
68
|
|
70
|
-
|
69
|
+
DeconzService.Temperature = Temperature
|
@@ -3,9 +3,8 @@
|
|
3
3
|
//
|
4
4
|
// Homebridge plugin for deCONZ.
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
const DeconzService = require('../DeconzService')
|
6
|
+
import { DeconzService } from '../DeconzService/index.js'
|
7
|
+
import '../DeconzService/SensorsResource.js'
|
9
8
|
|
10
9
|
/**
|
11
10
|
* @memberof DeconzService
|
@@ -183,4 +182,4 @@ class Thermostat extends DeconzService.SensorsResource {
|
|
183
182
|
}
|
184
183
|
}
|
185
184
|
|
186
|
-
|
185
|
+
DeconzService.Thermostat = Thermostat
|
@@ -3,12 +3,10 @@
|
|
3
3
|
//
|
4
4
|
// Homebridge plugin for deCONZ.
|
5
5
|
|
6
|
-
|
6
|
+
import { DeconzService } from '../DeconzService/index.js'
|
7
|
+
import '../DeconzService/LightsResource.js'
|
7
8
|
|
8
|
-
|
9
|
-
// const timeout = require('homebridge-lib')
|
10
|
-
|
11
|
-
class Switch extends DeconzService.LightsResource {
|
9
|
+
class Valve extends DeconzService.LightsResource {
|
12
10
|
constructor (accessory, resource, params = {}) {
|
13
11
|
params.Service = accessory.Services.hap.Valve
|
14
12
|
super(accessory, resource, params)
|
@@ -122,4 +120,4 @@ class Switch extends DeconzService.LightsResource {
|
|
122
120
|
}
|
123
121
|
}
|
124
122
|
|
125
|
-
|
123
|
+
DeconzService.Valve = Valve
|
@@ -3,10 +3,10 @@
|
|
3
3
|
//
|
4
4
|
// Homebridge plugin for deCONZ.
|
5
5
|
|
6
|
-
|
6
|
+
import { timeout } from 'homebridge-lib'
|
7
7
|
|
8
|
-
|
9
|
-
|
8
|
+
import { DeconzService } from '../DeconzService/index.js'
|
9
|
+
import '../DeconzService/LightsResource.js'
|
10
10
|
|
11
11
|
class WarningDevice extends DeconzService.LightsResource {
|
12
12
|
constructor (accessory, resource, params = {}) {
|
@@ -61,4 +61,4 @@ class WarningDevice extends DeconzService.LightsResource {
|
|
61
61
|
}
|
62
62
|
}
|
63
63
|
|
64
|
-
|
64
|
+
DeconzService.WarningDevice = WarningDevice
|
@@ -3,10 +3,10 @@
|
|
3
3
|
//
|
4
4
|
// Homebridge plugin for deCONZ.
|
5
5
|
|
6
|
-
|
6
|
+
import { timeout } from 'homebridge-lib'
|
7
7
|
|
8
|
-
|
9
|
-
|
8
|
+
import { DeconzService } from '../DeconzService/index.js'
|
9
|
+
import '../DeconzService/LightsResource.js'
|
10
10
|
|
11
11
|
class WindowCovering extends DeconzService.LightsResource {
|
12
12
|
constructor (accessory, resource, params = {}) {
|
@@ -166,4 +166,4 @@ class WindowCovering extends DeconzService.LightsResource {
|
|
166
166
|
}
|
167
167
|
}
|
168
168
|
|
169
|
-
|
169
|
+
DeconzService.WindowCovering = WindowCovering
|
@@ -3,10 +3,9 @@
|
|
3
3
|
//
|
4
4
|
// Homebridge plugin for deCONZ.
|
5
5
|
|
6
|
-
|
6
|
+
import { ServiceDelegate } from 'homebridge-lib/ServiceDelegate'
|
7
7
|
|
8
|
-
|
9
|
-
const { ServiceDelegate } = require('homebridge-lib')
|
8
|
+
import { ApiClient } from 'hb-deconz-tools/ApiClient'
|
10
9
|
|
11
10
|
const { HttpError, dateToString } = ApiClient
|
12
11
|
|
@@ -14,38 +13,6 @@ const { HttpError, dateToString } = ApiClient
|
|
14
13
|
* @extends ServiceDelegate
|
15
14
|
*/
|
16
15
|
class DeconzService extends ServiceDelegate {
|
17
|
-
static get AirPressure () { return require('./AirPressure') }
|
18
|
-
static get AirPurifier () { return require('./AirPurifier') }
|
19
|
-
static get AirQuality () { return require('./AirQuality') }
|
20
|
-
static get Alarm () { return require('./Alarm') }
|
21
|
-
static get Battery () { return require('./Battery') }
|
22
|
-
static get Button () { return require('./Button') }
|
23
|
-
static get CarbonMonoxide () { return require('./CarbonMonoxide') }
|
24
|
-
static get Consumption () { return require('./Consumption') }
|
25
|
-
static get Contact () { return require('./Contact') }
|
26
|
-
static get Daylight () { return require('./Daylight') }
|
27
|
-
static get Flag () { return require('./Flag') }
|
28
|
-
static get Gateway () { return require('./Gateway') }
|
29
|
-
static get Humidity () { return require('./Humidity') }
|
30
|
-
static get Label () { return require('./Label') }
|
31
|
-
static get Leak () { return require('./Leak') }
|
32
|
-
static get Light () { return require('./Light') }
|
33
|
-
static get LightsResource () { return require('./LightsResource') }
|
34
|
-
static get LightLevel () { return require('./LightLevel') }
|
35
|
-
static get Motion () { return require('./Motion') }
|
36
|
-
static get Outlet () { return require('./Outlet') }
|
37
|
-
static get Power () { return require('./Power') }
|
38
|
-
static get Schedule () { return require('./Schedule') }
|
39
|
-
static get SensorsResource () { return require('./SensorsResource') }
|
40
|
-
static get Status () { return require('./Status') }
|
41
|
-
static get Smoke () { return require('./Smoke') }
|
42
|
-
static get Switch () { return require('./Switch') }
|
43
|
-
static get Temperature () { return require('./Temperature') }
|
44
|
-
static get Thermostat () { return require('./Thermostat') }
|
45
|
-
static get Valve () { return require('./Valve') }
|
46
|
-
static get WarningDevice () { return require('./WarningDevice') }
|
47
|
-
static get WindowCovering () { return require('./WindowCovering') }
|
48
|
-
|
49
16
|
constructor (accessory, resource, params) {
|
50
17
|
super(accessory, {
|
51
18
|
id: resource.id,
|
@@ -129,4 +96,4 @@ class DeconzService extends ServiceDelegate {
|
|
129
96
|
}
|
130
97
|
}
|
131
98
|
|
132
|
-
|
99
|
+
export { DeconzService }
|
package/package.json
CHANGED
@@ -3,8 +3,11 @@
|
|
3
3
|
"description": "Homebridge plugin for deCONZ",
|
4
4
|
"displayName": "Homebridge deCONZ",
|
5
5
|
"author": "Erik Baauw",
|
6
|
+
"maintainers": [
|
7
|
+
"ebaauw"
|
8
|
+
],
|
6
9
|
"license": "Apache-2.0",
|
7
|
-
"version": "1.0.
|
10
|
+
"version": "1.0.13",
|
8
11
|
"keywords": [
|
9
12
|
"homebridge-plugin",
|
10
13
|
"homekit",
|
@@ -15,6 +18,7 @@
|
|
15
18
|
"dresden-elektronik",
|
16
19
|
"dresdenelektronik"
|
17
20
|
],
|
21
|
+
"type": "module",
|
18
22
|
"main": "index.js",
|
19
23
|
"bin": {
|
20
24
|
"deconz": "cli/deconz.js",
|
@@ -22,13 +26,13 @@
|
|
22
26
|
"ui": "cli/ui.js"
|
23
27
|
},
|
24
28
|
"engines": {
|
25
|
-
"deCONZ": "2.
|
26
|
-
"homebridge": "^1.
|
29
|
+
"deCONZ": "2.27.6",
|
30
|
+
"homebridge": "^1.8.4||^2.0.0-beta",
|
27
31
|
"node": "^20||^18"
|
28
32
|
},
|
29
33
|
"dependencies": {
|
30
|
-
"hb-deconz-tools": "~
|
31
|
-
"homebridge-lib": "~
|
34
|
+
"hb-deconz-tools": "~2.0.3",
|
35
|
+
"homebridge-lib": "~7.0.5"
|
32
36
|
},
|
33
37
|
"scripts": {
|
34
38
|
"prepare": "standard && rm -rf out && jsdoc -c jsdoc.json",
|