Complete guide to all available flow cards
Triggers whenever a Composite Device exposes a different numeric, boolean, or text value after its startup baseline has been established.
Tokens:
For numeric Composite Devices. Compares consecutive exposed values and fires when the absolute fixed or percentage change is strictly greater than the configured threshold.
Parameters:
Tokens:
A non-zero value following zero counts as a 100% change. Smaller consecutive changes are not accumulated.
Triggers on every transition between TRUE and FALSE for the selected Logic Unit formula.
Parameters:
Tokens:
Triggers only when the selected Logic Unit formula changes to the selected TRUE or FALSE result.
Parameters:
Tokens:
Example:
WHEN Formula [security_alert] changed to [TRUE]
THEN Send notification "Security alert triggered!"
The first complete evaluation establishes the formula baseline. These cards fire on later TRUE↔FALSE transitions. Use the Logic Unit's Formula result alarm when a Flow must also react when the first complete result becomes TRUE.
Triggers on ANY state change (TRUE→FALSE or FALSE→TRUE) with a token containing the new state.
Parameters:
Tokens:
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
Triggers when a formula's evaluation times out (inputs didn't arrive within timeout period).
Parameters:
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)
Starts counting when the selected Homey person becomes Away. It fires only if the same person remains away for the full delay; returning home cancels the pending trigger.
Presence+ setup, examples and limitations →
Parameters:
Output tokens:
Starts counting when the last present Homey person becomes Away. It fires only if nobody returns for the full delay; any return cancels the pending trigger.
Parameters:
Output tokens:
Only enabled Homey users whose presence is available are included. Countdown state and fired thresholds are persisted across app restarts.
Fires when a background wait started with Start waiting for Conditional Gate GO ends. Not fired when the wait is stopped or restarted. No device needed.
Parameters:
Output tokens:
GO or TIMEOUTExample:
WHEN Conditional Gate wait finished "Razor"
THEN Turn off Razor
Fires when a background wait started with Start waiting until device capability becomes value ends for the selected Waiter ID. Not fired when the wait is stopped or restarted.
Parameters:
Output tokens:
MATCHED or TIMEOUTExample:
WHEN Capability wait finished "front_door"
AND "Value matched" tag is No
THEN Notify "Front door still open!"
Checks if a formula's current result matches the specified state.
Parameters:
Example:
WHEN Motion detected
AND Formula [nighttime] result is [TRUE]
THEN Turn on lights
Checks if the Logic Device/Unit is enabled or disabled.
Parameters:
Example:
WHEN Time is 23:00
AND [Security Logic] is turned [ON]
THEN Arm security system
Checks if a specific formula or the entire device has any errors.
Variants:
Example:
WHEN Every hour
AND [Security Logic] has any error
THEN Send notification "Check security logic configuration"
Compares a calculated numeric value without creating a separate Logic variable. The left value can be a tag, then the card applies +, -, * or / before comparing against the right value.
Parameters:
Heat pump / aircondition example:
AND Temperature + 0 is greater than or equal to low_threshold_livingroom
THEN Run the Gradient Map branch and set fan speed from the mapped result
Instantly checks if a Conditional Gate is currently GO or NO GO without waiting. No device needed.
Parameters:
Example:
WHEN Door opened
AND Gate "allow_lights" is GO
THEN Turn on lights
See Conditional Gates documentation for complete details.
Pauses the flow until the specified gate becomes GO, or until timeout expires. No device needed.
Parameters:
Example:
WHEN Doorbell pressed
AND Conditional Gate "DoorApproved" (Default: NO GO, Timeout: 30 seconds)
THEN Unlock the door
Timeout 0 acts as an instant filter: if gate is NO GO, flow stops immediately. See Conditional Gates documentation.
⏱️ Homey stops app Flow cards after 60 seconds, so this card waits at most 55 seconds and then ends with an error. For longer waits use Start waiting for Conditional Gate GO with the Conditional Gate wait finished trigger.
Pauses flow execution and waits for a device capability to reach a target value. Creates YES/NO paths.
Parameters:
Example:
WHEN Motion detected in hallway
AND Wait until [Hallway Light].onoff becomes [true] (timeout: 30 seconds)
THEN ✅ Announce "Light confirmed on"
ELSE ❌ Notify "Light didn't turn on - check bulb?"
⏱️ Homey stops app Flow cards after 60 seconds, so this card waits at most 55 seconds and then ends with an error (also with timeout 0). For longer waits use Start waiting until device capability becomes value with the Capability wait finished trigger.
⚠️ Experimental Feature
See Waiter Gates documentation for complete details and limitations.
Manually sets an input value for formula evaluation.
Parameters:
Variants:
Example:
WHEN Door opened
THEN Set input [A] to [true]
💡 Input values trigger formula re-evaluation automatically
Manually triggers formula evaluation with current input values.
Parameters:
Variants:
Example:
WHEN Settings changed
THEN Evaluate all formulas
💡 Useful after setting multiple inputs, or to force re-evaluation
Range checking and value mapping with AND/OR logic. No device needed - use directly in flows.
Parameters:
Output tokens:
Example: Check comfortable temperature (18-24°C):
Input: temperature token, Rules: 18,24, Operators: ≥ AND ≤
Maps a numeric input from one range into another and returns the result as a Mapped value tag for the next Advanced Flow card. Values outside the input range are clamped, and the result can be rounded to a selected step.
Parameters:
Output token:
Heat pump / aircondition fan example:
WHEN Temperature changes
AND Temperature is less than low_threshold_livingroom
THEN Set fan speed to 0%
WHEN Temperature changes
AND Temperature is greater than or equal to low_threshold_livingroom
THEN Map Temperature in range low_threshold_livingroom to high_threshold_livingroom into 100-500, round to 1
THEN Set the heat pump fan speed to Mapped value
If a flow has more than one Map card, choose the Mapped value tag from the Map card on the same branch as the fan-speed action.
Returns the name, id and folder of the Advanced Flow the card is in, as tags for the next cards. The card and its messages are translated into all of the app's languages. Useful in notifications and logs, so you can see which Flow sent them without typing the name by hand. Advanced Flow only: Homey does not show THEN cards with tags in standard Flows.
Parameters:
Output tokens:
[Duplicate] when the Flow cannot be namedHow it finds the Flow:
Homey does not tell a card which Flow it runs in, and apps may read Flows but not change them. When you pick this Flow, the card gets its own id, and Homey saves it with the Flow. Each time the card runs, the app looks up which Flow holds that id and reads its current name, so renaming the Flow needs nothing.
When the Flow cannot be named:
[Duplicate] - The card has been copied, or the Flow duplicated, so the same id is in several Flows. Error message names them. Open the card in the copy and pick this Flow again.[Unknown – save the Flow] - The id is not in any saved Flow, for example when you test a Flow before saving it.[Not set] - Nothing is picked in the field.In these cases the card still continues on its normal output, because Homey drops a card's tags when it takes the error output. The error output is only used when the app cannot read the Flows at all. To branch on a problem, add a Logic condition on Has error after the card.
Changes the state of a Conditional Gate (Open/Close) or updates the timeout of active waiters. No device needed.
Parameters:
Output tokens:
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. State and timeout changes apply to in-card and background waits alike. See Conditional Gates documentation.
Starts a background wait and continues immediately, so it works for waits longer than Homey's 60-second Flow card limit. The Conditional Gate wait finished trigger fires when the gate becomes GO or the timeout expires. No device needed.
Parameters:
Example:
WHEN Razor turned on
THEN Start waiting for gate "Razor" to become GO (Default: NO GO, Timeout: 2 minutes)
Gate already GO → the trigger fires immediately. Starting again for the same gate restarts the wait without firing the replaced one. Pending waits are lost if the app restarts.
Clears error state for a formula or device.
Variants:
Example:
WHEN Configuration updated
THEN Clear all errors
Simple wait/delay action. Pauses flow execution for specified duration.
Parameters:
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
⏱️ Maximum 55 seconds: Homey stops app Flow cards after 60 seconds, so longer durations fail immediately with a message. Use Homey's built-in Flow delay for longer pauses.
Starts a background wait and continues immediately, so it works for waits longer than Homey's 60-second Flow card limit. The Capability wait finished trigger fires for the Waiter ID when the value is reached or the timeout expires.
Parameters:
Example:
WHEN Front door opened
THEN Start waiting until [Front Door].alarm_contact becomes [false] (timeout: 2 minutes, id: front_door)
Value already matches → the trigger fires immediately. Starting again with the same Waiter ID restarts the wait without firing the replaced one. Pending waits are lost if the app restarts.
Enable, disable, or stop a running Waiter Gate.
Parameters:
Actions:
Works for in-card and background waits. Background Conditional Gate waits use the ID gate_<name>_background.
Example:
WHEN Manual override triggered
THEN Control Waiter Gate [door_monitor] → [Stop]
⚠️ Experimental Feature
Part of Waiter Gates system. See full documentation.
These cards leverage the Logic Device's unified state model
Logic Unit excels at managing complex multi-formula scenarios
WHEN Motion detected
THEN Set input A to true
→ Formula evaluates automatically, triggers other flows if result changes
WHEN Formula [security] changed to TRUE
THEN Turn on alarm
THEN Send notification
WHEN Time is sunset
THEN Set input A to true
THEN Set input B to [Living Room].motion
THEN Evaluate formula [evening_mode]
WHEN Formula [critical] timed out
THEN Send notification "Formula timeout"
THEN Clear error for formula [critical]
THEN Evaluate formula [critical]
WHEN Door opened
AND Gate "allow_lights" is GO
THEN Turn on lights
→ Gate acts as simple GO/NO GO filter - no device needed
WHEN Button pressed
AND Wait until [Device].capability becomes [value]
THEN ✅ Action for success
ELSE ❌ Action for timeout
→ Up to 55 seconds; Homey stops app Flow cards after 60 seconds
WHEN Razor turned on
THEN Start waiting for gate "Razor" to become GO (timeout: 2 minutes)
WHEN Conditional Gate wait finished "Razor"
THEN Turn off Razor
→ The app waits in the background and fires the trigger; both parts can sit on one Advanced Flow canvas
Mapped value tag to the next card