26.11.2024, 15:22
Hi,
I need help with BACnet. I created 10 sec resident script, and I can read all values I need from recuperator over LAN (resident script every 10 sec).
But I need also remotely change some parameters (working modes).
Advices needed:
1. How better build communication with recuperator if I need constantly read info from recuperator and periodically write some parameters to it?
2. What to write (type) for multistate value? Itried different variants, not working..
3. Do I need to stop my bacnet reading script to write to device?
4. Do I need to show Bacnet device IP or enough just show device ID?
I used such variant to change instance 50 to 1, tot work:
In manual 0 or 1 mentioned
And what to wrire for multistate value??
5. I can't change status of these parameters:
Name: Comfort button
Description:
0 = Ventilation mode Away after Away delay timer duration [Pintval,318]. Also overrides Room operating mode [Mval,42].
1 = Ventilation mode according to Room operating mode [Mval,42].
Object type: Binary Value
Instance number 50
Priority 13
Access: RW
Range (present value):
[0 : Inactive | 1 : Active]
Name: Heat recovery ventilation state
Description: Present Ventilation mode
Object type: Multistate Value
Instance number 361
Access: R
Range (present value):
[ 1 : Off | 2 : Away | 3 : Home | 4 : High | 5 : Fume hood | 6 : Fireplace | 7 : Temporary high] | ]
Name: Room operating mode
Description: Select Ventilation mode.
Only works if Comfort button [Bval,50] = 1
If Comfort button [Bval,50] = 0, this register is Away.
(If ventilation mode control is active on a digital input,
the digital input overrides this register.)
Object type: Multistate Value
Instance number 42
Priority 13
Access: RW
Range (present value):
[ 1 : Stop | 2 : Away | 3 : Home | 4 : High] | ]
My reading script (every 10 sec):
BR, Alexander
I need help with BACnet. I created 10 sec resident script, and I can read all values I need from recuperator over LAN (resident script every 10 sec).
But I need also remotely change some parameters (working modes).
Advices needed:
1. How better build communication with recuperator if I need constantly read info from recuperator and periodically write some parameters to it?
2. What to write (type) for multistate value? Itried different variants, not working..
3. Do I need to stop my bacnet reading script to write to device?
4. Do I need to show Bacnet device IP or enough just show device ID?
I used such variant to change instance 50 to 1, tot work:
Code:
require('bacnet')
res, err = bacnet.write(2, 'binary value', 50, true, 16)
log(res, err)
And what to wrire for multistate value??
5. I can't change status of these parameters:
Name: Comfort button
Description:
0 = Ventilation mode Away after Away delay timer duration [Pintval,318]. Also overrides Room operating mode [Mval,42].
1 = Ventilation mode according to Room operating mode [Mval,42].
Object type: Binary Value
Instance number 50
Priority 13
Access: RW
Range (present value):
[0 : Inactive | 1 : Active]
Name: Heat recovery ventilation state
Description: Present Ventilation mode
Object type: Multistate Value
Instance number 361
Access: R
Range (present value):
[ 1 : Off | 2 : Away | 3 : Home | 4 : High | 5 : Fume hood | 6 : Fireplace | 7 : Temporary high] | ]
Name: Room operating mode
Description: Select Ventilation mode.
Only works if Comfort button [Bval,50] = 1
If Comfort button [Bval,50] = 0, this register is Away.
(If ventilation mode control is active on a digital input,
the digital input overrides this register.)
Object type: Multistate Value
Instance number 42
Priority 13
Access: RW
Range (present value):
[ 1 : Stop | 2 : Away | 3 : Home | 4 : High] | ]
My reading script (every 10 sec):
Code:
require('bacnet')
OutsideTemp = bacnet.readvalue(2, 'analog input', 1)
SupplyAirTemp = bacnet.readvalue(2, 'analog input', 4)
ExhaustTemp = bacnet.readvalue(2, 'analog input', 11)
ExtractTemp = bacnet.readvalue(2, 'analog input', 59)
S4OpMode = bacnet.readvalue(2, 'multi-state value', 42)
S4VentMode = bacnet.readvalue(2, 'multi-state value', 361)
OpTimeFilter = bacnet.readvalue(2, 'analog value', 285)
OpTimeFilterForReplacement = bacnet.readvalue(2, 'analog value', 286)
ComfortButton = bacnet.readvalue(2, 'binary value', 50)
SetPointT_Away_Sup = bacnet.readvalue(2, 'analog value', 1985)
SetPointT_Away_Exthaust = bacnet.readvalue(2, 'analog value', 1988)
SetPointT_Home_Sup = bacnet.readvalue(2, 'analog value', 1994)
SetPointT_Home_Exthaust = bacnet.readvalue(2, 'analog value', 2070)
CO2_Sensor = bacnet.readvalue(2, 'analog value', 2096)
FaultCounter = bacnet.readvalue(2, 'analog value', 2026)
Exhaustairfanspeedfeedback = bacnet.readvalue(2, 'analog input', 12)
Supplyairfanspeedfeedback = bacnet.readvalue(2, 'analog input', 5)
Exhaustairfanspeed = bacnet.readvalue(2, 'analog output', 4)
Supplyairfanspeed = bacnet.readvalue(2, 'analog output', 3)
Heatingcoilelectricposition = bacnet.readvalue(2, 'analog output', 29)
Heatingcoilvalveposition = bacnet.readvalue(2, 'analog output', 12)
Rotaryheatexchangerspeed = bacnet.readvalue(2, 'analog output', 0)
grp.update ('56/1/0', OutsideTemp)
grp.update ('56/1/1', SupplyAirTemp)
grp.update ('56/1/2', ExhaustTemp)
grp.update ('56/1/3', ExtractTemp)
grp.update ('56/1/4', S4OpMode)
grp.update ('56/1/5', S4VentMode)
grp.update ('56/1/6', OpTimeFilter)
grp.update ('56/1/7', OpTimeFilterForReplacement)
grp.update ('56/1/8', ComfortButton)
grp.update ('56/1/9', SetPointT_Away_Sup)
grp.update ('56/1/10', SetPointT_Away_Exthaust)
grp.update ('56/1/11', SetPointT_Home_Sup)
grp.update ('56/1/12', SetPointT_Home_Exthaust)
grp.update ('56/1/13', CO2_Sensor)
grp.update ('56/1/14', FaultCounter)
grp.update ('56/1/15', Exhaustairfanspeedfeedback)
grp.update ('56/1/16', Supplyairfanspeedfeedback)
grp.update ('56/1/17', Exhaustairfanspeed)
grp.update ('56/1/18', Supplyairfanspeed)
grp.update ('56/1/19', Heatingcoilelectricposition)
grp.update ('56/1/20', Heatingcoilvalveposition)
grp.update ('56/1/21', Rotaryheatexchangerspeed)
BR, Alexander