Hallo Zusammen,
habe gerade ein kleine Rule gebaut zum Test, bin dabei zum gleichen Ergebnis wie eigelbgeek gekommen:
Code: Alles auswählen
// Globale Variablen immer zu Beginn der Datei definieren!
var Timer tLum = null
var nLum = 0
rule "Luminanz test"
when
Item Dummy4 changed
then
logInfo("luminanz_test","Rule getriggert! Dummy4: {}; tLum: {} ", Dummy4.state,tLum)
if(!(Dummy4.state instanceof OnOffType)) {
logWarn("luminanz_test","Dummy4 enthält keinen gültigen Wert!")
return;
}
logInfo("luminanz_test","Dummy4: {}; tLum: {}",Dummy4.state,tLum)
if (Dummy4.state == ON && now.getHourOfDay > 13 && now.getHourOfDay < 23 && tLum === null) {
logInfo("luminanz_test","Timer wird angelegt!")
nLum = 0
tLum = createTimer(now.plusSeconds(1), [|
var Number nTime = 1
// nLum += 1
nLum = nLum + 1
logInfo("luminanz_test","Timer wird ausgeführt! nLum: {}",nLum)
switch nLum {
case 1 : {
logInfo("luminanz_test","1 Status Markise: {}",Dummy4.state) // test
// Markise.sendCommand(DOWN)
nTime = 6
}
case 2: {
logInfo("luminanz_test","2 Status Roll_WZ_W_li: {}",Dummy4.state) // test
// Roll_WZ_W_li.sendCommand(DOWN)
}
case 3: {
logInfo("luminanz_test","3 Status Roll_WZ_W_re: {}",Dummy4.state) // test
// Roll_WZ_W_re.sendCommand(DOWN)
}
case 4: {
logInfo("luminanz_test","4 Status Markise: {}",Dummy4.state) // test
// Markise.sendCommand(DOWN)
}
case 5: {
logInfo("luminanz_test","5 Status Roll_WZ_W_li: {}",Dummy4.state) // test
// Roll_WZ_W_li.sendCommand(DOWN)
}
case 6: {
logInfo("luminanz_test","6 Status Roll_WZ_W_re: {}",Dummy4.state) // test
// Roll_WZ_W_re.sendCommand(DOWN)
nTime = 10
}
default: {
logInfo("luminanz_test","7 Status nTime: {} Status nLum: {}",nTime, nLum) // test
nTime = 0
}
}
if(nTime > 0) {
logInfo("luminanz_test","8 Status nTime Reschedule: {}",nTime) // test
tLum.reschedule(now.plusSeconds(nTime))
}
else {
tLum = null
logInfo("luminanz_test","9 Status tLum = : {}",tLum) // test
}
])
}
logInfo("luminanz_test"," Ende der Rule")
end
Der Logger sieht dann so aus:
Code: Alles auswählen
2019-08-14 17:19:28.370 [INFO ] [smarthome.model.script.luminanz_test] - Rule getriggert! Dummy4: ON; tLum: null
2019-08-14 17:19:28.384 [INFO ] [smarthome.model.script.luminanz_test] - Dummy4: ON; tLum: null
2019-08-14 17:19:28.416 [INFO ] [smarthome.model.script.luminanz_test] - Timer wird angelegt!
2019-08-14 17:19:28.442 [INFO ] [smarthome.model.script.luminanz_test] - Ende der Rule
2019-08-14 17:19:29.433 [INFO ] [smarthome.model.script.luminanz_test] - Timer wird ausgeführt! nLum: 1
2019-08-14 17:19:29.442 [INFO ] [smarthome.model.script.luminanz_test] - 1 Status Markise: ON
2019-08-14 17:19:29.454 [INFO ] [smarthome.model.script.luminanz_test] - 8 Status nTime Reschedule: 6
2019-08-14 17:19:35.467 [INFO ] [smarthome.model.script.luminanz_test] - Timer wird ausgeführt! nLum: 2
2019-08-14 17:19:35.477 [INFO ] [smarthome.model.script.luminanz_test] - 2 Status Roll_WZ_W_li: ON
2019-08-14 17:19:35.488 [INFO ] [smarthome.model.script.luminanz_test] - 8 Status nTime Reschedule: 1
2019-08-14 17:19:36.503 [INFO ] [smarthome.model.script.luminanz_test] - Timer wird ausgeführt! nLum: 3
2019-08-14 17:19:36.513 [INFO ] [smarthome.model.script.luminanz_test] - 3 Status Roll_WZ_W_re: ON
2019-08-14 17:19:36.522 [INFO ] [smarthome.model.script.luminanz_test] - 8 Status nTime Reschedule: 1
2019-08-14 17:19:37.539 [INFO ] [smarthome.model.script.luminanz_test] - Timer wird ausgeführt! nLum: 4
2019-08-14 17:19:37.549 [INFO ] [smarthome.model.script.luminanz_test] - 4 Status Markise: ON
2019-08-14 17:19:37.559 [INFO ] [smarthome.model.script.luminanz_test] - 8 Status nTime Reschedule: 1
2019-08-14 17:19:38.574 [INFO ] [smarthome.model.script.luminanz_test] - Timer wird ausgeführt! nLum: 5
2019-08-14 17:19:38.582 [INFO ] [smarthome.model.script.luminanz_test] - 5 Status Roll_WZ_W_li: ON
2019-08-14 17:19:38.591 [INFO ] [smarthome.model.script.luminanz_test] - 8 Status nTime Reschedule: 1
2019-08-14 17:19:39.607 [INFO ] [smarthome.model.script.luminanz_test] - Timer wird ausgeführt! nLum: 6
2019-08-14 17:19:39.617 [INFO ] [smarthome.model.script.luminanz_test] - 6 Status Roll_WZ_W_re: ON
2019-08-14 17:19:39.627 [INFO ] [smarthome.model.script.luminanz_test] - 8 Status nTime Reschedule: 10
2019-08-14 17:19:49.641 [INFO ] [smarthome.model.script.luminanz_test] - Timer wird ausgeführt! nLum: 7
2019-08-14 17:19:49.648 [INFO ] [smarthome.model.script.luminanz_test] - 7 Status nTime: 1 Status nLum: 7
2019-08-14 17:19:49.658 [INFO ] [smarthome.model.script.luminanz_test] - 9 Status tLum = : {}
Ich habe natürlich die Timerzeiten eingekürzt und die Bedingugen etwas abgeändert und natürlich auch keine Rollos gesteuert.
Es ist tatsächlich das Wörtchen Number, das zu viel war für die Variable. Ich meine auch gelesen zu haben, dass das System in diesm Fall selbst den richtigen Typ festlegt. (Irgendwas mit primitive und int)