diff --git a/plugins/homekit/package-lock.json b/plugins/homekit/package-lock.json index 3e7898e4c..4067c6c13 100644 --- a/plugins/homekit/package-lock.json +++ b/plugins/homekit/package-lock.json @@ -1,12 +1,12 @@ { "name": "@scrypted/homekit", - "version": "1.2.5", + "version": "1.2.6", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@scrypted/homekit", - "version": "1.2.5", + "version": "1.2.6", "dependencies": { "@koush/werift-src": "file:../../external/werift", "check-disk-space": "^3.3.0", diff --git a/plugins/homekit/package.json b/plugins/homekit/package.json index 9f17b4a2a..2cb674f0e 100644 --- a/plugins/homekit/package.json +++ b/plugins/homekit/package.json @@ -1,6 +1,6 @@ { "name": "@scrypted/homekit", - "version": "1.2.5", + "version": "1.2.6", "description": "HomeKit Plugin for Scrypted", "scripts": { "scrypted-setup-project": "scrypted-setup-project", diff --git a/plugins/homekit/src/main.ts b/plugins/homekit/src/main.ts index 58cf724d6..615ee9301 100644 --- a/plugins/homekit/src/main.ts +++ b/plugins/homekit/src/main.ts @@ -1,19 +1,18 @@ -import { StorageSettings } from "@scrypted/sdk/storage-settings"; import { SettingsMixinDeviceOptions } from '@scrypted/common/src/settings-mixin'; import sdk, { DeviceProvider, MixinProvider, Online, ScryptedDeviceBase, ScryptedDeviceType, ScryptedInterface, ScryptedInterfaceProperty, Setting, Settings } from '@scrypted/sdk'; -import crypto from 'crypto'; +import { StorageSettings } from "@scrypted/sdk/storage-settings"; import packageJson from "../package.json"; +import { getAddressOverride } from "./address-override"; import { maybeAddBatteryService } from './battery'; import { CameraMixin, canCameraMixin } from './camera-mixin'; import { SnapshotThrottle, supportedTypes } from './common'; import { Accessory, Bridge, Categories, Characteristic, ControllerStorage, MDNSAdvertiser, PublishInfo, Service } from './hap'; -import { createHAPUsernameStorageSettingsDict, getAddresses, getHAPUUID, getRandomPort as createRandomPort, initializeHapStorage, logConnections, typeToCategory } from './hap-utils'; +import { createHAPUsernameStorageSettingsDict, getHAPUUID, getRandomPort as createRandomPort, initializeHapStorage, logConnections, typeToCategory } from './hap-utils'; import { HomekitMixin, HOMEKIT_MIXIN } from './homekit-mixin'; import { randomPinCode } from './pincode'; import './types'; import { VIDEO_CLIPS_NATIVE_ID } from './types/camera/camera-recording-files'; import { VideoClipsMixinProvider } from './video-clips-provider'; -import { getAddressOverride } from "./address-override"; const { systemManager, deviceManager } = sdk; @@ -41,8 +40,8 @@ export class HomeKitPlugin extends ScryptedDeviceBase implements MixinProvider, group: 'Network', title: 'mDNS Advertiser', description: 'Optional: Override the mDNS advertiser used to locate the Scrypted bridge', - choices: [MDNSAdvertiser.CIAO, MDNSAdvertiser.BONJOUR, MDNSAdvertiser.AVAHI], - defaultValue: MDNSAdvertiser.CIAO, + choices: ['Default', MDNSAdvertiser.CIAO, MDNSAdvertiser.BONJOUR, MDNSAdvertiser.AVAHI], + defaultValue: 'Default', }, advertiserAddresses: { group: 'Network', @@ -121,6 +120,20 @@ export class HomeKitPlugin extends ScryptedDeviceBase implements MixinProvider, } } + getAdvertiser() { + let advertiser: MDNSAdvertiser = this.storageSettings.values.advertiserOverride; + switch (advertiser) { + case MDNSAdvertiser.BONJOUR: + case MDNSAdvertiser.AVAHI: + case MDNSAdvertiser.CIAO: + break; + default: + advertiser = MDNSAdvertiser.CIAO; + break; + } + return advertiser; + } + async start() { this.log.clearAlerts(); @@ -290,7 +303,7 @@ export class HomeKitPlugin extends ScryptedDeviceBase implements MixinProvider, pincode: this.storageSettings.values.pincode, category: Categories.BRIDGE, addIdentifyingMaterial: true, - advertiser: this.storageSettings.values.advertiserOverride, + advertiser: this.getAdvertiser(), bind, }; @@ -361,7 +374,7 @@ export class HomeKitPlugin extends ScryptedDeviceBase implements MixinProvider, pincode, category, addIdentifyingMaterial: false, - advertiser: this.storageSettings.values.advertiserOverride, + advertiser: this.getAdvertiser(), bind, }); }