GhostXML  

Developer: Dave's Plugins     Like this plugin? Show your appreciation!
Category: Virtual Devices and Scenes
Github: Github Repo
Assistance: Get help!    Check the online documentation
Plugin ID: com.fogbert.indigoplugin.GhostXML
Latest release: v2023.0.1 released on Nov. 18, 2023
Release downloaded: 0 times
Requires: Indigo v2022.2.0 or higher
(Check the Releases tab below for older releases that may have different requirements)
  Download latest release

GhostXML Logo The GhostXML plugin allows users to create custom devices for XML and JSON data sources.

The purpose of the GhostXML plugin is to interface with XML and JSON files (web-based or on the local machine) and parse the XML to device states. If the structure of the XML or JSON changes over time, the plugin will pick up the new structure and add the states automatically. Similarly, if the XML or JSON source drops keys from the data, those states will disappear from the device states list.

As noted above, the plugin supports XML and JSON feeds. It also includes the ability to perform variable substitutions within a URL, and provides a facility for Basic, Bearer, Digest and Token authentication methods for downloading data from sites that require a username and password.

Release details
Released on: Nov. 18, 2023
Requires: Indigo v2022.2.0+
Downloaded: 0 times 
Changes in this release

Code enhancements (no new features)

Release details
Released on: Oct. 4, 2023
Requires: Indigo v2022.2.0+
Downloaded: 0 times 
Changes in this release

Fixes a bug where devices displaying an IOError state incorrectly report as being online.

Release details
Released on: July 17, 2023
Requires: Indigo v2022.2.0+
Downloaded: 0 times 
Changes in this release

Takes 2022.3.0 out of beta.

Release details
Released on: May 18, 2022
Requires: Indigo v2022.1.0+
Downloaded: 0 times 
Changes in this release
  • Ensure that a device's ID is removed from managed devices when the device is deleted (even if the device has not been fully configured).
  • Improves error logging when WAN/LAN not present.
Release details
Released on: May 10, 2022
Requires: Indigo v2022.1.0+
Downloaded: 0 times 
Changes in this release

Updates plugin for Indigo 2022.1 and Python 3. - Updates FlatDict to 4.0.0 - Standardizes Indigo method implementation.

Release details
Released on: Jan. 10, 2021
Requires: Indigo v7.0.2 thru v2022.2
Downloaded: 0 times 
Changes in this release

Fixes bug in setting to ignore SQL logging.

Release details
Released on: Jan. 7, 2021
Requires: Indigo v7.0.2 thru v2022.2
Downloaded: 0 times 
Changes in this release

The changes in this release are not critical changes. Users that are attempting to script plugin Action Items should apply this update to have those result in success.

v0.5.07 - Removes unneeded returns from plugin Action methods.

v0.5.06 - Adds reminders to various curl options in comments.

Release details
Released on: Jan. 3, 2021
Requires: Indigo v7.0.2 thru v2022.2
Downloaded: 0 times 
Changes in this release

v0.5.05 - Adds curl return code definitions to provide more human-friendly reporting of curl errors.

v0.5.04 - Refines saving of device preferences changes.

v0.5.03 - Adds bearer authentication method.

v0.5.02 - Adds support for raw curl substitutions.

v0.5.01 - Adds UI for variable substitution for raw curl commands.

v0.4.57 - Fixes bug where states for Real Type devices were returned as strings when device comm first started.

v0.4.56 - Code refinements.

v0.4.55 - Adds option to turn off curl globbing.

v0.4.54 - Adds code to address tags that start with the 'illegal' @ character.

Release details
Released on: April 9, 2020
Requires: Indigo v7.0.2 thru v2022.2
Downloaded: 0 times 
Changes in this release
  • Adds feature to device definition to disable SQL logging for all device states.
Release details
Released on: April 6, 2020
Requires: Indigo v7.0.2 thru v2022.2
Downloaded: 0 times 
Changes in this release
  • Fixes device validation bug that precluded setting FTP source URL.
