Auto Lights  

Developer: VTMikel's Plugins     Like this plugin? Show your appreciation!
Category: Lighting
Github: Github Repo
Assistance: Get help!    Check the online documentation
Plugin ID: com.vtmikel.autolights
Latest release: v2025.1.2 released on July 26, 2025
Release downloaded: 0 times
Requires: Indigo v2024.2.0 or higher
(Check the Releases tab below for older releases that may have different requirements)
  Download latest release

Auto Lights is a lighting automation plugin for the Indigo Home Automation system.

Features at a Glance

Auto Lights is an opinionated lighting behavior template for your home. It enables you to set up Lighting Zones ( this is intentionally vague, you can define a Zone to be whatever you want), and configure behavior for each Zone that standardizes the way Indigo controls lights in your home.

I originally built Auto Lights for my own use in a sensor-rich home, where nearly every room is managed by Auto Lights. However, Auto Lights can be used in less complex homes as well. The idea is to save you from configuring many many Indigo Triggers and Variables to achieve a sophisticated level of automatic light control functionality to do things like:

  • Multi-Zone Management: Create and manage multiple “Zones” in Indigo from a single interface.
  • Presence-Based Lighting: Use one or more presence sensors or timers and only turn on lights when someone is around.
  • Luminance-Aware: Luminance device(s) can be defined, with a minimum luminance setting. This enabled the plugin to determine if the room is dark, or not, thus making the logic: If Presence while Dark and Period is set to Auto Lights Control -> Turn on the lights.
  • Zone Locking Mechanism: Temporarily lock a Zone whenever a user manually overrides the lights, so the plugin won’t revert your change until the lock expires or is reset.
  • Automatic Dimming: Auto Lights can optionally set the brightness to a % based on the current luminance level of the room. For example: target brightness = [1 - (current luminance / minimum luminance)] x 100.
  • Global Enable/Disable: A single variable can switch off the entire Auto Lights system. Helpful for scenarios like turning off lights when you go to bed, or are not at home.
  • Clear Explainability: Auto Lights tries to be transparent in why changes are being made (or not made) so that you can focus on tweaking your configuration to your needs.

Example output: event_log.png

Requirements

  1. Indigo Version Auto Lights is tested with the latest Indigo. Older versions may or may not be fully compatible.

  2. API Key / Reflector To use the Auto Lights web config editor, you’ll need to be able to access Indigo via API key. There's two options to do this. See The Web Config Editor for instructions and details.

  3. Lights to Control & Presence Devices Almost any Indigo-compatible lighting device, plus some way of reporting presence to determine if a zone is occupied, such as a motion sensor or virtual presence device. Luminance sensors are optional, and give you the brightness-based dimming logic.

The Web Config Editor

Auto Lights uses a web interface to build and configure your Zones. This path was chosen because the interface needed is too advanced for the Indigo native ConfigUI. See here for screenshots.

The Web Config is run as a separate web server on your Indigo Server. Because of this, it must interact with your Indigo via API. There are two options to enable this:

  1. Enable remote access via Indigo reflector with API (recommended): Be sure your server has been started up with Remote access and refelctor turned on. Get a API key for Auto Lights by going here.

  2. Enable local secrets (advanced): Add a API key for Auto Lights via the Local Secrets method in the Indigo Documentation

There is no authorization on the Web Config interface itself. If this concerns you, there are two options available:

  • Set your web server to only bind to localhost, this will make it so that the web config is only available on your Indigo host directly, and not to addresses on your LAN.
  • Disable the web config server once you've configured your Auto Lights. The plugin does not need it for execution, it's only needed to build your config.

Documentation

See documentation here

Plugin Configuration

Access these settings via Plugins > Auto Lights > Configure… in Indigo:

  1. Reflector / Indigo API URL The base URL used by Auto Lights for Indigo API calls.

  2. API Key Needed to authenticate API calls.

  3. Disable Web Server Toggle this to fully turn off the built-in config web server. See The Web Config Editor for more details.

  4. Web Config Bind IP 127.0.0.1 (only accessible locally) or 0.0.0.0 (accessible by devices on your local network).

  5. Web Config Bind Port Default is 9000. Change it if something else is using that port.

  6. Logging Level - 5 (Extra Debugging) - 10 (Debug) - 20 (Info) - 30 (Warning) - 40 (Error) - 50 (Critical)

Choose a level based on how much detail you need in your Indigo logs.

Plugin Options / Menu Items / Actions

Auto Lights Actions:

  1. Reset All Zone Locks Clears lock timers on all Zones, letting Auto Lights resume control immediately.

  2. Reset Specific Zone Lock Enables you to unlock just one Zone if you had a manual override but now want automation to resume.

Additionally, available under Plugins > Auto Lights:

  1. Print All Locked Zones Logs each locked Zone, showing when the lock will expire.

