utilities  

Developer: Karl's Plugins     Like this plugin? Show your appreciation!
Category: Reporting/UI/Control Pages
Github: Github Repo
License: MIT License
Assistance: Get help!   
Plugin ID: com.karlwachs.utilities
Latest release: v2022.22.48 released on Aug. 27, 2026
Release downloaded: 3 times
Requires: Indigo v2022.1.0 or higher
(Check the Releases tab below for older releases that may have different requirements)
  Download latest release

utilities

Indigo plugin with a toolbox for maintaining the Indigo server itself. It prints what is inside your Indigo installation (devices, variables, triggers, schedules, action groups, z-wave neighbors, battery levels, running plugins), it queries and cleans up the SQL logger database (SQLite or PostgreSQL), it backs up and repairs that database, it tracks the CPU used by Indigo and by every plugin, and it reads the Mac's temperatures and fan speeds.

The plugin creates no Indigo devices. Everything is done from the plugin menu, from actions in triggers/schedules/action groups, and through a handful of variables it writes.

  • Current version: 2022.22.48 (2026-08-26)
  • Author: Karl Wachs
  • Plugin ID: com.karlwachs.utilities
  • Indigo Server API: 3.0
  • Forum / support: http://forums.indigodomo.com/viewforum.php?f=164
  • Change log: see Contents/changelist.txt

Requirements

  • Indigo with python 3. The plugin picks the first of /Library/Frameworks/Python.framework/Versions/Current/bin/python3, /usr/local/bin/python, /usr/bin/python2.7 for the background SQL job, and logs which one it uses.
  • /usr/bin/sqlite3 — ships with macOS, used for all SQLite work.
  • PostgreSQL client (psql, pg_dump) — only if your SQL logger uses postgres.
  • Optional: /usr/local/bin/dot (Graphviz) to turn the generated zWave.dot into zWave.svg.
  • Optional: your Mac password in the plugin config — needed only for powermetrics and for the reboot server action, both of which run sudo.
  • No third party python packages.

Where it puts things

  • ~/indigo/utilities/ — everything the plugin produces: printed output files, steps and retcodes (progress of the background SQL job), backup.log, squeezeSQL, zWave.dot / .svg, timeStats.txt
  • <Indigo>/logs/indigo_history-1.sqlite-N.sqlite — the SQLite backups
  • <Indigo>/logs/indigo_history-fixed.sqlite — the repaired database
  • ~/indigo/utilities/postgresBackup.zip — the postgres dump, previous one kept as .zip-1
  • ~/indigo/utilities/databases/ and Preferences/ — the indigo config backup
  • <Indigo>/Logs/Plugins/com.karlwachs.utilities/plugin.log — optional plugin logfile
  • <Indigo>/Preferences/Plugins/com.karlwachs.utilities/PLUGINSusedForCPUlimts.json — CPU threshold settings

Ping an IP device — pings an IP or hostname, result to the log.

Print Stuff to log — one dialog with a PRINT button per item:

  • Devices and variables, IDs and names
  • States of all devices and all variable values
  • z-wave neighbors, plus a Graphviz zWave.dot (and zWave.svg if dot is installed)
  • All triggers with the device / variable / plugin that fires them
  • Number of SQL records stored for each device and variable
  • Plugin names, IDs, memory, CPU, average CPU, sub processes and non-standard open files
  • powermetrics info
  • Mac CPU and fan temperatures (not for M1 Macs)
  • Reflector status
  • Info for one selected device / schedule / trigger / action group
  • Battery levels of all devices, sorted by name, by level, or only below a threshold
  • Detailed info for one selected plugin — see below

Retrieve (records) from SQLite/postGRES — pick a variable, or a device and up to 9 of its states, optionally with = / != / not NULL conditions on the first two states, and print the last N records (or from a starting id, or all) to the Indigo log or to a file in ~/indigo/utilities/. The last record also lands in the variables SQLLineOutput and SQLValueOutput (folder SQLoutput, both created at startup).

Create and test a backup of the SQLITE db — copies the history database, runs a test query against the copy, then rotates it in as indigo_history-1.sqlite, keeping as many copies as the config says. Runs as a background job (mkbackup.py); progress goes to ~/indigo/utilities/steps and backup.log. A failed backup fires the SQL backup not successful event.

