I am trying to control dimmers using KNX Bindings.
The lights brighten when 09 is sent to the physical address and stop brightening when 08 is sent to the bus.
Instead of discovery method, I have specified everything in the files.
Below is a snippet of things file:
Type dimmer-control : dimmer1 "Dimmer for Left_Lights1" [ ga="<0/0/3" ]
Type dimmer-control : dimmer2 "Dimmer for Left_Lights2" [ ga="<0/0/4" ]
Type dimmer-control : dimmer3 "Dimmer for Left_Lights3" [ ga="<0/0/5" ]
Type dimmer-control : dimmer4 "Dimmer for Centre_Lights" [ ga="<0/0/6" ]
Type dimmer-control : dimmer5 "Dimmer for Other_Lights" [ ga="<0/0/7" ]
Type dimmer-control : ld1 "Brighten_L1" [ ga="<0/0/3" ]
Type dimmer-control : ld2 "Brighten_l2" [ ga="<0/0/4" ]
Type dimmer-control : ld3 "Brighten_L3" [ ga="<0/0/5" ]
Type dimmer-control : ld4 "Brighten_O" [ ga="<0/0/6" ]
Type dimmer-control : ld5 "Brighten_C" [ ga="<0/0/7" ]
I have used two different items to make things simpler.
var dmVar7
var dmVar8
var dmVar9
var dmVar10
var dmVar11
rule "Dimming_LeftLights1"
when
Item demoSwitch7 changed
then
if(demoSwitch7.state < dmVar7)
{
fSwitch7.sendCommand(ON)
Thread::sleep(1000)
fSwitch7.sendCommand(OFF)
}
else if(demoSwitch7.state > dmVar7)
{
fd7.sendCommand(09)
fd7.sendCommand(09)
fd7.sendCommand(09)
fd7.sendCommand(08)
}
else if (demoSwitch7.state == 0)
{
demoSwitch1.sendCommand(OFF)
}
dmVar7 = demoSwitch7.state
end
rule "Dimming_LeftLights2"
when
Item demoSwitch8 changed
then
if(demoSwitch8.state < dmVar8)
{
fSwitch8.sendCommand(ON)
Thread::sleep(1000)
fSwitch8.sendCommand(OFF)
}
else if(demoSwitch7.state > dmVar7)
{
fd8.sendCommand(09)
fd8.sendCommand(09)
fd8.sendCommand(09)
fd8.sendCommand(08)
}
else if (demoSwitch8.state == 0)
{
demoSwitch2.sendCommand(OFF)
}
dmVar8 = demoSwitch8.state
end
rule "Dimming_LeftLights3"
when
Item demoSwitch9 changed
then
if(demoSwitch9.state < dmVar9)
{
fSwitch9.sendCommand(ON)
Thread::sleep(1000)
fSwitch9.sendCommand(OFF)
}
else if(demoSwitch9.state > dmVar9)
{
fd9.sendCommand(09)
fd9.sendCommand(09)
fd9.sendCommand(09)
fd9.sendCommand(08)
}
else if (demoSwitch9.state == 0)
{
demoSwitch3.sendCommand(OFF)
}
dmVar9 = demoSwitch9.state
end
rule "Dimming_OtherLights"
when
Item demoSwitch10 changed
then
if(demoSwitch10.state < dmVar10)
{
fSwitch10.sendCommand(ON)
Thread::sleep(1000)
fSwitch10.sendCommand(OFF)
}
else if(demoSwitch10.state > dmVar10)
{
fd10.sendCommand(09)
fd10.sendCommand(09)
fd10.sendCommand(09)
fd10.sendCommand(08)
}
else if (demoSwitch10.state == 0)
{
demoSwitch4.sendCommand(OFF)
}
dmVar10 = demoSwitch10.state
end
rule "Dimming_CentreLights"
when
Item demoSwitch11 changed
then
if(demoSwitch11.state < dmVar11)
{
fSwitch11.sendCommand(ON)
Thread::sleep(1000)
fSwitch11.sendCommand(OFF)
}
else if(demoSwitch11.state > dmVar11)
{
fd11.sendCommand(09)
fd11.sendCommand(09)
fd11.sendCommand(09)
fd11.sendCommand(08)
}
else if (demoSwitch11.state == 0)
{
demoSwitch5.sendCommand(OFF)
}
dmVar11 = demoSwitch11.state
end
When I monitor the bus only 00 and 01 are written to it.
LPDU: BC 00 05 00 33 E1 00 80 14 :L_Data low from 0.0.5 to 0/0/51 hops: 06 T_DATA_XXX_REQ A_GroupValue_Write (small) 00
LPDU: BC 00 05 00 33 E1 00 81 15 :L_Data low from 0.0.5 to 0/0/51 hops: 06 T_DATA_XXX_REQ A_GroupValue_Write (small) 01
LPDU: BC 00 05 00 03 E1 00 81 25 :L_Data low from 0.0.5 to 0/0/3 hops: 06 T_DATA_XXX_REQ A_GroupValue_Write (small) 01
LPDU: BC 00 05 00 03 E1 00 80 24 :L_Data low from 0.0.5 to 0/0/3 hops: 06 T_DATA_XXX_REQ A_GroupValue_Write (small) 00
LPDU: BC 00 05 00 03 E1 00 81 25 :L_Data low from 0.0.5 to 0/0/3 hops: 06 T_DATA_XXX_REQ A_GroupValue_Write (small) 01
LPDU: BC 00 05 00 03 E1 00 80 24 :L_Data low from 0.0.5 to 0/0/3 hops: 06 T_DATA_XXX_REQ A_GroupValue_Write (small) 00
LPDU: BC 00 05 00 33 E1 00 80 14 :L_Data low from 0.0.5 to 0/0/51 hops: 06 T_DATA_XXX_REQ A_GroupValue_Write (small) 00
LPDU: BC 00 05 00 03 E1 00 81 25 :L_Data low from 0.0.5 to 0/0/3 hops: 06 T_DATA_XXX_REQ A_GroupValue_Write (small) 01
LPDU: BC 00 05 00 03 E1 00 80 24 :L_Data low from 0.0.5 to 0/0/3 hops: 06 T_DATA_XXX_REQ A_GroupValue_Write (small) 00
I want 09 and 08 also to be sent to the bus.
How should I do it?