NEXT HMI 1.0.0: the first stable release.
Six weeks after the first release candidate, 1.0.0 is out. It brings a lot of new features, but the version number is about something else: from here on, the files you build keep working.
An HMI project lasts about as long as the machine it runs on, which is often ten years or more. So for us, 1.0 isn't a feature count. It means the project format has settled. Screens, alarms, recipes and themes saved by 1.0.0 are the files later releases are built to read. When a release does need to rewrite something, it asks first, zips your project into a backup, and tells you what it changed.
That rule already applies to this release. A project saved by a release candidate is upgraded to file format 9 the first time you start it: after you confirm, and after the backup is written.
Repeat a design, don't copy it
The biggest addition is the Repeater. You design one card, one row or one station, and the Repeater draws it once for every element in an array. That array can be an array tag on the PLC, a list you type in, a response from an HTTP call, the saved recipes, or the users on the system. Six filling heads become one design instead of six copies to keep in sync. And when the array is a tag, each copy writes back to its own element, so the setpoint field on head four writes to head four. How the Repeater works.
Start from something that works
+ New project now asks what you want to start from. You can pick an empty page, or NEXT BREW: a complete demo machine with three pages, a sign-in dialog, a five-step setup wizard, alarms, recipes, two themes and two languages. It runs on a static datasource, so you don't need a PLC to take it apart. It's the quickest way to see how a real project is put together. The dashboard also shows a thumbnail of each project's main page now, so you can tell your projects apart without reading paths.
One warning: the demo comes with two demo accounts, and their passwords are printed on its sign-in screen. Change or delete them before a project built from it leaves your test bench.
Connecting to the machine got less mysterious
- OPC-UA certificates from the editor. Generate certificate… creates a self-signed pair in the project and fills in the paths. Certificate info tells you when it expires, with a warning 90 days ahead. No more OpenSSL commands on a commissioning laptop. Certificates.
- Connect and Disconnect, with a reason. A connection that fails now shows why, using the server's own message, right under the status. A connection you take down stays down until you connect it again. Connection status.
- Read-only means read-only. A variable that isn't marked writable refuses every write before it reaches the PLC. That covers buttons, actions, recipe downloads and the REST API.
- Transfer from the editor. Pushing a project to another device is one button in the top bar now. When a transfer is refused, the dialog says why and how to fix it, whether that's a wrong password, a closed port or a certificate mismatch. A transfer that fails halfway picks up where it stopped.
More logic, still no code
If / Else runs one of two action lists depending on a condition. $formula calculates a value from your tags, like ({1} - 32) / 1.8 to show a Fahrenheit tag in Celsius, and $not inverts a boolean. Pages and dialogs get open and close events, so you can reset a form or start a sequence when an operator arrives. A new Toggle action flips a boolean based on the value the server holds, not whatever the screen last showed. And a new Video widget plays recorded clips from the project, like a changeover instruction next to the machine it's about.
Faster, by a lot
The first page on a LAN now shows up in about 230 ms on a cold start and 140 ms from cache. That used to be 800 and 700. A page is shown as soon as its widgets are ready, without waiting for every value to arrive, and the rest of the project loads in the background.
What to check before you upgrade
A stable release is the last good moment to fix the things we got wrong, so a few of these changes will affect your existing screens. The upgrade converts what it can on its own. These are the ones that are worth a look afterwards:
- Widgets without a size now hug their content instead of stretching. Layout now works with Hug, Fill and Fixed. If a widget relied on stretching, set that axis to Fill. Layout fields.
- Types have to match exactly. An Integer tag no longer fits into a Float field. Bindings that don't fit anymore are flagged in the warnings pill, never silently rewritten.
- The Button binds a plain boolean instead of a struct. A Button that's still bound to a struct gets flagged, along with instructions for rebinding it.
- Dialogs are now ordinary pages in a Dialogs folder, with everything a page can do. Your existing dialogs are converted automatically.
- Margin is gone. The space between widgets comes from the parent's Gap and Padding. The upgrade logs a note for every margin it removes.
- The server is reachable on your network by default. That's what you need on a machine, but on plain HTTP it means passwords travel unencrypted. Turn on HTTPS on any network you don't fully trust, and set the device-admin password straight after installing.
What 1.0 still doesn't do
NEXT HMI still only speaks OPC-UA. S7, Modbus and EtherNet/IP need an OPC-UA gateway, and MQTT and Beckhoff ADS are on the roadmap but not in this release. The Video widget plays recorded files only, so no RTSP camera streams yet. We'd rather tell you that here than have you find out halfway through a commissioning job. Specs keeps the current list.
Get it
Download the portable zip for Windows x64 or macOS. You don't need an installer or an account. Unzip it, start it, and go to localhost:8000. For Docker or running from source, see the install guide. Try now walks you from download to a live screen in three steps.
This post covers the highlights. Everything else is in the full changelog, including the fixes: Windows works properly now, component edits can be undone, and outline icons keep their strokes.
Sources: the 1.0.0 changelog and the user guide. Found something that doesn't work? Support explains how to report it.