Könnte mal wieder Hilfe gebrauchen

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Benutzeravatar
Snatsch
Beiträge: 455
Registriert: 9. Jan 2021 22:55
Answers: 0

Re: Könnte mal wieder Hilfe gebrauchen

Beitrag von Snatsch »

Code: Alles auswählen

2021-12-03 22:49:44.770 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'AussentuerePartyraum_TurFensterstatus' changed from CLOSED to OPEN
2021-12-03 22:49:53.244 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'AussentuerePartyraum_TurFensterstatus' changed from OPEN to CLOSED
2021-12-03 22:49:53.261 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'HeizungPartyraum_Solltemperatur_Fensterkontakt' received command 21.0
2021-12-03 22:49:53.272 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'HeizungPartyraum_Solltemperatur_Fensterkontakt' predicted to become 21.0
nach einer Minute

Code: Alles auswählen

2021-12-03 22:50:53.256 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'HeizungPartyraum_Solltemperatur_Fensterkontakt' received command 6
2021-12-03 22:50:53.259 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'HeizungPartyraum_Solltemperatur_Fensterkontakt' predicted to become 6
2021-12-03 22:50:53.271 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'HeizungPartyraum_Solltemperatur_Fensterkontakt' changed from 21.0 to 6
openhab4.3.1 auf Pi 5 8GB im Docker Portainer&Frontail /Grafana&InfluxDB und mosquitto auf Pi 3 in Docker Portainer/Pi 3 mit Docker zur Datensicherung / Pi 4 4GB Portainer & Deconz

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

Re: Könnte mal wieder Hilfe gebrauchen

Beitrag von udo1toni »

Du hast da Klammern vergessen...

Code: Alles auswählen

var Number   HeizungPartyraum_Solltemperatur = 6    // HeizungPartyraum_Solltemperatur_Fensterkontakt
var Timer AussentuerePartyraumHeizungMeldung = null

rule "Türe Partyraum Auf Heizung aus"
when
    Item AussentuerePartyraum_TurFensterstatus changed
then
    AussentuerePartyraumHeizungMeldung?.cancel      //cancel timer if running

    if(AussentuerePartyraum_TurFensterstatus.state == OPEN) { // <--- DA
     HeizungPartyraum_Solltemperatur = if(HeizungPartyraum_Solltemperatur_Fensterkontakt.state instanceof Number) (HeizungPartyraum_Solltemperatur_Fensterkontakt.state as Number) else 21
        AussentuerePartyraumHeizungMeldung = createTimer(ZonedDateTime.now.plusMinutes(1), [|
            HeizungPartyraum_Solltemperatur_Fensterkontakt.sendCommand(6)
        ])
    } // <--- UND DA
    if(AussentuerePartyraum_TurFensterstatus.state == CLOSED)
        HeizungPartyraum_Solltemperatur_Fensterkontakt.sendCommand(HeizungPartyraum_Solltemperatur)
end
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

int5749
Beiträge: 1173
Registriert: 4. Nov 2019 22:08
Answers: 9

Re: Könnte mal wieder Hilfe gebrauchen

Beitrag von int5749 »

udo1toni hat geschrieben: 4. Dez 2021 06:54 Du hast da Klammern vergessen...
:oops:
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

Benutzeravatar
Snatsch
Beiträge: 455
Registriert: 9. Jan 2021 22:55
Answers: 0

Re: Könnte mal wieder Hilfe gebrauchen

Beitrag von Snatsch »

Vielen Dank für eure Hilfe :) jetzt scheint es zu funktionieren wie es soll.

Code: Alles auswählen

HeizungPartyraum_Solltemperatur = if(HeizungPartyraum_Solltemperatur_Fensterkontakt.state instanceof Number) (HeizungPartyraum_Solltemperatur_Fensterkontakt.state as Number) else 21
könntet ihr mir diese Codezeile noch erklähren ? wäre echt super das ich auch verstehe wie es funktioniert :)
openhab4.3.1 auf Pi 5 8GB im Docker Portainer&Frontail /Grafana&InfluxDB und mosquitto auf Pi 3 in Docker Portainer/Pi 3 mit Docker zur Datensicherung / Pi 4 4GB Portainer & Deconz

int5749
Beiträge: 1173
Registriert: 4. Nov 2019 22:08
Answers: 9

Re: Könnte mal wieder Hilfe gebrauchen

Beitrag von int5749 »

Snatsch hat geschrieben: 4. Dez 2021 21:24 Vielen Dank für eure Hilfe :) jetzt scheint es zu funktionieren wie es soll.
Sehr gerne!
Snatsch hat geschrieben: 4. Dez 2021 21:24

Code: Alles auswählen

HeizungPartyraum_Solltemperatur = if(HeizungPartyraum_Solltemperatur_Fensterkontakt.state instanceof Number) (HeizungPartyraum_Solltemperatur_Fensterkontakt.state as Number) else 21
könntet ihr mir diese Codezeile noch erklähren ? wäre echt super das ich auch verstehe wie es funktioniert :)
Diese Zeile speichert die aktuelle Temperatur aus dem Item HeizungPartyraum_Solltemperatur_Fensterkontakt in die Variable HeizungPartyraum_Solltemperatur, welche bei Start den Wert 6 enthält.

Um nun aber auch noch sicherzustellen, dass ein gültiger Wert enthalten ist und somit gespeichert wird, wird geprüft ob das Item eine gültige Zahl enthält und nicht z.B. NULL oder UNDEF ist.
Dies erfolgt hier:

Code: Alles auswählen

HeizungPartyraum_Solltemperatur_Fensterkontakt.state instanceof Number
Sollte das Item keine gültige Zahl enthalten, wird ein default von 21 gesetzt

Code: Alles auswählen

else 21
Kurzum
21 oder eine gültige Zahl aus dem Item.
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

Benutzeravatar
Snatsch
Beiträge: 455
Registriert: 9. Jan 2021 22:55
Answers: 0

Re: Könnte mal wieder Hilfe gebrauchen

Beitrag von Snatsch »

Ahh ok vielen vielen Dank. Ihr seit spitze :)
openhab4.3.1 auf Pi 5 8GB im Docker Portainer&Frontail /Grafana&InfluxDB und mosquitto auf Pi 3 in Docker Portainer/Pi 3 mit Docker zur Datensicherung / Pi 4 4GB Portainer & Deconz

Antworten