Hierarchy

  • WindowCoveringServer_base
    • WindowCoveringServer

Constructors

  • Parameters

    • agent: Agent
    • backing: BehaviorBacking

    Returns WindowCoveringServer

Properties

[reference]: Datasource<StateType>
agent: Agent
cluster: never

The implemented cluster.

context: ActionContext
endpoint: Endpoint<Empty>
events: EventEmitter & Omit<ClusterEvents<WithFeatures<Of<{
    attributes: {
        configStatus: Attribute<TypeFromPartialBitSchema<{
            liftEncoderControlled: BitFlag;
            liftMovementReversed: BitFlag;
            liftPositionAware: BitFlag;
            onlineReserved: BitFlag;
            operational: BitFlag;
            tiltEncoderControlled: BitFlag;
            tiltPositionAware: BitFlag;
        }>, any>;
        endProductType: FixedAttribute<WindowCovering.EndProductType, any>;
        mode: WritableAttribute<TypeFromPartialBitSchema<{
            calibrationMode: BitFlag;
            ledFeedback: BitFlag;
            maintenanceMode: BitFlag;
            motorDirectionReversed: BitFlag;
        }>, any>;
        operationalStatus: Attribute<TypeFromPartialBitSchema<{
            global: BitFieldEnum<(...)>;
            lift: BitFieldEnum<(...)>;
            tilt: BitFieldEnum<(...)>;
        }>, any>;
        safetyStatus: OptionalAttribute<TypeFromPartialBitSchema<{
            failedCommunication: BitFlag;
            hardwareFailure: BitFlag;
            manualOperation: BitFlag;
            motorJammed: BitFlag;
            obstacleDetected: BitFlag;
            positionFailure: BitFlag;
            power: BitFlag;
            protection: BitFlag;
            remoteLockout: BitFlag;
            stopInput: BitFlag;
            tamperDetection: BitFlag;
            thermalProtection: BitFlag;
        }>, any>;
        type: FixedAttribute<WindowCovering.WindowCoveringType, any>;
    };
    commands: {
        downOrClose: Command<void, void, any>;
        stopMotion: Command<void, void, any>;
        upOrOpen: Command<void, void, any>;
    };
    extensions: readonly [{
        component: {
            attributes: {
                currentPositionLift: OptionalAttribute<(...), (...)>;
                installedClosedLimitLift: Attribute<(...), (...)>;
                installedOpenLimitLift: Attribute<(...), (...)>;
                physicalClosedLimitLift: OptionalFixedAttribute<(...), (...)>;
            };
        };
        flags: {
            absolutePosition: true;
            lift: true;
            positionAwareLift: true;
        };
    }, {
        component: {
            attributes: {
                currentPositionTilt: OptionalAttribute<(...), (...)>;
                installedClosedLimitTilt: Attribute<(...), (...)>;
                installedOpenLimitTilt: Attribute<(...), (...)>;
                physicalClosedLimitTilt: OptionalFixedAttribute<(...), (...)>;
            };
        };
        flags: {
            absolutePosition: true;
            positionAwareTilt: true;
            tilt: true;
        };
    }, {
        component: {
            attributes: {
                numberOfActuationsLift: OptionalAttribute<(...), (...)>;
            };
            commands: {
                goToLiftPercentage: OptionalCommand<(...), (...), (...)>;
            };
        };
        flags: {
            lift: true;
        };
    }, {
        component: {
            attributes: {
                numberOfActuationsTilt: OptionalAttribute<(...), (...)>;
            };
            commands: {
                goToTiltPercentage: OptionalCommand<(...), (...), (...)>;
            };
        };
        flags: {
            tilt: true;
        };
    }, {
        component: {
            attributes: {
                currentPositionLiftPercent100ths: Attribute<(...), (...)>;
                currentPositionLiftPercentage: OptionalAttribute<(...), (...)>;
                targetPositionLiftPercent100ths: Attribute<(...), (...)>;
            };
            commands: {
                goToLiftPercentage: Command<(...), (...), (...)>;
            };
        };
        flags: {
            lift: true;
            positionAwareLift: true;
        };
    }, {
        component: {
            attributes: {
                currentPositionTiltPercent100ths: Attribute<(...), (...)>;
                currentPositionTiltPercentage: OptionalAttribute<(...), (...)>;
                targetPositionTiltPercent100ths: Attribute<(...), (...)>;
            };
            commands: {
                goToTiltPercentage: Command<(...), (...), (...)>;
            };
        };
        flags: {
            positionAwareTilt: true;
            tilt: true;
        };
    }, {
        component: {
            commands: {
                goToLiftValue: OptionalCommand<(...), (...), (...)>;
            };
        };
        flags: {
            absolutePosition: true;
            lift: true;
        };
    }, {
        component: {
            commands: {
                goToTiltValue: OptionalCommand<(...), (...), (...)>;
            };
        };
        flags: {
            absolutePosition: true;
            tilt: true;
        };
    }, {
        component: false;
        flags: {
            lift: false;
            positionAwareLift: true;
        };
    }, {
        component: false;
        flags: {
            positionAwareTilt: true;
            tilt: false;
        };
    }, {
        component: false;
        flags: {
            lift: false;
            tilt: false;
        };
    }];
    features: {
        absolutePosition: BitFlag;
        lift: BitFlag;
        positionAwareLift: BitFlag;
        positionAwareTilt: BitFlag;
        tilt: BitFlag;
    };
    id: 258;
    name: "WindowCovering";
    revision: 5;
}>, readonly [Lift, Tilt, PositionAwareLift, PositionAwareTilt, AbsolutePosition]>, Type<Of<{
    attributes: {
        configStatus: Attribute<TypeFromPartialBitSchema<{
            liftEncoderControlled: BitFlag;
            liftMovementReversed: BitFlag;
            liftPositionAware: BitFlag;
            onlineReserved: BitFlag;
            operational: BitFlag;
            tiltEncoderControlled: BitFlag;
            tiltPositionAware: BitFlag;
        }>, any>;
        endProductType: FixedAttribute<WindowCovering.EndProductType, any>;
        mode: WritableAttribute<TypeFromPartialBitSchema<{
            calibrationMode: BitFlag;
            ledFeedback: BitFlag;
            maintenanceMode: BitFlag;
            motorDirectionReversed: BitFlag;
        }>, any>;
        operationalStatus: Attribute<TypeFromPartialBitSchema<{
            global: BitFieldEnum<(...)>;
            lift: BitFieldEnum<(...)>;
            tilt: BitFieldEnum<(...)>;
        }>, any>;
        safetyStatus: OptionalAttribute<TypeFromPartialBitSchema<{
            failedCommunication: BitFlag;
            hardwareFailure: BitFlag;
            manualOperation: BitFlag;
            motorJammed: BitFlag;
            obstacleDetected: BitFlag;
            positionFailure: BitFlag;
            power: BitFlag;
            protection: BitFlag;
            remoteLockout: BitFlag;
            stopInput: BitFlag;
            tamperDetection: BitFlag;
            thermalProtection: BitFlag;
        }>, any>;
        type: FixedAttribute<WindowCovering.WindowCoveringType, any>;
    };
    commands: {
        downOrClose: Command<void, void, any>;
        stopMotion: Command<void, void, any>;
        upOrOpen: Command<void, void, any>;
    };
    extensions: readonly [{
        component: {
            attributes: {
                currentPositionLift: OptionalAttribute<(...), (...)>;
                installedClosedLimitLift: Attribute<(...), (...)>;
                installedOpenLimitLift: Attribute<(...), (...)>;
                physicalClosedLimitLift: OptionalFixedAttribute<(...), (...)>;
            };
        };
        flags: {
            absolutePosition: true;
            lift: true;
            positionAwareLift: true;
        };
    }, {
        component: {
            attributes: {
                currentPositionTilt: OptionalAttribute<(...), (...)>;
                installedClosedLimitTilt: Attribute<(...), (...)>;
                installedOpenLimitTilt: Attribute<(...), (...)>;
                physicalClosedLimitTilt: OptionalFixedAttribute<(...), (...)>;
            };
        };
        flags: {
            absolutePosition: true;
            positionAwareTilt: true;
            tilt: true;
        };
    }, {
        component: {
            attributes: {
                numberOfActuationsLift: OptionalAttribute<(...), (...)>;
            };
            commands: {
                goToLiftPercentage: OptionalCommand<(...), (...), (...)>;
            };
        };
        flags: {
            lift: true;
        };
    }, {
        component: {
            attributes: {
                numberOfActuationsTilt: OptionalAttribute<(...), (...)>;
            };
            commands: {
                goToTiltPercentage: OptionalCommand<(...), (...), (...)>;
            };
        };
        flags: {
            tilt: true;
        };
    }, {
        component: {
            attributes: {
                currentPositionLiftPercent100ths: Attribute<(...), (...)>;
                currentPositionLiftPercentage: OptionalAttribute<(...), (...)>;
                targetPositionLiftPercent100ths: Attribute<(...), (...)>;
            };
            commands: {
                goToLiftPercentage: Command<(...), (...), (...)>;
            };
        };
        flags: {
            lift: true;
            positionAwareLift: true;
        };
    }, {
        component: {
            attributes: {
                currentPositionTiltPercent100ths: Attribute<(...), (...)>;
                currentPositionTiltPercentage: OptionalAttribute<(...), (...)>;
                targetPositionTiltPercent100ths: Attribute<(...), (...)>;
            };
            commands: {
                goToTiltPercentage: Command<(...), (...), (...)>;
            };
        };
        flags: {
            positionAwareTilt: true;
            tilt: true;
        };
    }, {
        component: {
            commands: {
                goToLiftValue: OptionalCommand<(...), (...), (...)>;
            };
        };
        flags: {
            absolutePosition: true;
            lift: true;
        };
    }, {
        component: {
            commands: {
                goToTiltValue: OptionalCommand<(...), (...), (...)>;
            };
        };
        flags: {
            absolutePosition: true;
            tilt: true;
        };
    }, {
        component: false;
        flags: {
            lift: false;
            positionAwareLift: true;
        };
    }, {
        component: false;
        flags: {
            positionAwareTilt: true;
            tilt: false;
        };
    }, {
        component: false;
        flags: {
            lift: false;
            tilt: false;
        };
    }];
    features: {
        absolutePosition: BitFlag;
        lift: BitFlag;
        positionAwareLift: BitFlag;
        positionAwareTilt: BitFlag;
        tilt: BitFlag;
    };
    id: 258;
    name: "WindowCovering";
    revision: 5;
}>, Type<Of<{
    attributes: {};
    commands: {};
    events: {};
    id: 0;
    name: "Unknown";
    revision: 0;
}>, typeof ClusterBehavior, WindowCoveringInterface>, WindowCoveringInterface>>,
    | "type$Changing"
    | "configStatus$Changing"
    | "operationalStatus$Changing"
    | "endProductType$Changing"
    | "mode$Changing"
    | "safetyStatus$Changing"
    | "type$Changed"
    | "configStatus$Changed"
    | "operationalStatus$Changed"
    | "endProductType$Changed"
    | "mode$Changed"
    | "safetyStatus$Changed"
    | "installedOpenLimitLift$Changing"
    | "installedClosedLimitLift$Changing"
    | "installedOpenLimitTilt$Changing"
    | "installedClosedLimitTilt$Changing"
    | "targetPositionLiftPercent100ths$Changing"
    | "currentPositionLiftPercent100ths$Changing"
    | "targetPositionTiltPercent100ths$Changing"
    | "currentPositionTiltPercent100ths$Changing"
    | "physicalClosedLimitLift$Changing"
    | "currentPositionLift$Changing"
    | "physicalClosedLimitTilt$Changing"
    | "currentPositionTilt$Changing"
    | "numberOfActuationsLift$Changing"
    | "numberOfActuationsTilt$Changing"
    | "currentPositionLiftPercentage$Changing"
    | "currentPositionTiltPercentage$Changing"
    | "installedOpenLimitLift$Changed"
    | "installedClosedLimitLift$Changed"
    | "installedOpenLimitTilt$Changed"
    | "installedClosedLimitTilt$Changed"
    | "targetPositionLiftPercent100ths$Changed"
    | "currentPositionLiftPercent100ths$Changed"
    | "targetPositionTiltPercent100ths$Changed"
    | "currentPositionTiltPercent100ths$Changed"
    | "physicalClosedLimitLift$Changed"
    | "currentPositionLift$Changed"
    | "physicalClosedLimitTilt$Changed"
    | "currentPositionTilt$Changed"
    | "numberOfActuationsLift$Changed"
    | "numberOfActuationsTilt$Changed"
    | "currentPositionLiftPercentage$Changed"
    | "currentPositionTiltPercentage$Changed"> & {
    configStatus$Changing: ClusterEvents.AttributeObservable<Attribute<TypeFromPartialBitSchema<{
        liftEncoderControlled: BitFlag;
        liftMovementReversed: BitFlag;
        liftPositionAware: BitFlag;
        onlineReserved: BitFlag;
        operational: BitFlag;
        tiltEncoderControlled: BitFlag;
        tiltPositionAware: BitFlag;
    }>, any>>;
    endProductType$Changing: ClusterEvents.AttributeObservable<FixedAttribute<WindowCovering.EndProductType, any>>;
    mode$Changing: ClusterEvents.AttributeObservable<WritableAttribute<TypeFromPartialBitSchema<{
        calibrationMode: BitFlag;
        ledFeedback: BitFlag;
        maintenanceMode: BitFlag;
        motorDirectionReversed: BitFlag;
    }>, any>>;
    operationalStatus$Changing: ClusterEvents.AttributeObservable<Attribute<TypeFromPartialBitSchema<{
        global: BitFieldEnum<WindowCovering.MovementStatus>;
        lift: BitFieldEnum<WindowCovering.MovementStatus>;
        tilt: BitFieldEnum<WindowCovering.MovementStatus>;
    }>, any>>;
    type$Changing: ClusterEvents.AttributeObservable<FixedAttribute<WindowCovering.WindowCoveringType, any>>;
} & {
    safetyStatus$Changing: undefined | ClusterEvents.AttributeObservable<OptionalAttribute<TypeFromPartialBitSchema<{
        failedCommunication: BitFlag;
        hardwareFailure: BitFlag;
        manualOperation: BitFlag;
        motorJammed: BitFlag;
        obstacleDetected: BitFlag;
        positionFailure: BitFlag;
        power: BitFlag;
        protection: BitFlag;
        remoteLockout: BitFlag;
        stopInput: BitFlag;
        tamperDetection: BitFlag;
        thermalProtection: BitFlag;
    }>, any>>;
} & {
    configStatus$Changed: ClusterEvents.AttributeObservable<Attribute<TypeFromPartialBitSchema<{
        liftEncoderControlled: BitFlag;
        liftMovementReversed: BitFlag;
        liftPositionAware: BitFlag;
        onlineReserved: BitFlag;
        operational: BitFlag;
        tiltEncoderControlled: BitFlag;
        tiltPositionAware: BitFlag;
    }>, any>>;
    endProductType$Changed: ClusterEvents.AttributeObservable<FixedAttribute<WindowCovering.EndProductType, any>>;
    mode$Changed: ClusterEvents.AttributeObservable<WritableAttribute<TypeFromPartialBitSchema<{
        calibrationMode: BitFlag;
        ledFeedback: BitFlag;
        maintenanceMode: BitFlag;
        motorDirectionReversed: BitFlag;
    }>, any>>;
    operationalStatus$Changed: ClusterEvents.AttributeObservable<Attribute<TypeFromPartialBitSchema<{
        global: BitFieldEnum<WindowCovering.MovementStatus>;
        lift: BitFieldEnum<WindowCovering.MovementStatus>;
        tilt: BitFieldEnum<WindowCovering.MovementStatus>;
    }>, any>>;
    type$Changed: ClusterEvents.AttributeObservable<FixedAttribute<WindowCovering.WindowCoveringType, any>>;
} & {
    safetyStatus$Changed: undefined | ClusterEvents.AttributeObservable<OptionalAttribute<TypeFromPartialBitSchema<{
        failedCommunication: BitFlag;
        hardwareFailure: BitFlag;
        manualOperation: BitFlag;
        motorJammed: BitFlag;
        obstacleDetected: BitFlag;
        positionFailure: BitFlag;
        power: BitFlag;
        protection: BitFlag;
        remoteLockout: BitFlag;
        stopInput: BitFlag;
        tamperDetection: BitFlag;
        thermalProtection: BitFlag;
    }>, any>>;
} & {} & {}

