Releases - WWT¶
Release notes for WideQuick WWT. The newest release is listed first. Each release is built on a specific WideQuick Modular Framework version, linked under its heading. For the full framework changelog see the MOD releases.
WideQuick WWT 2026.1.0¶
Released 2026-05-20
Modular Framework Version: WideQuick MOD 2026.1.0
Release notes
The WWT concept rebased on the second major release of the WideQuick Modular Framework. Its feature set is identical to WideQuick MOD 2026.1.0; WWT differs only in its dedicated theming and a set of WWT-specific views. The headline additions are full multi-language support, an in-system logbook, a maintenance calendar, document handling, and far broader support for web and remote clients.
New features¶
| Feature | Description |
|---|---|
| Multi-language support | Views, scripts, the object library, dynamics and Data Store are now fully translatable, with a built-in language selector and a language icon for switching language at runtime. |
| Tooltip system | A new tooltip mechanism (scToolTip) adds contextual help boxes throughout the system, including history and map objects. |
| Rewritten Workview animation | The animation system has been rebuilt from the ground up to be more versatile and easier to configure, with a matching settings view and helpers for reading user-defined theme colours. |
| ObjectFinder & goTo | Every object is automatically indexed with its view path and name, and the new goTo function lets you jump straight to any object from anywhere in the project. |
| Project-wide history | History can now be shown for the entire project, not just a single object, with automatic decimal scaling and a wider colour spread for readable multi-curve trends. |
| Configurable runtime behaviour | Value-display refresh rate is now adjustable at runtime, and the chosen theme (light/dark) is remembered and restored on the next startup. |
| Legacy view import | Views built in WideQuick BMS 8.0 or earlier can be lifted directly into the Modular Framework, where their symbols instantly repaint to the new, redesigned objects while keeping the same connections. |
| Report units and prefixes | A report carries a display unit, chosen in two steps. The Unit list is built from the units of the signals on the report's logger, reduced to their SI base, so only dimensions the data actually contains are offered, and choosing one filters the signal tree to signals of that dimension. A separate Prefix list then sets the scale to present at. Every selected signal gets its own factor, computed from that signal's own prefix against the chosen target, so one signal logged in Wh and another already in kWh report on the same scale. Values are queried in the unit they were logged in, and the factors travel to the template alongside the data. Prefixes on m³ apply to the metre, so dm³ is a thousandth of m³ rather than a tenth. ReportQueue, reportStats and reportSchedules gain unit and factorArray columns, added on first start so existing databases migrate themselves. |
New & updated modules¶
| Module | Description |
|---|---|
| Object library | A redesigned set of process symbols (valves, sensors, dampers and more) with a cleaner, modernised look. Objects were standardised across font size, decimals, captions and descriptions, and digital value displays were added. These are the symbols that legacy BMS 8.0 views repaint to on import. |
| Control curve | A new module for graphical setpoint curves, where an operator sets how one value follows another by positioning points on a curve. Two variants ship: Styrkurva, whose X axis is a process value, and StyrkurvaTid, whose X axis is time of day with points stored as HHMM integers. Curve points bind through the alias pair suffixAliasX and suffixAliasY, so one curve object serves any pair of tags, and both horizontal and vertical input boxes are supported. Adds the scStyrkurva and scStyrkurvaTid scripts, Styrkurva.klib, and the Styrkurva and StyrkurvaTid popups. |
| Time channel | A new module for named time channel profiles. A profile captures a tag's complete on and off schedule, two periods per day across weekdays, weekend, holiday eve, holiday and three special days, together with the special-day dates, and stores it in the Config database. A schedule worked out once can then be loaded onto another time channel rather than entered again. Adds the scTimeChannel script and the TimeChannel and TimeChannelSaved popups. |
| Dashboard | A new configurable dashboard built from a library of reusable widget objects (Dashboard Widgets.klib). Widgets work on desktop, web and remote, the start dashboard shown after login is configurable, and example dashboards are included to build from. |
| Logbook | A new module for creating, browsing and filtering timestamped notes across the project. An entry is filed against a workview, an object, or a topic path of its own, and a single topic tree presents all of them. A toggle switches that tree between workview order, which follows the folder structure of the process views, and signal order, which follows the tag path. The two are linked, so a note on an object also appears under every view that object is drawn in, and a note on a view also appears under the objects drawn in it. A Placed on column names what each entry is anchored to. Entries are archived rather than deleted, and the logbook opens preselected from an object popup or a process view with the rest of the tree still reachable. |
| Calendar | A new calendar module with month navigation, mini calendar and an upcoming-events sidebar. Maintenance tasks appear as calendar events with status-based colours and automatic reminders ahead of scheduled work. Events can be imported from a local .ics file and exported to one. A day is marked as a holiday or a holiday eve by giving an event the HOLIDAY or HOLIDAYEVE colour, and the resulting daily classification is published to the isHoliday and isHolidayEve variables for a PLC or DUC to act on. |
| Documents | A new document-management module with a file picker for uploading documents and a handler (scDoc) for linking documents to objects, validated across desktop, remote and web. |
| Map handler | A new map module with an example view and web-compatible map support, plus a new set of map navigation indicator objects for placing and linking objects on a map. |
| Maintenance | Significantly expanded: recurring maintenance tasks with a treeview object selector, real-time sync across all connected clients, refresh buttons, a per-user maintenance counter on the dashboard, and status/priority colours throughout. A new system-identity mechanism registers each system, tags tasks by system, and adds a System column and filter so a single maintenance database can serve several installations. |
| Reports | The report module was rebuilt around report controllers. A shared Template_ReportController plus one controller view per report type replaces the previous per-report views, and Report.klib holds the controls they share. Reports.kdat grew from a single Alarm_Report to six: Alarm_Report, Alarm_Report_OneAlarm, Summation_Report, Summation_Report_Week, Delta_Report_Week and Delta_Report_Year, each marked for remote access so reports can be created and run from a remote client. Delta reports state the change over a period rather than the logged values, for meters reporting a continuously increasing total. The scheduler supports two time spans per day and scheduling by alias, and shows clear status messages. Reports from an existing WideQuick installation can be migrated into a Modular Framework project. |
| Alarms | A new alarm frequency view shows how often alarms occur, remote alarms can be scheduled in alarm schedules with their severity and group, alarm schedules gained select-all / deselect-all buttons for alarm groups, the "Visa information" button supports show scripts, and alarm log events are no longer recorded twice. A view-specific alarm list, reached from a process view's SpeedDial menu, shows only the alarms belonging to the objects drawn in that view. |
| Web & remote clients | Major expansion of client support: report creation, alarm-schedule editing and the log viewer all work on WideQuick Web and remote clients, and suffixes, view privileges and maintenance state are synchronised between all clients. |
Changes¶
| Area | Description |
|---|---|
| Navigation | "Loggar" moved into "Rapporter & loggar", "Underhåll & loggar" renamed to "Underhåll", individual menu items can be hidden at runtime, and a re-show button was added for hidden sub-navigation. |
| Login & users | Login is now possible via a combo box instead of typing a username, and the login requirement can be disabled from the settings view. |
| Users & permissions | New demo users were added, each with a sensible role-based privilege level, and the privilege system was reworked: privileges were renamed from the old scheme to a new one, dedicated privileges were added for maintenance and logbook actions, and users now get a clear notification when they lack the privilege for an action. The Servicetekniker role was renamed to service. |
| Process value object | Value updates are now driven by a Data Store listener instead of dynamics, giving lighter rendering for stale or slow-changing variables since the object only redraws when the value actually changes. |
| Alarm terminology | Alarm wording was standardised: "Allvarlighetsgrad" is now "Larmklass" and "Bekräfta/Bekräftbara" is now "Kvittera/Kvitterbara" throughout the views and translations. |
| Settings | Settings unavailable on remote/web clients are now clearly disabled. |
| Map indicators | A new set of map navigation indicator objects has been introduced and is now used by default. The previous map indicators are no longer used in the framework views but remain fully functional and behave exactly as before, so existing projects that use them are unaffected. |
| Licensing | The project now ships under the BSD 3-Clause license, together with third-party license texts and attributions. |
| Suffix aliases | The suffix system was reworked from a direct suffix reference into a named alias layer. An object reaches a value through a SuffixAlias, so the same graphics serve any tag whose alias set matches, and a suffix can be renamed in one place without editing a view. Configuration moved from two settings views to three: Suffixalias - Arbetsvyer, Suffixalias - Popuper, and the new Suffixalias - Larm, which assigns theme colours and colour references to alarm categories. Storage changed from one JSON blob in SuffixObj to three columns, Popups, ProcessViews and Views, added on start so an existing database upgrades itself. |
| Popup templates | The single Template_Popup was replaced by three sizes, Template_Popup_Small, Template_Popup_Medium and Template_Popup_Large at 510, 1000 and 1500 wide and 670 high, so a custom popup can be built at a width suiting its content instead of one fixed frame. |
| Alarm Sender | Outbound SMS gained a compact mode. Instead of the full per-alarm listing, a compact message carries the subject line, the event type and a comma-separated list of the alarms matching it, which keeps a notification covering many alarms within a sensible message length. The mode is set per alarm schedule. |
| Prompt dialog | The prompt pop-out accepts Enter as a confirmation, so a value can be typed and committed without reaching for the button. |
| Log output | The application and error logs were cleaned up. Schema migrations in the calendar, holiday, maintenance and suffix scripts now check whether a column exists before adding it, rather than attempting the change and letting the driver report the failure, and a privilege check no longer throws when it is called without a privilege. Several hundred lines of recurring startup noise are gone, which leaves the logs usable for finding real faults. |
Fixes¶
| Area | Description |
|---|---|
| Suffix aliases in other languages | The suffix settings view keys its categories by their Swedish names while the tree shows them translated. Running in any other language, the settings fields therefore resolved to nothing: the controls displayed but silently refused input, and selecting an item no longer filled in the combo boxes and text fields. The displayed label is now resolved back to its canonical key before use. Adding a category also rejects a name that collides with an existing category's translated label, which would otherwise produce two entries that cannot be told apart. |
| Recurring maintenance could not be created | A recurring maintenance configuration could not be created from Underhåll - Återkommande. Three of the controls, the interval count, the priority and the assignee, are not live-bound to the configuration object, so the values entered were discarded when the configuration was saved. They are now copied across before saving. getTemplateFromName() also returned a template's deadline_value in milliseconds while applyOffset() expects a count of interval units, which placed the first deadline far outside any usable range. The value is converted to a unit count on read and deadline_type is normalised at the same point. Saving a configuration with an empty name, type, description or interval no longer writes a malformed row. |
Breaking changes & migration¶
| Change | Migration notes |
|---|---|
| Objects now use SuffixAlias | All framework objects have been converted to reference values through a SuffixAlias instead of the suffix directly, and the property was added to popup objects to make this explicit. Projects upgrading from 2024.1.0 must define a suffix alias for each object; objects with an unconfigured alias are flagged visually in the views. This is the main migration step for this release. |
| Privilege rename | Privileges were renamed from the old scheme to a new one. Projects upgrading from 2024.1.0 should re-check their privilege assignments after upgrading, since custom assignments tied to the old privilege names need to be re-mapped to the new ones. |
| Suffix storage | scSuffix.suffixObj is now split into three columns. Existing projects are upgraded automatically the first time the project is opened; no manual action is required. |
| Maintenance system identity | On first start, existing maintenance tasks are migrated to the current system by hostname, and a migration dialog is shown if an application name change is detected. Review the assignment afterwards to confirm tasks are attributed to the correct system. |
WideQuick WWT 2024.1.0¶
Released 2024-09-03
Modular Framework Version: WideQuick MOD 2024.1.0
Release notes
The first official release of WideQuick WWT — the water and wastewater concept built on the Modular Framework. Its feature set is identical to WideQuick MOD 2024.1.0; WWT differs only in its dedicated theming and a set of WWT-specific views. It provides a themed, privilege-controlled operator environment with a complete PID/process-graphics library, alarm handling, trends, reports, maintenance, backup and audit tooling, so a new project starts from a working system rather than a blank canvas.
New features¶
| Feature | Description |
|---|---|
| Modular architecture | The framework is built from self-contained modules (alarms, trends, reports, maintenance, backup, etc.) that can be reused and combined independently, so a project only includes what it needs. |
| Theme system | Built-in light and dark themes with a shared colour palette named by the Google Material convention. Themes switch consistently across all views, objects and the navigation bar. |
| Login & privilege system | Role-based login with view locking, so users only see and reach the views and actions their privilege level allows. Unauthorised actions are met with clear error messages instead of silent failures. |
| Navigation system | A main menu plus an auto-generated sub-navigation that builds itself from the project's views, keeping menus in sync as views are added. |
| Suffix system | A central suffix/alias mechanism that lets the same object graphics be reused across many process objects without rebuilding views. |
| Dynamic workview objects (DynTouch) | Interactive process objects that come alive with live values and click-to-open popups. |
| Backup & restore | Operators can select variables (with search), save their values, and restore them later, with the original variable names preserved. |
New & updated modules¶
| Module | Description |
|---|---|
| Process object library | A full set of P&ID symbols: pumps, valves, actuators, pipes, vessels/tanks, heat exchangers, compressors, instruments and PID control objects, all consistently scaled and styled. |
| Alarm module | Live alarm lists with filtering, alarm counters in the navigation bar, alarm grouping and severity, auto-acknowledge support, and external notification via email and GSM modem. |
| Trends & history | Trend views with consistent legend naming and theme-aware colours for readable multi-curve graphs. |
| Reports module | Manual and scheduled report generation sharing a common template, with a report queue and email delivery for automatic reports. |
| Maintenance module | Maintenance scheduling and machine cards for planning and tracking service work. |
| Audit trail | Tracks variable and struct changes (including initial values), with filtering, sorting and a dedicated database. |
| Popup & object-info system | Standardised object popups with value displays, decimals, privileges and per-object settings. |
| Remote & multi-system support | A remote-system handler with launcher and aggregated alarm counts across connected systems. |