Create dumpfile.zip of the postgres dbpg_dump + gzip, restore instructions are printed to the log.

Create a backup of the indigo config files and config database.

Fix SQLITE db (and Fix … CANCEL job) — copy → dump → repair the dump (drops records with a broken index / duplicate timestamps) → rebuild into indigo_history-fixed.sqlite → test it. It does not touch your live database; the log tells you how to swap the fixed file in. This can take about an hour for an 8 GB database. Disable the SQL logger first.

Delete duplicate records in SQL Database — removes records that share the same HH:MM:SS timestamp, keeping the last one of each second. Test mode writes the SQL to ~/indigo/utilities/squeezeSQLall without executing anything. Disable the SQL logger first when using SQLite.

Prune individual devices and variables in SQLlogger — delete the history of one device or one variable older than N days. Has a TEST button that only prints the SQL it would run.

Actions

  • Stop Indigo Client
  • Reboot Indigo Server (needs the Mac password; stops client and server, waits, then reboots)
  • Print battery levels of devices to logfile
  • Print MAC cpu and fan temperatures to log
  • Print plugin id, names, cpu, … to logfile
  • Create and test a backup of the SQLITE db
  • Create dumpfile of the postgres db
  • Create a backup of the indigo config files and config database
  • squeezeDatabase / squeezeDatabaseQuiet (delete duplicate records, quiet = less log output)
  • Select variable or device and state to be retrieved from SQLite/postGRES
  • Prune individual devices and variables in SQLlogger

Events (triggers)

  • SQL backup not successful — fires when the background backup or fix job reports an error, or when the expected backup file was not created.
  • CPU of plugin consumption is over threshold — pick a plugin and a limit in CPU seconds per 100 seconds; the event fires when that plugin goes over. Plugins are added/removed in the event dialog and stored in PLUGINSusedForCPUlimts.json.

CPU tracking

Switch enable CPU tracking for Indigo + plugins on in the config and the plugin checks every 100 seconds and maintains one variable per plugin, CPU_usage_<shortPluginId>, plus CPU_usage_AllIndigoAndPlugins for the total. The unit is CPU seconds per 100 seconds of real time, so 100 means one fully busy CPU core. Indigo server, client, web server, postgres, VBox and fing are tracked alongside the plugins. Sub-process CPU is added to the plugin that started it.

The variables hold the average since the process started — the same number as ave_cpu in print plugin names…. They used to hold the rolling 100-second rate, which read 0.00 for most plugins: ps reports cpu time with a resolution of 0.01 seconds, so within one 100-second check the smallest value that can appear at all is 0.01, and a plugin that sleeps through the window really does measure zero. The average has no such floor.

The cpu threshold event still uses that rolling 100-second rate, because it has to react to a plugin going busy now, which a long average would hide.

The plugin table

Print Stuff → Plugin Names, IDs, mem, cpu… prints, for every running plugin and its sub processes:

ave_cpu = cpu seconds used per 100 seconds of run time, average since the process started (same unit as the CPU_usage_.. variables; 100 = one full cpu core)
    PID  CPU-total   run-time     ave_cpu    Mem-%    Virtual    Real  version      pluginName -------------------------------
   unix   hh:mm:ss   hh:mm:ss  cpu/100sec    of MAC        MB      MB  installed    .. + sub processes and non std open files
   1222    0:40:06    3:51:12       17.35    1.3      425,656     853  2025.2.0     someplugin
    575    0:00:51    3:51:39        0.37    0.1      425,369      92               SubProcess: /usr/libexec/logd
                                                                                    openFile:/Users/xx/indigo/utilities/steps
  • CPU-total — cpu time used since the process started, from the TIME column of ps. ps prints that as mm:ss.ff with unlimited minutes (3 hours of cpu reads 180:00.00), the plugin converts it to hh:mm:ss so it can be compared with run-time. Less than a second of cpu therefore shows as 0:00:00.
  • run-time — how long the process has been running (etime from ps). Hours are not wrapped at 24, a plugin up for four days shows 98:12:44.
  • ave_cpuCPU-total / run-time, in cpu seconds per 100 seconds, so all three columns are visible side by side.

