This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm that you accept these cookies being set.

Bacnet IP - Loytec LIP-ME201C
#1
Hello,

We are experiencing issues with BACnet communication between a LogicMachine and BACnet gateways (LOYTEC LIP-ME201C). We are using resident scripts to communicate with the BACnet devices.
We have two resident scripts running every 15 seconds, each reading values from a different BACnet/IP gateway (two separate BACnet/IP networks). At the moment, not all values are updating reliably.
At the same time, a Johnson Controls system is also using these BACnet gateways. The gateways are being used as BACnet MS/TP to BACnet/IP routers.

What is the best approach to read the BACnet devices and store the values into LogicMachine group addresses reliably?

Below is our current script for one BACnet gateway. The other script is similar, but for another building.
Code:
require('bacnet') Buitentemperatuur = bacnet.readvalue(189074, 'analog value', 13506) grp.write('3/2/0', Buitentemperatuur) -------------------------------------- ----Masterbathroom -------------------------------------- GemetenTemperatuurMasterBath = bacnet.readvalue(189072, 'analog value', 22043) log('GemetenTemperatuurMasterBath ' .. tostring(GemetenTemperatuurMasterBath)) log (GemetenTemperatuurMasterBath) grp.write('3/1/45', GemetenTemperatuurMasterBath) GewensteTemperatuurMasterBath = bacnet.readvalue(189072, 'analog value', 19607) grp.write('3/1/46', GewensteTemperatuurMasterBath) GewVerwarmenMasterBath = bacnet.readvalue(189072, 'analog value', 18325) grp.write('3/1/47', GewVerwarmenMasterBath) GewensteTemperatuurKoelenMasterBath = bacnet.readvalue(189072, 'analog value', 18319) grp.write('3/1/48', GewensteTemperatuurKoelenMasterBath) MomenteelVerwarmenKoelenMasterBath = bacnet.readvalue(189072, 'analog value', 18275) if (MomenteelVerwarmenKoelenMasterBath == 1) then   MomenteelVerwarmenMasterBath = true   MomenteelKoelenMasterBath =  false   grp.write('3/1/49', false)   KoelenVerwarmenMasterBath =  false elseif( MomenteelVerwarmenKoelenMasterBath == 3) then   MomenteelKoelenMasterBath =  true   MomenteelVerwarmenMasterBath = false   grp.write('3/1/49', true)   KoelenVerwarmenMasterBath =  true else   MomenteelKoelenMasterBath =  false   MomenteelVerwarmenMasterBath = false  end if KoelenVerwarmenMasterBath then   grp.write('3/1/53', GewensteTemperatuurKoelenMasterBath) else   grp.write('3/1/53', GewVerwarmenMasterBath) end grp.write('3/1/50', MomenteelVerwarmenMasterBath) grp.write('3/1/51', MomenteelKoelenMasterBath) RelatieveVochtigheidMasterBath = bacnet.readvalue(189072, 'analog value', 22460) grp.write('3/1/52', RelatieveVochtigheidMasterBath) -- wait for 1 second os.sleep(0.2) -------------------------------------- ----Masterbedroom -------------------------------------- VloerkoelingMasterBed = bacnet.readvalue(189074, 'multi-state value', 22823, 'present value') log (VloerkoelingMasterBed) grp.write('3/1/102', VloerkoelingMasterBed) GemetenTemperatuurMasterBed = bacnet.readvalue(189074, 'analog value', 22817) grp.write('3/1/0', GemetenTemperatuurMasterBed) GewensteTemperatuurMasterBed = bacnet.readvalue(189074, 'analog value', 18281) grp.write('3/1/1', GewensteTemperatuurMasterBed) GewVerwarmenMasterBed = bacnet.readvalue(189074, 'analog value', 18323) grp.write('3/1/2', GewVerwarmenMasterBed) GewensteTemperatuurKoelenMasterBed = bacnet.readvalue(189074, 'analog value', 18318) grp.write('3/1/3', GewensteTemperatuurKoelenMasterBed) MomenteelVerwarmenKoelenMasterBed = bacnet.readvalue(189074, 'analog value', 18279) if (MomenteelVerwarmenKoelenMasterBed == 1) then   MomenteelVerwarmenMasterBed = true   MomenteelKoelenMasterBed =  false   grp.write('3/1/4', false)   KoelenVerwarmenMasterBed =  false elseif( MomenteelVerwarmenKoelenMasterBed == 3) then   MomenteelKoelenMasterBed =  true   MomenteelVerwarmenMasterBed = false   grp.write('3/1/4', true)   KoelenVerwarmenMasterBed =  true else   MomenteelKoelenMasterBed =  false   MomenteelVerwarmenMasterBed = false  end if KoelenVerwarmenMasterBed then   grp.write('3/1/8', GewensteTemperatuurKoelenMasterBed) else   grp.write('3/1/8', GewVerwarmenMasterBed) end grp.write('3/1/5', MomenteelVerwarmenMasterBed) grp.write('3/1/6', MomenteelKoelenMasterBed) RelatieveVochtigheidMasterBed = bacnet.readvalue(189074, 'analog value', 22813) grp.write('3/1/7', RelatieveVochtigheidMasterBed) -- wait for 1 second os.sleep(0.2) -------------------------------------- ----Inkom 1v -------------------------------------- GemetenTemperatuurInkom1V = bacnet.readvalue(189072, 'analog value', 22811) grp.write('3/1/36', GemetenTemperatuurInkom1V) grp.write('3/0/0', GemetenTemperatuurInkom1V) GewensteTemperatuurInkom1V = bacnet.readvalue(189072, 'analog value', 18281) grp.write('3/1/37', GewensteTemperatuurInkom1V) GewVerwarmenInkom1V = bacnet.readvalue(189072, 'analog value', 18323) grp.write('3/1/38', GewVerwarmenInkom1V) GewensteTemperatuurKoelenInkom1V = bacnet.readvalue(189072, 'analog value', 18318) grp.write('3/1/39', GewensteTemperatuurKoeleInkom1Vn) MomenteelVerwarmenKoelenInkom1V = bacnet.readvalue(189072, 'analog value', 18279) if (MomenteelVerwarmenKoelenInkom1V == 1) then   MomenteelVerwarmenInkom1V = true   MomenteelKoelenInkom1V =  false   grp.write('3/1/40', false)   KoelenVerwarmenInkom1V =  false elseif( MomenteelVerwarmenKoelenInkom1V == 3) then   MomenteelKoelenInkom1V =  true   MomenteelVerwarmenInkom1V = false   grp.write('3/1/40', true)   KoelenVerwarmenInkom1V =  true else   MomenteelKoelenInkom1V =  false   MomenteelVerwarmenInkom1V = false  end if KoelenVerwarmenInkom1V then   grp.write('3/1/44', GewensteTemperatuurKoelenInkom1V) else   grp.write('3/1/44', GewVerwarmenInkom1V) end grp.write('3/1/41', MomenteelVerwarmenInkom1V) grp.write('3/1/42', MomenteelKoelenInkom1V) RelatieveVochtigheidInkom1V = bacnet.readvalue(189072, 'analog value', 22812) grp.write('3/1/43', RelatieveVochtigheidInkom1V) -- wait for 1 second os.sleep(0.2) -------------------------------------- ----Inkom GLV -------------------------------------- --GemetenTemperatuurInkom = bacnet.readvalue( 189071, 'analog value', 22464) --log('GemTemp InkomGLV ' .. tostring(GemetenTemperatuurInkom)) --log(GemetenTemperatuurInkom) grp.write('3/0/0', GemetenTemperatuurInkom) GewensteTemperatuurInkom = bacnet.readvalue(189071, 'analog value', 18281) grp.write('3/0/1', GewensteTemperatuurInkom) GewVerwarmenInkom = bacnet.readvalue(189071, 'analog value', 18323) grp.write('3/0/2', GewVerwarmenInkom) GewensteTemperatuurKoelenInkom = bacnet.readvalue(189071, 'analog value', 18318) grp.write('3/0/3', GewensteTemperatuurKoelenInkom) MomenteelVerwarmenKoelenInkom = bacnet.readvalue(189071, 'analog value', 18279) if (MomenteelVerwarmenKoelenInkom == 1) then   MomenteelVerwarmenInkom = true   MomenteelKoelenInkom =  false   grp.write('3/0/4', false)   KoelenVerwarmenInkom =  false elseif( MomenteelVerwarmenKoelenInkom == 3) then   MomenteelKoelenInkom =  true   MomenteelVerwarmenInkom = false   grp.write('3/0/4', true)   KoelenVerwarmenInkom =  true else   MomenteelKoelenInkom =  false   MomenteelVerwarmenInkom = false  end if KoelenVerwarmenInkom then   grp.write('3/0/8', GewensteTemperatuurKoelenInkom) else   grp.write('3/0/8', GewVerwarmenInkom) end grp.write('3/0/5', MomenteelVerwarmen) grp.write('3/0/6', MomenteelKoelenInkom) RelatieveVochtigheidInkom = bacnet.readvalue(189071, 'analog value', 22467) grp.write('3/0/7', RelatieveVochtigheidInkom) -- wait for 1 second os.sleep(0.2) -------------------------------------- ----Zwembad -------------------------------------- GemetenTemperatuurZwembad = bacnet.readvalue(189071, 'analog value', 22812) -- 09/02/2026 22043 => 22812 grp.write('3/0/9', GemetenTemperatuurZwembad) GewensteTemperatuurZwembad = bacnet.readvalue(189071, 'analog value', 19607) grp.write('3/0/10', GewensteTemperatuurZwembad) GewVerwarmenZwembad = bacnet.readvalue(189071, 'analog value', 18325) grp.write('3/0/11', GewVerwarmenZwembad) GewensteTemperatuurKoelenZwembad = bacnet.readvalue(189071, 'analog value', 18319) grp.write('3/0/12', GewensteTemperatuurKoelenZwembad) MomenteelVerwarmenKoelenZwembad = bacnet.readvalue(189071, 'analog value', 18275) if (MomenteelVerwarmenKoelenZwembad == 1) then   MomenteelVerwarmenZwembad = true   MomenteelKoelenZwembad =  false   grp.write('3/0/13', false)   KoelenVerwarmenZwembad =  false elseif( MomenteelVerwarmenKoelenZwembad == 3) then   MomenteelKoelenZwembad =  true   MomenteelVerwarmenZwembad = false   grp.write('3/0/13', true)   KoelenVerwarmenZwembad =  true else   MomenteelKoelenZwembad =  false   MomenteelVerwarmenZwembad = false  end if KoelenVerwarmenZwembad then   grp.write('3/0/17', GewensteTemperatuurKoelenZwembad) else   grp.write('0/0/17', GewVerwarmenZwembad) end grp.write('3/0/14', MomenteelVerwarmenZwembad) grp.write('3/0/15', MomenteelKoelenZwembad) RelatieveVochtigheidZwembad = bacnet.readvalue(189071, 'analog value', 22811)-- 09/02/2026 22467 => 22811 grp.write('3/0/16', RelatieveVochtigheidZwembad) -- wait for 1 second os.sleep(0.2) -------------------------------------- ----Leefruimte -------------------------------------- VloerkoelingLeefruimte = bacnet.readvalue(189073, 'multi-state value', 22829, 'present value') log (VloerkoelingLeefruimte) grp.write('3/1/100', VloerkoelingLeefruimte) GemetenTemperatuurLeefruimte = bacnet.readvalue(189073, 'analog value', 22043) grp.write('3/1/18', GemetenTemperatuurLeefruimte) GewensteTemperatuurLeefruimte = bacnet.readvalue(189073, 'analog value', 18281) grp.write('3/1/19', GewensteTemperatuurLeefruimte) GewVerwarmenLeefruimte = bacnet.readvalue(189073, 'analog value', 18323) grp.write('3/1/20', GewVerwarmenLeefruimte) GewensteTemperatuurKoelenLeefruimte = bacnet.readvalue(189073, 'analog value', 18318) grp.write('3/1/21', GewensteTemperatuurKoelenLeefruimte) MomenteelVerwarmenKoelenLeefruimte = bacnet.readvalue(189073, 'analog value', 18279) if (MomenteelVerwarmenKoelenLeefruimte == 1) then   MomenteelVerwarmenLeefruimte = true   MomenteelKoelenLeefruimte =  false   grp.write('3/1/22', false)   KoelenVerwarmenLeefruimte =  false elseif( MomenteelVerwarmenKoelenLeefruimte == 3) then   MomenteelKoelenLeefruimte =  true   MomenteelVerwarmenLeefruimte = false   grp.write('3/1/22', true)   KoelenVerwarmenLeefruimte =  true else   MomenteelKoelenLeefruimte =  false   MomenteelVerwarmenLeefruimte = false  end if KoelenVerwarmenLeefruimte then   grp.write('3/1/26', GewensteTemperatuurKoelenLeefruimte) else   grp.write('3/1/26', GewVerwarmenLeefruimte) end grp.write('3/1/23', MomenteelVerwarmenLeefruimte) grp.write('3/1/24', MomenteelKoelenLeefruimte) RelatieveVochtigheidLeefruimte = bacnet.readvalue(189073, 'analog value', 22813) grp.write('3/1/25', RelatieveVochtigheidLeefruimte) -- wait for 1 second os.sleep(0.2) -------------------------------------- ----Keuken -------------------------------------- VloerkoelingKeuken = bacnet.readvalue(189073, 'multi-state value', 22830, 'present value') log (VloerkoelingKeuken) grp.write('3/1/101', VloerkoelingKeuken) GemetenTemperatuurKeuken = bacnet.readvalue(189073, 'analog value', 22043) grp.write('3/1/27', GemetenTemperatuurKeuken) GewensteTemperatuurKeuken = bacnet.readvalue(189073, 'analog value', 19607) grp.write('3/1/28', GewensteTemperatuurKeuken) GewVerwarmenKeuken = bacnet.readvalue(189073, 'analog value', 18325) grp.write('3/1/29', GewVerwarmenKeuken) GewensteTemperatuurKoelenKeuken = bacnet.readvalue(189073, 'analog value', 18319) grp.write('3/1/30', GewensteTemperatuurKoelenKeuken) MomenteelVerwarmenKoelenKeuken = bacnet.readvalue(189073, 'analog value', 18275) if (MomenteelVerwarmenKoelenKeuken == 1) then   MomenteelVerwarmenKeuken = true   MomenteelKoelenKeuken =  false   grp.write('3/1/31', false)   KoelenVerwarmenKeuken =  false elseif( MomenteelVerwarmenKoelenKeuken == 3) then   MomenteelKoelenKeuken =  true   MomenteelVerwarmenKeuken = false   grp.write('3/1/31', true)   KoelenVerwarmenKeuken =  true else   MomenteelKoelenKeuken =  false   MomenteelVerwarmeKeukenn = false  end if KoelenVerwarmenKeuken then   grp.write('3/1/35', GewensteTemperatuurKoelenKeuken) else   grp.write('3/1/35', GewVerwarmenKeuken) end grp.write('3/1/32', MomenteelVerwarmenKeuken) grp.write('3/1/33', MomenteelKoelenKeuken) RelatieveVochtigheidKeuken = bacnet.readvalue(189073, 'analog value', 22460) grp.write('3/1/34', RelatieveVochtigheidKeuken) -- wait for 1 second os.sleep(0.2) -------------------------------------- ----Dressing -------------------------------------- Vloerkoeling = bacnet.readvalue(189074, 'multi-state value', 22824, 'present value') log (Vloerkoeling) grp.write('3/1/103', Vloerkoeling) GemetenTemperatuur = bacnet.readvalue(189074, 'analog value', 22043) grp.write('3/1/9', GemetenTemperatuur) GewensteTemperatuur = bacnet.readvalue(189074, 'analog value', 19607) grp.write('3/1/10', GewensteTemperatuur) GewVerwarmen = bacnet.readvalue(189074, 'analog value', 18325) grp.write('3/1/11', GewVerwarmen) GewensteTemperatuurKoelen = bacnet.readvalue(189074, 'analog value', 18319) grp.write('3/1/12', GewensteTemperatuurKoelen) MomenteelVerwarmenKoelen = bacnet.readvalue(189074, 'analog value', 18275) if (MomenteelVerwarmenKoelen == 1) then   MomenteelVerwarmen = true   MomenteelKoelen =  false   grp.write('3/1/13', false)   KoelenVerwarmen =  false elseif( MomenteelVerwarmenKoelen == 3) then   MomenteelKoelen =  true   MomenteelVerwarmen = false   grp.write('3/1/13', true)   KoelenVerwarmen =  true else   MomenteelKoelen =  false   MomenteelVerwarmen = false  end if KoelenVerwarmen then   grp.write('3/1/17', GewensteTemperatuurKoelen) else   grp.write('3/1/17', GewVerwarmen) end grp.write('3/1/14', MomenteelVerwarmen) grp.write('3/1/15', MomenteelKoelen) RelatieveVochtigheid = bacnet.readvalue(189074, 'analog value', 22460) grp.write('3/1/16', RelatieveVochtigheid) log("Doorlopen bacnetscript nieuwbouw - volledig")

When we log the last line, in the logs we see that it takes aproximatly 3min when the log is printed.

Kind Regards,
Gilles
Reply


Messages In This Thread
Bacnet IP - Loytec LIP-ME201C - by gilles@domica.be - 09.02.2026, 14:35
RE: Bacnet IP - Loytec LIP-ME201C - by admin - 09.02.2026, 14:36
RE: Bacnet IP - Loytec LIP-ME201C - by Daniel - 09.02.2026, 14:40
RE: Bacnet IP - Loytec LIP-ME201C - by Daniel - 11.02.2026, 17:16
RE: Bacnet IP - Loytec LIP-ME201C - by Daniel - 12.02.2026, 09:27

Forum Jump: