Seite 1 von 1

OH3.1 / groeßere DSL-Rule zulangsam??

Verfasst: 20. Nov 2021 03:32
von itsego1990
Hi,

Ich hab hier eine Rule für DMX- Geräte am Laufen über einen Artnet Contoller, die Regel schaltet zwischen 3-4 verschieden Szenen um.
Die Regel Funktioniert soweit , aber leider ist sie ziehmlich groß und mein Raspberry PI4(4GB/OH3.1), kann die Regel nicht so schnell verarbeiten, bzw wenn dieser Hochgefahren ist frisch reagiert die Regel die erst 2 min gar nicht.
Und beim hin und her schalten mehr man auch das es ca. 2sek brauch bis es vollständig umgeschalten hat zu nächsten Regel.
Ich steuer hier im DMX ca. 200 Kanäle an.

Meine Frage wär jetzt, kann ich an der Regel die Perfromancen verbessern bzw. bringt eine andere Rulesprache wie javascipt verbessung ?

Code: Alles auswählen

rule "Moderation"
when
Item Licht_Szene received command Moderation
then 
sendCommand(cob1ww, 90)
sendCommand(cob2ww, 60)
sendCommand(cob3ww, 60)
sendCommand(cob4ww, 60)
sendCommand(tw12ww, 100)
sendCommand(tw12cw, 100)
sendCommand(tw12a, 80)
sendCommand(tw12master, 100)
sendCommand(tw12ww2, 100)
sendCommand(tw12cw2, 100)
sendCommand(tw12a2, 80)
sendCommand(tw12master2, 100)
sendCommand(tw12ww3, 100)
sendCommand(tw12cw3, 100)
sendCommand(tw12a3, 80)
sendCommand(tw12master3, 100)
sendCommand(tw12ww4, 100)
sendCommand(tw12cw4, 100)
sendCommand(tw12a4, 80)
sendCommand(tw12master4, 100)
sendCommand(Qwh12red, 50)
sendCommand(Qwh12green, 50)
sendCommand(Qwh12blue, 50)
sendCommand(Qwh12withe, 50)
sendCommand(Qwh12master, 50)
sendCommand(Qwh12strobe, 0)
sendCommand(Qwh12makro, 0)
sendCommand(Qwh12red2, 50)
sendCommand(Qwh12green2, 50)
sendCommand(Qwh12blue2, 50)
sendCommand(Qwh12withe2, 50)
sendCommand(Qwh12master2, 50)
sendCommand(Qwh12strobe2, 0)
sendCommand(Qwh12makro2, 0)
sendCommand(Qwh12red3, 50)
sendCommand(Qwh12green3, 50)
sendCommand(Qwh12blue3, 50)
sendCommand(Qwh12withe3, 50)
sendCommand(Qwh12master3, 50)
sendCommand(Qwh12strobe3, 0)
sendCommand(Qwh12makro3, 0)
sendCommand(Qwh12red4, 50)
sendCommand(Qwh12green4, 50)
sendCommand(Qwh12blue4, 50)
sendCommand(Qwh12withe4, 50)
sendCommand(Qwh12master4, 50)
sendCommand(Qwh12strobe4, 0)
sendCommand(Qwh12makro4, 0)
sendCommand(bar1_red, 0)
sendCommand(bar1_green, 0)
sendCommand(bar1_blue, 100)
sendCommand(bar1_withe, 100)
sendCommand(bar1_amber, 0)
sendCommand(bar1_uv, 0)
sendCommand(bar1_red2, 0)
sendCommand(bar1_green2, 0)
sendCommand(bar1_blue2, 100)
sendCommand(bar1_withe2, 100)
sendCommand(bar1_amber2, 00)
sendCommand(bar1_uv2, 00)
sendCommand(bar1_red3, 0)
sendCommand(bar1_green3, 0)
sendCommand(bar1_blue3, 100)
sendCommand(bar1_withe3, 100)
sendCommand(bar1_amber3, 00)
sendCommand(bar1_uv3, 00)
sendCommand(bar1_red4, 0)
sendCommand(bar1_green4, 0)
sendCommand(bar1_blue4, 100)
sendCommand(bar1_withe4, 100)
sendCommand(bar1_amber4, 0)
sendCommand(bar1_uv4, 0)
sendCommand(bar1_red5, 0)
sendCommand(bar1_green5, 0)
sendCommand(bar1_blue5, 100)
sendCommand(bar1_withe5, 100)
sendCommand(bar1_amber5, 0)
sendCommand(bar1_uv5, 0)
sendCommand(bar1_red6, 0)
sendCommand(bar1_green6, 0)
sendCommand(bar1_blue6, 100)
sendCommand(bar1_withe6, 100)
sendCommand(bar1_amber6, 0)
sendCommand(bar1_uv6, 0)
sendCommand(bar2_red, 0)
sendCommand(bar2_green, 0)
sendCommand(bar2_blue, 100)
sendCommand(bar2_withe, 100)
sendCommand(bar2_amber, 0)
sendCommand(bar2_uv, 0)
sendCommand(bar2_red2, 0)
sendCommand(bar2_green2, 0)
sendCommand(bar2_blue2, 100)
sendCommand(bar2_withe2, 100)
sendCommand(bar2_amber2, 0)
sendCommand(bar2_uv2, 0)
sendCommand(bar2_red3, 0)
sendCommand(bar2_green3, 0)
sendCommand(bar2_blue3, 100)
sendCommand(bar2_withe3, 100)
sendCommand(bar2_amber3, 0)
sendCommand(bar2_uv3, 0)
sendCommand(bar2_red4, 0)
sendCommand(bar2_green4, 0)
sendCommand(bar2_blue4, 100)
sendCommand(bar2_withe4, 100)
sendCommand(bar2_amber4, 0)
sendCommand(bar2_uv4, 0)
sendCommand(bar2_red5, 0)
sendCommand(bar2_green5, 0)
sendCommand(bar2_blue5, 100)
sendCommand(bar2_withe5, 100)
sendCommand(bar2_amber5, 0)
sendCommand(bar2_uv5, 0)
sendCommand(bar2_red6, 0)
sendCommand(bar2_green6, 0)
sendCommand(bar2_blue6, 100)
sendCommand(bar2_withe6, 100)
sendCommand(bar2_amber6, 0)
sendCommand(bar2_uv6, 0)
sendCommand(bar3_red, 0)
sendCommand(bar3_green, 0)
sendCommand(bar3_blue, 100)
sendCommand(bar3_withe, 100)
sendCommand(bar3_amber, 0)
sendCommand(bar3_uv, 0)
sendCommand(bar3_red2, 0)
sendCommand(bar3_green2, 0)
sendCommand(bar3_blue2, 100)
sendCommand(bar3_withe2, 100)
sendCommand(bar3_amber2, 0)
sendCommand(bar3_uv2, 0)
sendCommand(bar3_red3, 0)
sendCommand(bar3_green3, 0)
sendCommand(bar3_blue3, 100)
sendCommand(bar3_withe3, 100)
sendCommand(bar3_amber3, 0)
sendCommand(bar3_uv3, 0)
sendCommand(bar3_red4, 0)
sendCommand(bar3_green4, 0)
sendCommand(bar3_blue4, 100)
sendCommand(bar3_withe4, 100)
sendCommand(bar3_amber4, 0)
sendCommand(bar3_uv4, 0)
sendCommand(bar3_red5, 0)
sendCommand(bar3_green5, 0)
sendCommand(bar3_blue5, 100)
sendCommand(bar3_withe5, 100)
sendCommand(bar3_amber5, 0)
sendCommand(bar3_uv5, 0)
sendCommand(bar3_red6, 0)
sendCommand(bar3_green6, 0)
sendCommand(bar3_blue6, 100)
sendCommand(bar3_withe6, 100)
sendCommand(bar3_amber6, 0)
sendCommand(bar3_uv6, 0)
sendCommand(bar4_red, 0)
sendCommand(bar4_green, 0)
sendCommand(bar4_blue, 100)
sendCommand(bar4_withe, 100)
sendCommand(bar4_amber, 0)
sendCommand(bar4_uv, 0)
sendCommand(bar4_red2, 0)
sendCommand(bar4_green2, 0)
sendCommand(bar4_blue2, 100)
sendCommand(bar4_withe2, 100)
sendCommand(bar4_amber2, 0)
sendCommand(bar4_uv2, 0)
sendCommand(bar4_red3, 0)
sendCommand(bar4_green3, 0)
sendCommand(bar4_blue3, 100)
sendCommand(bar4_withe3, 100)
sendCommand(bar4_amber3, 0)
sendCommand(bar4_uv3, 0)
sendCommand(bar4_red4, 0)
sendCommand(bar4_green4, 0)
sendCommand(bar4_blue4, 100)
sendCommand(bar4_withe4, 100)
sendCommand(bar4_amber4, 0)
sendCommand(bar4_uv4, 0)
sendCommand(bar4_red5, 0)
sendCommand(bar4_green5, 0)
sendCommand(bar4_blue5, 100)
sendCommand(bar4_withe5, 100)
sendCommand(bar4_amber5, 0)
sendCommand(bar4_uv5, 0)
sendCommand(bar4_red6, 0)
sendCommand(bar4_green6, 0)
sendCommand(bar4_blue6, 100)
sendCommand(bar4_withe6, 100)
sendCommand(bar4_amber6, 0)
sendCommand(bar4_uv6, 0)
Light_Wheel.sendCommand (30.0)
end


rule "Aus_blackmode"
when
Item Licht_Szene received command Aus
then 
sendCommand(cob1ww, 0)
sendCommand(cob2ww, 0)
sendCommand(cob3ww, 0)
sendCommand(cob4ww, 0)
sendCommand(tw12ww, 0)
sendCommand(tw12cw, 0)
sendCommand(tw12a, 0)
sendCommand(tw12master, 0)
sendCommand(tw12ww2, 0)
sendCommand(tw12cw2, 0)
sendCommand(tw12a2, 0)
sendCommand(tw12master2, 0)
sendCommand(tw12ww3, 0)
sendCommand(tw12cw3, 0)
sendCommand(tw12a3, 0)
sendCommand(tw12master3, 0)
sendCommand(tw12ww4, 0)
sendCommand(tw12cw4, 0)
sendCommand(tw12a4, 0)
sendCommand(tw12master4, 0)
sendCommand(Qwh12red, 0)
sendCommand(Qwh12green, 0)
sendCommand(Qwh12blue, 0)
sendCommand(Qwh12withe, 0)
sendCommand(Qwh12master, 0)
sendCommand(Qwh12strobe, 0)
sendCommand(Qwh12makro, 0)
sendCommand(Qwh12red2, 0)
sendCommand(Qwh12green2, 0)
sendCommand(Qwh12blue2, 0)
sendCommand(Qwh12withe2, 0)
sendCommand(Qwh12master2, 0)
sendCommand(Qwh12strobe2, 0)
sendCommand(Qwh12makro2, 0)
sendCommand(Qwh12red3, 0)
sendCommand(Qwh12green3, 0)
sendCommand(Qwh12blue3, 0)
sendCommand(Qwh12withe3, 0)
sendCommand(Qwh12master3, 0)
sendCommand(Qwh12strobe3, 0)
sendCommand(Qwh12makro3, 0)
sendCommand(Qwh12red4, 0)
sendCommand(Qwh12green4, 0)
sendCommand(Qwh12blue4, 0)
sendCommand(Qwh12withe4, 0)
sendCommand(Qwh12master4, 0)
sendCommand(Qwh12strobe4, 0)
sendCommand(Qwh12makro4, 0)
sendCommand(bar1_red, 0)
sendCommand(bar1_green, 0)
sendCommand(bar1_blue, 0)
sendCommand(bar1_withe, 0)
sendCommand(bar1_amber, 0)
sendCommand(bar1_uv, 0)
sendCommand(bar1_red2, 0)
sendCommand(bar1_green2, 0)
sendCommand(bar1_blue2, 0)
sendCommand(bar1_withe2, 0)
sendCommand(bar1_amber2, 0)
sendCommand(bar1_uv2, 0)
sendCommand(bar1_red3, 0)
sendCommand(bar1_green3, 0)
sendCommand(bar1_blue3, 0)
sendCommand(bar1_withe3, 0)
sendCommand(bar1_amber3, 0)
sendCommand(bar1_uv3, 0)
sendCommand(bar1_red4, 0)
sendCommand(bar1_green4, 0)
sendCommand(bar1_blue4, 0)
sendCommand(bar1_withe4, 0)
sendCommand(bar1_amber4, 0)
sendCommand(bar1_uv4, 0)
sendCommand(bar1_red5, 0)
sendCommand(bar1_green5, 0)
sendCommand(bar1_blue5, 0)
sendCommand(bar1_withe5, 0)
sendCommand(bar1_amber5, 0)
sendCommand(bar1_uv5, 0)
sendCommand(bar1_red6, 0)
sendCommand(bar1_green6, 0)
sendCommand(bar1_blue6, 0)
sendCommand(bar1_withe6, 0)
sendCommand(bar1_amber6, 0)
sendCommand(bar1_uv6, 0)
sendCommand(bar2_red, 0)
sendCommand(bar2_green, 0)
sendCommand(bar2_blue, 0)
sendCommand(bar2_withe, 0)
sendCommand(bar2_amber, 0)
sendCommand(bar2_uv, 0)
sendCommand(bar2_red2, 0)
sendCommand(bar2_green2, 0)
sendCommand(bar2_blue2, 0)
sendCommand(bar2_withe2, 0)
sendCommand(bar2_amber2, 0)
sendCommand(bar2_uv2, 0)
sendCommand(bar2_red3, 0)
sendCommand(bar2_green3, 0)
sendCommand(bar2_blue3, 0)
sendCommand(bar2_withe3, 0)
sendCommand(bar2_amber3, 0)
sendCommand(bar2_uv3, 0)
sendCommand(bar2_red4, 0)
sendCommand(bar2_green4, 0)
sendCommand(bar2_blue4, 0)
sendCommand(bar2_withe4, 0)
sendCommand(bar2_amber4, 0)
sendCommand(bar2_uv4, 0)
sendCommand(bar2_red5, 0)
sendCommand(bar2_green5, 0)
sendCommand(bar2_blue5, 0)
sendCommand(bar2_withe5, 0)
sendCommand(bar2_amber5, 0)
sendCommand(bar2_uv5, 0)
sendCommand(bar2_red6, 0)
sendCommand(bar2_green6, 0)
sendCommand(bar2_blue6, 0)
sendCommand(bar2_withe6, 0)
sendCommand(bar2_amber6, 0)
sendCommand(bar2_uv6, 0)
sendCommand(bar3_red, 0)
sendCommand(bar3_green, 0)
sendCommand(bar3_blue, 0)
sendCommand(bar3_withe, 0)
sendCommand(bar3_amber, 0)
sendCommand(bar3_uv, 0)
sendCommand(bar3_red2, 0)
sendCommand(bar3_green2, 0)
sendCommand(bar3_blue2, 0)
sendCommand(bar3_withe2, 0)
sendCommand(bar3_amber2, 0)
sendCommand(bar3_uv2, 0)
sendCommand(bar3_red3, 0)
sendCommand(bar3_green3, 0)
sendCommand(bar3_blue3, 0)
sendCommand(bar3_withe3, 0)
sendCommand(bar3_amber3, 0)
sendCommand(bar3_uv3, 0)
sendCommand(bar3_red4, 0)
sendCommand(bar3_green4, 0)
sendCommand(bar3_blue4, 0)
sendCommand(bar3_withe4, 0)
sendCommand(bar3_amber4, 0)
sendCommand(bar3_uv4, 0)
sendCommand(bar3_red5, 0)
sendCommand(bar3_green5, 0)
sendCommand(bar3_blue5, 0)
sendCommand(bar3_withe5, 0)
sendCommand(bar3_amber5, 0)
sendCommand(bar3_uv5, 0)
sendCommand(bar3_red6, 0)
sendCommand(bar3_green6, 0)
sendCommand(bar3_blue6, 0)
sendCommand(bar3_withe6, 0)
sendCommand(bar3_amber6, 0)
sendCommand(bar3_uv6, 0)
sendCommand(bar4_red, 0)
sendCommand(bar4_green, 0)
sendCommand(bar4_blue, 0)
sendCommand(bar4_withe, 0)
sendCommand(bar4_amber, 0)
sendCommand(bar4_uv, 0)
sendCommand(bar4_red2, 0)
sendCommand(bar4_green2, 0)
sendCommand(bar4_blue2, 0)
sendCommand(bar4_withe2, 0)
sendCommand(bar4_amber2, 0)
sendCommand(bar4_uv2, 0)
sendCommand(bar4_red3, 0)
sendCommand(bar4_green3, 0)
sendCommand(bar4_blue3, 0)
sendCommand(bar4_withe3, 0)
sendCommand(bar4_amber3, 0)
sendCommand(bar4_uv3, 0)
sendCommand(bar4_red4, 0)
sendCommand(bar4_green4, 0)
sendCommand(bar4_blue4, 0)
sendCommand(bar4_withe4, 0)
sendCommand(bar4_amber4, 0)
sendCommand(bar4_uv4, 0)
sendCommand(bar4_red5, 0)
sendCommand(bar4_green5, 0)
sendCommand(bar4_blue5, 0)
sendCommand(bar4_withe5, 0)
sendCommand(bar4_amber5, 0)
sendCommand(bar4_uv5, 0)
sendCommand(bar4_red6, 0)
sendCommand(bar4_green6, 0)
sendCommand(bar4_blue6, 0)
sendCommand(bar4_withe6, 0)
sendCommand(bar4_amber6, 0)
sendCommand(bar4_uv6, 0)
Light_Wheel.sendCommand (10.0)
end