After the table the same plugins are listed again, sorted by cpu usage, highest first, so the busiest one is easy to spot:

plugins sorted by cpu usage, highest first;  ave_cpu in cpu seconds per 100 seconds of run time
  ave_cpu   incl.sub   pluginName -------------------------------
    16.99              someplugin
     4.96              anotherplugin
     0.52       0.90   pluginWithHelpers

incl.sub is only filled in when the plugin has sub processes; it is the plugin plus everything it started. Plugins with no run time yet sort to the bottom with an empty ave_cpu.

ave_cpu uses the same unit as the CPU_usage_* variables, but it is a lifetime average rather than a rolling one. A plugin that is busy right now but idle most of the day will show a small ave_cpu next to a large CPU_usage_* — that difference is real. The header is repeated at the end of the list.

Detailed info for one plugin

Pick a running plugin from the list at the bottom of Print Stuff and press PRINT. The plugin samples that one plugin (and its sub processes) every 2 seconds for 2 minutes, then prints:

  • cpu as ave / max in percent of one core (there is no cpu-min column: over a 2 second sample an idle moment is always found, so it was always 0.00), from ps %CPU, which covers roughly the last 2 seconds per sample, so short bursts show up here that a long term average hides
  • real and virtual memory, also ave / min / max
  • one line per process: the plugin itself, then each of its sub processes sorted by cpu, then a TOTAL line. So a plugin that looks busy can be traced to the helper that is actually doing it:
    PID  cpu-ave  cpu-max   mem-ave mem-min mem-max    virt-ave   process ------------------
  12103     0.20     1.10        94      94      95      425097   demoPlugin   (the plugin itself)
  12105    10.30    10.40        12      12      12      425093   SubProcess: /usr/bin/python3 helper.py
  12108     0.00     0.00         1       1       1      425097   SubProcess: sleep 4   (ended during sampling)
  TOTAL    10.50    11.50       107     107     108     1275287   plugin + its sub processes

The TOTAL line is computed from the summed samples, not by adding up the per process ave/min/max, so its min and max are the real minimum and maximum of the whole plugin. Sub processes are the ones that existed when sampling started; one that ends in between is marked and keeps the samples it had. - pluginId, version, api version, pid, number of sub processes, run time, total cpu, enabled/running - disk bytes read and written over the window, total and per second, from proc_pid_rusage. Exact to the byte, no password needed, but only for processes of the same user — which plugins are. - network bytes in and out, listed separately, total and per second, from nettop. No password needed either, but nettop only reports processes that had traffic while it sampled, so a plugin with a permanent connection (websocket, MQTT, SSH) is measured well while a short request that opens and closes in between can be missed. It costs about 5 seconds per call, so it is read once before and once after the window, never in the sampling loop. - its devices: how many, how many enabled, then id / type / enabled / name and the full pluginProps per device - its triggers: the indigo event triggers belonging to that plugin, same columns - its actions: read from the plugin's own Actions.xml - its variables: indigo does not record which plugin owns a variable (a variable record only has id, name, value, folder and readOnly — no owner, unlike devices and triggers). So instead the plugin reads the selected plugin's own python files and looks for indigo.variable.create/ updateValue/delete, then works out what the name actually is: - a literal name is shown with its current value - a name held in a variable of the plugin (self.var_name) is followed to where it is set. If it comes from a config setting (self.pluginPrefs.get("var_name", DEFAULTS["var_name"])) the default from the code is used and the line says which setting it came from. If that name is not among the live variables the line says so — the setting was probably changed. - a name built from a prefix ("CPU_usage_"+pluginId) is shown with every live variable starting with that prefix - calls whose name comes from another object at runtime — indigo.variable.updateValue(var.name…) inside a loop — are counted in one summary line, because those are somebody else's variables that the plugin merely writes to, not variables of the plugin

The sampling runs in the plugin's own thread, so the two minutes are spent in the background — the log line telling you it started appears immediately, the report follows when sampling is done. All devices are listed, with their complete pluginProps — nothing is truncated, so for a plugin with many devices this becomes a long log entry.

Picking a second plugin while one is being sampled is fine: requests are queued and run one after the other, and the log tells you how many reports run before yours. Picking the same plugin twice does not queue it twice. Each report ends with the list of plugins still waiting.

