Seite 1 von 2
Infrarot Heizung über Temperatur und Zeit regeln
Verfasst: 22. Mai 2020 09:16
von Torti
Hallo, ich habe mir für mein Gäste WC eine Infrarot Heizung in Form eines Spiegels gekauft. (Platzsparen da nur 1m auf 1m)
ich habe diesen Spiegel über einen Sonoff mit Temp Sensor dht22 ins openhab eingebunden. Läuft Prima!
Bislang kann ich den Sonoff mit einer Regel steuern, er geht bei unter 18 Grad an und bei über 21,5 Grad aus.
Nun würde ich gerne das Nachts, 22:30 Uhr bis 5:30 Uhr, der Sonoff erst bei 16 Grad an geht und bei 20 wieder aus.
Hier meine bisherige Regel:
Code: Alles auswählen
rule "Temperatur Bad"
when
Item TempToi changed
then
if((TempToi.state as Number).floatValue >= 21.5) {
sendCommand(SwitchToi ,OFF)
}
else if ((TempToi.state as Number).floatValue <= 18) {
sendCommand(SwitchToi ,ON)
}
end
Ich habe aber noch nie eine Zeitsteuerung geregelt.
Re: Infrarot Heizung über Temperatur und Zeit regeln
Verfasst: 22. Mai 2020 11:17
von violine21
Hallo,
wie immer führen mehrere Wege nach Rom.
Du könntest mit zwei Rules und Timecron arbeiten.
Oder z.B. so:
Code: Alles auswählen
rule "Temperatur Bad"
when
Item TempToi changed
then
if(now.getMinuteOfDay >= 1350 || now.getMinuteOfDay <= 330) {
if((TempToi.state as Number).floatValue >= 20) {
sendCommand(SwitchToi ,OFF)
}
else if ((TempToi.state as Number).floatValue <= 16) {
sendCommand(SwitchToi ,ON)
}
}else{
if((TempToi.state as Number).floatValue >= 21.5) {
sendCommand(SwitchToi ,OFF)
}
else if ((TempToi.state as Number).floatValue <= 18) {
sendCommand(SwitchToi ,ON)
}
}
end
Hier wird geprüft, ob die Minute des Tages >= 1350 (22:30 = 22 * 60 + 30) oder ob die Minute des Tages <= 330 (5:30 = 5 * 60 + 30).
Es gibt sicher noch andere Möglichkeiten...
Re: Infrarot Heizung über Temperatur und Zeit regeln
Verfasst: 22. Mai 2020 12:00
von Torti
Hallo, Danke für diese schnelle Antwort.
Ja es führen immer sehr viele Wege zum Ziel, wenn man diese kennt

Deine Lösung erscheint mir aber schön einfach und somit auf mich angepasst

, diese verstehe ich wenigstens.
Gleich antwortet dann bestimmt Udo und Peter Pan und danach bin ich wieder vollends verwirrt, deswegen setze ich deine Lösung erst einmal um.
Dannnkkeee
Re: Infrarot Heizung über Temperatur und Zeit regeln
Verfasst: 22. Mai 2020 12:02
von udo1toni
Wenn Du mehrere tageszeitabhängige Regeln hast, kannst Du auch ein Item definieren, welches Du entsprechend umstellst. In den eigentlichen Rules musst Du dann nur den Status des Items abfragen. Du kannst natürlich auch direkt die Sollwerte entsprechend setzen.
Items:
Code: Alles auswählen
rule "Nacht"
when
Time cron "0 30 22 * * ?" // täglich 22:30
then
isNight.postUpdate(ON)
tempMin.postUpdate(16)
tempMax.postUpdate(20)
end
rule "Tag"
when
Time cron "0 30 5 * * ?" // täglich 05:30
then
isNight.postUpdate(OFF)
tempMin.postUpdate(18)
tempMax.postUpdate(21.5)
end
rule "Heizung Bad"
when
Item TempToi changed
then
val Number nTemp = if(TempToi.state instanceof Number) (TempToi.state as Number).floatValue else 18.5
val Number nMax = if(tempMax.state instanceof Number) (tempMax.state as Number) else 20
val Number nMin = if(tempMin.state instanceof Number) (tempMin.state as Number) else 16
if(nTemp <= nMin && SwitchToi.state != ON) SwitchToi.sendCommand(ON)
else if(nTemp >= nMax && SwitchToi.state != OFF) SwitchToi.sendCommand(OFF)
end
Das Item isNight habe ich nur zur Verdeutlichung eingebaut, wenn Du nichts damit anfangen kannst, brauchst Du es nicht. Es wechselt halt jeweils um 22:30 und 05:30 seinen Zustand.
Die Rule "Heizung Bad" ist fehlertolerant gegen die üblichen Probleme, also dass Ober/Untergrenze nicht definiert wurden oder der Temperatursensor mal keinen gültigen Wert liefert, indem bei Fehlen eines Wertes ein default Wert verwendet wird.
Re: Infrarot Heizung über Temperatur und Zeit regeln
Verfasst: 22. Mai 2020 12:05
von violine21
Torti hat geschrieben: ↑22. Mai 2020 12:00
Gleich antwortet dann bestimmt Udo und Peter Pan und danach bin ich wieder vollends verwirrt...

