Skip to content

Configuration Position

Jason Rhubottom edited this page Apr 20, 2026 · 6 revisions

Position & Thresholds

Position Targets

Variable Default Range Description
Default Position 60 0–100 Cover position when sun is not in front of the window
Sunset Position 0 0–100 Cover position from sunset to sunrise
Use My Preset at Sunset False Send the Somfy My position command instead of the Sunset Position value
My Position Value None 1–99 Somfy My preset position (%). Used by the sunset toggle and by any Custom Position slot with "Use My Preset" enabled. See My Position Support.
Offset Sunset Time 0 -120–120 Additional minutes before (negative) or after (positive) sunset
Offset Sunrise Time 0 -120–120 Additional minutes before (negative) or after (positive) sunrise
Inverse State False Inverts position logic β€” 0% = fully open, 100% = fully closed. Use for covers that report position backwards. Cannot be combined with Position Calibration.
Open/Close Threshold 50 1–99 For covers that only support open/close (no position control): positions below this value send a "close" command; at or above send "open".
Enable Position Calibration False Enables the Position Calibration step for non-linear or range-limited covers. See Position Calibration below.

Position Limits

Variable Default Range Description
Minimum Position 0 0–99 Lowest position the cover will move to automatically
Apply Min only during sun tracking False When ON: minimum only clamps the solar handler. Climate, cloud suppression, custom positions, and default state can still go below the minimum.
Maximum Position 100 1–100 Highest position the cover will move to automatically
Apply Max only during sun tracking False When ON: maximum only clamps the solar handler. Other handlers can still go above the maximum.

Toggle OFF (default, recommended) β€” the limit applies to all handler outputs: solar tracking, climate mode, cloud suppression, motion timeout, custom positions, the default state, everything. The cover never goes below the configured minimum or above the maximum.

Toggle ON (advanced) β€” the limit applies only to the solar handler (priority 40). Climate mode, cloud suppression, motion timeout, custom positions, and the default state see the full 0–100% range. This was clarified in v2.17.5 (#105).

⚠️ Footgun: With the toggle ON, cloud suppression, climate strategies (winter open to 100%, summer close to 0%), or a custom-position slot can move the cover outside the configured min/max range. If you configured a minimum position to keep covers partially open for privacy, that guarantee only holds during active sun tracking.

Note: The configured sunset position is always exempt from min/max limits regardless of the toggle β€” it is sent as-is so covers can fully close (or open) at night even if a minimum is set.

Common use cases (with the toggle OFF):

  • Minimum Position (e.g., 20%): Prevents cover from fully closing, maintains some natural light, protects from jamming at the bottom
  • Maximum Position (e.g., 80%): Prevents cover from fully opening, maintains some privacy/shade, protects from jamming at the top

Position Calibration (Range Adjustment)

Position Calibration maps a calculated position (input) β€” what the integration works out from the sun angle β€” to an actual position sent to the cover (output). Use this when your cover doesn't respond correctly to standard 0–100% commands.

Direction always flows Input β†’ Output. The integration calculates a desired position (input); your mapping transforms it into the command actually sent to the cover (output). Getting this backwards produces a mirrored curve β€” if your cover closes when it should open, swap the two lists.

Enable calibration with the Enable Position Calibration toggle on the Position page, then configure it in the Position Calibration step.

When to use:

  • Covers that don't respond across the full 0–100% range
  • Covers requiring non-linear position mapping
  • Covers that need inverted operation (alternative to inverse_state)

Simple Mode (2-point calibration):

Set Calibration input 0% maps to (output %) and Calibration input 100% maps to (output %) to define the output range for the two extremes. Everything in between is interpolated linearly.

Use Case 0% maps to 100% maps to Result
Limited Range Cover 10% 90% 0% calculated β†’ 10% sent; 100% calculated β†’ 90% sent
Inverted Operation 100% 0% 0% calculated β†’ 100% sent; 100% calculated β†’ 0% sent
Offset Range 20% 80% 0% calculated β†’ 20% sent; 100% calculated β†’ 80% sent

Advanced Mode (Point Lists):

Define multiple control points for non-linear curves. The integration linearly interpolates between consecutive points.

  • Calculated positions (input) β€” the positions the integration calculates (what goes in). Example: [0, 25, 50, 75, 100]
  • Actual positions to send (output) β€” the commands sent to the cover (what comes out). Example: [0, 15, 35, 60, 100]

Both lists must have the same number of entries. Values in the input list must be in ascending order.

Example β€” Aggressive Closing:

Calculated positions (input):      [0, 25, 50, 75, 100]
Actual positions to send (output): [0, 15, 35, 60, 100]

This mapping causes the cover to close more aggressively:

  • 0% calculated β†’ 0% sent (no change)
  • 25% calculated β†’ 15% sent (closes more)
  • 50% calculated β†’ 35% sent (closes more)
  • 75% calculated β†’ 60% sent (closes more)
  • 100% calculated β†’ 100% sent (no change)

Example β€” Inverted with Custom Curve:

Calculated positions (input):      [0, 25, 50, 75, 100]
Actual positions to send (output): [100, 75, 50, 25, 0]

Important Notes:

  • Calibration is applied AFTER position calculation and BEFORE sending to the cover
  • Works with both position-capable and open/close-only covers
  • Cannot be used together with inverse_state (choose one or the other)
  • List mode requires at least 2 points; both lists must have the same length

Clone this wiki locally