Configuration

  • Debug — Logic, SQL queries, or all. Logs can go to the Indigo log or to <Indigo>/Logs/Plugins/com.karlwachs.utilities/plugin.log (rotated at 100 kB, two old copies kept).
  • Time tracking — set the Indigo variable enableTimeTracking_utilities to on, off or print (optionally print-cumtime, print-calls, …) to profile the plugin with cProfile. Results go to ~/indigo/utilities/timeStats.txt / .dump.
  • Mac password — only for powermetrics and the reboot action.
  • Locale language / character set — used when running ps; match what locale prints in a terminal.
  • CPU tracking — see above.
  • Mac temperature and fan speeds — set an update interval and the plugin fills one variable per sensor reported by the bundled osx-temp-fan helper; °C or °F, with a configurable format.
  • SQL — SQLite or postgres, the postgres command string, user id and password, whether to add ORDER by id (should be on for postgres), and the maximum length of a generated delete statement.
  • Backup — how many backup copies to keep.

Notes

  • Before Fix SQLITE db or Delete duplicate records on SQLite, disable Indigo's SQL logger; the plugin refuses to start if it sees a running sqlite3 process.
  • Only one background SQL job (mkbackup.py) runs at a time; starting a second one is refused with a message in the log.
  • The plugin restarts itself when time tracking is switched on or off, and when no usable python is found it stops with an error in the log.
Release details
Released on: Aug. 27, 2026
Requires: Indigo v2022.1.0+
Downloaded: 3 times 
Changes in this release

Added features / changes in v2022.22.48 @ 2026-08-26

new: 1. "print plugin names, IDs, mem, cpu, .." now also prints "ave_cpu" = average cpu used since the process started, in cpu seconds per 100 seconds of run time - the same unit as the CPU_usage_.. variables and the config dialog, 100 = one full cpu core. printed for plugins and for their sub processes. run time comes from "ps -eo pid=,etime=" (macOS ps has no "etimes" keyword). 2. same print: added "run-time" = total run time of the process as hh:mm:ss (hours not wrapped at 24), so cpu-total, run-time and ave_cpu = cpu-total/run-time can be read side by side. 3. same print: cpu-total is now printed as hh:mm:ss too. ps prints it as mm:ss.ff with unlimited minutes (3 hours of cpu = "180:00.00", never "3:00:00"), which did not match the hh:mm:ss of the run-time column. less than 1 second of cpu now shows as 0:00:00. 4. same print: after the table the plugins are listed once more, sorted by cpu usage with the biggest user first: ave_cpu, ave_cpu including the plugins own sub processes (only shown when there are any), and the plugin name. plugins without run time data sort to the end. 5. same print: 2 line header, second line gives the units of each column (hh:mm:ss, cpu/100sec, MB..) and it is printed again at the END of the list. header and data lines now use ONE shared format string, so the columns can no longer drift apart. Virtual and version columns widened, they overflowed and pushed the whole line to the right for eg 1,919,280 MB or version 2026.56.445. sub process and openFile lines line up with the pluginName column. 6. same print: sub process lines showed the memory of their PARENT plugin, divided by 1024 a second time. now the sub process own memory, same units as the plugin lines. (units are MB, the header said KB) 7. new in "print stuff": select ONE plugin and print detailed info about it. cpu is sampled every 2 secs for 2 minutes and reported as ave/min/max in % of one core (ps %CPU covers ~the last 2 secs, so short peaks are visible, not averaged away), same for real and virtual memory. one line per process: the plugin itself, each of its sub processes sorted by cpu, and a TOTAL line, so a busy plugin can be traced to the helper doing the work. no cpu-min column: with a 2 second sample an idle moment is always found, so it was 0.00 for everything. also DISK bytes read/written over the same window, total and per second, from proc_pid_rusage - exact and without a password, works for processes of the same user, which plugins are. and NETWORK bytes in and out separately, total and per second, from nettop - no password either, but nettop only lists processes that had traffic while it samples and it costs ~5 secs per call, so it is read once before and once after the window. permanent connections are measured well, a short request in between can be missed. and the VARIABLES the plugin creates/updates: indigo does not store which plugin owns a variable (a variable record has no owner field, devices and triggers do), so the plugins own python files are read and searched for indigo.variable.create/updateValue/delete. literal names are printed with their current value, names built at runtime are printed as the expression plus every live variable starting with that prefix. names kept in a plugin variable (self.var_name) are followed to where they are set, including config settings: eg VoiceReceiver does self.var_name = self.pluginPrefs.get("var_name", kDefaultPluginPrefs["var_name"]) and the report now prints the real name "voice_command_text" with its value instead of "self.var_name". calls that take the name from another object in a loop (indigo.variable.updateValue(var.name,..)) are counted in one line, they write to somebody elses variables and are not variables of the plugin. devices/triggers/actions lists have a header now (id / type / enabled / name) and nothing is truncated any more - names are last on the line. plus version/api/pid/run time/cpu total, ALL its devices with their complete pluginProps, its triggers and the actions it offers (read from the plugins own Actions.xml). the sampling runs in the plugins thread, the report is printed when it is done. several plugins can be selected while one is still being sampled, the requests are queued and run one after the other (they do NOT use the shared taskList, so they can not clobber or be clobbered by the other print jobs). 8. added README.md (menu items, actions, events, config, where the plugin puts its files), same as the other plugins. 9. menu / action labels pointed at the old "~/documents/indigoUtilities/" folder, the plugin has been writing to ~/indigo/utilities/ for a long time. all 9 labels corrected, and the config label for the plugin logfile was missing the "Plugins/" part of the path. the "test only" label for delete-duplicate-records now names the file that is really written (squeezeSQLall), same for the message printed at the end of a test run. and the battery menu label said "print beteryLevels of devices to logfle" -> "print Batterylevels of devices to logfile", same wording as the action of the same name.

