Visual reference¶
This page lists every visual name AWTRIX NG understands – effects, overlays, palettes and transitions – and shows what each one looks like. It also covers colors, text and fonts.
There are four separate lists of names. They do not mix:
| Name list | Where it goes | Case |
|---|---|---|
| Background effects | effect on a pushed-app / notification payload |
insensitive |
| Weather overlays | overlay on a payload, or overlay on PATCH /api/v1/display |
insensitive |
| Palettes | palette on a payload |
insensitive |
| Transitions | transitionEffect in PATCH /api/v1/settings (whole device) |
insensitive |
Upper and lower case never matter – "matrix", "Matrix" and "MATRIX" are the same effect. This
page uses the spelling that GET /api/v1/capabilities lists and the API
returns.
Ripple and Fade are in two lists – as a background effect and as a transition – and the two
look different. Random is only a transition. What a name means depends on the key you use it
with.
Background effects¶
A background effect fills the display behind text, icons and charts. Set it per app with the
effect key.
curl -X PUT http://<awtrix-ip>/api/v1/apps/pushed/demo \
-H 'Content-Type: application/json' \
-d '{"text":"HELLO","effect":"Pacifica"}'
AWTRIX has 19 background effects:
effect |
What it shows | Uses palette? |
|---|---|---|
Plasma |
Flowing plasma over the whole display, through all colors | yes |
TheaterChase |
Every third column lit, the lights marching sideways over a rainbow | yes |
Fade |
Horizontal color bands from top to bottom, all slowly cycling through the colors | yes |
MovingLine |
A full-width line bouncing up and down, with a short glow behind it | yes |
BrickBreaker |
Breakout that plays itself: the ball bounces off the paddle and clears the rows of bricks, then the wall is rebuilt. The palette colors the brick rows | yes |
PingPong |
Pong that plays itself: two paddles return a red ball, and now and then one misses | no |
Radar |
A beam sweeping clockwise round the center with a fading afterglow; green by default | yes |
Checkerboard |
A checkerboard in two colors that drift through the palette | yes |
Fireworks |
Rockets that rise and burst into sparks, several at a time | yes |
PlasmaCloud |
Soft drifting clouds in a few colors at a time, slowly shifting | yes |
Ripple |
Rings spreading from random points and fading out | yes |
Snake |
Snake that plays itself: it hunts the red apple and grows, and starts again when it gets stuck | yes |
Pacifica |
Ocean waves; blue-teal by default | yes |
Matrix |
Green trails falling down each column, with bright heads, at random times and lengths | no |
SwirlIn |
A rainbow spiral turning inwards over the whole display | yes |
SwirlOut |
A rainbow spiral turning outwards over the whole display | yes |
LookingEyes |
Two eyes that look around and blink every few seconds | no |
TwinklingStars |
Stars that flare up, fade and come back somewhere else | yes |
ColorWaves |
The colors spread once across the display, sliding sideways | yes |
Every effect fills the whole display. In a pushed app or a notification it is drawn at double
size on the 26×8 grid while enlargeApps is on, the default. In a
layout, in a script and in an app that keeps its full size, it uses all 52×16 pixels:
LookingEyes and the squares of Checkerboard are drawn twice as large, BrickBreaker,
PingPong and Snake play on the bigger field, and the other effects use the extra pixels for
more detail. Weather overlays always use single pixels.
An empty effect, or no effect key, means no background.
The effects marked no always use their own colors. If you send a palette with them, the
request succeeds but nothing changes on the display.
An unknown name ("Plasm") is rejected with 422 {"code":"validationFailed","field":"effect"}
and nothing is stored – with a list of apps, none of them is stored. Upper and lower case are
not a typo: "pacifica" works. Check the spelling with
GET /api/v1/capabilities.
Effect settings¶
An effect takes two things from its payload: its own speed, and the app's palette, which it shares with the text and the charts.
| Key | Type | Range | Default | Units | Meaning |
|---|---|---|---|---|---|
effectSpeed |
float | 0.1 … 10 |
1.0 |
multiplier | Speed factor for the effect (values outside the range are set to the nearest limit) |
palette |
string or array | built-in name, file name, or ≤ 16 stops | unset – the effect keeps its own colors | - | Colors for palette effects and weather overlays |
paletteBlend |
bool | - | true |
- | Blend smoothly between palette colors instead of showing 16 hard bands |
curl -X PUT http://<awtrix-ip>/api/v1/apps/pushed/demo \
-H 'Content-Type: application/json' \
-d '{"text":"HI","effect":"Plasma","effectSpeed":0.4,"palette":"Lava"}'
How effectSpeed works¶
Each effect and overlay has its own normal speed. effectSpeed multiplies it: 2.0 runs twice as
fast, 0.5 half as fast. At 1 all effects feel about equally fast, but they still differ in
character – storm falls faster than drizzle.
A value outside 0.1 … 10 is not rejected; AWTRIX uses the nearest limit.
effectSpeed also sets the speed of an overlay named in the same payload, so storm at 2 falls
twice as fast. The overlay for the whole device has its own speed, set with overlaySettings on
PATCH /api/v1/display.
How palette works¶
You can give a palette in three ways:
AWTRIX first looks for a file /PALETTES/<name>.txt, then for a
built-in palette with that name. Upper and lower case do not matter. A file with
that name wins. If neither exists, the payload is rejected with
422 {"code":"validationFailed","field":"palette"}.
1 to 16 colors ("stops"); anything after the 16th is ignored. Each can use any color form. The stops are spread evenly and the colors in between are blended, so two stops already give a full gradient. An empty list is rejected.
{"palette": [{"color": "#FF0000", "pos": 0},
{"color": "#FFFF00", "pos": 70},
{"color": "#FFFFFF", "pos": 100}]}
pos is 0-100: where the stop sits along the gradient – the same as RRGGBB@70 in a
palette file.
Both keys are required. Either every stop has a position or none has; mixing is rejected. Stops out of order are sorted.
One palette serves the whole app. To paint text or a chart from it, set that color key to the
string "palette":
Effects that use palettes take it automatically.
The palette is per app¶
The palette and effectSpeed you send belong only to that app. If app A and app B both use
Plasma and app B sets palette: "Lava", app A keeps its own colors. When you delete an app,
its palette goes with it.
Weather overlays¶
An overlay is drawn on top of the app. Text and icons stay visible underneath.
AWTRIX has 6 weather overlays:
overlay |
What it shows | Normal speed |
|---|---|---|
rain |
Blue drops falling straight down with short darker tails – about a third of the columns at a time | ~15 steps/s |
snow |
Bright and dim gray flakes swaying as they fall | ~7 steps/s |
drizzle |
Fine light-blue drops, few and hardly any tail | ~10 steps/s |
storm |
Dense slanted streaks with long tails, blown sideways | ~25 steps/s |
thunder |
storm plus lightning every few seconds: a jagged bolt with a branch while the sky lights up and dies away, sometimes with a second flare. The app stays visible through the flash |
~25 steps/s |
frost |
An icy border along the top and bottom edge that shimmers softly and glints now and then; the middle stays clear. The border is thicker on taller displays | ~10 steps/s |
At each step every drop moves down one pixel, so rain crosses the
16-pixel display in about one second. Heavier weather falls faster. The speed factor (effectSpeed on a payload, speed in
overlaySettings) changes the speed; for frost it is the speed of the shimmer. The drops fall at
random places, so the pattern never repeats.
A palette changes the colors of all six overlays, frost too. Without a palette they
keep their normal colors.
# red rain
curl -X PUT http://<awtrix-ip>/api/v1/apps/pushed/weather \
-H 'Content-Type: application/json' \
-d '{"text":"7C","overlay":"rain","palette":"Lava"}'
Setting an overlay per app¶
curl -X PUT http://<awtrix-ip>/api/v1/apps/pushed/weather \
-H 'Content-Type: application/json' \
-d '{"text":"7C","overlay":"snow"}'
An unknown overlay name is rejected with 422 {"code":"validationFailed","field":"overlay"}
and nothing is stored.
Setting the global overlay¶
PATCH /api/v1/display sets an overlay for the whole device. null removes it.
curl -X PATCH http://<awtrix-ip>/api/v1/display \
-H 'Content-Type: application/json' \
-d '{"overlay":"rain"}'
# remove it
curl -X PATCH http://<awtrix-ip>/api/v1/display \
-H 'Content-Type: application/json' \
-d '{"overlay":null}'
| Key | Type | Range | Default | Units | Meaning |
|---|---|---|---|---|---|
overlay |
string or null | one of the 6 names, or null |
none | - | Weather overlay for the whole device |
overlaySettings |
object | {speed, palette, blend} |
unset | - | Speed and colors of that overlay |
Both keys are checked. An overlay that is neither a string nor null gives
422 {"overlay","must be a string or null"}; an unknown name gives
422 {"overlay","unknown overlay"}; an overlaySettings that is not an object gives
422 {"overlaySettings","must be an object"}. The PATCH is applied completely or not at all.
# slow the global rain down to a third of its speed
curl -X PATCH http://<awtrix-ip>/api/v1/display \
-H 'Content-Type: application/json' \
-d '{"overlay":"rain","overlaySettings":{"speed":0.3}}'
overlaySettings belong to the overlay you set them for. {"overlay":null} removes them too, so
the next overlay you pick starts fresh.
GET /api/v1/display returns both: overlay (null when none) and overlaySettings with the
current speed, palette (null when not set) and blend.
In the web UI, the speed is the Overlay speed slider under Display → Weather overlay, in percent: 100 % is the overlay's normal speed.
Which overlay wins¶
- Pushed apps and notifications: an
overlayin the app's payload or in itslayoutwins over the global one. The global overlay shows only when neither has anoverlay. - Built-in apps (time, status): only the global overlay shows, because these apps have no payload.
- Speed and colors come with the overlay. An overlay from a payload uses that payload's
effectSpeedandpalette. The global overlay usesoverlaySettings, whatever app is shown.
Palettes¶
A palette is a set of 16 colors. Effects, overlays and text that use a palette take their colors from it.
8 built-in palettes can be used by name in palette:
| Palette | Colors |
|---|---|
Cloud |
Blues and dark blues, up to sky blue and one white |
Lava |
Black → maroon → dark red → red → orange, with one white peak |
Ocean |
Midnight blue, navy, teal, sea green, aqua, light sky blue |
Forest |
Dark green → forest/olive → lime and lawn green |
Stripe |
Eight strong colors alternating with black – hard stripes |
Party |
Purples, magentas, reds, oranges and yellows – no green |
Heat |
Black → red → yellow → white |
Rainbow |
All colors of the rainbow in 16 steps |
What blend changes¶
While an effect runs, it moves through the 16 colors in order and starts over after the last one.
paletteBlend: true(default) – the color changes smoothly from one to the next, like a gradient.paletteBlend: false– only the 16 colors themselves are used, so you see 16 hard bands.
Custom palettes¶
- Create a text file with one color per line, one to sixteen lines. Lines after the sixteenth color are ignored.
- Upload it to AWTRIX as
/PALETTES/<name>.txt. - Use
<name>(without.txt) aspalette.
A leading # on a line is allowed and empty lines are skipped. Names with / or .. are
rejected. Upper and lower case in the name do not matter.
Each line has one of two forms:
| Line | Means |
|---|---|
RRGGBB |
a color stop without a position – the stops are spread evenly |
RRGGBB@<0-100> |
a color stop at that percentage of the gradient |
The lines are color stops of a gradient across all 16 colors: a three-line file gives a three-color gradient. With positions, you decide how much room each part gets – the example above uses 70 % of the gradient to go from red to yellow. Before the first and after the last stop the color stays the same. Two stops at the same position make a hard edge.
Either every line has a position or none has; mixing is rejected. Stops out of order are sorted.
A file with any other error – a line that is not six hex digits, a position above 100 – cannot be
used. Any payload that names it is rejected with 422 on the palette field.
A file may have the same name as a built-in palette. It then replaces the built-in until you
delete the file. This is how you change a built-in palette: the
palette editor saves such a file for you. A name
that matches neither a file nor a built-in is rejected with 422 validationFailed on the palette
field.
Transitions¶
A transition is the animation between one app and the next. It is one setting for the whole device; you cannot give one app its own transition.
transitionEffect and transitionDirection are names (strings), sent to
PATCH /api/v1/settings:
curl -X PATCH http://<awtrix-ip>/api/v1/settings \
-H 'Content-Type: application/json' \
-d '{"transitionEffect":"Slide","transitionDirection":"reverse","transitionDurationMs":600}'
| Setting | Type | Range | Default | Units | Meaning |
|---|---|---|---|---|---|
transitionEffect |
string | one of the 22 names | "Rain" |
- | The animation between apps |
transitionDirection |
string | normal · reverse |
"normal" |
- | Normal or mirrored movement |
transitionDurationMs |
int | 0 … 2147483647 | 1000 |
ms | How long one transition takes |
autoTransition |
bool | - | true |
- | Whether AWTRIX switches apps automatically |
reverse flips sideways movement left/right and vertical movement up/down. It does not change the
app order: Next and automatic switching still go to the same app, and Previous still moves
the other way. Transitions marked no below look the same either way.
22 transitions:
transitionEffect |
What happens | Follows the direction? |
|---|---|---|
Random |
A different one of the other 21 each time – never itself | - |
Slide |
Both apps slide sideways together | yes |
Dim |
The old app fades to black, then the new app fades in | no |
Zoom |
The new app grows from the center over the old one | no |
Rotate |
The old app rolls out upwards or downwards, the new one rolls in | yes |
Pixelate |
The new app appears pixel by pixel – in the same pattern every time | no |
Curtain |
The new app appears from both edges towards the center | no |
Ripple |
A growing circle from the center shows the new app | no |
Blink |
The old app blinks out in hard steps, the new app blinks in | no |
Reload |
A column sweep, always left → right | no |
Fade |
A smooth crossfade | no |
Cover |
The new app slides over the old one, which stays in place | yes |
Uncover |
The old app slides away and shows the new one underneath | yes |
Split |
The new app opens from the center outwards – Curtain the other way round |
no |
Blinds |
Vertical bars that widen until they meet. The bars get wider on wider displays | no |
Blocks |
Like Pixelate, but in 4×2 blocks. Same pattern every time |
no |
Flash |
The old app turns white, then the new app appears out of the white | no |
Diamond |
A growing diamond from the center shows the new app | no |
Wave |
A column sweep with a curved, wave-like edge | yes |
Rain |
Each column rolls down on its own, one after the other | yes |
Melt |
The old app drips away column by column and leaves the new app | yes |
Interlace |
Every second row slides in from the other side | yes |
An unknown name is rejected with 422 validationFailed. The message starts with must be one of:
and lists the names above.
Flash makes the whole display nearly white for a moment.
Pacing¶
Every transition takes exactly transitionDurationMs, and they are tuned to feel equally long:
- Slides and wipes start slowly, speed up and slow down at the end.
- Fades and dissolves (
Dim,Zoom,Pixelate,Blink,Fade,Blocks,Flash) run at an even speed. RainandMeltstart each column a little later, but all columns fall at the same speed and the last one lands exactly at the end.
Colors¶
Every color key in the whole API – payload keys, settings, palette colors, draw commands – accepts the same forms.
Accepted input forms¶
| Form | Example | Notes |
|---|---|---|
| 6-digit hex string | "#FF00AA" or "FF00AA" |
# optional; digits 0-9 a-f A-F |
| 3-digit hex short form | "#F0A" or "F0A" |
Each digit is doubled → #FF00AA |
| RGB array | [255, 0, 170] |
Each value is limited to 0…255; extra values are ignored |
| HSV array | ["HSV", 320, 100, 100] |
"HSV" must be in capitals |
| Number | 16711850 |
The color as one number (0xRRGGBB) |
An 8-digit #RRGGBBAA value is rejected – there is no transparency.
HSV values: h is the hue in degrees; values outside 0…359 wrap around (-30 becomes 330).
s and v are percentages from 0 to 100, not 0…255. Larger values count as 100, so
["HSV",0,100,100] and ["HSV",0,100,255] are both pure red.
Output form¶
Colors always come back as "#RRGGBB" in capitals, whatever form you sent. Optional colors
that are not set come back as JSON null.
Nullable colors¶
| Keys | null means |
|---|---|
timeColor, dateColor, humidityColor, temperatureColor, batteryColor |
use textColor |
colorCorrection, colorTint |
off – no correction |
Send null to get this behavior back. Only null means this – #000000 and #FFFFFF are normal
colors and come back as themselves.
A malformed color is rejected everywhere¶
Settings, indicators, the mood light and app/notification payloads all reject a color they cannot
read. The answer is 422 validationFailed with the key in field, and nothing is stored. The
message differs: settings, indicators and the mood light say must be a color; a color in an app
or notification payload says invalid color. In your own code, check the code and field, not
the message text.
Display colors¶
Four settings change how the whole display looks. They do not change what the apps show – only how the colors come out of the LEDs. Types, ranges and defaults are in Settings – Color.
| Setting | What you see | When to change it |
|---|---|---|
saturation |
100 shows colors as they are. Lower values make everything paler, 0 shows only grays. |
The display looks too colourful, or you want a calm, gray look. |
gamma |
Higher values make dark and medium colors darker, so dim shades look more natural. Lower values make them brighter. Bright colors stay about the same. | Dark colors look washed out (raise it) or disappear (lower it). |
colorCorrection |
Every color is multiplied by this color. #FFFFFF or null changes nothing; #FFB0F0 weakens green. |
Your LEDs have a color cast – for example white looks greenish. |
colorTint |
Works like colorCorrection and adds on top of it. |
You want the whole picture warmer (#FFD6AA) or cooler. |
curl -X PATCH http://<awtrix-ip>/api/v1/settings \
-H 'Content-Type: application/json' \
-d '{"saturation":40,"gamma":2.2,"colorCorrection":"#FFB0F0","colorTint":null}'
Good to know:
- The settings affect everything on the display: apps, icons, notifications and the mood light.
- Changes show at once.
- A screenshot from
GET /api/v1/display/screenor the web UI preview does not include these settings. That is why a screenshot can look different from the real display.
The default text settings – textColor, uppercase and scroll – are in
Settings – Global text. A payload can override each of them.
Text¶
Encoding¶
Send text as UTF-8. This applies to plain text, to each {"text":…} part, to text in draw
commands and to text from scripts.
A character the font does not have is shown as one ? – one per character. "Hi 🎉" shows as
"Hi ?".
What is mapped¶
| Group | Result |
|---|---|
ASCII (U+0020–U+007E) |
Shown |
Latin-1 supplement (ä ö ü ß é à …) |
Shown |
Latin Extended-A (ą ć ę ł ń ś ż ź č ď ě ř š ž ő ű and their capitals) |
Shown |
Cyrillic (U+0401–U+0491) |
Shown, upper and lower case different |
Greek (U+0386–U+03CE) |
Shown, upper and lower case different |
Vietnamese (Ơ ơ Ư ư, U+1EA0–U+1EF9) and ẞ |
Shown |
IPA phonetic letters (U+0250–U+02AF) |
Shown |
Chinese and Korean date and weekday characters: 〇 一 二 三 四 五 六 七 八 九 十 年 月 日 星 期 天 上 下 午 零, 년 월 일 화 수 목 금 토 오 전 후 요 |
Shown |
Punctuation (– — ‘ ’ “ ” …), currency (€ ₡ ₦ ₩ ₪ ₫ ₭ ₮ ₱ ₲ ₴ ₵ ₸ ₹ ₺ ₼ ₽ ₾ ₿ ¥), ℃ ℉ □ and � |
Shown |
⓪ ①–⑩, and the en, em and thin spaces (U+2002, U+2003, U+2009) |
Empty space of a fixed width: ⓪ 0 px, ① 1 px … ⑩ 10 px |
| Everything else, including emoji | Shown as one ? |
Every font has the same characters – small, large and all ten Matrix-Fonts.
An accented letter sits on the same line as the letter without accent, with the accent above it.
In small, the Latin-1 accents fit into the five rows of a normal letter (the letter gets one row
shorter). Latin Extended-A, Ё ё, accented Greek capitals and Vietnamese capitals with a horn or
two accents use one extra row at the top of the display (row 0). In large all accents fit into the
same seven rows.
Font¶
Two standard fonts and the Matrix-Fonts below. A pushed app or a notification picks one with
the font key.
small uses the AWTRIX font for ASCII and Matrix-Fonts
for everything else – accents, Cyrillic, punctuation. large uses Matrix-Fonts for everything. The
fonts are licensed under the SIL Open Font License 1.1; Trip5 and the original font authors are
credited in the license notices that come with the firmware source and the update package. AWTRIX NG
itself has its own license.
small (default) |
large |
|
|---|---|---|
| Capital height | 5 px | 7 px |
| Rows used | 1–5, or 0–5 for č ő ż Ё Ά Ơ |
0–6, plus row 7 for descenders |
| Character width | 4 px | 4 px |
| Space width | 2 px | 2 px |
Both fonts have the same characters. The choice changes only the height – and, because the text width changes, whether a text scrolls.
large leaves only the bottom row free. If your app draws its own graphics along the top, use
small.
Pushed apps, notifications, layout text regions and the script function font(name) can all use Matrix-Fonts.
GET /api/v1/capabilities lists each available font ID with ascent, descent and lineHeight
in pixels. In a pushed app or a notification, ascent and descent decide where the text sits: the
font's rows are centered in the height of the display.
| IDs | Ascent | Descent | Line height |
|---|---|---|---|
matrix-light6 |
6 | 0 | 6 |
matrix-chunky8x6 |
8 | 0 | 8 |
matrix-chunky6, matrix-chunky6x, matrix-light6x |
6 | 0 | 6 |
matrix-chunky8, matrix-chunky8x, matrix-light8, matrix-light8x, matrix-light8x6 |
8 | 0 | 8 |
See the font selection for what each font looks like.
The Matrix-Fonts keep all their original characters and spacing, including characters wider than
eight pixels. Missing characters were added in each font's own style, so every font has all the
characters above and changing the font never turns a character into ?.
In layout text regions, vertical alignment takes accents and descenders into account.
Font sources
and credits are in the
font catalog record.
Palette text¶
Set textColor to the string "palette" to paint the text with the app's palette
instead of one color. The colors change column by column, so the gradient is even whatever
the letter widths are.
curl -X POST http://<awtrix-ip>/api/v1/notifications \
-H 'Content-Type: application/json' \
-d '{"text":"PARTY TIME","palette":"Rainbow","textColor":"palette","paletteSpan":24,"paletteSpeed":1}'
paletteSpan is the width in pixels of one full run through the palette. 0 (the default)
stretches one run across the whole text. paletteSpeed moves the colors by that many runs per
second, independent of effectSpeed.
All keys a payload can have – text, colors, charts, effects, palettes and draw commands – are in App & notification payload. This page shows what they look like on the display.
Scrolling¶
One scroll object sets how text moves. It means the same in a payload and in the settings. The
fields, ranges and defaults are in Payload – Scrolling. The four modes look
like this:
mode |
Movement | Counts as one cycle | Pause |
|---|---|---|---|
static |
None; text that does not fit is cut off | never | - |
wrap |
Off the far edge, then starts again | each time it leaves | at the start, every cycle |
loop |
Continuous, without an empty gap | each repetition | only at the very start |
bounce |
Back and forth between the icon and the far edge | each round trip | at both ends |
In a payload every field is optional and uses the device default when left out, so
{"scroll":{"mode":"bounce"}} bounces at your usual speed. A plain string sets only the mode:
"scroll": "bounce" means "scroll": {"mode": "bounce"}. An unknown field, an unknown value or a
negative number gives 422 validationFailed with the key in field – in PATCH /api/v1/settings
and in a payload alike. In a payload, the whole app or notification is rejected.
Every pause lasts holdMs; entry: offscreen skips the first one. Exact positions:
Payload → Scrolling.
Draw commands¶
The draw list knows 9 commands. Each command is a list with the command name first:
| Command | Draws |
|---|---|
["pixel", x, y, color] |
Pixel |
["pixels", color, x1, y1, …] |
Many pixels in one color |
["line", x1, y1, x2, y2, color] |
Line |
["rect", x, y, w, h, color] |
Rectangle (outline) |
["rectFill", x, y, w, h, color] |
Filled rectangle |
["circle", cx, cy, r, color] |
Circle (outline) |
["circleFill", cx, cy, r, color] |
Filled circle |
["text", x, y, "string", color] |
Text |
["bitmap", x, y, w, h, data] |
Image – row by row, as base64 RGB888 or a list of colors |
curl -X PUT http://<awtrix-ip>/api/v1/apps/pushed/box \
-H 'Content-Type: application/json' \
-d '{"draw":[["rect",0,0,32,8,"#00FF00"],["pixel",16,4,[255,0,0]]]}'
Every draw color can use any color form. Without a color, the command uses the app's
text color. An unreadable color or an unknown command name is rejected with
422 validationFailed and "field":"draw[<index>]".
Discovering the names¶
GET /api/v1/capabilities returns the current name lists, so your tools do not need to copy them:
{
"effects": ["BrickBreaker", "Checkerboard", "..."],
"paletteEffects": ["Checkerboard", "ColorWaves", "..."],
"transitions": ["Random", "Slide", "Dim", "..."],
"overlays": ["drizzle", "frost", "rain", "..."],
"palettes": ["Cloud", "Lava", "Ocean", "Forest", "Stripe", "Party", "Heat", "Rainbow"]
}
| Array | Contents | Order |
|---|---|---|
effects |
All background effects | Alphabetical |
paletteEffects |
The effects that use the app's palette |
Alphabetical |
overlays |
All weather overlays | Alphabetical |
transitions |
All transitions | Random first, then as listed above |
palettes |
The eight built-in palettes | As listed above |
Use paletteEffects for a palette picker – the effects with fixed colors are in effects but
not here. The names are spelled the way the API returns them; upper and lower case do not matter
when you send them.
palettes lists only the built-in palettes. Palettes you upload as /PALETTES/*.txt work
everywhere a built-in name works, but they are not in this list – list them with
GET /api/v1/files?dir=/PALETTES.
The same JSON is published, retained, to MQTT <prefix>/state/capabilities every time AWTRIX
connects, and fills the Home Assistant select lists.
Related¶
- App & notification payload – every key a payload can carry
- Settings – transitions, text defaults and display colors
- Effects & overlays
- Palette editor