Seite 2 von 2
Re: Feuchtigkeit fehlt neuerdings im Widget
Verfasst: 13. Mär 2023 14:32
von udo1toni
Also, wenn Du das Verhalten genau so haben willst, wäre es vermutlich das Einfachste, Du sicherst beim Senden des Alarms den aktuellen Wert (im Zweifel in einem Number:Dimensionless Item) und prüfst innerhalb der Rule, ob der aktuelle Wert um mehr als 1 % von dem gespeicherten Wert abweicht. Ist das der Fall, speicherst der Du den neuen Wert. Falls er außerdem über dem Alarmwert liegt, alarmierst Du.
Re: Feuchtigkeit fehlt neuerdings im Widget
Verfasst: 20. Mär 2023 07:54
von tommesd
Ich krieg es leider nicht hin, könntest Du mir mal zeigen wie man das macht?
Re: Feuchtigkeit fehlt neuerdings im Widget
Verfasst: 20. Mär 2023 18:04
von udo1toni
Na so:
Code: Alles auswählen
rule "Feuchtewarnung"
when
Item gAlleFeuchtigkeitssensorenKeller changed // Gruppenstatus geändert
then
val Alarmgrenze = 50 // Ab hier Alarmmeldung
val fFeuchteNeu = (newState as Number).floatValue // aktueller Wert
var fFeuchteAlt = 0
if(alterWert.state instanceof Number) // prüfe ob ein gültiger Wert vorliegt
(alterWert.state as Number).floatValue // Wert aus extra Item 'alterWert'
if(fFeuchteNeu < Alarmgrenze) { // neuer Wert unter Alarmgrenze?
alterWert.postUpdate(fFeuchteNeu) // Dann extra Item aktualisieren
return; // und Abbruch
}
// ab hier Alarmgrenze überschritten
if(Math.abs(fFeuchteAlt - fFeuchteNeu) < 1) // Falls Abweichung neu zu alt kleiner 1
return; // Abbruch (OHNE Update des alten Werts!)
// Ab hier Abweichung über 1 %
alterWert.postUpdate(fFeuchteNeu) // Extra Item updaten und Alarm geben
val telegramAction = getActions("telegram","telegram:telegramBot:Telegram_Bot")
telegramAction.sendTelegram("Bitte Keller lüften! Durchnittsfeuchte " + newState.toString)
end
EDIT: ein fehlendes .state ergänzt, plus Prüfung auf gültigen Wert
Re: Feuchtigkeit fehlt neuerdings im Widget
Verfasst: 20. Mär 2023 19:33
von tommesd
Vielen Dank.
Es kommt allerdings ein Fehler
Code: Alles auswählen
2023-03-20 19:31:46.407 [ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID 'feuchtewarnung-1' failed: Could not cast AlleFeuchtigkeitssensorenKeller (Type=NumberItem, State=NULL, Label=Alle Feuchtigkeitssensoren Keller Int, Category=humidity) to java.lang.Number; line 7, column 24, length 41 in feuchtewarnung
Re: Feuchtigkeit fehlt neuerdings im Widget
Verfasst: 20. Mär 2023 22:05
von udo1toni
Ist AlleFeuchtigkeitssensorenKeller Dein Item zum Speichern des alten Werts? Da fehlte noch ein .state
