Who can help me.
It has long been expected that the time of a binding update but I can not make it work.
My equipment (DFTS) communicates with Openhab via serial RS232 and Modbus RTU binding.
The DFTS technical specifications say that contains a RAM memory organized in 16-bit registers each (Word).
Each Word contains information regarding the status of the bus modules connected to DFTS, then returning values or input bits and set values or bits to control the outputs.
The inputs can view them while the outputs I can not control them.
Technical support recommends the MODBUS RTU functions that should be used are:
- To read any Word: Function 3 (read registers)
- To write any Word: Function 16 (Write multiple registers)
To act on the individual on the individual points (virtual or real) you must act on the relevant Word bit to be understood in decimal format
(Thus the function 16 is to be understood 16 decimal, that is to say 0x10 hex)
The syntax is that used in MODBUS RTU protocol.
File Congfig.cfg
modbus:poll=300
modbus:writemultipleregisters=true
//INGRESSI
#MODULO DFTA ID1
modbus:serial.I1.connection=COM8:19200:8:none:1:rtu
modbus:serial.I1.id=1
modbus:serial.I1.start=1
modbus:serial.I1.length=1
modbus:serial.I1.type=holding
#MODULO DFAI ID2
modbus:serial.I2.connection=COM8:19200:8:none:1:rtu
modbus:serial.I2.id=1
modbus:serial.I2.start=2
modbus:serial.I2.length=1
modbus:serial.I2.type=holding
#MODULO DFAI ID3
modbus:serial.I3.connection=COM8:19200:8:none:1:rtu
modbus:serial.I3.id=1
modbus:serial.I3.start=3
modbus:serial.I3.length=1
modbus:serial.I3.type=holding
#MODULO DFDM ID4
modbus:serial.I4.connection=COM8:19200:8:none:1:rtu
modbus:serial.I4.id=1
modbus:serial.I4.start=4
modbus:serial.I4.length=1
modbus:serial.I4.type=holding
#MODULO DF4IV ID9
modbus:serial.I9.connection=COM8:19200:8:none:1:rtu
modbus:serial.I9.id=1
modbus:serial.I9.start=9
modbus:serial.I9.length=1
modbus:serial.I9.type=holding
#MODULO DF4IV ID10
modbus:serial.I10.connection=COM8:19200:8:none:1:rtu
modbus:serial.I10.id=1
modbus:serial.I10.start=10
modbus:serial.I10.length=1
modbus:serial.I10.type=holding
#MODULO DF4IV ID11
modbus:serial.I11.connection=COM8:19200:8:none:1:rtu
modbus:serial.I11.id=1
modbus:serial.I11.start=11
modbus:serial.I11.length=1
modbus:serial.I11.type=holding
#MODULO DF4IV ID12
modbus:serial.I12.connection=COM8:19200:8:none:1:rtu
modbus:serial.I12.id=1
modbus:serial.I12.start=12
modbus:serial.I12.length=1
modbus:serial.I12.type=holding
//USCITE
#MODULO USCITE ID1 DF4R
modbus:serial.O1.connection=COM8:19200:8:none:1:rtu
modbus:serial.O1.id=1
modbus:serial.O1.start=257
modbus:serial.O1.length=1
modbus:serial.O1.type=holding
#MODULO USCITE ID2 DF4RP
modbus:serial.O2.connection=COM8:19200:8:none:1:rtu
modbus:serial.O2.id=1
modbus:serial.O2.start=258
modbus:serial.O2.length=1
modbus:serial.O2.type=holding
#MODULO USCITE ID4 DFDM
modbus:serial.O4.connection=COM8:19200:8:none:1:rtu
modbus:serial.O4.id=1
modbus:serial.O4.start=260
modbus:serial.O4.length=1
modbus:serial.O4.type=holding
modbus:serial.O4.valuetype=int8
#MODULO USCITE ID9-10-11-12 DF4IV
modbus:serial.V9.connection=COM8:19200:8:none:1:rtu
modbus:serial.V9.id=1
modbus:serial.V9.start=265
modbus:serial.V9.length=1
modbus:serial.V9.type=holding
modbus:serial.V9.valuetype=bit
#MODULO USCITE ID9-10-11-12 DF4IV
modbus:serial.V10.connection=COM8:19200:8:none:1:rtu
modbus:serial.V10.id=1
modbus:serial.V10.start=266
modbus:serial.V10.length=1
modbus:serial.V10.type=holding
modbus:serial.V10.valuetype=bit
#MODULO USCITE ID9-10-11-12 DF4IV
modbus:serial.V11.connection=COM8:19200:8:none:1:rtu
modbus:serial.V11.id=1
modbus:serial.V11.start=267
modbus:serial.V11.length=1
modbus:serial.V11.type=holding
modbus:serial.V11.valuetype=bit
#MODULO USCITE ID9-10-11-12 DF4IV
modbus:serial.V12.connection=COM8:19200:8:none:1:rtu
modbus:serial.V12.id=1
modbus:serial.V12.start=268
modbus:serial.V12.length=1
modbus:serial.V12.type=holding
modbus:serial.V12.valuetype=bit
File Items
//Versione del 26/03/2016
Group All
Group s_i “Stato Ingressi” (ALL)
Group s_o “Stato Uscite” (ESE)
Group c_o “Comandi Uscite” (GIMP)
Group Weather (All)
/* Temperatura ESTERNA*/
Number TemperaturaExt “Temp. Ext. [%.1f °C]” (ALL)
Number Temp_ext “Temp. Ext. [%d]” (All) {modbus=“I1:0”}
/* digital input*/
Number D_Input_1 “Input_1 [%d]” (All) {modbus=“I2:0” }
Number D_Input_2 “Input_2 [%d]” (All) {modbus=“I3:0” }
/* STATO INGRESSI */
Contact I9_1 “Ingresso_I9_1 [MAP(on_off.map):%s]” (s_i) { modbus=“I9:0” }
Contact I9_2 “Ingresso_I9_2 [MAP(on_off.map):%s]” (s_i) { modbus=“I9:1” }
Contact I9_3 “Ingresso_I9_3 [MAP(on_off.map):%s]” (s_i) { modbus=“I9:2” }
Contact I9_4 “Ingresso_I9_4 [MAP(on_off.map):%s]” (s_i) { modbus=“I9:3” }
Contact I10_1 “Ingresso_I10_1 [MAP(on_off.map):%s]” (s_i) { modbus=“I10:0” }
Contact I10_2 “Ingresso_I10_2 [MAP(on_off.map):%s]” (s_i) { modbus=“I10:1” }
Contact I10_3 “Ingresso_I10_3 [MAP(on_off.map):%s]” (s_i) { modbus=“I10:2” }
Contact I10_4 “Ingresso_I10_4 [MAP(on_off.map):%s]” (s_i) { modbus=“I10:3” }
Contact I11_1 “Ingresso_I11_1 [MAP(on_off.map):%s]” (s_i) { modbus=“I11:0” }
Contact I11_2 “Ingresso_I11_2 [MAP(on_off.map):%s]” (s_i) { modbus=“I11:1” }
Contact I11_3 “Ingresso_I11_3 [MAP(on_off.map):%s]” (s_i) { modbus=“I11:2” }
Contact I11_4 “Ingresso_I11_4 [MAP(on_off.map):%s]” (s_i) { modbus=“I11:3” }
Contact I12_1 “Ingresso_I12_1 [MAP(on_off.map):%s]” (s_i) { modbus=“I12:0” }
Contact I12_2 “Ingresso_I12_2 [MAP(on_off.map):%s]” (s_i) { modbus=“I12:1” }
Contact I12_3 “Ingresso_I12_3 [MAP(on_off.map):%s]” (s_i) { modbus=“I12:2” }
Contact I12_4 “Ingresso_I12_4 [MAP(on_off.map):%s]” (s_i) { modbus=“I12:3” }
/*COMANDO USCITE */
Switch O1_1 “O1_1_” (c_o) { modbus=“O1:0” }
Switch O1_2 “O1_2_” (c_o) { modbus=“O1:1” }
Switch O1_3 “O1_3_” (c_o) { modbus=“O1:2” }
Switch O1_4 “O1_4_” (c_o) { modbus=“O1:3” }
Switch O2_1 “O2_1_” (c_o) { modbus=“O2:0” }
Switch O2_2 “O2_2_” (c_o) { modbus=“O2:1” }
Switch O2_3 “O2_3_” (c_o) { modbus=“O2:2” }
Switch O2_4 “O2_4_” (c_o) { modbus=“O2:3” }
Number Light_Dimmer “Dimmer [%d]” (s_o) {modbus=“O4:0”}
File Sitemap
sitemap duemmegi label=“La mia sitemap”
{
/* Temperatura Esterna */
Frame label=“Temperatura” {
Text item=TemperaturaExt label=“Esterna [%.1f °C]”
}
Frame label="Digital Input" {
Text item=D_Input_1 label="Digital Input_1[%.0f DI]"
Text item=D_Input_2 label="Digital Input_2[%.0f DI]"
}
Frame label="GESTIONE IMPIANTO" {
Group item=s_i label="STATO INGRESSI" icon="firstfloor"
Group item=c_o label="COMANDO USCITE" icon="firstfloor" {
Frame label="Dimmer" {
Group item= c_o label="COMANDO DIMMER" icon= "firstfloor" {
Slider item=Light_Dimmer label="Comando Slider [%.0f Lux]" icon="slider" sendFrequency=5 switchSupport
Setpoint item=Light_Dimmer label="Comando Up Down" icon="slider" minValue=0 maxValue=100 step=10
Switch item=Light_Dimmer label="Preset" icon="" mappings=[0="OFF", 20="20%", 40="40%", 60="60%", 80="80%", 100="100%"]
}
}
Frame label="rele" {
Group item= c_o label="COMANDO rele" icon= "firstfloor" {
Switch item=O1_1 label="1" icon="switch" //mappings=[0="OFF", 2="on"]
Switch item=O1_2 label="2" icon="switch" //mappings=[0="OFF", 2="on"]
Switch item=O1_3 label="3" icon="switch" //mappings=[0="OFF", 4="on"]
Switch item=O1_4 label="4" icon="switch" //mappings=[0="OFF", 8="on"]
Switch item=O2_1 label="1" icon="switch" //mappings=[0="OFF", 2="on"]
Switch item=O2_2 label="2" icon="switch" //mappings=[0="OFF", 2="on"]
Switch item=O2_3 label="3" icon="switch" //mappings=[0="OFF", 4="on"]
Switch item=O2_4 label="4" icon="switch" //mappings=[0="OFF", 8="on"]
Slider item=Light_dimmer label="word [%.0f ]" icon=""
}
}
}
}
}