hallo,
Ich möchte die Steuerung von Timern gern über Readings eines Dummys realisieren. Änderungen der Readings spüre ich mit einem notify auf, dessen Events ich in eine SubRoutine übergebe. In dieser wird ein modify Befehl zusammengebaut und ausgelöst, der die Uhrzeit des jeweiligen at ändert.
sub
Jalousietimer($$)
{
my ($notifyPRT1,$notifyPRT2) = @_;
my $Jalousie = ReadingsVal("Jalousietimer",substr($notifyPRT1,0,2),"");
my $JalousieAbrev = substr($notifyPRT1,0,2);
my $Schaltbefehl = "";
# $notifyPRT2 ist die Schaltzeit
fhem("modify Jalousietimer_$JalousieAbrev\_$Schaltbefehl at *$notifyPRT2");
fhem("save fhem.cfg");
}
Ergebnis: Der Befehl wird so zusammengebaut, wie ich das will, ich bekomme bei der Ausführung aber eine Fehlermeldung: Wrong timespec at: either HH:MM:SS or {perlcode}
Was mache ich falsch?
Testweise habe ich den obigen Befehl dann direkt über die Eingabezeile geschickt:
modify Jalousietimer_WZ_02 at *12:56
...mit demselben Ergebnis. Testweise habe ich dann das Define des at Befehls über die Eingabezeile probiert (und anschließend mit save gesichert) - und das klappt!
define Jalousietimer_WZ_02 at *12:57 set WZ_Jalousie off
Für jede Hilfe dankbar....
Burkart
Moin Burkart,
die Doku hilft wie so oft:
Zitatmodify <name> <type-dependent-options>
Used to modify some definitions. Useful for changing some at or notify definitions. If specifying one argument to an at type definition, only the time part will be changed. In case of a notify type definition, only the regex part will be changed. All other values (state, attributes, etc) will remain intact. After modify, the global event "MODIFIED" will be generated.
Example:
define lampon at 19:00 set lamp on
modify lampon *19:00
modify lampon 19:00 set lamp on-for-timer 16
also versuch mal dies:
modify Jalousietimer_WZ_02 *12:56
Gruß Otto
Danke Otto, das war's. Ich hatte wohl ein Brett vorm Kopf ::)