Kann man ein (at) auch per Datum schalten

Begonnen von sun1907, 14 März 2013, 09:28:54

Vorheriges Thema - Nächstes Thema

sun1907

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...

MisterEltako

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
HMLAN-Konfigurations-Adapter, HM-Funkjalousieaktor/HM-Dimmaktor/HM-Schaltaktor f. Markenschalter, Jalousie-/Schaltaktor von Eltako, FT4 v. Eltako, TCM310

Puschel74

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
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

sun1907

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.

Puschel74

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.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Zrrronggg!

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.
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

sun1907

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")


bsl02

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
RPi3 (FHEM) / CUL V3 868 (FS20) / nanoCUL868 (HM) / RFXtrx433 (IT & ELRO) / MAX!Cube (Thermostate, Fenster) / Bluetooth (presence Handy) / Sonoff mit Tasmota // Audio: RPi3 mit "max2play"-Image (Squeezeserver+Player) / Video: Synology-NAS mit TVheadend, Triax TSS400 Sat-IP Converter