Access the behavior's events.

features: TypeFromBitSchema<{}> & TypeFromBitSchema<{
    absolutePosition: BitFlag;
    lift: BitFlag;
    positionAwareLift: BitFlag;
    positionAwareTilt: BitFlag;
    tilt: BitFlag;
}> & TypeFromBitSchema<{
    absolutePosition: BitFlag;
    lift: BitFlag;
    positionAwareLift: BitFlag;
    positionAwareTilt: BitFlag;
    tilt: BitFlag;
}> & TypeFromBitSchema<{
    absolutePosition: BitFlag;
    lift: BitFlag;
    positionAwareLift: BitFlag;
    positionAwareTilt: BitFlag;
    tilt: BitFlag;
}>

Supported features as a flag object.

session: SecureSession
state: Omit<State,
    | "type"
    | "mode"
    | "physicalClosedLimitLift"
    | "currentPositionLift"
    | "installedOpenLimitLift"
    | "installedClosedLimitLift"
    | "physicalClosedLimitTilt"
    | "currentPositionTilt"
    | "installedOpenLimitTilt"
    | "installedClosedLimitTilt"
    | "numberOfActuationsLift"
    | "numberOfActuationsTilt"
    | "currentPositionLiftPercentage"
    | "targetPositionLiftPercent100ths"
    | "currentPositionLiftPercent100ths"
    | "currentPositionTiltPercentage"
    | "targetPositionTiltPercent100ths"
    | "currentPositionTiltPercent100ths"
    | "configStatus"
    | "operationalStatus"
    | "endProductType"
    | "safetyStatus"> & {
    configStatus: TypeFromPartialBitSchema<{
        liftEncoderControlled: BitFlag;
        liftMovementReversed: BitFlag;
        liftPositionAware: BitFlag;
        onlineReserved: BitFlag;
        operational: BitFlag;
        tiltEncoderControlled: BitFlag;
        tiltPositionAware: BitFlag;
    }>;
    mode: TypeFromPartialBitSchema<{
        calibrationMode: BitFlag;
        ledFeedback: BitFlag;
        maintenanceMode: BitFlag;
        motorDirectionReversed: BitFlag;
    }>;
    operationalStatus: TypeFromPartialBitSchema<{
        global: BitFieldEnum<WindowCovering.MovementStatus>;
        lift: BitFieldEnum<WindowCovering.MovementStatus>;
        tilt: BitFieldEnum<WindowCovering.MovementStatus>;
    }>;
} & {
    safetyStatus?: TypeFromPartialBitSchema<{
        failedCommunication: BitFlag;
        hardwareFailure: BitFlag;
        manualOperation: BitFlag;
        motorJammed: BitFlag;
        obstacleDetected: BitFlag;
        positionFailure: BitFlag;
        power: BitFlag;
        protection: BitFlag;
        remoteLockout: BitFlag;
        stopInput: BitFlag;
        tamperDetection: BitFlag;
        thermalProtection: BitFlag;
    }>;
} & {
    endProductType: WindowCovering.EndProductType;
    type: WindowCovering.WindowCoveringType;
} & {}

