rule "Sauna Temperatur 85 Grad"
when
Item Sauna_Temperatur changed
then
if(!(newState instanceof Number)) { // Falls aktuell kein gültiger Wert
logWarn("SaunaTemperatur", "Sensor Item liefert keinen gültigen Zahlenwert. Abbruch!") // Meldung
return; // und Abbruch
}
val newTemp = (newState as Number).floatValue // übernimm Wert ohne Einheit
var oldTemp = 20.1 // erzwinge eine Variable vom Typ Float
if(!(previousState instanceof Number)) { // falls alter Wert ungültig
logInfo("SaunaTemperatur", "Vorgängerwert ungültig. Setze Wert unter Grenzwert!") // Meldung
oldTemp = 80 // und default Wert setzen
} else // falls alter Wert gültig
oldTemp = (previousState as Number).floatValue // übernimm diesen ohne Einheit
if(oldTemp <= 85 && newTemp > 85) { // falls Temperatur gerade über 85 gestiegen
logInfo("SaunaTemperatur", "Die Sauna Temperatur ist ueber 85 Grad") // Meldung
Meldung.postUpdate("Die Sauna hat die Temperatur von 85 Grad ereicht")
}
end
openhab4.1.1 auf Pi 4 im Docker Portainer /Grafana&InfluxDB auf Pi 3 in Docker Portainer
Das wäre allerdings eine kleine Untersuchung wert. Greifst Du schreibend auf das Item zu? Greifst Du schreibend auf den Shelly zu, wenn die Temperatur überschritten wird? passieren andere Dinge (vom Shelly aus gesehen), wenn diese Temperatur erreicht ist? Denn eins ist mal sicher: die Rule als solche kann hier keinen Einfluss haben, allenfalls indirekt (und das träfe dann auf alle Rule zu, in denen Meldung per postUpdate beschrieben wird), indem die Meldungs-Rule das System so sehr auslastet, dass anschließend Fehler in der Datenverarbeitung auftreten.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet
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 60.")
val nPrev = if(previousState instanceof Number) (previousState as Number).floatValue else 55
if(!(newState instanceof Number)) {
logWarn("warmwasser", "Sensor Item liefert keinen gültigen Zahlenwert. Abbruch!")
return;
}
val nNew = (newState as Number).floatValue
if(nNew > 60 && nPrev <= 60) {
logInfo("warmwasser", "Pufferspeicher hat Temperatur 60 °C überschritten! ")
Meldung.postUpdate("Der Pufferspeicher hat die Temperatur 60 °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
die läuft ohne Probleme
openhab4.1.1 auf Pi 4 im Docker Portainer /Grafana&InfluxDB auf Pi 3 in Docker Portainer
ich werde es jetzt beim nächsten Saunaabend noch mal testen. Habe in der Beschreibung gelesen das der Sensor nur bis 100 Grad zuverlässig funktioniert. Vieleicht hat er wirklich einen abbekommen als die Temperatur das letzte mal auf 115 Grad war Ich liebe es warm in der Sauna
openhab4.1.1 auf Pi 4 im Docker Portainer /Grafana&InfluxDB auf Pi 3 in Docker Portainer
Also hab heute gemerkt das der Fühler wahrscheinlich hin ist die Störung geht bei 90 Grad los mal schauen ob ich einen Messfühler bekomme der für solche Temperaturen geeignet ist
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
openhab4.1.1 auf Pi 4 im Docker Portainer /Grafana&InfluxDB auf Pi 3 in Docker Portainer
Habe jetzt einen neuen Sensor verbaut der bis 125 Grad gehen soll aber immer noch das gleiche Problem. In der Shelly App kann ich nicht feststellen das der Sensor keinen gültigen Wert ausgibt. Ich werde jetzt erst mal die Rule "Meldung " ändern bis ich eine andere Lösung habe
openhab4.1.1 auf Pi 4 im Docker Portainer /Grafana&InfluxDB auf Pi 3 in Docker Portainer