Denkfehler

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Snatsch
Beiträge: 343
Registriert: 9. Jan 2021 22:55

Denkfehler

Beitrag von Snatsch »

Hallo,
habe ich einen Denkfehler ?
Meine Heizung hat zur Zeit einen Betriebsdruck von 1,3 müsste ich nicht mit dieser Rule eine Benachrichtigung bekommen ?

Code: Alles auswählen

rule "Betriebsdruck Heizung"

when Item heatQuellen_systemPressure changed 

then 
    if (heatQuellen_systemPressure.state < 1.4)
        Meldung.postUpdate ("Achtung in der Heizung muß Wasser aufgefüllt werden !")


end 
openhab4.1.1 auf Pi 4 im Docker Portainer /Grafana&InfluxDB auf Pi 3 in Docker Portainer

Benutzeravatar
peter-pan
Beiträge: 2564
Registriert: 28. Nov 2018 12:03
Answers: 25
Wohnort: Schwäbisch Gmünd

Re: Denkfehler

Beitrag von peter-pan »

...normales Number-Item oder UoM-Item (Number:Pressure) ?
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.1 openhabian

Snatsch
Beiträge: 343
Registriert: 9. Jan 2021 22:55

Re: Denkfehler

Beitrag von Snatsch »

:?: verstehe ich nicht
openhab4.1.1 auf Pi 4 im Docker Portainer /Grafana&InfluxDB auf Pi 3 in Docker Portainer

Snatsch
Beiträge: 343
Registriert: 9. Jan 2021 22:55

Re: Denkfehler

Beitrag von Snatsch »

Das steht im Item
"heatQuellen_systemPressure
Aktueller Betriebsdruck
Number "
openhab4.1.1 auf Pi 4 im Docker Portainer /Grafana&InfluxDB auf Pi 3 in Docker Portainer

Benutzeravatar
peter-pan
Beiträge: 2564
Registriert: 28. Nov 2018 12:03
Answers: 25
Wohnort: Schwäbisch Gmünd

Re: Denkfehler

Beitrag von peter-pan »

Hier mal auf die Schnelle, die 2 Möglichkeiten. Die Item-Namen habe ich zum Testen geändert Ich vermute du hast ein UoM-Item, das ist der Item-Typ. Wie hast du denn das Item angelegt ? Über die WebUI oder in einer .items Datei ?

Code: Alles auswählen

when Item OC_WaF_Current_Pressure changed 

then 
    // Prüfung mit Suffix/Unit für den Prüf-Vergleichswert
    if (OC_WaF_Current_Pressure.state > 1007 | hPa)
        logInfo("Heizung", "Achtung in der Heizung muß Wasser aufgefüllt werden ! - Suffix/Unit")
    // Prüfung mit Umwandlung in Fliesskomma-Wert als Vergleich
    if ((OC_WaF_Current_Pressure.state as Number).floatValue > 1007)
        logInfo("Heizung", "Achtung in der Heizung muß Wasser aufgefüllt werden ! - Float")

//        Meldung.postUpdate ("Achtung in der Heizung muß Wasser aufgefüllt werden !")

end
den Item-Typ kannst du hier sehen:
number.jpg
Du brauchst aber nur eine If-Anweisung. Die zweite If-Anweisung sollte die "universellere" sein.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.1 openhabian

Snatsch
Beiträge: 343
Registriert: 9. Jan 2021 22:55

Re: Denkfehler

Beitrag von Snatsch »

angelegt habe ich sie über die WebUI.Bei mir steht SystemPressure.
openhab4.1.1 auf Pi 4 im Docker Portainer /Grafana&InfluxDB auf Pi 3 in Docker Portainer

Benutzeravatar
peter-pan
Beiträge: 2564
Registriert: 28. Nov 2018 12:03
Answers: 25
Wohnort: Schwäbisch Gmünd

Re: Denkfehler

Beitrag von peter-pan »

...soweit ich weiss, gibt es keinen Item-Typ "SystemPressure". Vielleicht schaust du mal im Binding nach, ob da was steht. Deine Angaben sind halt etwas "spärlich"....
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.1 openhabian

Benutzeravatar
KellerK1nd
Beiträge: 432
Registriert: 17. Jun 2019 16:45
Answers: 1
Wohnort: Griesheim

Re: Denkfehler

Beitrag von KellerK1nd »

Das sollte definitiv funktionieren, sofern "heatQuellen_systemPressure" auch ein Number Item ist.

Code: Alles auswählen

rule "Betriebsdruck Heizung"

when Item heatQuellen_systemPressure changed 

then
    if(!(heatQuellen_systemPressure.state instanceof Number))
    	logWarn("Betriebsdruck.Heizung", "liefert keinen gültigen Zahlenwert")
    	return;
   
    if((heatQuellen_systemPressure.state as Number).floatValue < 1.4){
        Meldung.postUpdate("Achtung in der Heizung muß Wasser aufgefüllt werden !")
    }

end 
Zuletzt geändert von KellerK1nd am 21. Jun 2021 18:52, insgesamt 4-mal geändert.
Betriebssystem: Proxmox 7.3-4
openHAB Container: debian11 LXC
openHAB Version: 3.4
Hardware: HomeServer Eigenbau mit einem Intel i5 9600K
Smarthome-Equipment:
- Rasperrymatic
- deConz
- HUE
- Shellys
- Mosquitto
- AVM Fritz!Box

Snatsch
Beiträge: 343
Registriert: 9. Jan 2021 22:55

Re: Denkfehler

Beitrag von Snatsch »

Habe sie jetzt mal so wie in deinem erstem Bsp. angelegt aber die Meldung kommt trotzdem nicht

Code: Alles auswählen

rule "Betriebsdruck Heizung"

when Item heatQuellen_systemPressure changed 

then
    if ((heatQuellen_systemPressure.state as Number).floatValue < 1.4)
            logInfo("Heizung", "Achtung in der Heizung muß Wasser aufgefüllt werden ! ")
                Meldung.postUpdate ("Achtung in der Heizung muß Wasser aufgefüllt werden !")


end 
openhab4.1.1 auf Pi 4 im Docker Portainer /Grafana&InfluxDB auf Pi 3 in Docker Portainer

Benutzeravatar
peter-pan
Beiträge: 2564
Registriert: 28. Nov 2018 12:03
Answers: 25
Wohnort: Schwäbisch Gmünd

Re: Denkfehler

Beitrag von peter-pan »

Snatsch hat geschrieben: 21. Jun 2021 18:49 Habe sie jetzt mal so wie in deinem erstem Bsp. angelegt aber die Meldung kommt trotzdem nicht
Jetzt hast du eine zweizeilige If-Anweisung, dann musst du mit geschweiften Klammern arbeiten

Code: Alles auswählen

rule "Betriebsdruck Heizung"

when Item heatQuellen_systemPressure changed 

then
    if ((heatQuellen_systemPressure.state as Number).floatValue > 1.4) {
            logInfo("Heizung", "Achtung in der Heizung muß Wasser aufgefüllt werden ! ")
            Meldung.postUpdate ("Achtung in der Heizung muß Wasser aufgefüllt werden !")
    }
end 
Natürlich funktioniert das ganze auch nur, wenn sich tatsächlich der Druck ändert und der dann grösser (war da nicht vorher kleiner ???) als 1.4 ist.!!! Du kannst ja mal einen zusätzlichen Dummy-Switch anlegen und über diesen triggern !!!


Edit:
Die Prüfung, ob es überhaupt einen numerischen Wert gibt, wie @KellerK1nd es beschrieben hat ist natürlich noch besser.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.1 openhabian

Antworten