Skip to main content

Solaris Shade and Harvest Module

The Solaris module on Aida Controller automates daylight harvesting (sensor-driven dim) and glare control (sun-aware shade positioning) using facility zones. It complements time-based Circadian lighting and fixed schedules — Solaris runs continuously and reacts to ALS sensor readings and solar geometry.

Overview

This module provides:

  • Daylight harvesting — closed-loop dim from ambient light (ALS) toward a lux setpoint; open-loop fallback from sun position when sensors are unavailable
  • Glare control — shade position from solar elevation/azimuth vs façade orientation
  • Facility zone scopingharvest, glare, shading, and optional lighting zone types with per-zone tunables
  • Setpoint training — guided workflow to capture ALS baselines per harvest zone (closed loop)
  • Manual override — same timed/latched model as Circadian; separate suspend state for harvest (lights) and glare (shades)
  • Preview charts — simulated harvest and glare curves for a selected date
  • Automation integration — builtin tasks solaris-harvest and solaris-glare

:::note PoE nodes and BACnet PoE lighting nodes do not speak BACnet directly. Solaris drives cluster-level dim and shade on the controller; northbound BACnet exports (if enabled) reflect aggregated zone state. See BACnet/IP Server for BMS integration. :::

How it works

LoopTriggerOutput
HarvestALS light,<lux> events (debounced) + 1 min interval fallbackDim per harvest zone
Glare5 min interval + solar mathShade position per glare/shading zone

Prerequisites

Before enabling Solaris, ensure you have:

  • Aida Controller 2.0 installed and commissioned
  • Facility zones created with the correct types and cluster/device membership
  • Harvest zones: fixtures with dim control; closed loop requires at least one ALS-capable device in the zone
  • Glare / shading zones: shade actuators (INX/Core shades, Somfy PoE motors, etc.)
  • Site location in Settings → System (latitude, longitude, timezone) — required for glare
  • Operator access to edit modules, facility zones, and automation tasks

Setup process

Step 1: Set site location

  1. Go to Settings → System.
  2. Set Latitude, Longitude, and Timezone.
  3. Save preferences.

Glare control uses solar position from these values. Harvest closed loop uses ALS readings; open-loop harvest also uses sun position on the zone façade.

Step 2: Create facility zones

Solaris scope is defined primarily through Facility → Zones.

Zone typePurpose
harvestDaylight harvesting — ALS-driven dim
glareFaçade/window groups for anti-glare shade
shadingGeneral automated shade (may overlap glare)
lightingOptional harvest targets that share fixtures with Circadian

For each zone:

  1. Create or open the zone under Facility → Zones.
  2. Set the zone type to one of the types above.
  3. Link clusters and/or devices that belong in the zone.
  4. Open the Solaris panel on the zone detail page and configure tunables (see Zone tunables).

Step 3: Configure zone tunables

Per-zone settings override module defaults when present.

Harvest (harvest / lighting zones)

FieldDescription
Modeclosed_loop (ALS setpoint), open_loop (sun-based), or disabled
Setpoint luxTarget ambient level for closed loop (typical 300–750 lux)
Dim min / maxAllowed dim range (%)
GainAutomation authority 0–100 (how aggressively dim tracks the setpoint)
Response step %Maximum dim change per reconcile

Glare (glare / shading zones)

FieldDescription
Modeopen_loop or disabled
Orientation (°)Façade azimuth — 0 = north, 90 = east, 180 = south
Shade min / maxClosed and open positions (%)
Min elevation (°)Ignore sun below this elevation
GainAutomation authority for shade moves

Step 4: Train harvest setpoint (closed loop)

For closed-loop harvest zones, capture a baseline ALS reading after shades are closed and lights are at full output:

  1. Go to Modules → Solaris.
  2. Confirm harvest zones in scope use closed loop mode.
  3. Click Train setpoint (or restart if a session is already active).
  4. The controller closes shades in glare zones in scope, sets harvest-zone lights to 100%, waits for a settle period, then records ALS per zone.
  5. When training completes, setpoint lux values appear on the module status and linked zone detail pages.

:::tip When to retrain Retrain after major layout changes, new glazing, furniture moves that block sensors, or when closed-loop dim consistently misses the visual target. :::

Step 5: Enable the Solaris module

  1. Open Modules → Solaris.
  2. Toggle the module Enabled.
  3. Under Harvest and Glare, enable the algorithms you need.
  4. Set module-level defaults (used when zone metadata omits a field):
