Hallo liebe Community,
ich bin gerade dabei meine DECT Comet (Heizungsthermostate) so zu konfigurieren, wie ich es in der FritzBox getan habe, um mich endgültig von der Benutzeroberfläche von AVM lösen zu können und alles zentral in FHEM verwalten zu können, dazu gehe ich meine Schaltvorgänge durch und versuche diese in den folgenden Code umzuwandeln. Leider bin ich mir nicht ganz sicher, ob die Syntax richtig ist und ich das erreiche, was ich möchte.
Mein Ziel:
Heizkörper im Schlafzimmer soll
Mo, Di, Mi, Do um 16:30Uhr für insgesamt 45Minuten auf 21Grad geschaltet werden, wenn das Fenster im Schlafzimmer (HM_4E3565) das "state" -> closed hat.
Danach soll der Heizkörper wieder auf 17Grad herunter geschaltet werden.
Um 20Uhr soll derselbe Heizkörper erneut auf 21Grad geschaltet werden, wenn auch diesmal das Fenster im Schlafzimmer (HM_4E3565) das "state" -> closed hat.
45Minuten später soll dieser Heizkörper auch wieder auf 17Grad geschaltet werden.
Zitat
define SZ_Heizung_An_Woche at *16:30:00 \
{ \
if (\
($wday == 1) || ($wday == 2) || ($wday == 3) || ($wday == 4) && (ReadingsVal("HM_4E3565","state",0) eq "closed")\
) \
{ fhem("set FBDECT_fbahahttp_10971_0292656 desired-temp 21 ;;;; \
define SZ_Heizung_Aus at +00:45:00 set FBDECT_fbahahttp_10971_0292656 desired-temp 17 ;;;; \
define SZ_Heizung_An1 at +03:30:00 \
{ \
if (ReadingsVal("HM_4E3565","state",0) eq "closed")) \
{ fhem("set FBDECT_fbahahttp_10971_0292656 desired-temp 21") } \
} ;;;; \
define SZ_Heizung_Aus1 at +04:15:00 set FBDECT_fbahahttp_10971_0292656 desired-temp 17") \
}\
Was sagen die Profi's? Funktioniert das so oder habe ich es einfach viel zu umständlich gemacht?
Freue mich auf eure Tips :)
Gruß
Mathias
So wird das nicht funktionieren!
Die öffnende geschweifte Klammer muss mit in die define Zeile.
Habe mal ein paar Anpassungen gemacht:
99_myUtils.pm:
sub HKCheck()
{
if ($wday =~ /^(1|2|3|4)$/ && (Value("HM_4E3565") eq "closed"))
{
fhem "set FBDECT_fbahahttp_10971_0292656:FILTER=desired-temp!=21 desired-temp 21";
fhem "define SZ_Heizung_Aus at +00:45:00 set FBDECT_fbahahttp_10971_0292656:FILTER=desired-temp!=17 desired-temp 17";
}
}
define SZ_Heizung_An_Woche_Nachmittag at *16:30:00 {HKCheck()}
define SZ_Heizung_An_Woche_Abend at *20:00:00 {HKCheck()}
Gruß
Dan
Grandios.
Sprich ich rufe dann nur noch meine Unterroutine auf und habe es schön übersichtlich.
Soweit habe ich das fast verstanden.
Was bezweckst du mit?
Zitat
FBDECT_fbahahttp_10971_0292656:FILTER=desired-temp!=17
Wird damit die Temperatur nur auf 17 Grad gesetzt, wenn diese nicht schon 17Grad ist?
Gruß
Mathias
Zitat von: t1me2die am 24 Oktober 2016, 13:53:09
Was bezweckst du mit?
Wird damit die Temperatur nur auf 17 Grad gesetzt, wenn diese nicht schon 17Grad ist?
Ganz genau!
Gruß
Dan
Zitat von: DeeSPe am 24 Oktober 2016, 13:03:53
So wird das nicht funktionieren!
Die öffnende geschweifte Klammer muss mit in die define Zeile.
Habe mal ein paar Anpassungen gemacht:
99_myUtils.pm:
sub HKCheck()
{
if ($wday =~ /^(1|2|3|4)$/ && (Value("HM_4E3565") eq "closed"))
{
fhem "set FBDECT_fbahahttp_10971_0292656:FILTER=desired-temp!=21 desired-temp 21";
fhem "define SZ_Heizung_Aus at +00:45:00 set FBDECT_fbahahttp_10971_0292656:FILTER=desired-temp!=17 desired-temp 17";
}
}
define SZ_Heizung_An_Woche_Nachmittag at *16:30:00 {HKCheck()}
define SZ_Heizung_An_Woche_Abend at *20:00:00 {HKCheck()}
Gruß
Dan
Die Sache hat noch einen Haken habe ich gerade gesehen!
Die Variable $wday steht in der 99_myUtils nicht zur Verfügung, also muss sie mit übergeben werden!
Also dann so:
99_myUtils.pm:
sub HKCheck($)
{
my ($wday) = @_;
if ($wday =~ /1|2|3|4/ && (Value("HM_4E3565") eq "closed"))
{
fhem "set FBDECT_fbahahttp_10971_0292656:FILTER=desired-temp!=21 desired-temp 21";
fhem "defmod -temporary SZ_Heizung_Aus at +00:45:00 set FBDECT_fbahahttp_10971_0292656:FILTER=desired-temp!=17 desired-temp 17";
}
}
define SZ_Heizung_An_Woche_Nachmittag at *16:30:00 {HKCheck($wday)}
define SZ_Heizung_An_Woche_Abend at *20:00:00 {HKCheck($wday)}
Gruß
Dan
EDIT: Habe define noch in defmod geändert und -temporary ergänzt.
Danke :)
Ich glaube du hast eine schließende Klammer nach dem closed vergessen, wenn ich das richtig sehe?
Zitat von: t1me2die am 24 Oktober 2016, 19:59:05
Danke :)
Ich glaube du hast eine schließende Klammer nach dem closed vergessen, wenn ich das richtig sehe?
Recht hast Du! Hab's oben geändert.
Kann passieren, war ja aus'm Kopf und ungetestet!
Gruß
Dan
War keine Kritik, will es ja auch verstehen und irgendwie fehlte mir da etwas ;D
Ich werde es mal testen, noch einmal recht herzlichen Dank :)
Gruß
Mathias
Zitat von: t1me2die am 24 Oktober 2016, 20:05:36
War keine Kritik, will es ja auch verstehen und irgendwie fehlte mir da etwas ;D
Ich werde es mal testen, noch einmal recht herzlichen Dank :)
Gruß
Mathias
Habe ich auch nicht als Kritik verstanden! :)
Viel Spaß beim Testen!
Es sollte Deinen hier gestellten Anforderungen entsprechen.
Gruß
Dan