Description
This example shows how to convert values of Datapoints between different units e.g.(from Watt to KW). The conversion can be handled with LUA function. The output value can be written to any selected item(Virtual items or VAR\Real items). The function reads the incoming values and converts them into any related measurement.
Creating a new LUA function
First, we will create a new LUA function which verify the item value and sends an e mail if it is out of limit. Within the toolbar of the NETx BMS Core Studio, click on the "Edit Script" button.
Afterwards, you can select the "nxaDefinitions.lua" to open the main LUA file. Paste in the following code at the end of the file:
function converter() local var=nxa.GetValue(nxa.SourceItemID()) local cal= var/1000 --conversion factor e.g. (1000 W will convertet to 1 Kw) nxa.SetDestinationValue(cal) end
After having finished the LUA implementation, save LUA function and restart the LUA engine using the buttons within the toolbar of the LUA script editor.
Next, define a server task that is triggert upon changes of the source item, "NETx\XIO\BACnet\NetXBACnet\Electricity_usage\Electricity_usage" – That is, to send data the LUA function is invoked: the source item value is converted into Kw and sent to the Destination Item "NETx\VAR\Real\Item001".
After having defined the your task, save the definition. Since the Task Definitions are live ones, they are automatically reloaded – a server restart is not necessary. Now test the new tasks. For the given example, any value of "NETx\XIO\BACnet\NetXBACnet\Electricity_usage\Electricity_usage" will converted and written to the "NETx\VAR\Real\Item001".
Article applies to the following products:
- NETx BMS Platform
- NETx Multi Protocol Server
- NETx BMS Server 2.0