Reactive flow cards that pause and wait for device states to change
I'm still exploring if Waiter Gates provide real value in practice. Your feedback is welcome! This feature may evolve or change based on user experience.
Waiter Gates let your flows pause and wait for specific device states to change, with YES/NO paths based on the outcome:
Type: CONDITION
Waits for a device capability to reach a target value. Has YES/NO paths.
WHEN motion detected
AND wait until [Living Room Light].onoff becomes true (timeout: 5 minutes)
THEN ✅ announce "Light turned on!"
ELSE ❌ notify "Light didn't turn on - check bulb?"
Type: ACTION
Enable, disable, or stop a waiter gate by its ID.
Type: ACTION
Simple delay without device monitoring. Just pauses the flow for a specified time.
WHEN motion detected
THEN turn on light
AND wait 5 seconds
AND turn off light
Verify that a smart bulb actually turned on after sending the command.
WHEN light switch pressed
THEN turn on [Smart Bulb]
AND wait until [Smart Bulb].onoff becomes true (timeout: 10 seconds)
THEN ✅ continue normally
ELSE ❌ send notification "Bulb failed to turn on"
AND log error
Make sure door closes after opening, with notification if it stays open.
WHEN front door opened
AND wait until [Front Door].alarm_contact becomes false (timeout: 2 minutes)
THEN ✅ log "Door closed normally"
ELSE ❌ send notification "Front door still open!"
AND flash lights red
Wait for heater to reach target temperature, alert if it fails.
WHEN heater turned on
AND wait until [Heater].measure_temperature becomes 22 (timeout: 30 minutes)
THEN ✅ log "Target temperature reached"
ELSE ❌ notify "Heater not reaching temperature - check it!"
Verify a device actually started consuming power after turning on.
WHEN washing machine turned on
AND wait until [Power Meter].measure_power becomes >100 (timeout: 5 minutes)
THEN ✅ log "Washing machine started"
ELSE ❌ notify "Washing machine didn't start - door open?"
Leave the Waiter ID field empty, and the system automatically generates a unique ID like waiter_1704123456789_x3k9m2
You can provide your own ID for easier control:
light-check-123
door-monitor-main
heater-temp-wait
Each waiter ID must be unique across ALL flows. If you use the same ID in multiple flows simultaneously, they will conflict.
Waiter Gates is an experimental feature. I'd love to hear about your experience:
Share your thoughts on the Homey Community Forum or GitHub Issues.