Release details
Released on: March 24, 2020
Requires: Indigo v7.0.2 thru v2022.2
Downloaded: 0 times 
Changes in this release
  • Fixes device validation bug that precluded setting manual refresh rate.
Release details
Released on: Feb. 21, 2020
Requires: Indigo v7.0.2 thru v2022.2
Downloaded: 0 times 
Changes in this release
  • Fixes bug where offline JSON sources would result in a cascading key name (changing '.ui' to 'dot_ui' with each plugin cycle).
Release details
Released on: Feb. 19, 2020
Requires: Indigo v7.0.2 thru v2022.2
Downloaded: 0 times 
Changes in this release

v0.4.49 - Fixes bug where a device with a parse error would not be taken offline after max retries exceeded.

v0.4.48 - Adds wider exception trapping to plugin device object class.

v0.4.47 - Fixes bug where devices could not be brought back from error state.

Release details
Released on: Jan. 5, 2020
Requires: Indigo v7.0.2 thru v2022.2
Downloaded: 0 times 
Changes in this release

v0.4.46 - Fixes bug where string type device still received some true type state values.

v0.4.45 - Updates to device name in Indigo now properly reflected in self.managedDevices.

v0.4.44 - Fixes bug that caused all secondary boolean states to be set to False.

v0.4.42 - Implements second device type that tries to coerce custom device states that reflect the data type (bool, integer, float, etc.)

v0.4.41 - Removes timeout setting in plugin preferences since timeouts are now handled within each device independently. - Improvements to device configuration validation. - Improved image state handling when errored device is disabled (retain the state but clear the icon). - Code refinements.

Release details
Released on: Dec. 7, 2019
Requires: Indigo v7.0.2 thru v2022.2
Downloaded: 0 times 
Changes in this release

v0.4.40 - Widens coverage to include additional API constructions. - Code cleanup.

v0.4.39 - Initial deprecation of the stop_sleep() method (unused).

v0.4.38 - Moved max retries code to its own method.

v0.4.37 - Removes all references to legacy version checking.

Release details
Released on: Nov. 10, 2019
Requires: Indigo v7.0.2 thru v2022.2
Downloaded: 0 times 
Changes in this release

v0.4.36 - Increases compliance with PEP 8.

v0.4.35 - Adds trigger that fires when a device has been automatically disabled by the plugin due to failed attempts.

v0.4.34 - Bug fixes.

v0.4.34 - Improves setting of device online status in Indigo UI. - Bug fix (syntax error)

v0.4.33 - Fixes key 'deviceIsOnline.ui' does not exist bug. - Makes device state 'parse-error' a permanent state (rather than dynamically generated).

v0.4.32 - Revises device initialization code to allow existing device states to persist when plugin is restarted.

Release details
Released on: Oct. 2, 2019
Requires: Indigo v7.0.2 thru v2022.2
Downloaded: 0 times 
Changes in this release

v0.4.31 - Adds user-configurable setting for device auto-disable feature.

v0.4.30 - Adds sendDevicePing() trap.

v0.4.29 - Changes logging messages to report device names instead of device IDs.

v0.4.28 - Moves None option to bottom of dropdown lists per Indigo convention.

v0.4.27 - Standardizes SupportURL behavior across all plugin functions.

v0.4.26 - Ensures plugin is compatible with the Indigo server version.

Release details
Released on: March 31, 2019
Requires: Indigo v7.0.2 thru v2022.2
Downloaded: 0 times 
Changes in this release

Fixes plugin configuration validation bug for new installs.

Release details
Released on: March 30, 2019
Requires: Indigo v7.0.2 thru v2022.2
Downloaded: 0 times 
Changes in this release

Fixes KeyError: key updaterEmail not found in dict error.

Existing users probably don't need to apply this update.

Release details
Released on: Feb. 25, 2019
Requires: Indigo v7.0.2 thru v2022.2
Downloaded: 0 times 
Changes in this release

v0.4.23 - Synchronize self.pluginPrefs in closedPrefsConfigUi().

v0.4.22 - Audits kDefaultPluginPrefs.