Access the behavior's state.

cluster: Of<{
    attributes: {
        configStatus: Attribute<TypeFromPartialBitSchema<{
            liftEncoderControlled: BitFlag;
            liftMovementReversed: BitFlag;
            liftPositionAware: BitFlag;
            onlineReserved: BitFlag;
            operational: BitFlag;
            tiltEncoderControlled: BitFlag;
            tiltPositionAware: BitFlag;
        }>, any>;
        endProductType: FixedAttribute<WindowCovering.EndProductType, any>;
        mode: WritableAttribute<TypeFromPartialBitSchema<{
            calibrationMode: BitFlag;
            ledFeedback: BitFlag;
            maintenanceMode: BitFlag;
            motorDirectionReversed: BitFlag;
        }>, any>;
        operationalStatus: Attribute<TypeFromPartialBitSchema<{
            global: BitFieldEnum<WindowCovering.MovementStatus>;
            lift: BitFieldEnum<WindowCovering.MovementStatus>;
            tilt: BitFieldEnum<WindowCovering.MovementStatus>;
        }>, any>;
        safetyStatus: OptionalAttribute<TypeFromPartialBitSchema<{
            failedCommunication: BitFlag;
            hardwareFailure: BitFlag;
            manualOperation: BitFlag;
            motorJammed: BitFlag;
            obstacleDetected: BitFlag;
            positionFailure: BitFlag;
            power: BitFlag;
            protection: BitFlag;
            remoteLockout: BitFlag;
            stopInput: BitFlag;
            tamperDetection: BitFlag;
            thermalProtection: BitFlag;
        }>, any>;
        type: FixedAttribute<WindowCovering.WindowCoveringType, any>;
    };
    commands: {
        downOrClose: Command<void, void, any>;
        stopMotion: Command<void, void, any>;
        upOrOpen: Command<void, void, any>;
    };
    extensions: readonly [{
        component: {
            attributes: {
                currentPositionLift: OptionalAttribute<null | number, any>;
                installedClosedLimitLift: Attribute<number, any>;
                installedOpenLimitLift: Attribute<number, any>;
                physicalClosedLimitLift: OptionalFixedAttribute<number, any>;
            };
        };
        flags: {
            absolutePosition: true;
            lift: true;
            positionAwareLift: true;
        };
    }, {
        component: {
            attributes: {
                currentPositionTilt: OptionalAttribute<null | number, any>;
                installedClosedLimitTilt: Attribute<number, any>;
                installedOpenLimitTilt: Attribute<number, any>;
                physicalClosedLimitTilt: OptionalFixedAttribute<number, any>;
            };
        };
        flags: {
            absolutePosition: true;
            positionAwareTilt: true;
            tilt: true;
        };
    }, {
        component: {
            attributes: {
                numberOfActuationsLift: OptionalAttribute<number, any>;
            };
            commands: {
                goToLiftPercentage: OptionalCommand<TypeFromFields<{
                    liftPercent100thsValue: FieldType<number>;
                }>, void, any>;
            };
        };
        flags: {
            lift: true;
        };
    }, {
        component: {
            attributes: {
                numberOfActuationsTilt: OptionalAttribute<number, any>;
            };
            commands: {
                goToTiltPercentage: OptionalCommand<TypeFromFields<{
                    tiltPercent100thsValue: FieldType<number>;
                }>, void, any>;
            };
        };
        flags: {
            tilt: true;
        };
    }, {
        component: {
            attributes: {
                currentPositionLiftPercent100ths: Attribute<null | number, any>;
                currentPositionLiftPercentage: OptionalAttribute<null | number, any>;
                targetPositionLiftPercent100ths: Attribute<null | number, any>;
            };
            commands: {
                goToLiftPercentage: Command<TypeFromFields<{
                    liftPercent100thsValue: FieldType<number>;
                }>, void, any>;
            };
        };
        flags: {
            lift: true;
            positionAwareLift: true;
        };
    }, {
        component: {
            attributes: {
                currentPositionTiltPercent100ths: Attribute<null | number, any>;
                currentPositionTiltPercentage: OptionalAttribute<null | number, any>;
                targetPositionTiltPercent100ths: Attribute<null | number, any>;
            };
            commands: {
                goToTiltPercentage: Command<TypeFromFields<{
                    tiltPercent100thsValue: FieldType<number>;
                }>, void, any>;
            };
        };
        flags: {
            positionAwareTilt: true;
            tilt: true;
        };
    }, {
        component: {
            commands: {
                goToLiftValue: OptionalCommand<TypeFromFields<{
                    liftValue: FieldType<number>;
                }>, void, any>;
            };
        };
        flags: {
            absolutePosition: true;
            lift: true;
        };
    }, {
        component: {
            commands: {
                goToTiltValue: OptionalCommand<TypeFromFields<{
                    tiltValue: FieldType<number>;
                }>, void, any>;
            };
        };
        flags: {
            absolutePosition: true;
            tilt: true;
        };
    }, {
        component: false;
        flags: {
            lift: false;
            positionAwareLift: true;
        };
    }, {
        component: false;
        flags: {
            positionAwareTilt: true;
            tilt: false;
        };
    }, {
        component: false;
        flags: {
            lift: false;
            tilt: false;
        };
    }];
    features: {
        absolutePosition: BitFlag;
        lift: BitFlag;
        positionAwareLift: BitFlag;
        positionAwareTilt: BitFlag;
        tilt: BitFlag;
    };
    id: 258;
    name: "WindowCovering";
    revision: 5;
}>

