diff --git a/fhem/FHEM/98_SVG.pm b/fhem/FHEM/98_SVG.pm
index ed7d42720..21321a670 100644
--- a/fhem/FHEM/98_SVG.pm
+++ b/fhem/FHEM/98_SVG.pm
@@ -1651,7 +1651,7 @@ SVG_render($$$$$$$$$$)
}
$tstep = $step;
$first_tag=""; $tag=". 6";
- $aligntext = 2; $aligntics = 2;
+ $aligntext = 3; $aligntics = 3;
}
my $barwidth = $tstep;
@@ -1674,12 +1674,13 @@ SVG_render($$$$$$$$$$)
}
} else { # times
- $initoffset = int(($tstep/2)/86400)*86400 if($aligntics == 1);
- for(my $i = $fromsec+$initoffset; $i < $tosec; $i += $tstep) {
+ for(my $i = $fromsec; $i < $tosec; $i += $tstep) {
$i = SVG_time_align($i,$aligntics);
$off1 = int($x+($i-$fromsec)*$tmul);
- SVG_pO "";
- SVG_pO "";
+ if($off1 > $x+8 && $off1 < $x+$w-8) {
+ SVG_pO "";
+ SVG_pO "";
+ }
}
}
@@ -1731,14 +1732,25 @@ SVG_render($$$$$$$$$$)
}
} else { # times
- $initoffset = 86400 if($aligntext == 1);
- for(my $i = $fromsec+$initoffset; $i < $tosec; $i += $step) {
+ for(my $i = $fromsec; $i < $tosec; $i += $step) {
$i = SVG_time_align($i,$aligntext);
- $off1 = int($x+($i-$fromsec)*$tmul);
+ if($aligntext >= 2) { # center month and year
+ $off1 = int($x+($i-$fromsec+$step/2)*$tmul);
+ } else {
+ $off1 = int($x+($i-$fromsec)*$tmul);
+ }
$t = SVG_fmtTime($tag, $i);
- SVG_pO "$t";
- SVG_pO " ";
+ if($off1 == $x) {
+ SVG_pO "$t";
+ } elsif ($off1 < $x+$w-8) {
+ SVG_pO "$t";
+ }
+ $off1 = int($x+($i-$fromsec)*$tmul);
+ if($off1 > $x+8 && $off1 < $x+$w-8) {
+ SVG_pO " ";
+ }
}
}
@@ -2374,11 +2386,12 @@ sub
SVG_time_align($$)
{
my ($v,$align) = @_;
+ my $wl = $FW_webArgs{detail};
return $v if(!$align);
if($align == 1) { # Look for the beginning of the week
for(;;) {
my @a = localtime($v);
- return $v if($a[6] == 0);
+ return $v if($a[6] == SVG_Attr($FW_wname, $wl, "plotWeekStartDay", 0));
$v += 86400;
}
}
@@ -2389,6 +2402,13 @@ SVG_time_align($$)
$v += 86400;
}
}
+ if($align == 3) { # Look for the beginning of the year
+ for(;;) {
+ my @a = localtime($v);
+ return $v if($a[7] == 0);
+ $v += 86400;
+ }
+ }
}
sub