Kann man ein (at) auch per Datum schalten ?. Nach meiner bisherigen Kenntnis ist bisher at nur auf HH:MM:SS begrenzt, oder ?
Hat es jemand schon geschafft auch dieses auf zB. MM:DD (MM=Monat, DD=Tag) plus die eigentliche Deinition HH:MM:SS zu bringen ?
Also im Prinzip:
define Hallo at MM:DD HH:MM:SS set Beispiel...
Hi!
Direkt mit Dateum m.W. nicht. Du könntest aber die Zeit bis zum gewünschten Datum per eigener Perlroutine in der 99_myUtils.pm errechnen und im Timespec-Format als Zeit ausgeben lassen und dann in at Ensetzen.
So in der Art etwa:
define Test at{Datumsroutine("Datum")} {....}
in 99_myUtils.pm.
sub
Datumsroutine($) {
my $Datum = @_;
....
return &Zeitvariable
}
MfG, MisterEltako
Hallo,
als event sollte man sowas doch per event.holiday-Datei erledigen können.
Einfach am
03-18 Heut_Mach_was
eintragen und auf den Text dann per if reagieren und dann eine Aktion am
18.03 um HH:MM:SS anlegen lassen.
So mach ich das zumindest immer mit meinen Urlaubs/Ferientagen für unsere Heizung.
Wenn ich frei hab braucht das Bad nicht hochheizen - ok, dazu wird $we gefüllt aber das Prinzip sollte
das gleiche sein.
Grüße
Erstmal DANKE für die Antworten.
Eine weitere Frage dazu, da ich schon einen großen Schritt weiter bin.
Wie kann ich einen Wert minimieren, in meinem Fall subtrahieren ?.
Ziel: ich würde gerne bei einem ReadingsVal einen Wert um -1 setzen, sobald eine Bedingung nicht erfüllt ist.
Oder anders beschrieben:
Hat als Beispiel: my $Monatstag = ReadingsVal("Monatstag", "state", undef) einen State-Wert von "14" und ich möchte stattdessen "13" haben, müsste hier 1 subtrahiert werden, also sowas wie: my $Monatstag = ReadingsVal("Monatstag", "state", undef)-1
Wie bekomme ich das hin ?. Ich habe nun schon fast alles mögliche probiert, bekomme aber im Log immer nen Fehler.
Hallo,
my $Monatstag = ReadingsVal("Monatstag", "state", undef)
my $Monatstag_gestern=$Monatstag-1
Ich bin mir aber nicht sicher ob man
a) so überhaupt subtrahieren kann und
b) die Anweisung richtig ist.
evtl. kann man das in einen Dummy füttern und diesen dann dekrementieren und neu auslesen.
Aber es geht sicher auch einfacher.
Grüße
Edith:
Zitatbekomme aber im Log immer nen Fehler
Ich hab die zeile jetzt nicht nachgestellt um den Fehler zu bekommen.
Daher wäre evtl. die Fehlermeldung recht interresant.
Wenn ich mich recht erinner kann man ein define machen, das jeden Tag per if prüft, ob HEUTE das Datum xy ist und dann was ausführt (und sich vorteilhafterweise am Ende noch löscht). Genau Syntax hab ich nicht, müssten mal ein paar PERL Profis ran.
Die Frage gab's aber schonmal musst du mal die Google Group Archive (hier in diesem Forum) durchsuchen.
Ich habs... wer suchet, der findet...
Ich fand im Internet auf einer Perl-Webseite diesen Befehl und das klappt so wie ich es möchte
my $Monatstag = ReadingsVal("Monatstag", "state", undef);
$Monatstag-- if (ReadingsVal("Weckzeit","state","") eq "22:15:00")
Hi,
aus meinen ´mal kopierten Vorlagen in Reserve:
## Vorlage: Licht zu bestimmten Datum schalten +löschen
define Licht_25_Januar_an at *07:15:00 {if($year==2011 && $month==1 && $mday==25) \ {fhem "set Licht1 on";; fhem "delete Licht_25_Januar_an"} }
Aus heutiger Sicht ist evtl. die letzte Klammer "}" zuviel, bitte testen.
Gruß,
Stefan