Hello community.
I have a question about Dimmer Item updating. In sitemap file I have slider to control light brightness. When I change brightness level via Openhab UI (sitemap), the level is successfully saved in slave device, but when I change this level from other source, slider in Openhab UI (sitemap) is not updated, but actually level is changed.
Modbus communication works good. I suppose there is an issue in read transform file.
things file data:
Bridge poller Holdings5 [ start=50, length=3, refresh=3000, type=âholdingâ ] {
Thing data Holding57 [ readStart=â57â, readTransform=âJS(readTr.js)â, readValueType=âint16â, writeStart=â57â, writeValueType=âint16â, writeType=âholdingâ, writeTransform=âJS(writeTr.js)â, updateUnchangedValuesEveryMillis=50000 ]
Thing data Holding58 [ readStart="58", readTransform="JS(readTr.js)", readValueType="int16", writeStart="58", writeValueType="int16", writeType="holding", writeTransform="JS(writeTr.js)", updateUnchangedValuesEveryMillis=50000 ]
Thing data Holding59 [ readStart="59", readTransform="JS(readTr.js)", readValueType="int16", writeStart="59", writeValueType="int16", writeType="holding", writeTransform="JS(writeTr.js)", updateUnchangedValuesEveryMillis=50000 ]
}
items file data:
Dimmer dali1 âDali 1 [%d]â { channel=âmodbus:data:localhostTCP:Holdings5:Holding57:numberâ, homekit=âLighting, Lighting.OnState, Lighting.Brightnessâ}
Dimmer dali2 âDali 2 [%d]â { channel=âmodbus:data:localhostTCP:Holdings5:Holding58:numberâ, homekit=âLighting, Lighting.OnState, Lighting.Brightnessâ}
Dimmer dali3 âDali 3 [%d]â { channel=âmodbus:data:localhostTCP:Holdings5:Holding59:numberâ, homekit=âLighting, Lighting.OnState, Lighting.Brightnessâ}
read transform function:
(function(inputData) {
var MAX_SCALE = 100;
return Math.round( parseFloat(inputData, 10) * 100 / MAX_SCALE );
})(input)
write transform function:
(function(inputData) {
var MAX_SCALE = 10000;
var out = 0
if (inputData == âONâ) {
out = MAX_SCALE
} else if (inputData == âOFFâ) {
out = 0
} else {
out = Math.round( parseFloat(inputData, 10) * MAX_SCALE / 100 )
}
return out
})(input)
I have no problems with writing in the slave register. So, I suppose, in write transport function var MAX_SCALE set correctly. But I cannot correctly set that variable in read transform function. Any ideas ? Maybe there are some others mistakes I donât know ?