Flow Cards Reference

Complete guide to all available flow cards

Quick Navigation

WHEN Cards (Triggers)

Trigger

Formula [formula] changed to [state]

Triggers when a formula evaluation result changes to TRUE or FALSE.

Parameters:

  • formula - Select which formula to monitor (dropdown)
  • state - TRUE or FALSE (dropdown)

Example:

WHEN Formula [security_alert] changed to [TRUE]

THEN Send notification "Security alert triggered!"

💡 Available for both Logic Device and Logic Unit

State changed (Logic Device only)

Triggers on ANY state change (TRUE→FALSE or FALSE→TRUE) with a token containing the new state.

Parameters:

  • None - Triggers on any change

Tokens:

  • state - The new state (true/false)
  • device_name - Name of the Logic Device

Example:

WHEN [Motion Light] State changed

THEN Send notification "Motion Light is now {{state}}"

✓ Logic Device exclusive feature - responds to both TRUE and FALSE changes

Formula [formula] timed out

Triggers when a formula's evaluation times out (inputs didn't arrive within timeout period).

Parameters:

  • formula - Select which formula to monitor (dropdown)

Example:

WHEN Formula [door_sequence] timed out

THEN Send notification "Door sequence incomplete - check sensors"

⚠️ Only triggers if timeout is configured in formula settings (timeout > 0)

AND Cards (Conditions)

Condition

Formula [formula] result is [state]

Checks if a formula's current result matches the specified state.

Parameters:

  • formula - Select which formula to check (dropdown)
  • state - TRUE or FALSE (dropdown)

Example:

WHEN Motion detected

AND Formula [nighttime] result is [TRUE]

THEN Turn on lights

Device is turned [on/off]

Checks if the Logic Device/Unit is enabled or disabled.

Parameters:

  • state - On or Off (dropdown)

Example:

WHEN Time is 23:00

AND [Security Logic] is turned [ON]

THEN Arm security system

Has error / Has any error

Checks if a specific formula or the entire device has any errors.

Variants:

  • Formula [formula] has error - Check specific formula
  • Has any error - Check if device has any errors

Example:

WHEN Every hour

AND [Security Logic] has any error

THEN Send notification "Check security logic configuration"

Gate [gate_name] is [GO/NO GO]

Instantly checks if a Conditional Gate is currently GO or NO GO without waiting. No device needed.

Parameters:

  • gate_name - Name of the gate to check (autocomplete)
  • state - GO or NO GO (dropdown)

Example:

WHEN Door opened

AND Gate "allow_lights" is GO

THEN Turn on lights

See Conditional Gates documentation for complete details.

Conditional Gate [gate_name] (Wait for GO)

Pauses the flow until the specified gate becomes GO, or until timeout expires. No device needed.

Parameters:

  • gate_name - Name of the gate to wait for (autocomplete)
  • default_state - Initial state if gate doesn't exist yet (GO or NO GO)
  • timeout_value - Maximum wait time (number, 0 = instant check)
  • timeout_unit - s/m/h (dropdown)

Example:

WHEN Washing machine finished

AND Conditional Gate "EmptyWasher" (Default: NO GO, Timeout: 1 hour)

THEN Send notification "Washer emptied!"

Timeout 0 acts as an instant filter: if gate is NO GO, flow stops immediately. See Conditional Gates documentation.

Wait until [device].[capability] becomes [value]

BETA

Pauses flow execution and waits for a device capability to reach a target value. Creates YES/NO paths.

Parameters:

  • device - Device to monitor (autocomplete)
  • capability - Capability to watch (dropdown, dynamic)
  • target_value - Value to wait for (text/number)
  • timeout_value - Maximum wait time (number)
  • timeout_unit - ms/s/m/h (dropdown)
  • waiter_id - Optional ID (auto-generated if empty)

Example:

WHEN Motion detected in hallway

AND Wait until [Hallway Light].onoff becomes [true] (timeout: 5 min)

THEN ✅ Announce "Light confirmed on"

ELSE ❌ Notify "Light didn't turn on - check bulb?"

⚠️ Experimental Feature

See Waiter Gates documentation for complete details and limitations.

THEN Cards (Actions)

Action

Set input [input] to [value]

Manually sets an input value for formula evaluation.

Parameters:

  • input - Which input (A, B, C...J) (dropdown)
  • value - true or false (dropdown)

Variants:

  • Set all inputs to [value] - Set all inputs at once
  • Set input [input] value to [device].[capability] - Use device capability as value

Example:

WHEN Door opened

THEN Set input [A] to [true]

💡 Input values trigger formula re-evaluation automatically

