Skip to content

Commit 2960f82

Browse files
committed
Pass protocol down to common
1 parent 3954534 commit 2960f82

3 files changed

Lines changed: 20 additions & 3 deletions

File tree

src/accessory/abstract/common.ts

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import {
55

66
import { strings } from '../../i18n/i18n.js';
77

8-
import { CharacteristicKey, TimeUnits } from '../../model/enums.js';
8+
import { CharacteristicKey, Protocol, TimeUnits } from '../../model/enums.js';
99
import { EveCharacteristic, isEveCharacteristic } from '../../model/eve.js';
1010
import { CharacteristicType, HapStatusErrorType, TemperatureConfig, TimeoutConfig } from '../../model/types.js';
1111

@@ -34,6 +34,7 @@ export abstract class Common<C extends Assertable> {
3434

3535
constructor(
3636
public readonly displayName: string,
37+
private readonly protocol: Protocol,
3738
) {}
3839

3940
public teardown() {
@@ -69,6 +70,21 @@ export abstract class Common<C extends Assertable> {
6970
return assertType(this.log, this.displayName, expectedType, this.config, ...keys);
7071
}
7172

73+
protected ifHomeKit(perform: () => (void)) {
74+
if (this.protocol === Protocol.HomeKit) {
75+
perform();
76+
}
77+
}
78+
79+
protected bifurcate(homekit?: () => (void), matter?: () => (void)) {
80+
switch (this.protocol) {
81+
case Protocol.HomeKit:
82+
return homekit?.();
83+
case Protocol.Matter:
84+
return matter?.();
85+
}
86+
}
87+
7288
protected getRawValue(property: keyof C, assert: boolean = true): string | undefined {
7389

7490
if (!property.toString().startsWith('value')) {

src/accessory/abstract/mqtt.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ export abstract class MQTTAccessory<C extends MQTTAccessoryConfig> extends Commo
2222
constructor(
2323
protected readonly dependency: MQTTAccessoryDependency<C>,
2424
) {
25-
super(dependency.config.info.name);
25+
super(dependency.config.info.name, dependency.protocol);
2626

2727
this.mqttClient = MQTT.connect(dependency.log, dependency.config.mqtt, this.identifier, this.displayName, (client: MQTT) => {
2828
this.topicHandlers.forEach( topicHandler => {

src/accessory/addons/addon.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { PrimitiveTypes, Service } from 'homebridge';
33
import { Common } from '../abstract/common.js';
44
import { MQTTAccessory } from '../abstract/mqtt.js';
55

6+
import { Protocol } from '../../model/enums.js';
67
import { HomeKitAddonType } from '../../model/homekit.js';
78
import { AddonConfig, CharacteristicType, HapStatusErrorType, MQTTAccessoryConfig } from '../../model/types.js';
89

@@ -50,7 +51,7 @@ export abstract class Addon<C extends AddonConfig> extends Common<C> {
5051
private readonly addonService: Service,
5152
private readonly addonConfig: C,
5253
) {
53-
super(parentAccessory.displayName);
54+
super(parentAccessory.displayName, Protocol.HomeKit);
5455
}
5556

5657
protected get service(): Service {

0 commit comments

Comments
 (0)