AWTRIX NG 1.2.3¶
Release of 2026-11-03. Everything that changed since 1.2.2.
New¶
- "Hey AWTRIX" starts the voice assistant (experimental). Choose an assistant under System → Voice assistant, then switch on Wake word and set how easily it hears you with Sensitivity. The clock listens for the word by itself. See Start it with "Hey AWTRIX".
- Choose who answers: Home Assistant or an app. The knob, the wake word, the Assist button in Home Assistant, MQTT and HTTP all start the one you pick, and Status shows whether it is ready. See Choose the assistant.
- Lumen Assistant: an app on the AWTRIX Hub lets an AI service answer your questions out loud, also one on a computer in your own network. See Ask an AI with Lumen Assistant.
- Voice packs: a voice pack you upload under System → Clock voice replaces the built-in English voice, also with another language. The shop has Lumi (female) and Milo (male) in several languages, and you can order a pack made from your own voice. Making a voice pack describes how to build one yourself. See Another voice or language.
- Help AWTRIX: the web UI asks once whether your clock may be counted, to see how many clocks run AWTRIX NG and for a planned cooperation with Ulanzi. Only after Yes, count my clock does the clock report to the AWTRIX Hub, one time. AWTRIX NG works the same whatever you answer. See Activation.
- Setup hotspot on demand: hold the select button for 2 seconds during the start animation. See I need the setup hotspot back.
- 8-bit sound for songs:
wave=chiptri,wave=chipnoise,wave=chipmetalandlevels=sound like an old game console. Existing songs sound the same. See 8-bit sound.
For script developers¶
effects()andoverlays()list the built-in effect and overlay names, in every method. See The effects this clock has.hint=puts gray hint text in an empty text or number box. It is never a value. See Show a hint instead of a value.- A switched-off script is stopped. Its
setup()no longer runs, and its timers, requests and connections end. Switched on again, it starts from the beginning. See How it behaves. - Setting lengths count characters, not bytes:
maxlen=3takesMÄR. - An error while the script runs names its line. The web UI shows it next to the script and
marks it in the editor. In a module function, it is the line in your app that called it. See
ERR:on the display. ERR:<name>scrolls through once when the name is too long for the display.timeoutfor slow services: a request can wait longer than 5 seconds for a service that thinks before it answers, andhttp.cancel()ends a request you no longer need. See HTTP calls.- Every request sends a User-Agent,
AWTRIX-NGunless the script sets its own. - The microphone listens only for the app on the display. Read
music.bands(),music.level(),music.beat()andmusic.pitch()indraw(). Reading them only inloop()does not make the microphone listen. See Reacting to the music. import voicelets an app record what someone says, send it to a service and play the answer. Withon_assistantit answers the knob and "Hey AWTRIX" in place of Home Assistant. See Voice in scripts.@secretkeeps an API key out of your script: the user enters it in the app's settings, and the clock fills it into requests to the hosts you name. See Keep an API key out of your script.voiceandsecretare built-in names now. A module of yours with one of them needs a new name.- The log names scripts that start a Bluetooth scan, and those that end one after a minute or more.
Improved¶
- Radio stations are part of the backup. Tick Radio stations under System → Backup & restore. A restore puts them in use at once, without a reboot.
- More free memory. About 2 MB more stays free.
- Speech: a hyphenated word the voice knows, such as e-mail, is read as one word.
- A gamepad that wakes up connects in about 2 seconds while the iPhone is connected, instead of about 30.
Fixed¶
- MQTT: a message of 8 to 64 KB no longer breaks the connection over and over. The clock skips it and logs it. A message over 64 KB still makes the clock connect again.
- The AI agent skill installs with
npx skills add Blueforcer/awtrix-ngagain. - Time zones: Winnipeg, Vancouver, Edmonton, Inuvik, Casablanca and El Aaiún follow their current rules. A clock already set to one of these zones corrects itself after the update.
- Log: a cut or broken character in a line no longer makes
/api/v1/logsunreadable for strict JSON tools. A cut character is left out, and other broken bytes show as?. - Desktop installers: get the installer again for a new installation. One you downloaded before this release refuses it. See Get the installer.
- Xbox Wireless Controller (model 1914) pairs and works as a gamepad.
- Long texts in pushed apps with a layout scroll to the end even when the app is sent again meanwhile. A changed text starts from the beginning.
- Wi-Fi: after a router restart the clock leaves its setup hotspot and joins your network again.
- Wi-Fi drops: the clock stays on your network and reconnects by itself, instead of opening its setup hotspot after 15 seconds. The log says whether the clock or the router ended the connection, and why. With a new router, restart the clock: the setup hotspot then opens.
- Battery: a fully charged clock shows 100 %, not about 75 %.
- Microphone controller update: an interrupted update continues instead of staying "pending", and the clock keeps reporting USB power while it runs.
- Restarts: a very long web address, or a server's very long or broken redirect, no longer restarts the clock.
- Script sign-ins survive a read error of the flash at start.
- Songs: a looping song keeps the first beat of its loop.