Description:
- Extend the RESTful API _method=execute command for Action Groups to include the ability to pass properties and values.
For example:
- http://127.0.0.1:8176/actions/cooking%20scene?_method=execute&prop_foo=True&prop_bar=some%20text&propx=1
It might be allowable to replace any existing values, or only replace a value of None. Perhaps that choice could be an action option.
- <Action id="readApcupsd" deviceFilter="self.apcupsdServer" allowReplaceValues="true">
It might also be possible to allow the included properties to be simply passed to the Action Group -- not sure about that.
This functionality would somewhat mirror the executeAction method: executeAction(actionId, deviceId, props).
Benefit:
- The plugin could then use the property values to determine the actual action to take: change a state, trigger an event, update some settings, etc. This would allow a single action to act as a gateway for RESTful calls into a plugin and avoid having to create a one-to-one mapping of RESTful calls and actions. In effect, the added properties would be arguments to the action group.
Use case.
- Allow processes not running under the same UID as the Indigo Server, or running on different machines, to more easily initiate plugin actions. For now, the plugin user would have to create the interface Action Group. However, when the IOM allows the creation of Action Groups, that part could be done by the plugin.