fronthem Converter. ReadingsTimestamp anpassen

Begonnen von Kai-Alfonso, 10 Oktober 2019, 13:28:07

Vorheriges Thema - Nächstes Thema

Kai-Alfonso

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?
Raspi2|nanoCul433|nanoCul868|CCU2
Energie-USBZähler|homebrew HM Devices
DBLog|DBRep|Homematic|Baumarktsteckdosen
Hue|Webcams mit DS-Station (Synology)|Bewegungsmelder|Rollladen|Schalter (IT|HM)

Kai-Alfonso

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?
Raspi2|nanoCul433|nanoCul868|CCU2
Energie-USBZähler|homebrew HM Devices
DBLog|DBRep|Homematic|Baumarktsteckdosen
Hue|Webcams mit DS-Station (Synology)|Bewegungsmelder|Rollladen|Schalter (IT|HM)

Huntercover

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..