| 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 |
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.
com.karlwachs.utilitiesContents/changelist.txt/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.psql, pg_dump) — only if your SQL logger uses postgres./usr/local/bin/dot (Graphviz) to turn the generated zWave.dot into zWave.svg.sudo.~/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 settingsPing an IP device — pings an IP or hostname, result to the log.
Print Stuff to log — one dialog with a PRINT button per item:
zWave.dot (and zWave.svg if dot is installed)powermetrics infoRetrieve (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 db — pg_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.
PLUGINSusedForCPUlimts.json.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.
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
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.etime from ps). Hours are not wrapped at
24, a plugin up for four days shows 98:12:44.CPU-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.
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:
ps %CPU, which covers roughly the last
2 seconds per sample, so short bursts show up here that a long term average hides 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.
<Indigo>/Logs/Plugins/com.karlwachs.utilities/plugin.log (rotated at 100 kB, two old copies kept).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.powermetrics and the reboot action.ps; match what locale prints in a
terminal.osx-temp-fan helper; °C or °F, with a configurable format.ORDER by id (should be on for postgres), and the maximum length of a generated delete statement.sqlite3 process.mkbackup.py) runs at a time; starting a second one is refused with
a message in the log.| Released on: | Aug. 27, 2026 |
| Requires: | Indigo v2022.1.0+ |
| Downloaded: | 3 times |
| Download this release | |
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.
| Released on: | July 14, 2026 |
| Requires: | Indigo v2022.1.0+ |
| Downloaded: | 45 times |
| Download this release | |
bug fix audit (plugin.py, mkbackup.py, myLogPgms.py):
| Released on: | July 22, 2025 |
| Requires: | Indigo v2022.1.0+ |
| Downloaded: | 59 times |
| Download this release | |
fixed sql report for device names, states with "-". they get replaced with "" in the sql DB the query now used "" instead of "-"
removed error in printing to log when sql query came beck with and error in case no data etc.
| Released on: | Oct. 3, 2024 |
| Requires: | Indigo v2022.1.0+ |
| Downloaded: | 62 times |
| Download 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
| v2022.20.40 | Requires Indigo v2022.1.0+ | Released March 9, 2023 | print info to log for selected device, trigger, schedule, actionGroup |
| Released on: | March 9, 2023 |
| Requires: | Indigo v2022.1.0+ |
| Downloaded: | 52 times |
| Download this release | |
added menu options to print info to log for selected device, trigger, schedule, actionGroup in menu: print stuff to log..
| Released on: | June 20, 2022 |
| Requires: | Indigo v2022.1.0+ |
| Downloaded: | 51 times |
| Download this release | |
switched everything to py3
made backup work under py3.
now only py3 supported ie indigo 2022
| v2.19.39 | Requires Indigo v7.0.2 thru v2022.2 | Released June 20, 2022 | bug fix from py2 to py3 conversion |
| Released on: | June 20, 2022 |
| Requires: | Indigo v7.0.2 thru v2022.2 |
| Downloaded: | 60 times |
| Download this release | |
fixed @line 2209: 'lines = steps.strip("\n").split("\n")'
| v2.19.38 | Requires Indigo v7.0.2 thru v2022.2 | Released April 2, 2022 | fixed unicode, powermetrics info |
| Released on: | April 2, 2022 |
| Requires: | Indigo v7.0.2 thru v2022.2 |
| Downloaded: | 60 times |
| Download this release | |
| Released on: | March 30, 2022 |
| Requires: | Indigo v7.0.2 thru v2022.2 |
| Downloaded: | 41 times |
| Download this release | |
made code py3 compatible
| v1.18.32 | Requires Indigo v5.0.0 thru v2022.2 | Released Dec. 8, 2020 | fixed ERROR: relation "device_history_" does not exist |
| Released on: | Dec. 8, 2020 |
| Requires: | Indigo v5.0.0 thru v2022.2 |
| Downloaded: | 43 times |
| Download this release | |
fixed ERROR: relation "device_history_" does not exist
| v1.18.30 | Requires Indigo v5.0.0 thru v2022.2 | Released June 24, 2020 | fixed: logfile settings in config |
| Released on: | June 24, 2020 |
| Requires: | Indigo v5.0.0 thru v2022.2 |
| Downloaded: | 59 times |
| Download this release | |
fixed: logfile settings in config
| Released on: | April 30, 2020 |
| Requires: | Indigo v5.0.0 thru v2022.2 |
| Downloaded: | 53 times |
| Download this release | |
| v1.18.27 | Requires Indigo v5.0.0 thru v2022.2 | Released April 4, 2020 | added otpion for psql userid and password parameters in config |
| Released on: | April 4, 2020 |
| Requires: | Indigo v5.0.0 thru v2022.2 |
| Downloaded: | 57 times |
| Download this release | |
added otpion for psql userid and password parameters in config
| v1.18.25 | Requires Indigo v5.0.0 thru v2022.2 | Released Nov. 8, 2018 | added option to track cpu time usage |
| Released on: | Nov. 8, 2018 |
| Requires: | Indigo v5.0.0 thru v2022.2 |
| Downloaded: | 56 times |
| Download this release | |
added option to track cpu time usage logfile name is now plugin.log
| v1.18.24 | Requires Indigo v5.0.0 thru v2022.2 | Released Nov. 8, 2018 | added option to track cpu time usage |
| Released on: | Nov. 8, 2018 |
| Requires: | Indigo v5.0.0 thru v2022.2 |
| Downloaded: | 55 times |
| Download this release | |
added option to track cpu time usage logfile name is now plugin.log local directory is now ~/indigo/utilities
| v1.18.22 | Requires Indigo v5.0.0 thru v2022.2 | Released Sept. 24, 2018 | fixed version # and sql lite backup path |
| Released on: | Sept. 24, 2018 |
| Requires: | Indigo v5.0.0 thru v2022.2 |
| Downloaded: | 54 times |
| Download this release | |
fixed version # and sql lite backup path
| v1.18.20 | Requires Indigo v5.0.0 thru v2022.2 | Released Aug. 20, 2018 | added cpu time from subprocesses to main plugin |
| Released on: | Aug. 20, 2018 |
| Requires: | Indigo v5.0.0 thru v2022.2 |
| Downloaded: | 55 times |
| Download this release | |
added cpu time from subprocesses to main plugin
| Released on: | Aug. 20, 2018 |
| Requires: | Indigo v5.0.0 thru v2022.2 |
| Downloaded: | 54 times |
| Download this release | |
| Released on: | Aug. 19, 2018 |
| Requires: | Indigo v5.0.0 thru v2022.2 |
| Downloaded: | 54 times |
| Download 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
| Released on: | Aug. 18, 2018 |
| Requires: | Indigo v5.0.0 thru v2022.2 |
| Downloaded: | 60 times |
| Download this release | |
v1.18.17
| Released on: | Aug. 18, 2018 |
| Requires: | Indigo v5.0.0 thru v2022.2 |
| Downloaded: | 55 times |
| Download this release | |
v1.18.16
| Released on: | Aug. 18, 2018 |
| Requires: | Indigo v5.0.0 thru v2022.2 |
| Downloaded: | 55 times |
| Download this release | |
v1.18.15
| Released on: | Aug. 17, 2018 |
| Requires: | Indigo v5.0.0 thru v2022.2 |
| Downloaded: | 52 times |
| Download this release | |
v1.18.14
| Released on: | Aug. 14, 2018 |
| Requires: | Indigo v5.0.0 thru v2022.2 |
| Downloaded: | 47 times |
| Download this release | |
v 1.17.13
| Released on: | Aug. 13, 2018 |
| Requires: | Indigo v5.0.0 thru v2022.2 |
| Downloaded: | 53 times |
| Download this release | |
v1.16.13
| v1.15.12 | Requires Indigo v5.0.0 thru v2022.2 | Released July 8, 2018 | added MAC temp and fan speeds info into variables |
| Released on: | July 8, 2018 |
| Requires: | Indigo v5.0.0 thru v2022.2 |
| Downloaded: | 46 times |
| Download 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
indigo 6
| v1.14.12 | Requires Indigo v5.0.0 thru v2022.2 | Released Feb. 27, 2018 | auto version check and version reporting |
| Released on: | Feb. 27, 2018 |
| Requires: | Indigo v5.0.0 thru v2022.2 |
| Downloaded: | 47 times |
| Download this release | |
this version has auto version check version reporting for active plugins. only one Version query can be done per day
indigo 6
| v1.13.11 | Requires Indigo v5.0.0 thru v2022.2 | Released Jan. 9, 2018 | UTC to local time conversion for sqlite |
| Released on: | Jan. 9, 2018 |
| Requires: | Indigo v5.0.0 thru v2022.2 |
| Downloaded: | 48 times |
| Download 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
indigo 6
| Released on: | Nov. 27, 2017 |
| Requires: | Indigo v5.0.0 thru v2022.2 |
| Downloaded: | 43 times |
| Download this release | |
base release
docu on indigo web site
indigo 6