homebridge-easy-mqtt 1.3.0-beta.4 → 1.3.0-beta.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -9
- package/README.md +3 -0
- package/config.schema.json +11 -3
- package/dist/accessory/abstract/base.d.ts +1 -1
- package/dist/accessory/abstract/base.js +2 -2
- package/dist/accessory/abstract/base.js.map +1 -1
- package/dist/accessory/abstract/group.d.ts +8 -0
- package/dist/accessory/abstract/group.js +39 -0
- package/dist/accessory/abstract/group.js.map +1 -0
- package/dist/accessory/abstract/helper.d.ts +5 -0
- package/dist/accessory/abstract/helper.js +53 -0
- package/dist/accessory/abstract/helper.js.map +1 -0
- package/dist/accessory/abstract/mqtt.d.ts +6 -7
- package/dist/accessory/abstract/mqtt.js +15 -6
- package/dist/accessory/abstract/mqtt.js.map +1 -1
- package/dist/accessory/lock.d.ts +6 -5
- package/dist/accessory/lock.js +5 -5
- package/dist/accessory/lock.js.map +1 -1
- package/dist/accessory/onoff/lightbulb.d.ts +4 -3
- package/dist/accessory/onoff/lightbulb.js +5 -5
- package/dist/accessory/onoff/lightbulb.js.map +1 -1
- package/dist/accessory/onoff/onoff.d.ts +1 -1
- package/dist/accessory/onoff/onoff.js +2 -2
- package/dist/accessory/onoff/onoff.js.map +1 -1
- package/dist/accessory/onoff/outlet.d.ts +4 -3
- package/dist/accessory/onoff/outlet.js +5 -5
- package/dist/accessory/onoff/outlet.js.map +1 -1
- package/dist/accessory/onoff/switch.d.ts +4 -3
- package/dist/accessory/onoff/switch.js +5 -4
- package/dist/accessory/onoff/switch.js.map +1 -1
- package/dist/accessory/security.d.ts +6 -5
- package/dist/accessory/security.js +5 -5
- package/dist/accessory/security.js.map +1 -1
- package/dist/accessory/sensor/carbonDioxide.d.ts +4 -3
- package/dist/accessory/sensor/carbonDioxide.js +5 -5
- package/dist/accessory/sensor/carbonDioxide.js.map +1 -1
- package/dist/accessory/sensor/carbonMonoxide.d.ts +4 -3
- package/dist/accessory/sensor/carbonMonoxide.js +5 -5
- package/dist/accessory/sensor/carbonMonoxide.js.map +1 -1
- package/dist/accessory/sensor/contact.d.ts +4 -3
- package/dist/accessory/sensor/contact.js +5 -5
- package/dist/accessory/sensor/contact.js.map +1 -1
- package/dist/accessory/sensor/humidity.d.ts +4 -3
- package/dist/accessory/sensor/humidity.js +5 -5
- package/dist/accessory/sensor/humidity.js.map +1 -1
- package/dist/accessory/sensor/leak.d.ts +4 -3
- package/dist/accessory/sensor/leak.js +5 -5
- package/dist/accessory/sensor/leak.js.map +1 -1
- package/dist/accessory/sensor/motion.d.ts +4 -3
- package/dist/accessory/sensor/motion.js +5 -5
- package/dist/accessory/sensor/motion.js.map +1 -1
- package/dist/accessory/sensor/occupancy.d.ts +4 -3
- package/dist/accessory/sensor/occupancy.js +5 -5
- package/dist/accessory/sensor/occupancy.js.map +1 -1
- package/dist/accessory/sensor/sensor.d.ts +1 -1
- package/dist/accessory/sensor/sensor.js +2 -2
- package/dist/accessory/sensor/sensor.js.map +1 -1
- package/dist/accessory/sensor/smoke.d.ts +4 -3
- package/dist/accessory/sensor/smoke.js +5 -5
- package/dist/accessory/sensor/smoke.js.map +1 -1
- package/dist/accessory/sensor/temperature.d.ts +4 -3
- package/dist/accessory/sensor/temperature.js +5 -5
- package/dist/accessory/sensor/temperature.js.map +1 -1
- package/dist/accessory/thermostat.d.ts +4 -3
- package/dist/accessory/thermostat.js +5 -5
- package/dist/accessory/thermostat.js.map +1 -1
- package/dist/homebridge/platform.d.ts +5 -3
- package/dist/homebridge/platform.js +35 -76
- package/dist/homebridge/platform.js.map +1 -1
- package/dist/homebridge-ui/public/index.html +1 -1
- package/dist/i18n/en.d.ts +62 -61
- package/dist/i18n/en.js +62 -61
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/fr.d.ts +532 -0
- package/dist/i18n/fr.js +275 -0
- package/dist/i18n/fr.js.map +1 -0
- package/dist/i18n/i18n.d.ts +64 -62
- package/dist/i18n/i18n.js +6 -0
- package/dist/i18n/i18n.js.map +1 -1
- package/dist/i18n/template.d.ts +62 -61
- package/dist/model/mqtt.js +2 -1
- package/dist/model/mqtt.js.map +1 -1
- package/dist/model/types.d.ts +3 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,21 +2,27 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to homebridge-dummy will be documented in this file.
|
|
4
4
|
|
|
5
|
-
## 1.3.0-beta.
|
|
6
|
-
|
|
7
|
-
### HELP NEEDED! (no coding experience required)
|
|
8
|
-
|
|
9
|
-
Would you like to see Homebridge Easy MQTT in your language? Please consider [getting involved](https://github.com/mpatfield/homebridge-easy-mqtt/issues/4).
|
|
5
|
+
## 1.3.0-beta.6 (2025-09-XX)
|
|
10
6
|
|
|
11
7
|
### Added
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
-
|
|
8
|
+
- Groups
|
|
9
|
+
- ⚠️ Changing the group name will require you to reconfigure any HomeKit scenes/automations for those accessories
|
|
10
|
+
- Thermostats
|
|
11
|
+
- CO, CO2, Contact, Humidity, Leak, Motion, Occupancy, and Smoke sensors
|
|
12
|
+
- Arbitrary custom characteristics ([documentation](https://github.com/mpatfield/homebridge-easy-mqtt#custom-characteristics))
|
|
15
13
|
- JSONPath support in setter topics ([documentation](https://github.com/mpatfield/homebridge-easy-mqtt#jsonpaths))
|
|
14
|
+
- Traductions en Français (Merci, [@7ute](https://github.com/sponsors/7ute))
|
|
16
15
|
- Banner image in config UI
|
|
17
16
|
|
|
18
17
|
### Changed
|
|
19
|
-
- Significant under-the-hood
|
|
18
|
+
- Significant under-the-hood cleanup to speed future development
|
|
19
|
+
|
|
20
|
+
### Fixed
|
|
21
|
+
- Exponential backoff for MQTT connection errors
|
|
22
|
+
|
|
23
|
+
### Notes
|
|
24
|
+
|
|
25
|
+
• Would you like to see Homebridge Easy MQTT in your language? Please consider [getting involved](https://github.com/mpatfield/homebridge-easy-mqtt/issues/4). No coding experience required!
|
|
20
26
|
|
|
21
27
|
## 1.2.0 (2025-09-02)
|
|
22
28
|
|
package/README.md
CHANGED
|
@@ -54,6 +54,7 @@ Using the Homebridge Config UI is the easiest way to set up this plugin. However
|
|
|
54
54
|
"id": "string",
|
|
55
55
|
"name": "string",
|
|
56
56
|
"type": "string",
|
|
57
|
+
"group": "string",
|
|
57
58
|
"manufacturer": "string",
|
|
58
59
|
"model": "string",
|
|
59
60
|
"serialNumber": "string",
|
|
@@ -88,6 +89,8 @@ Required fields are marked with an asterisk (*)
|
|
|
88
89
|
- `id*` - A unique ID to identify this accessory. Changing this value will result in a new accessory.
|
|
89
90
|
- `name*` - The display name for the accessory in HomeKit
|
|
90
91
|
- `type*` - The type of accessory, currently Lightbulb, LockMechanism, Outlet, SecuritySystem, Switch, and Temperature Sensor are supported
|
|
92
|
+
- `group` - Items sharing the same group name will be grouped together in the Home app UI
|
|
93
|
+
- ⚠️ Changing the group name will require you to reconfigure any HomeKit scenes/automations for those accessories
|
|
91
94
|
- `manufacturer` - The accessory manufacturer which will display in HomeKit device details
|
|
92
95
|
- `model` - The accessory model which will display in HomeKit device details
|
|
93
96
|
- `serialNumber` - The accessory serial number which will display in HomeKit device details
|
package/config.schema.json
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
},
|
|
16
16
|
"name": {
|
|
17
17
|
"type": "string",
|
|
18
|
-
"title": "${config.title.name}"
|
|
18
|
+
"title": "${config.title.name}",
|
|
19
19
|
"required": true
|
|
20
20
|
},
|
|
21
21
|
"type": {
|
|
@@ -25,6 +25,10 @@
|
|
|
25
25
|
"enumNames": ["${config.enumNames.carbonMonoxideSensor}", "${config.enumNames.carbonDioxideSensor}", "${config.enumNames.contactSensor}", "${config.enumNames.humiditySensor}", "${config.enumNames.leakSensor}", "${config.enumNames.lightbulb}", "${config.enumNames.lockMechanism}", "${config.enumNames.motionSensor}", "${config.enumNames.occupancySensor}", "${config.enumNames.outlet}", "${config.enumNames.securitySystem}", "${config.enumNames.smokeSensor}", "${config.enumNames.switch}", "${config.enumNames.temperatureSensor}", "${config.enumNames.thermostat}"],
|
|
26
26
|
"required": true
|
|
27
27
|
},
|
|
28
|
+
"group": {
|
|
29
|
+
"type": "string",
|
|
30
|
+
"title": "${config.title.group}"
|
|
31
|
+
},
|
|
28
32
|
"manufacturer": {
|
|
29
33
|
"type": "string",
|
|
30
34
|
"title": "${config.title.manufacturer}"
|
|
@@ -423,11 +427,15 @@
|
|
|
423
427
|
"items": [
|
|
424
428
|
{
|
|
425
429
|
"key": "accessories[].info.name",
|
|
426
|
-
"flex": "0 0
|
|
430
|
+
"flex": "0 0 33%"
|
|
427
431
|
},
|
|
428
432
|
{
|
|
429
433
|
"key": "accessories[].info.type",
|
|
430
|
-
"flex": "0 0
|
|
434
|
+
"flex": "0 0 33%"
|
|
435
|
+
},
|
|
436
|
+
{
|
|
437
|
+
"key": "accessories[].info.group",
|
|
438
|
+
"flex": "0 0 33%"
|
|
431
439
|
}
|
|
432
440
|
]
|
|
433
441
|
},
|
|
@@ -3,7 +3,7 @@ import { MQTTAccessory } from './mqtt.js';
|
|
|
3
3
|
import { CharacteristicType, BaseAccessoryConfig, ServiceType } from '../../model/types.js';
|
|
4
4
|
import { Log } from '../../tools/log.js';
|
|
5
5
|
export declare abstract class BaseAccessory<C extends BaseAccessoryConfig = BaseAccessoryConfig> extends MQTTAccessory<C> {
|
|
6
|
-
constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: C, log: Log);
|
|
6
|
+
constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: C, log: Log, isGrouped: boolean);
|
|
7
7
|
private onBatteryLowUpdate;
|
|
8
8
|
private onStatusActiveUpdate;
|
|
9
9
|
}
|
|
@@ -5,8 +5,8 @@ import { CharacteristicKey } from '../../model/enums.js';
|
|
|
5
5
|
import { LogType } from '../../tools/log.js';
|
|
6
6
|
import getVersion from '../../tools/version.js';
|
|
7
7
|
export class BaseAccessory extends MQTTAccessory {
|
|
8
|
-
constructor(Service, Characteristic, accessory, config, log) {
|
|
9
|
-
super(Service, Characteristic, accessory, config, log);
|
|
8
|
+
constructor(Service, Characteristic, accessory, config, log, isGrouped) {
|
|
9
|
+
super(Service, Characteristic, accessory, config, log, isGrouped);
|
|
10
10
|
accessory.getService(Service.AccessoryInformation)
|
|
11
11
|
.setCharacteristic(Characteristic.Name, config.info.name)
|
|
12
12
|
.setCharacteristic(Characteristic.ConfiguredName, config.info.name)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/accessory/abstract/base.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAE7D,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGzD,OAAO,EAAO,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,UAAU,MAAM,wBAAwB,CAAC;AAEhD,MAAM,OAAgB,aAAmE,SAAQ,aAAgB;IAE/G,YAAY,OAAoB,EAAE,cAAkC,EAAE,SAA4B,EAAE,MAAS,EAAE,GAAQ;
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/accessory/abstract/base.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { PlatformAccessory } from 'homebridge';
|
|
2
|
+
import { BaseAccessoryConfig, CharacteristicType, ServiceType } from '../../model/types.js';
|
|
3
|
+
import { Log } from '../../tools/log.js';
|
|
4
|
+
export declare class GroupAccessory {
|
|
5
|
+
private readonly accessories;
|
|
6
|
+
constructor(Service: ServiceType, Characteristic: CharacteristicType, platformAccessory: PlatformAccessory, log: Log, name: string, configs: BaseAccessoryConfig[]);
|
|
7
|
+
teardown(): void;
|
|
8
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { createAccessory } from './helper.js';
|
|
2
|
+
import { PLATFORM_NAME } from '../../homebridge/settings.js';
|
|
3
|
+
import getVersion from '../../tools/version.js';
|
|
4
|
+
export class GroupAccessory {
|
|
5
|
+
accessories = [];
|
|
6
|
+
constructor(Service, Characteristic, platformAccessory, log, name, configs) {
|
|
7
|
+
if (configs.length === 0) {
|
|
8
|
+
throw new Error('Trying to create a group with no accessories');
|
|
9
|
+
}
|
|
10
|
+
platformAccessory.getService(Service.AccessoryInformation)
|
|
11
|
+
.setCharacteristic(Characteristic.Name, name)
|
|
12
|
+
.setCharacteristic(Characteristic.ConfiguredName, name)
|
|
13
|
+
.setCharacteristic(Characteristic.Manufacturer, configs[0].info.manufacturer ?? PLATFORM_NAME)
|
|
14
|
+
.setCharacteristic(Characteristic.Model, configs[0].info.model ?? GroupAccessory.name)
|
|
15
|
+
.setCharacteristic(Characteristic.SerialNumber, configs[0].info.serialNumber ?? name)
|
|
16
|
+
.setCharacteristic(Characteristic.FirmwareRevision, configs[0].info.version ?? getVersion());
|
|
17
|
+
const keepSubtypes = new Set();
|
|
18
|
+
for (const config of configs) {
|
|
19
|
+
const accessory = createAccessory(Service, Characteristic, platformAccessory, config, log, true);
|
|
20
|
+
if (!accessory) {
|
|
21
|
+
continue;
|
|
22
|
+
}
|
|
23
|
+
keepSubtypes.add(accessory.subtype);
|
|
24
|
+
this.accessories.push(accessory);
|
|
25
|
+
}
|
|
26
|
+
;
|
|
27
|
+
for (const service of [...platformAccessory.services]) {
|
|
28
|
+
if (service.subtype && !keepSubtypes.has(service.subtype)) {
|
|
29
|
+
platformAccessory.removeService(service);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
teardown() {
|
|
34
|
+
this.accessories.forEach(accessory => {
|
|
35
|
+
accessory.teardown();
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=group.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"group.js","sourceRoot":"","sources":["../../../src/accessory/abstract/group.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,UAAU,MAAM,wBAAwB,CAAC;AAEhD,MAAM,OAAO,cAAc;IAER,WAAW,GAA2C,EAAE,CAAC;IAE1E,YACE,OAAoB,EACpB,cAAkC,EAClC,iBAAoC,EACpC,GAAQ,EACR,IAAY,EACZ,OAA8B;QAG9B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAClE,CAAC;QAED,iBAAiB,CAAC,UAAU,CAAC,OAAO,CAAC,oBAAoB,CAAE;aACxD,iBAAiB,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC;aAC5C,iBAAiB,CAAC,cAAc,CAAC,cAAc,EAAE,IAAI,CAAC;aACtD,iBAAiB,CAAC,cAAc,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,aAAa,CAAC;aAC7F,iBAAiB,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,cAAc,CAAC,IAAI,CAAC;aACrF,iBAAiB,CAAC,cAAc,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC;aACpF,iBAAiB,CAAC,cAAc,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,UAAU,EAAE,CAAC,CAAC;QAE/F,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;QAEvC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAE7B,MAAM,SAAS,GAAG,eAAe,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YACjG,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,SAAS;YACX,CAAC;YAED,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,OAAQ,CAAC,CAAC;YACrC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACnC,CAAC;QAAA,CAAC;QAEF,KAAK,MAAM,OAAO,IAAI,CAAC,GAAG,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtD,IAAI,OAAO,CAAC,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1D,iBAAiB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;IACH,CAAC;IAEM,QAAQ;QACb,IAAI,CAAC,WAAW,CAAC,OAAO,CAAE,SAAS,CAAC,EAAE;YACpC,SAAS,CAAC,QAAQ,EAAE,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { PlatformAccessory } from 'homebridge';
|
|
2
|
+
import { BaseAccessory } from './base.js';
|
|
3
|
+
import * as Configs from '../../model/types.js';
|
|
4
|
+
import { Log } from '../../tools/log.js';
|
|
5
|
+
export declare function createAccessory(Service: Configs.ServiceType, Characteristic: Configs.CharacteristicType, platformAccessory: PlatformAccessory, accessoryConfig: Configs.BaseAccessoryConfig, log: Log, isGrouped?: boolean): BaseAccessory | undefined;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { strings } from '../../i18n/i18n.js';
|
|
2
|
+
import { AccessoryType } from '../../model/enums.js';
|
|
3
|
+
import { LockMechanismAccessory } from '../lock.js';
|
|
4
|
+
import { SecuritySystemAccessory } from '../security.js';
|
|
5
|
+
import { ThermostatAccessory } from '../thermostat.js';
|
|
6
|
+
import { LightbulbAccessory } from '../onoff/lightbulb.js';
|
|
7
|
+
import { OutletAccessory } from '../onoff/outlet.js';
|
|
8
|
+
import { SwitchAccessory } from '../onoff/switch.js';
|
|
9
|
+
import { CO2SensorAccessory } from '../sensor/carbonDioxide.js';
|
|
10
|
+
import { COSensorAccessory } from '../sensor/carbonMonoxide.js';
|
|
11
|
+
import { ContactSensorAccessory } from '../sensor/contact.js';
|
|
12
|
+
import { HumiditySensorAccessory } from '../sensor/humidity.js';
|
|
13
|
+
import { LeakSensorAccessory } from '../sensor/leak.js';
|
|
14
|
+
import { MotionSensorAccessory } from '../sensor/motion.js';
|
|
15
|
+
import { OccupancySensorAccessory } from '../sensor/occupancy.js';
|
|
16
|
+
import { SmokeSensorAccessory } from '../sensor/smoke.js';
|
|
17
|
+
import { TemperatureSensorAccessory } from '../sensor/temperature.js';
|
|
18
|
+
export function createAccessory(Service, Characteristic, platformAccessory, accessoryConfig, log, isGrouped = false) {
|
|
19
|
+
switch (accessoryConfig.info.type) {
|
|
20
|
+
case AccessoryType.CarbonDioxideSensor:
|
|
21
|
+
return new CO2SensorAccessory(Service, Characteristic, platformAccessory, accessoryConfig, log, isGrouped);
|
|
22
|
+
case AccessoryType.CarbonMonoxideSensor:
|
|
23
|
+
return new COSensorAccessory(Service, Characteristic, platformAccessory, accessoryConfig, log, isGrouped);
|
|
24
|
+
case AccessoryType.ContactSensor:
|
|
25
|
+
return new ContactSensorAccessory(Service, Characteristic, platformAccessory, accessoryConfig, log, isGrouped);
|
|
26
|
+
case AccessoryType.HumiditySensor:
|
|
27
|
+
return new HumiditySensorAccessory(Service, Characteristic, platformAccessory, accessoryConfig, log, isGrouped);
|
|
28
|
+
case AccessoryType.LeakSensor:
|
|
29
|
+
return new LeakSensorAccessory(Service, Characteristic, platformAccessory, accessoryConfig, log, isGrouped);
|
|
30
|
+
case AccessoryType.Lightbulb:
|
|
31
|
+
return new LightbulbAccessory(Service, Characteristic, platformAccessory, accessoryConfig, log, isGrouped);
|
|
32
|
+
case AccessoryType.LockMechanism:
|
|
33
|
+
return new LockMechanismAccessory(Service, Characteristic, platformAccessory, accessoryConfig, log, isGrouped);
|
|
34
|
+
case AccessoryType.MotionSensor:
|
|
35
|
+
return new MotionSensorAccessory(Service, Characteristic, platformAccessory, accessoryConfig, log, isGrouped);
|
|
36
|
+
case AccessoryType.OccupancySensor:
|
|
37
|
+
return new OccupancySensorAccessory(Service, Characteristic, platformAccessory, accessoryConfig, log, isGrouped);
|
|
38
|
+
case AccessoryType.Outlet:
|
|
39
|
+
return new OutletAccessory(Service, Characteristic, platformAccessory, accessoryConfig, log, isGrouped);
|
|
40
|
+
case AccessoryType.SecuritySystem:
|
|
41
|
+
return new SecuritySystemAccessory(Service, Characteristic, platformAccessory, accessoryConfig, log, isGrouped);
|
|
42
|
+
case AccessoryType.SmokeSensor:
|
|
43
|
+
return new SmokeSensorAccessory(Service, Characteristic, platformAccessory, accessoryConfig, log, isGrouped);
|
|
44
|
+
case AccessoryType.Switch:
|
|
45
|
+
return new SwitchAccessory(Service, Characteristic, platformAccessory, accessoryConfig, log, isGrouped);
|
|
46
|
+
case AccessoryType.TemperatureSensor:
|
|
47
|
+
return new TemperatureSensorAccessory(Service, Characteristic, platformAccessory, accessoryConfig, log, isGrouped);
|
|
48
|
+
case AccessoryType.Thermostat:
|
|
49
|
+
return new ThermostatAccessory(Service, Characteristic, platformAccessory, accessoryConfig, log, isGrouped);
|
|
50
|
+
}
|
|
51
|
+
log.error(strings.startup.unsupportedType, accessoryConfig.info.type);
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=helper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helper.js","sourceRoot":"","sources":["../../../src/accessory/abstract/helper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +1,20 @@
|
|
|
1
|
-
import { Characteristic, CharacteristicSetHandler, CharacteristicValue, PlatformAccessory, PrimitiveTypes
|
|
2
|
-
import { CharacteristicKey } from '../../model/enums.js';
|
|
1
|
+
import { Characteristic, CharacteristicSetHandler, CharacteristicValue, PlatformAccessory, PrimitiveTypes } from 'homebridge';
|
|
2
|
+
import { AccessoryType, CharacteristicKey } from '../../model/enums.js';
|
|
3
3
|
import { CharacteristicType, MQTTAccessoryConfig, ServiceType, TemperatureConfig } from '../../model/types.js';
|
|
4
4
|
import { Log, LogType } from '../../tools/log.js';
|
|
5
5
|
type OnUpdateHandler = (topic: string, value: PrimitiveTypes) => (Promise<void>);
|
|
6
6
|
export declare abstract class MQTTAccessory<C extends MQTTAccessoryConfig> {
|
|
7
|
-
protected readonly Service: ServiceType;
|
|
8
7
|
protected readonly Characteristic: CharacteristicType;
|
|
9
|
-
protected readonly accessory: PlatformAccessory;
|
|
10
8
|
protected readonly config: C;
|
|
11
9
|
protected readonly log: Log;
|
|
12
10
|
private readonly mqttClient;
|
|
13
11
|
private readonly properties;
|
|
14
12
|
private readonly topicHandlers;
|
|
15
|
-
|
|
16
|
-
constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: C, log: Log);
|
|
17
|
-
protected abstract
|
|
13
|
+
private readonly accessoryService;
|
|
14
|
+
constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: C, log: Log, isGrouped: boolean);
|
|
15
|
+
protected abstract getAccessoryType(): AccessoryType;
|
|
18
16
|
protected get name(): string;
|
|
17
|
+
get subtype(): string | undefined;
|
|
19
18
|
private setupCustomCharacteristics;
|
|
20
19
|
protected setupCharacteristic(characteristicKey: CharacteristicKey, defaultValue: CharacteristicValue, getTopicKey: keyof C, onUpdateHandler: OnUpdateHandler, assertGetTopic: boolean, setTopicKey?: keyof C | undefined, onSetHandler?: CharacteristicSetHandler | undefined): Characteristic | undefined;
|
|
21
20
|
protected bindOnUpdateNumeric(charKey: CharacteristicKey, logTemplate: string): OnUpdateHandler;
|
|
@@ -7,19 +7,15 @@ import { toNumber, toPrimitive } from '../../tools/primitive.js';
|
|
|
7
7
|
import { toCelsius } from '../../tools/temperature.js';
|
|
8
8
|
import { assert } from '../../tools/validation.js';
|
|
9
9
|
export class MQTTAccessory {
|
|
10
|
-
Service;
|
|
11
10
|
Characteristic;
|
|
12
|
-
accessory;
|
|
13
11
|
config;
|
|
14
12
|
log;
|
|
15
13
|
mqttClient;
|
|
16
14
|
properties = new Map();
|
|
17
15
|
topicHandlers = [];
|
|
18
16
|
accessoryService;
|
|
19
|
-
constructor(Service, Characteristic, accessory, config, log) {
|
|
20
|
-
this.Service = Service;
|
|
17
|
+
constructor(Service, Characteristic, accessory, config, log, isGrouped) {
|
|
21
18
|
this.Characteristic = Characteristic;
|
|
22
|
-
this.accessory = accessory;
|
|
23
19
|
this.config = config;
|
|
24
20
|
this.log = log;
|
|
25
21
|
const name = config.info.name;
|
|
@@ -31,7 +27,17 @@ export class MQTTAccessory {
|
|
|
31
27
|
}, name);
|
|
32
28
|
this.mqttClient.connect();
|
|
33
29
|
}
|
|
34
|
-
|
|
30
|
+
const serviceInstance = Service[this.getAccessoryType()];
|
|
31
|
+
if (isGrouped) {
|
|
32
|
+
let accessoryService = accessory.getServiceById(serviceInstance, config.info.id);
|
|
33
|
+
if (!accessoryService) {
|
|
34
|
+
accessoryService = accessory.addService(serviceInstance, config.info.name, config.info.id);
|
|
35
|
+
accessoryService.setCharacteristic(Characteristic.ConfiguredName, config.info.name);
|
|
36
|
+
}
|
|
37
|
+
this.accessoryService = accessoryService;
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
this.accessoryService = accessory.getService(serviceInstance) || accessory.addService(serviceInstance);
|
|
35
41
|
for (const type of Object.values(AccessoryType)) {
|
|
36
42
|
const existingService = accessory.getService(Service[type]);
|
|
37
43
|
if (existingService && type !== config.info.type) {
|
|
@@ -43,6 +49,9 @@ export class MQTTAccessory {
|
|
|
43
49
|
get name() {
|
|
44
50
|
return this.config.info.name;
|
|
45
51
|
}
|
|
52
|
+
get subtype() {
|
|
53
|
+
return this.accessoryService.subtype;
|
|
54
|
+
}
|
|
46
55
|
setupCustomCharacteristics() {
|
|
47
56
|
const keepUUIDs = new Set(Object.values(CharacteristicKey).map((key) => this.Characteristic[key].UUID));
|
|
48
57
|
const toRemove = this.accessoryService.characteristics.filter((characteristic) => !keepUUIDs.has(characteristic.UUID));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mqtt.js","sourceRoot":"","sources":["../../../src/accessory/abstract/mqtt.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAG3C,OAAO,EAAO,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAKnD,MAAM,OAAgB,aAAa;
|
|
1
|
+
{"version":3,"file":"mqtt.js","sourceRoot":"","sources":["../../../src/accessory/abstract/mqtt.ts"],"names":[],"mappings":"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"}
|
package/dist/accessory/lock.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { PlatformAccessory
|
|
1
|
+
import { PlatformAccessory } from 'homebridge';
|
|
2
2
|
import { BaseAccessory } from './abstract/base.js';
|
|
3
|
-
import {
|
|
3
|
+
import { AccessoryType } from '../model/enums.js';
|
|
4
|
+
import { CharacteristicType, LockConfig, ServiceType } from '../model/types.js';
|
|
4
5
|
import { Log } from '../tools/log.js';
|
|
5
|
-
export declare class LockMechanismAccessory extends BaseAccessory<
|
|
6
|
-
constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config:
|
|
7
|
-
protected
|
|
6
|
+
export declare class LockMechanismAccessory extends BaseAccessory<LockConfig> {
|
|
7
|
+
constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: LockConfig, log: Log, isGrouped: boolean);
|
|
8
|
+
protected getAccessoryType(): AccessoryType;
|
|
8
9
|
private onCurrentStateUpdate;
|
|
9
10
|
private onTargetStateUpdate;
|
|
10
11
|
private onSetTargetState;
|
package/dist/accessory/lock.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { BaseAccessory } from './abstract/base.js';
|
|
2
2
|
import { strings } from '../i18n/i18n.js';
|
|
3
|
-
import { CharacteristicKey } from '../model/enums.js';
|
|
3
|
+
import { AccessoryType, CharacteristicKey } from '../model/enums.js';
|
|
4
4
|
import { LogType } from '../tools/log.js';
|
|
5
5
|
export class LockMechanismAccessory extends BaseAccessory {
|
|
6
|
-
constructor(Service, Characteristic, accessory, config, log) {
|
|
7
|
-
super(Service, Characteristic, accessory, config, log);
|
|
6
|
+
constructor(Service, Characteristic, accessory, config, log, isGrouped) {
|
|
7
|
+
super(Service, Characteristic, accessory, config, log, isGrouped);
|
|
8
8
|
const getTopicCurrent = this.config.topicGetLockCurrentState !== undefined && this.config.topicGetCurrentLockState === undefined
|
|
9
9
|
? 'topicGetLockCurrentState' : 'topicGetCurrentLockState';
|
|
10
10
|
this.setupCharacteristic(CharacteristicKey.LockCurrentState, Characteristic.LockCurrentState.UNKNOWN, getTopicCurrent, this.onCurrentStateUpdate.bind(this), true);
|
|
@@ -19,8 +19,8 @@ export class LockMechanismAccessory extends BaseAccessory {
|
|
|
19
19
|
}
|
|
20
20
|
this.setupCharacteristic(CharacteristicKey.LockTargetState, Characteristic.LockTargetState.SECURED, getTargetTopic, this.onTargetStateUpdate.bind(this), true, setTargetTopic, this.onSetTargetState.bind(this));
|
|
21
21
|
}
|
|
22
|
-
|
|
23
|
-
return
|
|
22
|
+
getAccessoryType() {
|
|
23
|
+
return AccessoryType.LockMechanism;
|
|
24
24
|
}
|
|
25
25
|
async onCurrentStateUpdate(topic, value) {
|
|
26
26
|
const current = this.currentStateFromValue(value);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lock.js","sourceRoot":"","sources":["../../src/accessory/lock.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"lock.js","sourceRoot":"","sources":["../../src/accessory/lock.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { PlatformAccessory
|
|
1
|
+
import { PlatformAccessory } from 'homebridge';
|
|
2
2
|
import { OnOffAccessory } from './onoff.js';
|
|
3
|
+
import { AccessoryType } from '../../model/enums.js';
|
|
3
4
|
import { CharacteristicType, LightbulbConfig, ServiceType } from '../../model/types.js';
|
|
4
5
|
import { Log } from '../../tools/log.js';
|
|
5
6
|
export declare class LightbulbAccessory extends OnOffAccessory<LightbulbConfig> {
|
|
6
|
-
constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: LightbulbConfig, log: Log);
|
|
7
|
-
protected
|
|
7
|
+
constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: LightbulbConfig, log: Log, isGrouped: boolean);
|
|
8
|
+
protected getAccessoryType(): AccessoryType;
|
|
8
9
|
private onSetValue;
|
|
9
10
|
}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { OnOffAccessory } from './onoff.js';
|
|
2
2
|
import { strings } from '../../i18n/i18n.js';
|
|
3
|
-
import { CharacteristicKey } from '../../model/enums.js';
|
|
3
|
+
import { AccessoryType, CharacteristicKey } from '../../model/enums.js';
|
|
4
4
|
export class LightbulbAccessory extends OnOffAccessory {
|
|
5
|
-
constructor(Service, Characteristic, accessory, config, log) {
|
|
6
|
-
super(Service, Characteristic, accessory, config, log);
|
|
5
|
+
constructor(Service, Characteristic, accessory, config, log, isGrouped) {
|
|
6
|
+
super(Service, Characteristic, accessory, config, log, isGrouped);
|
|
7
7
|
this.setupCharacteristic(CharacteristicKey.Brightness, 100, 'topicGetBrightness', this.bindOnUpdateNumeric(CharacteristicKey.Brightness, strings.lightbulb.brightness), false, 'topicSetBrightness', this.onSetValue(CharacteristicKey.Brightness, 'topicSetBrightness', strings.lightbulb.brightnessFuture));
|
|
8
8
|
this.setupCharacteristic(CharacteristicKey.ColorTemperature, 500, 'topicGetColorTemperature', this.bindOnUpdateNumeric(CharacteristicKey.ColorTemperature, strings.lightbulb.colorTemperature), false, 'topicSetColorTemperature', this.onSetValue(CharacteristicKey.ColorTemperature, 'topicSetColorTemperature', strings.lightbulb.colorTemperatureFuture));
|
|
9
9
|
this.setupCharacteristic(CharacteristicKey.Hue, 0, 'topicGetHue', this.bindOnUpdateNumeric(CharacteristicKey.Hue, strings.lightbulb.hue), false, 'topicSetHue', this.onSetValue(CharacteristicKey.Hue, 'topicSetHue', strings.lightbulb.hueFuture));
|
|
10
10
|
this.setupCharacteristic(CharacteristicKey.Saturation, 100, 'topicGetSaturation', this.bindOnUpdateNumeric(CharacteristicKey.Saturation, strings.lightbulb.saturation), false, 'topicSetSaturation', this.onSetValue(CharacteristicKey.Saturation, 'topicSetSaturation', strings.lightbulb.saturationFuture));
|
|
11
11
|
}
|
|
12
|
-
|
|
13
|
-
return
|
|
12
|
+
getAccessoryType() {
|
|
13
|
+
return AccessoryType.Lightbulb;
|
|
14
14
|
}
|
|
15
15
|
onSetValue(key, topic, logTemplate) {
|
|
16
16
|
return (async (value) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lightbulb.js","sourceRoot":"","sources":["../../../src/accessory/onoff/lightbulb.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"lightbulb.js","sourceRoot":"","sources":["../../../src/accessory/onoff/lightbulb.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAKxE,MAAM,OAAO,kBAAmB,SAAQ,cAA+B;IAErE,YAAY,OAAoB,EAAE,cAAkC,EAAE,SAA4B,EAAE,MAAuB,EAAE,GAAQ,EAAE,SAAkB;QACvJ,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAElE,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,UAAU,EAAE,GAAG,EACxD,oBAAoB,EAAE,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,KAAK,EACjH,oBAAoB,EAAE,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,UAAU,EAAE,oBAAoB,EAAE,OAAO,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAC9H,CAAC;QAEF,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,GAAG,EAC9D,0BAA0B,EAAE,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,OAAO,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,KAAK,EACnI,0BAA0B,EAAE,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,0BAA0B,EAAE,OAAO,CAAC,SAAS,CAAC,sBAAsB,CAAC,CACtJ,CAAC;QAEF,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC,EAC/C,aAAa,EAAE,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,KAAK,EAC5F,aAAa,EAAE,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,GAAG,EAAE,aAAa,EAAE,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAClG,CAAC;QAEF,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,UAAU,EAAE,GAAG,EACxD,oBAAoB,EAAE,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,KAAK,EACjH,oBAAoB,EAAE,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,UAAU,EAAE,oBAAoB,EAAE,OAAO,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAC9H,CAAC;IACJ,CAAC;IAES,gBAAgB;QACxB,OAAO,aAAa,CAAC,SAAS,CAAC;IACjC,CAAC;IAEO,UAAU,CAAC,GAAsB,EAAE,KAA4B,EAAE,WAAmB;QAC1F,OAAO,CAAC,KAAK,EAAE,KAA0B,EAAE,EAAE;YAC3C,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC9D,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,KAAe,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;CACF"}
|
|
@@ -3,7 +3,7 @@ import { BaseAccessory } from '../abstract/base.js';
|
|
|
3
3
|
import { CharacteristicType, OnOffConfig, ServiceType } from '../../model/types.js';
|
|
4
4
|
import { Log } from '../../tools/log.js';
|
|
5
5
|
export declare abstract class OnOffAccessory<C extends OnOffConfig = OnOffConfig> extends BaseAccessory<C> {
|
|
6
|
-
constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: C, log: Log);
|
|
6
|
+
constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: C, log: Log, isGrouped: boolean);
|
|
7
7
|
private onOnUpdate;
|
|
8
8
|
private onSetOn;
|
|
9
9
|
private booleanForValue;
|
|
@@ -2,8 +2,8 @@ import { BaseAccessory } from '../abstract/base.js';
|
|
|
2
2
|
import { strings } from '../../i18n/i18n.js';
|
|
3
3
|
import { CharacteristicKey } from '../../model/enums.js';
|
|
4
4
|
export class OnOffAccessory extends BaseAccessory {
|
|
5
|
-
constructor(Service, Characteristic, accessory, config, log) {
|
|
6
|
-
super(Service, Characteristic, accessory, config, log);
|
|
5
|
+
constructor(Service, Characteristic, accessory, config, log, isGrouped) {
|
|
6
|
+
super(Service, Characteristic, accessory, config, log, isGrouped);
|
|
7
7
|
this.setupCharacteristic(CharacteristicKey.On, false, 'topicGetOn', this.onOnUpdate.bind(this), true, 'topicSetOn', this.onSetOn.bind(this));
|
|
8
8
|
}
|
|
9
9
|
async onOnUpdate(topic, value) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onoff.js","sourceRoot":"","sources":["../../../src/accessory/onoff/onoff.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAKzD,MAAM,OAAgB,cAAoD,SAAQ,aAAgB;IAEhG,YAAY,OAAoB,EAAE,cAAkC,EAAE,SAA4B,EAAE,MAAS,EAAE,GAAQ;
|
|
1
|
+
{"version":3,"file":"onoff.js","sourceRoot":"","sources":["../../../src/accessory/onoff/onoff.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAKzD,MAAM,OAAgB,cAAoD,SAAQ,aAAgB;IAEhG,YAAY,OAAoB,EAAE,cAAkC,EAAE,SAA4B,EAAE,MAAS,EAAE,GAAQ,EAAE,SAAkB;QACzI,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAElE,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,EAAE,EAAE,KAAK,EAClD,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAC9C,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CACtC,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,KAAa,EAAE,KAAqB;QAC3D,MAAM,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QAC9D,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACrB,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,KAA0B;QAC9C,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAC1F,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACrB,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;QAC9F,CAAC;IACH,CAAC;IAEO,eAAe,CAAC,KAAqB,EAAE,QAAiB,EAAE,QAAiB;QAEjF,IAAI,IAAI,GAAwB,SAAS,CAAC;QAC1C,IAAI,KAAK,KAAK,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/C,IAAI,GAAG,IAAI,CAAC;QACd,CAAC;aAAM,IAAI,KAAK,KAAK,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtD,IAAI,GAAG,KAAK,CAAC;QACf,CAAC;QAED,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC;IAC9D,CAAC;IAEO,cAAc,CAAC,EAAuB,EAAE,SAAkB,KAAK;QACrE,IAAI,EAAE,EAAE,CAAC;YACP,OAAO,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;QACtE,CAAC;aAAM,CAAC;YACN,OAAO,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;QACxE,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { PlatformAccessory
|
|
1
|
+
import { PlatformAccessory } from 'homebridge';
|
|
2
2
|
import { OnOffAccessory } from './onoff.js';
|
|
3
|
+
import { AccessoryType } from '../../model/enums.js';
|
|
3
4
|
import { CharacteristicType, OutletConfig, ServiceType } from '../../model/types.js';
|
|
4
5
|
import { Log } from '../../tools/log.js';
|
|
5
6
|
export declare class OutletAccessory extends OnOffAccessory<OutletConfig> {
|
|
6
|
-
constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: OutletConfig, log: Log);
|
|
7
|
-
protected
|
|
7
|
+
constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: OutletConfig, log: Log, isGrouped: boolean);
|
|
8
|
+
protected getAccessoryType(): AccessoryType;
|
|
8
9
|
}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { OnOffAccessory } from './onoff.js';
|
|
2
2
|
import { strings } from '../../i18n/i18n.js';
|
|
3
|
-
import { CharacteristicKey } from '../../model/enums.js';
|
|
3
|
+
import { AccessoryType, CharacteristicKey } from '../../model/enums.js';
|
|
4
4
|
export class OutletAccessory extends OnOffAccessory {
|
|
5
|
-
constructor(Service, Characteristic, accessory, config, log) {
|
|
6
|
-
super(Service, Characteristic, accessory, config, log);
|
|
5
|
+
constructor(Service, Characteristic, accessory, config, log, isGrouped) {
|
|
6
|
+
super(Service, Characteristic, accessory, config, log, isGrouped);
|
|
7
7
|
this.setupCharacteristic(CharacteristicKey.OutletInUse, false, 'topicGetOutletInUse', this.bindOnUpdateNumericBoolean(CharacteristicKey.OutletInUse, 'valueOutletInUse', strings.outlet.inUse, strings.outlet.notInUse), false);
|
|
8
8
|
}
|
|
9
|
-
|
|
10
|
-
return
|
|
9
|
+
getAccessoryType() {
|
|
10
|
+
return AccessoryType.Outlet;
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
13
|
//# sourceMappingURL=outlet.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outlet.js","sourceRoot":"","sources":["../../../src/accessory/onoff/outlet.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"outlet.js","sourceRoot":"","sources":["../../../src/accessory/onoff/outlet.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAKxE,MAAM,OAAO,eAAgB,SAAQ,cAA4B;IAE/D,YAAY,OAAoB,EAAE,cAAkC,EAAE,SAA4B,EAAE,MAAoB,EAAE,GAAQ,EAAE,SAAkB;QACpJ,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAElE,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,WAAW,EAAE,KAAK,EAAE,qBAAqB,EAClF,IAAI,CAAC,0BAA0B,CAAC,iBAAiB,CAAC,WAAW,EAAE,kBAAkB,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EACjI,KAAK,CACN,CAAC;IACJ,CAAC;IAES,gBAAgB;QACxB,OAAO,aAAa,CAAC,MAAM,CAAC;IAC9B,CAAC;CACF"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { PlatformAccessory
|
|
1
|
+
import { PlatformAccessory } from 'homebridge';
|
|
2
2
|
import { OnOffAccessory } from './onoff.js';
|
|
3
|
+
import { AccessoryType } from '../../model/enums.js';
|
|
3
4
|
import { CharacteristicType, ServiceType, SwitchConfig } from '../../model/types.js';
|
|
4
5
|
import { Log } from '../../tools/log.js';
|
|
5
6
|
export declare class SwitchAccessory extends OnOffAccessory<SwitchConfig> {
|
|
6
|
-
constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: SwitchConfig, log: Log);
|
|
7
|
-
protected
|
|
7
|
+
constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: SwitchConfig, log: Log, isGrouped: boolean);
|
|
8
|
+
protected getAccessoryType(): AccessoryType;
|
|
8
9
|
}
|