| Developer: | Glenn's Plugins Like this plugin? Show your appreciation! |
| Category: | A/V and IR Equipment |
| Github: | Github Repo |
| Assistance: | Get help! |
| Plugin ID: | com.GlennNZ.indigoplugin.deluxeGraphing |
| Latest release: | v1.1.20 released on Dec. 21, 2025 |
| Requires: | Indigo v2023.2.0 or higher |
| Download latest release |
![]()
Deluxe Graphing is an Indigo plugin that provides a simple local web app for viewing historical Indigo device state data as charts (from a PostgreSQL-backed history table). It can also generate PNGs on demand, making it ideal for wall/tablet dashboards and Indigo Control Pages.
It’s designed to work well with dashboard apps such as Kiosk Home:


Multi graphs let you combine several device states into a single chart (for example, multiple “watts” states on the same chart, or a left/right axis pairing such as temperature + power).



This shows how to use the Render PNG URL inside the Indigo Control Page editor so the image can be refreshed on a schedule (or by an Indigo action/trigger).

Presets provide defaults only (colors, chart options, etc.). Your URL options always win, so existing links won’t break.
Create a saved “multi graph” definition that combines multiple device states into a single chart: - each series can have its own label and color - series can be assigned to different axes (for example left/right)
The builder page (shown in MainMulti.png) makes it easy to add multiple series and save them as a named multi graph. The multi graph viewer then displays them together (see Example_multi.png).
Deluxe Graphing can render charts to PNG files and also return the PNG image directly.
This is especially useful when: - your dashboard prefers images rather than embedded web pages - you want to use Indigo Control Pages (see Controlpage.png) - you want a single image file updated on demand (for example, via a schedule)
For multi graphs, the builder page shows a ready-to-copy render URL at the bottom once you have saved a multi graph (see MainMultiPng.png).
For PNG rendering only - Playwright + Chromium browser download (one-time)
Your Indigo log will show the local address to open in a browser.
The resulting chart looks like Example.png.
If you’re building an Indigo Control Page and want the chart to appear as an image:
This gives you a reliable “always show latest chart image” workflow inside Indigo.
Presets let you save a named set of defaults for how graphs look and behave. You manage presets using the built-in Preset Manager page (no manual file editing required).
A preset has three main sections:
uiDefaults
“Simple” defaults that match the same options the UI normally puts into URLs (hours, chart type, colors, fill, stats, font).chartJsOverrides (optional JSON object)
Advanced Chart.js options overrides. This is where you can change legend position, grid/tick styling, tooltip styling, animations, interaction mode, etc.datasetOverrides (optional JSON object)
Advanced per-series dataset settings (line width, points, dashed lines, stepped lines, etc.).
For multi graphs, these overrides are applied to every series.Notes: - URL parameters still override preset defaults (presets are “defaults”, not hard locks). - If you’re not seeing changes, add a “smoking gun” override like a chart title (example below) to confirm the preset is being applied.

