| 
		
	
	
	
		
	Posts: 168 
	Threads: 12 
	Joined: Sep 2015
	
 Reputation: 
13 
	
	
		Hi, I have Mitsubishi Electric ME-200 device. it control all AC devices in my project. it connectedd to LM via Bacnet app
 I have abot 50 AC units and need to map about 10 variables for each.
 
 every map takes about 5 to 30 seconds after pressing "save"
 
 is there a way to make mapping automatic? or make "save" procedure faster?
 
		
	 
	
	
	
		
	Posts: 1807 
	Threads: 7 
	Joined: Jul 2015
	
 Reputation: 
121 
	
	
		I would never use 500 objects with the client, way to much…
 The client is intended for limited amount of objects like a heatpump or some other device you need to add.
 
 With your setup you should use a BMS as client and link it with BACnet server of the controller..
 
		
	 
	
	
	
		
	Posts: 168 
	Threads: 12 
	Joined: Sep 2015
	
 Reputation: 
13 
	
	
		 (21.11.2021, 21:24)Erwin van der Zwart Wrote:  I would never use 500 objects with the client, way to much… 
I think sometime i could reduce amount of variables. at least I need 4 or 5 per AC unit (on/off, mode, fan, 1 or 2 setpoints).
 
but you dont answer. is there a way to make it faster?
	 
		
	 
	
	
	
		
	Posts: 8413 
	Threads: 45 
	Joined: Jun 2015
	
 Reputation: 
481 
	
	
		You can use a script instead. But all communication (reading and writing) should be in a single resident script. Otherwise the communication can fail randomly if LM tries to read and write at the same time. If you need to read many objects at once you can use bacnet.scandevice():https://forum.logicmachine.net/showthrea...7#pid22457 
Since instant reaction is not needed for AC units you can do it like this: 
- Read current values from the AC unit, update status objects if needed 
- Compare status values with current control values in LM objects, write back to BACnet if values are different 
Keep in mind that setpoint values might have a slight difference due to how floating point numbers and handled so direct comparison might not work, use this:
 Code: if math.abs(control - status) > 0.1 thenwrite()
 end
		
	 
	
	
	
		
	Posts: 266 
	Threads: 39 
	Joined: Feb 2016
	
 Reputation: 
1 
	
	
		Hello, 
I have a problem on customer Building. 
I have setup communication with Air flow system Swegon with BAcnet Ip.
 
