Python script code:
- Code: Select all
mqttPlugin = indigo.server.getPlugin("com.flyingdiver.indigoplugin.mqtt")
if mqttPlugin.isEnabled():
props = {
'message_type':"#Test#"
}
data = mqttPlugin.executeAction("fetchQueuedMessage", deviceId=1867973662, props=props, waitUntilDone=True)
Log output:
- Code: Select all
Aug 7, 2019 at 5:56:28 PM
Script Error embedded script: plugin does not have a <CallbackMethod> specified for action id fetchQueuedMessage
Script Error Exception Traceback (most recent call shown last):
embedded script, line 6, at top level
InvalidParameter: plugin does not have a <CallbackMethod> specified for action id fetchQueuedMessage
Actions.xml:
- Code: Select all
<Action id="fetchQueuedMessage">
<CallbackMethod>fetchQueuedMessageAction</CallbackMethod>
<ConfigUI>
<Field id="fetch_messageType" type="textfield">
</Field>
</ConfigUI>
</Action>
plugin.py:
- Code: Select all
def fetchQueuedMessageAction(self, action, dev, callerWaitingForResult):
messageType = action.props["message_type"]
queue = self.queueDict.get(messageType, None)
if not queue or queue.empty():
return None
self.logger.debug(u"{}: queueMessageForDispatchAction, queue = {} ({})".format(device.name, messageType, queue.qsize()))
return queue.get()
Where did I mess up?