v0.4.21 - Removes plugin update checker.

v0.4.20 - Changes "En/Disable All Devices" to "En/Disable all Plugin Devices".

v0.4.19 - Changes Python lists to tuples where possible to improve performance.

Release details
Released on: Dec. 18, 2018
Requires: Indigo v7.0.2 thru v2022.2
Downloaded: 0 times 
Changes in this release
  • Adds raw curl support.
Release details
Released on: July 20, 2018
Requires: Indigo v7.0.2 thru v2022.2
Downloaded: 0 times 
Changes in this release

v0.4.13 - Moves proc kill timer to function.

v0.4.12 - Fixes bug when new devices are created. - Changes default debugging level to informational messages.

v0.4.11 - Adds timeout setting to device config.

v0.4.10 - Adds timeout to proc.communicate()

Release details
Released on: July 18, 2018
Requires: Indigo v7.0.2 thru v2022.2
Downloaded: 0 times 
Changes in this release
  • Debugs new bug in setting of debug level for new installs.
Release details
Released on: July 17, 2018
Requires: Indigo v7.0.2 thru v2022.2
Downloaded: 1 times 
Changes in this release

v0.4.08 - Fixes bug in setting of debug level for new installs. - Code refinements.

Release details
Released on: July 8, 2018
Requires: Indigo v7.0.2 thru v2022.2
Downloaded: 0 times 
Changes in this release

This release combines all beta and other changes since the last stable release.

All users of the plugin can upgrade to this version (GhostXML now requires Indigo 7.x). The GhostXML plugin now uses considerably fewer system resources and all users running versions older than 0.4.04 are strongly encouraged to upgrade their plugins.

Highlights:

v0.4.06 - Adds new Action Item to adjust the refresh frequency of a specified GhostXML device. - Improves device configuration validation and help bubble text.

v0.4.05 - Adds feature to automatically disable a device if it has failed to refresh 10 times.

v0.4.04 - Adds option for sites that require token authentication. - Completely refactors threading. - Migrates plugin devices to their own class. - Updates docstrings to Sphinx standard. - Refines logging. - Fixes bug where changes to debug level not applied. - Fixes bug where curl reported error when completed successfully.

flatdict.py - Adds trap for dict values that are empty lists or empty dicts. The trap replaces the list or dict with 'None'. This allows the plugin to retain and show the key as a device state.

v0.4.02 - Migrates writing of device states to API 2.0 [ dev.updateStatesOnServer() ].

v0.4.01 - Requires Indigo 7.0 - Updates to Indigo API 2.0 - Removes Toggle Debug from plugin menu.

Release details
Released on: May 4, 2018
Requires: Indigo v5.0.0 thru v2022.2
Downloaded: 0 times 
Changes in this release
  • Adds ability to parse JSON keys that contains spaces.
Release details
Released on: March 27, 2018
Requires: Indigo v5.0.0 thru v2022.2
Downloaded: 0 times 
Changes in this release
  • Fixes bug that could occur when establishing new devices with Basic Auth.
  • Code clean up.
Release details
Released on: Feb. 5, 2018
Requires: Indigo v5.0.0 thru v2022.2
Downloaded: 0 times 
Changes in this release
  • Updates plugin update checker to use curl to overcome outdated security of Apple's Python install.
Release details
Released on: Jan. 6, 2018
Requires: Indigo v5.0.0 thru v2022.2
Downloaded: 16 times 
Changes in this release
  • Adds basic authentication to config dialog.
  • Cosmetic changes to device config dialog.
  • Fixed bug in menu option to disable all GhostXML devices.
  • Fixed bug in call to manually refresh a device.
Release details
Released on: Dec. 13, 2017
Requires: Indigo v5.0.0 thru v2022.2
Downloaded: 18 times 
Changes in this release
  • Converts last string operations to Unicode.
Release details
Released on: Nov. 22, 2017
Requires: Indigo v5.0.0 thru v2022.2
Downloaded: 11 times 
Changes in this release

0.3.11 - Installs threading in place of multiprocessing. - Code refinements.