I've lately found several instances where it would he handy to be able to check a box associated with action lists (including those in schedules and triggers) that would have each action execute to completion before the next one starts. This would allow me to avoid annoying races between the individual actions. I can get something like that using delayed executions but the result is finicky when adding or removing actions and is prone to malfunction if the time an action takes to complete varies.
I also think this would need a subordinate check-box where you could specify whether or not execution of the list ignores actions that fail.
Sequential Action Lists
If you have a feature you'd like to see in Indigo, post it here. Others can refine the idea if they like. Please keep each topic to one feature or a closely related set of features and don't add other unrelated requests to an existing topic. Use the Hardware Support Requests forum below to request support for some bit of hardware - but be sure to check the 3rd Party Plugins Forum first though to make sure there isn't already a plugin for it.
- jay (support)
- Site Admin
- Posts: 18413
- Joined: Wed Mar 19, 2008 11:52 am
- Location: Austin, Texas
- Contact:
Re: Sequential Action Lists
Post by jay (support) »
This comes up every few years or so, and I thought I had a writeup of it somewhere, but it escapes me now. EDIT: less than that actually, doing some searching I found < 10 times over the years.
Here's the problem: Indigo is optimized such that actions almost always execute in parallel (asynchronously, in separate threads or processes). This is for performance: when users want something to happen, they most often want it to happen as fast as possible. This approach is almost always the way to go, but when you have some dependencies then it's a bit harder to deal with. We've done what we think is the best alternative by allowing delays before action execution.
Bottom line: it would require a non-trivial amount of effort to make all possible actions configurable to either be async or sync (some of them would require a huge amount of effort as to be obviously not worth it), and without doing that, attempting to add any more sync specification in the UI would just not be worth the effort because it wouldn't work consistently.
Here's the problem: Indigo is optimized such that actions almost always execute in parallel (asynchronously, in separate threads or processes). This is for performance: when users want something to happen, they most often want it to happen as fast as possible. This approach is almost always the way to go, but when you have some dependencies then it's a bit harder to deal with. We've done what we think is the best alternative by allowing delays before action execution.
Bottom line: it would require a non-trivial amount of effort to make all possible actions configurable to either be async or sync (some of them would require a huge amount of effort as to be obviously not worth it), and without doing that, attempting to add any more sync specification in the UI would just not be worth the effort because it wouldn't work consistently.
Jump to
- Indigo Help
- ↳ Announcements
- ↳ New to Indigo/Home Automation
- ↳ Installing/Moving/Upgrading/Uninstalling Questions
- ↳ Basic Usage Questions
- ↳ Devices
- ↳ Triggers and Triggering Events
- ↳ Schedules
- ↳ Conditions
- ↳ Action Groups and Actions
- ↳ Variables
- ↳ Control Pages
- ↳ Feature Requests
- ↳ Hardware Support Inquiries and Requests
- ↳ Supported Interfaces/Technologies
- ↳ Z-Wave
- ↳ INSTEON
- ↳ Indigo Virtual Devices
- ↳ X10
- ↳ Supported Hardware
- ↳ Interfaces
- ↳ Digital/Analog I/O Modules
- ↳ Energy Monitoring/Reporting
- ↳ Locks and Lock Controllers
- ↳ Motion Detectors and Sensors
- ↳ Motor/Speed and Shade/Blinds Controllers
- ↳ Outlets and Inline Modules
- ↳ Plug-in Lamp/Appliance Modules and Bulbs
- ↳ IR and A/V Devices
- ↳ Scene/Multi-Button Controllers
- ↳ Sprinkler/Irrigation Controllers
- ↳ Switches
- ↳ Thermostats
- ↳ Miscellaneous Devices
- ↳ Built-in Plugins
- ↳ Airfoil Pro
- ↳ Old Airfoil Discussions
- ↳ Alexa
- ↳ EasyDAQ Relay Card
- ↳ Email+
- ↳ Global Property Manager
- ↳ iTunes (Discontinued)
- ↳ NOAA Weather
- ↳ SQL Logger
- ↳ Timers and Pesters
- ↳ WeatherSnoop
- ↳ Growl (Discontinued)
- ↳ iCal Alarm Processor (Discontinued)
- ↳ Indigo Server Software
- ↳ Indigo Mac Client App
- ↳ Indigo Touch for iOS
- ↳ Indigo Touch for the Web
- ↳ Indigo Reflectors (remote access)
- ↳ Extending Indigo
- ↳ Python Scripting
- ↳ Plugin SDK and Development
- ↳ Client APIs
- ↳ Integrating Services/Applications
- ↳ Hacking
- ↳ Help Converting to Python 3
- ↳ Help Converting from AppleScript
- ↳ AppleScript Scripting
- ↳ Extending Indigo with Plugins and Python
- ↳ Indigo Accounts, Website, Forums, How-To Wiki, and Documentation
- ↳ Archived Posts
- 3rd Party Plugins and Developers
- ↳ Plugin Lists
- ↳ Developer Information for this Forum
- ↳ AaronLionsheep’s Plugins
- ↳ ShellyMQTT
- ↳ ShellyNGMQTT
- ↳ AB's Plugins
- ↳ AD2USB Alarm Interface
- ↳ Anyone's Plugins
- ↳ Autolog's Plugins
- ↳ Dynamic View Controller
- ↳ Foscam HD Controller
- ↳ Hubitat
- ↳ LIFX Controller
- ↳ nanoleaf Controller
- ↳ Roon Controller
- ↳ SMAPPEE Controller
- ↳ Sonos
- ↳ Squeezebox Controller
- ↳ Starling Bridge
- ↳ Stella-Z Thermostat Controller
- ↳ Touch Portal
- ↳ TRV Controller
- ↳ Z-Wave Interpreter
- ↳ Zigbee2mqtt
- ↳ Benjamin Schollnick's Plugins
- ↳ Berkinet's Plugins
- ↳ Bill's Plugins
- ↳ Bouncing Ball LTD
- ↳ Dave's Plugins
- ↳ Announcements Plugin
- ↳ Bike Share Plugin
- ↳ Dave's Scripts
- ↳ Fantastic Weather Plugin
- ↳ GhostXML Plugin
- ↳ Matplotlib Plugin
- ↳ Multitool Plugin
- ↳ OWServer Plugin
- ↳ Thingspeak Plugin
- ↳ WUnderground Plugin
- ↳ WUnderstation Plugin
- ↳ Z-Wave Node Matrix Plugin
- ↳ Duncan’s Plugins
- ↳ FlyingDiver's Plugins
- ↳ Better Email
- ↳ Ecobee
- ↳ Harmony Hub
- ↳ Home Assistant Agent
- ↳ LIFX Bridge
- ↳ Lutron
- ↳ miniUniFi
- ↳ MQTT
- ↳ Trane Nexia
- ↳ Twilio
- ↳ Other Plugins
- ↳ Discontinued Plugins
- ↳ RFPlayer
- ↳ MyQ
- ↳ GlennNZ's Plugins
- ↳ Actron QUE AC Plugin
- ↳ AppleTV Plugin
- ↳ BlueIris
- ↳ DeepState AI Plugin
- ↳ Emby Plugin
- ↳ Enphase Envoy Solar
- ↳ ESPHome4Indigo
- ↳ FindFriendsMini Plugin
- ↳ Gecko Spa Plugin
- ↳ Holiday Plugin
- ↳ HomeKitLink Siri
- ↳ iMessage
- ↳ iRoomba iRobot Plugin
- ↳ LedSimple Effects Plugin
- ↳ Paradox Alarm Plugin
- ↳ Sipura SPA VOIP Plugin
- ↳ Sunrise Plugin
- ↳ Tesla Battery
- ↳ Windows PC Remote Plugin
- ↳ Greg Glockner's Plugins
- ↳ Greg's Plugins
- ↳ Honeywell TC2 Security
- ↳ howartp's Plugins
- ↳ Clock Display
- ↳ EnergyLink
- ↳ Font Awesome
- ↳ Honeywell Evohome
- ↳ MyEnergi Hub
- ↳ Neo Smart Blinds
- ↳ Pulse Counter
- ↳ Sense Home Energy
- ↳ Sensibo
- ↳ Somfy Manager
- ↳ Tesla EV Control
- ↳ Variable Devices
- ↳ Verisure Alarm
- ↳ Volvo On Call
- ↳ Wakeup Scheduler
- ↳ ZWave Lock Manager
- ↳ ZWave Sensor Logger
- ↳ ZWave Scene Controller
- ↳ ZWave Watcher
- ↳ Zwave Window Controller
- ↳ Jason's Plugins
- ↳ GitHub Plugin Updater
- ↳ Network Devices
- ↳ Power Source
- ↳ Prometheus Client
- ↳ Prowl Notify
- ↳ RToggle
- ↳ Webcam
- ↳ XMPP Client
- ↳ JoyUnspeakable - Plugins by David Garozzo
- ↳ Bouncie OBD Plugin
- ↳ On-Screen Keyboard Plugin
- ↳ Automatic OBD-II (discontinued)
- ↳ Karl's Plugins and Scripts
- ↳ AppleTV Plugin
- ↳ ARDUINO Plugin
- ↳ Devices and Variables
- ↳ FINGSCAN
- ↳ Homematic Plugin
- ↳ homeAway - presence
- ↳ Hue Lights
- ↳ Archives
- ↳ Indigo Utilities
- ↳ INDIGOplotD
- ↳ Migrate SQLite to PostgreSQL
- ↳ Min / Max / Average Plugin
- ↳ Mother Plugin
- ↳ piBeacon
- ↳ SecondsSinceLastChange Plugin
- ↳ Shelly Plugin
- ↳ Simple Applescript to Indigo (SATI) Interface
- ↳ startupAction Plugin
- ↳ uniFi-WiFi-AP
- ↳ kmarkley's plugins
- ↳ Kwijibo007’s Plugins
- ↳ Doorbird
- ↳ Monoprice 6 Zone Amp
- ↳ SSH Switch
- ↳ Samsung TV
- ↳ Mpoulson’s Plugins
- ↳ Ring Doorbell
- ↳ Mr.Slim Heat Pump
- ↳ NuHeat Heated Floors
- ↳ EMA\BlueFrog Solar Micro-Inverters
- ↳ PurpleAir
- ↳ Nathan Williams' Plugins
- ↳ Nick's Plugins
- ↳ Autelis Jandy
- ↳ Autelis Somfy
- ↳ Hikvision Camera Alerts
- ↳ Honeywell Thermostat
- ↳ TED 5000
- ↳ Neil's Plugins
- ↳ Daikin Wifi Controller
- ↳ GivEnergy Cloud Controller
- ↳ Glow IHD/CAD Energy Monitor
- ↳ Honeywell Evohome
- ↳ Jaguar/Land Rover InControl
- ↳ Octopus Energy Agile Tariff
- ↳ Solcast Solar Forecast
- ↳ Velux Active
- ↳ WLED LED Controller
- ↳ papamac’s plugins
- ↳ Virtual Garage Door
- ↳ Pi GPIO
- ↳ Perry the Cynic
- ↳ racarter's plugins
- ↳ Blink
- ↳ Heatmiser Neo
- ↳ Hive
- ↳ Netatmo Multi
- ↳ Sunsynk
- ↳ Tapo
- ↳ Texecom
- ↳ Tuya
- ↳ Watchdog
- ↳ raneil's corner
- ↳ rbdubz3's Plugins
- ↳ Smart Setpoints
- ↳ Sylvania Lightify
- ↳ Light Scenes
- ↳ RFXCOM
- ↳ RogueProeliator's Plugins and Apps
- ↳ TiVo Network Remote
- ↳ Roku Network Remote
- ↳ Niles Audio Zone Receiver
- ↳ Sharp TV Network Remote
- ↳ Sony Bravia Network Remote
- ↳ DomoPad Android Client
- ↳ Onkyo Receiver
- ↳ Plex Media Server Manager
- ↳ Google Assistant
- ↳ Ryan Buckner's Plugins
- ↳ Simon’s Plug-ins
- ↳ Netro Irrigation
- ↳ TwitchCaptain's Home Automation Bazaar
- ↳ Broadlink Devices
- ↳ APC Metered Rack PDU
- ↳ Captain’s Recapitulation
- ↳ VTMikeL's plugins
- ↳ August Home
- ↳ Google Vision
- ↳ Just Add Power
- ↳ Security Spy Helper
- ↳ Grafana
- ↳ WeatherSnoop
- ↳ WebDeck Software
- ↳ WonderSlug's Plugins
- ↳ Archives (developer left platform)
- ↳ Bert's Plugins
- ↳ Indify
- ↳ Chameleon Plugins
- ↳ NEST Home
- ↳ iTravel
- ↳ LED Device Manager
- ↳ iFindStuff
- ↳ Bip's Plugins
- ↳ Colorado4Wheeler’s Plugins by EPS
- ↳ Unsupported and Legacy Plugins
- ↳ Homebridge Buddy
- ↳ Device Extensions Plugin
- ↳ HomeKit Bridge
- ↳ LCD Creator
- ↳ Other Indigo Bits and Bytes
- ↳ Room-O-Matic
- ↳ Scene Toggle
- ↳ Super Conditions (IF-THEN-ELSE)
- ↳ Firstnibble
- ↳ iAutomate.com Long Range RFID Plugin
- ↳ indilinq
- ↳ Jacob Lindehoff's Plugins
- ↳ Kristian's Plugins
- ↳ Mission Machines' Plugins
- ↳ Nathan Sheldon Software
- ↳ Proxidyne
- ↳ Sean's Plugins
- ↳ Spencer's Plugins
- ↳ thechad.io
- ↳ Travis' Plugins
- ↳ Smartphone Radar
- ↳ DSC Alarm Plugin
- ↳ DigiTemp 1-Wire Temperature Plugin
- ↳ Yergey's Forum
- ↳ ZachBenz's Plugins
- ↳ RingForIndigo
- User Contributions
- ↳ User Plugins
- ↳ Open Source Plugins
- ↳ Adapters
- ↳ Alexa-Hue Bridge
- ↳ DIRECTV DVR Control
- ↳ Dynamic Control
- ↳ HassBridge
- ↳ Photo Frame
- ↳ Pushover
- ↳ Archives
- ↳ Rachio
- ↳ Security Camera
- ↳ Vera Bridge
- ↳ Yamaha RX
- ↳ 8 Channel Network Relay
- ↳ Python Scripts
- ↳ Apple Shortcuts
- ↳ Other Scripts
- ↳ Control Page Designs and Images
- ↳ Other Applications and Integrations
- ↳ Miscellaneous
- ↳ AppleScripts
- ↳ Archived Posts
- General Home Automation Discussions
- ↳ Switching to Indigo
- ↳ Vendor Announcements
- ↳ Cool Home Automation Finds
- ↳ Help Wanted & Bounties
- ↳ How Do I...
- ↳ Switching Hardware Technologies
- ↳ User Modifications
- ↳ Classifieds
- ↳ General Home Automation
- ↳ General Chat
- Professional Installer Discussions
- ↳ Finding Installers
- ↳ Installer Discussions