Base cluster state include all attribute values but may be extended by subclasses.

defaults: ClusterState.Type<Of<{
    attributes: {
        configStatus: Attribute<TypeFromPartialBitSchema<{
            liftEncoderControlled: BitFlag;
            liftMovementReversed: BitFlag;
            liftPositionAware: BitFlag;
            onlineReserved: BitFlag;
            operational: BitFlag;
            tiltEncoderControlled: BitFlag;
            tiltPositionAware: BitFlag;
        }>, any>;
        endProductType: FixedAttribute<WindowCovering.EndProductType, any>;
        mode: WritableAttribute<TypeFromPartialBitSchema<{
            calibrationMode: BitFlag;
            ledFeedback: BitFlag;
            maintenanceMode: BitFlag;
            motorDirectionReversed: BitFlag;
        }>, any>;
        operationalStatus: Attribute<TypeFromPartialBitSchema<{
            global: BitFieldEnum<WindowCovering.MovementStatus>;
            lift: BitFieldEnum<WindowCovering.MovementStatus>;
            tilt: BitFieldEnum<WindowCovering.MovementStatus>;
        }>, any>;
        safetyStatus: OptionalAttribute<TypeFromPartialBitSchema<{
            failedCommunication: BitFlag;
            hardwareFailure: BitFlag;
            manualOperation: BitFlag;
            motorJammed: BitFlag;
            obstacleDetected: BitFlag;
            positionFailure: BitFlag;
            power: BitFlag;
            protection: BitFlag;
            remoteLockout: BitFlag;
            stopInput: BitFlag;
            tamperDetection: BitFlag;
            thermalProtection: BitFlag;
        }>, any>;
        type: FixedAttribute<WindowCovering.WindowCoveringType, any>;
    };
    commands: {
        downOrClose: Command<void, void, any>;
        stopMotion: Command<void, void, any>;
        upOrOpen: Command<void, void, any>;
    };
    extensions: readonly [{
        component: {
            attributes: {
                currentPositionLift: OptionalAttribute<null | number, any>;
                installedClosedLimitLift: Attribute<number, any>;
                installedOpenLimitLift: Attribute<number, any>;
                physicalClosedLimitLift: OptionalFixedAttribute<number, any>;
            };
        };
        flags: {
            absolutePosition: true;
            lift: true;
            positionAwareLift: true;
        };
    }, {
        component: {
            attributes: {
                currentPositionTilt: OptionalAttribute<null | number, any>;
                installedClosedLimitTilt: Attribute<number, any>;
                installedOpenLimitTilt: Attribute<number, any>;
                physicalClosedLimitTilt: OptionalFixedAttribute<number, any>;
            };
        };
        flags: {
            absolutePosition: true;
            positionAwareTilt: true;
            tilt: true;
        };
    }, {
        component: {
            attributes: {
                numberOfActuationsLift: OptionalAttribute<number, any>;
            };
            commands: {
                goToLiftPercentage: OptionalCommand<TypeFromFields<{
                    liftPercent100thsValue: FieldType<(...)>;
                }>, void, any>;
            };
        };
        flags: {
            lift: true;
        };
    }, {
        component: {
            attributes: {
                numberOfActuationsTilt: OptionalAttribute<number, any>;
            };
            commands: {
                goToTiltPercentage: OptionalCommand<TypeFromFields<{
                    tiltPercent100thsValue: FieldType<(...)>;
                }>, void, any>;
            };
        };
        flags: {
            tilt: true;
        };
    }, {
        component: {
            attributes: {
                currentPositionLiftPercent100ths: Attribute<null | number, any>;
                currentPositionLiftPercentage: OptionalAttribute<null | number, any>;
                targetPositionLiftPercent100ths: Attribute<null | number, any>;
            };
            commands: {
                goToLiftPercentage: Command<TypeFromFields<{
                    liftPercent100thsValue: FieldType<(...)>;
                }>, void, any>;
            };
        };
        flags: {
            lift: true;
            positionAwareLift: true;
        };
    }, {
        component: {
            attributes: {
                currentPositionTiltPercent100ths: Attribute<null | number, any>;
                currentPositionTiltPercentage: OptionalAttribute<null | number, any>;
                targetPositionTiltPercent100ths: Attribute<null | number, any>;
            };
            commands: {
                goToTiltPercentage: Command<TypeFromFields<{
                    tiltPercent100thsValue: FieldType<(...)>;
                }>, void, any>;
            };
        };
        flags: {
            positionAwareTilt: true;
            tilt: true;
        };
    }, {
        component: {
            commands: {
                goToLiftValue: OptionalCommand<TypeFromFields<{
                    liftValue: FieldType<(...)>;
                }>, void, any>;
            };
        };
        flags: {
            absolutePosition: true;
            lift: true;
        };
    }, {
        component: {
            commands: {
                goToTiltValue: OptionalCommand<TypeFromFields<{
                    tiltValue: FieldType<(...)>;
                }>, void, any>;
            };
        };
        flags: {
            absolutePosition: true;
            tilt: true;
        };
    }, {
        component: false;
        flags: {
            lift: false;
            positionAwareLift: true;
        };
    }, {
        component: false;
        flags: {
            positionAwareTilt: true;
            tilt: false;
        };
    }, {
        component: false;
        flags: {
            lift: false;
            tilt: false;
        };
    }];
    features: {
        absolutePosition: BitFlag;
        lift: BitFlag;
        positionAwareLift: BitFlag;
        positionAwareTilt: BitFlag;
        tilt: BitFlag;
    };
    id: 258;
    name: "WindowCovering";
    revision: 5;
}>, typeof WindowCoveringServerLogic>
dependencies?: Iterable<Type, any, any>
early: boolean
Events: ClusterEvents.Type<Of<{
    attributes: {
        configStatus: Attribute<TypeFromPartialBitSchema<{
            liftEncoderControlled: BitFlag;
            liftMovementReversed: BitFlag;
            liftPositionAware: BitFlag;
            onlineReserved: BitFlag;
            operational: BitFlag;
            tiltEncoderControlled: BitFlag;
            tiltPositionAware: BitFlag;
        }>, any>;
        endProductType: FixedAttribute<WindowCovering.EndProductType, any>;
        mode: WritableAttribute<TypeFromPartialBitSchema<{
            calibrationMode: BitFlag;
            ledFeedback: BitFlag;
            maintenanceMode: BitFlag;
            motorDirectionReversed: BitFlag;
        }>, any>;
        operationalStatus: Attribute<TypeFromPartialBitSchema<{
            global: BitFieldEnum<WindowCovering.MovementStatus>;
            lift: BitFieldEnum<WindowCovering.MovementStatus>;
            tilt: BitFieldEnum<WindowCovering.MovementStatus>;
        }>, any>;
        safetyStatus: OptionalAttribute<TypeFromPartialBitSchema<{
            failedCommunication: BitFlag;
            hardwareFailure: BitFlag;
            manualOperation: BitFlag;
            motorJammed: BitFlag;
            obstacleDetected: BitFlag;
            positionFailure: BitFlag;
            power: BitFlag;
            protection: BitFlag;
            remoteLockout: BitFlag;
            stopInput: BitFlag;
            tamperDetection: BitFlag;
            thermalProtection: BitFlag;
        }>, any>;
        type: FixedAttribute<WindowCovering.WindowCoveringType, any>;
    };
    commands: {
        downOrClose: Command<void, void, any>;
        stopMotion: Command<void, void, any>;
        upOrOpen: Command<void, void, any>;
    };
    extensions: readonly [{
        component: {
            attributes: {
                currentPositionLift: OptionalAttribute<null | number, any>;
                installedClosedLimitLift: Attribute<number, any>;
                installedOpenLimitLift: Attribute<number, any>;
                physicalClosedLimitLift: OptionalFixedAttribute<number, any>;
            };
        };
        flags: {
            absolutePosition: true;
            lift: true;
            positionAwareLift: true;
        };
    }, {
        component: {
            attributes: {
                currentPositionTilt: OptionalAttribute<null | number, any>;
                installedClosedLimitTilt: Attribute<number, any>;
                installedOpenLimitTilt: Attribute<number, any>;
                physicalClosedLimitTilt: OptionalFixedAttribute<number, any>;
            };
        };
        flags: {
            absolutePosition: true;
            positionAwareTilt: true;
            tilt: true;
        };
    }, {
        component: {
            attributes: {
                numberOfActuationsLift: OptionalAttribute<number, any>;
            };
            commands: {
                goToLiftPercentage: OptionalCommand<TypeFromFields<{
                    liftPercent100thsValue: FieldType<(...)>;
                }>, void, any>;
            };
        };
        flags: {
            lift: true;
        };
    }, {
        component: {
            attributes: {
                numberOfActuationsTilt: OptionalAttribute<number, any>;
            };
            commands: {
                goToTiltPercentage: OptionalCommand<TypeFromFields<{
                    tiltPercent100thsValue: FieldType<(...)>;
                }>, void, any>;
            };
        };
        flags: {
            tilt: true;
        };
    }, {
        component: {
            attributes: {
                currentPositionLiftPercent100ths: Attribute<null | number, any>;
                currentPositionLiftPercentage: OptionalAttribute<null | number, any>;
                targetPositionLiftPercent100ths: Attribute<null | number, any>;
            };
            commands: {
                goToLiftPercentage: Command<TypeFromFields<{
                    liftPercent100thsValue: FieldType<(...)>;
                }>, void, any>;
            };
        };
        flags: {
            lift: true;
            positionAwareLift: true;
        };
    }, {
        component: {
            attributes: {
                currentPositionTiltPercent100ths: Attribute<null | number, any>;
                currentPositionTiltPercentage: OptionalAttribute<null | number, any>;
                targetPositionTiltPercent100ths: Attribute<null | number, any>;
            };
            commands: {
                goToTiltPercentage: Command<TypeFromFields<{
                    tiltPercent100thsValue: FieldType<(...)>;
                }>, void, any>;
            };
        };
        flags: {
            positionAwareTilt: true;
            tilt: true;
        };
    }, {
        component: {
            commands: {
                goToLiftValue: OptionalCommand<TypeFromFields<{
                    liftValue: FieldType<(...)>;
                }>, void, any>;
            };
        };
        flags: {
            absolutePosition: true;
            lift: true;
        };
    }, {
        component: {
            commands: {
                goToTiltValue: OptionalCommand<TypeFromFields<{
                    tiltValue: FieldType<(...)>;
                }>, void, any>;
            };
        };
        flags: {
            absolutePosition: true;
            tilt: true;
        };
    }, {
        component: false;
        flags: {
            lift: false;
            positionAwareLift: true;
        };
    }, {
        component: false;
        flags: {
            positionAwareTilt: true;
            tilt: false;
        };
    }, {
        component: false;
        flags: {
            lift: false;
            tilt: false;
        };
    }];
    features: {
        absolutePosition: BitFlag;
        lift: BitFlag;
        positionAwareLift: BitFlag;
        positionAwareTilt: BitFlag;
        tilt: BitFlag;
    };
    id: 258;
    name: "WindowCovering";
    revision: 5;
}>, typeof WindowCoveringServerLogic>
ExtensionInterface: {
    executeCalibration(): MaybePromise;
    handleMovement(type: MovementType, reversed: boolean, direction: MovementDirection, targetPercent100ths?: number): Promise<void>;
    handleStopMovement(): MaybePromise;
}
id

