FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: outhouse am 09 Mai 2013, 09:09:51

Titel: Formatierung Datum
Beitrag von: outhouse am 09 Mai 2013, 09:09:51
Hallo

Um jeweils das aktuellste Bild mit dem Modul IPCAM zu laden, muss der entsprechende Link alle 15 Minuten angepasst werden. Dazu benötige ich (u.a.) das Jahr (4-stellig), den Monat, den Tag, die Stunde und die Minute (jeweils 2-stellig). Der String sollte wie folgt dargestellt werden: xxxx/xxxxx/xxx_201305090815

Leider scheitere ich bei den 2-stelligen Datums- bzw. Zeitangaben.

define TestBild at +*00:01:00 { \
my $link = "fileadmin/livePicCam/pano1_rechts/Pano1_rechts_";;\
my $m = sprintf("%%02d",$month);;\
my $d = sprintf("%%02d",$mday);;\
{fhem "set Test $link$year$m$d";;} }

define Test dummy

Als Ausgabe resultiert:

fileadmin/livePicCam/pano1_rechts/Pano1_rechts_2013%02d%02d

Bei

{fhem "set Test $link$year$month$mday@hour@min";;} erhalte ich die Ausgabe ohne 2stellige Monats-, Tages-, Stunden- und Minutenangabe:

fileadmin/livePicCam/pano1_rechts/Pano1_rechts_20135997

Weiss jemand, wo der FEhler bei meiner Formatierung liegen könnte?

Gruss

Chris
Titel: Aw: Formatierung Datum
Beitrag von: Ralph am 09 Mai 2013, 09:27:41
Zitat von: outhouse schrieb am Do, 09 Mai 2013 09:09fileadmin/livePicCam/pano1_rechts/Pano1_rechts_20135997
Moin, ohne es nachvollzogen zu haben behaupte ich mal, dass die Ausgabe aus Sicht des Computers richtig ist.

.... Pano1_rechts_201305090907

Du müsstest also - falls sie fehlen - die Nullen programmtechnisch "dazudichten".
Frag mich bitte nicht, wie das geht, da gibts hier weitaus Qualifiziertere.
So ähnlich wie if Wert < 10 then Wert == "0"Wert.
Titel: Aw: Formatierung Datum
Beitrag von: MisterEltako am 09 Mai 2013, 09:45:49
Hi!

Habe gerade deine Codzeilen ausprobiert:

define Test4 dummy
define Testung4 notify Test4 {\
my $link = "fileadmin/livePicCam/pano1_rechts/Pano1_rechts_";;\
my $m = sprintf("%%02d",$month);;\
my $d = sprintf("%%02d",$mday);;\
Log 3, "$link$year$m$d";;\
fhem "set Test4 $link$year$m$d";;\
}

Ich erhalte:

fileadmin/livePicCam/pano1_rechts/Pano1_rechts_20130509


MfG, MisterEltako
Titel: Aw: Formatierung Datum
Beitrag von: outhouse am 09 Mai 2013, 10:24:52
Hallo MisterEltako

Wenn ich das Beispiel (Test4 dummy) verwende, klappt es auch bei mir. Also habe ich meinen Script entsprechend dem Tes4 dummy angepasst:

define Test dummy
define TestBild at +*00:01:00 { \
my $link = "fileadmin/livePicCam/pano1_rechts/Pano1_rechts_";;\
 my $m = sprintf("%%02d",$month);;\
 my $d = sprintf("%%02d",$mday);;\
 Log 3, "$link$year$m$d";;\
 fhem "set Test $link$year$m$d";;\
}

Hier erhalte ich die Ausgabe wir vorher:

fileadmin/livePicCam/pano1_rechts/Pano1_rechts_2013%02d%02d

Gruss

Chris
Titel: Aw: Formatierung Datum
Beitrag von: MisterEltako am 09 Mai 2013, 11:33:36
Verstehe ich nicht! Bei mir klappt das so mit korrekter Ausgabe!

Versuche es einfach noch so:

define Test4 dummy
define Testung4 notify Test4 {\
my $link = "fileadmin/livePicCam/pano1_rechts/Pano1_rechts_";;\
my $m = sprintf("%%02d",$month);;\
my $d = sprintf("%%02d",$mday);;\
Log 3, "$link$year$m$d";;\
fhem "set Test4 "."$link"."$year"."$m"."$d";;\
}

oder so:

define Test4 dummy
define Testung4 notify Test4 {\
my $link = "fileadmin/livePicCam/pano1_rechts/Pano1_rechts_";;\
my $m = sprintf("%02d",$month);;\
my $d = sprintf("%02d",$mday);;\
Log 3, "$link$year$m$d";;\
fhem "set Test4 "."$link"."$year"."$m"."$d";;\
}

MfG, MisterEltako.
Titel: Aw: Formatierung Datum
Beitrag von: outhouse am 09 Mai 2013, 12:07:15
Hallo MisterEltako

my $m = sprintf("%02d",$month);;\
my $d = sprintf("%02d",$mday);;\


Das ist die Lösung!!! Super.

Vielen Dank für die Hilfe

Chris