uiDefaults using the form.You can paste this into chartJsOverrides:
{
"aspectRatio": 3.2,
"animation": {
"duration": 1800,
"easing": "easeInOutQuart"
},
"plugins": {
"title": {
"display": true,
"text": "PRESET APPLIED",
"color": "#ff00ff",
"font": {
"size": 18,
"weight": "bold"
},
"padding": {
"top": 6,
"bottom": 10
}
},
"legend": {
"display": true,
"position": "bottom",
"labels": {
"color": "#00ff00",
"font": {
"size": 16,
"weight": "bold"
}
}
},
"tooltip": {
"enabled": true,
"animation": false,
"backgroundColor": "rgba(0,0,0,0.95)",
"titleColor": "#ff00ff",
"bodyColor": "#00ff00",
"borderColor": "#ff00ff",
"borderWidth": 2
}
},
"scales": {
"x": {
"grid": { "color": "rgba(255,0,255,0.25)" },
"ticks": { "color": "#ff00ff" }
},
"y": {
"grid": { "color": "rgba(0,255,0,0.18)" },
"ticks": { "color": "#00ff00" }
}
}
}
And paste this into datasetOverrides:
{
"borderWidth": 6,
"pointRadius": 7,
"pointHoverRadius": 10,
"borderDash": [10, 6]
}
uiDefaults (simple / UI-aligned)hours — default time window (e.g. 24, 48)type — chart type: line, bar, scattertension — line smoothing (0 = angular, 0.4 = smooth)bg — page background color (hex, e.g. #0f1220)line — default accent/line color (hex)fill — fill under the line (true/false)fillColor — fill color (hex)stats — show/hide stat cards (true/false)font — CSS font-family stringchartJsOverrides (advanced Chart.js options)These merge into the Chart.js options object.
plugins.legend.position — move legend: top, bottom, left, rightplugins.legend.labels.color — legend text colorplugins.legend.labels.font.size / weight — legend font stylingplugins.tooltip.* — tooltip colors, borders, enabled/disabledplugins.title.* — add a title (useful as a visual confirmation the preset is applied)scales.x.grid.color / scales.y.grid.color — grid line colorsscales.x.ticks.color / scales.y.ticks.color — tick label colorsanimation.duration / animation.easing — animation tuninginteraction.mode / interaction.intersect — how hovering/tooltip selection behavesdatasetOverrides (advanced per-series dataset options)These merge into each dataset (series).
borderWidth — line thicknessborderDash — dashed line pattern, e.g. [10, 6]pointRadius — point size (0 hides points)pointHoverRadius — point size on hoverstepped — stepped-line behavior (true, "before", "after") for on/off style statesIf you set an access token in plugin preferences, the web UI will include it automatically in generated URLs.
| v1.1.20 | Requires Indigo v2023.2.0+ | Released Dec. 21, 2025 | 1.1.20 Graphing of all Indigo Devices States, single or combined graphs. Live Updates. URL or PNG |
| Released on: | Dec. 21, 2025 |
| Requires: | Indigo v2023.2.0+ |
| Download this release | |
![]()
Deluxe Graphing is an Indigo plugin that provides a simple local web app for viewing historical Indigo device state data as charts (from a PostgreSQL-backed history table). It can also generate PNGs on demand, making it ideal for wall/tablet dashboards and Indigo Control Pages.
It’s designed to work well with dashboard apps such as Kiosk Home:


Multi graphs let you combine several device states into a single chart (for example, multiple “watts” states on the same chart, or a left/right axis pairing such as temperature + power).



This shows how to use the Render PNG URL inside the Indigo Control Page editor so the image can be refreshed on a schedule (or by an Indigo action/trigger).

Presets provide defaults only (colors, chart options, etc.). Your URL options always win, so existing links won’t break.
Create a saved “multi graph” definition that combines multiple device states into a single chart: - each series can have its own label and color - series can be assigned to different axes (for example left/right)
The builder page (shown in MainMulti.png) makes it easy to add multiple series and save them as a named multi graph. The multi graph viewer then displays them together (see Example_multi.png).
Deluxe Graphing can render charts to PNG files and also return the PNG image directly.
This is especially useful when: - your dashboard prefers images rather than embedded web pages - you want to use Indigo Control Pages (see Controlpage.png) - you want a single image file updated on demand (for example, via a schedule)
For multi graphs, the builder page shows a ready-to-copy render URL at the bottom once you have saved a multi graph (see MainMultiPng.png).
For PNG rendering only - Playwright + Chromium browser download (one-time)
Your Indigo log will show the local address to open in a browser.
The resulting chart looks like Example.png.
If you’re building an Indigo Control Page and want the chart to appear as an image:
This gives you a reliable “always show latest chart image” workflow inside Indigo.
Presets let you save a named set of defaults for how graphs look and behave. You manage presets using the built-in Preset Manager page (no manual file editing required).
A preset has three main sections:
uiDefaults
“Simple” defaults that match the same options the UI normally puts into URLs (hours, chart type, colors, fill, stats, font).chartJsOverrides (optional JSON object)
Advanced Chart.js options overrides. This is where you can change legend position, grid/tick styling, tooltip styling, animations, interaction mode, etc.datasetOverrides (optional JSON object)
Advanced per-series dataset settings (line width, points, dashed lines, stepped lines, etc.).
For multi graphs, these overrides are applied to every series.Notes: - URL parameters still override preset defaults (presets are “defaults”, not hard locks). - If you’re not seeing changes, add a “smoking gun” override like a chart title (example below) to confirm the preset is being applied.

uiDefaults using the form.You can paste this into chartJsOverrides:
{
"aspectRatio": 3.2,
"animation": {
"duration": 1800,
"easing": "easeInOutQuart"
},
"plugins": {
"title": {
"display": true,
"text": "PRESET APPLIED",
"color": "#ff00ff",
"font": {
"size": 18,
"weight": "bold"
},
"padding": {
"top": 6,
"bottom": 10
}
},
"legend": {
"display": true,
"position": "bottom",
"labels": {
"color": "#00ff00",
"font": {
"size": 16,
"weight": "bold"
}
}
},
"tooltip": {
"enabled": true,
"animation": false,
"backgroundColor": "rgba(0,0,0,0.95)",
"titleColor": "#ff00ff",
"bodyColor": "#00ff00",
"borderColor": "#ff00ff",
"borderWidth": 2
}
},
"scales": {
"x": {
"grid": { "color": "rgba(255,0,255,0.25)" },
"ticks": { "color": "#ff00ff" }
},
"y": {
"grid": { "color": "rgba(0,255,0,0.18)" },
"ticks": { "color": "#00ff00" }
}
}
}
And paste this into datasetOverrides:
{
"borderWidth": 6,
"pointRadius": 7,
"pointHoverRadius": 10,
"borderDash": [10, 6]
}
uiDefaults (simple / UI-aligned)hours — default time window (e.g. 24, 48)type — chart type: line, bar, scattertension — line smoothing (0 = angular, 0.4 = smooth)bg — page background color (hex, e.g. #0f1220)line — default accent/line color (hex)fill — fill under the line (true/false)fillColor — fill color (hex)stats — show/hide stat cards (true/false)font — CSS font-family stringchartJsOverrides (advanced Chart.js options)These merge into the Chart.js options object.
plugins.legend.position — move legend: top, bottom, left, rightplugins.legend.labels.color — legend text colorplugins.legend.labels.font.size / weight — legend font stylingplugins.tooltip.* — tooltip colors, borders, enabled/disabledplugins.title.* — add a title (useful as a visual confirmation the preset is applied)scales.x.grid.color / scales.y.grid.color — grid line colorsscales.x.ticks.color / scales.y.ticks.color — tick label colorsanimation.duration / animation.easing — animation tuninginteraction.mode / interaction.intersect — how hovering/tooltip selection behavesdatasetOverrides (advanced per-series dataset options)These merge into each dataset (series).
borderWidth — line thicknessborderDash — dashed line pattern, e.g. [10, 6]pointRadius — point size (0 hides points)pointHoverRadius — point size on hoverstepped — stepped-line behavior (true, "before", "after") for on/off style statesIf you set an access token in plugin preferences, the web UI will include it automatically in generated URLs.