Hallo Leute,
habe da wieder mal eine Baustelle.
(Das Grundgerüst der rule kommt hier aus dem Forum :-) )
Ich versuche, die Raumtemperatur mit einem Homematic-Heizungsventil zu regeln.
Die Temperatur kann ich auch einstellen, die Temp wird geregelt nach Fensterzustand und alles.
Nur die Regelung nach Zeit funktioniert mal und mal nicht.
Kann sich das jemand erklären?
Ich finde den Fehler nicht.
Hat jemand eine Idee?
habe da wieder mal eine Baustelle.
(Das Grundgerüst der rule kommt hier aus dem Forum :-) )
Ich versuche, die Raumtemperatur mit einem Homematic-Heizungsventil zu regeln.
Die Temperatur kann ich auch einstellen, die Temp wird geregelt nach Fensterzustand und alles.
Nur die Regelung nach Zeit funktioniert mal und mal nicht.
Kann sich das jemand erklären?
Ich finde den Fehler nicht.
Hat jemand eine Idee?
Code:
//###########################################################################
//# Rule zur Steuerung der Temperatur im WC #
//# - Zeitregelung #
//# - nach Zustand des Fensters #
//###########################################################################
var fTemp_WC_low = 12.0
var fTemp_WC_high = 16.0
var fTemp_WC_save = 6.0
rule "Autoset Morgen"
when
Time cron "0 10 8 ? * * *" //täglich 8:10 Uhr
then
if (Temp_Auto.state==ON)
{
Temp_WC_temp.postUpdate(fTemp_WC_high) //gespeicherte Temperatur überschreiben
if (Fensterkontakt_WC.state == CLOSED) //Fenster geschlossen ->
{
Temp_WC_set.sendCommand(Temp_WC_temp.state as Number) //Solltemperatur setzen
logInfo("Temp_WC.rules", "Temperatur Autoset Morgen WC gesetzt")
}
}
end
rule "Autoset Abend"
when
Time cron "0 10 21 ? * * *" //täglich 21:10 Uhr //täglich 21 Uhr
then
if (Temp_Auto.state==ON)
{
Temp_WC_temp.postUpdate(fTemp_WC_low) //gespeicherte Temperatur überschreiben
if (Fensterkontakt_WC.state == CLOSED) //Fenster geschlossen ->
{
Temp_WC_set.sendCommand(Temp_WC_temp.state as Number)//Solltemperatur setzen
logInfo("Temp_WC.rules", "Temperatur Autoset Abend WC gesetzt")
}
}
end
rule "Fensterkontakt WC"
when
Item Fensterkontakt_WC changed //Fenster geöffnet oder geschlossen
then
if (Fensterkontakt_WC.state == OPEN && (Temp_WC_set.state as Number) != fTemp_WC_save) //Fenster wurde geöffnet, Temperatur noch nicht geändert
{
logInfo("Temp_WC.rules", "Temperatur WC wegen Fenster offen geändert")
Temp_WC_temp.postUpdate(Temp_WC_set.state as Number)
Temp_WC_set.sendCommand(fTemp_WC_save)
}
else if (Fensterkontakt_WC.state == CLOSED) //Fenster wurde geschlossen
{
logInfo("Temp_WC.rules", "Temperatur WC wegen Fenster geschlossen geändert")
Temp_WC_set.sendCommand(Temp_WC_temp.state as Number)
}
end



Kommentar