FileLog notify Reduzierung

Begonnen von noansi, 06 August 2021, 10:12:44

Vorheriges Thema - Nächstes Thema

Ralf9

Bei der 00_SIGNALduino.pm wird das fakelog nur dazu verwendet um im "Information menu" über eine url das "Last Flashlog" auszugeben, gibts dafür eine andere Möglichkeit?

sub SIGNALduino_FW_Detail($@) {
  my ($FW_wname, $name, $room, $pageHash) = @_;

  my $hash = $defs{$name};
  my @dspec=devspec2array("DEF=.*fakelog");
  my $lfn = $dspec[0];
  my $fn=$defs{$name}->{TYPE}."-Flash.log";

  my $ret = "<div class='makeTable wide'><span>Information menu</span>
<table class='block wide' id='SIGNALduinoInfoMenue' nm='$hash->{NAME}' class='block wide'>
<tr class='even'>";

  if (-s AttrVal('global', 'logdir', './log/') .$fn)
  {
    my $flashlogurl="$FW_ME/FileLog_logWrapper?dev=$lfn&type=text&file=$fn";

    $ret .= "<td>";
    $ret .= "<a href=\"$flashlogurl\">Last Flashlog<\/a>";
    $ret .= "</td>";
  }
...


Gruß Ralf
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

rudolfkoenig

ZitatBei der 00_SIGNALduino.pm wird das fakelog nur dazu verwendet um im "Information menu" über eine url das "Last Flashlog" auszugeben, gibts dafür eine andere Möglichkeit?
Klar, selbst programmieren :)

Ralf9

ZitatKlar, selbst programmieren
hab ich nun auch gemacht, das Dialogfenster hab ich vom fhemweb abgeschaut.


sub SIGNALduino_FW_Detail {
...
  if (-s AttrVal("global", "logdir", "./log/") .$fn)
  {
  $ret.="<td><a href='#showLastFlashlog' id='showLastFlashlog'>Last Flashlog</a></td>";
  #$ret .= "<a href=\"$flashlogurl\">Last Flashlog<\/a>";
  }
...
<script>
$( "#showLastFlashlog" ).click(function(e) {
e.preventDefault();
FW_cmd(FW_root+\'?cmd={SIGNALduino_FW_getLastFlashlog("'.$FW_detail.'")}&XHR=1\', function(data){SD_dispLastFlashlog(data)});
});
...
function SD_dispLastFlashlog(txt)
{
  var div = $("<div id=\"SD_LastFlashlog\">");
  $(div).html(txt);
  $("body").append(div);
  $(div).dialog({
    dialogClass:"no-close", modal:true, width:"auto", closeOnEscape:true,
    maxWidth:$(window).width()*0.9, maxHeight:$(window).height()*0.9,
    title: "last Flashlog",
    buttons: [
      {text:"close", click:function(){
        $(this).dialog("close");
        $(div).remove();
      }}]
  });
}


sub SIGNALduino_FW_getLastFlashlog
{
my $name = shift;

my $filename = AttrVal("global", "logdir", "./log/") . "$defs{$name}->{TYPE}-Flash.log";
my $ret;
my $openflag = 1;
open my $fh, "<", $filename or $openflag = 0;
if ($openflag) {
$ret = do { local $/; <$fh> };
#$ret = FW_htmlEscape($ret);
$ret = "<pre>$ret</pre>";
$ret =~ s/\n/<br>/g;
Log3 $name, 4, "getLastFlashlog: filename=$filename";
close $fh;
}
else {
$ret = "$filename not found";
}
return $ret;
}


Zu was wird dies benötigt?
$ret = "<pre>$ret</pre>";

Gruß Ralf
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

justme1968

die idee war ja den code wieder zu verwenden statt zu duplizieren. das ganze am ende 4 oder 5 mal zu haben ist nicht wirklich elegant ...
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968