Hauptmenü

Zeitschaltuhr

Begonnen von cornelius fillmore, 06 März 2015, 16:22:46

Vorheriges Thema - Nächstes Thema

cornelius fillmore

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?
3 x Fhem 5.9 mit RPI

marvin78

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.

cornelius fillmore

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?
3 x Fhem 5.9 mit RPI

Starkstrombastler

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.
IPC\Ubuntu + Fhem, 1wire, Shellies, Siemens Logo!, Z-Wave, PhilipsTV, Vu+duo2, KM200

Dietmar63

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.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

cornelius fillmore

Vielen Dank
Ich werde es mal testen und berichten
3 x Fhem 5.9 mit RPI

Damian

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
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

cornelius fillmore

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?
3 x Fhem 5.9 mit RPI

Damian

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
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

cornelius fillmore

Na ja.
Nun bekomme ich folge Fehlermeldungdi_pumpe DOIF: unknown expression format: 00|7 Please define di_pumpe first Please define di_pumpe first
3 x Fhem 5.9 mit RPI

Damian

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
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

cornelius fillmore

#11
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?
3 x Fhem 5.9 mit RPI

Damian

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
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

cornelius fillmore

#13
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?
3 x Fhem 5.9 mit RPI

Damian

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
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF