Seite 3 von 3
Re: Könnte mal wieder Hilfe gebrauchen
Verfasst: 3. Dez 2021 22:56
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
Re: Könnte mal wieder Hilfe gebrauchen
Verfasst: 4. Dez 2021 06:54
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
Re: Könnte mal wieder Hilfe gebrauchen
Verfasst: 4. Dez 2021 09:34
von int5749
udo1toni hat geschrieben: ↑4. Dez 2021 06:54
Du hast da Klammern vergessen...

Re: Könnte mal wieder Hilfe gebrauchen
Verfasst: 4. Dez 2021 21:24
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

Re: Könnte mal wieder Hilfe gebrauchen
Verfasst: 4. Dez 2021 21:32
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
Kurzum
21 oder eine gültige Zahl aus dem Item.
Re: Könnte mal wieder Hilfe gebrauchen
Verfasst: 4. Dez 2021 21:37
von Snatsch
Ahh ok vielen vielen Dank. Ihr seit spitze