SectionKey defaults
HarvestSetpoint lux, dim min/max, gain, ALS fallback timeout
GlareShade min/max
RuntimeSensor debounce, reconcile intervals, active hours window
Manual overrideEnabled + auto-resume timeout (same family as Circadian)
  1. Choose Targets (zones recommended — module defaults to zone scope).
  2. Select Active days and optional Active hours (local time window).
  3. Click Save.

Step 6: Verify automation tasks

Under Automation → Tasks, confirm these builtin tasks are enabled:

TaskIntervalAction
solaris-harvest1 minmodule.solaris.apply_harvest
solaris-glare5 minmodule.solaris.apply_glare

Sensor-driven harvest also queues debounced solaris.harvest_once runs when ALS events arrive — you do not configure this separately.

Step 7: Verify operation

  1. Review live status on the Solaris module page — ALS lux, harvest %, glare shade %, and zone counts.
  2. Open Preview charts for harvest and/or glare for today (or a simulated date).
  3. Click Apply now to run harvest and/or glare reconcile immediately.
  4. Check Automation → Logs for applied vs skipped targets.

Manual override

Solaris uses the same override contract as Circadian.

Lights (harvest)

Event classExamplesEffect
Timed pauseon, up, down, scenesSkip harvest dim until timeout
Latched offoff, vacSkip until on / mot
Sensorlight,<lux>Does not suspend — triggers harvest reconcile

Shades (glare)

Event classExamplesEffect
Timed pauseShade up/down from Control, manual positionSkip glare shade moves until timeout
Solaris applyAutomation shade commandsNever recorded as manual

The Active overrides table on the module page lists suspended targets with mode, resume time, and reason.

Zone tunables vs module defaults

LayerWhereWhat
GlobalSettings → SystemLat/lng, timezone
ZoneFacility → Zone detail → SolarisOrientation, harvest mode/setpoint, glare limits
ModuleModules → SolarisDefaults, scope, active hours, runtime
AutomationAutomation → TasksBuiltin tasks (normally leave enabled)

Module defaults apply when a zone omits a field. Prefer zone-level setpoints for room-specific tuning; use module defaults for site-wide baselines.

Coordinating with Circadian

ModuleControlsBest practice
CircadianCCT + dim vs timeInterior zones, tunable-white fixtures
Solaris harvestDim vs ALSPerimeter/daylit zones with sensors
Solaris glareShade vs sunFaçade zones with blinds

Avoid assigning Circadian and Solaris harvest to the same fixtures unless you intend them to share authority. Separate facility zones so operators can reason about which algorithm owns each space.

Monitoring and troubleshooting

Live status indicators

StatusMeaning
ALS lux shownSensor data received for harvest zones
Harvest %Recent average dim applied across harvest scope
ALS fallbackOpen-loop harvest active — no fresh ALS within timeout
Glare shade %Recent shade position applied in glare scope

Common issues

Harvest does not dim

  • Zone type must be harvest or lighting and included in module scope.
  • Closed loop requires ALS events — confirm sensors report light,<lux> in device/event logs.
  • Check Active overrides for timed pause or latched off.
  • Verify gain > 0 and harvest mode is not disabled on the zone.

Glare shades do not move

  • Site latitude/longitude must be set.
  • Zone needs type glare or shading with shade actuators linked.
  • Confirm sun elevation exceeds min elevation for the zone.
  • Check shade manual override in the active suspends table.

Train setpoint fails or times out

  • Ensure at least one closed-loop harvest zone is in scope.
  • Glare zones in scope must have shade actuators so training can close them.
  • Wait for settle period; training requires a fresh ALS reading after lights reach full output.
  • Use Train again to force-restart a stuck session.

Harvest and Circadian both change the same lights

  • Narrow scope so only one module targets those clusters, or disable harvest on overlapping zones.

Somfy PoE shades in glare zones

  • Standalone Somfy PoE motors receive move.to via the controller adapter (UDP Synergy or HTTPS). INX/Core-proxy shades use the INX shade path. Both participate in glare apply when devices are in linked glare/shading zones.

Automation logs

Inspect Automation → Logs for solaris-harvest and solaris-glare runs:

  • skipped + manual_override — expected when operators have control
  • applied_targets empty — scope, sensor, or suspend issue
  • Lux values in run metadata — useful when tuning setpoint and gain