SatVUE Portal - LUA Fields
Lua/SatVUE Device Field Examples
Copy data from other SatVUE device
To copy a field from one SatVUE device to the current one, just return the lastest value from that device as the field's calculation Lua:
return getLatestValueFromDevice('AnotherSatVUE', 'Barometric')
Non-Vented Hydrostatic Water Level Sensor
In this example we calculate a device field value by subtracting the barometric pressure which provided as a previously calculated field and then calculate the water level from this pressure, from this pressure value. Pressures are in hPa, water level is in meters.
return (message_data['Hydrostatic'] - message_data['Barometric']) * 0.0101971621298
Or if the barometric pressure was provided by another SatVUE device.
local barometric = getLatestValueFromDevice('AnotherSatVUE', 'Barometric') return (message_data['Hydrostatic'] - barometric) * 0.0101971621298
Set a Digital Output
Turn on a pump by setting a digital output (on port 2) on this device, if the water level is too high:
if message_data['WaterLevel'] > 10 then setDigitalOutput(2, true) end
Set a Digital Output on Another SatVUE
Turn on a remote pump by setting a digital output (on port 2) on the Pump SatVUE device, if the water level is too high:
if message_data['WaterLevel'] > 10 then setDigitalOutputOnDevice('PumpSatVUE', 2, true) end
Using Previous Samples
Some calculations need to a set of data points in order to perform the calculation. To acheive this calling the function getPreviousValues() will retreive this data.
-- get the last 5 values of the Water Level field local values = getPreviousValues('Water Level', 5) for i,record in ipairs(values) do local epochTimestamp = record.timestamp local waterLevel = record.value -- if the sample was less than an hour ago if ((getEpochUTC() - epochTimestamp) < 3600) then -- return this water level as the value for this field return waterLevel end end -- No recent data was found, so return nil to drop the value return nil