Hallo, meine Heizung im Bad soll von Montag bis Freitag anspringen....macht Sie aber nicht warum ??
define Steckdose4 at *07:02:00 { if($wday == 1 && if($wday == 2 && if($wday == #3 && if($wday == 4 && if($wday == 5) { fhem("set Steckdose4 on") }}
define Heizung at *07:02:00 { if($wday == 1 || if($wday == 2 || if($wday == 3 #|| if($wday == 4 || if($wday == 5) { fhem("set Steckdose4 on") }}
mit beiden einstellungen geht es nicht....
Schau doch mal in der deutschen Comandref den DOIF Eintrag an.
Da gibt es exakt das was du suchst.
ZitatWochentagsteuerung
Hinter der Zeitangabe kann ein oder mehrere Wochentage als Ziffer getrennt mit einem Pipezeichen | angegeben werden. Die Syntax lautet:
[<time>|012345678] 0-8 entspricht: 0-Sonntag, 1-Montag, ... bis 6-Samstag sowie 7 für Wochenende und Feiertage (entspricht $we) und 8 für Arbeitstage (entspricht !$we)
Anwendungsbeispiel: Radio soll am Wochenende und an Feiertagen um 08:30 Uhr eingeschaltet und um 09:30 Uhr ausgeschaltet werden. An Arbeitstagen soll das Radio um 06:30 Uhr eingeschaltet und um 07:30 Uhr ausgeschaltet werden.
define di_radio DOIF ([06:30|8] or [08:30|7]) (set radio on) DOELSEIF ([07:30|8] or [09:30|7]) (set radio off)
Anstatt einer Zifferkombination kann ein Status oder Reading in eckigen Klammern angegeben werden. Dieser muss zum Triggerzeitpunkt mit der gewünschten Ziffernkombination für Wochentage, wie oben definiert, belegt sein.
Anwendungsbeispiel: Der Wochentag soll über einen Dummy bestimmt werden.
define dummy Wochentag
set Wochentag 135
define di_radio DOIF ([06:30|[Wochentag]] (set radio on) DOELSEIF ([07:30|[Wochentag]]) (set radio off)
(Schau trotzdem mal in die Commandref
so habe jetzt das gemacht.......
define dummy Wochentag
set Wochentag 12345
define Steckdose4 DOIF ([07:58|[1]] (set Steckdose4 on) DOELSEIF ([08:00|[1]]) (set Steckdose4 off)
geht auch nicht
So wie ich das sehe, musst du [1] durch [Wochentag] ersetzen. Bei deiner Lösung sollte das nur am Tag [1], also Montags funktionieren.
so hier der aktuelle Code......
define dummy Wochentag
set Wochentag 12345
define Steckdose4 DOIF ([08:30|[Wochentag]] (set Steckdose4 on) DOELSEIF ([08:31|[Wochentag]]) (set Steckdose4 off)
warum geht das nicht, so steht es doch in der COm....
DOIF / at ???
Wieso nicht Weekdaytimer ? :o
Zitat von: hotwebnet am 19 Oktober 2015, 08:32:46
so hier der aktuelle Code......
define dummy Wochentag
set Wochentag 12345
define Steckdose4 DOIF ([08:30|[Wochentag]] (set Steckdose4 on) DOELSEIF ([08:31|[Wochentag]]) (set Steckdose4 off)
warum geht das nicht, so steht es doch in der COm....
Du solltest mal einen Blick in Dein Log werfen.
Denn augenscheinlich hat sich in der CommandRef ein Fehler eingeschlichen.
Zähle mal die geöffneten und zugehörigen schliessenden Klammern.
Fällt Dir da etwas auf?
Das gleiche solltest Du auch mal bei Deinem ursprünglich definierten at's machen.
Denn da könnte auch schon etwas auffallen.
Und solch ein if-Konstrukt habe ich auch noch nicht gesehen:
if($wday == 1 && if($wday == 2 && if($wday == #3
Ein Logisches UND und dan ein weiteres if dahinter?
Und ein #3 bei der Abfrage des Wertes sieht auch ein wenig komisch aus.
Aber wie gesagt.
Das Log von FHEM sollte Dir eigentlich so einiges gemeldet haben.
Habe jetzt einmal klein angefangen,
define dummy Wochentag
set Wochentag 12345
define Heizung DOIF ([09:18-09:19|1]) (set Steckdose4 on) DOELSE (set Steckdose4 off)
LOG:
2015.10.19 09:18:00 2: IT set Steckdose4 on
2015.10.19 09:18:00 2: IT IODev device didn't answer is command correctly: raw => isFFFFF00FFF
2015.10.19 09:18:00 3: Steckdose4 on->on
Beim Abspeichern der cfg kommt dieser Fehler
ERROR:
Unknown module Wochentag Please define Wochentag first
die Heizung geht nun an und aus.......
Zitat von: hotwebnet am 19 Oktober 2015, 09:23:38
Habe jetzt einmal klein angefangen,
define dummy Wochentag
set Wochentag 12345
define Heizung DOIF ([09:18-09:19|1]) (set Steckdose4 on) DOELSE (set Steckdose4 off)
LOG:
2015.10.19 09:18:00 2: IT set Steckdose4 on
2015.10.19 09:18:00 2: IT IODev device didn't answer is command correctly: raw => isFFFFF00FFF
2015.10.19 09:18:00 3: Steckdose4 on->on
Beim Abspeichern der cfg kommt dieser Fehler
ERROR:
Unknown module Wochentag Please define Wochentag first
die Heizung geht nun an und aus.......
Da ist noch ein Fehler in der Commandref zu DOIF.
Es muss natürlich heißen:
define Wochentag dummy
Aber warum definierst du den dummy Wochentag, wenn du den im DOIF-Modul nicht benutzt?
Gruß
Damian
Wenn es direkt nur um Mo-Fr und Sa-So geht, nimm doch an Stelle von $wday das $we.
Und zu
Beim Abspeichern der cfg kommt dieser Fehler
1: ist der Dummy falsch rum definiert.
2: warum abspeichern in der cfg? Die defines macht man in der Commandzeile.
Gruß
Danke, kannst du mir einmal auf die Sprünge helfen, bin neu und versuche das zu verstehen....
define Wochentag dummy
set Wochentag 12345
define HeizungMo DOIF ([10:30-10:31|1]) (set Steckdose4 on) DOELSE (set Steckdose4 off)
define HeizungDi DOIF ([06:05-06:20|2]) (set Steckdose4 on) DOELSE (set Steckdose4 off)
wie nutze ich das dummy den in DOIF
Zitat von: bergadler am 19 Oktober 2015, 10:19:29
Wenn es direkt nur um Mo-Fr und Sa-So geht, nimm doch an Stelle von $wday das $we.
Und zu
Beim Abspeichern der cfg kommt dieser Fehler
1: ist der Dummy falsch rum definiert.
2: warum abspeichern in der cfg? Die defines macht man in der Commandzeile.
Gruß
die Heizung geht aber so nicht an......
define Wochentag dummy
set Wochentag 12345
define Heizung at *08:48:00 { if($wday == 1) { fhem("set Steckdose4 on") }}
Ich habe dir an anderer Stelle schon den hilfreichen Tipp gegeben, dich mit den Grundlagen von FHEM zu beschäftigen. Leider hat dich das nur zu seltsamen Kommentaren veranlasst. Hättest du den Tipp jedoch beherzigt, wärst du schon am Ziel.
Ich persönlich halte den WeekdayTimer noch immer für besser geeignet, als ein DOIF.
Wie du den dummy einbaust, steht in der commandref und auch sogar hier im Thread:
define HeizungDOIF DOIF ([10:30-10:31]|[Wochentag]] (set Steckdose4 on) DOELSE (set Steckdose4 off)
Ich lese und lese und lese aber ich verstehe nicht warum die Heizung nicht anspringt.....
define Wochentag dummy
set Wochentag 12345
define Heizung DOIF ([11:09-11:10]|[Wochentag]) (set Steckdose4 on) DOELSE (set Steckdose4 off)
die Heizung geht nicht an , aber ich versuche doch alles zu beachten.....
Zitat von: hotwebnet am 19 Oktober 2015, 11:11:55
Ich lese und lese und lese aber ich verstehe nicht warum die Heizung nicht anspringt.....
define Wochentag dummy
set Wochentag 12345
define Heizung DOIF ([11:09-11:10]|[Wochentag]) (set Steckdose4 on) DOELSE (set Steckdose4 off)
die Heizung geht nicht an , aber ich versuche doch alles zu beachten.....
die soll also NUR von 11:09 bis 11:10 angehen und ansonsten immer aus?
nein, die Heizung soll von Montag bis Freitag (habe ich doch in Wochentag dummy 12345 geschrieben) oder verstehe ich da etas falsch....die Zeit ist nur ein Testzeit.....
Also von Montag bis Freitag über das Dummy schalten von 10:00 - 10:15 zum beispiel.....
Später würde ich gerne auch noch ander Zeiten schalten, aber als Rentner ist das mit der Programierung und den verständnis nicht so einfach....
Das halte ich für quatsch. Meine Oma ist 94 und wenn ich der heute die commandref zu DOIF hinlege, kann sie das morgen umsetzen.
Auch wenn alle aktuell auf DOIF abfahren. Für mich bleibt das hier ein klassischer Anwendungsfall für WeekdayTimer. Das mit dem Dummy halte ich ohnehin für überflüssig. Aber ich bin kein DOIF-Experte und hier raus.
define Heizung at *08:48:00 { if($wday < 6) { fhem("set Steckdose4 on-for-timer 3600") }}
Zitat von: hotwebnet am 19 Oktober 2015, 11:46:43
nein, die Heizung soll von Montag bis Freitag (habe ich doch in Wochentag dummy 12345 geschrieben) oder verstehe ich da etas falsch....die Zeit ist nur ein Testzeit.....
Also von Montag bis Freitag über das Dummy schalten von 10:00 - 10:15 zum beispiel.....
Später würde ich gerne auch noch ander Zeiten schalten, aber als Rentner ist das mit der Programierung und den verständnis nicht so einfach....
aber lesen geht doch noch, oder..?
schau mal hier:
ZitatEbenfalls funktionieren indirekte Zeitangaben mit Zeitintervallen. Hier wird die Ein- und Ausschaltzeit jeweils über einen Dummy bestimmt:
define begin dummy
set begin 08:00
define end dummy
set end 10:00
define di_time DOIF ([[begin]-[end]]) (set radio on) DOELSE (set radio off)
super, Danke
so....habe jetzt einmal getestet, an jeden Wochentag geht die Heizung an aber am Wochenende bleibt sie komplett aus....warum ???
define Steckdose4Bad WeekdayTimer Steckdose4 Mo-Fr|06:05|on Sa-Su|09:00|on Mo-FR|06:20|off Sa-Su|09:15|off
so....habe jetzt einmal getestet, an jeden Wochentag geht die Heizung an aber am Wochenende bleibt sie komplett aus....warum ???
define Steckdose4Bad WeekdayTimer Steckdose4 Mo-Fr|06:05|on Sa-Su|09:00|on Mo-FR|06:20|off Sa-Su|09:15|off
Wenn ich meine Brötchen hole, erinnere ich mich jedesmal an deine Vorstellung (http://forum.fhem.de/index.php/topic,33123.msg256734.html#msg256734) und freue mich über deine Ambitionen.
Mach es dir doch nicht so schwer (DOIF) und definiere das Einschalten bzw Auschalten per at:
Einschalten während der Woche (!$we)
define Steckdose4Bad at *06:05:00 {fhem("set Steckdose4 on") if (!$we)}
Einschalten am Wochenende ($we)
define Steckdose4Bad at *09:00:00 {fhem("set Steckdose4 on") if ($we)}
und entsprechende Ausschaltbefehle, z.B.
define Steckdose4Bad at *06:20:00 {fhem("set Steckdose4 off") if (!$we)}
oder du definierst die Einschaltbefehle als "on-till" zum Abschalten
define Steckdose4Bad at *06:05:00 {fhem("set Steckdose4 on-till 12:00:00") if (!$we)}
Das ist zwar mehr Code als mit einem DOIF, aber zunächst einfacher. Wenn ich mal zuviel Zeit habe, werde ich meine "at" vielleicht auch auf DOIF ändern. Irgendwann einmal...
Hallo
define Steckdose4Bad WeekdayTimer Steckdose4 Mo-Fr|06:05|on Sa-Su|09:00|on Mo-FR|06:20|off Sa-Su|09:15|off
Gruß
Hans
Zitat von: hotwebnet am 27 Oktober 2015, 12:17:05
so....habe jetzt einmal getestet, an jeden Wochentag geht die Heizung an aber am Wochenende bleibt sie komplett aus....warum ???
define Steckdose4Bad WeekdayTimer Steckdose4 Mo-Fr|06:05|on Sa-Su|09:00|on Mo-FR|06:20|off Sa-Su|09:15|off
ich weiß jetzt nicht was an einem DOIF so schwer ist, ich hatte dir doch das Beispiel aus der commandref nahe gelegt...!
dann hier mal mit deinen Angaben:
define di_Steckdose4Bad DOIF ([06:05|8] or [09:00]|7) (set Steckdose4 on) DOELSEIF ([06:20|8] or [09:15|7]) (set Steckdose4 off)
Zitat von: hotwebnet am 19 Oktober 2015, 13:05:52
super, Danke
so....habe jetzt einmal getestet, an jeden Wochentag geht die Heizung an aber am Wochenende bleibt sie komplett aus....warum ???
define Steckdose4Bad WeekdayTimer Steckdose4 Mo-Fr|06:05|on Sa-Su|09:00|on Mo-FR|06:20|off Sa-Su|09:15|off
im Log hast du dazu Fehler gemeldet bekommen.
wie obern schon ewähnt ist
define Steckdose4Bad WeekdayTimer Steckdose4 Mo-Fr|06:05|on Sa-So|09:00|on Mo-FR|06:20|off Sa-So|09:15|off
richtig.
Die Tage sind sprachabhänging(de,en,fr).