📖 CCA Handbook › Blueprint section: Additional Actions
All these settings are optional
On this page:
The opening, closing, ventilation and sun-shading before/after actions belong to a real CCA movement pipeline. They do not run for a status-only update or when the cover position and relevant tilt are already within the configured tolerances.
For a movement that is still required, CCA follows this order:
The live checks are repeated around movement stages that contain waits. If Force Pause becomes active or another CCA instance takes ownership, CCA suppresses every stage it has not dispatched yet. If an earlier stage already moved the cover, the after-action still runs for that partial dispatch.
The actions after a manual change and after an override reset are state-event actions rather than movement wrappers. They run when their named event is recorded; they do not use the movement sequence above.
The 🔧 Use custom actions only behavior option disables CCA’s built-in cover.set_cover_position and cover.set_cover_tilt_position calls. In this mode, the matching after-action is the movement implementation: use it to call the script, service or device-specific command that actually moves the cover. Configure an appropriate after-action for every movement type CCA may use (opening, closing, ventilation, sun-shading start and sun-shading end).
CCA cannot inspect what a custom action does or verify that the device moved. Reaching the custom-only after-action pipeline after all delay, tolerance, pause and ownership checks is therefore CCA’s dispatch contract. At that point CCA records the movement time and may clear Manual Override just as it would after a built-in command.
⚠️ Important: Do not enable Use custom actions only without complete movement after-actions. An empty, conditional or no-op after-action is still treated as a dispatched custom movement once its pipeline is reached, so the status helper and logbook may say that CCA moved the cover even though the physical cover stayed in place.
Before-actions keep their normal role in this mode: they prepare for the custom movement, but they are not the movement carrier.
Pure tilt-only plans, such as automatic sun-shading slat tracking, have no separate custom-action input. Because Use custom actions only disables CCA’s built-in tilt service as well, those tilt-only adjustments are skipped: they do not dispatch a movement and do not run a before- or after-action. If your hardware needs continuous custom slat tracking, implement that behavior outside this option’s movement after-actions.
The Overkiz integration provides the service overkiz.set_cover_position_and_tilt, which sets the cover position and the slat tilt in a single command. For Somfy venetian covers (e.g. J4 IO motors) this sidesteps the sequencing constraints of separate position and tilt commands — these motors ignore tilt commands while fully open and re-apply their last tilt target after every positioning run (see #355, #612 and #684, where this recipe was contributed).
Setup:
cover.set_cover_position / cover.set_cover_tilt_position calls and their tilt waits are skipped.action: overkiz.set_cover_position_and_tilt
data:
tilt_position: "{{ target_tilt_position | default(101) }}"
position: "{{ target_position | default(101) }}"
target:
entity_id: "{{ blind }}"
Notes:
🧩 Input:
auto_up_action_before
Additional actions to run before opening the cover
🧩 Input:
auto_up_action
Additional actions to run after opening the cover
🧩 Input:
auto_down_action_before
Additional actions to run before closing the cover
🧩 Input:
auto_down_action
Additional actions to run after closing the cover
🧩 Input:
auto_ventilate_action_before
Additional actions to run before ventilating the cover
🧩 Input:
auto_ventilate_action
Additional actions to run after ventilating the cover
🧩 Input:
auto_shading_start_action_before
Additional actions to run before activating sun shading
🧩 Input:
auto_shading_start_action
Additional actions to run after activating sun shading
🧩 Input:
auto_shading_end_action_before
Additional actions to run before disabling sun shading
🧩 Input:
auto_shading_end_action
Additional actions to run after disabling sun shading
🧩 Input:
auto_manual_action
Additional actions after a manual change to the covers
🧩 Input:
auto_override_reset_action
Additional actions to be taken after resetting the manual override
⬅️ Handbook index · Previous: 🔀 Additional Conditions · Next: 🩺 Configuration Check