FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: hotwebnet am 19 Oktober 2015, 07:24:20

Titel: Zeitsteuerung Montag-Freitag
Beitrag von: hotwebnet am 19 Oktober 2015, 07:24:20
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....
Titel: Antw:Zeitsteuerung Montag-Freitag
Beitrag von: Rince am 19 Oktober 2015, 07:46:05
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
Titel: Antw:Zeitsteuerung Montag-Freitag
Beitrag von: hotwebnet am 19 Oktober 2015, 08:00:47
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
Titel: Antw:Zeitsteuerung Montag-Freitag
Beitrag von: andy19850 am 19 Oktober 2015, 08:16:42
So wie ich das sehe, musst du [1] durch [Wochentag] ersetzen. Bei deiner Lösung sollte das nur am Tag [1], also Montags funktionieren.
Titel: Antw:Zeitsteuerung Montag-Freitag
Beitrag 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....
Titel: Antw:Zeitsteuerung Montag-Freitag
Beitrag von: Hollo am 19 Oktober 2015, 08:55:15
DOIF / at ???
Wieso nicht Weekdaytimer ?   :o
Titel: Antw:Zeitsteuerung Montag-Freitag
Beitrag von: maxritti am 19 Oktober 2015, 09:09:02
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.
Titel: Antw:Zeitsteuerung Montag-Freitag
Beitrag 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.......
Titel: Antw:Zeitsteuerung Montag-Freitag
Beitrag von: Damian am 19 Oktober 2015, 10:14:05
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
Titel: Antw:Zeitsteuerung Montag-Freitag
Beitrag 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ß
Titel: Antw:Zeitsteuerung Montag-Freitag
Beitrag von: hotwebnet am 19 Oktober 2015, 10:35:06
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
Titel: Antw:Zeitsteuerung Montag-Freitag
Beitrag von: hotwebnet am 19 Oktober 2015, 10:37:50
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") }}
Titel: Antw:Zeitsteuerung Montag-Freitag
Beitrag von: marvin78 am 19 Oktober 2015, 10:42:09
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)
Titel: Antw:Zeitsteuerung Montag-Freitag
Beitrag 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.....
Titel: Antw:Zeitsteuerung Montag-Freitag
Beitrag von: Wuppi68 am 19 Oktober 2015, 11:24:12
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?
Titel: Antw:Zeitsteuerung Montag-Freitag
Beitrag 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....
Titel: Antw:Zeitsteuerung Montag-Freitag
Beitrag von: marvin78 am 19 Oktober 2015, 11:51:23
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.
Titel: Antw:Zeitsteuerung Montag-Freitag
Beitrag von: Wuppi68 am 19 Oktober 2015, 12:22:05
define Heizung at *08:48:00 { if($wday < 6) { fhem("set Steckdose4 on-for-timer 3600") }}
Titel: Antw:Zeitsteuerung Montag-Freitag
Beitrag von: moonsorrox am 19 Oktober 2015, 12:28:01
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)
Titel: Antw:Zeitsteuerung Montag-Freitag
Beitrag 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
Titel: Antw:Zeitsteuerung Montag-Freitag
Beitrag 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
Titel: Antw:Zeitsteuerung Montag-Freitag
Beitrag von: Brice am 27 Oktober 2015, 13:37:14
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...
Titel: Antw:Zeitsteuerung Montag-Freitag
Beitrag von: Hans Franz am 27 Oktober 2015, 14:31:56
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

Titel: Antw:Zeitsteuerung Montag-Freitag
Beitrag von: moonsorrox am 27 Oktober 2015, 14:43:26
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)
Titel: Antw:Zeitsteuerung Montag-Freitag
Beitrag von: Dietmar63 am 28 Oktober 2015, 08:12:20
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).