I used other plugins as templates for starting mine. I have not been able to find the cause of these errors:
- Code: Select all
Loading plugin "Six50Joe 1.0.3"
Starting plugin "Six50Joe 1.0.3" (pid 19108)
Error (client) UpdatePluginStatusUI() caught exception: LowLevelBadParameterError -- illegal XML tag name character
Installing and enabling plugin Six50Joe v1.0.3
Loading plugin "Six50Joe 1.0.3"
Starting plugin "Six50Joe 1.0.3" (pid 19108)
Error (client) UpdatePluginStatusUI() caught exception: LowLevelBadParameterError -- illegal XML tag name character
Six50Joe Error Error in plugin execution getDevicesDict: LowLevelBadParameterError -- illegal XML tag name character
Six50Joe Error Error in plugin execution getEventsDict: LowLevelBadParameterError -- illegal XML tag name character
Six50Joe Error Error in plugin execution getActionsDict: LowLevelBadParameterError -- illegal XML tag name character
Started plugin "Six50Joe 1.0.3"
Nov 14, 2017, 6:51:51 AM
Schedule enclosure lamps ON
Sent (offline) "enclosure heating lamp" on to 85
Error (client) runDialogForMenuAction() caught exception: LowLevelBadParameterError -- illegal character in XML tag name or value
My tag names don't seem to be breaking any of the rules. I've tried installing it in two separate server instances with different configurations, same errors. Also have tried uninstalling / reinstalling the plugin multiple times.
I haven't defined any custom devices or events, and my menu items and actions are pretty minimal right now:
Actions.xml:
- Code: Select all
<?xml version="1.0"?>
<Actions>
<SupportURL>https://myserver.org</SupportURL>
<Action id="pingOtherHouse">
<Name>Ping other house</Name>
<CallbackMethod>pingOtherHouse</CallbackMethod>
<ConfigUI>
<Field id="ipOrUrl" type="textfield">
<Label>IP or URL:</Label>
</Field>
<Field id="retrySecs" type="textfield">
<Label>Seconds between retries:</Label>
</Field>
<Field id="numRetries" type="textfield">
<Label>Number of retries:</Label>
</Field>
</ConfigUI>
</Action>
</Actions>
Menuitems.xml
- Code: Select all
<?xml version="1.0"?>
<!-- If your plugin wants to add menu items to it's submenu off the new Extensions menu,
define them here. Each should have a unique menu id, a Name, and an Action. The last
is a method name in your python file that will be called when the user selects that
menu item. Note - nothing will be returned to the client, so if you need to communicate
back to the user you can post information into the Event Log.
-->
<MenuItems>
<SupportURL>https://github.com/six50joe/Indigo</SupportURL>
<MenuItem id="pingOtherHouse">
<Name>Ping Other House...</Name>
<ConfigUI actionId="pingOtherHouse"/>
</MenuItem>
<MenuItem id="separator2" />
<MenuItem id="checkPluginUpdates">
<Name>Check for plugin updates</Name>
<CallbackMethod>checkPluginUpdates</CallbackMethod>
</MenuItem>
<MenuItem id="updatePlugin">
<Name>Update Plugin</Name>
<CallbackMethod>updatePlugin</CallbackMethod>
</MenuItem>
</MenuItems>
PluginConfig.xml
- Code: Select all
<?xml version="1.0"?>
<PluginConfig>
<Field type="menu" id="logLevel" defaultValue="INFO">
<Label>Log level:</Label>
<List>
<Option value="DEBUG">4 - Debug</Option>
<Option value="INFO">3 - Info</Option>
<Option value="WARNING">2 - Warnings</Option>
<Option value="ERROR">1 - Errors</Option>
</List>
</Field>
<Field type="checkbox" id="extensiveDebug" defaultValue="False">
<Label>Extensive debug log</Label>
</Field>
<Field type="label" id="emptylabelUpdates">
<Label>
</Label>
</Field>
</PluginConfig>