Skip to content

Add and calibrate a curtain motor

A curtain motor is added from device discovery, then calibrated while you stay beside the physical curtain and keep its path clear. The workflow is attended and sequential: choose the detected motor, assign it, confirm its opening direction, start from fully closed, teach the open and closed ends, and wait for confirmed saved calibration before using ordinary position controls.

Start in device discovery and choose the available hub Bluetooth discovery flow. Select the detected motor, give it a name, assign its room, and acquire it.

Recognition alone does not mean calibration is ready. An uncalibrated motor leads you to More → Configuration.

Each acquired motor is configured separately. Do not infer left/right identity from a protocol index or from a successful discovery result.

Before you begin, stand beside the exact motor and clear its travel path. You also need to choose the physical opening direction before teaching the travel limits.

The setup screen supports one attended motor at a time. If multiple motors are present, select the one you are working on before moving ahead.

The setup flow uses these stages:

  1. Confirm you are beside the curtain and the path is clear.
  2. Choose whether the curtain opens left or right.
  3. Confirm the curtain is fully closed.
  4. Start opening and stop or continue as needed.
  5. Mark the open end at the intended limit.
  6. Return to fully closed and mark the closed end.
  7. Wait for saved calibration to be confirmed.

Start opening uses continuous movement. You can use Stop and Continue as needed.

When the curtain reaches the intended open limit, confirm Fully open. Then complete the guided closing phase and confirm Fully closed.

A queued or acknowledged request is not proof that the curtain has reached its position. Follow the reported state and the correlated result, not the request acknowledgement alone.

Stop acts on the same motor you are calibrating. Wait for the motor to confirm that it has stopped before teaching an end position.

Movement stops automatically after 60 seconds. You can continue after a stop if needed.

After both ends are taught, the setup sends the finish step and then waits for saved calibration to be confirmed. Finish keeps the taught ends; it is not an undo or clear command.

Do not use ordinary position commands until saved calibration is confirmed. If saved status is still pending, keep the curtain stopped and read the saved state again before restarting setup.

Use the authenticated API and the capability and settings descriptors for the selected tenant and home. Respect server-returned permissions, availability, versions, and pending versus confirmed results.

Preserve any settings fields the client does not edit. Do not infer a supported action from brand, model, cached state, or a request acknowledgement.

Keep actionable notification navigation scoped to the identified device and home. Public clients must not call internal transport endpoints or bypass home authorization.

Household permissions are narrower than staff permissions. DEV credentials act in the developer sandbox, and LIVE credentials only for their own installed connector.

Web and phones perform acquisition and calibration. TV uses supported Open, Close, position, and Stop controls only.

After calibration is confirmed, the motor is ready for everyday use from the device screen. Follow the current reported state when issuing ordinary position commands.

Use the calibration endpoints for the exact motor you are setting up:

MethodPathPurpose
GET/integrations/ble/endpoints/:endpointId/calibration/bootstrapObtain the configure-authorized operations for this motor.
POST/integrations/ble/endpoints/:endpointId/calibrationRequest one allowed operation.
GET/integrations/ble/endpoints/:endpointId/calibration/:commandIdRead the correlated result without resending movement.

Honor the returned support, ownership, motor identity, and action gates. Do not enable a control from a model name or a single advertisement bit.

A request can be queued, acknowledged, rejected, unproven, or read back. Only readback with confirmed saved limits proves that the calibration is complete.

Last updated