bug fixes: 10. cpu tracking kept plugins that are not installed/running any more alive for ever: they were put back into the list every cycle with cpu "0:0.0" and their CPU_usage_ variable was rewritten with 0.00, so old plugin names never went away. now an entry that is no longer running AND has no cpu-threshold event configured is dropped (with a note in the log), entries with a real event are kept. the leftover indigo variable is NOT deleted automatically, delete it yourself if not wanted. 11. the CPU_usage_ variables mostly showed 0.00. the formula was not wrong (it already is cpu-seconds x 100 / seconds), the WINDOW was: ps reports cpu time with a resolution of 0.01 sec, so within one 100 second check the smallest value that can show up at all is 0.01, and a plugin that sleeps through the window really is 0. the variables now hold the average since the process started - the same number as ave_cpu in "print plugin names ..", which has no such floor. the cpu threshold EVENT still uses the rolling 100 second rate, it has to react to a plugin going busy now. 12. prune database deleted nothing for sqlite users: the cut off query used strftime('%Y%m%D..'), capital %D is not a valid sqlite format char, so strftime returned NULL for every record and the delete ended up as "WHERE id < 0". now %d. 13. prune database for a DEVICE looked the device id up in indigo.variables -> "device xx does not exist", the action never ran. now indigo.devices. 14. readPopen returned None when the subprocess call failed, so every caller crashed on "ret, err = self.readPopen(..)". now returns ("", errortext), same as mkbackup.py. 15. removed the "if error text contains None -> return" filter in exceptionHandler (plugin.py and mkbackup.py): it hid every real NoneType error, including the readPopen one above. what that filter DID cover is the StopThread indigo raises inside self.sleep() when a plugin is stopped or reloaded - that is now recognised by its type instead of by the word "None" in the text, so a reload no longer prints "Error 'None' / sleep @line 509: raise self.StopThread", and the main loop ends on "except self.StopThread" like a plugin should. 16. readPopen decodes with errors="replace", ps/lsof output with non utf-8 bytes no longer throws. 17. yourPassword now defaults to "", print powermetrics crashed on len(None) before the config was saved for the first time. 18. mkbackup.py wrote steps/retcodes to ~/indigo/Utilities/ while the plugin reads ~/indigo/utilities/; same folder on a normal MAC, different ones on a case sensitive volume. both lowercase now.

Release details
Released on: July 14, 2026
Requires: Indigo v2022.1.0+
Downloaded: 45 times 
Changes in this release

Added features / changes in v2022.22.47 @ 2026-07-07

