Hi,
I just upgraded from modbus binding v1 to v2.
I have one tcp-server (slave), a Carlo Gavazzi SH2WEB, which has a massive modbus-map with all its functions and their parameters.
In ver1 I had defined 144 slaves (one for each function I wanted OH to read/write). It has worked very well and response time has been within a second.
In ver2 I figure I have to define a poller for each of the old “slave”-definitions to achieve the same. This is due to the fact that the modbus-registers I use is not in a consecutive order.
Now I have defined +100 Things, each of them have their own Poller.
I find that the responsetime is now much longer, appr 8-10 seconds from changing for example a dimmer in the site-map until it happen IRL.
- Can someone with knowledge about the binding explain why. @ssalonen?
- What can I do to improve the performance? It is the writing I’d like to have higher pririty on, reading is not so critical.
Exctract of my .things-file: (couldn’t fit all lines)
// Modbus to Smart-House
Bridge modbus:tcp:SH2WEB [ host="192.168.1.198", port=502, id=1 ] {
// smart-house (Fx) Sovrum 4 (Kontor) - Ljusfunktion Tak_Status
Bridge poller P1 [ start=0, length=1, refresh=1000, type="holding" ] {
Thing data D1 [ readStart="0", readValueType="uint16", writeStart="0", writeValueType="uint16", writeType="holding" ]
}
// smart-house (Fx) Sovrum 4 (Kontor) - Ljusfunktion Fönster_Status
Bridge poller P2 [ start=38, length=1, refresh=1000, type="holding" ] {
Thing data D2 [ readStart="38", readValueType="uint16", writeStart="38", writeValueType="uint16", writeType="holding" ]
}
// smart-house (Fx) Vardagsrum - Ljusfunktion Fönster LU_Status
Bridge poller P3 [ start=76, length=1, refresh=1000, type="holding" ] {
Thing data D3 [ readStart="76", readValueType="uint16", writeStart="76", writeValueType="uint16", writeType="holding" ]
}
// smart-house (Fx) Entré- Ljusfunktion VU_Status
Bridge poller P4 [ start=114, length=1, refresh=1000, type="holding" ] {
Thing data D4 [ readStart="114", readValueType="uint16", writeStart="114", writeValueType="uint16", writeType="holding" ]
}
// smart-house (Fx) Sovrum 3 (P&J) - Temperatur_Status
Bridge poller P5 [ start=176, length=1, refresh=1000, type="holding" ] {
Thing data D5 [ readStart="176", readValueType="uint16", writeStart="176", writeValueType="uint16", writeType="holding" ]
}
// smart-house (Fx) WC - Dimbart ljus_Status
Bridge poller P6 [ start=272, length=1, refresh=1000, type="holding" ] {
Thing data D6 [ readStart="272", readValueType="uint16", readTransform="JS(dimmertransform.js)", writeStart="272", writeValueType="uint16", writeType="holding" ]
}
// smart-house (Fx) Hall - Ljusfunktion ute entré_Status
Bridge poller P7 [ start=349, length=1, refresh=1000, type="holding" ] {
Thing data D7 [ readStart="349", readValueType="uint16", writeStart="349", writeValueType="uint16", writeType="holding" ]
}
// smart-house (Fx) Ljuskanal - Natt_Status
Bridge poller P8 [ start=387, length=1, refresh=1000, type="holding" ] {
Thing data D8 [ readStart="387", readValueType="uint16", writeStart="387", writeValueType="uint16", writeType="holding" ]
}
// smart-house (Fx) Sovrum 3 (P&J) - Ljusfunktion Tak_Status
Bridge poller P9 [ start=487, length=1, refresh=1000, type="holding" ] {
Thing data D9 [ readStart="487", readValueType="uint16", writeStart="487", writeValueType="uint16", writeType="holding" ]
}
// smart-house (Fx) Sovrum 3 (P&J) - Ljusfunktion Fönster_Status
Bridge poller P10 [ start=525, length=1, refresh=1000, type="holding" ] {
Thing data D10 [ readStart="525", readValueType="uint16", writeStart="525", writeValueType="uint16", writeType="holding" ]
}
// smart-house (Fx) Parkering Motorvärmare_Status
Bridge poller P11 [ start=563, length=1, refresh=1000, type="holding" ] {
Thing data D11 [ readStart="563", readValueType="uint16", writeStart="563", writeValueType="uint16", writeType="holding" ]
}
// smart-house (Fx) Spa - Ljusfunktion Spegel_Status
Bridge poller P12 [ start=587, length=1, refresh=1000, type="holding" ] {
Thing data D12 [ readStart="587", readValueType="uint16", writeStart="587", writeValueType="uint16", writeType="holding" ]
}
....
}