FHEM Forum

FHEM => Frontends => RSS => Thema gestartet von: TomLee am 20 Februar 2023, 13:08:50

Titel: In RSS-Overview den Alias hinter Devicename ergänzen ?
Beitrag von: TomLee am 20 Februar 2023, 13:08:50
Hallo,

bei diesem "Projekt" (https://forum.fhem.de/index.php/topic,131303.msg1255041.html#msg1255041) hat jedes Display eine eigene MAC-Adresse, die Bilder die auf diesen dargestellt werden sollen, müssen nach dieser benannt werden. Beispiel: 00:00:02:6d:d2:8c:3b:1b => 0000026dd28c3b1b.png

Meiner Erkenntnis nach bisher, hat man in dem Modul keine Möglichkeit den Namen der Bilder anzupassen, die Namen der Bilder werden immer vom Devicename abgeleitet.
In der RSS Overview (http://<IP>/fhem/rss) wird das mit steigender Anzahl von RSS-Devices immer schwieriger nachzuvollziehen welcher RSS für welche Darstellung zuständig ist. Darum hab ich angefangen einen Alias zu vergeben, an dessen Name sich ableiten lässt, welcher RSS, was darstellt und dazu im Modul in der RSS_Overview-Funktion den Alias in runden Klammern an den Devicename "angehängt".

Zitat##################
# list all RSS devices
sub RSS_Overview {

    my ( $name, $url, $alias);
    my $html = RSS_HTMLHead( "RSS Overview", undef ) . "<body>\n";
    foreach my $def ( sort keys %defs ) {
        if ( $defs{$def}{TYPE} eq "RSS" ) {
            $name = $defs{$def}{NAME};
            $alias = AttrVal($name,'alias','');
            $alias = $alias ne '' ? qq(($alias)) : '' ;
            $url  = RSS_getURL($name);
            $html .= "$name $alias<br>\n<ul>";
            $html .=
              "<a href='$url/rss/$name.rss' target='_blank' >RSS</a><br>\n";
            $html .=
              "<a href='$url/rss/$name.html' target='_blank' >HTML</a><br>\n";
            $html .=
"<a href='$url/rss/$name.png' target='_blank' >Portable Network Graphics</a><br>\n";
            $html .=
"<a href='$url/rss/$name.jpg' target='_blank' >JPEG Graphics</a><br>\n";
            $html .= "</ul>\n<p>\n";
        }
    }
    $html .= "</body>\n" . RSS_HTMLTail();

    return ( "text/html; charset=utf-8", $html );
}

Ist es vorstellbar das das so in der Art im Modul übernommen/ergänzt wird ?

Gruß

Thomas
Titel: Antw:In RSS-Overview den Alias hinter Devicename ergänzen ?
Beitrag von: Dr. Boris Neubert am 20 Februar 2023, 18:00:17
Gerne!

Bitte mal angehängte Datei testen.

Spot the difference  ;)
Titel: Antw:In RSS-Overview den Alias hinter Devicename ergänzen ?
Beitrag von: TomLee am 20 Februar 2023, 19:33:44
Zitat von: Dr. Boris Neubert am 20 Februar 2023, 18:00:17
Bitte mal angehängte Datei testen.

Spot the difference  ;)

Die Position (qq( ($alias))) an der das Leerzeichen vorgenommen wird ist der Unterschied.
Find es merkwürdig die zwei Variablen ($name$alias) da aufeinander sitzend anzusehen, aber wenn man das so macht/machen kann, warum nicht, mir ist egal wie das Leerzeichen da hinkommt.

Im nachhinein, würd ich die Änderung jetzt ohne Verwendung der einfachen Quotes vorschlagen und überall q() verwenden:

Zitatsub RSS_Overview {

    my ( $name, $url, $alias );
    my $html = RSS_HTMLHead( "RSS Overview", undef ) . "<body>\n";
    foreach my $def ( sort keys %defs ) {
        if ( $defs{$def}{TYPE} eq "RSS" ) {
            $name = $defs{$def}{NAME};
            $alias = AttrVal($name, 'alias', q());
            $alias = $alias ne q() ? qq( ($alias)) : q() ;
            $url  = RSS_getURL($name);
            $html .= "$name$alias<br>\n<ul>";
            $html .=
              "<a href='$url/rss/$name.rss' target='_blank' >RSS</a><br>\n";
            $html .=
              "<a href='$url/rss/$name.html' target='_blank' >HTML</a><br>\n";
            $html .=
"<a href='$url/rss/$name.png' target='_blank' >Portable Network Graphics</a><br>\n";
            $html .=
"<a href='$url/rss/$name.jpg' target='_blank' >JPEG Graphics</a><br>\n";
            $html .= "</ul>\n<p>\n";
        }
    }
    $html .= "</body>\n" . RSS_HTMLTail();

    return ( "text/html; charset=utf-8", $html );
}
Titel: Antw:In RSS-Overview den Alias hinter Devicename ergänzen ?
Beitrag von: betateilchen am 20 Februar 2023, 20:19:49
Die Idee mit dem alias habe ich im InfoPanel nachgezogen.
Bei der Umsetzung habe ich es mir aber ein bisschen einfacher gemacht.


        my $alias = ' ('.AttrVal($name,'alias','').')';
        $alias = '' if $alias eq ' ()';
Titel: Antw:In RSS-Overview den Alias hinter Devicename ergänzen ?
Beitrag von: Dr. Boris Neubert am 21 Februar 2023, 07:27:30
Meine Version von gestern habe ich soeben eingecheckt.
Titel: Offtopic: In RSS-Overview den Alias hinter Devicename ergänzen ?
Beitrag von: TomLee am 21 Februar 2023, 22:02:10
Nach Gedanken über Betateilchens Umsetzung, ginge mein Vorschlag, in Kombination mit Dr. Boris Neuberts Änderung, auch einfacher:

$alias = AttrVal($name, 'alias', q());
$alias = qq( ($alias)) if $alias;
Titel: Antw:In RSS-Overview den Alias hinter Devicename ergänzen ?
Beitrag von: TomLee am 25 Februar 2023, 20:59:49
Hat meine zuletzt vorgeschlagene Erkenntnis, über meinen eigenen Vorschlag, irgendwer nachvollzogen ?

Was sind die Gegenargumente und warum zieht Ihr das in beiden Modulen nicht nach ?