﻿================================================================================
LORCOM - CHANGELOG
================================================================================
Firmware for LORCOM LoRaWAN Gateway.

Product name:    LORCOM
Product title:   LoRaWAN Gateway
Vendor name:     FIRVENA s.r.o.
================================================================================

================================================================================
2026-07-14 V1.1.0

This update is primarily related to the Values and the Device library.
In addition, it includes several other updates to the WebUI, BACnet interface and Modbus interface.
The most significant change in the WebUI is the "Add new" button and the form that opens when you click it.

--------------------------------------------------------------------------------
--- Values ---

Add support for units: a new param "u" (units), compatible with BACnetEngineeringUnits.
Make "st" optional, st=1 is used if omitted.

{
Details about the current format (* required, other optional):
  - i (index)*: Value index
  - t (type)*: Value type
  - u (unit): Unit of measurement, compatible with BACnetEngineeringUnits; default 95:no_units
  - st (step): MODBUS ONLY Parameter used for fixed-point encoding; default 1

"st" is used only in Modbus for decimal fixed-point encoding if the value type is "t" = 1:number
  - register = Int16(st*value), where st = 1, 10, 100, 1000 = 10^p, where p is the number of decimal places 0, 1, 2, 3
  - Example: input temperature => encoded temperature dec (hex) => decoded temperature
    +25.376 °C (st = 1; 10; 100) => +25; +254; +2538 (0x0019; 0x00FE; 0x09EA) => +25 °C; +25.4 °C; +25.38 °C
    -25.376 °C (st = 1; 10; 100) => -25; -254; -2538 (0xFFE7; 0xFF02; 0xF616) => -25 °C; -25.4 °C; -25.38 °C
}  

--- Values, WebUI ---

Add support for units: 
  - [Device > Values]: displays units in the "Current Value" column
  - Modbus CSV export: exports units in format `unit_code:unit_short_string` (e.g. `62:°C`)

Add a link "Value map" in [Device > Values] that points to [Device profile > Values]:
  - Use this link to quickly access the definition of values used for that device.

Fix race condition in [Device > Values] tab:
  - The state was not always restored correctly on tab open - sometimes the cached values were dropped.

--- Values, BACnet ---

Add support for units: uses "u" to set the Units property of BACnet objects.

--- Values, Modbus ---

Fix: omitting "st" was interpretted as st=0.

--------------------------------------------------------------------------------
--- DevLib ---

Add support for value map.

--- DevLib, WebUI  ---

Add support for value map:
  - [Add device profile > Use template]: take the value map from device library if available.
  - Mark the library profiles that contain value map with green color in the library search.

--------------------------------------------------------------------------------
--- BACnet ---

Add new settings for unique names of virtual BACnet device objects:
  - Gateway default name: `{modelName}_{deviceId}` -> LORCOM_1000
  - Application default name: `{modelName}_{appName}_{deviceId}` -> LORCOM_app-demo_1001, LORCOM_another-app_1002, ...
  - You can change the names by editing the template or by overriding the automatic name individually.
  - You can change device IDs with the "Device ID base" parameter or by overriding the automatic ID individually.

--------------------------------------------------------------------------------
--- WebUI ---

"Add new" button on the header bar: the main place for adding devices.
  - it is always at hand
  - it has a loop mode for adding devices one by one
  - remembers the last selected application and device profile (you don't have to reselect every time when adding multiple items)
  - remembers the unsaved changes when you close it (it's useful when you need to check something during editing)
  - unsaved form is marked with a red dot, you can clear the form using the "Cancel" button

Add server identity view to the header bar: Hostname, IP Address, Gateway ID (EUI).

CodeEditor component now supports Ctrl+S shortcut to save changes (DeviceProfile > Codec, Values).

================================================================================
2026-06-17 V1.0.0

This firmware introduces major improvements to Modbus interface and WebUI.
It also includes a preliminary version of the BACnet interface.

--- BACnet ---

Add BACnet interface:
  - It supports both uplink and downlink.
  - It uses the same value definitions as Modbus.
  - Only one application can have a BACnet server enabled.
  - Limited to 200 devices

--- Modbus ---

Add downlink interface for TX Values:
  - two send options available: 2:all_send_now, 4:single_on_write_any
  - fPort is taken from the definition of values in device profile (if not overriden by Codec)

--- WebUI ---

Improve Values UI under the [Device > Values] tab:
  - It emulates the BACnet and Modbus interface behavior, which is very useful for testing the device profile.
  - It shows all values and metavalues defined in the device profile.
  - It shows instance numbers of BACnet objects and addresses of Modbus registers if the BACnet/Modbus server is enabled for the parent application.
  - It allows to watch uplink data and send downlinks.
  - It fixes the false yellow flash that occured when the page was reloaded.

Create a link between [Device > Values] and [BACnet/Modbus tree view]:
  - [Device > Values]: the link below the table opens the BACnet/Modbus configuration of the parent application.
  - [BACnet/Modbus tree view]: you can open the [Device > Values] view by clicking on a device item in the tree.

Add BACnet settings to [WebUI > BACnet]:
  - the same tree view of applications and devices as in Modbus
  - port, device ID, object naming template

Add a restart button for refreshing BACnet or Modbus interface:
  - This button refreshes the BACnet/Modbus interface immediately.
  - It is useful if you add a new device or modify a device profile.

Update Modbus CSV export

================================================================================
2026-06-10 V0.18.0

--- System, Network ---

Add an SSDP responder to simplify access to the WebUI:
  - This change allows the gateway to be visible as a network device on the Microsoft Windows operating system in [File Explorer > Network].
  - SSDP stands for Simple Service Discovery Protocol, it is an alternative to mDNS.

================================================================================
2026-06-08 V0.17.0

--- WebUI ---

Extend the Logout button:
  - It cleares the session both on the browser and server side.
  - It turns the blue CONFIG LED off immediately.

--- System, Security ---

Require a password change on first login:
  - The user is prompted to create a unique password upon first login.
  - The normal use of the application is disabled until the password is changed.

Hide Node-RED behind Webserver:
  - Node-RED is now at http://lrgw.local/nodered
  - The same login as for WebUI is required.
  - The Node-RED session remains open until the browser is closed or the logout button is clicked in the WebUI.

================================================================================
2026-05-05 V0.16.1

--- System, Config ---

Modbus: fix broken Modbus configuration (no data in registers).

================================================================================
END
================================================================================