Skip to content

@DaveL17 DaveL17 released this Jun 11, 2019 · 2 commits to master since this release

Addtions to the Area Chart device in this pre-release:


  • Adds markers to Area Chart device. Note that the marker will be placed at the cumulative value of the data point and not its absolute value.


  • Adds plot min and max to Area Chart device. Note that the min/max lines reflect the cumulative value of the data point and not its absolute value.


  • Adds annotations to Area Chart device. Note that annotation reflects the cumulative value of the data point and not its absolute value.
Assets 3

@DaveL17 DaveL17 released this May 28, 2019 · 5 commits to master since this release

This pre-release adds the following over the latest stable release (v0.8.01).


  • Adds Area Chart device type. Note that v0.8.18 does not support some features for Area Chart devices that other device types support (min, max, annotations and markers.)


  • Fixes bug in setting of hourly bins for charts that support the option.
  • Adds a 2 hour option to the X Axis bins setting.


  • Audits save paths to ensure they exist and are writeable at startup.


  • Adds feature to limit the number of days of data to display to bar, line, and scatter charts.
  • Fixes bug in setting of Y1 axis limits where max or min of data are negative.


  • Removes development logging.


  • Fixes bug in line chart legend layout where colors didn't match chart.


  • Converts all static menu callbacks to hard-coded XML list items to make selection of default option more seamless and converts them to XML templates for consistency and lightness.
  • Indicates default menu item options with a star (*); only applies to static menu lists (not dynamic lists).


  • Adds lines 7 and 8 to Line Charting device.


  • Adds test at plugin startup which will review each device's properties and bring it up to date with the latest base configuration. Any changes are written to the plugin log.


  • Adds test at plugin startup which will review CSV Engine device sources an issue a warning when more than one CSV device is writing to the same CSV file.


  • Adds device/variable filter to Multiline Text devices.


  • Fixes bug where the legend colors didn't match plot for select column number settings for Scatter Charts.
  • Fixes bug where the Display Legend? control did not appear for scatter charts.


  • Improves and expands options for X axis bins.
  • Adds section text and tooltips to show/hide controls for bar, line, scatter, and weather devices (other device types don't have show/hide controls.)


  • At plugin startup, iterate through all CSV Engine devices, audit CSV files, and create any missing ones.


  • Traps OSError when plugin cannot connect to the CSV storage location.
  • Refactors battery charting code.


  • Highlights battery devices with dead batteries (level of 0) by coloring the label using the warning color setting.


  • Adds control to vary the number of legend columns for bar, line and scatter charts.
  • UI Refinements

If you try this pre-release, please post any bugs or other issues with v0.8.18 to this forum:

Assets 3

@DaveL17 DaveL17 released this Apr 4, 2019 · 28 commits to master since this release

Another long list of changes.

Although the changes and potential bugs should be low risk, those choosing to update should make a backup of CSV data. Although it shouldn't be necessary, a full backup would include the prior plugin file, and the prior plugin preferences file located at: /Library/Application Support/Perceptive Automation/Indigo 7.2/Preferences/Plugins/com.fogbert.indigoplugin.matplotlib.indiPref adjusted for whatever your current version of Indigo may be.

Please post any questions or bugs to the Indigo forum or here on GitHub.

Here is a consolidated list of changes since the prior version:


  • Plugin should shut down more gracefully.
  • Code refinements.


  • Moves 'None' options in drop-down lists to bottom of list (per Indigo standard.)


  • Adds check to ensure that the plugin is compatible with Indigo version.


  • Re-fixes float error in the duration value for CSV refreshes.


  • Fixes float error in the duration value for CSV refreshes.
  • Moves dev prop maintenance routine to deviceStartComm.


  • Adds tests to alert the user that they're saving charts to the wrong location (when the Indigo version is updated.)
  • Fixes bug where battery level being displayed regardless of setting.


  • Better handles long device names in Battery Health chart.
  • Plots title relative to figure instead of to plot.
  • Fixes KeyError bug in pluginEnvironmentLogger 'isChart'.


  • Adds control to hide device names on battery health charts.
  • Improves plotting of battery level values on battery health charts.
  • Code refinements.


  • Consolidates chart plot logging into single method.
  • Help bubble refinements.
  • Code refinements.


  • Standardizes plotting of X axis label across all devices.
  • Standardizes plotting of chart title across all devices.
  • Standardizes save image code across all devices.
  • Refines behavior across all plugin elements.


  • Adds support for charting 'Armed' and 'Disarmed' values.


  • Improves handling of CSV data updates when duration is set to zero (no limit.)


  • Fixes empty text instances for custom Y tick labels (where locations are defined but labels are not.)


  • Adds feature to Battery Health Device to plot a background box for battery level values.
  • Improves validation for chart axis limits (Y Min, Y Max, Y2 Min, Y2 Max).
  • Improves code for plotting Y1 and Y2 axis limits (Y Min, Y Max, Y2 Min, Y2 Max).
  • Code refinements.


  • Updates config dialog text for Battery Health Chart - excluded devices (language referred to legacy control.)
  • Adds requirement that the custom Y tick labels field and custom Y tick values field be the same length.
  • Fixes bug for Battery Health Chart to remove "No Battery Devices" dummy device when actual devices present.


  • Adds default entries for legend labels (will only be displayed if Display Legend option is enabled.)


  • Refines configuration dialog control labels.
  • Deletes unneeded Fill control from Bar Devices (bar 4).


  • Fixes bug in format_axis_y_ticks where error was thrown under certain conditions (including 'None', '', and ' '.)
  • Improved error logging.


  • Fixed bug in line charting for TypeError: list indices must be integers, not str'


  • No longer allows creation of CSV device without establishing at least one data source.
  • Fixes bug in validation of plugin configuration settings for change logging.
  • Improves docstrings.


  • Adds process garbage collection to runConcurrentThread().


  • Chart update processes are no longer blocking.
  • Puts CSV refreshing back in the main thread.


  • Moves CSV refreshing to its own process.


  • Fixes bug in custom line segments where only the first custom line is plotted.


  • Fixes bug in duration setting for CSV devices.
Assets 3

@DaveL17 DaveL17 released this Feb 17, 2019 · 63 commits to master since this release

Rather than try to single out meaningful changes, I'll list them all (it may also be helpful to those that might want to isolate a specific build.) This series of changes also completely eliminates any hooks into the pandas library (as of build v0.7.22.)

This represents a huge update to the plugin and, while it has been running very stably in testing, there could be some lingering bugs. It is recommended that you backup any data files before installing this update.


  • Further improves maintenance of legacy props in all chart devices.
  • Moves maintenance tasks to separate module.


  • Further improves maintenance of legacy props in all chart devices.
  • Set all device UI icons to off state when comm killed through plugin menu action.
  • Fixed bug in snappy config menus which created unneeded device props.


  • Fixed bug in bar chart config dialog where X axis grid setting not hiding properly.


  • Improves logging of plugin prefs when changes made using configuration dialog.
  • Fixes placement of line 6 suppression option in line chart device configuration dialog.


  • Improves resiliency to CSV files that contain 1 or fewer observations.
  • Changes the default timestamp from the epoch to current time (retains the epoch as the default device last refresh).
  • Adds trap for RuntimeError when trying to save chart image to address the 'too many ticks' error.
  • Adds trap for TypeError when trying to generate a best fit line segment to address the 'int' object is not iterable error.
  • Adds number of chart devices and CSV engine devices to plugin environment logging.


  • Improved conversion of legacy line fill properties to bool type.


  • Reorders plugin device model list when editing device.
  • Improves error logging.
  • Cleans up XML attributes.


  • Revises chart device names for consistency.
  • Fixes bug in battery chart device "KeyError: 'customSizeChart'. "


  • Adds choice to bar, line and scatter charts to suppress the plotting of individual data elements. The data and all settings are retained.


  • Synchronize self.pluginPrefs in closedPrefsConfigUi().


  • Adds choice to set bar width to make it simpler for first time device creation. If the value is set to zero, the plugin will attempt to set an attractive bar width automatically. Zero is now the new default for new bar chart devices.
  • Changes menu items from "En/Disable All Devices" to "En/Disable All Plugin Devices".
  • Changes default font for Calendar Devices to 12 pt (to better fit the default image size for non-retina screens.)
  • Changes behavior of custom size chart checkbox so that now, custom size values will only be honored when the custom size checkbox is checked.
  • Improves validation of plugin device configuration settings.
  • Improves setting of Y1 limits and better handles condition where limits set improperly when all observations are the same value.
  • Updates CSV device validation for duration (data to keep).
  • Updates behavior so that if all CSV data are older than the time limit, the plugin will return the original data and warn the user.
  • Refines grid settings for Polar Chart Devices.
  • Fixes bug in Line Chart devices where customizations (like best fit or fill) would result in an 'argument dimensions are incompatible' error.
  • Fixes bug in default line color settings for Weather Forecast devices.
  • Fixes bug in new CSV data source names that contain extended Unicode characters.
  • Fixes bug in new and existing Polar Chart data source names that contain extended Unicode characters.
  • Fixes bug where data header name was converted to 'NaN' while data quality repairs were made.
  • Fixes bug where line chart best fit property incorrectly stored as a string. Will convert legacy devices in this state to boolean.
  • Changes Python lists to tuples where possible to improve speed.
  • Updates kDefaultPluginPrefs.
  • Code refinements.


  • Removes dependence on pandas library.
  • Code refinements.


  • Removes default location from plugin preferences for data and chart save locations.


  • Improves resiliency in dealing with malformed CSV files.
  • Adds new date formats for chart axes:
    • Jan 16 [M D]
    • Jan 16 2019 [M D Y]
    • 16 Jan [D M]
    • 2019 Jan 16 [Y M D]
  • [Line Devices] Hides the best fit color control until the "Plot Best Fit" checkbox is selected.
  • Fixes bug in date/time format specifiers.
  • Improves CSV item processing performance.
  • Fixes bug in manual refresh Action.
  • Attempts to work around pandas bug in rare csv write bug where the string '-01-01 00:00:00' is added to observation data.
  • Refines plugin logging.
  • Improves under-hood maintenance to ensure that the plugin and its devices are up to date for the installed version (plugin preference, device properties, etc.)
  • Code refinements.


  • CSV Engine / Edit Data Item / Data Source control now returns a case- insensitive sorted list.
  • Fixes bug in naming of CSV Engine data items that contain Unicode characters.
  • Ups the default duration limit to no limit (where it should have been in the first place.)
Assets 3

@DaveL17 DaveL17 released this Dec 30, 2018 · 78 commits to master since this release

  • Ups the duration limit default to 7200 hours.
Assets 3

@DaveL17 DaveL17 released this Dec 30, 2018 · 79 commits to master since this release

  • Adds filter to CSV Engine Add Data Item and Edit Data Item controls to allow source menu to be filtered to show all sources, just devices, or just variables.
  • Adds CSV Engine device limit based on time (in hours).
  • Includes pandas library in base installation (v0.19.1) and consolidates csv_refresh_process() under pandas.
  • Improves device configuration dialogs (battery health, line).
  • Removes plugin update checking.
  • Fixes bug where manual update charts were updating every 15 seconds.
  • Fixes bug where device comm not honored for chart devices when called by single chart refresh action.
  • Code refinements.
Assets 3

@DaveL17 DaveL17 released this Dec 16, 2018 · 90 commits to master since this release


  • Settings for manual CSV refresh actions retained when CSV Engine device
    source names changed.


  • Adds Action item to update CSV device set to manual update only
  • Adds Action item to update CSV device set to manual update only for single CSV data source.
Assets 3

@DaveL17 DaveL17 released this Oct 17, 2018 · 93 commits to master since this release

  • Fixes bug for rare circumstance where chart device's 'csvLastUpdated' state did not save in expected timestamp format.
Assets 3

@DaveL17 DaveL17 released this Sep 11, 2018 · 96 commits to master since this release

Fixes datetime bug in new CSV Engine devices (csvLastUpdated).

Assets 3

@DaveL17 DaveL17 released this Aug 22, 2018 · 98 commits to master since this release

  • Adds support for Fantastic Weather forecast devices.
  • Fixes bug in Refresh Charts menu item.
  • Fixes bug in Refresh Charts action item.
Assets 3
You can’t perform that action at this time.