bug fix audit (plugin.py, mkbackup.py, myLogPgms.py):

  1. fixed self.quitNOW typo (plugin would not stop when no python found)
  2. fixed MAC temperature print in Fahrenheit ("{%.1f}" mixed %/format -> crash)
  3. fixed NameError zwave in print triggers (zwave triggers never classified)
  4. fixed py3 crash writing zWave.dot graphviz file (bytes written to text file)
  5. removed dead duplicate buttonConfirmPluginCALLBACK definition
  6. fixed plugData check in addremovePlugin (checked dict instead of entry)
  7. fixed CPU sub-process bookkeeping using modified plugID key
  8. calcCPU now handles HH:MM:SS ps times (was returning minutes only)
  9. fixed printSQLaction var branch using undefined devId instead of varId
  10. fixed thesplit/theSplit typo (SQLValueOutput not set when separator used)
  11. fixed undefined "out" in print # of records error path (aborted listing)
  12. triggerEvent now also matches event type id -> "badBackup" trigger fires
  13. battery level print no longer crashes on float/None battery states
  14. backup test table now picked even if fewer than 3 variables exist
  15. mkbackup.py: added missing json + traceback imports (pruneVariables/pruneDevices files were silently ignored)
  16. mkbackup.py: retcodes file name fixed (errors were never reported back to plugin)
  17. mkbackup.py: create ~/indigo/Utilities/ if missing, fixed exception handler crashes
  18. myLogPgms.py: fixed logfile rotation (renamed .log twice, lost -1 file)
  19. myLogPgms.py: fixed py3 crash writing to plugin logfile (bytes written to text file) - logfile option works again
  20. create Logs/Plugins// dir at startup if missing
  21. versionCheck.py: fallback LooseVersion class when distutils is missing (removed in python 3.12+, plugin would not load)
  22. removed py2 leftovers in all .py files: unicode() calls -> str(), u"" string prefixes, and the try/except unicode shims
Release details
Released on: July 22, 2025
Requires: Indigo v2022.1.0+
Downloaded: 59 times 
Changes in this release
  1. fixed sql report for device names, states with "-". they get replaced with "" in the sql DB the query now used "" instead of "-"

  2. removed error in printing to log when sql query came beck with and error in case no data etc.

Release details
Released on: Oct. 3, 2024
Requires: Indigo v2022.1.0+
Downloaded: 62 times 
Changes in this release

aadded menu and action options to print battery level of all devices to the indigo log. you can select to only print bat level < xx % (xx = 10,20..60%) to limit the amount of print out and only list those that need attention you can put the print into a schedule that runs once a day

Release details
Released on: March 9, 2023
Requires: Indigo v2022.1.0+
Downloaded: 52 times 
Changes in this release

added menu options to print info to log for selected device, trigger, schedule, actionGroup in menu: print stuff to log..

Release details
Released on: June 20, 2022
Requires: Indigo v2022.1.0+
Downloaded: 51 times 
Changes in this release

switched everything to py3

made backup work under py3.

now only py3 supported ie indigo 2022

Release details
Released on: June 20, 2022
Requires: Indigo v7.0.2 thru v2022.2
Downloaded: 60 times 
Changes in this release

fixed @line 2209: 'lines = steps.strip("\n").split("\n")'

Release details
Released on: April 2, 2022
Requires: Indigo v7.0.2 thru v2022.2
Downloaded: 60 times 
Changes in this release
  1. fixed unicode issue
  2. added option to print powermetrics info
  3. clean up menu list
Release details
Released on: March 30, 2022
Requires: Indigo v7.0.2 thru v2022.2
Downloaded: 41 times 
Changes in this release

made code py3 compatible

Release details
Released on: Dec. 8, 2020
Requires: Indigo v5.0.0 thru v2022.2
Downloaded: 43 times 
Changes in this release

fixed ERROR: relation "device_history_" does not exist

Release details
Released on: June 24, 2020
Requires: Indigo v5.0.0 thru v2022.2
Downloaded: 59 times 
Changes in this release

fixed: logfile settings in config

Release details
Released on: April 30, 2020
Requires: Indigo v5.0.0 thru v2022.2
Downloaded: 53 times 
Changes in this release
  1. fixed: Enable CPU tracking off did not stop cpu collection
  2. moved josn prefs for cpu to file from indigo PREFSs file save 50% disk space ~ 5Mbyte, written often
