FHEM Forum

FHEM => Frontends => fronthem / smartVISU => Thema gestartet von: Kai-Alfonso am 10 Oktober 2019, 13:28:07

Titel: fronthem Converter. ReadingsTimestamp anpassen
Beitrag von: Kai-Alfonso am 10 Oktober 2019, 13:28:07
Hi,

ich würde gerne einen neuen Converter auf Basis des ReadingsTimestamp Konverters nutzen, der statt den komplettem Timestamp nur das Datum zurückliefert.

so sieht der Original Konverter aus:

sub ReadingsTimestamp(@)
{
  my ($param) = @_;
  my $cmd = $param->{cmd};
  my $gad = $param->{gad};
  my $gadval = $param->{gadval};
  my $device = $param->{device};
  my $reading = $param->{reading};
  my $event = $param->{event};
  my @args = @{$param->{args}};
  my $cache = $param->{cache};

  if ($param->{cmd} eq 'get')
  {
    $param->{cmd} = 'send';
  }
  if ($param->{cmd} eq 'send')
  {
    $param->{gad} = $gad;
  $param->{gadval} = main::ReadingsTimestamp($device, $reading, 0);
    $param->{gads} = [];
    return undef;
  }
  elsif ($param->{cmd} eq 'rcv')
  {
    return 'done';
  }
  elsif ($param->{cmd} eq '?')
  {
    return 'usage: Readingstimestamp';
  }
  return undef;
}



Die Zeile $param->{gadval} = main::ReadingsTimestamp($device, $reading, 0); liefert ja den Timestring und irgendwie kann ich den ja per split trennen, aber ich bekomme das syntaktisch nicht richtig hin. Meine  erste Idee war:

    $param->{gadval} = split(' ',main::ReadingsTimestamp($device, $reading, 0))[0];


das scheint aber nicht zu gehen.

Hat jemand eine Idee?
Titel: Antw:fronthem Converter. ReadingsTimestamp anpassen
Beitrag von: Kai-Alfonso am 15 Oktober 2019, 14:29:53
Hi,

ich weiß, es ist unfein sich sich selbst zu antworten  8), aber ich habs hinbekommen und falls ich selber oder wer anders nach der Lösung sucht. Folgendes in die 99_fronthemUtils.pm eintragen:

sub ReadingsDate(@)
{
  my ($param) = @_;
  my $cmd = $param->{cmd};
  my $gad = $param->{gad};
  my $gadval = $param->{gadval};
  my $device = $param->{device};
  my $reading = $param->{reading};
  my $event = $param->{event};
  my @args = @{$param->{args}};
  my $cache = $param->{cache};

  if ($param->{cmd} eq 'get')
  {
    $param->{cmd} = 'send';
  }
  if ($param->{cmd} eq 'send')
  {
    $param->{gad} = $gad;
my $ts = main::ReadingsTimestamp($device, $reading, 0) =~ /^(\d+)-(\d+)-(\d+)\s(\d+:\d+):(\d+)$/;
my $ts_date = "$3.$2.$1";;

    $param->{gadval} =  $ts_date;
    $param->{gads} = [];
    return undef;
  }
  elsif ($param->{cmd} eq 'rcv')
  {
    return 'done';
  }
  elsif ($param->{cmd} eq '?')
  {
    return 'usage: Readingstimestamp';
  }
  return undef;
}


Was nicht geht (aber auch keiner der anderen converter aus der 99_fronthemUtils) ist, das der fronthem Editor den Converter kennt.  Weiß einer, wie ich ihm das beibringen kann?
Titel: Antw:fronthem Converter. ReadingsTimestamp anpassen
Beitrag von: Huntercover am 15 November 2019, 23:24:25
keine Ahnung was Du willst bzw. gemacht hast, aber hier wurde ein neuer Converter "Plotfile" samt Mode eingebaut:
https://forum.fhem.de/index.php/topic,86584

einfach die fronthemEditor.js gegen die originale aus SmartVisu2.9 vergleichen..