Skip to content

Advanced Use Cases Venetian Tilt Only

Jason Rhubottom edited this page Jun 2, 2026 · 1 revision

Venetian tilt-only on overcast days

On a venetian blind, an overcast sky is the ideal time to open the slats fully: there's no direct sun to filter, so flat-open slats give the most daylight and the cleanest view. But you usually still want the carriage β€” how far the blind hangs down β€” to keep following the sun-tracking algorithm, so the blind is already in the right place when the sun returns.

This recipe wires a cloud sensor to a Custom Position slot in tilt-only mode: when it's overcast, the slats snap fully open while solar tracking keeps deciding the carriage position. When the sun comes back, tracking resumes control of both axes with no manual override and no fuss.

Venetian covers only. Tilt-only mode is a venetian (dual-axis) feature. On vertical blinds, awnings, and single-axis tilt covers the option doesn't appear.


Why the alternatives fall short

Approach Limitation
Cloud suppression Moves the carriage to a fixed cloudy position, but has no companion tilt setting β€” the slat angle stays engine-derived and can't be pinned open.
An HA automation calling cover.set_cover_tilt_position A direct tilt command marks the cover as manually overridden and pauses ACP automation until the override clears.
A normal Custom Position slot Claims both axes β€” pinning the slats also freezes the carriage, so the blind stops following the sun.

Tilt-only mode is the purpose-built answer: it claims the tilt axis only and leaves position under the pipeline.


Step 1 β€” Create an "overcast" binary sensor

Any binary sensor works. A simple lux-threshold Template Binary Sensor with a delay_on keeps brief cloud passages from flapping the slats:

template:
  - binary_sensor:
      - name: "Overcast No Direct Sun"
        unique_id: overcast_no_direct_sun
        state: "{{ states('sensor.outdoor_lux') | float(0) < 15000 }}"
        delay_on:
          minutes: 5
        delay_off:
          minutes: 3

Adjust the threshold to your climate β€” pick a value that sits clearly below bright/sunny readings but above genuine dusk. You can also use a weather-state sensor, an is_sunny debounced sensor, or any other condition you like; tilt-only mode doesn't care where the signal comes from. See Handling Variable Cloud Cover for robust hysteresis patterns if your lux readings are noisy.

Step 2 β€” Configure a tilt-only Custom Position slot

In the integration's options, open Custom Position and fill in one slot:

Setting Value
Custom Position Sensor binary_sensor.overcast_no_direct_sun
Tilt for Slot 100 (fully open slats)
Tilt Only βœ… On
Priority leave default (77)

The Custom Position value, Minimum Mode, and Use My Preset are all ignored for a tilt-only slot β€” only the Tilt value is used. (If you leave one of those on, the config summary flags it with a warning.)

Step 3 β€” Confirm in the summary

The configuration summary renders the slot like this:

🎯 Custom #1: if binary_sensor.overcast_no_direct_sun is on β†’ tilt only
   (slat fixed at 100%; position driven by sun tracking)  [P77]

What happens

Overcast (sensor on):
   ... β†’ Custom #1 (tilt only: slats β†’ 100%) β†’ Solar (40: drives carriage) β†’ ...

Sunny again (sensor off):
   ... β†’ Solar (40: drives BOTH carriage and slats) β†’ ...
  • Overcast: slats open to 100%, carriage stays wherever solar tracking puts it.
  • Sunny: the slot drops out entirely and solar tracking resumes control of both axes β€” slats angle to filter the sun, carriage tracks as normal.
  • No manual override is ever set, so automation never pauses.

Stacking with other conditions

Because the trigger is just a binary sensor, you can encode richer logic in a template sensor β€” e.g. "overcast and during the day and someone's home":

template:
  - binary_sensor:
      - name: "Overcast Daytime Occupied"
        state: >
          {{ states('sensor.outdoor_lux') | float(0) < 15000
             and not is_state('sun.sun', 'below_horizon')
             and is_state('binary_sensor.home_occupied', 'on') }}
        delay_on:
          minutes: 5

You can also run multiple tilt-only slots at different priorities β€” say, slats fully open when merely overcast, but a tighter angle for a privacy condition at a higher priority. The highest-priority active tilt-only slot wins the tilt axis. See Custom Position β†’ Tilt-only mode for the priority and global-mode interaction details.


Diagnosing the behavior

Check sensor.{your_device}_decision_trace. With a tilt-only slot active you'll see solar winning the position axis and the custom_position slot reporting its fixed slat angle on the tilt axis β€” the position is explicitly handed off to sun tracking, not claimed by the slot.


Related pages

Clone this wiki locally