The behavior ID for ClusterBehaviors is the name of the cluster.

Internal: typeof Internal
name: string
schema?: Schema
State: (new () => ClusterState.Type<Of<{
    attributes: {
        configStatus: Attribute<TypeFromPartialBitSchema<{
            liftEncoderControlled: BitFlag;
            liftMovementReversed: BitFlag;
            liftPositionAware: BitFlag;
            onlineReserved: BitFlag;
            operational: BitFlag;
            tiltEncoderControlled: BitFlag;
            tiltPositionAware: BitFlag;
        }>, any>;
        endProductType: FixedAttribute<WindowCovering.EndProductType, any>;
        mode: WritableAttribute<TypeFromPartialBitSchema<{
            calibrationMode: BitFlag;
            ledFeedback: BitFlag;
            maintenanceMode: BitFlag;
            motorDirectionReversed: BitFlag;
        }>, any>;
        operationalStatus: Attribute<TypeFromPartialBitSchema<{
            global: BitFieldEnum<WindowCovering.MovementStatus>;
            lift: BitFieldEnum<WindowCovering.MovementStatus>;
            tilt: BitFieldEnum<WindowCovering.MovementStatus>;
        }>, any>;
        safetyStatus: OptionalAttribute<TypeFromPartialBitSchema<{
            failedCommunication: BitFlag;
            hardwareFailure: BitFlag;
            manualOperation: BitFlag;
            motorJammed: BitFlag;
            obstacleDetected: BitFlag;
            positionFailure: BitFlag;
            power: BitFlag;
            protection: BitFlag;
            remoteLockout: BitFlag;
            stopInput: BitFlag;
            tamperDetection: BitFlag;
            thermalProtection: BitFlag;
        }>, any>;
        type: FixedAttribute<WindowCovering.WindowCoveringType, any>;
    };
    commands: {
        downOrClose: Command<void, void, any>;
        stopMotion: Command<void, void, any>;
        upOrOpen: Command<void, void, any>;
    };
    extensions: readonly [{
        component: {
            attributes: {
                currentPositionLift: OptionalAttribute<null | number, any>;
                installedClosedLimitLift: Attribute<number, any>;
                installedOpenLimitLift: Attribute<number, any>;
                physicalClosedLimitLift: OptionalFixedAttribute<number, any>;
            };
        };
        flags: {
            absolutePosition: true;
            lift: true;
            positionAwareLift: true;
        };
    }, {
        component: {
            attributes: {
                currentPositionTilt: OptionalAttribute<null | number, any>;
                installedClosedLimitTilt: Attribute<number, any>;
                installedOpenLimitTilt: Attribute<number, any>;
                physicalClosedLimitTilt: OptionalFixedAttribute<number, any>;
            };
        };
        flags: {
            absolutePosition: true;
            positionAwareTilt: true;
            tilt: true;
        };
    }, {
        component: {
            attributes: {
                numberOfActuationsLift: OptionalAttribute<number, any>;
            };
            commands: {
                goToLiftPercentage: OptionalCommand<TypeFromFields<{
                    liftPercent100thsValue: ...;
                }>, void, any>;
            };
        };
        flags: {
            lift: true;
        };
    }, {
        component: {
            attributes: {
                numberOfActuationsTilt: OptionalAttribute<number, any>;
            };
            commands: {
                goToTiltPercentage: OptionalCommand<TypeFromFields<{
                    tiltPercent100thsValue: ...;
                }>, void, any>;
            };
        };
        flags: {
            tilt: true;
        };
    }, {
        component: {
            attributes: {
                currentPositionLiftPercent100ths: Attribute<null | number, any>;
                currentPositionLiftPercentage: OptionalAttribute<null | number, any>;
                targetPositionLiftPercent100ths: Attribute<null | number, any>;
            };
            commands: {
                goToLiftPercentage: Command<TypeFromFields<{
                    liftPercent100thsValue: ...;
                }>, void, any>;
            };
        };
        flags: {
            lift: true;
            positionAwareLift: true;
        };
    }, {
        component: {
            attributes: {
                currentPositionTiltPercent100ths: Attribute<null | number, any>;
                currentPositionTiltPercentage: OptionalAttribute<null | number, any>;
                targetPositionTiltPercent100ths: Attribute<null | number, any>;
            };
            commands: {
                goToTiltPercentage: Command<TypeFromFields<{
                    tiltPercent100thsValue: ...;
                }>, void, any>;
            };
        };
        flags: {
            positionAwareTilt: true;
            tilt: true;
        };
    }, {
        component: {
            commands: {
                goToLiftValue: OptionalCommand<TypeFromFields<{
                    liftValue: ...;
                }>, void, any>;
            };
        };
        flags: {
            absolutePosition: true;
            lift: true;
        };
    }, {
        component: {
            commands: {
                goToTiltValue: OptionalCommand<TypeFromFields<{
                    tiltValue: ...;
                }>, void, any>;
            };
        };
        flags: {
            absolutePosition: true;
            tilt: true;
        };
    }, {
        component: false;
        flags: {
            lift: false;
            positionAwareLift: true;
        };
    }, {
        component: false;
        flags: {
            positionAwareTilt: true;
            tilt: false;
        };
    }, {
        component: false;
        flags: {
            lift: false;
            tilt: false;
        };
    }];
    features: {
        absolutePosition: BitFlag;
        lift: BitFlag;
        positionAwareLift: BitFlag;
        positionAwareTilt: BitFlag;
        tilt: BitFlag;
    };
    id: 258;
    name: "WindowCovering";
    revision: 5;
}>, typeof WindowCoveringServerLogic>)
supervisor: RootSupervisor
supports: ((other: Type) => boolean)

