Ich schaltet das erste Relais, welches nach 0,5 sec wieder ausgeschaltet wird. Danach wird 1 sec. gewartet und das 2. Relais für 0,5 sec eingeschaltet.
So wie die Rule aufgebaut ist funktioniert es leider nicht. Das 1. Relais schaltet 0,5 sec dann wird es mit einer 1 sec Verzögerung an das 2. Relais übergeben. Dieses schaltet aber 2 mal. Das ist auch im log ersichtlich. Offensichtlich wird ein Wert an die rule. 1.2 übergeben welches dann das 2. Relais nochmals schaltet.
Rule 1.1 ist für das 1. Relais
Rule 1.2 ist für die zeitversetzte Übergabe an Relais 2
Rule. 1.3 ist für das 2. Relais
Was mir jetzt aufgefallen ist, wenn ich openhab neu starte schaltet das 2. Relais kurz.
Wo liegt mein Fehler???
// Rolle für die Ralais, welches im Kühlschrank verbaut ist.
var Timer V_Kuehlschrank_Frost_01 = null
var Timer V_Kuehlschrank_Cold_01 = null
var Timer V_Kuehlschrank_Frost_to_Cold = null
rule "1.1 Kuehlschrank_Frost ON OFF"
when
Item K_Kuehlschrank_Frost received update ON
then
if(V_Kuehlschrank_Frost_01 === null) {
//logInfo("Kuehlschrank_Frost", "Setting to ON/OFF for Frost")
V_Kuehlschrank_Frost_01 = createTimer(now.plusMillis(500), [|
logInfo("Kuehlschrank_Frost", "Setting to ON/OFF for Frost")
//L_Light.postUpdate(OFF)
sendCommand(K_Kuehlschrank_Frost, OFF)
V_Kuehlschrank_Frost_01 = null
])
} else {
//logInfo("L_Dreambox", "Timer rescheduled for L_Dreambox")
// V_Dreambox_01.reschedule(now.plusSeconds(5))
}
end
//########################################################################
rule "1.2 Kuehlschrank_Frost übergibt von Frost to Cold ON"
when
Item K_Kuehlschrank_Frost received update OFF
then
if(V_Kuehlschrank_Frost_to_Cold === null) {
//logInfo("Kuehlschrank_Frost", "Setting to ON/OFF for Frost")
V_Kuehlschrank_Frost_to_Cold = createTimer(now.plusMillis(2000), [|
logInfo("Kuehlschrank_Frost", "Übergabe an coldSwitch")
//L_Light.postUpdate(OFF)
sendCommand(K_Kuehlschrank_Cold, ON)
V_Kuehlschrank_Frost_to_Cold = null
])
} else {
//logInfo("L_Dreambox", "Timer rescheduled for L_Dreambox")
// V_Dreambox_01.reschedule(now.plusSeconds(5))
}
end
//#####################################################################################
rule "1.3 Kuehlschrank_cold ON OFF"
when
Item K_Kuehlschrank_Cold received update ON
then
if(V_Kuehlschrank_Cold_01 === null) {
//logInfo("Kuehlschrank_Frost", "Setting to ON/OFF for Frost")
V_Kuehlschrank_Cold_01 = createTimer(now.plusMillis(500), [|
logInfo("Kuehlschrank_Cold", "Setting to ON/OFF for Cold")
//L_Light.postUpdate(OFF)
sendCommand(K_Kuehlschrank_Cold, OFF)
V_Kuehlschrank_Cold_01 = null
])
} else {
//logInfo("L_Dreambox", "Timer rescheduled for L_Dreambox")
// V_Dreambox_01.reschedule(now.plusSeconds(5))
}
end