```

Release details
Released on: July 26, 2025
Requires: Indigo v2024.2.0+
Downloaded: 0 times 
Changes in this release

Improved device name logging for dimmer changes

Release details
Released on: June 21, 2025
Requires: Indigo v2024.2.0+
Downloaded: 0 times 
Changes in this release

Changelog

  • refactor: Make Off-Only mode presence-aware.
  • fix: Update UI label in sync_indigo_device to reflect presence status.
  • fix: Safeguard plugin.py by checking for _agent existence before processing actions, preventing errors.
  • chore: Bump plugin version to 2025.1.1 in Info.plist.
Release details
Released on: June 14, 2025
Requires: Indigo v2024.2.0+
Downloaded: 0 times 
Changes in this release

Changelog

  • feat: bump plugin version to 2025.1.0
  • feat: device state synchronization in UI
    • on/off and lock state now updated via sync_indigo_device
    • zone device states auto-sync after light changes
  • fix bugs in the web editor

Full:

  • feat: update onOffState with UI value in sync_indigo_device method
  • chore: bump plugin version to 2025.1.0
  • fix: call sync_indigo_device once after lock state changes to update UI
  • fix: sync zone device states after light changes in plugin deviceUpdated handler
  • feat: add debug logs after plugin startup and deviceStartComm completion
  • perf: cache per-zone computations to reduce redundant calls during startup
  • fix: import Any from typing to fix undefined name error in zone.py
  • fix: respect lock grace period, clear runtime cache, and check device update methods in tests
  • fix: load device_period_map data only on GET to preserve form POST updates
  • test: add unit and integration tests for device period map form handling
  • test: fix DevicePeriodMapField tests by using FlaskForm instance and prefill caches in client fixture
  • test: add integration test for zone form initial render and device_period_map fields
  • test: add detailed device dicts to cache for zone form initial render test
  • fix: monkey-patch FlaskForm to disable i18n lookups outside app context for tests
  • fix: disable CSRF in FlaskForm.Meta to fix tests outside app context
  • fix: reorder lighting periods in UI to match lighting_period_ids and add test
Release details
Released on: June 6, 2025
Requires: Indigo v2024.2.0+
Downloaded: 0 times 
Changes in this release

Changelog

  • Bump 2025.0.9
  • feat: add 30s grace period before auto-unlock when no presence detected
  • docs: add "Unlock When No Presence" option to Locks section in docs
  • feat: add presence-based unlock grace timer to auto-unlock zones after delay
  • test: add tests for presence-based unlock grace timer scenarios
  • refactor: schedule single no-presence grace timer at lock-time and remove redundant timers
  • feat: add unlock_when_no_presence info with key emoji in lock details log
Release details
Released on: May 22, 2025
Requires: Indigo v2024.2.0+
Downloaded: 0 times 
Changes in this release

Changelog

  • Replaced Mode Checks: Replaced string-based mode checks with a LightingPeriodMode enum and normalized legacy values at load time. Fixes #4
  • Improved Testing: Introduced pytest setup with YAML-driven scenarios; added stubs and workarounds to support headless test runs.
  • Enhanced Brightness Logic: Updated handling of excluded on-lights in force-off mode and improved device change tracking and logging.
  • Documentation: Added explanation and example for Linked Lighting Periods.
Release details
Released on: May 21, 2025
Requires: Indigo v2024.2.0+
Downloaded: 0 times 
Changes in this release

Changelog

  • fix: skip lighting changes when no active period unless global off is set
  • Update plugin version to 2025.0.7
Release details
Released on: May 19, 2025
Requires: Indigo v2024.2.0+
Downloaded: 0 times 
Changes in this release

Changelog

  • feat: add a new off_lights_behavior option, allowing you to control how off lights are handled
  • Removed runConcurrentThread method. This was being used only to poll for updates in case that a event that triggers a Zone behavior changes. Auto Lights is 100% event-driven, so this was always a backup and method to test and detect missed events.
  • fix: read JSON files with utf-8 encoding to fix ascii decode error
  • feat: add global_behavior_variables_map to zone. This allows you to override whether a global behavior variable applies to a Zone.
  • chore: add debug logging to trace global_behavior_variables_map processing
  • Update and bump of dependencies
  • fix: populate device_changes in global-off plan for accurate logging
  • Update plugin version to 2025.0.6.
Release details
Released on: May 13, 2025
Requires: Indigo v2024.2.0+
Downloaded: 0 times 
Changes in this release

Changelog

  • refactor: replace enabled_var_id with Indigo device for global AutoLightsConfig and sync plugin_config fields to it
  • Update plugin version to 2025.0.5
  • feat: log info when creating new Auto Lights Indigo device
  • refactor: simplify actionControlDevice logic and improve logging for zone handling
  • fix: require value for default_lock_duration fields, remove "Use Plugin Default" option
  • fix: guard getDeviceStateList against uninitialized agent to prevent crash on startup
  • refactor: reorder logging config update before test_connections and format condition check
  • fix: correct environment variable name to INDIGO_API_KEY for API key updates
Release details
Released on: May 13, 2025
Requires: Indigo v2024.2.0+
Downloaded: 0 times 
Changes in this release

Release Notes

  • Fix a bug where the plugin will not respect changes to the Zone enabled state
Release details
Released on: May 7, 2025
Requires: Indigo v2024.2.0+
Downloaded: 0 times 
Changes in this release

Improvements to Plugin Config UI. Improvements to debug logging

Release details
Released on: May 3, 2025
Requires: Indigo v2024.2.0+
Downloaded: 2 times 
Changes in this release

Initial release

Requirements

Indigo Version Auto Lights is tested with the latest Indigo. Older versions may or may not be fully compatible.

API Key / Reflector To use the Auto Lights web config editor, you’ll need to be able to access Indigo via API key. There's two options to do this. See The Web Config Editor for instructions and details.

Lights to Control & Presence Devices Almost any Indigo-compatible lighting device, plus some way of reporting presence to determine if a zone is occupied, such as a motion sensor or virtual presence device. Luminance sensors are optional, and give you the brightness-based dimming logic.