homebridge

  • Version 2.2.1
  • Published
  • 1.47 MB
  • 8 dependencies
  • Apache-2.0 license

Install

npm i homebridge
yarn add homebridge
pnpm add homebridge

Overview

HomeKit support for the impatient

Index

Variables

Classes

Interfaces

Enums

Type Aliases

Namespaces

Variables

variable clusterNames

const clusterNames: {
readonly OnOff: 'onOff';
readonly LevelControl: 'levelControl';
readonly ColorControl: 'colorControl';
readonly DoorLock: 'doorLock';
readonly WindowCovering: 'windowCovering';
readonly Thermostat: 'thermostat';
readonly FanControl: 'fanControl';
readonly AirQuality: 'airQuality';
readonly CarbonMonoxideConcentrationMeasurement: 'carbonMonoxideConcentrationMeasurement';
readonly NitrogenDioxideConcentrationMeasurement: 'nitrogenDioxideConcentrationMeasurement';
readonly OzoneConcentrationMeasurement: 'ozoneConcentrationMeasurement';
readonly Pm10ConcentrationMeasurement: 'pm10ConcentrationMeasurement';
readonly Pm25ConcentrationMeasurement: 'pm25ConcentrationMeasurement';
readonly TemperatureMeasurement: 'temperatureMeasurement';
readonly RelativeHumidityMeasurement: 'relativeHumidityMeasurement';
readonly IlluminanceMeasurement: 'illuminanceMeasurement';
readonly OccupancySensing: 'occupancySensing';
readonly BooleanState: 'booleanState';
readonly SmokeCoAlarm: 'smokeCoAlarm';
readonly RvcRunMode: 'rvcRunMode';
readonly RvcOperationalState: 'rvcOperationalState';
readonly RvcCleanMode: 'rvcCleanMode';
readonly ServiceArea: 'serviceArea';
readonly PowerSource: 'powerSource';
readonly PumpConfigurationAndControl: 'pumpConfigurationAndControl';
readonly ValveConfigurationAndControl: 'valveConfigurationAndControl';
readonly Identify: 'identify';
readonly Switch: 'switch';
readonly ElectricalPowerMeasurement: 'electricalPowerMeasurement';
readonly ElectricalEnergyMeasurement: 'electricalEnergyMeasurement';
readonly BasicInformation: 'basicInformation';
readonly BridgedDeviceBasicInformation: 'bridgedDeviceBasicInformation';
};
  • Matter Cluster Names Commonly used cluster names for type safety and autocomplete Use these with api.updateMatterAccessoryState() and api.getAccessoryState()

    Example 1

    With autocomplete and type safety:
    api.updateMatterAccessoryState(uuid, api.matterClusterNames.OnOff, { onOff: true })
    api.getAccessoryState(uuid, api.matterClusterNames.LevelControl)

variable clusters

const clusters: {
AirQuality: any;
BooleanState: any;
CarbonMonoxideConcentrationMeasurement: any;
ColorControl: any;
DoorLock: any;
ElectricalEnergyMeasurement: any;
ElectricalPowerMeasurement: any;
FanControl: any;
LevelControl: any;
NitrogenDioxideConcentrationMeasurement: any;
OnOff: any;
OzoneConcentrationMeasurement: any;
Pm10ConcentrationMeasurement: any;
Pm25ConcentrationMeasurement: any;
PowerTopology: any;
RvcOperationalState: any;
Thermostat: any;
ValveConfigurationAndControl: any;
WindowCovering: any;
};
  • Matter cluster types

    All supported Matter cluster types, imported from individual files for optimal performance.

variable devices

const devices: {
AirQualitySensorDevice: AirQualitySensorDevice;
ColorTemperatureLightDevice: ColorTemperatureLightDevice;
ContactSensorDevice: ContactSensorDevice;
DimmableLightDevice: DimmableLightDevice;
DimmablePlugInUnitDevice: DimmablePlugInUnitDevice;
DoorLockDevice: DoorLockDevice;
ElectricalSensorEndpoint: ElectricalSensorEndpoint;
ElectricalSensorRequirements: any;
ExtendedColorLightDevice: ExtendedColorLightDevice;
FanDevice: FanDevice;
GenericSwitchDevice: GenericSwitchDevice;
GenericSwitchRequirements: any;
HumiditySensorDevice: HumiditySensorDevice;
LightSensorDevice: LightSensorDevice;
OccupancySensorDevice: OccupancySensorDevice;
OccupancySensorRequirements: any;
OnOffLightDevice: OnOffLightDevice;
OnOffLightSwitchDevice: OnOffLightSwitchDevice;
OnOffPlugInUnitDevice: OnOffPlugInUnitDevice;
PumpDevice: PumpDevice;
PumpRequirements: any;
RoboticVacuumCleanerDevice: RoboticVacuumCleanerDevice;
RoboticVacuumCleanerRequirements: any;
RoomAirConditionerDevice: RoomAirConditionerDevice;
RoomAirConditionerRequirements: any;
SmokeCoAlarmDevice: SmokeCoAlarmDevice;
SmokeCoAlarmRequirements: any;
TemperatureSensorDevice: TemperatureSensorDevice;
ThermostatDevice: ThermostatDevice;
ThermostatRequirements: any;
WaterLeakDetectorDevice: WaterLeakDetectorDevice;
WaterValveDevice: WaterValveDevice;
WaterValveRequirements: any;
WindowCoveringDevice: WindowCoveringDevice;
};
  • Matter device types

    All supported Matter device types, imported from individual files for optimal performance.

variable deviceTypes

const deviceTypes: {
readonly OnOffLight: OnOffLightDevice;
readonly DimmableLight: DimmableLightDevice;
readonly ColorTemperatureLight: ColorTemperatureLightDevice;
readonly ExtendedColorLight: ExtendedColorLightDevice;
readonly OnOffSwitch: OnOffLightSwitchDevice;
readonly OnOffOutlet: OnOffPlugInUnitDevice;
readonly DimmableOutlet: DimmablePlugInUnitDevice;
readonly AirQualitySensor: AirQualitySensorDevice;
readonly TemperatureSensor: TemperatureSensorDevice;
readonly HumiditySensor: HumiditySensorDevice;
readonly LightSensor: LightSensorDevice;
readonly MotionSensor: any;
readonly ContactSensor: ContactSensorDevice;
readonly LeakSensor: WaterLeakDetectorDevice;
readonly SmokeSensor: SmokeCoAlarmDevice;
readonly ElectricalSensor: ElectricalSensorEndpoint;
readonly Thermostat: any;
readonly Fan: FanDevice;
readonly DoorLock: DoorLockDevice;
readonly WindowCovering: WindowCoveringDevice;
readonly RoboticVacuumCleaner: RoboticVacuumCleanerDevice;
readonly WaterValve: any;
readonly GenericSwitch: any;
readonly Pump: any;
readonly RoomAirConditioner: any;
readonly BridgedNode: BridgedNodeEndpoint;
};
  • Friendly device type names for the Plugin API Maps simplified names to actual Matter.js device types

variable MatterStatus

const MatterStatus: {
MatterProtocolError: typeof MatterProtocolError;
Busy: typeof Busy;
Timeout: typeof Timeout;
ConstraintError: typeof ConstraintError;
InvalidAction: typeof InvalidAction;
InvalidInState: typeof InvalidInState;
Failure: typeof Failure;
ResourceExhausted: typeof ResourceExhausted;
PermissionDenied: typeof PermissionDenied;
NotFound: typeof NotFound;
isMatterProtocolError: typeof isMatterProtocolError;
};
  • Matter protocol status codes and error classes

    Use these error classes to signal specific error conditions to Matter controllers. Each error class corresponds to a Matter protocol status code.

Classes

class Logger

class Logger {}
  • Logger class

constructor

