FHEM Forum

FHEM => Frontends => SVG / Plots / logProxy => Thema gestartet von: betateilchen am 05 April 2024, 22:37:55

Titel: [Wunsch] 98_SVG.pm - fixedrange mittels perl code dynamisch erzeugen
Beitrag von: betateilchen am 05 April 2024, 22:37:55
Hallo Rudi,

im Moment habe ich folgende Anforderung an einige meiner SVG-plots: ich möchte in der laufenden Woche nur den Zeitraum Montag bis einschließlich Freitag anzeigen.

fixedrange = 5days verschiebt sich von Tag zu Tag, deshalb komme ich damit nicht weiter.

Aber fixedrange bietet ja auch die Möglichkeit, sowas anzugeben: "2024-04-01 2024-04-06"

In meiner 99_myUtils.pm habe ich eine Funktion, die ausgehend vom aktuellen Datum genau diesen Rückgabewert erzeugt. Damit kann ich in einem at jede Nacht die Attribute in den entsprechenden SVG-devices setzen. Das funktioniert zwar, ist aber irgendwie nicht schön.

Mein erster Denkansatz war, den Attributwert im SVG device als perl Code zu verarbeiten.
Aber vielleicht hast Du auch noch eine bessere/andere Idee?



Index: 98_SVG.pm
===================================================================
--- 98_SVG.pm   (Revision 28758)
+++ 98_SVG.pm   (Arbeitskopie)
@@ -961,6 +961,9 @@
   if($defs{$wl}) {
     $fr = AttrVal($wl, "fixedrange", undef);
     if($fr) {
+      if ($fr =~ m/^{(.*)}$/) { # eval perl function
+         $fr = AnalyzePerlCommand(undef,$1);
+      }
       if($fr =~ "^(hour|qday|day|week|month|year)" ||
          $fr =~ m/^\d+hour/  || #fixedrange with offset
          $fr =~ m/^\d+day/   ||
Titel: Aw: [Wunsch] 98_SVG.pm - fixedrange mittels perl code dynamisch erzeugen
Beitrag von: rudolfkoenig am 08 April 2024, 11:45:23
Habs in leicht geaenderten Form eingecheckt und dokumentiert.
Titel: Aw: [Wunsch] 98_SVG.pm - fixedrange mittels perl code dynamisch erzeugen
Beitrag von: betateilchen am 08 April 2024, 12:51:11
Danke, funktioniert.