1/ My BIG PROBLEM  is that when I try to map knx object to Bacnet Object, it's very long time to linked them (60sec).  Then if I try to link a second one it doesn't work anymore. I saw that the SL reboot. So I try again and see that the Memory usage go very high, so it(s very painful to link other objetc, I need to wait, re-scan... and doesn't work everytime. 
2/ Is there a place where I can download the app for offline site ? The customer didn't give Internet access to Spacelynk in this building 
3/ In the Bacnet app view, is there a way to display the current value (add column). 
I used to deal with:
https://openrb.com/logicmachine-as-bacnet-client/ 
I installed the ipk, but looks like I can't anymore and can't use require bacnet library
	
-----------FRANCE SMARTHOME & SMARTBUILDING INTEGRATION
 SE ECO EXPERT
 
		
	 
	
	
	
		
	Posts: 168 
	Threads: 12 
	Joined: Sep 2015
	
 Reputation: 
13 
	
	
		it took me a few years, but i made this: Code: --таблица номеров пемещений, названий, id бакнетаlog('start bac mapping create')
 rooms = {
 {'CL.201_Лифтовый холл', 101},
 {'CL.204_Мастер спальня', 102},
 {'CL.205_Кабинет', 103},
 {'CL.206_Игровая', 104},
 {'CL.208_Коридор', 105},
 {'CL.210_Спальня девочек', 106},
 {'CL.213_Спальня мальчиков', 107},
 {'CL.216_Спальня ЕГ', 108},
 {'CL.111_Спальня мальчиков', 109},
 {'CL.110_Гостиная 1', 110},
 {'CL.110_Гостиная 2', 111},
 {'CL.102_Мастер кухня', 112},
 {'CL.108_Массажная', 113},
 {'CL.105_Холл', 114},
 {'CL.101_Тамбур', 115},
 {'CL.0.18_Сигарная', 117},
 {'CL.0.19_Кинозал', 118},
 {'CL.0.11_Гостевая 1', 119},
 {'CL.0.14_Гостевая 2', 120},
 {'CL.04_Кухня персонала', 121},
 {'CL.05.2_Спальня персонала 2', 122},
 {'CL.05.1_Спальня персонала 1', 123},
 {'CL.0.17_Постирочная', 124},
 {'CL.01_Коридор и комната отдыха', 125}
 }
 --таблица KNX переменных для панелей и актуаторов отопления
 KNX_t = {
 {'current temp', 'temperature', {'clim'}},
 {'setpoint', 'temperature', {'clim'}},
 {'setpoint', 'temperature', {'clim'}},
 {'room mode', 'switch',{'clim'}},
 {'fan speed', dt.uint8},
 {'heating value', 'scale'},
 {'heating manual', 'switch'}
 }
 -- 1: 'id ending'_'datatype number'
 bacnet_t ={
 {'01_4', 'binary output', 'switch', 'OnOffSetup'},
 {'02_3', 'binary input', 'switch', 'OnOffState'},
 {'03_3', 'binary input', 'switch', 'AlarmSignal'},
 {'04_13', 'multi-state input', dt.uint32, 'ErrorCode'},
 {'05_14', 'multi-state output', dt.uint32, 'OperationModeSetup'},
 {'06_13', 'multi-state input', dt.uint32, 'OperationModeState'},
 {'07_14', 'multi-state output', dt.uint32, 'FanSpeedSetup'},
 {'08_13', 'multi-state input', dt.uint32, 'FanSpeedState'},
 {'09_0', 'analog input', dt.float32, 'RoomTemp'},
 {'10_2', 'analog value', dt.float32, 'SetTemp'},
 {'24_2', 'analog value', dt.float32, 'SetTempCool'},
 {'25_2', 'analog value', dt.float32, 'SetTempHeat'},
 {'26_2', 'analog value', dt.float32, 'SetTempAuto'}
 }
 
 -- создаем все адреса и готовим таблицу маппинга
 start_knx_adr = knxlib.encodega('10/0/1')
 start_bac_adr = knxlib.encodega('33/0/1')
 mapping = {}
 for i = 1, #rooms do
 base_name = rooms[i][1]
 bac_id = rooms[i][2]
 
 --создаем чистый KNX, кроме Гостиной 2 - это для второго когдиционера
 if base_name ~= 'CL.110_Гостиная 2' then
 for j = 1, #KNX_t do
 grp.create({
 datatype = KNX_t[j][2],
 address = knxlib.decodega(start_knx_adr +(i-1)*256 + j - 1),
 name = rooms[i][1]..'_'..KNX_t[j][1],
 tags = KNX_t[j][3]
 })
 end
 end
 --создаем виртуальные адреса для бакнета и заполняем таблицу маппинга
 for k = 1, #bacnet_t do
 bac_adr = knxlib.decodega(start_bac_adr +(i-1)*256 + k - 1)
 grp.create({
 datatype = bacnet_t[k][3],
 address = bac_adr,
 name = rooms[i][1]..'_'..bacnet_t[k][4]
 })
 bac_key = rooms[i][2]..bacnet_t[k][1]
 mapping[bac_key] = {
 ['addr'] = bac_adr,
 ['type'] = bacnet_t[k][2],
 ['priority'] = 16,
 ['writeToBus'] = false
 }
 end
 end
 storage.set('app:se-bnc:DeviceObjects:3', mapping)
 
 log('end bac mapping create')
this is for Mitsubishy AE-200. 
All you need to know is bacnet id of gateway an fill rooms. works few seconds instead of hours in GUI
	
		
	 |