rule "Band"
when
Item Licht_Szene received command Band
then 
sendCommand(cob1ww, 100)
sendCommand(cob2ww, 80)
sendCommand(cob3ww, 100)
sendCommand(cob4ww, 100)
sendCommand(tw12ww, 100)
sendCommand(tw12cw, 100)
sendCommand(tw12a, 80)
sendCommand(tw12master, 30)
sendCommand(tw12ww2, 100)
sendCommand(tw12cw2, 100)
sendCommand(tw12a2, 80)
sendCommand(tw12master2, 30)
sendCommand(tw12ww3, 100)
sendCommand(tw12cw3, 100)
sendCommand(tw12a3, 80)
sendCommand(tw12master3, 30)
sendCommand(tw12ww4, 100)
sendCommand(tw12cw4, 100)
sendCommand(tw12a4, 80)
sendCommand(tw12master4, 30)
sendCommand(Qwh12red, 50)
sendCommand(Qwh12green, 50)
sendCommand(Qwh12blue, 50)
sendCommand(Qwh12withe, 50)
sendCommand(Qwh12master, 80)
sendCommand(Qwh12strobe, 0)
sendCommand(Qwh12makro, 0)
sendCommand(Qwh12red2, 50)
sendCommand(Qwh12green2, 50)
sendCommand(Qwh12blue2, 50)
sendCommand(Qwh12withe2, 50)
sendCommand(Qwh12master2, 80)
sendCommand(Qwh12strobe2, 0)
sendCommand(Qwh12makro2, 0)
sendCommand(Qwh12red3, 50)
sendCommand(Qwh12green3, 50)
sendCommand(Qwh12blue3, 50)
sendCommand(Qwh12withe3, 50)
sendCommand(Qwh12master3, 80)
sendCommand(Qwh12strobe3, 0)
sendCommand(Qwh12makro3, 0)
sendCommand(Qwh12red4, 50)
sendCommand(Qwh12green4, 50)
sendCommand(Qwh12blue4, 50)
sendCommand(Qwh12withe4, 50)
sendCommand(Qwh12master4, 80)
sendCommand(Qwh12strobe4, 0)
sendCommand(Qwh12makro4, 0)
sendCommand(bar1_red, 0)
sendCommand(bar1_green, 0)
sendCommand(bar1_blue, 100)
sendCommand(bar1_withe, 100)
sendCommand(bar1_amber, 0)
sendCommand(bar1_uv, 0)
sendCommand(bar1_red2, 0)
sendCommand(bar1_green2, 0)
sendCommand(bar1_blue2, 100)
sendCommand(bar1_withe2, 100)
sendCommand(bar1_amber2, 00)
sendCommand(bar1_uv2, 00)
sendCommand(bar1_red3, 0)
sendCommand(bar1_green3, 0)
sendCommand(bar1_blue3, 100)
sendCommand(bar1_withe3, 100)
sendCommand(bar1_amber3, 00)
sendCommand(bar1_uv3, 00)
sendCommand(bar1_red4, 0)
sendCommand(bar1_green4, 0)
sendCommand(bar1_blue4, 100)
sendCommand(bar1_withe4, 100)
sendCommand(bar1_amber4, 0)
sendCommand(bar1_uv4, 0)
sendCommand(bar1_red5, 0)
sendCommand(bar1_green5, 0)
sendCommand(bar1_blue5, 100)
sendCommand(bar1_withe5, 100)
sendCommand(bar1_amber5, 0)
sendCommand(bar1_uv5, 0)
sendCommand(bar1_red6, 0)
sendCommand(bar1_green6, 0)
sendCommand(bar1_blue6, 100)
sendCommand(bar1_withe6, 100)
sendCommand(bar1_amber6, 0)
sendCommand(bar1_uv6, 0)
sendCommand(bar2_red, 0)
sendCommand(bar2_green, 0)
sendCommand(bar2_blue, 100)
sendCommand(bar2_withe, 100)
sendCommand(bar2_amber, 0)
sendCommand(bar2_uv, 0)
sendCommand(bar2_red2, 0)
sendCommand(bar2_green2, 0)
sendCommand(bar2_blue2, 100)
sendCommand(bar2_withe2, 100)
sendCommand(bar2_amber2, 0)
sendCommand(bar2_uv2, 0)
sendCommand(bar2_red3, 0)
sendCommand(bar2_green3, 0)
sendCommand(bar2_blue3, 100)
sendCommand(bar2_withe3, 100)
sendCommand(bar2_amber3, 0)
sendCommand(bar2_uv3, 0)
sendCommand(bar2_red4, 0)
sendCommand(bar2_green4, 0)
sendCommand(bar2_blue4, 100)
sendCommand(bar2_withe4, 100)
sendCommand(bar2_amber4, 0)
sendCommand(bar2_uv4, 0)
sendCommand(bar2_red5, 0)
sendCommand(bar2_green5, 0)
sendCommand(bar2_blue5, 100)
sendCommand(bar2_withe5, 100)
sendCommand(bar2_amber5, 0)
sendCommand(bar2_uv5, 0)
sendCommand(bar2_red6, 0)
sendCommand(bar2_green6, 0)
sendCommand(bar2_blue6, 100)
sendCommand(bar2_withe6, 100)
sendCommand(bar2_amber6, 0)
sendCommand(bar2_uv6, 0)
sendCommand(bar3_red, 0)
sendCommand(bar3_green, 0)
sendCommand(bar3_blue, 100)
sendCommand(bar3_withe, 100)
sendCommand(bar3_amber, 0)
sendCommand(bar3_uv, 0)
sendCommand(bar3_red2, 0)
sendCommand(bar3_green2, 0)
sendCommand(bar3_blue2, 100)
sendCommand(bar3_withe2, 100)
sendCommand(bar3_amber2, 0)
sendCommand(bar3_uv2, 0)
sendCommand(bar3_red3, 0)
sendCommand(bar3_green3, 0)
sendCommand(bar3_blue3, 100)
sendCommand(bar3_withe3, 100)
sendCommand(bar3_amber3, 0)
sendCommand(bar3_uv3, 0)
sendCommand(bar3_red4, 0)
sendCommand(bar3_green4, 0)
sendCommand(bar3_blue4, 100)
sendCommand(bar3_withe4, 100)
sendCommand(bar3_amber4, 0)
sendCommand(bar3_uv4, 0)
sendCommand(bar3_red5, 0)
sendCommand(bar3_green5, 0)
sendCommand(bar3_blue5, 100)
sendCommand(bar3_withe5, 100)
sendCommand(bar3_amber5, 0)
sendCommand(bar3_uv5, 0)
sendCommand(bar3_red6, 0)
sendCommand(bar3_green6, 0)
sendCommand(bar3_blue6, 100)
sendCommand(bar3_withe6, 100)
sendCommand(bar3_amber6, 0)
sendCommand(bar3_uv6, 0)
sendCommand(bar4_red, 0)
sendCommand(bar4_green, 0)
sendCommand(bar4_blue, 100)
sendCommand(bar4_withe, 100)
sendCommand(bar4_amber, 0)
sendCommand(bar4_uv, 0)
sendCommand(bar4_red2, 0)
sendCommand(bar4_green2, 0)
sendCommand(bar4_blue2, 100)
sendCommand(bar4_withe2, 100)
sendCommand(bar4_amber2, 0)
sendCommand(bar4_uv2, 0)
sendCommand(bar4_red3, 0)
sendCommand(bar4_green3, 0)
sendCommand(bar4_blue3, 100)
sendCommand(bar4_withe3, 100)
sendCommand(bar4_amber3, 0)
sendCommand(bar4_uv3, 0)
sendCommand(bar4_red4, 0)
sendCommand(bar4_green4, 0)
sendCommand(bar4_blue4, 100)
sendCommand(bar4_withe4, 100)
sendCommand(bar4_amber4, 0)
sendCommand(bar4_uv4, 0)
sendCommand(bar4_red5, 0)
sendCommand(bar4_green5, 0)
sendCommand(bar4_blue5, 100)
sendCommand(bar4_withe5, 100)
sendCommand(bar4_amber5, 0)
sendCommand(bar4_uv5, 0)
sendCommand(bar4_red6, 0)
sendCommand(bar4_green6, 0)
sendCommand(bar4_blue6, 100)
sendCommand(bar4_withe6, 100)
sendCommand(bar4_amber6, 0)
sendCommand(bar4_uv6, 0)
Light_Wheel.sendCommand (20.0)
end