Type declaration

    • (other): boolean
    • Does this behavior support functionality of a specific implementation?

      Parameters

      Returns boolean

Methods

  • Release resources. This is the public API for releasing application resources held by behaviors in internal state.

    Returns MaybePromise

  • Execute logic with elevated privileges.

    The provided function executes with privileges escalated to offline mode. This is not commonly necessary.

    Elevated logic effectively ignores ACLs so should be used with care.

    Note that interactions with the behavior will remain elevated until the synchronous completion of this call. You should only elevate privileges for synchronous logic.

    Parameters

    • fn: (() => void)

      the elevated logic

        • (): void
        • Returns void

    Returns void

  • Type Parameters

    • This extends Behavior
    • K extends string | number | symbol

    Parameters

    • this: This
    • attributeName: K

    Returns void

  • Create a generic callback function that has the same properties as a Reactor.

    Like a reactor, the callback's "this" will be bound to an active Behavior instance. Because of this: The reactor MUST be a real JS function - arrow functions will not work!

    Type Parameters

    • A extends any[]
    • R

    Parameters

    Returns ((...args: A) => undefined | R)

      • (...args): undefined | R
      • Parameters

        • Rest...args: A

        Returns undefined | R

  • Upon receipt of this command, the window covering will adjust its position so the physical lift/slide and tilt is at the maximum closed/down position. This will happen as fast as possible. The server attributes supported shall be updated as follows:

    if the PositionAware feature is supported:

    • TargetPositionLiftPercent100ths attribute shall be set to 100.00%.

    • TargetPositionTiltPercent100ths attribute shall be set to 100.00%.

    The server positioning attributes will follow the movements, once the movement has successfully finished, the server attributes shall be updated as follows:

    if the PositionAware feature is supported:

    • CurrentPositionLiftPercent100ths attribute shall be 100.00%.

    • CurrentPositionLiftPercentage attribute shall be 100%.

    • CurrentPositionTiltPercent100ths attribute shall be 100.00%.

    • CurrentPositionTiltPercentage attribute shall be 100%. if the AbsolutePosition feature is supported:

    • CurrentPositionLift attribute shall be equal to the InstalledClosedLimitLift attribute.

    • CurrentPositionTilt attribute shall be equal to the InstalledClosedLimitTilt attribute.

    Returns MaybePromise

    MatterSpecification.v13.Cluster § 5.3.7.2

  • Returns MaybePromise

  • Parameters

    Returns Promise<void>

  • Returns MaybePromise

  • Behaviors are ephemeral and should not perform initialization in their constructor. They can override this method instead.

    This method may be synchronous or asyncronous. If asynchronous, the behavior will not be available for external use until initialization completes.

    Parameters

    • Optional_options: {}

      Returns MaybePromise

    • Install a Reactor.

      Important: The reactor MUST be a real JS function - arrow functions will not work!

      Type Parameters

      Parameters

      Returns void

    • Type Parameters

      • This extends Behavior
      • K extends string | number | symbol

      Parameters

      • this: This
      • attributeName: K

      Returns Exclude<This["state"][K], undefined>

    • Upon receipt of this command, the window covering will stop any adjusting to the physical tilt and lift/slide that is currently occurring. The server attributes supported shall be updated as follows:

      • TargetPositionLiftPercent100ths attribute will be set to CurrentPositionLiftPercent100ths attribute value.

      • TargetPositionTiltPercent100ths attribute will be set to CurrentPositionTiltPercent100ths attribute value.

      Returns MaybePromise

      MatterSpecification.v13.Cluster § 5.3.7.3

    • Description used in diagnostic messages.

      Returns string

    • Upon receipt of this command, the window covering will adjust its position so the physical lift/slide and tilt is at the maximum open/up position. This will happen as fast as possible. The server attributes shall be updated as follows:

      if the PositionAware feature is supported:

      • TargetPositionLiftPercent100ths attribute shall be set to 0.00%.

      • TargetPositionTiltPercent100ths attribute shall be set to 0.00%.

      The server positioning attributes will follow the movements, once the movement has successfully finished, the server attributes shall be updated as follows:

      if the PositionAware feature is supported:

      • CurrentPositionLiftPercent100ths attribute shall be 0.00%.

      • CurrentPositionLiftPercentage attribute shall be 0%.

      • CurrentPositionTiltPercent100ths attribute shall be 0.00%.

      • CurrentPositionTiltPercentage attribute shall be 0%. if the AbsolutePosition feature is supported:

      • CurrentPositionLift attribute shall be equal to the InstalledOpenLimitLift attribute.

      • CurrentPositionTilt attribute shall be equal to the InstalledOpenLimitTilt attribute.

      Returns MaybePromise

      MatterSpecification.v13.Cluster § 5.3.7.1

    • Type Parameters

      Parameters

      Returns This