plugin reference report - DaveL17/indigo-scripts GitHub Wiki

The Plugin Reference Report is a simple report that lists 6 Indigo object types (device, schedule, trigger, etc.) and the plugins that "own" those objects. The purpose of the report is to identify Indigo objects a plugin interacts with. An example, might make this clearer:

Plugin Reference Report v1.2.3
====================================================================================================
Plugin Number One [com.someName.myPlugin]
====================================================================================================
Action Groups
    None
Control Pages
    Unit Test - Control Page  | 37036932 | Control Z-4
Devices
    None
Schedules
    None
Triggers
    None
Trigger Actions
    None
====================================================================================================
Plugin Number Two [com.someOtherName.someOtherPlugin]
====================================================================================================
Action Groups
    None
Control Pages
    embedded script test | 113479333 | embedded script
    Unit Test - Control Page  | 37036932 | built-in control
Devices
    Custom Formula Numeric (Temperature)  | 1622579693
    Custom Formula String (Humidity)  | 15875701
    Custom Formula String (Temperature)  | 300881267
    Custom Linear Scale Adapter (Temperature)  | 1117235347
    Predefined Scale (Length)  | 1531657665
    Predefined Scale (Temperature)  | 178492169
Schedules
    None
Triggers
    None
Trigger Actions
    None

Key

====================================================================================================
Plugin Display Name [Plugin ID]
====================================================================================================
Indigo Object Type
    Indigo object instance name | Indigo object ID number | additional description (if appropriate)

Options

You can adjust where the report will be sent by changing the following three variables.

  • _print_to_event_log If True, the report will be printed to the Indigo Events log. If False, a short log message will be displayed to provide confirmation that the report was generated successfully.
  • _print_to_file If True, the report will be saved to a file. The file will be written to _path_to_print. The filename will include the date and time, ensuring that saved reports are not overwritten. For example, plugin_reference_report_2025-11-15_05-32-21.txt.
  • _path_to_print The target path for file output. The value in the example below will save the report to the logs folder of the current Indigo install.
_print_to_event_log = True
_print_to_file = False
_path_to_print = indigo.server.getInstallFolderPath() + "/logs/"

Categories

Action Groups

This category lists all Action Groups that reference the plugin. It includes Actions that fire plugin actions as well as Actions that reference the plugin's ID in an embedded script.

Control Pages

This category lists all Control Page controls that reference plugin resources directly (like turning a plugin device on or off), controls that use built-in controls to manage a plugin resource directly (like Client Action -> Popup UI Controls), or Server actions that access plugin actions (like Server Action -> [Plugin Action]) including Server Actions that execute embedded scripts. The Control Page output lists the control Z-Order number to help identify which control on the page references the plugin id (where appropriate).

Devices

This category lists all Indigo devices that are "owned" by the plugin.

Schedules

This category lists all Schedules that reference the plugin's resources. It includes Actions that fire plugin actions as well as Actions that reference the plugin's ID in an embedded script. It includes any conditions that reference a plugin ID in the If Python script returns True field. It also includes Actions that fire plugin actions that fire plugin actions as well as Actions that reference the plugin's ID in an embedded script.

Triggers

This category lists all Triggers "owned" by the plugin. It includes any conditions that reference a plugin ID in the If Python script returns True field.

Trigger Actions

This category lists all Indigo Triggers that are "owned" by the plugin.

Descriptions

Built-in Control

The description built-in control refers to a native Indigo control that causes something to happen that references the plugin id. For example, Client Action -> Popup UI Controls or Server Action -> Device Action -> Light/Appliance Controls -> Turn On

Embedded Script

The description embedded script indicates that the plugin id is referenced in an embedded script called by the object type.

Reference Count

In some cases an Indigo object will reference the same plugin object multiple times. For example, an Action Group might have multiple actions that use similar plugin resources. In instances where there is no meaningful way to distinguish them, the report will show the number of references like this: My Indigo Action Group | 25278541 | 3 references.

Plugin Not Installed

The report may find a plugin ID that's related to a plugin that's no longer installed on your server. It will be listed as "Plugin Not Installed" followed by the plugin ID. This may be an indication of references that you can get rid of or that the plugin has been removed, or moved to a place that Indigo can no longer see.

Limitations

Variables

The report is unable to identify Indigo variables that are updated by a plugin-owned object at this time.

Linked Scripts

The report is unable to identify plugin resource references in linked scripts.

⚠️ **GitHub.com Fallback** ⚠️