Repository navigation
v3.3.0
TL;DR
- A browser tab with the web UI open no longer piles up status requests. On 3.2.1 a PC waking from standby with the page open could send a burst that left the ESP8266 with under 1 KB in one piece, and restarted some devices
- Spec 2 themes can bind to the clock and to the moon's age without a data source:
time.second,time.hour,time.moonand the rest - The Claude usage screen can hide the 5-hour card and show the 7-day figure as one tall card with an even-pace marker
- Update from the System tab as usual. Settings and installed themes carry over
Fixes
- Web UI and
/api/status: the page asks for the status again only after the previous answer has arrived, gives up on a lost answer after 8 seconds, and asks nothing while its tab is hidden. The device writes the status reply in 128-byte pieces instead of building it whole, with the same fields in the same order, so Home Assistant and scripts read it as before. With 6 status requests at once, the lowest free heap went from 2,296 B to 4,048 B and the largest free block from 728 B to 3,376 B. This is the cause of the idle restarts listed under Known issues in 3.2.1. Thanks @sanerdemirel (#67) - The web page served by the device now includes the hide-5-hour-card option. It was in the page's source but missing from the copy built into the firmware
Features
- Themes: built-in binding sources for spec 2. A binding can name
time.second,time.minute,time.hour,time.hour12,time.secondOfDay,time.day,time.monthortime.weekdayinstead of a fetched field, with the same mapping, clamping and color stops.device.*names are reserved for values a firmware supplies; smalltv-mod supplies none yet, so such a layer keeps its static value. A bound layer repaints only when its value changes. Thanks @davicorrea0 (#57) - Themes:
time.moon, the moon's age in whole days, 0 to 29, computed on the device with no network. It is within a day of the real new and full moon; the docs give the exact error. Thanks @sanerdemirel (#66) - Claude usage: Hide the 5-hour usage card in the Clawdmeter tab. The stats screen then shows one 7-day card with a white marker at the even pace, the share of the week already gone. See Claude usage
Development
- CI fails when
src/webui.hdoes not matchsrc/webui.html.tools/gzip_webui.py --checkdecompresses the header and compares it with the page, so another zlib build does not fail it, and the tool reads the page with LF line endings on a Windows checkout too - CI tests the status reply byte for byte against the old one, counts its heap use, and runs the web UI's polling code under a fake clock
Pull requests in this release
- #57 feat(theme): time.* and device.* built-in binding sources for spec 2, by @davicorrea0
- #66 feat(theme): time.moon, the moon's age as a built-in binding source, by @sanerdemirel
- #67 fix(web): poll the status one request at a time, and send it in pieces, by @sanerdemirel
Tested
- Updated from 3.2.1 over the web page on an ESP8266 SmallTV with the standard image: every setting unchanged, the served page identical to
webui.html, the hide-5-hour option switched on and off - 10 rounds of 6 parallel
GET /api/statuson that device: no restart, lowest free heap 4,048 B, largest block 3,376 B. The same test on 3.2.1 gave 2,296 B and 728 B - A spec 2 test theme bound to
time.second,time.minute,time.hour,time.moonanddevice.temperatureinstalled and drew each bar at the expected length; thedevice.temperaturebar stayed at its static width - Updated from 3.1.1 on an ESP8266 SmallTV with the lean image: every setting unchanged; the same burst test gave no restart and 22,536 B lowest free heap
- @sanerdemirel ran #67 on a SmallTV-Ultra with Pixel Room and 4 themes installed: 6 parallel status reads left 4,064-5,216 B free, against 2,352-2,784 B on 3.2.1
- The ESP32 images (c2, esp32, esp32-wg, esp32-pro) are built and size-checked by CI but were not run on a device for this release
Known issues
- A client that requests the theme list and then stops reading can stall the ESP8266 web server and, with a theme running, restart it. 3.2.1 has the same behaviour. A fix is being prepared as its own pull request
Upgrading
Update from the System tab ("Check for latest", then "Update now"), or download the image for your board from the assets below. See Which release file to download. Settings and installed themes carry over.
Full Changelog: v3.2.1...v3.3.0