/** * @license * Copyright 2022-2026 Matter.js Authors * SPDX-License-Identifier: Apache-2.0 */ /*** THIS FILE IS GENERATED, DO NOT EDIT ***/ import { FanControlServer as BaseFanControlServer } from "../behaviors/fan-control/FanControlServer.js"; import { IdentifyServer as BaseIdentifyServer } from "../behaviors/identify/IdentifyServer.js"; import { HepaFilterMonitoringServer as BaseHepaFilterMonitoringServer } from "../behaviors/hepa-filter-monitoring/HepaFilterMonitoringServer.js"; import { ActivatedCarbonFilterMonitoringServer as BaseActivatedCarbonFilterMonitoringServer } from "../behaviors/activated-carbon-filter-monitoring/ActivatedCarbonFilterMonitoringServer.js"; import { MutableEndpoint } from "../endpoint/type/MutableEndpoint.js"; import { SupportedBehaviors } from "../endpoint/properties/SupportedBehaviors.js"; import { Identity } from "@matter/general"; /** * An Extractor Hood is a device that is generally installed above a cooking surface in residential kitchens. An * Extractor Hood's primary purpose is to reduce odors that arise during the cooking process by either extracting the * air above the cooking surface or by recirculating and filtering it. It may also contain a light for illuminating the * cooking surface. * * Extractor Hoods may also be known by the following names: * * - Hoods * * - Extractor Fans * * - Extractors * * - Range Hoods * * - Telescoping Hoods * * - Telescoping Extractors * * ### Device Type Requirements * * An Extractor Hood is composed of other device types listed in this table subject to the conformance column of the * table. All devices used in compositions shall adhere to the disambiguation and superset requirements of the System * Model. Specifically, please note that the On/Off Light as listed is a Superset Device Type as defined by the System * Model (see Superset Device Types in MatterCore), and so the rules defined in that section apply to the use of On/Off * Light as a superset when composed in this device type. Additional device types not listed in this table may also be * included in device compositions. * * @see {@link MatterSpecification.v161.Device} ยง 13.10 */ export interface ExtractorHoodDevice extends Identity {} export namespace ExtractorHoodRequirements { /** * The FanControl cluster is required by the Matter specification. * * We provide this alias to the default implementation {@link FanControlServer} for convenience. */ export const FanControlServer = BaseFanControlServer; /** * The Identify cluster is optional per the Matter specification. * * We provide this alias to the default implementation {@link IdentifyServer} for convenience. */ export const IdentifyServer = BaseIdentifyServer; /** * The HepaFilterMonitoring cluster is optional per the Matter specification. * * We provide this alias to the default implementation {@link HepaFilterMonitoringServer} for convenience. */ export const HepaFilterMonitoringServer = BaseHepaFilterMonitoringServer; /** * The ActivatedCarbonFilterMonitoring cluster is optional per the Matter specification. * * We provide this alias to the default implementation {@link ActivatedCarbonFilterMonitoringServer} for * convenience. */ export const ActivatedCarbonFilterMonitoringServer = BaseActivatedCarbonFilterMonitoringServer; /** * An implementation for each server cluster supported by the endpoint per the Matter specification. */ export const server = { mandatory: { FanControl: FanControlServer }, optional: { Identify: IdentifyServer, HepaFilterMonitoring: HepaFilterMonitoringServer, ActivatedCarbonFilterMonitoring: ActivatedCarbonFilterMonitoringServer } }; } export const ExtractorHoodDeviceDefinition = MutableEndpoint({ name: "ExtractorHood", deviceType: 0x7a, deviceRevision: 1, requirements: ExtractorHoodRequirements, behaviors: SupportedBehaviors(ExtractorHoodRequirements.server.mandatory.FanControl) }); Object.freeze(ExtractorHoodDeviceDefinition); export const ExtractorHoodDevice: ExtractorHoodDevice = ExtractorHoodDeviceDefinition;