| Developer: | Autolog's Plugins |
| Category: | Miscellaneous |
| Github: | Github Repo |
| License: | MIT License |
| Assistance: | Get help! Check the online documentation |
| Plugin ID: | com.autologplugin.awtrix3 |
| Latest release: | v2026.0.2 released on March 4, 2026 |
| Release downloaded: | 13 times |
| Requires: | Indigo v2025.1.0 or higher |
| Download latest release |
An Indigo plugin for controlling AWTRIX 3 LED matrix clocks (such as the Ulanzi TC001) via MQTT.
The plugin automatically installs its Python dependencies (paho-mqtt, cryptography) when first loaded.
AWTRIX.indigoPlugin to install in IndigoThe coordinator manages the MQTT broker connection. You need one coordinator per MQTT broker.
1883indigo_awtrix)Each clock device represents one physical AWTRIX device.
awtrix_XXXXXX). You can find this in the AWTRIX web interface under MQTT settings.Once created, the clock device will show as connecting ... until it receives its first stats update from the AWTRIX device (typically within a few seconds). If the device doesn't come online, check that the MQTT prefix matches exactly.
The clock device appears as a dimmer in Indigo, giving you native on/off and brightness control:
These controls work from the Indigo client, UI+ app (Mac and iOS), and Control Pages.
The clock device exposes the following states for use in triggers, conditions, and Control Pages:
| State | Description |
|---|---|
status |
Connection status |
onOffState |
Power state |
brightnessLevel |
Current brightness (0-100) |
battery |
Battery level % |
temperature |
Onboard sensor temperature |
humidity |
Onboard sensor humidity |
wifiSignal |
WiFi signal strength (RSSI) |
currentApp |
Currently displayed app name |
firmwareVersion |
AWTRIX firmware version |
uid |
Device unique identifier |
freeRam |
Free RAM in bytes |
uptime |
Device uptime in seconds |
messageCount |
MQTT message count |
lastStatsTime |
Timestamp of last stats update |
lastButtonPress |
Last physical button pressed (buttonLeft, buttonMiddle, buttonRight) |
indicator1Active |
Indicator 1 on/off |
indicator2Active |
Indicator 2 on/off |
indicator3Active |
Indicator 3 on/off |
The plugin monitors stats updates from each clock. If no stats are received for 60 seconds, the device is marked as offline. It automatically recovers when stats resume.
Physical button presses on the Ulanzi TC001 (left, middle, right) update the lastButtonPress state. You can create Indigo triggers on this state to respond to button events.
All actions are available under Device Actions when configuring Action Groups, Triggers, or Schedules for an AWTRIX Clock device. Each action can also be called from scripts using executeAction() with the action ID and props shown below.
Display a temporary notification on the clock.
Action ID: sendNotification
| Prop | Type | Default | Description |
|---|---|---|---|
text |
string | "" |
Message to display |
icon |
string | "" |
Icon ID from the AWTRIX icon database or filename |
color |
string | "" |
Text colour in hex (e.g. #FF0000) |
duration |
string | "5" |
Display time in seconds |
sound |
string | "" |
RTTTL sound filename from the device's MELODIES folder |
hold |
bool | False |
Hold notification on screen until explicitly dismissed |
rainbow |
bool | False |
Cycle text through rainbow colours |
Dismiss a held notification. No props required.
Action ID: dismissNotification
Switch to the next or previous app in the app loop.
Action ID: navigateApp
| Prop | Type | Default | Description |
|---|---|---|---|
direction |
string | "next" |
"next" or "previous" |
Create or update a custom app that appears in the app loop.
Action ID: updateCustomApp
| Prop | Type | Default | Description |
|---|---|---|---|
appName |
string | required | Unique app name (no spaces) |
text |
string | "" |
Text to display |
icon |
string | "" |
Icon ID or filename |
color |
string | "" |
Text colour (hex) |
duration |
string | "" |
Display duration in seconds |
lifetime |
string | "0" |
Auto-remove after N seconds without update (0 = never) |
rainbow |
bool | False |
Rainbow text effect |
noScroll |
bool | False |
Disable text scrolling |
progress |
string | "-1" |
Progress bar value 0-100 (-1 = off) |
progressC |
string | "" |
Progress bar colour (hex) |
Remove a custom app from the app loop by name.
Action ID: removeCustomApp
| Prop | Type | Default | Description |
|---|---|---|---|
appName |
string | required | App name to remove |
Set one of three coloured indicator dots on the right side of the display.
Action ID: setIndicator
| Prop | Type | Default | Description |
|---|---|---|---|
indicatorNumber |
string | "1" |
"1" (upper right), "2" (right side), "3" (lower right) |
color |
string | "#FF0000" |
Indicator colour (hex) |
blink |
string | "0" |
Blink interval in ms (0 = off) |
fade |
string | "0" |
Fade interval in ms (0 = off) |
Turn off an indicator dot.
Action ID: clearIndicator
| Prop | Type | Default | Description |
|---|---|---|---|
indicatorNumber |
string | "1" |
"1", "2", or "3" |
Jump directly to a specific app by name.
Action ID: switchApp
| Prop | Type | Default | Description |
|---|---|---|---|
appName |
string | required | Built-in: Time, Date, Temperature, Humidity, Battery. Or your custom app name. |
Play a sound on the device's buzzer.
Action ID: playSound
| Prop | Type | Default | Description |
|---|---|---|---|
soundType |
string | "file" |
"file" (RTTTL filename from MELODIES folder) or "rtttl" (inline RTTTL string) |
sound |
string | required | Filename (without extension) or full RTTTL string |
Turn the entire LED matrix into a coloured background light.
Action ID: setMoodLight
| Prop | Type | Default | Description |
|---|---|---|---|
moodMode |
string | "color" |
"color", "kelvin", or "off" |
brightness |
string | "170" |
Brightness 0-255 (colour and kelvin modes) |
moodColor |
string | "#FFFFFF" |
Colour hex (colour mode only) |
kelvin |
string | "2300" |
Colour temperature (kelvin mode only) |
Change device settings without using the AWTRIX web interface. Only include the settings you want to change. Leave props as empty string or "unchanged" to skip them.
Action ID: updateSettings
| Prop | Type | Default | Description |
|---|---|---|---|
ATIME |
string | "" |
App display duration (seconds) |
ATRANS |
string | "unchanged" |
Auto app switching: "true", "false", or "unchanged" |
TEFF |
string | "unchanged" |
Transition effect 0-10, or "unchanged" |
TSPEED |
string | "" |
Transition speed (ms) |
SSPEED |
string | "" |
Scroll speed (%) |
TCOL |
string | "" |
Global text colour (hex) |
UPPERCASE |
string | "unchanged" |
Force uppercase: "true", "false", or "unchanged" |
ABRI |
string | "unchanged" |
Auto brightness: "true", "false", or "unchanged" |
CEL |
string | "unchanged" |
Celsius: "true", Fahrenheit: "false", or "unchanged" |
VOL |
string | "" |
Volume 0-30 |
Put the device to sleep for a specified duration. The device wakes automatically when the timer expires, or when the middle button is pressed. Use Turn Off for indefinite power off.
Action ID: sleepDevice
| Prop | Type | Default | Description |
|---|---|---|---|
sleepSeconds |
string | "3600" |
Sleep duration in seconds |
Reboot the AWTRIX device. No props required.
Action ID: rebootDevice
Send any MQTT message to the device for advanced use cases not covered by the built-in actions.
Action ID: sendRawJson
| Prop | Type | Default | Description |
|---|---|---|---|
topicSuffix |
string | required | Topic suffix appended to the device's MQTT prefix (e.g. notify, settings, custom/myapp) |
payload |
string | "" |
Valid JSON string, or leave empty for topics that require no payload |
All text fields in actions support Indigo variable substitution markup:
| Markup | Description | Example |
|---|---|---|
%%v:VARID%% |
Indigo variable value | %%v:12345%% |
%%d:DEVID:STATEID%% |
Device state value | %%d:67890:temperature%% |
%%t:"FORMAT"%% |
Formatted timestamp | %%t:"%H:%M"%% |
For example, a notification text of Indoor: %%d:67890:temperature%%F would resolve at runtime to something like Indoor: 72.5F.
All plugin actions are scriptable from Indigo's built-in Python scripting:
awtrix = indigo.server.getPlugin("com.autologplugin.indigoplugin.awtrix3")
if awtrix.isEnabled():
awtrix.executeAction("sendNotification", deviceId=12345, props={
"text": "Hello from a script!",
"icon": "2056",
"color": "#FF0000",
"duration": "10"
})
Available action IDs: sendNotification, dismissNotification, navigateApp, updateCustomApp, removeCustomApp, setIndicator, clearIndicator, switchApp, playSound, sendRawJson, setMoodLight, updateSettings, sleepDevice, rebootDevice
Refer to the action descriptions above for the complete list of available props for each action.
This project is licensed under the MIT License. Copyright © 2026 Autolog.
| Released on: | March 4, 2026 |
| Requires: | Indigo v2025.1.0+ |
| Downloaded: | 13 times |
| Download this release | |
See README.MD