constructor(prefix?: string);

    property internal

    static readonly internal: Logger;

      property prefix

      readonly prefix?: string;

        method debug

        debug: (message: string, ...parameters: any[]) => void;

          method error

          error: (message: string, ...parameters: any[]) => void;

            method forceColor

            static forceColor: () => void;
            • Forces color in logging output, even if it seems like color is unsupported.

            method info

            info: (message: string, ...parameters: any[]) => void;

              method isTimestampEnabled

              static isTimestampEnabled: () => boolean;
              • Check if timestamps are enabled in log messages.

                Returns

                {boolean} true if timestamps are enabled

              method log

              log: (level: LogLevel, message: string, ...parameters: any[]) => void;

                method setDebugEnabled

                static setDebugEnabled: (enabled?: boolean) => void;
                • Turns on debug level logging. Off by default.

                  Parameter enabled

                method setTimestampEnabled

                static setTimestampEnabled: (enabled?: boolean) => void;
                • Turns on inclusion of timestamps in log messages. On by default.

                  Parameter enabled

                method success

                success: (message: string, ...parameters: any[]) => void;

                  method warn

                  warn: (message: string, ...parameters: any[]) => void;

                    method withPrefix

                    static withPrefix: (prefix: string) => Logging;
                    • Creates a new Logging device with a specified prefix.

                      Parameter prefix

                      the prefix of the logger

                    class MatterCommissioningError

                    class MatterCommissioningError extends MatterError {}

                      constructor

                      constructor(message: string, details?: MatterErrorDetails);

                        class MatterDeviceError

                        class MatterDeviceError extends MatterError {}

                          constructor

                          constructor(message: string, details?: MatterErrorDetails);

                            class MatterError

                            class MatterError extends Error {}
                            • Base internal Matter error — categorises a failure for the MatterErrorHandler and adds a timestamp / recoverable flag on top of Node's plain Error.

                            constructor

                            constructor(message: string, code: string, details?: MatterErrorDetails);

                              property code

                              readonly code: string;

                                property details

                                readonly details?: MatterErrorDetails;

                                  property recoverable

                                  readonly recoverable: boolean;

                                    property timestamp

                                    readonly timestamp: Date;

                                      property type

                                      readonly type: MatterErrorType;

                                        class MatterNetworkError

                                        class MatterNetworkError extends MatterError {}

                                          constructor

                                          constructor(message: string, details?: MatterErrorDetails);

                                            class MatterStorageError

                                            class MatterStorageError extends MatterError {}

                                              constructor

                                              constructor(message: string, details?: MatterErrorDetails);

                                                class PlatformAccessory

                                                class PlatformAccessory<
                                                T extends UnknownContext = UnknownContext
                                                > extends EventEmitter {}

                                                  constructor

                                                  constructor(displayName: string, uuid: string, category?: Categories);

                                                    property category

                                                    category: Categories;

                                                      property context

                                                      context: UnknownContext;
                                                      • This is a way for Plugin developers to store custom data with their accessory

                                                      property displayName

                                                      displayName: string;

                                                        property services

                                                        services: Service[];

                                                          property UUID

                                                          UUID: string;

                                                            method addService

                                                            addService: {
                                                            (service: Service): Service;
                                                            <S extends any>(
                                                            serviceConstructor: S,
                                                            ...constructorArgs: ConstructorArgs<S>
                                                            ): Service;
                                                            };

                                                              method configureController

                                                              configureController: (controller: Controller | ControllerConstructor) => void;

                                                              method deserialize

                                                              static deserialize: (json: SerializedPlatformAccessory) => PlatformAccessory;

                                                                method getService

                                                                getService: <T extends WithUUID<any>>(name: string | T) => Service | undefined;

                                                                  method getServiceById

                                                                  getServiceById: <T extends WithUUID<any>>(
                                                                  uuid: string | T,
                                                                  subType: string
                                                                  ) => Service | undefined;

                                                                    method removeController

                                                                    removeController: (controller: Controller) => void;

                                                                    method removeService

                                                                    removeService: (service: Service) => void;

                                                                      method serialize

                                                                      static serialize: (accessory: PlatformAccessory) => SerializedPlatformAccessory;

                                                                        method updateDisplayName

                                                                        updateDisplayName: (name: string) => void;

                                                                          class User

                                                                          class User {}
                                                                          • Manages user settings and storage locations.

                                                                          method cachedAccessoryPath

                                                                          static cachedAccessoryPath: () => string;

                                                                            method configPath

                                                                            static configPath: () => string;

                                                                              method matterPath

                                                                              static matterPath: () => string;

                                                                                method persistPath

                                                                                static persistPath: () => string;

                                                                                  method setStoragePath

                                                                                  static setStoragePath: (...storagePathSegments: string[]) => void;

                                                                                    method storagePath

                                                                                    static storagePath: () => string;

                                                                                      Interfaces

                                                                                      interface AccessoryConfig

                                                                                      interface AccessoryConfig extends Record<string, any> {}

                                                                                        property accessory

                                                                                        accessory: AccessoryName | AccessoryIdentifier;

                                                                                          property name

                                                                                          name: string;

                                                                                            property uuid_base

                                                                                            uuid_base?: string;

                                                                                              interface AccessoryPlugin

                                                                                              interface AccessoryPlugin {}

                                                                                                property getControllers

                                                                                                getControllers?: () => Controller[];
                                                                                                • This method will be called once on startup, to query all controllers to be exposed by the Accessory. It is optional to implement.

                                                                                                  This includes controllers like the RemoteController or the CameraController. Any necessary controller specific setup should have been done when returning the array. In most cases the plugin will only return an array of the size 1.

                                                                                                  In the case that the Plugin does not add any additional services (returned by getServices) the method getServices must be defined in any way and should just return an empty array.

                                                                                                  Returns

                                                                                                  {Controller[]} controllers - returned controllers will be configured for the Accessory

                                                                                                property getServices

                                                                                                getServices: () => Service[];
                                                                                                • This method will be called once on startup, to query all services to be exposed by the Accessory. All event handlers for characteristics should be set up before the array is returned.

                                                                                                  Returns

                                                                                                  {Service[]} services - returned services will be added to the Accessory

                                                                                                property identify

                                                                                                identify?: () => void;
                                                                                                • Optional method which will be called if an 'identify' of an Accessory is requested by HomeKit.

                                                                                                interface AccessoryPluginConstructor

                                                                                                interface AccessoryPluginConstructor {}

                                                                                                  construct signature

                                                                                                  new (logger: Logging, config: AccessoryConfig, api: API): AccessoryPlugin;

                                                                                                    interface API

                                                                                                    interface API {}

                                                                                                      property hap

                                                                                                      readonly hap: HAP;

                                                                                                        property hapLegacyTypes

                                                                                                        readonly hapLegacyTypes: HAPLegacyTypes;

                                                                                                          property isMatterAvailable

                                                                                                          isMatterAvailable: () => boolean;
                                                                                                          • Check if Matter is available in this version of Homebridge

                                                                                                            Returns

                                                                                                            true if Homebridge version is >= 2.0.0-alpha.0

                                                                                                          property isMatterEnabled

                                                                                                          isMatterEnabled: () => boolean;
                                                                                                          • Check if Matter is enabled for this bridge For main bridge: returns true if Matter is enabled in bridge.matter config For child bridge: returns true if Matter is enabled in the _bridge.matter config

                                                                                                            Returns

                                                                                                            true if Matter is enabled

                                                                                                          property matter

                                                                                                          readonly matter?: MatterAPI;
                                                                                                          • Matter Protocol API.

                                                                                                            Remarks

                                                                                                            Defined when Matter is configured for this bridge (i.e. when api.isMatterEnabled() returns true), undefined otherwise. Loaded automatically before plugins run on Matter-enabled bridges, so plugins can access it from their initializer, platform/accessory constructor, or didFinishLaunching handler.

                                                                                                            Safe access patterns:

                                                                                                            api.matter?.registerPlatformAccessories(...) // defensive, no-ops when disabled
                                                                                                            if (api.isMatterEnabled()) {
                                                                                                            api.matter!.registerPlatformAccessories(...) // explicit guard
                                                                                                            }

                                                                                                            Example 1

                                                                                                            // Register a Matter accessory
                                                                                                            api.matter?.registerPlatformAccessories('homebridge-example', 'Example', [{
                                                                                                            UUID: api.hap.uuid.generate('my-light'),
                                                                                                            displayName: 'Living Room Light',
                                                                                                            deviceType: api.matter!.deviceTypes.OnOffLight,
                                                                                                            manufacturer: 'Example',
                                                                                                            model: 'Example Light',
                                                                                                            serialNumber: 'EX-001',
                                                                                                            clusters: { onOff: { onOff: false } },
                                                                                                            }])
                                                                                                            // Update state
                                                                                                            await api.matter?.updateAccessoryState(uuid, 'onOff', { onOff: true })

                                                                                                          property on

                                                                                                          on: ((event: 'didFinishLaunching', listener: () => void) => this) &
                                                                                                          ((event: 'shutdown', listener: () => void) => this);

                                                                                                            property platformAccessory

                                                                                                            readonly platformAccessory: typeof PlatformAccessory;

                                                                                                              property publishExternalAccessories

                                                                                                              publishExternalAccessories: (
                                                                                                              pluginIdentifier: PluginIdentifier,
                                                                                                              accessories: PlatformAccessory[]
                                                                                                              ) => void;

                                                                                                                property registerAccessory

                                                                                                                registerAccessory: ((
                                                                                                                accessoryName: AccessoryName,
                                                                                                                constructor: AccessoryPluginConstructor
                                                                                                                ) => void) &
                                                                                                                ((
                                                                                                                pluginIdentifier: PluginIdentifier,
                                                                                                                accessoryName: AccessoryName,
                                                                                                                constructor: AccessoryPluginConstructor
                                                                                                                ) => void);

                                                                                                                  property registerPlatform

                                                                                                                  registerPlatform: (<Config extends PlatformConfig>(
                                                                                                                  platformName: PlatformName,
                                                                                                                  constructor: PlatformPluginConstructor<Config>
                                                                                                                  ) => void) &
                                                                                                                  (<Config extends PlatformConfig>(
                                                                                                                  pluginIdentifier: PluginIdentifier,
                                                                                                                  platformName: PlatformName,
                                                                                                                  constructor: PlatformPluginConstructor<Config>
                                                                                                                  ) => void);

                                                                                                                    property registerPlatformAccessories

                                                                                                                    registerPlatformAccessories: (
                                                                                                                    pluginIdentifier: PluginIdentifier,
                                                                                                                    platformName: PlatformName,
                                                                                                                    accessories: PlatformAccessory[]
                                                                                                                    ) => void;

                                                                                                                      property serverVersion

                                                                                                                      readonly serverVersion: string;
                                                                                                                      • The current homebridge semver version.

                                                                                                                      property unregisterPlatformAccessories

                                                                                                                      unregisterPlatformAccessories: (
                                                                                                                      pluginIdentifier: PluginIdentifier,
                                                                                                                      platformName: PlatformName,
                                                                                                                      accessories: PlatformAccessory[]
                                                                                                                      ) => void;

                                                                                                                        property updatePlatformAccessories

                                                                                                                        updatePlatformAccessories: (accessories: PlatformAccessory[]) => void;

                                                                                                                          property user

                                                                                                                          readonly user: typeof User;

                                                                                                                            property version

                                                                                                                            readonly version: number;
                                                                                                                            • The homebridge API version as a floating point number.

                                                                                                                            property versionGreaterOrEqual

                                                                                                                            versionGreaterOrEqual: (version: string) => boolean;
                                                                                                                            • Returns true if the current running homebridge version is greater or equal to the passed version string.

                                                                                                                              Example:

                                                                                                                              We assume the homebridge version 1.3.0-beta.12 (serverVersion) and the following example calls below

                                                                                                                              versionGreaterOrEqual("1.2.0"); // will return true
                                                                                                                              versionGreaterOrEqual("1.3.0"); // will return false (the RELEASE version 1.3.0 is bigger than the BETA version 1.3.0-beta.12)
                                                                                                                              versionGreaterOrEqual("1.3.0-beta.8); // will return true

                                                                                                                              Parameter version

                                                                                                                            interface BridgeConfiguration

                                                                                                                            interface BridgeConfiguration {}

                                                                                                                              property advertiser

                                                                                                                              advertiser?: MDNSAdvertiser;

                                                                                                                                property bind

                                                                                                                                bind?: (InterfaceName | IPAddress) | (InterfaceName | IPAddress)[];

                                                                                                                                  property debugModeEnabled

                                                                                                                                  debugModeEnabled?: boolean;

                                                                                                                                    property disableIpc

                                                                                                                                    disableIpc?: boolean;

                                                                                                                                      property env

                                                                                                                                      env?: {
                                                                                                                                      DEBUG?: string;
                                                                                                                                      NODE_OPTIONS?: string;
                                                                                                                                      };

                                                                                                                                        property firmwareRevision

                                                                                                                                        firmwareRevision?: string;

                                                                                                                                          property hap

                                                                                                                                          hap?: BridgeHapConfig | boolean;
                                                                                                                                          • HAP publishing config. Defaults to enabled when omitted.

                                                                                                                                            The object form (BridgeHapConfig) is preferred. The bare boolean form (hap: false / hap: true) is the deprecated v2-beta shorthand, still accepted for back-compat and normalized to { enabled: <boolean> } by validateHapConfig. The type allows it so existing configs keep compiling.

                                                                                                                                            Deprecated

                                                                                                                                            Pass hap as a boolean is deprecated; use { enabled } instead.

                                                                                                                                          property manufacturer

                                                                                                                                          manufacturer?: string;

                                                                                                                                            property matter

                                                                                                                                            matter?: MatterConfig;

                                                                                                                                              property model

                                                                                                                                              model?: string;

                                                                                                                                                property name

                                                                                                                                                name: string;

                                                                                                                                                  property pin

                                                                                                                                                  pin: string;

                                                                                                                                                    property port

                                                                                                                                                    port?: number;

                                                                                                                                                      property serialNumber

                                                                                                                                                      serialNumber?: string;

                                                                                                                                                        property setupID

                                                                                                                                                        setupID?: string;
                                                                                                                                                        • 4-character HomeKit setup ID (alphanumeric, e.g. "ABCD"). Validated at runtime.

                                                                                                                                                        property username

                                                                                                                                                        username: MacAddress;

                                                                                                                                                          interface ClusterHandlerMap

                                                                                                                                                          interface ClusterHandlerMap {}
                                                                                                                                                          • Maps known cluster names to their typed handler interfaces.

                                                                                                                                                            Plugin developers get autocomplete for handler methods within each cluster. Handler argument types are derived from matter.js where possible, so they auto-update when the matter.js dependency is bumped.

                                                                                                                                                            Example 1

                                                                                                                                                            const accessory: MatterAccessory = {
                                                                                                                                                            // ...
                                                                                                                                                            handlers: {
                                                                                                                                                            onOff: {
                                                                                                                                                            on: async () => { await device.turnOn() },
                                                                                                                                                            off: async () => { await device.turnOff() },
                                                                                                                                                            },
                                                                                                                                                            levelControl: {
                                                                                                                                                            moveToLevel: async (args) => {
                                                                                                                                                            // args is typed as LevelControl.MoveToLevelRequest
                                                                                                                                                            await device.setBrightness(args?.level ?? 0)
                                                                                                                                                            },
                                                                                                                                                            },
                                                                                                                                                            },
                                                                                                                                                            }

                                                                                                                                                          property colorControl

                                                                                                                                                          colorControl: ColorControlHandlers;

                                                                                                                                                            property doorLock

                                                                                                                                                            doorLock: DoorLockHandlers;

                                                                                                                                                              property fanControl

                                                                                                                                                              fanControl: FanControlHandlers;

                                                                                                                                                                property identify

                                                                                                                                                                identify: IdentifyHandlers;

                                                                                                                                                                  property levelControl

                                                                                                                                                                  levelControl: LevelControlHandlers;

                                                                                                                                                                    property onOff

                                                                                                                                                                    onOff: OnOffHandlers;

                                                                                                                                                                      property rvcCleanMode

                                                                                                                                                                      rvcCleanMode: RvcCleanModeHandlers;

                                                                                                                                                                        property rvcOperationalState

                                                                                                                                                                        rvcOperationalState: RvcOperationalStateHandlers;

                                                                                                                                                                          property rvcRunMode

                                                                                                                                                                          rvcRunMode: RvcRunModeHandlers;

                                                                                                                                                                            property serviceArea

                                                                                                                                                                            serviceArea: ServiceAreaHandlers;

                                                                                                                                                                              property thermostat

                                                                                                                                                                              thermostat: ThermostatHandlers;

                                                                                                                                                                                property valveConfigurationAndControl

                                                                                                                                                                                valveConfigurationAndControl: ValveConfigurationAndControlHandlers;

                                                                                                                                                                                  property windowCovering

                                                                                                                                                                                  windowCovering: WindowCoveringHandlers;

                                                                                                                                                                                    interface ClusterStateMap

                                                                                                                                                                                    interface ClusterStateMap {}
                                                                                                                                                                                    • Maps known cluster names to their typed state interfaces.

                                                                                                                                                                                      Plugin developers get autocomplete for known clusters while unknown clusters fall back to Record<string, unknown>.

                                                                                                                                                                                      Example 1

                                                                                                                                                                                      // With typed overload on api.matter:
                                                                                                                                                                                      await api.matter?.updateAccessoryState(uuid, 'onOff', { onOff: true })
                                                                                                                                                                                      // ^-- autocomplete!
                                                                                                                                                                                      const state = await api.matter?.getAccessoryState(uuid, 'levelControl')
                                                                                                                                                                                      // state is Partial<LevelControlState> | undefined

                                                                                                                                                                                    property airQuality

                                                                                                                                                                                    airQuality: {
                                                                                                                                                                                    airQuality: number;
                                                                                                                                                                                    };

                                                                                                                                                                                      property booleanState

                                                                                                                                                                                      booleanState: {
                                                                                                                                                                                      stateValue: boolean;
                                                                                                                                                                                      };

                                                                                                                                                                                        property carbonMonoxideConcentrationMeasurement

                                                                                                                                                                                        carbonMonoxideConcentrationMeasurement: {
                                                                                                                                                                                        measuredValue: number | null;
                                                                                                                                                                                        minMeasuredValue?: number | null;
                                                                                                                                                                                        maxMeasuredValue?: number | null;
                                                                                                                                                                                        measurementMedium: number;
                                                                                                                                                                                        measurementUnit?: number;
                                                                                                                                                                                        };

                                                                                                                                                                                          property colorControl

                                                                                                                                                                                          colorControl: ColorControlState;

                                                                                                                                                                                            property doorLock

                                                                                                                                                                                            doorLock: DoorLockState;

                                                                                                                                                                                              property electricalEnergyMeasurement

                                                                                                                                                                                              electricalEnergyMeasurement: ElectricalEnergyMeasurementState;

                                                                                                                                                                                                property electricalPowerMeasurement

                                                                                                                                                                                                electricalPowerMeasurement: ElectricalPowerMeasurementState;

                                                                                                                                                                                                  property fanControl

                                                                                                                                                                                                  fanControl: FanControlState;

                                                                                                                                                                                                    property identify

                                                                                                                                                                                                    identify: {
                                                                                                                                                                                                    identifyTime: number;
                                                                                                                                                                                                    identifyType: number;
                                                                                                                                                                                                    };

                                                                                                                                                                                                      property illuminanceMeasurement

                                                                                                                                                                                                      illuminanceMeasurement: {
                                                                                                                                                                                                      measuredValue: number | null;
                                                                                                                                                                                                      minMeasuredValue?: number | null;
                                                                                                                                                                                                      maxMeasuredValue?: number | null;
                                                                                                                                                                                                      };

                                                                                                                                                                                                        property levelControl

                                                                                                                                                                                                        levelControl: LevelControlState;

                                                                                                                                                                                                          property nitrogenDioxideConcentrationMeasurement

                                                                                                                                                                                                          nitrogenDioxideConcentrationMeasurement: {
                                                                                                                                                                                                          measuredValue: number | null;
                                                                                                                                                                                                          minMeasuredValue?: number | null;
                                                                                                                                                                                                          maxMeasuredValue?: number | null;
                                                                                                                                                                                                          measurementMedium: number;
                                                                                                                                                                                                          measurementUnit?: number;
                                                                                                                                                                                                          };

                                                                                                                                                                                                            property occupancySensing

                                                                                                                                                                                                            occupancySensing: {
                                                                                                                                                                                                            occupancy: {
                                                                                                                                                                                                            occupied: boolean;
                                                                                                                                                                                                            };
                                                                                                                                                                                                            occupancySensorType?: number;
                                                                                                                                                                                                            occupancySensorTypeBitmap?: {
                                                                                                                                                                                                            pir?: boolean;
                                                                                                                                                                                                            ultrasonic?: boolean;
                                                                                                                                                                                                            physicalContact?: boolean;
                                                                                                                                                                                                            };
                                                                                                                                                                                                            };

                                                                                                                                                                                                              property onOff

                                                                                                                                                                                                              onOff: OnOffState;

                                                                                                                                                                                                                property ozoneConcentrationMeasurement

                                                                                                                                                                                                                ozoneConcentrationMeasurement: {
                                                                                                                                                                                                                measuredValue: number | null;
                                                                                                                                                                                                                minMeasuredValue?: number | null;
                                                                                                                                                                                                                maxMeasuredValue?: number | null;
                                                                                                                                                                                                                measurementMedium: number;
                                                                                                                                                                                                                measurementUnit?: number;
                                                                                                                                                                                                                };

                                                                                                                                                                                                                  property pm10ConcentrationMeasurement

                                                                                                                                                                                                                  pm10ConcentrationMeasurement: {
                                                                                                                                                                                                                  measuredValue: number | null;
                                                                                                                                                                                                                  minMeasuredValue?: number | null;
                                                                                                                                                                                                                  maxMeasuredValue?: number | null;
                                                                                                                                                                                                                  measurementMedium: number;
                                                                                                                                                                                                                  measurementUnit?: number;
                                                                                                                                                                                                                  };

                                                                                                                                                                                                                    property pm25ConcentrationMeasurement

                                                                                                                                                                                                                    pm25ConcentrationMeasurement: {
                                                                                                                                                                                                                    measuredValue: number | null;
                                                                                                                                                                                                                    minMeasuredValue?: number | null;
                                                                                                                                                                                                                    maxMeasuredValue?: number | null;
                                                                                                                                                                                                                    measurementMedium: number;
                                                                                                                                                                                                                    measurementUnit?: number;
                                                                                                                                                                                                                    };

                                                                                                                                                                                                                      property powerSource

                                                                                                                                                                                                                      powerSource: PowerSourceState;

                                                                                                                                                                                                                        property relativeHumidityMeasurement

                                                                                                                                                                                                                        relativeHumidityMeasurement: {
                                                                                                                                                                                                                        measuredValue: number | null;
                                                                                                                                                                                                                        minMeasuredValue?: number | null;
                                                                                                                                                                                                                        maxMeasuredValue?: number | null;
                                                                                                                                                                                                                        };

                                                                                                                                                                                                                          property rvcCleanMode

                                                                                                                                                                                                                          rvcCleanMode: RvcCleanModeState;

                                                                                                                                                                                                                            property rvcOperationalState

                                                                                                                                                                                                                            rvcOperationalState: RvcOperationalState;

                                                                                                                                                                                                                              property rvcRunMode

                                                                                                                                                                                                                              rvcRunMode: RvcRunModeState;

                                                                                                                                                                                                                                property serviceArea

                                                                                                                                                                                                                                serviceArea: ServiceAreaState;

                                                                                                                                                                                                                                  property switch

                                                                                                                                                                                                                                  switch: {
                                                                                                                                                                                                                                  currentPosition: number;
                                                                                                                                                                                                                                  numberOfPositions?: number;
                                                                                                                                                                                                                                  };

                                                                                                                                                                                                                                    property temperatureMeasurement

                                                                                                                                                                                                                                    temperatureMeasurement: {
                                                                                                                                                                                                                                    measuredValue: number | null;
                                                                                                                                                                                                                                    minMeasuredValue?: number | null;
                                                                                                                                                                                                                                    maxMeasuredValue?: number | null;
                                                                                                                                                                                                                                    };

                                                                                                                                                                                                                                      property thermostat

                                                                                                                                                                                                                                      thermostat: ThermostatState;

                                                                                                                                                                                                                                        property valveConfigurationAndControl

                                                                                                                                                                                                                                        valveConfigurationAndControl: ValveConfigurationAndControlState;

                                                                                                                                                                                                                                          property windowCovering

                                                                                                                                                                                                                                          windowCovering: WindowCoveringState;

                                                                                                                                                                                                                                            interface ColorControlHandlers

                                                                                                                                                                                                                                            interface ColorControlHandlers {}
                                                                                                                                                                                                                                            • ColorControl cluster handler methods

                                                                                                                                                                                                                                              Note: These use simplified argument types that the behavior passes through, not the raw matter.js request types. The behavior files transform the matter.js requests before calling plugin handlers.

                                                                                                                                                                                                                                            property moveToColorLogic

                                                                                                                                                                                                                                            moveToColorLogic?: MatterCommandHandler<{
                                                                                                                                                                                                                                            targetX: number;
                                                                                                                                                                                                                                            targetY: number;
                                                                                                                                                                                                                                            transitionTime: number;
                                                                                                                                                                                                                                            }>;

                                                                                                                                                                                                                                              property moveToColorTemperatureLogic

                                                                                                                                                                                                                                              moveToColorTemperatureLogic?: MatterCommandHandler<{
                                                                                                                                                                                                                                              colorTemperatureMireds: number;
                                                                                                                                                                                                                                              transitionTime: number;
                                                                                                                                                                                                                                              }>;

                                                                                                                                                                                                                                                property moveToHueAndSaturationLogic

                                                                                                                                                                                                                                                moveToHueAndSaturationLogic?: MatterCommandHandler<{
                                                                                                                                                                                                                                                hue: number;
                                                                                                                                                                                                                                                saturation: number;
                                                                                                                                                                                                                                                transitionTime: number;
                                                                                                                                                                                                                                                }>;

                                                                                                                                                                                                                                                  property moveToHueLogic

                                                                                                                                                                                                                                                  moveToHueLogic?: MatterCommandHandler<{
                                                                                                                                                                                                                                                  targetHue: number;
                                                                                                                                                                                                                                                  direction: ColorControl.Direction;
                                                                                                                                                                                                                                                  transitionTime: number;
                                                                                                                                                                                                                                                  isEnhancedHue: boolean;
                                                                                                                                                                                                                                                  }>;

                                                                                                                                                                                                                                                    property moveToSaturationLogic

                                                                                                                                                                                                                                                    moveToSaturationLogic?: MatterCommandHandler<{
                                                                                                                                                                                                                                                    targetSaturation: number;
                                                                                                                                                                                                                                                    transitionTime: number;
                                                                                                                                                                                                                                                    }>;

                                                                                                                                                                                                                                                      property stopAllColorMovement

                                                                                                                                                                                                                                                      stopAllColorMovement?: MatterCommandHandler;

                                                                                                                                                                                                                                                        interface ColorControlState

                                                                                                                                                                                                                                                        interface ColorControlState {}
                                                                                                                                                                                                                                                        • ColorControl cluster state Based on @matter/main/clusters ColorControl

                                                                                                                                                                                                                                                          Note: We use a flexible interface to accommodate both ColorMode and EnhancedColorMode from Matter.js, which are distinct types in the spec but functionally compatible

                                                                                                                                                                                                                                                        property colorMode

                                                                                                                                                                                                                                                        colorMode?: number;

                                                                                                                                                                                                                                                          property colorTemperatureMireds

                                                                                                                                                                                                                                                          colorTemperatureMireds?: number;

                                                                                                                                                                                                                                                            property colorTempPhysicalMaxMireds

                                                                                                                                                                                                                                                            colorTempPhysicalMaxMireds?: number;

                                                                                                                                                                                                                                                              property colorTempPhysicalMinMireds

                                                                                                                                                                                                                                                              colorTempPhysicalMinMireds?: number;

                                                                                                                                                                                                                                                                property colorX

                                                                                                                                                                                                                                                                colorX?: number;

                                                                                                                                                                                                                                                                  property colorY

                                                                                                                                                                                                                                                                  colorY?: number;

                                                                                                                                                                                                                                                                    property coupleColorTempToLevelMinMireds

                                                                                                                                                                                                                                                                    coupleColorTempToLevelMinMireds?: number;

                                                                                                                                                                                                                                                                      property currentHue

                                                                                                                                                                                                                                                                      currentHue?: number;

                                                                                                                                                                                                                                                                        property currentSaturation

                                                                                                                                                                                                                                                                        currentSaturation?: number;

                                                                                                                                                                                                                                                                          property currentX

                                                                                                                                                                                                                                                                          currentX?: number;

                                                                                                                                                                                                                                                                            property currentY

                                                                                                                                                                                                                                                                            currentY?: number;

                                                                                                                                                                                                                                                                              property enhancedColorMode

                                                                                                                                                                                                                                                                              enhancedColorMode?: number;

                                                                                                                                                                                                                                                                                property enhancedCurrentHue

                                                                                                                                                                                                                                                                                enhancedCurrentHue?: number;

                                                                                                                                                                                                                                                                                  property options

                                                                                                                                                                                                                                                                                  options?: number;

                                                                                                                                                                                                                                                                                    property transitionTime

                                                                                                                                                                                                                                                                                    transitionTime?: number;

                                                                                                                                                                                                                                                                                      interface DoorLockHandlers

                                                                                                                                                                                                                                                                                      interface DoorLockHandlers {}
                                                                                                                                                                                                                                                                                      • DoorLock cluster handler methods

                                                                                                                                                                                                                                                                                      property lockDoor

                                                                                                                                                                                                                                                                                      lockDoor?: MatterCommandHandler<DoorLock.LockDoorRequest>;

                                                                                                                                                                                                                                                                                        property unlockDoor

                                                                                                                                                                                                                                                                                        unlockDoor?: MatterCommandHandler<DoorLock.UnlockDoorRequest>;

                                                                                                                                                                                                                                                                                          interface DoorLockState

                                                                                                                                                                                                                                                                                          interface DoorLockState {}
                                                                                                                                                                                                                                                                                          • DoorLock cluster state

                                                                                                                                                                                                                                                                                          property actuatorEnabled

                                                                                                                                                                                                                                                                                          actuatorEnabled?: boolean;

                                                                                                                                                                                                                                                                                            property doorClosedEvents

                                                                                                                                                                                                                                                                                            doorClosedEvents?: number;

                                                                                                                                                                                                                                                                                              property doorOpenEvents

                                                                                                                                                                                                                                                                                              doorOpenEvents?: number;

                                                                                                                                                                                                                                                                                                property doorState

                                                                                                                                                                                                                                                                                                doorState?: number | null;

                                                                                                                                                                                                                                                                                                  property lockState

                                                                                                                                                                                                                                                                                                  lockState?: number | null;

                                                                                                                                                                                                                                                                                                    property lockType

                                                                                                                                                                                                                                                                                                    lockType?: number;

                                                                                                                                                                                                                                                                                                      property openPeriod

                                                                                                                                                                                                                                                                                                      openPeriod?: number;

                                                                                                                                                                                                                                                                                                        property operatingMode

                                                                                                                                                                                                                                                                                                        operatingMode?: number;

                                                                                                                                                                                                                                                                                                          interface DynamicPlatformPlugin

                                                                                                                                                                                                                                                                                                          interface DynamicPlatformPlugin extends PlatformPlugin {}

                                                                                                                                                                                                                                                                                                          property configureAccessory

                                                                                                                                                                                                                                                                                                          configureAccessory: (accessory: PlatformAccessory) => void;
                                                                                                                                                                                                                                                                                                          • This method is called for every PlatformAccessory, which is recreated from disk on startup. It should be used to properly initialize the Accessory and setup all event handlers for all services and their characteristics.

                                                                                                                                                                                                                                                                                                            Parameter accessory

                                                                                                                                                                                                                                                                                                            which needs to be configured

                                                                                                                                                                                                                                                                                                          property configureMatterAccessory

                                                                                                                                                                                                                                                                                                          configureMatterAccessory?: (accessory: MatterAccessory) => void;
                                                                                                                                                                                                                                                                                                          • This method is called for every Matter accessory, which is recreated from cache on startup. It should be used to track cached accessories so the plugin can determine which accessories to re-register and which to remove (if they no longer exist in the external system).

                                                                                                                                                                                                                                                                                                            This is the Matter equivalent of configureAccessory for HAP accessories.

                                                                                                                                                                                                                                                                                                            Parameter accessory

                                                                                                                                                                                                                                                                                                            cached Matter accessory

                                                                                                                                                                                                                                                                                                          interface ExternalPortsConfiguration

                                                                                                                                                                                                                                                                                                          interface ExternalPortsConfiguration {}

                                                                                                                                                                                                                                                                                                            property end

                                                                                                                                                                                                                                                                                                            end: number;

                                                                                                                                                                                                                                                                                                              property start

                                                                                                                                                                                                                                                                                                              start: number;

                                                                                                                                                                                                                                                                                                                interface FanControlHandlers

                                                                                                                                                                                                                                                                                                                interface FanControlHandlers {}
                                                                                                                                                                                                                                                                                                                • FanControl cluster handler methods

                                                                                                                                                                                                                                                                                                                property fanModeChange

                                                                                                                                                                                                                                                                                                                fanModeChange?: MatterCommandHandler<{
                                                                                                                                                                                                                                                                                                                fanMode: FanControl.FanMode;
                                                                                                                                                                                                                                                                                                                oldFanMode: FanControl.FanMode;
                                                                                                                                                                                                                                                                                                                }>;

                                                                                                                                                                                                                                                                                                                  property percentSettingChange

                                                                                                                                                                                                                                                                                                                  percentSettingChange?: MatterCommandHandler<{
                                                                                                                                                                                                                                                                                                                  percentSetting: number | null;
                                                                                                                                                                                                                                                                                                                  oldPercentSetting: number | null;
                                                                                                                                                                                                                                                                                                                  }>;

                                                                                                                                                                                                                                                                                                                    interface FanControlState

                                                                                                                                                                                                                                                                                                                    interface FanControlState {}
                                                                                                                                                                                                                                                                                                                    • FanControl cluster state

                                                                                                                                                                                                                                                                                                                    property fanMode

                                                                                                                                                                                                                                                                                                                    fanMode?: number;

                                                                                                                                                                                                                                                                                                                      property fanModeSequence

                                                                                                                                                                                                                                                                                                                      fanModeSequence?: number;

                                                                                                                                                                                                                                                                                                                        property percentCurrent

                                                                                                                                                                                                                                                                                                                        percentCurrent?: number;

                                                                                                                                                                                                                                                                                                                          property percentSetting

                                                                                                                                                                                                                                                                                                                          percentSetting?: number | null;

                                                                                                                                                                                                                                                                                                                            property rockSetting

                                                                                                                                                                                                                                                                                                                            rockSetting?: number;

                                                                                                                                                                                                                                                                                                                              property rockSupport

                                                                                                                                                                                                                                                                                                                              rockSupport?: number;

                                                                                                                                                                                                                                                                                                                                property speedCurrent

                                                                                                                                                                                                                                                                                                                                speedCurrent?: number;

                                                                                                                                                                                                                                                                                                                                  property speedMax

                                                                                                                                                                                                                                                                                                                                  speedMax?: number;

                                                                                                                                                                                                                                                                                                                                    property speedSetting

                                                                                                                                                                                                                                                                                                                                    speedSetting?: number | null;

                                                                                                                                                                                                                                                                                                                                      property windSetting

                                                                                                                                                                                                                                                                                                                                      windSetting?: number;

                                                                                                                                                                                                                                                                                                                                        property windSupport

                                                                                                                                                                                                                                                                                                                                        windSupport?: number;

                                                                                                                                                                                                                                                                                                                                          interface HomebridgeConfig

                                                                                                                                                                                                                                                                                                                                          interface HomebridgeConfig {}

                                                                                                                                                                                                                                                                                                                                            property accessories

                                                                                                                                                                                                                                                                                                                                            accessories: AccessoryConfig[];

                                                                                                                                                                                                                                                                                                                                              property bridge

                                                                                                                                                                                                                                                                                                                                              bridge: BridgeConfiguration;

                                                                                                                                                                                                                                                                                                                                                property disabledPlugins

                                                                                                                                                                                                                                                                                                                                                disabledPlugins?: PluginIdentifier[];
                                                                                                                                                                                                                                                                                                                                                • Array of disabled plugins. Unlike the plugins[] config which prevents plugins from being initialized at all, disabled plugins still have their alias loaded, so we can match config blocks of disabled plugins and show an appropriate message in the logs.

                                                                                                                                                                                                                                                                                                                                                property matterPorts

                                                                                                                                                                                                                                                                                                                                                matterPorts?: ExternalPortsConfiguration;

                                                                                                                                                                                                                                                                                                                                                  property mdns

                                                                                                                                                                                                                                                                                                                                                  mdns?: any;
                                                                                                                                                                                                                                                                                                                                                  • Deprecated

                                                                                                                                                                                                                                                                                                                                                  property platforms

                                                                                                                                                                                                                                                                                                                                                  platforms: PlatformConfig[];

                                                                                                                                                                                                                                                                                                                                                    property plugins

                                                                                                                                                                                                                                                                                                                                                    plugins?: PluginIdentifier[];

                                                                                                                                                                                                                                                                                                                                                      property ports

                                                                                                                                                                                                                                                                                                                                                      ports?: ExternalPortsConfiguration;

                                                                                                                                                                                                                                                                                                                                                        interface HomebridgeOptions

                                                                                                                                                                                                                                                                                                                                                        interface HomebridgeOptions {}

                                                                                                                                                                                                                                                                                                                                                          property customPluginPath

                                                                                                                                                                                                                                                                                                                                                          customPluginPath?: string;

                                                                                                                                                                                                                                                                                                                                                            property customStoragePath

                                                                                                                                                                                                                                                                                                                                                            customStoragePath?: string;

                                                                                                                                                                                                                                                                                                                                                              property debugModeEnabled

                                                                                                                                                                                                                                                                                                                                                              debugModeEnabled?: boolean;

                                                                                                                                                                                                                                                                                                                                                                property forceColourLogging

                                                                                                                                                                                                                                                                                                                                                                forceColourLogging?: boolean;

                                                                                                                                                                                                                                                                                                                                                                  property hideQRCode

                                                                                                                                                                                                                                                                                                                                                                  hideQRCode?: boolean;

                                                                                                                                                                                                                                                                                                                                                                    property insecureAccess

                                                                                                                                                                                                                                                                                                                                                                    insecureAccess?: boolean;

                                                                                                                                                                                                                                                                                                                                                                      property keepOrphanedCachedAccessories

                                                                                                                                                                                                                                                                                                                                                                      keepOrphanedCachedAccessories?: boolean;

                                                                                                                                                                                                                                                                                                                                                                        property noLogTimestamps

                                                                                                                                                                                                                                                                                                                                                                        noLogTimestamps?: boolean;

                                                                                                                                                                                                                                                                                                                                                                          property strictPluginResolution

                                                                                                                                                                                                                                                                                                                                                                          strictPluginResolution?: boolean;

                                                                                                                                                                                                                                                                                                                                                                            interface IdentifyHandlers

                                                                                                                                                                                                                                                                                                                                                                            interface IdentifyHandlers {}
                                                                                                                                                                                                                                                                                                                                                                            • Identify cluster handler methods

                                                                                                                                                                                                                                                                                                                                                                            property identify

                                                                                                                                                                                                                                                                                                                                                                            identify?: MatterCommandHandler<Identify.IdentifyRequest>;

                                                                                                                                                                                                                                                                                                                                                                              interface IndependentPlatformPlugin

                                                                                                                                                                                                                                                                                                                                                                              interface IndependentPlatformPlugin extends PlatformPlugin {}
                                                                                                                                                                                                                                                                                                                                                                              • Platform that does not aim to add any accessories to the main bridge accessory. This platform should be used if for example a plugin aims to only expose external accessories. It should also be used when the platform doesn't intend to expose any accessories at all, like plugins providing a UI for homebridge.

                                                                                                                                                                                                                                                                                                                                                                              interface LevelControlHandlers

                                                                                                                                                                                                                                                                                                                                                                              interface LevelControlHandlers {}
                                                                                                                                                                                                                                                                                                                                                                              • LevelControl cluster handler methods

                                                                                                                                                                                                                                                                                                                                                                              property move

                                                                                                                                                                                                                                                                                                                                                                              move?: MatterCommandHandler<LevelControl.MoveRequest>;

                                                                                                                                                                                                                                                                                                                                                                                property moveToLevel

                                                                                                                                                                                                                                                                                                                                                                                moveToLevel?: MatterCommandHandler<LevelControl.MoveToLevelRequest>;

                                                                                                                                                                                                                                                                                                                                                                                  property moveToLevelWithOnOff

                                                                                                                                                                                                                                                                                                                                                                                  moveToLevelWithOnOff?: MatterCommandHandler<LevelControl.MoveToLevelRequest>;

                                                                                                                                                                                                                                                                                                                                                                                    property step

                                                                                                                                                                                                                                                                                                                                                                                    step?: MatterCommandHandler<LevelControl.StepRequest>;

                                                                                                                                                                                                                                                                                                                                                                                      property stop

                                                                                                                                                                                                                                                                                                                                                                                      stop?: MatterCommandHandler<LevelControl.StopRequest>;

                                                                                                                                                                                                                                                                                                                                                                                        interface LevelControlState

                                                                                                                                                                                                                                                                                                                                                                                        interface LevelControlState {}
                                                                                                                                                                                                                                                                                                                                                                                        • LevelControl cluster state

                                                                                                                                                                                                                                                                                                                                                                                        property currentLevel

                                                                                                                                                                                                                                                                                                                                                                                        currentLevel?: number;

                                                                                                                                                                                                                                                                                                                                                                                          property maxLevel

                                                                                                                                                                                                                                                                                                                                                                                          maxLevel?: number;

                                                                                                                                                                                                                                                                                                                                                                                            property minLevel

                                                                                                                                                                                                                                                                                                                                                                                            minLevel?: number;

                                                                                                                                                                                                                                                                                                                                                                                              property onLevel

                                                                                                                                                                                                                                                                                                                                                                                              onLevel?: number | null;

                                                                                                                                                                                                                                                                                                                                                                                                property options

                                                                                                                                                                                                                                                                                                                                                                                                options?: number;

                                                                                                                                                                                                                                                                                                                                                                                                  property remainingTime

                                                                                                                                                                                                                                                                                                                                                                                                  remainingTime?: number;

                                                                                                                                                                                                                                                                                                                                                                                                    interface Logging

                                                                                                                                                                                                                                                                                                                                                                                                    interface Logging {}
                                                                                                                                                                                                                                                                                                                                                                                                    • Represents a logging device which can be used directly as a function (for INFO logging) but also has dedicated logging functions for respective logging levels.

                                                                                                                                                                                                                                                                                                                                                                                                    property debug

                                                                                                                                                                                                                                                                                                                                                                                                    debug: (message: string, ...parameters: any[]) => void;

                                                                                                                                                                                                                                                                                                                                                                                                      property error

                                                                                                                                                                                                                                                                                                                                                                                                      error: (message: string, ...parameters: any[]) => void;

                                                                                                                                                                                                                                                                                                                                                                                                        property info

                                                                                                                                                                                                                                                                                                                                                                                                        info: (message: string, ...parameters: any[]) => void;

                                                                                                                                                                                                                                                                                                                                                                                                          property log

                                                                                                                                                                                                                                                                                                                                                                                                          log: (level: LogLevel, message: string, ...parameters: any[]) => void;

                                                                                                                                                                                                                                                                                                                                                                                                            property prefix

                                                                                                                                                                                                                                                                                                                                                                                                            prefix: string;

                                                                                                                                                                                                                                                                                                                                                                                                              property success

                                                                                                                                                                                                                                                                                                                                                                                                              success: (message: string, ...parameters: any[]) => void;

                                                                                                                                                                                                                                                                                                                                                                                                                property warn

                                                                                                                                                                                                                                                                                                                                                                                                                warn: (message: string, ...parameters: any[]) => void;

                                                                                                                                                                                                                                                                                                                                                                                                                  call signature

                                                                                                                                                                                                                                                                                                                                                                                                                  (message: string, ...parameters: any[]): void;

                                                                                                                                                                                                                                                                                                                                                                                                                    interface MatterAccessoriesResponse

                                                                                                                                                                                                                                                                                                                                                                                                                    interface MatterAccessoriesResponse {}
                                                                                                                                                                                                                                                                                                                                                                                                                    • Matter accessories collection

                                                                                                                                                                                                                                                                                                                                                                                                                    property children

                                                                                                                                                                                                                                                                                                                                                                                                                    children: {
                                                                                                                                                                                                                                                                                                                                                                                                                    [bridgeId: string]: MatterAccessoryInfo[];
                                                                                                                                                                                                                                                                                                                                                                                                                    };
                                                                                                                                                                                                                                                                                                                                                                                                                    • Child bridge accessories indexed by bridge ID

                                                                                                                                                                                                                                                                                                                                                                                                                    interface MatterAccessory

                                                                                                                                                                                                                                                                                                                                                                                                                    interface MatterAccessory<T extends UnknownContext = UnknownContext> {}
                                                                                                                                                                                                                                                                                                                                                                                                                    • Matter Accessory - Plugin API Interface

                                                                                                                                                                                                                                                                                                                                                                                                                      This is the main interface that plugin developers use to register Matter accessories with Homebridge.

                                                                                                                                                                                                                                                                                                                                                                                                                      For composed devices (devices with multiple subcomponents), use the parts array to define child endpoints. Each part appears as a separate device in the Home app.

                                                                                                                                                                                                                                                                                                                                                                                                                    property clusters

                                                                                                                                                                                                                                                                                                                                                                                                                    clusters?: {
                                                                                                                                                                                                                                                                                                                                                                                                                    [K in keyof ClusterStateMap]?: Partial<ClusterStateMap[K]>;
                                                                                                                                                                                                                                                                                                                                                                                                                    } & {
                                                                                                                                                                                                                                                                                                                                                                                                                    [clusterName: string]: Record<string, unknown>;
                                                                                                                                                                                                                                                                                                                                                                                                                    };
                                                                                                                                                                                                                                                                                                                                                                                                                    • Initial cluster states Key is the cluster name, value is an object of attribute name -> value

                                                                                                                                                                                                                                                                                                                                                                                                                      Known clusters (onOff, levelControl, colorControl, etc.) provide full autocomplete. Unknown clusters are still supported with the fallback Record<string, unknown> type.

                                                                                                                                                                                                                                                                                                                                                                                                                      Example 1

                                                                                                                                                                                                                                                                                                                                                                                                                      clusters: {
                                                                                                                                                                                                                                                                                                                                                                                                                      onOff: { onOff: true },
                                                                                                                                                                                                                                                                                                                                                                                                                      levelControl: { currentLevel: 127, minLevel: 1, maxLevel: 254 },
                                                                                                                                                                                                                                                                                                                                                                                                                      }

                                                                                                                                                                                                                                                                                                                                                                                                                      Note: If using parts, this is optional (main accessory may only be a container)

                                                                                                                                                                                                                                                                                                                                                                                                                    property context

                                                                                                                                                                                                                                                                                                                                                                                                                    context: T;
                                                                                                                                                                                                                                                                                                                                                                                                                    • Plugin developer storage - persists across restarts This is a way for plugin developers to store custom data with their accessory Similar to PlatformAccessory.context for HAP accessories

                                                                                                                                                                                                                                                                                                                                                                                                                    property deviceType

                                                                                                                                                                                                                                                                                                                                                                                                                    deviceType: EndpointType;
                                                                                                                                                                                                                                                                                                                                                                                                                    • Matter device type (e.g., OnOffLightDevice, DimmableLightDevice, etc.)

                                                                                                                                                                                                                                                                                                                                                                                                                    property displayName

                                                                                                                                                                                                                                                                                                                                                                                                                    displayName: string;
                                                                                                                                                                                                                                                                                                                                                                                                                    • Display name for the accessory

                                                                                                                                                                                                                                                                                                                                                                                                                    property firmwareRevision

                                                                                                                                                                                                                                                                                                                                                                                                                    firmwareRevision?: string;
                                                                                                                                                                                                                                                                                                                                                                                                                    • Firmware revision (optional)

                                                                                                                                                                                                                                                                                                                                                                                                                    property getState

                                                                                                                                                                                                                                                                                                                                                                                                                    getState?: (cluster: string, attribute: string) => Promise<unknown> | unknown;
                                                                                                                                                                                                                                                                                                                                                                                                                    • Optional: Get current state handler Called when a Matter controller reads an attribute If not provided, the last set value is returned

                                                                                                                                                                                                                                                                                                                                                                                                                      Parameter cluster

                                                                                                                                                                                                                                                                                                                                                                                                                      Cluster name (e.g., 'onOff', 'levelControl')

                                                                                                                                                                                                                                                                                                                                                                                                                      Parameter attribute

                                                                                                                                                                                                                                                                                                                                                                                                                      Attribute name to read

                                                                                                                                                                                                                                                                                                                                                                                                                      Returns

                                                                                                                                                                                                                                                                                                                                                                                                                      Current value of the attribute

                                                                                                                                                                                                                                                                                                                                                                                                                    property handlers

                                                                                                                                                                                                                                                                                                                                                                                                                    handlers?: {
                                                                                                                                                                                                                                                                                                                                                                                                                    [K in keyof ClusterHandlerMap]?: Partial<ClusterHandlerMap[K]>;
                                                                                                                                                                                                                                                                                                                                                                                                                    } & {
                                                                                                                                                                                                                                                                                                                                                                                                                    [clusterName: string]: MatterClusterHandlers;
                                                                                                                                                                                                                                                                                                                                                                                                                    };
                                                                                                                                                                                                                                                                                                                                                                                                                    • Handlers for Matter commands (Home app -> Device)

                                                                                                                                                                                                                                                                                                                                                                                                                      These handlers are called when a user controls the accessory via the Home app. Use handlers to send commands to your actual device (cloud API, local network, etc.).

                                                                                                                                                                                                                                                                                                                                                                                                                      Known clusters (onOff, levelControl, colorControl, etc.) provide full autocomplete for handler method names and argument types.

                                                                                                                                                                                                                                                                                                                                                                                                                      Example 1

                                                                                                                                                                                                                                                                                                                                                                                                                      handlers: {
                                                                                                                                                                                                                                                                                                                                                                                                                      onOff: {
                                                                                                                                                                                                                                                                                                                                                                                                                      on: async () => { await device.turnOn() },
                                                                                                                                                                                                                                                                                                                                                                                                                      off: async () => { await device.turnOff() },
                                                                                                                                                                                                                                                                                                                                                                                                                      },
                                                                                                                                                                                                                                                                                                                                                                                                                      levelControl: {
                                                                                                                                                                                                                                                                                                                                                                                                                      moveToLevel: async (args) => {
                                                                                                                                                                                                                                                                                                                                                                                                                      // args is typed as LevelControl.MoveToLevelRequest
                                                                                                                                                                                                                                                                                                                                                                                                                      await device.setBrightness(args?.level ?? 0)
                                                                                                                                                                                                                                                                                                                                                                                                                      },
                                                                                                                                                                                                                                                                                                                                                                                                                      },
                                                                                                                                                                                                                                                                                                                                                                                                                      }

                                                                                                                                                                                                                                                                                                                                                                                                                    property hardwareRevision

                                                                                                                                                                                                                                                                                                                                                                                                                    hardwareRevision?: string;
                                                                                                                                                                                                                                                                                                                                                                                                                    • Hardware revision (optional)

                                                                                                                                                                                                                                                                                                                                                                                                                    property manufacturer

                                                                                                                                                                                                                                                                                                                                                                                                                    manufacturer: string;
                                                                                                                                                                                                                                                                                                                                                                                                                    • Manufacturer name

                                                                                                                                                                                                                                                                                                                                                                                                                    property model

                                                                                                                                                                                                                                                                                                                                                                                                                    model: string;
                                                                                                                                                                                                                                                                                                                                                                                                                    • Model name/identifier

                                                                                                                                                                                                                                                                                                                                                                                                                    property parts

                                                                                                                                                                                                                                                                                                                                                                                                                    parts?: MatterAccessoryPart[];
                                                                                                                                                                                                                                                                                                                                                                                                                    • Optional: Array of child endpoints (parts) for composed devices

                                                                                                                                                                                                                                                                                                                                                                                                                      Use this to create devices with multiple independent subcomponents, such as: - Power strip with multiple outlets - Window covering with shade + light - Multi-zone thermostat or speaker system

                                                                                                                                                                                                                                                                                                                                                                                                                      Each part appears as a separate device in the Home app and can be controlled independently.

                                                                                                                                                                                                                                                                                                                                                                                                                      Example:

                                                                                                                                                                                                                                                                                                                                                                                                                      parts: [
                                                                                                                                                                                                                                                                                                                                                                                                                      {
                                                                                                                                                                                                                                                                                                                                                                                                                      id: 'outlet-1',
                                                                                                                                                                                                                                                                                                                                                                                                                      displayName: 'Outlet 1',
                                                                                                                                                                                                                                                                                                                                                                                                                      deviceType: api.matter!.deviceTypes.OnOffOutlet,
                                                                                                                                                                                                                                                                                                                                                                                                                      clusters: { onOff: { onOff: false } },
                                                                                                                                                                                                                                                                                                                                                                                                                      handlers: {
                                                                                                                                                                                                                                                                                                                                                                                                                      onOff: {
                                                                                                                                                                                                                                                                                                                                                                                                                      on: async (args, context) => {
                                                                                                                                                                                                                                                                                                                                                                                                                      console.log(`Part ${context.partId} turned on`)
                                                                                                                                                                                                                                                                                                                                                                                                                      await controlOutlet(1, true)
                                                                                                                                                                                                                                                                                                                                                                                                                      }
                                                                                                                                                                                                                                                                                                                                                                                                                      }
                                                                                                                                                                                                                                                                                                                                                                                                                      }
                                                                                                                                                                                                                                                                                                                                                                                                                      },
                                                                                                                                                                                                                                                                                                                                                                                                                      // ... more outlets
                                                                                                                                                                                                                                                                                                                                                                                                                      ]

                                                                                                                                                                                                                                                                                                                                                                                                                    property serialNumber

                                                                                                                                                                                                                                                                                                                                                                                                                    serialNumber: string;
                                                                                                                                                                                                                                                                                                                                                                                                                    • Serial number for the device

                                                                                                                                                                                                                                                                                                                                                                                                                    property softwareVersion

                                                                                                                                                                                                                                                                                                                                                                                                                    softwareVersion?: string;
                                                                                                                                                                                                                                                                                                                                                                                                                    • Software version (optional)

                                                                                                                                                                                                                                                                                                                                                                                                                    property UUID

                                                                                                                                                                                                                                                                                                                                                                                                                    UUID: string;
                                                                                                                                                                                                                                                                                                                                                                                                                    • Unique identifier for this accessory (must be unique across all accessories)

                                                                                                                                                                                                                                                                                                                                                                                                                    interface MatterAccessoryInfo

                                                                                                                                                                                                                                                                                                                                                                                                                    interface MatterAccessoryInfo {}
                                                                                                                                                                                                                                                                                                                                                                                                                    • Matter accessory information

                                                                                                                                                                                                                                                                                                                                                                                                                    property category

                                                                                                                                                                                                                                                                                                                                                                                                                    category: number;
                                                                                                                                                                                                                                                                                                                                                                                                                    • HAP category

                                                                                                                                                                                                                                                                                                                                                                                                                    property displayName

                                                                                                                                                                                                                                                                                                                                                                                                                    displayName: string;
                                                                                                                                                                                                                                                                                                                                                                                                                    • Display name

                                                                                                                                                                                                                                                                                                                                                                                                                    property matterInfo

                                                                                                                                                                                                                                                                                                                                                                                                                    matterInfo?: {
                                                                                                                                                                                                                                                                                                                                                                                                                    /** Whether this is a bridged device */
                                                                                                                                                                                                                                                                                                                                                                                                                    bridged: boolean;
                                                                                                                                                                                                                                                                                                                                                                                                                    /** Child bridge identifier if bridged */
                                                                                                                                                                                                                                                                                                                                                                                                                    childBridge?: string;
                                                                                                                                                                                                                                                                                                                                                                                                                    /** Matter device type */
                                                                                                                                                                                                                                                                                                                                                                                                                    deviceType?: string;
                                                                                                                                                                                                                                                                                                                                                                                                                    };
                                                                                                                                                                                                                                                                                                                                                                                                                    • Matter device information

                                                                                                                                                                                                                                                                                                                                                                                                                    property services

                                                                                                                                                                                                                                                                                                                                                                                                                    services?: ServiceInfo[];
                                                                                                                                                                                                                                                                                                                                                                                                                    • HAP services

                                                                                                                                                                                                                                                                                                                                                                                                                    property uuid

                                                                                                                                                                                                                                                                                                                                                                                                                    uuid: string;
                                                                                                                                                                                                                                                                                                                                                                                                                    • Unique identifier

                                                                                                                                                                                                                                                                                                                                                                                                                    interface MatterAPI

                                                                                                                                                                                                                                                                                                                                                                                                                    interface MatterAPI {}
                                                                                                                                                                                                                                                                                                                                                                                                                    • Matter API Interface.

                                                                                                                                                                                                                                                                                                                                                                                                                      Provides access to Matter protocol functionality for creating Matter-compatible accessories. Similar to api.hap for HomeKit Accessory Protocol.

                                                                                                                                                                                                                                                                                                                                                                                                                      api.matter is MatterAPI | undefined — it's defined on bridges where Matter is configured (matches api.isMatterEnabled()), undefined otherwise. Plugins must use optional chaining or guard with isMatterEnabled().

                                                                                                                                                                                                                                                                                                                                                                                                                      Example 1

                                                                                                                                                                                                                                                                                                                                                                                                                      // Defensive pattern (recommended for plugins that work with or without Matter):
                                                                                                                                                                                                                                                                                                                                                                                                                      api.matter?.registerPlatformAccessories('homebridge-example', 'Example', [{
                                                                                                                                                                                                                                                                                                                                                                                                                      UUID: api.hap.uuid.generate('my-light'),
                                                                                                                                                                                                                                                                                                                                                                                                                      displayName: 'Living Room Light',
                                                                                                                                                                                                                                                                                                                                                                                                                      deviceType: api.matter!.deviceTypes.OnOffLight,
                                                                                                                                                                                                                                                                                                                                                                                                                      manufacturer: 'Example',
                                                                                                                                                                                                                                                                                                                                                                                                                      model: 'Example Light',
                                                                                                                                                                                                                                                                                                                                                                                                                      serialNumber: 'EX-001',
                                                                                                                                                                                                                                                                                                                                                                                                                      clusters: { onOff: { onOff: false } },
                                                                                                                                                                                                                                                                                                                                                                                                                      }])
                                                                                                                                                                                                                                                                                                                                                                                                                      // Update state when device changes externally
                                                                                                                                                                                                                                                                                                                                                                                                                      await api.matter?.updateAccessoryState(uuid, 'onOff', { onOff: true })
                                                                                                                                                                                                                                                                                                                                                                                                                      // Read current state
                                                                                                                                                                                                                                                                                                                                                                                                                      const state = await api.matter?.getAccessoryState(uuid, 'onOff')

                                                                                                                                                                                                                                                                                                                                                                                                                      Example 2

                                                                                                                                                                                                                                                                                                                                                                                                                      // Guard pattern (recommended for plugins that always require Matter):
                                                                                                                                                                                                                                                                                                                                                                                                                      if (!api.isMatterEnabled()) {
                                                                                                                                                                                                                                                                                                                                                                                                                      log.error('Matter is not enabled for this bridge; the plugin requires Matter.')
                                                                                                                                                                                                                                                                                                                                                                                                                      return
                                                                                                                                                                                                                                                                                                                                                                                                                      }
                                                                                                                                                                                                                                                                                                                                                                                                                      const matter = api.matter!
                                                                                                                                                                                                                                                                                                                                                                                                                      await matter.registerPlatformAccessories(pluginId, platformName, accessories)

                                                                                                                                                                                                                                                                                                                                                                                                                    property clusterNames

                                                                                                                                                                                                                                                                                                                                                                                                                    readonly clusterNames: typeof clusterNames;
                                                                                                                                                                                                                                                                                                                                                                                                                    • Matter cluster names for type safety and autocomplete Use these constants with updateAccessoryState() and getAccessoryState()

                                                                                                                                                                                                                                                                                                                                                                                                                      Example 1

                                                                                                                                                                                                                                                                                                                                                                                                                      api.matter?.updateAccessoryState(uuid, api.matter?.clusterNames.OnOff, { onOff: true })
                                                                                                                                                                                                                                                                                                                                                                                                                      api.matter?.getAccessoryState(uuid, api.matter?.clusterNames.LevelControl)

                                                                                                                                                                                                                                                                                                                                                                                                                    property clusters

                                                                                                                                                                                                                                                                                                                                                                                                                    readonly clusters: typeof clusters;
                                                                                                                                                                                                                                                                                                                                                                                                                    • Matter clusters - Direct access to Matter.js cluster definitions For advanced use cases requiring low-level cluster access

                                                                                                                                                                                                                                                                                                                                                                                                                    property deviceTypes

                                                                                                                                                                                                                                                                                                                                                                                                                    readonly deviceTypes: typeof deviceTypes;
                                                                                                                                                                                                                                                                                                                                                                                                                    • Matter device types for creating accessories. Maps friendly names to Matter.js device types, including stateless controller types like GenericSwitch.

                                                                                                                                                                                                                                                                                                                                                                                                                    property getAccessoryState

                                                                                                                                                                                                                                                                                                                                                                                                                    getAccessoryState: {
                                                                                                                                                                                                                                                                                                                                                                                                                    /** Typed overload for known clusters - returns typed state */
                                                                                                                                                                                                                                                                                                                                                                                                                    <K extends keyof ClusterStateMap>(
                                                                                                                                                                                                                                                                                                                                                                                                                    uuid: string,
                                                                                                                                                                                                                                                                                                                                                                                                                    cluster: K,
                                                                                                                                                                                                                                                                                                                                                                                                                    partId?: string
                                                                                                                                                                                                                                                                                                                                                                                                                    ): Promise<Partial<ClusterStateMap[K]> | undefined>;
                                                                                                                                                                                                                                                                                                                                                                                                                    /** Fallback for unknown/custom clusters */
                                                                                                                                                                                                                                                                                                                                                                                                                    (uuid: string, cluster: string, partId?: string): Promise<
                                                                                                                                                                                                                                                                                                                                                                                                                    Record<string, unknown> | undefined
                                                                                                                                                                                                                                                                                                                                                                                                                    >;
                                                                                                                                                                                                                                                                                                                                                                                                                    };
                                                                                                                                                                                                                                                                                                                                                                                                                    • Get a Matter accessory's current cluster state

                                                                                                                                                                                                                                                                                                                                                                                                                      Returns the current attribute values that are exposed to Matter controllers. Useful for: - Reading state after plugin restart - Verifying current state before making changes - Debugging and logging

                                                                                                                                                                                                                                                                                                                                                                                                                      Similar to HAP's characteristic.value getter.

                                                                                                                                                                                                                                                                                                                                                                                                                      Parameter uuid

                                                                                                                                                                                                                                                                                                                                                                                                                      The UUID of the accessory

                                                                                                                                                                                                                                                                                                                                                                                                                      Parameter cluster

                                                                                                                                                                                                                                                                                                                                                                                                                      The cluster name (use api.matter?.clusterNames for autocomplete)

                                                                                                                                                                                                                                                                                                                                                                                                                      Parameter partId

                                                                                                                                                                                                                                                                                                                                                                                                                      Optional: ID of the part to get state from (for composed devices with multiple endpoints)

                                                                                                                                                                                                                                                                                                                                                                                                                      Returns

                                                                                                                                                                                                                                                                                                                                                                                                                      Current cluster attribute values, or undefined if not found

                                                                                                                                                                                                                                                                                                                                                                                                                      Example 1

                                                                                                                                                                                                                                                                                                                                                                                                                      const state = await api.matter?.getAccessoryState(uuid, api.matter?.clusterNames.OnOff)
                                                                                                                                                                                                                                                                                                                                                                                                                      if (state?.onOff) {
                                                                                                                                                                                                                                                                                                                                                                                                                      console.log('Light is currently on')
                                                                                                                                                                                                                                                                                                                                                                                                                      }
                                                                                                                                                                                                                                                                                                                                                                                                                      Get state of a specific outlet in a power strip:
                                                                                                                                                                                                                                                                                                                                                                                                                      const outletState = await api.matter?.getAccessoryState(
                                                                                                                                                                                                                                                                                                                                                                                                                      uuid,
                                                                                                                                                                                                                                                                                                                                                                                                                      api.matter?.clusterNames.OnOff,
                                                                                                                                                                                                                                                                                                                                                                                                                      'outlet-3' // Part ID
                                                                                                                                                                                                                                                                                                                                                                                                                      )

                                                                                                                                                                                                                                                                                                                                                                                                                    property registerPlatformAccessories

                                                                                                                                                                                                                                                                                                                                                                                                                    registerPlatformAccessories: (
                                                                                                                                                                                                                                                                                                                                                                                                                    pluginIdentifier: PluginIdentifier,
                                                                                                                                                                                                                                                                                                                                                                                                                    platformName: PlatformName,
                                                                                                                                                                                                                                                                                                                                                                                                                    accessories: MatterAccessory[]
                                                                                                                                                                                                                                                                                                                                                                                                                    ) => Promise<void>;
                                                                                                                                                                                                                                                                                                                                                                                                                    • Register Matter platform accessories (works exactly like HAP's registerPlatformAccessories)

                                                                                                                                                                                                                                                                                                                                                                                                                      Returns a promise that resolves when all accessories are fully registered and ready for state updates. This is especially important for external accessories (like robot vacuums) which require additional setup time.

                                                                                                                                                                                                                                                                                                                                                                                                                      Parameter pluginIdentifier

                                                                                                                                                                                                                                                                                                                                                                                                                      The plugin identifier (e.g., 'homebridge-example')

                                                                                                                                                                                                                                                                                                                                                                                                                      Parameter platformName

                                                                                                                                                                                                                                                                                                                                                                                                                      The platform name (e.g., 'ExamplePlatform')

                                                                                                                                                                                                                                                                                                                                                                                                                      Parameter accessories

                                                                                                                                                                                                                                                                                                                                                                                                                      Array of Matter accessories to register

                                                                                                                                                                                                                                                                                                                                                                                                                    property switch

                                                                                                                                                                                                                                                                                                                                                                                                                    readonly switch: SwitchAPI;
                                                                                                                                                                                                                                                                                                                                                                                                                    • Helpers for GenericSwitch accessories (stateless remotes and buttons).

                                                                                                                                                                                                                                                                                                                                                                                                                      Device-type-specific helpers live under nested namespaces (e.g. api.matter?.switch) to keep the top-level MatterAPI surface focused on the generic, UUID-addressed primitives.

                                                                                                                                                                                                                                                                                                                                                                                                                      Example 1

                                                                                                                                                                                                                                                                                                                                                                                                                      // Simple single-button press and release
                                                                                                                                                                                                                                                                                                                                                                                                                      await api.matter?.switch.emit(uuid, 'press')
                                                                                                                                                                                                                                                                                                                                                                                                                      await api.matter?.switch.emit(uuid, 'release')

                                                                                                                                                                                                                                                                                                                                                                                                                      See Also

                                                                                                                                                                                                                                                                                                                                                                                                                    property types

                                                                                                                                                                                                                                                                                                                                                                                                                    readonly types: typeof MatterTypes;
                                                                                                                                                                                                                                                                                                                                                                                                                    • Matter types - Access to Matter.js cluster type definitions and enums Use these for type-safe attribute values (modes, states, etc.)

                                                                                                                                                                                                                                                                                                                                                                                                                      Example 1

                                                                                                                                                                                                                                                                                                                                                                                                                      Fan mode enum
                                                                                                                                                                                                                                                                                                                                                                                                                      api.matter?.updateAccessoryState(
                                                                                                                                                                                                                                                                                                                                                                                                                      uuid,
                                                                                                                                                                                                                                                                                                                                                                                                                      api.matter?.clusterNames.FanControl,
                                                                                                                                                                                                                                                                                                                                                                                                                      { fanMode: api.matter?.types.FanControl.FanMode.High }
                                                                                                                                                                                                                                                                                                                                                                                                                      )

                                                                                                                                                                                                                                                                                                                                                                                                                    property unregisterPlatformAccessories

                                                                                                                                                                                                                                                                                                                                                                                                                    unregisterPlatformAccessories: (
                                                                                                                                                                                                                                                                                                                                                                                                                    pluginIdentifier: PluginIdentifier,
                                                                                                                                                                                                                                                                                                                                                                                                                    platformName: PlatformName,
                                                                                                                                                                                                                                                                                                                                                                                                                    accessories: MatterAccessory[]
                                                                                                                                                                                                                                                                                                                                                                                                                    ) => Promise<void>;
                                                                                                                                                                                                                                                                                                                                                                                                                    • Unregister Matter platform accessories by UUID

                                                                                                                                                                                                                                                                                                                                                                                                                      Parameter pluginIdentifier

                                                                                                                                                                                                                                                                                                                                                                                                                      The plugin identifier

                                                                                                                                                                                                                                                                                                                                                                                                                      Parameter platformName

                                                                                                                                                                                                                                                                                                                                                                                                                      The platform name

                                                                                                                                                                                                                                                                                                                                                                                                                      Parameter accessories

                                                                                                                                                                                                                                                                                                                                                                                                                      Array of Matter accessories to unregister (only uuid is required)

                                                                                                                                                                                                                                                                                                                                                                                                                    property updateAccessoryState

                                                                                                                                                                                                                                                                                                                                                                                                                    updateAccessoryState: {
                                                                                                                                                                                                                                                                                                                                                                                                                    /** Typed overload for known clusters - provides autocomplete for attribute names */
                                                                                                                                                                                                                                                                                                                                                                                                                    <K extends keyof ClusterStateMap>(
                                                                                                                                                                                                                                                                                                                                                                                                                    uuid: string,
                                                                                                                                                                                                                                                                                                                                                                                                                    cluster: K,
                                                                                                                                                                                                                                                                                                                                                                                                                    attributes: Partial<ClusterStateMap[K]>,
                                                                                                                                                                                                                                                                                                                                                                                                                    partId?: string
                                                                                                                                                                                                                                                                                                                                                                                                                    ): Promise<void>;
                                                                                                                                                                                                                                                                                                                                                                                                                    /** Fallback for unknown/custom clusters */
                                                                                                                                                                                                                                                                                                                                                                                                                    (
                                                                                                                                                                                                                                                                                                                                                                                                                    uuid: string,
                                                                                                                                                                                                                                                                                                                                                                                                                    cluster: string,
                                                                                                                                                                                                                                                                                                                                                                                                                    attributes: Record<string, unknown>,
                                                                                                                                                                                                                                                                                                                                                                                                                    partId?: string
                                                                                                                                                                                                                                                                                                                                                                                                                    ): Promise<void>;
                                                                                                                                                                                                                                                                                                                                                                                                                    };
                                                                                                                                                                                                                                                                                                                                                                                                                    • Update a Matter accessory's cluster state when device changes externally

                                                                                                                                                                                                                                                                                                                                                                                                                      Use this for state updates from: - Native app controls - Physical button presses - Webhooks from cloud service - Polling results

                                                                                                                                                                                                                                                                                                                                                                                                                      DO NOT use inside handlers - state auto-updates after handlers complete! Similar to HAP's characteristic.updateValue()

                                                                                                                                                                                                                                                                                                                                                                                                                      Parameter uuid

                                                                                                                                                                                                                                                                                                                                                                                                                      The UUID of the accessory

                                                                                                                                                                                                                                                                                                                                                                                                                      Parameter cluster

                                                                                                                                                                                                                                                                                                                                                                                                                      The cluster name (use api.matter?.clusterNames for autocomplete)

                                                                                                                                                                                                                                                                                                                                                                                                                      Parameter attributes

                                                                                                                                                                                                                                                                                                                                                                                                                      The attributes to update

                                                                                                                                                                                                                                                                                                                                                                                                                      Parameter partId

                                                                                                                                                                                                                                                                                                                                                                                                                      Optional: ID of the part to update (for composed devices with multiple endpoints)

                                                                                                                                                                                                                                                                                                                                                                                                                      Example 1

                                                                                                                                                                                                                                                                                                                                                                                                                      Device turned on via native app:
                                                                                                                                                                                                                                                                                                                                                                                                                      await api.matter?.updateAccessoryState(
                                                                                                                                                                                                                                                                                                                                                                                                                      uuid,
                                                                                                                                                                                                                                                                                                                                                                                                                      api.matter?.clusterNames.OnOff,
                                                                                                                                                                                                                                                                                                                                                                                                                      { onOff: true }
                                                                                                                                                                                                                                                                                                                                                                                                                      )
                                                                                                                                                                                                                                                                                                                                                                                                                      Device brightness changed via physical button:
                                                                                                                                                                                                                                                                                                                                                                                                                      await api.matter?.updateAccessoryState(
                                                                                                                                                                                                                                                                                                                                                                                                                      uuid,
                                                                                                                                                                                                                                                                                                                                                                                                                      api.matter?.clusterNames.LevelControl,
                                                                                                                                                                                                                                                                                                                                                                                                                      { currentLevel: 200 }
                                                                                                                                                                                                                                                                                                                                                                                                                      )
                                                                                                                                                                                                                                                                                                                                                                                                                      Update a specific outlet in a power strip (composed device):
                                                                                                                                                                                                                                                                                                                                                                                                                      await api.matter?.updateAccessoryState(
                                                                                                                                                                                                                                                                                                                                                                                                                      uuid,
                                                                                                                                                                                                                                                                                                                                                                                                                      api.matter?.clusterNames.OnOff,
                                                                                                                                                                                                                                                                                                                                                                                                                      { onOff: true },
                                                                                                                                                                                                                                                                                                                                                                                                                      'outlet-2' // Part ID
                                                                                                                                                                                                                                                                                                                                                                                                                      )

                                                                                                                                                                                                                                                                                                                                                                                                                    property updatePlatformAccessories

                                                                                                                                                                                                                                                                                                                                                                                                                    updatePlatformAccessories: (accessories: MatterAccessory[]) => Promise<void>;
                                                                                                                                                                                                                                                                                                                                                                                                                    • Update Matter platform accessories in the cache

                                                                                                                                                                                                                                                                                                                                                                                                                      Use this to update cached accessory information (displayName, manufacturer, model, etc.) without unregistering and re-registering. This is useful when: - Device name changes in the external system - Firmware version gets updated - Other metadata needs to be refreshed

                                                                                                                                                                                                                                                                                                                                                                                                                      Similar to api.updatePlatformAccessories() for HAP accessories.

                                                                                                                                                                                                                                                                                                                                                                                                                      Parameter accessories

                                                                                                                                                                                                                                                                                                                                                                                                                      Array of Matter accessories to update (must include uuid)

                                                                                                                                                                                                                                                                                                                                                                                                                      Example 1

                                                                                                                                                                                                                                                                                                                                                                                                                      // Update the display name after it changed in the external system
                                                                                                                                                                                                                                                                                                                                                                                                                      const accessory = cachedAccessories.find(a => a.uuid === uuid)
                                                                                                                                                                                                                                                                                                                                                                                                                      if (accessory) {
                                                                                                                                                                                                                                                                                                                                                                                                                      accessory.displayName = 'New Name from API'
                                                                                                                                                                                                                                                                                                                                                                                                                      await api.matter?.updatePlatformAccessories([accessory])
                                                                                                                                                                                                                                                                                                                                                                                                                      }

                                                                                                                                                                                                                                                                                                                                                                                                                    property uuid

                                                                                                                                                                                                                                                                                                                                                                                                                    readonly uuid: HAP['uuid'];
                                                                                                                                                                                                                                                                                                                                                                                                                    • UUID generator (alias of api.hap.uuid for convenience) Use this to generate unique identifiers for Matter accessories

                                                                                                                                                                                                                                                                                                                                                                                                                      Example 1

                                                                                                                                                                                                                                                                                                                                                                                                                      const uuid = api.matter?.uuid.generate('my-light-unique-id')
                                                                                                                                                                                                                                                                                                                                                                                                                      api.matter?.registerAccessory({
                                                                                                                                                                                                                                                                                                                                                                                                                      uuid,
                                                                                                                                                                                                                                                                                                                                                                                                                      displayName: 'Living Room Light',
                                                                                                                                                                                                                                                                                                                                                                                                                      // ...
                                                                                                                                                                                                                                                                                                                                                                                                                      })

                                                                                                                                                                                                                                                                                                                                                                                                                    interface MatterBridgeMetadata

                                                                                                                                                                                                                                                                                                                                                                                                                    interface MatterBridgeMetadata {}
                                                                                                                                                                                                                                                                                                                                                                                                                    • Metadata for a Matter bridge instance

                                                                                                                                                                                                                                                                                                                                                                                                                    property commissioned

                                                                                                                                                                                                                                                                                                                                                                                                                    commissioned?: boolean;
                                                                                                                                                                                                                                                                                                                                                                                                                    • Whether the bridge has been commissioned

                                                                                                                                                                                                                                                                                                                                                                                                                    property deviceCount

                                                                                                                                                                                                                                                                                                                                                                                                                    deviceCount: number;
                                                                                                                                                                                                                                                                                                                                                                                                                    • Number of devices exposed by this bridge

                                                                                                                                                                                                                                                                                                                                                                                                                    property identifier

                                                                                                                                                                                                                                                                                                                                                                                                                    identifier: string;
                                                                                                                                                                                                                                                                                                                                                                                                                    • Unique identifier for this bridge instance

                                                                                                                                                                                                                                                                                                                                                                                                                    property manuallyStopped

                                                                                                                                                                                                                                                                                                                                                                                                                    manuallyStopped?: boolean;
                                                                                                                                                                                                                                                                                                                                                                                                                    • Whether the bridge was manually stopped

                                                                                                                                                                                                                                                                                                                                                                                                                    property manualPairingCode

                                                                                                                                                                                                                                                                                                                                                                                                                    manualPairingCode?: string;
                                                                                                                                                                                                                                                                                                                                                                                                                    • Manual pairing code for commissioning

                                                                                                                                                                                                                                                                                                                                                                                                                    property name

                                                                                                                                                                                                                                                                                                                                                                                                                    name: string;
                                                                                                                                                                                                                                                                                                                                                                                                                    • Display name of the bridge

                                                                                                                                                                                                                                                                                                                                                                                                                    property pid

                                                                                                                                                                                                                                                                                                                                                                                                                    pid?: number;
                                                                                                                                                                                                                                                                                                                                                                                                                    • Process ID of the bridge if running as child process

                                                                                                                                                                                                                                                                                                                                                                                                                    property plugin

                                                                                                                                                                                                                                                                                                                                                                                                                    plugin: string;
                                                                                                                                                                                                                                                                                                                                                                                                                    • Plugin identifier that owns this bridge

                                                                                                                                                                                                                                                                                                                                                                                                                    property port

                                                                                                                                                                                                                                                                                                                                                                                                                    port?: number;
                                                                                                                                                                                                                                                                                                                                                                                                                    • Bridge port number

                                                                                                                                                                                                                                                                                                                                                                                                                    property qrCode

                                                                                                                                                                                                                                                                                                                                                                                                                    qrCode?: string;
                                                                                                                                                                                                                                                                                                                                                                                                                    • QR code payload for commissioning

                                                                                                                                                                                                                                                                                                                                                                                                                    property serialNumber

                                                                                                                                                                                                                                                                                                                                                                                                                    serialNumber?: string;
                                                                                                                                                                                                                                                                                                                                                                                                                    • Device serial number

                                                                                                                                                                                                                                                                                                                                                                                                                    property status

                                                                                                                                                                                                                                                                                                                                                                                                                    status: MatterBridgeStatus;
                                                                                                                                                                                                                                                                                                                                                                                                                    • Current operational status

                                                                                                                                                                                                                                                                                                                                                                                                                    property type

                                                                                                                                                                                                                                                                                                                                                                                                                    type: 'matter';
                                                                                                                                                                                                                                                                                                                                                                                                                    • Bridge type identifier (always 'matter')

                                                                                                                                                                                                                                                                                                                                                                                                                    property username

                                                                                                                                                                                                                                                                                                                                                                                                                    username?: string;
                                                                                                                                                                                                                                                                                                                                                                                                                    • Bridge username/identifier

                                                                                                                                                                                                                                                                                                                                                                                                                    interface MatterClusterHandlers

                                                                                                                                                                                                                                                                                                                                                                                                                    interface MatterClusterHandlers {}
                                                                                                                                                                                                                                                                                                                                                                                                                    • Matter cluster handlers interface

                                                                                                                                                                                                                                                                                                                                                                                                                      Maps command names to their handler functions. Each command can have custom argument types.

                                                                                                                                                                                                                                                                                                                                                                                                                      Note: Uses any instead of unknown to allow handlers to specify their own argument types without TypeScript variance errors. Handlers can still be strongly typed in their implementations.

                                                                                                                                                                                                                                                                                                                                                                                                                    index signature

                                                                                                                                                                                                                                                                                                                                                                                                                    [commandName: string]: MatterCommandHandler<any>;

                                                                                                                                                                                                                                                                                                                                                                                                                      interface MatterCommissioningInfo

                                                                                                                                                                                                                                                                                                                                                                                                                      interface MatterCommissioningInfo {}
                                                                                                                                                                                                                                                                                                                                                                                                                      • Matter commissioning information

                                                                                                                                                                                                                                                                                                                                                                                                                      property commissioned

                                                                                                                                                                                                                                                                                                                                                                                                                      commissioned: boolean;
                                                                                                                                                                                                                                                                                                                                                                                                                      • Whether the device is commissioned

                                                                                                                                                                                                                                                                                                                                                                                                                      property manualPairingCode

                                                                                                                                                                                                                                                                                                                                                                                                                      manualPairingCode?: string;
                                                                                                                                                                                                                                                                                                                                                                                                                      • Manual pairing code for commissioning

                                                                                                                                                                                                                                                                                                                                                                                                                      property pin

                                                                                                                                                                                                                                                                                                                                                                                                                      pin?: string | null;
                                                                                                                                                                                                                                                                                                                                                                                                                      • PIN/pairing code

                                                                                                                                                                                                                                                                                                                                                                                                                      property port

                                                                                                                                                                                                                                                                                                                                                                                                                      port?: number;
                                                                                                                                                                                                                                                                                                                                                                                                                      • Port number if applicable

                                                                                                                                                                                                                                                                                                                                                                                                                      property qrCode

                                                                                                                                                                                                                                                                                                                                                                                                                      qrCode?: string;
                                                                                                                                                                                                                                                                                                                                                                                                                      • QR code payload for commissioning

                                                                                                                                                                                                                                                                                                                                                                                                                      property serialNumber

                                                                                                                                                                                                                                                                                                                                                                                                                      serialNumber?: string;
                                                                                                                                                                                                                                                                                                                                                                                                                      • Device serial number

                                                                                                                                                                                                                                                                                                                                                                                                                      property setupUri

                                                                                                                                                                                                                                                                                                                                                                                                                      setupUri?: string | null;
                                                                                                                                                                                                                                                                                                                                                                                                                      • Setup URI/QR code for pairing

                                                                                                                                                                                                                                                                                                                                                                                                                      property type

                                                                                                                                                                                                                                                                                                                                                                                                                      type?: 'matter';
                                                                                                                                                                                                                                                                                                                                                                                                                      • Bridge type (always 'matter')

                                                                                                                                                                                                                                                                                                                                                                                                                      interface MatterConfig

                                                                                                                                                                                                                                                                                                                                                                                                                      interface MatterConfig extends Record<string, unknown> {}
                                                                                                                                                                                                                                                                                                                                                                                                                      • Matter Configuration (for bridge or child bridge)

                                                                                                                                                                                                                                                                                                                                                                                                                      property disableIpv4

                                                                                                                                                                                                                                                                                                                                                                                                                      disableIpv4?: boolean;
                                                                                                                                                                                                                                                                                                                                                                                                                      • When true, matter.js mDNS runs IPv6-only — no IPv4 sockets are opened on port 5353. The Matter spec requires IPv6; IPv4 discovery is optional.

                                                                                                                                                                                                                                                                                                                                                                                                                        Useful when Matter's own mDNS responder competes with avahi-daemon for IPv4 port 5353 on the same host (symptom: <hostname>.local stops resolving over IPv4 while direct IP access still works). Missing or false keeps matter.js's default dual-stack behaviour.

                                                                                                                                                                                                                                                                                                                                                                                                                      property enabled

                                                                                                                                                                                                                                                                                                                                                                                                                      enabled?: boolean;
                                                                                                                                                                                                                                                                                                                                                                                                                      • When false, Matter is configured but not advertised — the config block and the on-disk commissioning storage are preserved, so it can be re-enabled without re-commissioning. Missing/true means enabled. This mirrors how bridge.hap.enabled: false disables HAP without losing pairing data.

                                                                                                                                                                                                                                                                                                                                                                                                                      property externalsOnly

                                                                                                                                                                                                                                                                                                                                                                                                                      externalsOnly?: boolean;
                                                                                                                                                                                                                                                                                                                                                                                                                      • When true, the Matter bridge node itself is NOT advertised, but plugins MAY still publish external Matter accessories (each gets its own pairing via api.matter.publishExternalAccessories). The Matter API surface (api.matter) is still made available to plugins; only the bridge aggregator is suppressed.

                                                                                                                                                                                                                                                                                                                                                                                                                        Intended to be paired with enabled: false; if externalsOnly: true is set on its own, validation warns and normalises enabled to false rather than rejecting the config. Mirrors the behaviour of bridge.hap.externalsOnly.

                                                                                                                                                                                                                                                                                                                                                                                                                      property name

                                                                                                                                                                                                                                                                                                                                                                                                                      name?: string;
                                                                                                                                                                                                                                                                                                                                                                                                                      • Name for the Matter bridge (optional)

                                                                                                                                                                                                                                                                                                                                                                                                                      property port

                                                                                                                                                                                                                                                                                                                                                                                                                      port?: number;
                                                                                                                                                                                                                                                                                                                                                                                                                      • Port for Matter server (optional, will auto-assign if not specified)

                                                                                                                                                                                                                                                                                                                                                                                                                      interface MatterErrorDetails

                                                                                                                                                                                                                                                                                                                                                                                                                      interface MatterErrorDetails {}
                                                                                                                                                                                                                                                                                                                                                                                                                      • Matter error details interface

                                                                                                                                                                                                                                                                                                                                                                                                                      property code

                                                                                                                                                                                                                                                                                                                                                                                                                      code?: string;

                                                                                                                                                                                                                                                                                                                                                                                                                        property context

                                                                                                                                                                                                                                                                                                                                                                                                                        context?: string;

                                                                                                                                                                                                                                                                                                                                                                                                                          property originalError

                                                                                                                                                                                                                                                                                                                                                                                                                          originalError?: Error;

                                                                                                                                                                                                                                                                                                                                                                                                                            property recoverable

                                                                                                                                                                                                                                                                                                                                                                                                                            recoverable?: boolean;

                                                                                                                                                                                                                                                                                                                                                                                                                              property type

                                                                                                                                                                                                                                                                                                                                                                                                                              type?: MatterErrorType;

                                                                                                                                                                                                                                                                                                                                                                                                                                interface MatterServerConfig

                                                                                                                                                                                                                                                                                                                                                                                                                                interface MatterServerConfig {}
                                                                                                                                                                                                                                                                                                                                                                                                                                • Matter server configuration Used internally by MatterServer class

                                                                                                                                                                                                                                                                                                                                                                                                                                property debugModeEnabled

                                                                                                                                                                                                                                                                                                                                                                                                                                debugModeEnabled?: boolean;
                                                                                                                                                                                                                                                                                                                                                                                                                                • Enable debug mode for verbose logging

                                                                                                                                                                                                                                                                                                                                                                                                                                property disableIpv4

                                                                                                                                                                                                                                                                                                                                                                                                                                disableIpv4?: boolean;
                                                                                                                                                                                                                                                                                                                                                                                                                                • When true, Matter mDNS runs IPv6-only (inherited from matter.disableIpv4 config)

                                                                                                                                                                                                                                                                                                                                                                                                                                property displayName

                                                                                                                                                                                                                                                                                                                                                                                                                                displayName?: string;
                                                                                                                                                                                                                                                                                                                                                                                                                                • Display name for the Matter bridge/device

                                                                                                                                                                                                                                                                                                                                                                                                                                property externalAccessory

                                                                                                                                                                                                                                                                                                                                                                                                                                externalAccessory?: boolean;
                                                                                                                                                                                                                                                                                                                                                                                                                                • External accessory mode - device is not bridged and so added before server starts

                                                                                                                                                                                                                                                                                                                                                                                                                                property firmwareRevision

                                                                                                                                                                                                                                                                                                                                                                                                                                firmwareRevision?: string;
                                                                                                                                                                                                                                                                                                                                                                                                                                • Firmware revision (inherited from bridge config)

                                                                                                                                                                                                                                                                                                                                                                                                                                property manufacturer

                                                                                                                                                                                                                                                                                                                                                                                                                                manufacturer?: string;
                                                                                                                                                                                                                                                                                                                                                                                                                                • Manufacturer name (inherited from bridge config)

                                                                                                                                                                                                                                                                                                                                                                                                                                property model

                                                                                                                                                                                                                                                                                                                                                                                                                                model?: string;
                                                                                                                                                                                                                                                                                                                                                                                                                                • Model name (inherited from bridge config)

                                                                                                                                                                                                                                                                                                                                                                                                                                property networkInterfaces

                                                                                                                                                                                                                                                                                                                                                                                                                                networkInterfaces?: string[];
                                                                                                                                                                                                                                                                                                                                                                                                                                • Network interfaces to bind to (inherited from bridge.bind config)

                                                                                                                                                                                                                                                                                                                                                                                                                                property port

                                                                                                                                                                                                                                                                                                                                                                                                                                port?: number;
                                                                                                                                                                                                                                                                                                                                                                                                                                • Server port

                                                                                                                                                                                                                                                                                                                                                                                                                                property serialNumber

                                                                                                                                                                                                                                                                                                                                                                                                                                serialNumber?: string;
                                                                                                                                                                                                                                                                                                                                                                                                                                • Serial number (inherited from bridge config)

                                                                                                                                                                                                                                                                                                                                                                                                                                property storagePath

                                                                                                                                                                                                                                                                                                                                                                                                                                storagePath?: string;
                                                                                                                                                                                                                                                                                                                                                                                                                                • Storage path

                                                                                                                                                                                                                                                                                                                                                                                                                                property uniqueId

                                                                                                                                                                                                                                                                                                                                                                                                                                uniqueId: string;
                                                                                                                                                                                                                                                                                                                                                                                                                                • Unique identifier (REQUIRED - must be unique for each Matter bridge instance)

                                                                                                                                                                                                                                                                                                                                                                                                                                interface OnOffHandlers

                                                                                                                                                                                                                                                                                                                                                                                                                                interface OnOffHandlers {}
                                                                                                                                                                                                                                                                                                                                                                                                                                • OnOff cluster handler methods

                                                                                                                                                                                                                                                                                                                                                                                                                                property off

                                                                                                                                                                                                                                                                                                                                                                                                                                off?: MatterCommandHandler;

                                                                                                                                                                                                                                                                                                                                                                                                                                  property on

                                                                                                                                                                                                                                                                                                                                                                                                                                  on?: MatterCommandHandler;

                                                                                                                                                                                                                                                                                                                                                                                                                                    property toggle

                                                                                                                                                                                                                                                                                                                                                                                                                                    toggle?: MatterCommandHandler;

                                                                                                                                                                                                                                                                                                                                                                                                                                      interface OnOffState

                                                                                                                                                                                                                                                                                                                                                                                                                                      interface OnOffState {}
                                                                                                                                                                                                                                                                                                                                                                                                                                      • OnOff cluster state

                                                                                                                                                                                                                                                                                                                                                                                                                                      property onOff

                                                                                                                                                                                                                                                                                                                                                                                                                                      onOff?: boolean;

                                                                                                                                                                                                                                                                                                                                                                                                                                        interface PlatformAccessory

                                                                                                                                                                                                                                                                                                                                                                                                                                        interface PlatformAccessory {}

                                                                                                                                                                                                                                                                                                                                                                                                                                          property emit

                                                                                                                                                                                                                                                                                                                                                                                                                                          emit: (event: 'identify') => boolean;

                                                                                                                                                                                                                                                                                                                                                                                                                                            property on

                                                                                                                                                                                                                                                                                                                                                                                                                                            on: (event: 'identify', listener: () => void) => this;

                                                                                                                                                                                                                                                                                                                                                                                                                                              interface PlatformConfig

                                                                                                                                                                                                                                                                                                                                                                                                                                              interface PlatformConfig extends Record<string, any> {}

                                                                                                                                                                                                                                                                                                                                                                                                                                                property name

                                                                                                                                                                                                                                                                                                                                                                                                                                                name?: string;

                                                                                                                                                                                                                                                                                                                                                                                                                                                  property platform

                                                                                                                                                                                                                                                                                                                                                                                                                                                  platform: PlatformName | PlatformIdentifier;

                                                                                                                                                                                                                                                                                                                                                                                                                                                    interface PlatformPluginConstructor

                                                                                                                                                                                                                                                                                                                                                                                                                                                    interface PlatformPluginConstructor<
                                                                                                                                                                                                                                                                                                                                                                                                                                                    Config extends PlatformConfig = PlatformConfig
                                                                                                                                                                                                                                                                                                                                                                                                                                                    > {}

                                                                                                                                                                                                                                                                                                                                                                                                                                                      construct signature

                                                                                                                                                                                                                                                                                                                                                                                                                                                      new (logger: Logging, config: Config, api: API):
                                                                                                                                                                                                                                                                                                                                                                                                                                                      | DynamicPlatformPlugin
                                                                                                                                                                                                                                                                                                                                                                                                                                                      | StaticPlatformPlugin
                                                                                                                                                                                                                                                                                                                                                                                                                                                      | IndependentPlatformPlugin;

                                                                                                                                                                                                                                                                                                                                                                                                                                                        interface PluginInitializer

                                                                                                                                                                                                                                                                                                                                                                                                                                                        interface PluginInitializer {}
                                                                                                                                                                                                                                                                                                                                                                                                                                                        • The {PluginInitializer} is a method which must be the default export for every homebridge plugin. It is called once the plugin is loaded from disk.

                                                                                                                                                                                                                                                                                                                                                                                                                                                        call signature

                                                                                                                                                                                                                                                                                                                                                                                                                                                        (api: API): void | Promise<void>;
                                                                                                                                                                                                                                                                                                                                                                                                                                                        • When the initializer is called the plugin must use the provided api instance and call the appropriate register methods - API.registerAccessory or API.registerPlatform - in order to correctly register for the following startup sequence.

                                                                                                                                                                                                                                                                                                                                                                                                                                                          Parameter api

                                                                                                                                                                                                                                                                                                                                                                                                                                                        interface RvcCleanModeHandlers

                                                                                                                                                                                                                                                                                                                                                                                                                                                        interface RvcCleanModeHandlers {}
                                                                                                                                                                                                                                                                                                                                                                                                                                                        • RvcCleanMode cluster handler methods

                                                                                                                                                                                                                                                                                                                                                                                                                                                        property changeToMode

                                                                                                                                                                                                                                                                                                                                                                                                                                                        changeToMode?: MatterCommandHandler<ModeBase.ChangeToModeRequest>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                          interface RvcCleanModeState

                                                                                                                                                                                                                                                                                                                                                                                                                                                          interface RvcCleanModeState {}
                                                                                                                                                                                                                                                                                                                                                                                                                                                          • RVC Clean Mode state

                                                                                                                                                                                                                                                                                                                                                                                                                                                          property currentMode

                                                                                                                                                                                                                                                                                                                                                                                                                                                          currentMode?: number;

                                                                                                                                                                                                                                                                                                                                                                                                                                                            property onMode

                                                                                                                                                                                                                                                                                                                                                                                                                                                            onMode?: number | null;

                                                                                                                                                                                                                                                                                                                                                                                                                                                              property startUpMode

                                                                                                                                                                                                                                                                                                                                                                                                                                                              startUpMode?: number | null;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                property supportedModes

                                                                                                                                                                                                                                                                                                                                                                                                                                                                supportedModes?: Array<{
                                                                                                                                                                                                                                                                                                                                                                                                                                                                label: string;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                mode: number;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                modeTags?: Array<{
                                                                                                                                                                                                                                                                                                                                                                                                                                                                value: number;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                }>;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                }>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                  interface RvcOperationalState

                                                                                                                                                                                                                                                                                                                                                                                                                                                                  interface RvcOperationalState {}
                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • RVC (Robotic Vacuum Cleaner) Operational State

                                                                                                                                                                                                                                                                                                                                                                                                                                                                  property countdownTime

                                                                                                                                                                                                                                                                                                                                                                                                                                                                  countdownTime?: number | null;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                    property currentPhase

                                                                                                                                                                                                                                                                                                                                                                                                                                                                    currentPhase?: number | null;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                      property operationalError

                                                                                                                                                                                                                                                                                                                                                                                                                                                                      operationalError?: {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                      errorStateId: number;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                      errorStateLabel?: string;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                      errorStateDetails?: string;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                      };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                        property operationalState

                                                                                                                                                                                                                                                                                                                                                                                                                                                                        operationalState?: number;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                          property operationalStateList

                                                                                                                                                                                                                                                                                                                                                                                                                                                                          operationalStateList?: Array<{
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          operationalStateId: number;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          operationalStateLabel?: string;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          }>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                            property phaseList

                                                                                                                                                                                                                                                                                                                                                                                                                                                                            phaseList?: string[] | null;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                              interface RvcOperationalStateHandlers

                                                                                                                                                                                                                                                                                                                                                                                                                                                                              interface RvcOperationalStateHandlers {}
                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • RvcOperationalState cluster handler methods

                                                                                                                                                                                                                                                                                                                                                                                                                                                                              property goHome

                                                                                                                                                                                                                                                                                                                                                                                                                                                                              goHome?: MatterCommandHandler;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                property pause

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                pause?: MatterCommandHandler;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  property resume

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  resume?: MatterCommandHandler;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    interface RvcRunModeHandlers

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    interface RvcRunModeHandlers {}
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • RvcRunMode cluster handler methods

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    property changeToMode

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    changeToMode?: MatterCommandHandler<ModeBase.ChangeToModeRequest>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      interface RvcRunModeState

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      interface RvcRunModeState {}
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      • RVC Run Mode state

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      property currentMode

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      currentMode?: number;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        property onMode

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        onMode?: number | null;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          property startUpMode

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          startUpMode?: number | null;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            property supportedModes

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            supportedModes?: Array<{
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            label: string;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            mode: number;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            modeTags?: Array<{
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            value: number;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            }>;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            }>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              interface SerializedMatterAccessory

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              interface SerializedMatterAccessory {}
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • Serializable Matter accessory (excludes functions and runtime state) Plugin developers should work with MatterAccessory instead.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              property clusters

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              clusters?: {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              [clusterName: string]: {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              [attributeName: string]: unknown;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              };
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                property context

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                context: Record<string, unknown>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  property deviceType

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  deviceType: {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  name?: string;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  code?: number;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    property displayName

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    displayName: string;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      property firmwareRevision

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      firmwareRevision?: string;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        property hardwareRevision

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        hardwareRevision?: string;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          property manufacturer

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          manufacturer: string;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            property model

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            model: string;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              property parts

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              parts?: SerializedMatterAccessoryPart[];

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                property platform

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                platform: string;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  property plugin

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  plugin: string;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    property serialNumber

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    serialNumber: string;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      property softwareVersion

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      softwareVersion?: string;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        property uuid

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        uuid: string;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          interface ServiceAreaHandlers

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          interface ServiceAreaHandlers {}
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          • ServiceArea cluster handler methods

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          property selectAreas

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          selectAreas?: MatterCommandHandler<ServiceArea.SelectAreasRequest>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            property skipArea

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            skipArea?: MatterCommandHandler<ServiceArea.SkipAreaRequest>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              interface ServiceAreaState

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              interface ServiceAreaState {}
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • Service Area state

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              property currentArea

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              currentArea?: number | null;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                property estimatedEndTime

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                estimatedEndTime?: number | null;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  property progress

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  progress?: Array<{
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  areaId: number;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  status: number;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  totalOperationalTime?: number | null;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  }>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    property selectedAreas

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    selectedAreas?: number[];

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      property supportedAreas

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      supportedAreas?: Array<{
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      areaId: number;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      mapId: number | null;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      areaInfo: {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      locationInfo?: {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      locationName?: string;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      floorNumber?: number | null;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      areaType?: number | null;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      } | null;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      landmarkInfo?: {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      landmarkTag?: number;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      positionTag?: number | null;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      relativePositionTag?: number | null;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      } | null;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      };
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      }>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        property supportedMaps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        supportedMaps?: Array<{
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        mapId: number;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        name: string;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        }>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          interface StaticPlatformPlugin

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          interface StaticPlatformPlugin extends PlatformPlugin {}
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          • Platform that exposes all available characteristics at the start of the plugin. The set of accessories can not change at runtime. The bridge waits for all callbacks to return before it is published and accessible by HomeKit controllers.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          property accessories

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          accessories: (callback: (foundAccessories: AccessoryPlugin[]) => void) => void;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          • This method is called once at startup. The Platform should pass all accessories which need to be created to the callback in form of a AccessoryPlugin. The Platform must respond in a timely manner as otherwise the startup of the bridge would be unnecessarily delayed.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Parameter callback

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          interface SwitchAPI

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          interface SwitchAPI {}
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          • Switch helper API for GenericSwitch accessories (stateless remotes and buttons).

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Grouped under api.matter?.switch so device-type-specific helpers don't crowd the top-level MatterAPI surface. Built on top of updateAccessoryState for the Switch cluster.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          property emit

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          emit: (
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          uuid: string,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          action: 'press' | 'release',
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          options?: {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          position?: number;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          partId?: string;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          ) => Promise<void>;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          • Emit a switch action for a GenericSwitch accessory.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            High-level helper for stateless switches and remotes (e.g. Pico remotes, scene controllers). Sets the Switch cluster's currentPosition attribute, which causes the Matter.js SwitchServer to automatically fire the appropriate cluster events:

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | Action | When to use | Events fired by Matter.js | |-----------|-------------------------------------------|----------------------------------------| | press | Physical button pressed / contact closed | initialPress | | release | Physical button released / contact opened | shortRelease or longRelease* |

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            shortRelease vs longRelease is determined automatically by the SwitchServer based on how long the button was held (configurable via longPressDelay, default 2 s). Multi-press sequences (multiPressComplete) are generated automatically when press/release cycles occur within the multiPressDelay window (default 300 ms).

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Parameter uuid

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            UUID of the GenericSwitch accessory

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Parameter action

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            'press' to press the button, 'release' to release it

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Parameter options

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Optional configuration

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Parameter

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            options.position - Button position index (1-based). Defaults to 1. Use when the GenericSwitch has multiple positions (e.g. a multi-button remote).

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Parameter

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            options.partId - Part ID for composed devices with GenericSwitch parts.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Example 1

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            // Simple single-button press and release
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            await api.matter?.switch.emit(uuid, 'press')
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            await api.matter?.switch.emit(uuid, 'release')
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            // Multi-button remote: button 2 press and release
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            await api.matter?.switch.emit(uuid, 'press', { position: 2 })
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            await api.matter?.switch.emit(uuid, 'release', { position: 2 })
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            // GenericSwitch as a part in a composed device
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            await api.matter?.switch.emit(uuid, 'press', { partId: 'button-top' })
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            await api.matter?.switch.emit(uuid, 'release', { partId: 'button-top' })

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          property emitGesture

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          emitGesture: (
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          uuid: string,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          gesture: 'singlePress' | 'doublePress' | 'longPress',
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          options?: {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          position?: number;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          partId?: string;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          longPressDelayMs?: number;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          multiPressDelayMs?: number;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          ) => Promise<void>;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          • Emit a high-level gesture for a GenericSwitch accessory.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Convenience helper for integrations that already classify gestures (e.g. remotes that report only single, double, or hold). Translates each gesture into the canonical press / release sequence that Matter.js SwitchServer expects, so the server still determines the correct Switch cluster events (shortRelease, longRelease, multiPressComplete) based on timing.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | Gesture | Translated sequence | |---------------|-----------------------------------------------------------------| | singlePress | pressrelease | | doublePress | pressrelease → *(multiPressDelayMs)* → pressrelease | | longPress | press → *(longPressDelayMs)* → release |

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Default delays: - longPressDelayMs2500 ms (just above the Matter.js longPressDelay default of 2000 ms) - multiPressDelayMs100 ms (well within the Matter.js multiPressDelay window of 300 ms)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Parameter uuid

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            UUID of the GenericSwitch accessory

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Parameter gesture

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            The gesture to emit: 'singlePress', 'doublePress', or 'longPress'

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Parameter options

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Optional configuration

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Parameter

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            options.position - Button position index (1-based). Defaults to 1.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Parameter

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            options.partId - Part ID for composed devices with GenericSwitch parts.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Parameter

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            options.longPressDelayMs - How long (ms) to hold the button for a long press. Defaults to 2500. Only relevant for 'longPress'.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Parameter

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            options.multiPressDelayMs - Delay (ms) between the two press cycles of a double press. Defaults to 100. Only relevant for 'doublePress'.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Example 1

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            // Single press on a simple remote
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            await api.matter?.switch.emitGesture(uuid, 'singlePress')
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            // Double press on button 2 of a multi-button remote
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            await api.matter?.switch.emitGesture(uuid, 'doublePress', { position: 2 })
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            // Long press on a composed device part
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            await api.matter?.switch.emitGesture(uuid, 'longPress', { partId: 'button-top' })

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          interface ThermostatHandlers

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          interface ThermostatHandlers {}
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          • Thermostat cluster handler methods

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          property occupiedCoolingSetpointChange

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          occupiedCoolingSetpointChange?: MatterCommandHandler<{
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          occupiedCoolingSetpoint: number;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          oldOccupiedCoolingSetpoint: number;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          }>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            property occupiedHeatingSetpointChange

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            occupiedHeatingSetpointChange?: MatterCommandHandler<{
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            occupiedHeatingSetpoint: number;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            oldOccupiedHeatingSetpoint: number;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            }>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              property setpointRaiseLower

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              setpointRaiseLower?: MatterCommandHandler<Thermostat.SetpointRaiseLowerRequest>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                property systemModeChange

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                systemModeChange?: MatterCommandHandler<{
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                systemMode: number;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                oldSystemMode: number;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                }>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  interface ThermostatState

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  interface ThermostatState {}
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • Thermostat cluster state

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  property absMaxCoolSetpointLimit

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  absMaxCoolSetpointLimit?: number;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    property absMaxHeatSetpointLimit

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    absMaxHeatSetpointLimit?: number;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      property absMinCoolSetpointLimit

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      absMinCoolSetpointLimit?: number;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        property absMinHeatSetpointLimit

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        absMinHeatSetpointLimit?: number;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          property controlSequenceOfOperation

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          controlSequenceOfOperation?: number;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            property externallyMeasuredOccupancy

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            externallyMeasuredOccupancy?: boolean;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              property externalMeasuredIndoorTemperature

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              externalMeasuredIndoorTemperature?: number | null;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                property localTemperature

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                localTemperature?: number | null;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  property maxCoolSetpointLimit

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  maxCoolSetpointLimit?: number;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    property maxHeatSetpointLimit

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    maxHeatSetpointLimit?: number;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      property minCoolSetpointLimit

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      minCoolSetpointLimit?: number;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        property minHeatSetpointLimit

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        minHeatSetpointLimit?: number;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          property minSetpointDeadBand

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          minSetpointDeadBand?: number;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            property numberOfDailyTransitions

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            numberOfDailyTransitions?: number;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              property numberOfWeeklyTransitions

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              numberOfWeeklyTransitions?: number;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                property occupancy

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                occupancy?: {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                occupied?: boolean;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  property occupiedCoolingSetpoint

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  occupiedCoolingSetpoint?: number;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    property occupiedHeatingSetpoint

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    occupiedHeatingSetpoint?: number;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      property outdoorTemperature

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      outdoorTemperature?: number | null;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        property remoteSensing

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        remoteSensing?: number;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          property startOfWeek

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          startOfWeek?: number;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            property systemMode

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            systemMode?: number;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              property thermostatRunningMode

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              thermostatRunningMode?: number;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                property unoccupiedCoolingSetpoint

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                unoccupiedCoolingSetpoint?: number;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  property unoccupiedHeatingSetpoint

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  unoccupiedHeatingSetpoint?: number;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    interface WindowCoveringHandlers

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    interface WindowCoveringHandlers {}
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • WindowCovering cluster handler methods

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    property downOrClose

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    downOrClose?: MatterCommandHandler;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      property goToLiftPercentage

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      goToLiftPercentage?: MatterCommandHandler<WindowCovering.GoToLiftPercentageRequest>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        property goToTiltPercentage

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        goToTiltPercentage?: MatterCommandHandler<WindowCovering.GoToTiltPercentageRequest>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          property stopMotion

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          stopMotion?: MatterCommandHandler;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            property upOrOpen

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            upOrOpen?: MatterCommandHandler;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              interface WindowCoveringState

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              interface WindowCoveringState {}
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • WindowCovering cluster state Based on @matter/main/clusters WindowCovering

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              property configStatus

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              configStatus?: {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              operational?: boolean;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              onlineReserved?: boolean;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              online?: boolean;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              liftMovementReversed?: boolean;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              liftPositionAware?: boolean;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              tiltPositionAware?: boolean;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              liftEncoderControlled?: boolean;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              tiltEncoderControlled?: boolean;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                property currentPositionLiftPercent100ths

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                currentPositionLiftPercent100ths?: number | null;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  property currentPositionTiltPercent100ths

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  currentPositionTiltPercent100ths?: number | null;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    property endProductType

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    endProductType?: number;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      property mode

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      mode?: number;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        property operationalStatus

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        operationalStatus?: {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        global: number;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        lift: number;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        tilt: number;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          property safetyStatus

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          safetyStatus?: number;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            property targetPositionLiftPercent100ths

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            targetPositionLiftPercent100ths?: number | null;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              property targetPositionTiltPercent100ths

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              targetPositionTiltPercent100ths?: number | null;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                property type

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type?: WindowCovering.WindowCoveringType;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  Enums

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  enum APIEvent

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  const enum APIEvent {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  DID_FINISH_LAUNCHING = 'didFinishLaunching',
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  SHUTDOWN = 'shutdown',
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    member DID_FINISH_LAUNCHING

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    DID_FINISH_LAUNCHING = 'didFinishLaunching'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • Event is fired once homebridge has finished with booting up and initializing all components and plugins. When this event is fired it is possible that the Bridge accessory isn't published yet, if homebridge still needs to wait for some to finish accessory creation.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    member SHUTDOWN

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    SHUTDOWN = 'shutdown'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • This event is fired when homebridge gets shutdown. This could be a regular shutdown or an unexpected crash. At this stage all Accessories are already unpublished and all PlatformAccessories are already saved to disk!

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    enum ChildMatterMessageType

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    enum ChildMatterMessageType {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    READY = 'ready',
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    LOAD = 'load',
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    LOADED = 'loaded',
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    START = 'start',
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ONLINE = 'online',
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ADD_ACCESSORY = 'addAccessory',
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    REMOVE_ACCESSORY = 'removeAccessory',
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    STATUS_UPDATE = 'statusUpdate',
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ERROR = 'error',
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    SHUTDOWN = 'shutdown',
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • IPC message types for Matter child bridges These message types coordinate communication between the main process and Matter child bridge processes

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    member ADD_ACCESSORY

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ADD_ACCESSORY = 'addAccessory'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • Sent to/from child process to add a Matter accessory

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    member ERROR

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ERROR = 'error'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • Sent from child process when an error occurs

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    member LOAD

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    LOAD = 'load'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • Sent to child process with bridge configuration

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    member LOADED

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    LOADED = 'loaded'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • Sent from child process when configuration has been loaded

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    member ONLINE

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ONLINE = 'online'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • Sent from child process when Matter bridge is online and advertising

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    member READY

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    READY = 'ready'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • Sent from child process when ready to accept configuration

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    member REMOVE_ACCESSORY

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    REMOVE_ACCESSORY = 'removeAccessory'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • Sent to/from child process to remove a Matter accessory

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    member SHUTDOWN

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    SHUTDOWN = 'shutdown'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • Sent to child process to initiate graceful shutdown

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    member START

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    START = 'start'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • Sent to child process to start the Matter bridge

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    member STATUS_UPDATE

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    STATUS_UPDATE = 'statusUpdate'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • Sent from child process with commissioning and operational status updates

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    enum LogLevel

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    const enum LogLevel {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    INFO = 'info',
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    SUCCESS = 'success',
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    WARN = 'warn',
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ERROR = 'error',
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    DEBUG = 'debug',
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • Log levels to indicate importance of the logged message. Every level corresponds to a certain color.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      - INFO: no color - SUCCESS: green - WARN: yellow - ERROR: red - DEBUG: gray

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Messages with DEBUG level are only displayed if explicitly enabled.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    member DEBUG

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    DEBUG = 'debug'

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      member ERROR

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      ERROR = 'error'

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        member INFO

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        INFO = 'info'

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          member SUCCESS

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          SUCCESS = 'success'

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            member WARN

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            WARN = 'warn'

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              enum MatterAccessoryEventTypes

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              enum MatterAccessoryEventTypes {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              READY = 'ready',
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • Matter Accessory Event Types

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Events that can be emitted by Matter accessories during their lifecycle.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Example 1

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Listen for when a Matter accessory is ready
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                const accessory: MatterAccessory = { ... };
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                api.matter?.publishExternalAccessories('plugin-name', [accessory]);
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                const internal = accessory as any;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                internal._eventEmitter?.on(MatterAccessoryEventTypes.READY, (port: number) => {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                console.log(`Accessory ready on port ${port}`);
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                });

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Matter Accessory

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              member READY

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              READY = 'ready'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • Emitted when the Matter server is ready and the accessory is available on the network. This is the main event to listen for to know when an external accessory is ready.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                **HAP Equivalent:** AccessoryEventTypes.ADVERTISED

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Parameter port

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                The port number the Matter server is listening on

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              enum MatterBridgeStatus

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              enum MatterBridgeStatus {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              PENDING = 'pending',
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              OK = 'ok',
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              DOWN = 'down',
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • Matter bridge status states

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              member DOWN

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              DOWN = 'down'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • The bridge is shutting down or stopped

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              member OK

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              OK = 'ok'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • The Matter bridge is online and ready for commissioning

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              member PENDING

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              PENDING = 'pending'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • When the Matter bridge is loading or restarting

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              enum MatterErrorType

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              enum MatterErrorType {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              INITIALIZATION = 'INITIALIZATION',
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              NETWORK = 'NETWORK',
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              COMMISSIONING = 'COMMISSIONING',
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              DEVICE_SYNC = 'DEVICE_SYNC',
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              SERVER = 'SERVER',
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              STORAGE = 'STORAGE',
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              CONFIGURATION = 'CONFIGURATION',
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              DEVICE_ERROR = 'DEVICE_ERROR',
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              UNKNOWN = 'UNKNOWN',
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • Internal Matter error classes

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Kept in a dedicated lightweight module so consumers like ChildBridgeMatterMessageHandler can instanceof-check the sentinel (MatterAccessoryNotOnBridgeError) without dragging in the heavy @matter/* runtime imports that live in ./types.ts.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                IMPORTANT: never add a runtime @matter/* import to this file — matterLazyLoading.spec.ts treats it as a lightweight module that core / lightweight consumers are allowed to import eagerly.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Not to be confused with ./errors.ts, which holds the plugin-facing MatterStatus.* Matter protocol status errors (those subclass @matter/main's StatusResponseError and are intentionally heavy).

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              member COMMISSIONING

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              COMMISSIONING = 'COMMISSIONING'

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                member CONFIGURATION

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                CONFIGURATION = 'CONFIGURATION'

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  member DEVICE_ERROR

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  DEVICE_ERROR = 'DEVICE_ERROR'

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    member DEVICE_SYNC

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    DEVICE_SYNC = 'DEVICE_SYNC'

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      member INITIALIZATION

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      INITIALIZATION = 'INITIALIZATION'

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        member NETWORK

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        NETWORK = 'NETWORK'

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          member SERVER

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          SERVER = 'SERVER'

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            member STORAGE

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            STORAGE = 'STORAGE'

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              member UNKNOWN

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              UNKNOWN = 'UNKNOWN'

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                enum PlatformAccessoryEvent

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                const enum PlatformAccessoryEvent {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                IDENTIFY = 'identify',
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  member IDENTIFY

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  IDENTIFY = 'identify'

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    enum PluginType

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    const enum PluginType {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ACCESSORY = 'accessory',
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    PLATFORM = 'platform',
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      member ACCESSORY

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      ACCESSORY = 'accessory'

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        member PLATFORM

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        PLATFORM = 'platform'

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Type Aliases

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type AccessoryIdentifier

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type AccessoryIdentifier = string;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type AccessoryName

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type AccessoryName = string;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type HAP

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type HAP = API['hap'];

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type MatterClusterName

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type MatterClusterName = (typeof clusterNames)[keyof typeof clusterNames];
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                • Type for Matter cluster names Provides type safety for cluster name strings

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type MatterCommandHandler

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type MatterCommandHandler<TArgs = unknown> = (
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                args: TArgs,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                context?: MatterHandlerContext
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ) => Promise<void> | void;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                • Matter command handler function type

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  Handlers can be synchronous or asynchronous (returning a Promise). The args parameter contains the command arguments passed by Matter.js (optional). The context parameter provides information about which part triggered the handler (for composed devices).

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type PlatformIdentifier

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type PlatformIdentifier = string;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type PlatformName

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type PlatformName = string;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type PluginIdentifier

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type PluginIdentifier = PluginName | ScopedPluginName;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type PluginName

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type PluginName = string;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type ScopedPluginName

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type ScopedPluginName = string;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type UnknownContext

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type UnknownContext = Record<string, any>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Namespaces

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            namespace MatterRequests

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            namespace MatterRequests {}
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            • Matter Cluster Command Request Types Use these types for handler arguments to get full type safety

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              Example 1

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              import type { MatterRequests } from 'homebridge'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              handlers: {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              levelControl: {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              moveToLevel: async (args: MatterRequests.MoveToLevel) => {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              console.log(`Level: ${args.level}`)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type AddGroup

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type AddGroup = Groups.AddGroupRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type AddGroupIfIdentifying

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type AddGroupIfIdentifying = Groups.AddGroupIfIdentifyingRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type AddScene

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type AddScene = ScenesManagement.AddSceneRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type ChangeToMode

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type ChangeToMode = ModeBase.ChangeToModeRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type ClearCredential

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type ClearCredential = DoorLock.ClearCredentialRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type ClearHolidaySchedule

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type ClearHolidaySchedule = DoorLock.ClearHolidayScheduleRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type ClearUser

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type ClearUser = DoorLock.ClearUserRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type ClearWeekDaySchedule

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type ClearWeekDaySchedule = DoorLock.ClearWeekDayScheduleRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type ClearYearDaySchedule

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type ClearYearDaySchedule = DoorLock.ClearYearDayScheduleRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type ColorLoopSet

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type ColorLoopSet = ColorControl.ColorLoopSetRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type CopyScene

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type CopyScene = ScenesManagement.CopySceneRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type EnhancedMoveHue

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type EnhancedMoveHue = ColorControl.EnhancedMoveHueRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type EnhancedMoveToHue

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type EnhancedMoveToHue = ColorControl.EnhancedMoveToHueRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type EnhancedMoveToHueAndSaturation

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type EnhancedMoveToHueAndSaturation =
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      ColorControl.EnhancedMoveToHueAndSaturationRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type EnhancedStepHue

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type EnhancedStepHue = ColorControl.EnhancedStepHueRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type FanStep

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type FanStep = FanControl.StepRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type GetCredentialStatus

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type GetCredentialStatus = DoorLock.GetCredentialStatusRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type GetGroupMembership

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type GetGroupMembership = Groups.GetGroupMembershipRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type GetHolidaySchedule

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type GetHolidaySchedule = DoorLock.GetHolidayScheduleRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type GetSceneMembership

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type GetSceneMembership = ScenesManagement.GetSceneMembershipRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type GetUser

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type GetUser = DoorLock.GetUserRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type GetWeekDaySchedule

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type GetWeekDaySchedule = DoorLock.GetWeekDayScheduleRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type GetYearDaySchedule

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type GetYearDaySchedule = DoorLock.GetYearDayScheduleRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type GoToLiftPercentage

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type GoToLiftPercentage = WindowCovering.GoToLiftPercentageRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type GoToTiltPercentage

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type GoToTiltPercentage = WindowCovering.GoToTiltPercentageRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type IdentifyRequest

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type IdentifyRequest = Identify.IdentifyRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type LockDoor

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type LockDoor = DoorLock.LockDoorRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type Move

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type Move = LevelControl.MoveRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type MoveColor

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type MoveColor = ColorControl.MoveColorRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type MoveColorTemperature

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type MoveColorTemperature = ColorControl.MoveColorTemperatureRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type MoveHue

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type MoveHue = ColorControl.MoveHueRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type MoveSaturation

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type MoveSaturation = ColorControl.MoveSaturationRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type MoveToClosestFrequency

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type MoveToClosestFrequency = LevelControl.MoveToClosestFrequencyRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type MoveToColor

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type MoveToColor = ColorControl.MoveToColorRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type MoveToColorTemperature

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type MoveToColorTemperature = ColorControl.MoveToColorTemperatureRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type MoveToHue

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type MoveToHue = ColorControl.MoveToHueRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type MoveToHueAndSaturation

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type MoveToHueAndSaturation = ColorControl.MoveToHueAndSaturationRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type MoveToLevel

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type MoveToLevel = LevelControl.MoveToLevelRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type MoveToSaturation

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type MoveToSaturation = ColorControl.MoveToSaturationRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type OffWithEffect

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type OffWithEffect = OnOff.OffWithEffectRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type OnWithTimedOff

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type OnWithTimedOff = OnOff.OnWithTimedOffRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type OpenValve

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type OpenValve = ValveConfigurationAndControl.OpenRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type RecallScene

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type RecallScene = ScenesManagement.RecallSceneRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type RemoveAllScenes

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type RemoveAllScenes = ScenesManagement.RemoveAllScenesRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type RemoveGroup

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type RemoveGroup = Groups.RemoveGroupRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type RemoveScene

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type RemoveScene = ScenesManagement.RemoveSceneRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type SelectAreas

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type SelectAreas = ServiceArea.SelectAreasRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type SetActivePreset

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type SetActivePreset = Thermostat.SetActivePresetRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type SetActiveSchedule

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type SetActiveSchedule = Thermostat.SetActiveScheduleRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type SetAliroReaderConfig

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type SetAliroReaderConfig = DoorLock.SetAliroReaderConfigRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type SetCredential

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type SetCredential = DoorLock.SetCredentialRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type SetHolidaySchedule

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type SetHolidaySchedule = DoorLock.SetHolidayScheduleRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type SetpointRaiseLower

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type SetpointRaiseLower = Thermostat.SetpointRaiseLowerRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type SetUser

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type SetUser = DoorLock.SetUserRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type SetWeekDaySchedule

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type SetWeekDaySchedule = DoorLock.SetWeekDayScheduleRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type SetYearDaySchedule

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type SetYearDaySchedule = DoorLock.SetYearDayScheduleRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type SkipArea

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type SkipArea = ServiceArea.SkipAreaRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type Step

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type Step = LevelControl.StepRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type StepColor

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type StepColor = ColorControl.StepColorRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type StepColorTemperature

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type StepColorTemperature = ColorControl.StepColorTemperatureRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type StepHue

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type StepHue = ColorControl.StepHueRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type StepSaturation

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type StepSaturation = ColorControl.StepSaturationRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type Stop

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type Stop = LevelControl.StopRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type StopMoveStep

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type StopMoveStep = ColorControl.StopMoveStepRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type StoreScene

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type StoreScene = ScenesManagement.StoreSceneRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type TriggerEffect

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type TriggerEffect = Identify.TriggerEffectRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type UnboltDoor

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type UnboltDoor = DoorLock.UnboltDoorRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type UnlockDoor

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type UnlockDoor = DoorLock.UnlockDoorRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type UnlockWithTimeout

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type UnlockWithTimeout = DoorLock.UnlockWithTimeoutRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type ViewGroup

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type ViewGroup = Groups.ViewGroupRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type ViewScene

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type ViewScene = ScenesManagement.ViewSceneRequest;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Package Files (18)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Dependencies (8)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Dev Dependencies (15)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Peer Dependencies (0)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          No peer dependencies.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Badge

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          To add a badge like this onejsDocs.io badgeto your package's README, use the codes available below.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          You may also use Shields.io to create a custom badge linking to https://www.jsdocs.io/package/homebridge.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          • Markdown
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            [![jsDocs.io](https://img.shields.io/badge/jsDocs.io-reference-blue)](https://www.jsdocs.io/package/homebridge)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          • HTML
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            <a href="https://www.jsdocs.io/package/homebridge"><img src="https://img.shields.io/badge/jsDocs.io-reference-blue" alt="jsDocs.io"></a>