Logic Machine Forum
VRV STATUS VIA BACNET - Printable Version

+- Logic Machine Forum (https://forum.logicmachine.net)
+-- Forum: LogicMachine eco-system (https://forum.logicmachine.net/forumdisplay.php?fid=1)
+--- Forum: Scripting (https://forum.logicmachine.net/forumdisplay.php?fid=8)
+--- Thread: VRV STATUS VIA BACNET (/showthread.php?tid=5151)



VRV STATUS VIA BACNET - imprashant - 13.12.2023

Hi I am trying to control the VRV System from logic machine via Bacnet.
I am able to send the command to the AC from Lua Script. But I am not able to get the status (ON/OFF, set temp etc.)
I need to get the status whenever the value changes from Logic Machine or Ac Remote. I am using LM as a Bacnet server.

I am using this event based script to set temp

require('bacnet')
_value = grp.getvalue('3/2/4')
bacnet.write(4194300, 'analog value', 17930, _value)


RE: VRV STATUS VIA BACNET - Daniel - 13.12.2023

You are using bacnet client script so you cannot be bacnet server.
Use direct communication script if you use multiple event scripts.
Code:
require('bacnet')

-- read from 192.168.0.21, device id 21
bacnet.deviceip = '192.168.0.21'
val1 = bacnet.readvalue(21, 'binary value', 2049)
val2 = bacnet.readvalue(21, 'binary value', 2050)
val3 = bacnet.readvalue(21, 'binary value', 2051)
log(val1, val2, val3)
For reading use single resident script.
Use Yabe to check parameters of object you want to read.


RE: VRV STATUS VIA BACNET - imprashant - 14.12.2023

(13.12.2023, 08:15)Daniel Wrote: You are using bacnet client script so you cannot be bacnet server.
Use direct communication script if you use multiple event scripts.
Code:
require('bacnet')

-- read from 192.168.0.21, device id 21
bacnet.deviceip = '192.168.0.21'
val1 = bacnet.readvalue(21, 'binary value', 2049)
val2 = bacnet.readvalue(21, 'binary value', 2050)
val3 = bacnet.readvalue(21, 'binary value', 2051)
log(val1, val2, val3)
For reading use single resident script.
Use Yabe to check parameters of object you want to read.

Thank You. How can I write the log values to the group address only if there is a change in value?


RE: VRV STATUS VIA BACNET - admin - 14.12.2023

Use this:
Code:
grp.checkwrite('1/1/1', val1)
grp.checkwrite('1/1/2', val2)
grp.checkwrite('1/1/3', val3)

If needed, you can specify the minimum difference for writing. See docs for more info: https://kb.logicmachine.net/libraries/lua/#grpcheckwritealias-value--delta--status