rule "Sprecherlicht1"
when
Item Licht_Szene received command Sprecherlicht
then 
sendCommand(tw12ww, 10)
sendCommand(tw12cw, 10)
sendCommand(tw12a, 100)
sendCommand(tw12master, 100)
sendCommand(tw12ww2, 10)
sendCommand(tw12cw2, 10)
sendCommand(tw12a2, 100)
sendCommand(tw12master2, 100)
sendCommand(tw12ww3, 10)
sendCommand(tw12cw3, 10)
sendCommand(tw12a3, 100)
sendCommand(tw12master3, 100)
sendCommand(tw12ww4, 10)
sendCommand(tw12cw4, 10)
sendCommand(tw12a4, 100)
sendCommand(tw12master4, 100)
Light_Wheel.sendCommand (40.0)
end

Re: OH3.1 / groeßere DSL-Rule zulangsam??

Verfasst: 20. Nov 2021 10:20
von udo1toni
Die Frage ist, was hier der eigentliche Flaschenhals ist.

Wie sieht denn das Schaltverhalten aus? gehen die Lichter nacheinander an bzw. aus?

Der bessere Ansatz wäre hier ein Gruppenbildung über alle Items, die jeweils gleiche Werte bekommen sollen. Der Befehl wird dann an das Group Item gesendet, welches den Befehl an die Member weiterleitet. das geht hier, weil es sich um Zahlenwerte handelt, die sowohl als Status wie auch als Befehl genutzt werden.
Wie viel schneller das Ganze dadurch wird, musst Du ausprobieren. Die Rules werden dadurch aber wesentlich kürzer, was allein schon eine Verbesserung der Abarbeitung der Rules mit sich bringen sollte.

Nach dem Systemstart (und nach einiger Zeit...) sind die Rules noch nicht im Arbeitsspeicher geladen. Entsprechend dauert die Abarbeitung beim ersten Aufruf immer unverhältnismäßig lang.

Re: OH3.1 / groeßere DSL-Rule zulangsam??

Verfasst: 21. Nov 2021 13:12
von itsego1990
Hi,
danke für die Schnelle Antwort.
Also man sieht das die licht nacheinander aus und an gehen,
d.h. man sieht das die lichter von links nach rechts angehen und beim abschalten von Links nach rechts ausgehen auch wieder.
Ich werd nun mal versuchen eine Gruppenbildung zu machen.
Bringt es evtl etwas wenn ich die Regel in meheren rules dateien unterteile etwas ?
Nach dem Systemstart (und nach einiger Zeit...) sind die Rules noch nicht im Arbeitsspeicher geladen. Entsprechend dauert die Abarbeitung beim ersten Aufruf immer unverhältnismäßig lang.
Ja das merk ich beim neugestarten system das dann schon ca. 1h läuft und dann wählt man die Regel an und es passiert dann die ersten minuten nichts, und wenn sie dann das erste mal reagiert hat, funktioniert das um schalten Zwischen den Szenen problemlos.