Darum schrieb ich, das es mehrere Wege gibt...
Re: Infrarot Heizung über Temperatur und Zeit regeln
Verfasst: 22. Mai 2020 12:12
von Torti
Als ob ich es gewusst habe.
Dieses mal habe ich aber verstanden was du geschrieben hast @ Udo1Toni
Entweder liegt es daran, dass ich viel von dier lese( auch in anderen Foren) oder du immer mehr auch für Dumme erklärst.
Ich will KEINE ehrliche Antwort

vielen Dank auch an dich
Re: Infrarot Heizung über Temperatur und Zeit regeln
Verfasst: 22. Mai 2020 13:15
von udo1toni
Torti hat geschrieben: ↑22. Mai 2020 12:12
Als ob ich es gewusst habe.
Dieses mal habe ich aber verstanden was du geschrieben hast @ Udo1Toni
Entweder liegt es daran, dass ich viel von dier lese( auch in anderen Foren) oder du immer mehr auch für Dumme erklärst.
Ich will KEINE ehrliche Antwort

vielen Dank auch an dich
Es mag auch am Beispielcode liegen, in diesem Fall ist es ja doch ein eher einfaches Problem
Und dann kommt es sehr auf meine Tagesverform an, ob ich es schaffe, einfach genug zu beschreiben.
Wenn jemand was nicht versteht, liegt es vermutlich eher an meinem Unvermögen, es verständlich zu erklären, als am fehlenden Intellekt des Lesers. Ich bin halt kein Lehrer

Re: Infrarot Heizung über Temperatur und Zeit regeln
Verfasst: 22. Mai 2020 13:39
von Torti
udo1toni hat geschrieben: ↑22. Mai 2020 12:02
[/code]
if(nTemp <= nMin && SwitchToi.state != ON) SwitchToi.sendCommand(ON)
else if(nTemp >= nMax && SwitchToi.state != OFF) SwitchToi.sendCommand(OFF)
end
[/code]
Eine Frage zu der Zitierten Zeile habe ich noch.
Wenn das Item switchtoi an ist, warum sende ich dann noch mal an und umgekehrt?
Ich verstehe ja, dass es an sein soll um die nMin zu erreichen aber wenn es doch schon state =ON ist, ist es doch an ???
Danke
P.S. du erklärst das alles super
Re: Infrarot Heizung über Temperatur und Zeit regeln
Verfasst: 22. Mai 2020 14:04
von bastler
darf ich mal probieren?
das ist nicht an, durch das ausrufezeichen wird die abfrage invertiert, heißt also "wenn SwitchToi.state NICHT ON ist soll er eingeschaltet werden

Re: Infrarot Heizung über Temperatur und Zeit regeln
Verfasst: 22. Mai 2020 14:09
von Torti
AHHHHHHHH, Wieder schlauer und meinem Ziel einmal eine Regel bis zum Ende selber schreiben etwas näher
