
Code: Alles auswählen
// globale Variablen werden zu Beginn der Datei definiert!
var nLights = 0
var nOnLights = 0
rule "Telegramm Status Lampen anfordern"
when
Item Telegram_Last_Text received update "Status Lampen"
then
val StringBuilder sb = new StringBuilder
nLights = GR_Lichtdr.members.size
nOnLights = GR_Lichtdr.members.filter[ i | i.state == ON].size
if(nOnLights == 0) {
sb.append("Alle Lichter sind ausgeschaltet")
} else if(nLights == nOnLights) {
sb.append("Alle Lichter sind eingeschaltet")
} else {
GR_Lichtdr.members.filter[ i | i.state == ON].forEach[j,k |
if (k > 0) {
if(k < nOnLights - 1)
sb.append(", ")
else
sb.append(" und ")
}
sb.append(j.name)
]
sb.append((if(nOnLights > 1)" sind" else " ist") + " eingeschaltet")
GR_Lichtdr.members.filter[ i | i.state == OFF].forEach[j,k |
if (k > 0) {
if(k < nLights - 1 - nOnLights)
sb.append(", ")
else
sb.append(" und ")
}
sb.append(j.name)
]
sb.append((if(nLights - nOnLights > 1)" sind" else " ist") + " ausgeschaltet")
}
sb.append(".")
logInfo("logger","sb hat den Wert {}",sb)
val telegramAction = getActions("telegram","telegram:telegramBot:bot1")
telegramAction.sendTelegram(sb.toString)
end