Release details
Released on: April 4, 2020
Requires: Indigo v5.0.0 thru v2022.2
Downloaded: 57 times 
Changes in this release

added otpion for psql userid and password parameters in config

Release details
Released on: Nov. 8, 2018
Requires: Indigo v5.0.0 thru v2022.2
Downloaded: 56 times 
Changes in this release

added option to track cpu time usage logfile name is now plugin.log

Release details
Released on: Nov. 8, 2018
Requires: Indigo v5.0.0 thru v2022.2
Downloaded: 55 times 
Changes in this release

added option to track cpu time usage logfile name is now plugin.log local directory is now ~/indigo/utilities

Release details
Released on: Sept. 24, 2018
Requires: Indigo v5.0.0 thru v2022.2
Downloaded: 54 times 
Changes in this release

fixed version # and sql lite backup path

Release details
Released on: Aug. 20, 2018
Requires: Indigo v5.0.0 thru v2022.2
Downloaded: 55 times 
Changes in this release

added cpu time from subprocesses to main plugin

Release details
Released on: Aug. 20, 2018
Requires: Indigo v5.0.0 thru v2022.2
Downloaded: 54 times 
Changes in this release
  • version fetching from indigo store did not work properly
  • added "fing" in cpu report
  • some beautification
Release details
Released on: Aug. 19, 2018
Requires: Indigo v5.0.0 thru v2022.2
Downloaded: 54 times 
Changes in this release

v1.18.18

when a plugin was not running the variable was not updated ie stayed at the last value. Now CPU_usage_pluginName goes to 0 when the process is not running

Release details
Released on: Aug. 18, 2018
Requires: Indigo v5.0.0 thru v2022.2
Downloaded: 60 times 
Changes in this release

v1.18.17

Release details
Released on: Aug. 18, 2018
Requires: Indigo v5.0.0 thru v2022.2
Downloaded: 55 times 
Changes in this release

v1.18.16

Release details
Released on: Aug. 18, 2018
Requires: Indigo v5.0.0 thru v2022.2
Downloaded: 55 times 
Changes in this release

v1.18.15

Release details
Released on: Aug. 17, 2018
Requires: Indigo v5.0.0 thru v2022.2
Downloaded: 52 times 
Changes in this release

v1.18.14

Release details
Released on: Aug. 14, 2018
Requires: Indigo v5.0.0 thru v2022.2
Downloaded: 47 times 
Changes in this release

v 1.17.13

Release details
Released on: Aug. 13, 2018
Requires: Indigo v5.0.0 thru v2022.2
Downloaded: 53 times 
Changes in this release

v1.16.13

Release details
Released on: July 8, 2018
Requires: Indigo v5.0.0 thru v2022.2
Downloaded: 46 times 
Changes in this release

added option to populate various temp sensor and fan speed info of the INDIGO mac host In config select update frequency (off/ 1/20...500 secs) and temp unit(C/F) and format (ie %0.1f)

the variables are automatically created and then updated. The look like: temp_xxx fan0_Speed where xxx is the name of the temp sensor and fan0 can go up to fan9

The executable to get the info is included in the plugin

Karl

Requirements

indigo 6

Release details
Released on: Feb. 27, 2018
Requires: Indigo v5.0.0 thru v2022.2
Downloaded: 47 times 
Changes in this release

this version has auto version check version reporting for active plugins. only one Version query can be done per day

Requirements

indigo 6

Release details
Released on: Jan. 9, 2018
Requires: Indigo v5.0.0 thru v2022.2
Downloaded: 48 times 
Changes in this release

SQLite stores time as UTC. The record retrieve function now converts UTC to local time for item selection =, before it was just select * from .. now it is : select ts-localtime, then the regular ts column is removed. This option only works if either header= on or separator !="" is used After sql is run python code tries to rearrange the columns, with no info on columns size etc it can not id the columns.

This is only for selection with items =*; if you select specific columns, ts was already converted to local time

Requirements

indigo 6

Release details
Released on: Nov. 27, 2017
Requires: Indigo v5.0.0 thru v2022.2
Downloaded: 43 times 
Changes in this release

base release

docu on indigo web site

Requirements

indigo 6