Items heißen alle recht gleich.
BatteryLevelKZ
BatteryLevelSZ
BatteryLevelGWC
Das einfachste für mich wäre das zu adaptieren was ich schon habe
Code: Alles auswählen
AlarmBatteryLevelKZ "Kinderzimmer"
AlarmBatteryLevelSZ "Schlafzimmer"
AlarmBatteryLevelGWC "Gäste WC"
Code: Alles auswählen
gBatteryLevel
gAlarmBatteryLevel
Snatsch hat geschrieben: ↑26. Jun 2021 10:25 vielen Dank für deine Antwort. Wie so oftDas mit dem Strich hatte ich gestern Abend schon probiert und hatte aber keine Lehrzeichen gesetzt
![]()
Mein Code sieht jetzt so aus.
Code: Alles auswählen
var Timer tWash = null var Boolean bWash = false rule "Waschmaschine fertig" when Item Waschmaschine_Leistung changed then logInfo("Waschmaschine", "Rule triggert ! Wert : {} ", Waschmaschine_Leistung.state ) if(!bWash) { if(Waschmaschine_Leistung.state > 1600 | W ) // Erkennung die Maschine wurde gestartet bWash = true } else { // bWash ist true -> Maschine aktiv if(Waschmaschine_Leistung.state < 4 | W ) { // Erkennung die Maschine ist vielleicht fertig if(tWash === null) tWash = createTimer(now.plusMinutes(3), [| MeldungWhatsApp.postUpdate("Die Waschmaschiene ist fertig !") MeldungSay.postUpdate("Die Waschmaschine ist fertig",null) tWash = null bWash = false ]) } else if(Waschmaschine_Leistung.state > 6 | W ) { // notwendig, falls Stromaufnahme zwischendurch sehr niedrig tWash?.cancel tWash = null } } end
Code: Alles auswählen
var Timer tWash = null
var Boolean bWash = false
rule "Waschmaschine fertig"
when
Item EG_bad_x_gs1_Power changed
then
val Number valWamaPwr = (EG_bad_x_gs1_Power.state as Number).floatValue // Messwert als Zahl ohne Einheit
logInfo("WASCHMASCHINE", "Waschmaschine Rule triggert ! Wert : {} ", valWamaPwr)
if(!bWash)
{
if(valWamaPwr > 10) // Erkennung die Maschine wurde gestartet
bWash = true
VxWaschma.sendCommand(ON)
}
else
{ // bWash ist true -> Maschine aktiv
if(valWamaPwr < 2)
{ // Erkennung die Maschine ist vielleicht fertig
if(tWash === null)
tWash = createTimer(now.plusMinutes(3), [|
tWash = null
bWash = false
logInfo("WASCHMASCHINE", "Waschmaschine fertig ! Wert : {} ", valWamaPwr)
val actions = getActions("pushover", "pushover:pushover-account:soundBike")
actions.sendHtmlMessage("Waschmaschine ist fertig", "openHAB3")
VxWaschma.sendCommand(OFF)
])
}
else if(valWamaPwr >= 2.5)
{ // notwendig, falls Stromaufnahme zwischendurch sehr niedrig
tWash?.cancel
tWash = null
logInfo("WASCHMASCHINE", "Waschmaschine Stromaufnahme zwischendurch sehr niedrig - Wert : {} ", valWamaPwr)
}
}
end
Code: Alles auswählen
2023-03-05 14:56:42.999 [ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID 'Waschkeller-1' failed: An error occurred during the script execution: index=1, size=1 in Waschkeller
Code: Alles auswählen
Number StromverbrauchWaschmaschine "Stromverbrauch Waschmaschine" <Energy> (gMapdb) ["Point"] {channel="shelly:shellyplus1pm:Waschmaschine:meter#currentWatts"}
Code: Alles auswählen
var Timer tWash = null
var Boolean bWash = false
val telegramAction = getActions("telegram","telegram:telegramBot:Telegram_Bot")
rule "Waschmaschine fertig"
when
Item StromverbrauchWaschmaschine changed
then
if(!bWash) {
if(StromverbrauchWaschmaschine.state > 10) { // Erkennung die Maschine wurde gestartet
sendTelegram("Waschmaschine wurde gestartet")
bWash = true
}
} else { // bWash ist true -> Maschine aktiv
if(StromverbrauchWaschmaschine.state < 1.4) { // Erkennung die Maschine ist vielleicht fertig
if(tWash === null)
tWash = createTimer(now.plusMinutes(4), [|
sendTelegram("Waschmaschine ist fertig")
tWash = null
bWash = false
])
} else if(StromverbrauchWaschmaschine.state > 3){ // notwendig, falls Stromaufnahme zwischendurch sehr niedrig
tWash?.cancel
tWash = null
}
}
end
Code: Alles auswählen
var Timer tWash = null
var Boolean bWash = false
rule "Waschmaschine fertig"
when
Item StromverbrauchWaschmaschine changed
then
val nStrom = (StromverbrauchWaschmaschine.state as Number).floatValue
if(!bWash) {
if(nStrom > 10) { // Erkennung die Maschine wurde gestartet
val telegramAction = getActions("telegram","telegram:telegramBot:Telegram_Bot")
sendTelegram("Waschmaschine wurde gestartet")
bWash = true
}
} else { // bWash ist true -> Maschine aktiv
if(nStrom < 1.4) { // Erkennung die Maschine ist vielleicht fertig
if(tWash === null)
tWash = createTimer(now.plusMinutes(4), [|
val telegramAction = getActions("telegram","telegram:telegramBot:Telegram_Bot")
sendTelegram("Waschmaschine ist fertig")
tWash = null
bWash = false
])
} else if(nStrom41 > 3){ // notwendig, falls Stromaufnahme zwischendurch sehr niedrig
tWash?.cancel
tWash = null
}
}
end
Code: Alles auswählen
[ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID 'Waschmaschine-1' failed: An error occurred during the script execution: index=1, size=1 in Waschmaschine