Skip to content

Changelog

Legend
  • I: Improvement
  • B: Bugfix
  • F: New Feature
  • C: Change
V3.7.0 - 19.07.2026
  • F: Flow: Milestone XProtect connector. Three new nodes let a flow both listen to and act on a Milestone XProtect VMS over its REST and WebSocket APIs. No plug-in to compile, no MIP SDK, no Windows service: the camera talks to the XProtect API Gateway directly.
  • F: Flow: New Milestone Connection node. Holds host, user, password and a TLS option, authenticates against the built-in identity provider and publishes a Conn Key string that the other Milestone nodes consume, the same pattern the SQL Connection node uses. It connects on its own as soon as the flow runs and retries with backoff (5 s up to 60 s) if the server is unreachable, reporting the reason on a Last Error output. A Test connection button in the node properties reports the event type count and tells you separately whether the Event Server is reachable, because a stopped Event Server is otherwise a confusing failure.
  • F: Flow: New Milestone Event (Subscribe) node. Subscribes to any XProtect event type and exposes each selected event as its own output. The picker is a searchable tree grouped the way the Milestone Management Client groups events (Devices, Hardware, External Events, Recording Servers, System Monitor), with ONVIF driver events nested by topic path. On the validation system that was 486 event types, including MIPItem events from third-party integrations such as access control, intrusion and ANPR.
  • F: Flow: Milestone subscribe events can be pinned to specific devices. Most XProtect event types are device scoped, so "Recording Started" without a source is ambiguous across every camera in the system. Each selected event can be restricted to chosen cameras, microphones, speakers, metadata devices, outputs, hardware or recording servers; leaving it empty accepts the event from any source. Only the source kinds an event actually accepts are offered, read from the event's own definition. A Last Source output carries the resource path of the most recent event.
  • F: Flow: Milestone subscribe node survives connection drops. It reconnects automatically and asks XProtect to resume the session, which replays events that arrived while it was disconnected. Milestone keeps a session for about 30 seconds, so longer outages lose events and pulse a dedicated Event Gap output instead of failing silently. If no data arrives at all for two minutes the connection is recycled, which protects against a socket that has died without notifying either end.
  • F: Flow: New Milestone Action node (formerly Milestone Event Trigger). Each configured action becomes one input; a rising edge performs it. Supported actions: trigger a user defined event, start and stop recording (cameras, microphones, speakers and metadata devices), activate and deactivate outputs, and create bookmarks. Requests run on a background worker so an unreachable Milestone server never stalls the flow.
  • F: Flow: Milestone bookmark text supports $name placeholders, the same syntax as the JSON Placeholder node. Writing Plate $plate at $zone in a bookmark header adds one string input per placeholder to the node, and the values present at the moment the action fires are substituted into the text. The same placeholder used by several bookmarks shares one input.
  • F: Flow: New HTTP Request path parameters. Ordered path segments can be appended to the request URL, edited with add / remove / reorder controls and a live URL preview, and overridden by connected node inputs just like query parameters. A Sync Path Param Inputs button creates the matching inputs, and their IDs stay stable across reordering.
  • I: Flow: JSON Placeholder now supports several placeholders inside one string, so a template value like "$name at $zone" resolves both instead of only whole-string placeholders.
  • F: Parking Management: New exit_no_entry status, distinct from unauthorized, for vehicles seen leaving with no recorded entry. These rows now record the exit camera and time rather than the entry camera, honour the zone's exit snapshot toggle, and the history view shows the status chip while suppressing the meaningless entry time and duration columns.
  • F: Parking Management: History gained custom field filtering. A single JSON key can be matched with json_extract rather than a text search over the whole blob, so a filter cannot accidentally match another field's name or value. The listing and the CSV export now share one filter implementation, so an export always contains exactly the rows on screen.
  • B: Parking Management: Soft-deleted entries are now handled consistently. Deleted rows stay visible in history with a deleted-at badge, retention cleanup purges them properly, and their snapshot files are removed instead of being orphaned on the SD card.
  • B: Flow: Values above the int32 range no longer fail with strconv.ParseInt: value out of range. Counter, logic, Lua, metadata event create and JSON placeholder nodes now handle int64 values.
  • B: WebRTC on devices without VDO (non-video products) is fixed; the controller is now split behind a build tag so a non-video build no longer pulls in the video path.
  • I: Security: Go and JavaScript dependencies updated, including golang.org/x/crypto, golang.org/x/net, github.com/jackc/pgx, github.com/gofiber/fiber, vite, postcss, nanoid and lodash.
