Hallo zusammen ich habe aus dem fhemwiki den code der Zeitschaltuhr kopiert.
Zitatdefine PumpeMorgensStart at *07:00:00 {
if (!$we) {
{ fhem("define PumpeMorgens at +*{8}00:15:00 set Umwaelzpumpe on-for-timer 300") }
}
else {
{ fhem("define PumpeMorgens at +*{36}00:15:00 set Umwaelzpumpe on-for-timer 300") }
}
}
Bekommen aber nur Fehlermeldungen
ZitatERROR:
IF: no left bracket: { Unknown command }, try help. Unknown command else, try help. PumpeMorgens already defined, delete it first Unknown command }, try help. Unknown command }, try help. Unknown command }, try help. Unknown command }, try help.
Was kann ich denn dagegen tun?
Nicht einfach irgendwas kopieren, sondern verstehen.
Aber hast du das wirklich so kopiert? Die Fehlermeldung bezieht sich auf das Modul IF!?
Was genau willst du denn machen? Der Code da oben, hat zum einen zu viele Klammern und würde so eingefügt in die Config nicht funktionieren.
Für den DEF-Bereich im Frontend:
*07:00:00 {
fhem("define PumpeMorgens at +*{8}00:15:00 set Umwaelzpumpe on-for-timer 300") if (!we);
fhem("define PumpeMorgens at +*{36}00:15:00 set Umwaelzpumpe on-for-timer 300") if ($we);
}
Edit: Schau dir mal weekdayTimer an.
Ich wollte einfach nur eine Umwälzpumpe laufen lassen.
Diese im 20 Minuten Rhythmus, für 5min.
Wochentags anders wie am Wochenende.
Ich habe mir das weekday-timer auch angeschaut, verstehe das aber nicht ganz.
Kannst du mir da einen Tipp geben?
Das define eines at setzt voraus, dass es rechtzeitig automatisch beendet/gelöscht wird. Ansonsten muss modify benutzt werden.
Mein Vorschlag ist zweistufig. Erstens einen Taktgeber für die Pumpe, der immer durchläuft:
define PumpeTakt at *00:20:00 set Umwaelzpumpe on-for-timer 300
Mit Weekdaytimer werden dann folgende Befehle abgesetzt:
attr PumpeTakt disable 1
attr PumpeTakt disable 0
Damit lässt sich das ganze auch auf anderen Weg ein- oder ausschalten.
Gute Idee:
define PumpeTakt at *00:20:00 set Umwaelzpumpe on-for-timer 300
dann WD so:
define wd1 WeekdayTimer PumpeTakt sa,so|10:00|1 sa,so|13:00|0 {fhem("attr @ %")}
define wd2 WeekdayTimer PumpeTakt mo-fr|09:00|1 mo-fr|15:00|0 {fhem("attr @ %")}
Bei den WD verbose auf 5 setzen, dann kannst du im Log verfolgen, ob es funktioniert.
Vielen Dank
Ich werde es mal testen und berichten
Zitat von: cornelius fillmore am 07 März 2015, 08:15:32
Vielen Dank
Ich werde es mal testen und berichten
oder als Einzeiler:
define di_pumpe DOIF ([+00:20] and ([?10:00-13:00|7] or [?09:00-15:00|8])) (set Umwaelzpumpe on-for-timer 300)
Damit sind auch Feiertage abgedeckt ;)
Gruß
Damian
Zitat von: Damian am 07 März 2015, 10:01:04
define di_pumpe DOIF ([+00:20] and ([?10:00-13:00|7] or [?09:00-15:00|8])) (set Umwaelzpumpe on-for-timer 300)
Damian: Kannst du mir noch mal erklären was die Zeiten in der Klammer jetzt genau bedeuten?
Zitat von: cornelius fillmore am 07 März 2015, 18:37:17
Damian: Kannst du mir noch mal erklären was die Zeiten in der Klammer jetzt genau bedeuten?
Das sind Zeitintervalle, die in dieser Zeit wahr sind. Genaueres kannst du hier mit vielen Beispielen nachlesen: http://fhem.de/commandref_DE.html#DOIF
Gruß
Damian
Na ja.
Nun bekomme ich folge Fehlermeldungdi_pumpe DOIF: unknown expression format: 00|7 Please define di_pumpe first Please define di_pumpe first
Zitat von: cornelius fillmore am 07 März 2015, 18:52:34
Na ja.
Nun bekomme ich folge Fehlermeldungdi_pumpe DOIF: unknown expression format: 00|7 Please define di_pumpe first Please define di_pumpe first
Dann arbeitest du nicht mit der aktuellen Version des Moduls.
Gruß
Damian
update durchgeführt
Fehler bleibt
Zitatdi_pumpe DOIF: unknown expression format: 00|7
Eintrag sieht so aus
Zitatdefine di_pumpe DOIF ([+00:20] and ([?07:00-22:00|7] or [?05:30-21:00|8]))(set PZ on-for-timer 300)
attr di_pumpe do always
attr di_pumpe room Heizung
Eine Idee?
Zitat von: cornelius fillmore am 07 März 2015, 19:06:24
update durchgeführt
Fehler bleibt
Eintrag sieht so ausEine Idee?
Bei mir funktioniert diese Definition ohne Probleme.
Gruß
Damian
habe noch mal update gemacht.
Jetzt scheint es zu gehen :)
Zu früh gefreut.
Es geht irgendwie nur einmal.
Anbei der Log
Zitat
2015.03.08 07:00:00 3: FS20 set WLAN on
2015.03.08 07:08:36 3: FS20 set PZ on-for-timer 300
2015.03.08 07:08:36 2: PZ: changing timeout to 320 from 300
Kann es sein, das die Zeile mit dem do always fehlt?
Zitat von: cornelius fillmore am 07 März 2015, 19:50:14
habe noch mal update gemacht.
Jetzt scheint es zu gehen :)
Zu früh gefreut.
Es geht irgendwie nur einmal.
Anbei der Log
Kann es sein, das die Zeile mit dem do always fehlt?
do always ist in deinem Fall wichtig. Das hast aber doch bereits mit :
Zitatattr di_pumpe do always
gesetzt, sonst wird dein Ausdruck immer nur einmal ausgeführt.
Gruß
Damian