Seite 1 von 1
Heizung Tür-auf Steuerung
Verfasst: 27. Dez 2018 16:16
von ollis112
Hallo,
ich versuche eine Timersteuerung zu erstellen.
Wenn die Terrassentür länger als 10 Minuten offen ist, sollen sich die Heizkörper ausschalten.
Leider bekomme ich eine Fehlermeldung: missing EOF at 'var'
Kann mir einer bitte helfen.
Hier mein Code:
Gruß
Oliver
var Timer tTerassentuer = null
rule "Terassentuer_Heizung Timer"
when
Item Terassentuer changed
then
tTerassentuer?cancel
if(Terassentuer.state == OPEN)
tTerassentuer = createTimer(now.plusMinutes(10), [|
if(Termostat_Wohn.state == 1 && Termostat_Ess.state == 1)
Termostat_Wohn.sendCommand(0)
Termostat_Ess.sendCommand(0)
])
end
Re: Heizung Tür-auf Steuerung
Verfasst: 27. Dez 2018 17:54
von limdul79
Kann es sein, dass in der Rules Datei mehrere Regeln sind?
Sprich, dass vor der Timer Deklaration noch andere Regeln sind? Wenn ja - verschieb die Timer Definition mal vor die allererste Regel.
Re: Heizung Tür-auf Steuerung
Verfasst: 27. Dez 2018 20:06
von ollis112
Leider nein.
Steht alleine in der Datei
Re: Heizung Tür-auf Steuerung
Verfasst: 29. Dez 2018 09:27
von ollis112
Habe den Fehler gefunden!
die Zeile mit dem Löschen des Timers war fehlerhaft.
Nach dem Fragezeichen kommt noch ein Punkt.
Also "Timer?.cancel"
Gruß
Oliver
Re: Heizung Tür-auf Steuerung
Verfasst: 29. Dez 2018 20:07
von udo1toni
Gut, dass Du den Fehler selbst gefunden hast.
Kleine Anregung: Wenn Du Code postest, verwende doch bitte Code Tags, das macht den Code leichter lesbar:
Code: Alles auswählen
var Timer tTerassentuer = null
rule "Terassentuer_Heizung Timer"
when
Item Terassentuer changed
then
tTerassentuer?.cancel
if(Terassentuer.state == OPEN)
tTerassentuer = createTimer(now.plusMinutes(10), [|
if(Termostat_Wohn.state == 1 && Termostat_Ess.state == 1)
Termostat_Wohn.sendCommand(0)
Termostat_Ess.sendCommand(0)
])
end
Du hast da übrigens noch einen Fehler drin, das Item Termostat_Wohn wird nur auf 0 gesetzt, falls beide Items den Status 1 enthalten, das Item Termostat_Ess wird auf jeden Fall auf 0 gesetzt. Ich denke nicht, dass dies Dein Zeil war.

Re: Heizung Tür-auf Steuerung
Verfasst: 30. Dez 2018 11:23
von ollis112
OK, stimmt.
Ist mir gar nicht aufgefallen. Da beide meist gleichzeitig auf 1 stehen.
Wie muss ich das anpassen? Mit einem AND zwischen den sendCommand Befehlen?
Gruß
Oliver
Re: Heizung Tür-auf Steuerung
Verfasst: 30. Dez 2018 21:29
von udo1toni
Du musst die beiden Zeilen als Block markieren:
Code: Alles auswählen
if(Termostat_Wohn.state == 1 && Termostat_Ess.state == 1) {
Termostat_Wohn.sendCommand(0)
Termostat_Ess.sendCommand(0)
}
Wobei eigentlich diese Variante korrekt wäre (immerhin könnten die Thermostaten auch unterschiedlich eingestellt sein):
Code: Alles auswählen
if(Termostat_Wohn.state == 1)
Termostat_Wohn.sendCommand(0)
if(Termostat_Ess.state == 1)
Termostat_Ess.sendCommand(0)
Re: Heizung Tür-auf Steuerung
Verfasst: 31. Dez 2018 10:54
von ollis112
Ah ja, so ist das.
Vielen Dank,
und alles Gute für 2019
Gruß
Oliver