
Code: Alles auswählen
rule "Pufferspeicher Nachricht"
when
Item Pufferspeichersensor_Temperatur changed
then
logDebug("warmwasser", "Rule getriggert! Wert : {} ", Pufferspeichersensor_Temperatur.state )
if(!(previousState instanceof Number))
logWarn("warmwasser", "kein gültiger Vergleichswert! Setze Wert unter 55.")
val nPrev = if(previousState instanceof Number) (previousState as Number).floatValue else 50
if(!(newState instanceof Number)) {
logWarn("warmwasser", "Sensor Item liefert keinen gültigen Zahlenwert. Abbruch!")
return;
}
val nNew = (newState as Number).floatValue
if(nNew > 55 && nPrev <= 55) {
logInfo("warmwasser", "Pufferspeicher hat Temperatur 55 °C überschritten! ")
Meldung.postUpdate("Der Pufferspeicher hat die Temperatur 55 °C überschritten!")
// Hier Code zum Setzen der Solltemperatur einbauen:
// Heizung1_Soll.sendCommand(21)
// Heizung2_Soll.sendCommand(21)
}
if(nNew > 85 && nPrev <= 85) {
logWarn("warmwasser", "Pufferspeicher hat Temperatur 85 °C überschritten!")
Meldung.postUpdate("Der Pufferspeicher hat die Temperatur 85 °C überschritten!")
}
end

Zum Testen kannst Du entweder das Logging aufdrehen, oder natürlich das logDebug zu Beginn durch ein logInfo ersetzen. Aber im Normalbetrieb möchtest Du von solchen Rules nur behelligt werden, wenn es auch einen konkreten Anlass gibt (ein Sensor ist ausgefallen o.Ä.)