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
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_2013
05
09
09
07
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.
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
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
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.
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