Dashticz 4.20.0
Posted: Sunday 11 October 2026 19:08
Dashticz 4.0.10 → 4.20.0: what's new
Summary of the changes between 4.0.10 (2026-09-20) and 4.20.0 (2026-10-11).
New widgets
Improvements
Bug fixes
Security
Dependencies and build
If you bump to something please open an issue on GIT
Summary of the changes between 4.0.10 (2026-09-20) and 4.20.0 (2026-10-11).
New widgets
- F1: race weekend schedule from the domoticz_F1 plugin's text device (device idx and font size as settings; multiple F1 widgets can be saved).
- TVgids24: TV guide widget with channel logos on a transparent background, shown in a small frame whose background colour is configurable (colour picker or transparent).
- Fully Kiosk: battery level of a Fully Kiosk tablet plus a charger switch, with optional automatic charge control (random start/stop percentages, hard minimum/maximum, 16 hour backup) based on the domoticz_fullykiosk plugin. Optional extra rows: screen, screensaver, motion sensor, brightness and "Load start URL". Settings are shown in 3 columns (2 on tablets, 1 on phones).
- Weather Info: based on the domoticz_weatherinfo plugin. Buienradar rain forecast and current weather (nearest weather station) with animated SVG weather icons, selectable and sortable text parts (status, temperature, description, wind, logo) and an optional rainfall row. The icon and description follow the rain status.
- Coins block: now uses the CoinGecko API.
Improvements
- Calendar: the repeatable Calendar block supports multiple calendars (name, URL and colour per row), and local-network calendar URLs (e.g. http://192.168.x.x/foo.ics) are allowed.
- Per-block text sizing and alignment (title and value font size, text alignment) in Device Config.
- Reworked config popups: consistent two-column Settings grid, compact spacing, green Add buttons, improved automation rule editor and LMS config layout, and no layout jump when a popup opens.
- PostNL colour settings and HP iLO / cluster layout refinements (icon-above rows, margins, compact selector).
- Background/Image labels localized; CSS cache busting on every page load.
- Documentation for Dashticz 4 added (setup wizard, Settings menu, Device/Widget Config, special blocks, automation, installation).
- Docker: missing files now return 404 (first-run setup works on a fresh install) and custom/ is made writable for the container's web-server user.
- Font Awesome 7 family name used for the keypad icons.
- Widget and Device Editor: font size moved to the display options (F1, TVgids, Weather Info, HP iLO, PostNL, Fully Kiosk); switches are shown next to their label; icons per level in 2 columns.
- Device Editor: all 46 findings of a full code review processed (classic screens, quick-add popups, scans, LMS, Calendar, Graph, Multi Device, slide button and the save logic).
- Layout Editor keeps the definition of existing blocks on classic screens and treats hand-keyed blocks with a device idx as custom devices.
- Shared widget helpers (escapeHtml, t, clampNumber, bridge, bridgeError) and a shared .dt-btn button style (used by LMS and Fully Kiosk, available to other widgets).
- Dutch and French language files completed (23 other language files are still incomplete and fall back to English).
- Info page no longer shows "undefined" after the version number.
Bug fixes
- F1: session times now follow the browser time zone (they were an hour off in summer time unless f1utcoffset was set).
- F1, TVgids, PostNL and HP iLO no longer fetch their data twice when mounted.
- Traffic info shows an error instead of staying on "Loading" when the RWS request fails.
- Evohome: zone and hot water requests use type=command¶m=setused; hot water state is updated after switching.
- Moon phase: fixed the unused quarter and age methods (they threw errors or returned NaN); the Button widget behaviour is unchanged.
- Editors: no more 0 written for an empty number setting; settings with a semicolon in a string value survive a CONFIG.js rewrite; text custom fields stay strings; an empty custom text value no longer blocks the popup; a grid layout save only deletes a screen on an explicit request; no config control for special blocks the Device Editor cannot open; only the first block of a catalog kind is managed.
- ical bridge: PHP 8.1/8.2 deprecation warnings removed (parser method 0), and the inclusive UNTIL occurrence of recurring events is no longer missed.
Security
- cors.php and nocache.php now send X-Content-Type-Options: nosniff and a sandbox CSP with every relayed response (prevents reflected XSS through remote HTML/SVG) and refuse CR/LF in relayed headers.
- Garbage bridge: no longer Access-Control-Allow-Origin: *, same-origin requests only, request parameters are now URL-encoded.
- Graph custom header: only numeric device values are inserted into the evaluated expression.
- CONFIG.js writers quote hostile keys; stricter key patterns, no INF/NaN, UTF-8 safe cuts, program folders refused.
- Dependency security updates: handlebars 4.7.10, postcss-selector-parser 7.1.6, source-map-js 1.2.2.
Dependencies and build
- dist/ rebuilt (it still contained old swiper, babel and sass builds), cache-buster raised, and CI now fails when dist/ differs from a fresh build.
- ics-parser 3.6.0 in the ical bridge; swiper 14.3.0, @babel/core and preset-env 8.0.7, sass 1.105.1.
- GitHub Actions updated (checkout 7, setup-node 7, setup-python 7, cache 6, upload-artifact 7); Dependabot configured for npm, GitHub Actions and Composer.
- Faster Playwright CI jobs; new tests for the ical bridge, thermostat block and setpoint command, moon phase, language files and the editors.
If you bump to something please open an issue on GIT