Evaluate formula [formula]

Manually triggers formula evaluation with current input values.

Parameters:

  • formula - Which formula to evaluate (dropdown)

Variants:

  • Evaluate all formulas - Evaluate all formulas at once (Logic Unit only)
  • Evaluate expression [expression] - Evaluate custom expression on-the-fly

Example:

WHEN Settings changed

THEN Evaluate all formulas

💡 Useful after setting multiple inputs, or to force re-evaluation

Evaluate [[input]] [[op1]] min [[logical_op]] [[op2]] max with rules [[rules]]

Range checking and value mapping with AND/OR logic. No device needed - use directly in flows.

Parameters:

  • input - The value to evaluate (number)
  • op1 - First comparison operator (e.g., ≥)
  • logical_op - AND or OR
  • op2 - Second comparison operator (e.g., ≤)
  • rules - Min,max values (e.g., "18,24")

Output tokens:

  • output - Result value
  • error_message - Error message if evaluation fails

Example: Check comfortable temperature (18-24°C):

Input: temperature token, Rules: 18,24, Operators: AND

Modify Conditional Gate [gate_name] → [new_state]

Changes the state of a Conditional Gate (Open/Close) or updates the timeout of active waiters. No device needed.

Parameters:

  • gate_name - Name of the gate to modify (autocomplete)
  • new_state - GO, NO GO, Toggle, or Don't change (dropdown)
  • new_timeout_value - Update timeout for waiting flows (-1 = no change)
  • new_timeout_unit - s/m/h (dropdown)

Output tokens:

  • gate_state - Boolean: true if gate is GO after action

Example:

WHEN Time is 23:00

THEN Modify Conditional Gate "allow_lights" → NO GO

To read state without changing: use "Don't change" + timeout -1. See Conditional Gates documentation.

Clear error

Clears error state for a formula or device.

Variants:

  • Clear error for formula [formula] - Clear specific formula error
  • Clear all errors - Clear all errors on device

Example:

WHEN Configuration updated

THEN Clear all errors

Wait [duration] [unit]

Simple wait/delay action. Pauses flow execution for specified duration.

Parameters:

  • duration - How long to wait (number)
  • unit - Milliseconds, Seconds, Minutes, or Hours (dropdown)

Example:

WHEN Motion detected

THEN Turn on light

THEN Wait [30] [seconds]

THEN Turn off light

💡 This is a simple delay card, not related to Waiter Gates reactive waiting

Control Waiter Gate [waiter_id] → [action]

BETA

Enable, disable, or stop a running Waiter Gate.

Parameters:

  • waiter_id - ID of the waiter to control (text)
  • action - Enable, Disable, or Stop (dropdown)

Actions:

  • Enable - Re-enable a disabled waiter
  • Disable - Temporarily disable waiter (doesn't stop current wait)
  • Stop - Immediately stop waiter and resolve to NO path

Example:

WHEN Manual override triggered

THEN Control Waiter Gate [door_monitor] → [Stop]

⚠️ Experimental Feature

Part of Waiter Gates system. See full documentation.

Device-Specific Cards

Logic Device Only

  • ✓ State changed trigger (with tokens)
  • ✓ Device alarm state changed trigger
  • ✓ Device on state changed trigger

These cards leverage the Logic Device's unified state model

Logic Unit Only

  • ✓ Evaluate all formulas action
  • ✓ Set all inputs action
  • ✓ Multiple formula management

Logic Unit excels at managing complex multi-formula scenarios

Common Flow Patterns

Pattern 1: Simple Logic Flow

WHEN Motion detected

THEN Set input A to true

→ Formula evaluates automatically, triggers other flows if result changes

Pattern 2: React to Logic Result

WHEN Formula [security] changed to TRUE

THEN Turn on alarm

THEN Send notification

Pattern 3: Multi-Step Logic Setup

WHEN Time is sunset

THEN Set input A to true

THEN Set input B to [Living Room].motion

THEN Evaluate formula [evening_mode]

Pattern 4: Error Handling

WHEN Formula [critical] timed out

THEN Send notification "Formula timeout"

THEN Clear error for formula [critical]

THEN Evaluate formula [critical]

Pattern 5: Conditional Gate Flow Control

WHEN Door opened

AND Gate "allow_lights" is GO

THEN Turn on lights

→ Gate acts as simple GO/NO GO filter - no device needed

Pattern 6: Reactive Wait (BETA)

WHEN Button pressed

AND Wait until [Device].capability becomes [value]

THEN ✅ Action for success

ELSE ❌ Action for timeout

💡 Pro Tips

↑ Back to top