Meinst du, du könntest mir das mal in meine Rule einbauen. Da wäre ich dir sehr dankbar.
Viele Grüße
Viele Grüße
val Number MODE_OFF_1 = 0
val Number MODE_STANDBY_1 = 1
val Number MODE_ACTIVE_1 = 2
val Number MODE_FINISHED_1 = 3
var Timer tDishwasher = null
var Long lDishwasherStart = null
rule "Spuelmaschine Consumption State Machine"
when
Item eg_kueche_spuelmaschine_leistung changed
then
if(!(eg_kueche_spuelmaschine_leistung.state instanceof Number)) {
logWarn("dishwasher","Leistung ungültig! ({}) Abbruch!",eg_kueche_spuelmaschine_leistung.state)
return;
}
var Integer nMode = MODE_OFF_1
if(eg_kueche_spuelmaschine_OpState.state instanceof Number) {
nMode = (eg_kueche_spuelmaschine_OpState.state as Number).intValue
}
val Number nLeistung = eg_kueche_spuelmaschine_leistung.state as Number
if(nLeistung < 0.2) {
eg_kueche_spuelmaschine_OpState.postUpdate(MODE_OFF_1)
logInfo("dishwasher","Spülmaschine: MODE_OFF_1")
} else if(nLeistung < 4.5) {
if(nMode == MODE_OFF_1) {
eg_kueche_spuelmaschine_OpState.postUpdate(MODE_STANDBY_1)
logInfo("dishwasher","Spülmaschine: MODE_STANDBY_1")
} else if(nMode == MODE_ACTIVE_1 && tDishwasher === null)
var Integer iMinutes = 5
if((now.millis - lDishwasherStart)/60000 > 90)
iMinutes = 20
tDishwasher = createTimer(now.plusMinutes(iMinutes),[|
eg_kueche_spuelmaschine_OpState.postUpdate(MODE_FINISHED_1)
logInfo("dishwasher","Spülmaschine: MODE_FINISHED_1")
tDishwasher = null
])
} else if(nLeistung > 10) {
tDishwasher?.cancel
tDishwasher = null
if(nMode != MODE_ACTIVE_1) {
eg_kueche_spuelmaschine_OpState.postUpdate(MODE_ACTIVE_1)
lDishwasherStart = now.millis
logInfo("dishwasher","Spülmaschine: MODE_ACTIVE_1")
}
}
end
val Number MODE_OFF_1 = 0
val Number MODE_STANDBY_1 = 1
val Number MODE_ACTIVE_1 = 2
val Number MODE_FINISHED_1 = 3
var Timer tDishwasher = null
var Long lDishwasherStart = null
rule "Spuelmaschine Consumption State Machine"
when
Item eg_kueche_spuelmaschine_leistung changed
then
if(!(eg_kueche_spuelmaschine_leistung.state instanceof Number)) {
logWarn("dishwasher","Leistung ungültig! ({}) Abbruch!",eg_kueche_spuelmaschine_leistung.state)
return;
}
var Integer nMode = MODE_OFF_1
if(eg_kueche_spuelmaschine_OpState.state instanceof Number) {
nMode = (eg_kueche_spuelmaschine_OpState.state as Number).intValue
}
val Number nLeistung = eg_kueche_spuelmaschine_leistung.state as Number
if(nLeistung < 0.2) {
eg_kueche_spuelmaschine_OpState.postUpdate(MODE_OFF_1)
logInfo("dishwasher","Spülmaschine: MODE_OFF_1")
} else if(nLeistung < 4.5) {
if(nMode == MODE_OFF_1) {
eg_kueche_spuelmaschine_OpState.postUpdate(MODE_STANDBY_1)
logInfo("dishwasher","Spülmaschine: MODE_STANDBY_1")
} else if(nMode == MODE_ACTIVE_1 && tDishwasher === null) { // <--- hier
var Integer iMinutes = 5
if((now.millis - lDishwasherStart)/60000 > 90)
iMinutes = 20
tDishwasher = createTimer(now.plusMinutes(iMinutes),[|
eg_kueche_spuelmaschine_OpState.postUpdate(MODE_FINISHED_1)
logInfo("dishwasher","Spülmaschine: MODE_FINISHED_1")
tDishwasher = null
])
} // <-- und hier
} else if(nLeistung > 10) {
tDishwasher?.cancel
tDishwasher = null
if(nMode != MODE_ACTIVE_1) {
eg_kueche_spuelmaschine_OpState.postUpdate(MODE_ACTIVE_1)
lDishwasherStart = now.millis
logInfo("dishwasher","Spülmaschine: MODE_ACTIVE_1")
}
}
end
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.


Kommentar