V3.6.15 - 18.06.2026
  • F: Flow: Axis SVG Overlay now supports raster images via <image x= y= width= height= href=/> (PNG or JPEG). The href accepts a base64 data: URI or a remote http(s) URL, and may be a {{ }} expression - so a {{#each}} loop can show a per-row image. Remote images are fetched in the background (the render loop never blocks) and re-fetched only when the URL changes; the same URL is downloaded once. Decoded images are cached so per-frame cost stays low. For servers with self-signed/private-CA certificates, a new Settings -> Overlay option, Allow untrusted TLS certificates for remote images, can disable certificate validation for these fetches (off by default).
  • F: Flow: Axis SVG Overlay editor gained a visual editor in the preview. A toolbar inserts shapes (rect, circle, ellipse, line, text); clicking a shape selects it and shows a Properties panel where you can edit its attributes (typed fields, dropdowns for things like text-anchor, color swatches for fill / stroke), edit text content, and add common properties it doesn't have yet. Selected shapes can be dragged to move, resized with handles (line endpoints too), reordered (bring to front / send to back), duplicated, and deleted (Delete key). Empty templates start from a blank canvas. All edits are minimal source splices, so {{ }} expressions and {{#each}} / {{#if}} blocks are never touched (elements inside loops or driven by expressions are read-only in the visual editor).
  • I: Flow: Axis SVG Overlay editor gained a Beautify button (next to the variable counter) that re-indents the SVG template. It is template-aware: {{ }} expressions, {{#each}} / {{#if}} blocks, attribute values and XML entities (&lt;) are preserved exactly, and {{#each}} / {{#if}} bodies are indented.
  • F: Flow: New JSON to Flat node. Flattens a nested JSON object into one typed output per leaf, using dot-notation names (e.g. user.address.city). Paste a sample JSON and the node auto-detects each field's data type; you can override a type or paste new JSON and re-run. Arrays are emitted as a single string output (not expanded) so the node stays manageable.
  • F: Flow: Axis SVG Overlay now supports loops. {{#each list as item, i}} ... {{/each}} repeats a block once per element of a JSON array, so one template can render a dynamic list (live scoreboards, device lists, etc.). The collection is a single string input port holding JSON text; item / i are loop-local and do not become ports. Reach into each element with dot paths like {{ item.homeTeam.name }} and position each repeat using the index. Loops may nest and may contain {{#if}} blocks.
  • I: Flow: JSON to Node fixes. Pasting a new JSON now updates the outputs, the data type can be selected per key (with auto-detection on paste), and a key-relabel bug was fixed. JSON to Node and JSON to Flat now share the same parsing and type-inference logic.
  • I: Flow: Axis SVG Overlay editor now flags HTML-escaped markup (&lt;tag&gt;, common when pasting AI output) with a clear in-preview error and a one-click Fix automatically button. Escaping inside {{ }} expressions is left untouched.
  • I: Flow: Axis SVG Overlay expressions decode XML entities consistently, so &lt; / &gt; / &amp;&amp; behave the same inside {{ }}, {{#if}} and {{#each}} headers, matching the on-device renderer.
  • B: Flow: Axis SVG Overlay <tspan> text written across multiple source lines no longer renders stray boxes. Whitespace inside <tspan> is now collapsed (newlines / indentation to single spaces) the same way as <text>.
  • I: Flow: JSON to Flat, JSON to Node and Axis SVG Overlay nodes were widened so long dot-notation / key names fit.
V3.6.13 - 17.06.2026
  • F: Flow: SQL Table Read time-bucket downsampling. Add a GROUP BY time bucket (10 s up to 7 d) with a per-column aggregation (min / max / avg / sum / count) to cut the number of points returned for charts. Works on SQLite, MySQL, PostgreSQL and SQL Server using per-driver epoch-floor SQL; the generated query is shown in the node properties.
  • F: Flow: SQL Table Read Raw (no bucketing) option per value series. A column flagged raw is returned at its exact timestamps (via UNION) while the other columns stay bucketed. Useful for boolean markers / events you want to see at the precise moment alongside downsampled metrics.
  • F: Dashboard: Chart Timestamps are UTC option. When timestamps are stored in UTC, enable this to display them in the browser's local time instead of treating them as already-local.
  • B: Dashboard: Chart zoom no longer jumps back in live mode. The chart options are now reference-stable, so incoming data keeps the current zoom / pan.
  • I: Dashboard: Chart annotations are now stable across updates and the time unit is auto-optimized for the visible range.
V3.6.12 - 09.06.2026
  • F: Parking Management: Manual add gained Name, Car Type, Car Color, Country and Region fields (with a country color dot), plus a Manual Exit action for parked vehicles. Added validation for manually entered plates and fixed the camera selection when adding from the plate log.
  • F: Parking Management: New per-zone custom fields and a visual zone editor for configuring zones and viewing/entering those fields in the live view and history.
  • I: Parking Management: Zone configuration moved behind a per-zone cog button, with column selectors and clearer field names.
  • I: Parking Management: Plate Log gained a Duplicate hide toggle to collapse repeated reads, and the tooltip position was fixed.
  • I: Parking Management: The retention sweep (old entries, their snapshot files and the snapshot disk cap) now runs hourly instead of once a day, so cleanup is more prompt and each sweep is smaller.
  • B: Parking Management: Manually adding an already-parked vehicle no longer leaves a stale overtime tag.
  • B: Parking Management: Fixed zone / entry deletion.
V3.6.11 - 28.05.2026
  • F: License Plate List: New per-plate Blocked flag. Blocked plates are denied entry like unknown plates (an unauthorized entry row is recorded, the email notification and IO rules fire), unlike the existing Ignore flag which silently drops the detection. Useful for explicitly banned vehicles where you still want a paper trail.
  • F: Parking Management: PM_<zone>_Detection event now carries a tri-state state field (0 = not allowed, 1 = allowed, 2 = blocked) alongside the existing allowed bool, so downstream systems can distinguish "unknown plate" from "explicitly blocked plate" without losing backwards compatibility.
  • F: Parking Management: New per-zone Lane Traversal Time setting for single-lane setups with a dedicated entry camera before the barrier and a dedicated exit camera after it (both facing away from the barrier). Within the configured window after an entry, an exit detection of the same plate is treated as the partner camera's rear view of the same car and ignored; the reverse also holds within the window after an exit. Set to 0 to disable. Typical lane: 5 to 15 seconds. Only shown when the zone has both a dedicated entry and a dedicated exit camera.
  • I: License Plate List: CSV import and export now include ignore and blocked columns.
  • B: Parking Management: CarID parsing failed with strconv.ParseInt: value out of range once camera IDs grew past the int32 range (over 2,147,483,647).
  • B: Parking Management Zones: Remove Device in the Devices dialog (opened from the Zones / Access tabs) now shows a confirmation dialog and actually deletes the device. Previously the click emitted an event that the host did not handle, so nothing happened.
  • I: Parking Management Zones: Settings row label centering fixed.
V3.6.7 - 26.05.2026
  • B: Flow: Removing a second or any additonal flow, does not auto switch to an existing one in UI.
  • I: Flow: Persistent edge mode, per default now its simple edge mode.
  • I: Flow: Add PTZ Controller Events to Metadata subscribe
V3.6.6 - 25.05.2026
  • B: Flow: Json to Node was writing the first parsed key into an unused Error output slot, shifting every dynamic key by one and silently dropping the last one. Removed the dead Error output so the backend slice indexes line up with the front-end again. Same bug existed in the Add Json to Node dialog (used when first creating the node from the palette) and is fixed too.
V3.6.5 - 23.05.2026
  • F: Flow: New OPC UA Multi Read and OPC UA Multi Write nodes. Batch many OPC UA node IDs into a single request, with one value output per item (Multi Read) or one value input per item (Multi Write). Much faster than chaining several single Read/Write nodes when polling or pushing many tags at once.
  • I: Flow: OPC UA heartbeat is now async with a 1500 ms timeout and runs single-flight. A hung OPC UA server can no longer block the flow execution thread, and disconnects are picked up faster (heartbeat interval lowered to 1 s).
  • B: Flow: OPC UA Read / Multi Read no longer return stale cached values. MaxAge is now 0, so every Read pulse fetches the current server value.
  • I: Flow: Axis SVG Overlay node properties dialog reworked. Larger editor pane, more SVG snippets, expanded inline help and AI-prompt section.
  • B: Flow: Axis SVG Overlay preview canvas fix.
V3.6.4 - 22.05.2026
  • B: Overlay service: Listener close detection rewritten, fixing cases where the overlay service could fail to exit cleanly on shutdown.
V3.6.3 - 22.05.2026
  • B: CI: Fix overlay binary not being shipped in the built ACAP.
V3.6.2 - 21.05.2026
  • F: Parking Management: New combined Detection event per zone (stateless ACAP event). Fires on every plate read with plate, plateName, allowed, inList, tags, camera and the LPV plate crop (base64), so downstream systems get one unified feed instead of having to stitch Entry / Unauthorized events together.
  • I: Parking Management: plateName is now included in the Entry / Exit / Overtime event payloads.
V3.6.1 - 21.05.2026
  • F: Flow: New Axis SVG Overlay node. Draws an SVG graphic onto the camera image. {{ name }} placeholders in the SVG become inputs on the node, so flow values can update the picture live. Supports if/else blocks for conditional graphics and simple math/comparison inside placeholders.
  • F: Flow: The Axis SVG Overlay node has a full-screen SVG Editor with a live preview and a built-in AI prompt. Paste it into ChatGPT or Claude, describe the overlay you want, and paste the result back.
  • F: Settings: New Overlay tab to turn the overlay service on or off. The Apply button shows a spinner while the service starts or stops and refreshes the status automatically.
V3.5.2 - 08.05.2026
  • I: Flow: Add List Iterator
  • B: Flow Dashboard: Fix Weather and Youtube Issue regarding to external request from axis webserver (CSP)
V3.5.0 - 05.05.2026
  • F: Spot Color Detector: New Color Rules. Each profile can define up to 12 named rules, each watching one circle or rect for up to 4 palette colors. Every rule emits two AXIS events — a persistent state event (one bool per color, plus unknown) and a one-shot trigger event — so you can wire "while red, close IO" and "when it turns red, send a notification" separately in the rule engine.
  • C: Spot Color Detector: The color palette is now per profile instead of feature-wide. Existing single-palette configs are migrated into each profile on first load.
  • I: Spot Color Detector: Palette colors and circle/rect regions can no longer be deleted while a Color Rule references them — a toast shows which rule is in the way.
  • I: Spot Color Detector: All AXIS events are now prefixed with Spot Color - in their nice name so they are easier to find in the device event browser.
V3.4.4 - 05.05.2026
  • F: Gauge Reader: Add FPS setting
V3.4.3 - 04.05.2026
  • F: Gauge Reader: New Auto detection mode. The reader now runs all four detection methods (Edge, Dark, Color, Contour) on every frame and picks the one that gives the strongest, most agreed-upon answer. If two or more methods land on the same angle, that becomes the reading. Best choice when lighting or gauge conditions are unpredictable, or when you don't want to commit to a single method. Costs a bit more CPU but on a typical analysis interval the difference is invisible.
  • I: Gauge Reader: Dark mode now handles faded and low-contrast gauges. Previously a faint needle on a slightly lighter dial could go undetected; the reader now figures out the right cutoff from the actual brightness range of the dial instead of assuming a fixed gap.
  • B: Gauge Reader: Auto-calibrate now saves the result immediately. Before this fix, clicking Auto-calibrate updated the live preview but the new settings were lost on the next service restart — making it look like Auto-calibrate "didn't do anything" later. No more separate Save click is needed for Auto-calibrate.
  • I: Gauge Reader: Help dialog updated. The Detection modes section now lists all five modes (Auto, Edge, Dark, Color, Contour) with one-line guidance for each, and notes that Auto-calibrate persists immediately.
V3.4.2 - 04.05.2026
  • I: Gauge Reader: MIN / MAX angle handles redesigned. The old circles at the outer ring (which covered the printed scale) are replaced with a small pill-shaped chip sitting just above the centre of each radial line, oriented along it. The MIN / MAX label is centered on the chip and auto-flips when the angle would otherwise render upside-down (e.g. MIN at -135°). The dial face stays free of UI chrome.
  • I: Gauge Reader: Help dialog gained a Sweep handles section explaining the pivot, MIN / MAX chips and inner / outer ring dots, including that handles only appear on the active gauge.
  • B: Gauge Reader: In fullscreen the SVG overlay no longer drifted away from the underlying video. Added the same :fullscreen CSS that Color Trigger has so the stream stretches to the viewport instead of being capped at max-height: 70vh, keeping gauge geometry pixel-aligned with the video in both modes.
V3.4.0 - 04.05.2026
  • F: Spot Color Detector & Gauge Reader: Multi-profile support. Each feature can now run up to 4 independent profiles in parallel, each with its own video channel, resolution, framerate, analysis interval, preview config and triggers/gauges. Switch between profiles via the chip selector at the top of the configuration column; add (+) or remove a profile inline.
  • F: Spot Color Detector & Gauge Reader: AXIS events are emitted per profile and now carry a profile_name data field. Combined event names are suffixed with the profile name (e.g. all_circles_state_profile_1, all_gauges_state_profile_1) so consumers can route them per stream.
  • F: Spot Color Detector: New in-app Help dialog (next to Fullscreen) covering profiles, triggers, color palette + hysteresis and event semantics.
  • I: Gauge Reader: Help dialog updated with a Profiles section.
  • I: Spot Color Detector: Layout reworked to a two-column expansion-panel form matching the Gauge Reader (Stream / Detection Settings / Color Palette / Status panels on the left, live overlay + action bar on the right).
  • I: Spot Color Detector & Gauge Reader: Profile switching now reconnects the live WebSocket immediately and clears the stale overlay shapes / live state so the user no longer sees the previous profile's circles/rects/gauges for ~5 s after switching.
  • I: Spot Color Detector & Gauge Reader: Preview FPS / delay knobs are now persisted into the active profile on save (previously they were tracked only in a UI buffer and lost on reload / profile switch).
  • B: Spot Color Detector: SVG rectangle group was not cleared when the video stream disconnected (only the circle group was) — stale rectangles could linger.
  • B: Spot Color Detector & Gauge Reader: mousemove / mouseup listeners attached to document during a drag are now removed in onBeforeUnmount, preventing a leak if the user navigated away mid-drag.
  • C: Database: Auto-migration folds the legacy single-stream rows of color_trigger_features and gauge_reader_features into a profiles JSON column, then drops the old columns. Existing configurations are preserved as "Profile 1".
V3.3.2 - 02.05.2026
  • B: Flow: Compare node failed with unsupported input type int64 when wired to Int outputs from event-source nodes (e.g. Parking Management Exit/Overtime Duration Minutes, Zone Full count/capacity). The node now accepts int64 alongside int, float64 and numeric strings, with cross-type promotion in every direction.
  • I: Flow: Metadata Subscribe Int outputs now consistently emit int64 (matching the rest of the flow runtime) instead of flipping from int64 default to int after the first event.
V3.3.1 - 30.04.2026
  • F: Gauge Reader: New feature that reads analog gauge needles from the video stream and emits AXIS events with the numeric value. Each gauge is configured with a pivot, search ring (inner / outer radius), angular sweep and value range.
  • F: Parking Management: New per-zone Free Flow Plate Match setting (Strict, 1 char, 2 chars). In free flow mode the parked-entry lookup now tolerates OCR drift between entry and exit reads (e.g. ABC123 entered, ABC1Z3 leaving). Strict (default) keeps the previous exact-match behaviour. Falls back to "no match" when two parked plates tie at the same distance, so the wrong vehicle is never released.
  • I: Parking Management: Rejected-event debounce in free flow mode now also walks the recent-rejection map with the configured edit distance, so a single physical car producing two consecutive misreads no longer fires two unauthorized events.
V3.2.8 - 28.04.2026
  • F: Parking Management: Added a + Add Parked Vehicle button in the Live View's Parked Vehicles header. Opens a form (zone, plate, tag from the License Plate tag list, max parking minutes, entry time via VueDatePicker) that registers a vehicle which was already parked before the camera saw it, so its eventual exit gets matched. The plate is uppercased and the plate name is auto-resolved from the License Plate list. No IO actions, gates or events are fired. The entry time must fall inside the zone's stale-timeout window - older times are rejected so the stale sweeper doesn't immediately demote the new row.
V3.2.7 - 28.04.2026
  • F: Dashboard: Chart widget series can now be set to Vertical Marker, drawing full-height vertical lines for boolean events (e.g. heater on/off) on top of temperature lines. Per-series Series Type selector (Line / Bar / Vertical Marker) lets one chart mix multiple line/bar series with one or more bool marker series.
  • F: Dashboard: Vertical Marker series support Edges mode (separate rising/falling colors on each true↔false transition) or All True mode (a marker on every true sample), with configurable line width, line style (solid/dashed/dotted) and optional inline label.
  • I: Dashboard: Chart widget Auto-detect now recognises boolean-looking columns and pre-configures them as Vertical Marker series.
  • I: Dashboard: Chart widget renderer switched to a mixed Chart.js base so a single chart can render line, bar and marker series side-by-side. Existing chart configurations keep rendering unchanged (the previous chart-wide type becomes the default for newly added series).
V3.2.6 - 24.04.2026
  • I: Parking Management: Removed the 30‑second per-row DB update loop that rewrote every parked entry. With 1000+ parked vehicles this caused visible UI slowness and database is locked errors (notably during login). Durations are now computed on read and stay accurate across reboots.
  • I: Database: Enabled SQLite WAL mode with a 5s busy_timeout and synchronous=NORMAL. Concurrent readers no longer block against writers, and contending writers wait instead of failing immediately.
  • B: Color Spot Detector: Suppressed noisy failed to undeclare … event: No declarations have been registered errors emitted when the ACAP event handler is already torn down on shutdown/reload. Undeclares are now guarded and demoted to debug-level.
  • F: Login: When the login page is served over plain HTTP, a warning banner and a Switch to HTTPS button are shown.
V3.2.5 - 22.04.2026
  • C: Parking Management: The Zone Full event type has been split into Zone Full Rising (fires once on the entry that crosses the capacity threshold) and Zone Full Falling (fires once when an exit drops the zone below capacity). Breaking: existing IO Rules with event_type = "zone_full" need to be re-saved as zone_full_rising, and device-side ACAP rules bound to the old PM_<zone>_Full event name must be rebound to PM_<zone>_FullRising.
  • F: Parking Management: New ACAP-only platform event PM_<zone>_CountChanged (payload: count, capacity) fires on every occupancy change. Not selectable in the Access Control UI - exposed only on the Axis event bus for external services/integrations.
  • F: Parking Management: The "Parked" stat chip in the Live View is now clickable and opens a per-zone breakdown dialog showing each zone's current count / capacity.
  • I: Parking Management: Rising-edge is now strictly a crossing event. It no longer re-fires on each additional entry while the zone is already full.
V3.2.4 - 21.04.2026
  • F: License Plate List: New per-plate Ignore toggle. Ignored plates bypass all Parking Management processing.
  • I: License Plate List: Plates flagged as ignored now show an "Ignored" chip in the plate table.
  • I: Parking Management: Live event log shows a new IGNORE badge for plate-ignored detections.
  • B: Fixed 401 errors on AXIS OS 11.x cameras - the Apache reverse proxy strips the Authorization header when the ACAP declares anonymous access. Tokens now travel in a custom X-Auth-Token header.
  • B: Manifest: Split reverseProxy into two apiPaths (ax_msf for HTTP, ax_msf_ws for WebSocket). AXIS OS 11 cannot register two rules on the same apiPath, which caused the whole app to return 404. WebSocket traffic is re-normalized to the main route on the backend.
  • F: First-boot: Setup now skips the legacy admin/admin login step. Opening the app on a fresh install goes straight to a "set admin password" form.
  • C: Removed the legacy "Default Credentials" hint dialog and the login_hint endpoint.
  • I: EULA Accept button now shows a loading indicator while the request is in flight.
V3.2.2 - 10.04.2026
  • F: Parking Management: Re-entry deduplication for cameras configured as "both" - quick re-reads are no longer misinterpreted as exits. Configurable per zone via "Re-entry Dedup Seconds" (0 = default 10s).
  • I: Parking Management: "Both" camera direction is now inferred from DB state (not-in-DB = entry, in-DB = exit); duplicate reads within the dedup window are emitted as duplicate/ignored events.
V3.2.0 - 31.03.2026
  • C: Removed legacy Multiple Occupancy feature (controller, model, routes, UI, and DB migration).
  • C: App now runs behind a reverse proxy. Internal TLS/bootstrap HTTP server removed.
  • I: Manifest: Added reverseProxy entries routing HTTP and WS traffic to the local app.
V3.1.21 - 27.03.2026
  • B: Flow Device: Snap/resolution queries were reading from the local device instead of the remote camera, causing wrong resolution lists. Now fetches resolution, rotation, and available resolutions directly from the remote device.
  • I: Flow: SQL Connection node help now includes DSN examples for PostgreSQL, MySQL, and SQL Server.
  • C: Flow: License Plate node output structure updated. Added Input Plate
  • B: Flow: Webhook node removed unused error output.
V3.1.19 - 23.03.2026
  • B: Spot Color Detector: Fixed color trigger state transitions so dark and black colors no longer get stuck as Unknown, and hysteresis now compares how much better the new live measurement matches instead of comparing palette colors to each other.
  • I Updated the UI to allow hysteresis to be disabled (0 = nearest color only) and clarified the setting text to match the actual behavior.
V3.1.18 - 15.02.2026
  • B: Flow Device: Fix RTSP password url escape.
  • I: Flow Device: Better Unauth message during save.
  • I: Rtsp Live Widget/Node: Better error messages.
V3.1.17 - 06.02.2026
  • I: Flow: SQL Table Read node now supports aggregations (SUM, AVG, MIN, MAX)
  • I: Flow: SQL Table node now supports retention policy, max entreies or per minutes
  • I: Flow: SQL Table node now works in async mode
  • I: Flow: SQL Table Read node now works in async mode
  • I: Flow Dasboard: Gauge Widget custom segments
  • B: Flow Dasboard: Mutliple flow nodes display not work correctly
V3.1.15 - 03.02.2026
  • F: Parking Management: Email notifications for overparking events
  • F: Parking Management: Free Flow possibilty
  • I: Dashboard: Chart widget auto-adjusts time unit when data range exceeds configured unit limits
  • B: Dashboard: Chart widget no longer crashes when timestamps span large time ranges
V3.1.14 - 02.02.2026
  • I: Ship html files dedicated and not embeeded in binary to reduce memory footprint.
  • C: Update open source depenencies
  • C: Flow: Refactor loading states
  • B: Parking Management: Show Port Name instead of Port Index in action overview
  • B: Flow Dasboard: Layout CSS Fix
V3.1.11 - 29.01.2026
  • C: Flow: Unified Modbus node replaces the 9 separate Modbus nodes (TCP Client, Read/Write Coil, Int, Float, String)
  • B: Flow: Multiple node errors at once, leads into slowing down flow, because of log writing at high rate.
V3.1.10 - 28.01.2026
  • F: Settings: Backup & Restore feature for exporting and importing all configuration data
  • F: Settings: Automatic daily backup with configurable time
  • F: Flow: Localhost API bypass - HTTP nodes can now call local API endpoints without authentication
  • B: Flow: Fixed HTTP node state being reset when license plates were modified (flow no longer restarts on plate changes)
  • B: Parking Management: Fixed invalid port usage in event connection.
  • I: Flow: Added panic recovery with stack trace logging to flow execution
  • C: License Plate List: Modifying plates/tags no longer affects running flows; recreate License Plate nodes to use new tags
V3.1.9 - 27.01.2026
  • F: Parking Management: IO Actions can now be configured to show on specific cameras ("Show on cameras" setting)
  • F: Parking Management: Camera live preview dialog now displays IO action buttons for configured actions
  • B: Parking Management: Fixed plate events not being sent to all connected browsers (was only sending to one random client when multiple browsers were open)
  • B: Flow: Modbus operations now use timeout wrapper (2s) to prevent blocking the flow when device is unresponsive
  • B: Flow: Modbus heartbeat checks are now async to avoid blocking the flow execution
  • I: Flow: Modbus error detection improved to distinguish network errors from protocol errors (only reconnects on actual connection loss)
V3.1.8 - 23.01.2026
  • I: Parking Management: Added embedded Plate List tab for managing license plates directly within Parking Management
  • I: Parking Management: Help dialogs for Zone configuration, IO Port Actions, and Event Rules
  • I: Parking Management: Devices button in toolbar for quick access to device management
  • I: Parking Management: Consistent section styling across all tabs (header/content layout)
  • I: Parking Management: Live view top bar now shows zone capacity per zone, overtime count, and utilization percentage
  • I: Parking Management: Plate Log improvements - ID column, better column layout, help dialog with event state explanations
  • I: Parking Management: Parked Vehicles improvements - header row, combined Duration/Progress into "Parking" column, help dialog
  • I: Parking Management: Zone panels redesigned from expansion panels to section layout
  • I: Parking Management: Tags automatically refresh when leaving Plate List tab
  • I: Parking Management: Added Zone Full and Unauthorized event types for IO Rules
  • C: Parking Monitor: Removed because now parking managment do this.
V3.1.6 - 22.01.2026
  • I: Parking Management: Camera offline status now shows red indicator instead of gray
  • I: Parking Management: Real-time camera connection status updates when cameras disconnect/reconnect
  • I: Parking Management: Devices sorted by ID for stable UI ordering
  • I: Parking Management: Plates show correct tags for "exit without entry" events
  • B: Parking Management: Fixed CSS overflow - zones can now scroll properly when expanded
  • B: Parking Management: Fixed plate date validation (FromDate/ToDate now checked)
  • B: Parking Management: Fixed zone full behavior - entries are now created even when zone is full
  • B: Parking Management: Fixed multi-zone camera support - events processed for all zones
V3.1.5 - 21.01.2026
  • F: Parking Management: New standalone feature for comprehensive parking lot management
  • F: Dashboard: Media Image widget for displaying static images from SD card media folder
  • F: Dashboard: Media Video widget for looping videos from SD card media folder
  • F: Dashboard: YouTube widget for embedding YouTube videos
  • F: Dashboard: Clock widget for displaying time with timezone support
  • F: Dashboard: Markdown widget for formatted text display
  • F: Dashboard: Weather widget for current weather using Open-Meteo
  • B: WebSocket: Fixed server-side connection leak - connections now properly close when client disconnects
  • I: Notification Service: Replaced custom buttons with Vuetify components for consistency
  • I: Notification Service: Ring time validation extended from 5-30 to 5-60 seconds
  • I: Logging: All WebSocket-related messages changed from INFO to DEBUG level
V3.1.3 - 15.01.2026
  • B: ParkingTimes: Fixed WebSocket connection not closing on component unmount (memory leak)
  • B: OccupancyMultiple: Fixed WebSocket connection not closing on component unmount (memory leak)
  • B: Spot Color Detector: Fixed endless loading state when restarting with no triggers configured
V3.1.1 - 14.01.2026
  • F: Restored: Notification Service feature for SMS/Voice alerts via Seven.io, SMSEagle, and Teltonika
  • F: Restored: Occupancy Monitor feature for multi-zone occupancy counting
  • F: Restored: Parking Times feature for license plate parking duration tracking
  • F: Restored: Sunrise & Sunset Events feature for location-based daylight events
  • I: Spot Color Detector: Added drag handle to circle/rect menus for repositioning
  • I: Occupancy Monitor: Configuration panel hidden for users with read-only permission
  • I: Parking Times: Configuration panel hidden for users with read-only permission
V3.0.9 - 13.01.2026
  • F: Settings: User management now supports Default Dashboard and Allowed Dashboards per user
  • F: Dashboard: Export and Import dashboards via More menu (for users with edit permission)
  • I: Settings: Delete confirmation dialogs for users and roles
  • I: Settings: Users now have single role instead of multiple roles
  • I: Settings: Username duplicate validation on user creation
  • I: Flow: Parking Monitor node properties reorganized into logical sections (Overstay Detection, Data Cleanup, Exit Cleanup)
  • C: Flow: Parking Monitor date format changed to German format (DD.MM.YYYY HH:MM:SS)
  • I: Dashboard: Table widget date renderer now supports both German and ISO date formats
  • B: Dashboard: String Input widget fixed race condition where server updates could overwrite user input while typing
  • C: Dashboard: String Input widget value is now sent only on Enter key or clicking away (not on every keystroke)
  • F: Dashboard: String Input widget added Style option (Outlined, Filled, Underlined, Solo, Solo Filled, Plain)
  • C: Device Discovery: Devices are no longer auto-selected when global credentials are entered, users must manually select devices to add
V3.0.8 - 11.01.2026
  • B: Flow: Cache node now correctly serializes values (was showing empty objects)
  • B: Flow: JSON Get/Set/Remove nodes now correctly pulse done only on rising edge (was stuck true)
  • I: Video Components rewritten to use webcodecs instead of webrtc to elimintate NAT (Spot Color, Metadata Trigger, Flow AXIS Live Stream, Dashboard Live Stream)
  • I: Logging: WebSocket close errors (1000/1001) now logged at DEBUG level instead of ERROR
  • I: Logging: WebCodecs ping/write errors now logged at DEBUG level
V3.0.7 - 09.01.2026
  • F: Settings: New "UI" tab with configurable toast message position and duration
  • F: Dashboard: Table widget now supports optional CSV export button
  • F: Dashboard: Table widget now supports optional search field for filtering rows
  • B: Flow: SQL Connection node no longer reconnects every cycle (fixed 2-3ms idle overhead)
  • B: Flow: Fix JSON float64 to int type conversion in rtmp node
  • F: Flow: Parking Monitor Exit plate delete input and methods added
  • B: Flow: Parking Monitor auto timer operations with same interval no longer block each other
  • B: Flow: Parking Monitor input index alignment after Label input was added
  • B: Flow: Teleporter node copy now correctly copies hidden edges
  • B: Discovery: Auth detection now tries HTTPS first to correctly detect "Recommended" auth policy on newer Axis devices
V3.0.6 - 09.01.2026
  • I: Dashboard: AXIS Live Stream widget now shows errors in display area instead of toast notifications
  • B: Flow: Fix RTSP URL generation for credentials containing special characters
V3.0.4 - 08.01.2026
  • F: Flow: Add label support for license plate list entries
  • I: Security: Rate limiting for login attempts
  • I: Security: Enhanced password change validation
  • I: Auth: Loading state for authentication initialization
  • C: Flow: Removed IntroductionDialog and tutorial videos (moved to YouTube channel)
  • F: Flow: Multi-flow support with tabbed interface (run multiple flows simultaneously)
  • F: Flow: Add manual Save button to toolbar (in addition to auto-save on run)
  • F: Flow: Add Channel Publisher/Subscriber nodes for cross-flow communication
  • F: Flow: Add Analytics Metadata node
  • F: Flow: Add Tags input to Parking Monitor for categorizing entries
  • F: Dashboard: Add Static Text widget for labels and headers (no node required)
  • F: Dashboard: Add String Input widget for text entry controls
  • F: Spot Color Detector: Add Rectangle triggers for flexible region placement (handles lens distortion)
  • F: Spot Color Detector: Add combined platform events (all_circles_state, all_rects_state) with individual color fields per trigger
  • I: Flow: Save confirmation toast notification
  • C: Removed legacy Parking Times feature (use Parking Monitor node instead)
  • B: Flow: Composites does not respect static input nodes.
  • B: Flow: Composites parameter change not worked correctly.
V2.6.6 - 05.01.2026
  • F: Spot Color Detection Added
  • I: Flow: Add OPC UA Nodes
  • I: Flow-Dashboard: Add Button Widget
V2.6.4 - 02.01.2026
  • B: Flow: Map Set one cycle output fix
  • B: Flow: Using AXIS Output Node with an IO Modul
  • F: Flow: Add Collection Create Nodes
  • C: Flow: License Plate Node emits now only for one cylce
  • C: Flow: Remove raw json output from event subscribe node
  • I: Flow: Rework Node Tags
  • I: Flow: Add Space Key Bindings to open Node dialog
V2.6.3 - 31.12.2025
  • F: Flow: Add Video Source Event types for subscribe
  • B: Flow: Source and data keys fix
  • I: Flow: Rework device management
  • I: Flow: Add device discovery
  • I: Flow: Add SQL Table and Read node

V2.5.0 - 25.12.2025
  • F: Dashboard: Multi-dashboard support with browser-like tabs (add, rename, delete dashboards)
  • F: Dashboard: New toolbar design with integrated tab management and action buttons
  • F: Dashboard: Fullscreen mode includes entire view, hides edit controls in Live mode
  • F: Dashboard: AXIS Live Stream widget now uses WebRTC for low-latency streaming
  • F: Dashboard: Stream statistics overlay (resolution, framerate, bitrate, codec, packets lost, jitter)
  • F: Dashboard: New dashboard feature for real-time data visualization with 8 widget types (Text, Number, Gauge, Bool State, Table, Chart, AXIS Live Stream, Image Gallery)
  • F: Dashboard: Chart widget bar thickness configuration for better visualization control
  • F: Flow: SQL Table node for visual table creation and data insertion without writing SQL
  • F: Flow: SQL Table Read node for visual query building with relative time filters (last 15m, 1h, 7d, etc.)
  • F: Flow: Modbus TCP Client node for industrial protocol connectivity
  • F: Flow: Modbus Read/Write nodes for Coil, Int, Float, and String data types
  • F: Flow: Collection nodes for List operations (Length, GetAt, SetAt, Push, Pop, InsertAt, RemoveAt, Contains, IndexOf, ForEach)
  • F: Flow: Collection nodes for Map operations (Get, Set, Remove, ContainsKey, Keys, Values, Merge)
  • F: Flow: Collection nodes for Set operations (Add, Remove, Contains)
  • F: Flow: String manipulation nodes (Concat, Replace, Split, Join, Trim, Lower, Upper)
  • F: Flow: Regex nodes (Match, Replace, FindAll)
  • F: Flow: Encoding nodes (Base64 Encode/Decode)
  • F: Flow: Image Cache nodes (Info, Delete) for in-memory image management
  • F: Flow: JSON utility nodes (Parse, Get, Set, Remove, Validate, Placeholder JSON)
  • I: Flow: Multi-database support for SQL nodes (SQLite, MySQL, PostgreSQL, SQL Server)
  • I: Flow: SQL nodes now use local time instead of UTC for timestamp columns
  • I: Documentation: Comprehensive updates for all new node categories and Dashboard feature
  • I: Documentation: SQL Table and SQL Table Read nodes with visual query examples
  • I: Documentation: Full SQLite tutorial with database creation, queries, and practical examples
  • I: Documentation: Input nodes, Seven Segment display, and detailed HTTP Request configuration

V2.4.5 - 22.12.2025
  • I: Flow: Add WebRtc Node
  • I: Flow: Add Rtmp Stream Node
  • B: Flow: Fix fast Node drag not work from node selector
  • B: Fix Redirect on same page not work correctly

V2.4.1 - 21.12.2025
  • F: Flow: Added the node test harness that runs Axis, HTTP/Webhook, SD card, TCP, and SQL nodes locally, plus the TCP Server/Sender nodes, Axis SD-Card helpers, and SQL CRUD nodes so developers can verify behavior before runtime.
  • I: Switch from reverse proxy mode into full reachable webserver mode, what includes seperate user and role/permission system to have control about non admin user tasks in webui.
  • C: Removed features: Metadata Dispatch and Occupancy Counting no longer ship with this release.

V2.2.6 - 16.12.2025
  • F: Flow: Added the Axis Parameter node so flows can read any AXParameter key as a string and publish both the value and any ParamHandler error.

V2.2.5 - 15.12.2025
  • F: Flow: Added the TCP Server node for raw TCP listeners (New Message pulse, message/error outputs, per-second rate limiting), plus the TCP Message Sender that triggers on a rising send input and reports success/error.
  • F: Flow: Added the Webhook Listener node (HTTP/HTTPS with Basic/Digest auth, JSON responses, configurable query-param outputs, and a one-cycle New Request pulse) and documented the JSON response contract in the Flow guide.

V2.2.3 - 14.12.2025
  • B: Flow: Axis RTSP stream node validation now checks correctly to avoid rejecting valid configurations.
  • I: Flow: Axis RTSP stream node now validates and displays custom width/height settings, offers a custom-resolution picker, resyncs the stream when the provider client is removed, and logs frame-provider tear-downs to surface streaming issues more clearly.
  • I: Flow: Realigned the image-routing helpers with the cached JPEG store so the HTTP fetch routes and the embedded JPEG viewer stay in sync with the shared memory layer.

V2.2.0 - 12.12.2025
  • F: Flow: Added the Scene Analysis Triggers feature (metadata_trigger) with backend helpers, live VdoLiveStream, SVG overlays, editable area/line triggers, bounding boxes, direction markers, filter controls, WebSocket metadata, and event hooks that persist the trigger definitions.
  • F: Flow: Introduced the JsonList node plus column-management UI for splitting array payloads into per-column outputs.
  • I: Flow: Refactored Vaxtor Cloud ANPR outputs into structured metadata (plate, vehicle, confidence, status) and emit an Image ID so downstream viewers can load cached snapshots without moving the JPEG bytes over WebSocket.
  • I: Flow: Polished the metadata-triggers visualization helpers with cross-line tracking, ROI conversions, and smoother highlight/update logic for the overlay controls.

V2.1.5 - 09.12.2025
  • I: Flow: Add Composite Nodes
  • I: Flow: Add Teleport Nodes
  • I: Flow: UI Improvement

V2.1.2 - 06.12.2025
  • F: Flow: Added edge value muxer
  • B: Flow: Fix invalid port usage of rtsp port