Feuchtigkeit fehlt neuerdings im Widget

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Benutzeravatar
udo1toni
Beiträge: 15247
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: Feuchtigkeit fehlt neuerdings im Widget

Beitrag 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.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

tommesd
Beiträge: 70
Registriert: 15. Nov 2021 10:02
Answers: 0

Re: Feuchtigkeit fehlt neuerdings im Widget

Beitrag von tommesd »

Ich krieg es leider nicht hin, könntest Du mir mal zeigen wie man das macht?
Openhabian 4.0.4

Benutzeravatar
udo1toni
Beiträge: 15247
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: Feuchtigkeit fehlt neuerdings im Widget

Beitrag 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
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

tommesd
Beiträge: 70
Registriert: 15. Nov 2021 10:02
Answers: 0

Re: Feuchtigkeit fehlt neuerdings im Widget

Beitrag 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
Openhabian 4.0.4

Benutzeravatar
udo1toni
Beiträge: 15247
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: Feuchtigkeit fehlt neuerdings im Widget

Beitrag von udo1toni »

Ist AlleFeuchtigkeitssensorenKeller Dein Item zum Speichern des alten Werts? Da fehlte noch ein .state :)
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Antworten