{"product":"anthias","releases":[{"date":"2026-08-14","entries":[{"areas":[],"breaking":false,"content_html":"\u003cp\u003eA screen in an office or a shop stays lit all night and all weekend for nobody. People have asked Anthias for a way to turn it off out of hours since 2012, and some ran their own cron job to do it. Anthias 2026.08.1 adds a display schedule to Settings that switches the screen off at closing time and back on in the morning.\u003c/p\u003e\n\u003cp\u003eThe schedule is off by default, so a player that has always stayed lit keeps doing so after the upgrade. Turn on \u0026quot;Enable schedule\u0026quot; under Settings \u0026gt; Display schedule, then set:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u0026quot;Turn on at\u0026quot;, 08:00 by default.\u003c/li\u003e\n\u003cli\u003e\u0026quot;Turn off at\u0026quot;, 18:00 by default.\u003c/li\u003e\n\u003cli\u003eThe days it runs. If you uncheck every day, it runs every day.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eTimes are in the player\u0026#39;s timezone. An overnight schedule belongs to the day it starts: with 18:00 to 06:00 and only Friday checked, the screen comes on Friday evening and stays on until 06:00 on Saturday.\u003c/p\u003e\n\u003ch2 id=\"what-the-screen-does\"\u003eWhat the screen does\u003c/h2\u003e\n\u003cp\u003eAt each change, Anthias blanks or unblanks the screen itself, and pauses or resumes playback with it. On the Raspberry Pi 5, x86 and arm64 images the display output is switched off, so the display gets no signal. On the Raspberry Pi 2, 3 and 4 images the viewer shows a black screen instead.\u003c/p\u003e\n\u003cp\u003eAnthias also sends the HDMI-CEC standby or power-on command to every HDMI port with a CEC display attached. Doing both means a plain monitor goes dark, a TV that obeys CEC goes into standby, and a player with one of each on its 2 ports handles both. You don\u0026#39;t need a CEC adapter or a CEC display for the schedule: it isn\u0026#39;t hidden on boards without one.\u003c/p\u003e\n\u003cp\u003eThe schedule is checked every minute, so a change lands within about a minute of the time you set. Anthias also repeats the current state about every 10 minutes. That\u0026#39;s what puts a black screen back after the viewer restarts in the middle of the night, and it also means that if you switch the screen on by hand during off hours, it goes off again within about 10 minutes.\u003c/p\u003e\n\u003cp\u003eTurning the schedule off while the screen is off brings the screen back on within a minute.\u003c/p\u003e\n\u003ch2 id=\"what-to-check-on-your-setup\"\u003eWhat to check on your setup\u003c/h2\u003e\n\u003cp\u003eWhether a TV goes into standby is up to the TV. Anthias 2026.08.1 hasn\u0026#39;t been tested end to end against a CEC-capable display, so if you rely on a TV powering down, watch it the first evening and report what you see. \u003ca href=\"/releases/anthias/2026.08.1/hdmi-cec-rewrite/\"\u003eHDMI-CEC display controls no longer fail on a Raspberry Pi 2, 3 or 4\u003c/a\u003e has the rest of what changed for CEC in this release.\u003c/p\u003e\n\u003ch2 id=\"for-developers\"\u003eFor developers\u003c/h2\u003e\n\u003cp\u003eThe schedule is 4 fields on \u003ccode\u003e/api/v2/device_settings\u003c/code\u003e, readable with \u003ccode\u003eGET\u003c/code\u003e and writable with \u003ccode\u003ePATCH\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003edisplay_power_schedule_enabled\u003c/code\u003e, a boolean.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edisplay_power_on_time\u003c/code\u003e and \u003ccode\u003edisplay_power_off_time\u003c/code\u003e, as \u003ccode\u003eHH:MM\u003c/code\u003e. \u003ccode\u003eHH:MM:SS\u003c/code\u003e is accepted and stored as \u003ccode\u003eHH:MM\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edisplay_power_days\u003c/code\u003e, a comma-separated list of weekday numbers from \u003ccode\u003e0\u003c/code\u003e to \u003ccode\u003e6\u003c/code\u003e, where Monday is \u003ccode\u003e0\u003c/code\u003e. An empty value means every day. Asset \u003ccode\u003eplay_days\u003c/code\u003e counts Monday as \u003ccode\u003e1\u003c/code\u003e, so the 2 don\u0026#39;t match.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eA malformed time or weekday gets a \u003ccode\u003e400\u003c/code\u003e response from the API. In the web form, a malformed time keeps its previous value and shows an error.\u003c/p\u003e\n","description":"A screen in an office or shop no longer has to stay lit all night and all weekend for nobody. Set the hours and days under Settings \u003e Display schedule, and Anthias switches the screen off at closing time and back on in the morning, on a plain monitor or a TV.","title":"A new display schedule blanks the screen outside opening hours","type":"release","url":"https://www.screenly.io/releases/anthias/2026.08.1/display-schedule/"},{"areas":[],"breaking":false,"content_html":"\u003cp\u003eIf you use Anthias to turn a TV on and off over HDMI, that never worked on a Raspberry Pi 2, 3 or 4, and on a Raspberry Pi 5 only one of the 2 HDMI ports got the command. Anthias 2026.08.1 fixes both, and stops calling an ordinary monitor an error. After upgrading, try it with your TV, because it hasn\u0026#39;t been tested end to end with one yet.\u003c/p\u003e\n\u003cp\u003eBefore Anthias 2026.08.1, the \u003ca href=\"/releases/anthias/2026.05.1/hdmi-cec-display-power/\"\u003eHDMI-CEC display controls\u003c/a\u003e could only fail on a Raspberry Pi 2, 3 or 4. The \u0026quot;Display Power (CEC)\u0026quot; card on the System Info page read \u0026quot;CEC error\u0026quot;, and \u0026quot;Turn display on\u0026quot; and \u0026quot;Turn display off\u0026quot; in Settings failed, even with a TV that supports CEC.\u003c/p\u003e\n\u003cp\u003eFrom Anthias 2026.08.1, CEC commands go out on the Raspberry Pi 2, 3, 4 and 5 and the Rock Pi 4. They go to every HDMI port that has a CEC display attached, so a second screen isn\u0026#39;t left out. When no port has one, the buttons say \u0026quot;no CEC link on any HDMI port\u0026quot; instead of failing with no reason. Whether the TV then turns on or off is still up to the TV.\u003c/p\u003e\n\u003ch2 id=\"system-info-tells-a-plain-monitor-from-a-fault\"\u003eSystem Info tells a plain monitor from a fault\u003c/h2\u003e\n\u003cp\u003eMost desktop monitors don\u0026#39;t support CEC, and Anthias used to report that as \u0026quot;CEC error\u0026quot;. The \u0026quot;Display Power (CEC)\u0026quot; card now reads:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u0026quot;True\u0026quot; or \u0026quot;False\u0026quot; when every display that answered is on, or in standby.\u003c/li\u003e\n\u003cli\u003e\u0026quot;Mixed\u0026quot; when 2 displays disagree, or one is switching.\u003c/li\u003e\n\u003cli\u003e\u0026quot;No CEC display detected\u0026quot; when nothing answers. That\u0026#39;s normal for a plain monitor, not a fault.\u003c/li\u003e\n\u003cli\u003e\u0026quot;Not available\u0026quot; on a board with no CEC hardware, such as most x86 PCs, as before.\u003c/li\u003e\n\u003cli\u003e\u0026quot;CEC error\u0026quot; only when Anthias couldn\u0026#39;t ask at all.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"what-to-check-on-your-setup\"\u003eWhat to check on your setup\u003c/h2\u003e\n\u003cp\u003eAnthias 2026.08.1 hasn\u0026#39;t been tested end to end against a CEC-capable display: no test setup had one. Finding the CEC hardware and telling which ports have a CEC display was checked on a Raspberry Pi 2, 3, 4 and 5, a Rock Pi 4 and an x86 machine. USB CEC adapters haven\u0026#39;t been tried. If you use CEC to turn a TV on and off, try it after upgrading and report what you see.\u003c/p\u003e\n\u003cp\u003eThe viewer container now does the CEC work for the whole player, so if the viewer isn\u0026#39;t running, the card reads \u0026quot;CEC error\u0026quot; and the buttons fail.\u003c/p\u003e\n\u003ch2 id=\"for-people-who-build-on-anthias\"\u003eFor people who build on Anthias\u003c/h2\u003e\n\u003cp\u003eThe images no longer include libcec or \u003ccode\u003ecec-client\u003c/code\u003e, since Anthias talks to the kernel\u0026#39;s CEC devices (\u003ccode\u003e/dev/cec*\u003c/code\u003e) itself. The viewer container is privileged and already sees them, so the server and Celery containers get no CEC devices: the compose templates drop their \u003ccode\u003e/dev/vchiq\u003c/code\u003e entries, and \u003ccode\u003ebin/upgrade_containers.sh\u003c/code\u003e, \u003ccode\u003ebin/deploy_to_balena.sh\u003c/code\u003e and \u003ccode\u003ebin/balena_ota_deploy.sh\u003c/code\u003e no longer rewrite the device list per board. Needing no device list is also what lets CEC work on balena installs, though it hasn\u0026#39;t been tried on a balena device yet.\u003c/p\u003e\n\u003cp\u003eOn \u003ccode\u003e/api/v1/info\u003c/code\u003e and \u003ccode\u003e/api/v2/info\u003c/code\u003e, \u003ccode\u003edisplay_power\u003c/code\u003e is still a string or \u003ccode\u003enull\u003c/code\u003e. Its values are \u003ccode\u003eTrue\u003c/code\u003e, \u003ccode\u003eFalse\u003c/code\u003e, \u003ccode\u003eMixed\u003c/code\u003e, \u003ccode\u003eNo CEC display detected\u003c/code\u003e, \u003ccode\u003eNot available\u003c/code\u003e, \u003ccode\u003eCEC error\u003c/code\u003e and, rarely, \u003ccode\u003eNo CEC adapter\u003c/code\u003e. \u003ccode\u003eUnknown\u003c/code\u003e, which a working adapter with nothing answering used to return, is now \u003ccode\u003eNo CEC display detected\u003c/code\u003e.\u003c/p\u003e\n","description":"On a Raspberry Pi 2, 3 or 4, the display power buttons failed and the System Info card read \"CEC error\", even with a CEC TV attached. Anthias 2026.08.1 sends HDMI-CEC commands on those boards, to every HDMI port with a CEC display, and stops calling a plain monitor an error.","title":"HDMI-CEC display controls no longer fail on a Raspberry Pi 2, 3 or 4","type":"fix","url":"https://www.screenly.io/releases/anthias/2026.08.1/hdmi-cec-rewrite/"},{"areas":[],"breaking":false,"content_html":"\u003cp\u003eA phone photo is 12 to 50 megapixels, and a 1080p screen shows about 2 of them. From Anthias 2026.08.1, a board with less than 1.5 GB of RAM shrinks a JPEG or PNG upload that has more pixels than a 1920x1080 image down to about that many, keeping its shape. That covers the Raspberry Pi 2, the Pi 3 and 1 GB boards such as a 1 GB Pi 4. A board with more memory leaves your files as they are.\u003c/p\u003e\n\u003cp\u003eIn the project\u0026#39;s testing on a 64-bit Raspberry Pi 3, a 6000x4000 photo was stored at 1762x1175, and the viewer used less than half the memory to show it.\u003c/p\u003e\n\u003cp\u003eAnthias 2026.08.0 started doing this for images it converts to WebP on upload, such as HEIC and TIFF. JPEG and PNG skip that conversion, so until this release they stayed at full size.\u003c/p\u003e\n\u003ch2 id=\"what-happens-to-your-file\"\u003eWhat happens to your file\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIt keeps its format, and the asset shows as processing until the resize is done.\u003c/li\u003e\n\u003cli\u003eA JPEG is saved again at quality 90. A PNG stays lossless.\u003c/li\u003e\n\u003cli\u003eA phone photo\u0026#39;s rotation is applied to the pixels and its EXIF data is dropped, so it stays upright.\u003c/li\u003e\n\u003cli\u003eGIF, WebP and SVG files aren\u0026#39;t resized.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eA resized PNG can end up larger on disk than the original. A flat graphic with big areas of one color compresses very well at full size and less well once it\u0026#39;s scaled down, while a photographic PNG gets smaller. The resize is there to cut the memory the viewer needs to draw the image, so Anthias keeps the resized file either way.\u003c/p\u003e\n","description":"On a board with less than 1.5 GB of RAM, such as a Raspberry Pi 3, a JPEG or PNG bigger than 1920x1080 is shrunk when you upload it, so the viewer needs much less memory to show a phone photo.","title":"Large JPEG and PNG uploads are resized on boards with little RAM","type":"improvement","url":"https://www.screenly.io/releases/anthias/2026.08.1/large-jpeg-png-low-ram-boards/"},{"areas":[],"breaking":false,"content_html":"\u003cp\u003eInstalling Menu Board from the Apps tab in \u0026quot;Add asset\u0026quot; gave you a board with your title and footer and no menu under them. Its items are a list, and the form left out any setting that takes a list, so there was nowhere to type them. World Clock\u0026#39;s cities had the same problem.\u003c/p\u003e\n\u003cp\u003eFrom Anthias 2026.08.1, a list setting shows as rows, one per item, with the fields for that item, such as a menu entry\u0026#39;s section, name and price. \u0026quot;Add\u0026quot; puts in a new row and each row has its own remove button. When you edit an installed app, its saved items load back into the rows.\u003c/p\u003e\n\u003cp\u003eThis closes the gap left when the \u003ca href=\"/releases/anthias/2026.07.1/signage-app-store/\"\u003eApps tab arrived in Anthias 2026.07.1\u003c/a\u003e, which couldn\u0026#39;t set a list.\u003c/p\u003e\n","description":"App settings that take a list, like the items on a Menu Board or the cities on a World Clock, can be filled in from the Apps tab. Before, Menu Board came up with a title and no menu.","title":"Menu Board's items and World Clock's cities can be set from the Apps tab","type":"fix","url":"https://www.screenly.io/releases/anthias/2026.08.1/menu-board-installs-with-its-menu/"},{"areas":[],"breaking":false,"content_html":"\u003ch2 id=\"fixes\"\u003eFixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eA player with an empty playlist, or with an asset it can\u0026#39;t show, no longer writes the same log line every few seconds. The viewer logs the first time and stays quiet until something changes. The journal on a player is small, and the repeats pushed out the log lines you\u0026#39;d need after a crash.\u003c/li\u003e\n\u003cli\u003eOn the Raspberry Pi 2 and 32-bit Pi 3 images, a display that disappears while the player runs no longer leaves the viewer retrying on a black screen first, which at startup could take several minutes. The viewer gives up on the first failed start and its container restarts, which is what finds the display again.\u003c/li\u003e\n\u003cli\u003eOn the Raspberry Pi 5, x86 and arm64 images, when the viewer restarts itself because it started without seeing a connected display, it logs that as a warning instead of an error, so a recovery that worked no longer sends an error report.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"improvements\"\u003eImprovements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAnthias\u0026#39;s usage statistics now include the Anthias version, as \u003ccode\u003eversion_name\u003c/code\u003e, next to the commit and branch they already sent. With \u003ccode\u003eanalytics_opt_out\u003c/code\u003e set in the player\u0026#39;s config, nothing is sent, as before.\u003c/li\u003e\n\u003cli\u003eThe API reference on the Anthias website is built from the API itself and updates when the API changes. The old copy was missing 9 endpoints, including the display power and viewer endpoints.\u003c/li\u003e\n\u003cli\u003eThe Anthias website has pages on using a Raspberry Pi for digital signage, as an advertising display and as an info screen, a link to the signage app store at \u003ca href=\"https://signage-apps.com/\" target=\"_blank\" rel=\"noopener\"\u003esignage-apps.com\u003c/a\u003e, and a Trust Center link with an FAQ entry on where to get the SBOM. It also says plainly that the Raspberry Pi Imager images are the balenaHub Fleets for Good images, which update over the air.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"for-contributors\"\u003eFor contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ebun run test\u003c/code\u003e runs front-end tests that need a page, using happy-dom, starting with the app settings form.\u003c/li\u003e\n\u003cli\u003eNew tests for the CEC code, the display schedule, telemetry, image processing and the viewer\u0026#39;s log changes.\u003c/li\u003e\n\u003cli\u003eThe README no longer carries the broken Star History chart or the stale \u0026quot;Issues and Bugs\u0026quot; note.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDjango REST framework, uvicorn, Python development tools and the GitHub Actions used in CI, including CodeQL, were updated.\u003c/p\u003e\n","description":"A Raspberry Pi 2 or 32-bit Pi 3 that loses its display restarts the viewer straight away, usage statistics include the Anthias version, and the website's API reference covers the whole API.","title":"A player with nothing to show stops filling its log, and other fixes","type":"roundup","url":"https://www.screenly.io/releases/anthias/2026.08.1/fixes-and-improvements/"}],"json":"https://www.screenly.io/releases/anthias/2026.08.1/v1.json","product":"anthias","product_label":"Anthias","url":"https://www.screenly.io/releases/anthias/2026.08.1/","version":"2026.08.1"}],"title":"Anthias 2026.08.1","url":"https://www.screenly.io/releases/anthias/2026.08.1/","version":1}