Versionsstring in den einzelnen Modulen

Begonnen von Guest, 30 Oktober 2012, 06:58:18

Vorheriges Thema - Nächstes Thema

Guest

Originally posted by: <email address deleted>

Hallo,

weil, ich ja gerade gar nicht mehr sicher war, welche Version des Moduls
ich zu Testzwecken geladen hatte, möchte ich mal folgende Idee diskutieren:

Pro Modul MUSS ein Versionstring eingefügt werden und fhem.pl führt eine
Liste der Module mit den dazugehörigen Versionsstrings. Dazu sollte es
natürlich ein
Kommando geben, welches mir die Liste der geladenen Module samt
Versionsstring anzeigt.
Das würde meiner Meinung nach bei einer Fehlersuche hilfreich sein.
Reload könnte dahingehend erweitert werden, keine Module mehr ohne
Versionsstring zu laden. Und beim Laden eines Moduls (auch bei
FHEM-Start) kann ein Eintrag ins Log geschrieben werden).

Natürlich müssten wir jetzt alle Module anpacken und diesen String
einfügen oder kann Sourceforge das auch automatisieren??????


LG

RueBe



--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

rudolfkoenig

                                                   

> Natürlich müssten wir jetzt alle Module anpacken und diesen String
> einfügen oder kann Sourceforge das auch automatisieren??????

SVN kann und macht das, seit dem ich vor etwa einem Jahr alle Module damit
versehen habe. Es steht am Anfang des Moduls jeweils als Kommentar, nur einige
wenige Module, die seitdem eingecheckt wurden, haben diesen String nicht. Ich
habe gerade bei 6 neuen Modulen das Aufloesen von $Id: beim Einchecken
aktiviert.

Es steht jedem frei ein Modul mit einem neuen Befehl zu bauen, das diesen
Kommentar ausgibt, reload werde ich deswegen zunaechst nicht modifizieren, und
alle Module umzubauen, damit dieser Text staendig im Speicher steht, finde ich
auch nicht so wichtig.

Solange kann sich jeder mit "grep Id: .../fhem/FHEM/*.pm" behelfen.

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Hallo RueBe,

falls noch interesse besteht hier ein Code-Zeilen zum Anzeigen der
Versionen aller Module in Fhem.

Der Code steht bei mir in der 99_myUtils.pm

###Version der
Module###############################################################################
#{fhem "define weblink_version weblink htmlCode {getVersion()}"}
sub getVersion()
{
    #my $debug = AttrVal("weblink_version", "debug", "0");

    my @versions = qx (grep '\$Id:' /var/media/ftp/fhem/FHEM/*.pm);
    #Log 1, "@versions" if($debug);
   
    my $ret = "
";
    $ret .= "class=title>";
   
    my $counter = 1;
    foreach (@versions) {
        my ($mod, $version) = split("\#",$_);
        my @Daten = split(" ",$version);
        $ret .= "", ($counter&1)?"odd":"even";
        $ret .= "";
        $ret .= "";
        $ret .= "";
        $ret .= "";
        $ret .= "";
        $counter++
    }
    $ret .= "
ModulVersionDatumAutor
$Daten[1]$Daten[2]$Daten[3] $Daten[4]$Daten[5]
";
    #Log 1, "$ret" if($debug);
    return $ret;
}
###Ende Version der
Module###########################################################################

Dann kann man noch etwas in dieser Art in seine *.css Datei einfügen:

/*Version Anzeige*/
table.modversion {border:1px solid #CCCCCC; border-radius:4px;
background:#111111; padding:5px; margin-left:10px;}
table.modversion tr.title {font-size: 15px; font-weight:bold;}
table.modversion tr.odd { background:#555555; }


damit es einigermassen nach etwas aussieht.

MfG

Volker

<https://lh4.googleusercontent.com/-oos2srqJ-hY/UJaD9eZMK8I/AAAAAAAAAA8/9IYP6QBoDzY/s1600/Unbenannt.png>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Hallo RueBe,

falls noch interesse besteht hier ein Code-Zeilen zum Anzeigen der
Versionen aller Module in Fhem.

Der Code steht bei mir in der 99_myUtils.pm

###Version der
Module###############################################################################
#{fhem "define weblink_version weblink htmlCode {getVersion()}"}
sub getVersion()
{
    #my $debug = AttrVal("weblink_version", "debug", "0");

    my @versions = qx (grep '\$Id:' /var/media/ftp/fhem/FHEM/*.pm);
    #Log 1, "@versions" if($debug);
   
    my $ret = "
";
    $ret .= "class=title>";
   
    my $counter = 1;
    foreach (@versions) {
        my ($mod, $version) = split("\#",$_);
        my @Daten = split(" ",$version);
        $ret .= "", ($counter&1)?"odd":"even";
        $ret .= "";
        $ret .= "";
        $ret .= "";
        $ret .= "";
        $ret .= "";
        $counter++
    }
    $ret .= "
ModulVersionDatumAutor
$Daten[1]$Daten[2]$Daten[3] $Daten[4]$Daten[5]
";
    #Log 1, "$ret" if($debug);
    return $ret;
}
###Ende Version der
Module###########################################################################

Dann kann man noch etwas in dieser Art in seine *.css Datei einfügen:

/*Version Anzeige*/
table.modversion {border:1px solid #CCCCCC; border-radius:4px;
background:#111111; padding:5px; margin-left:10px;}
table.modversion tr.title {font-size: 15px; font-weight:bold;}
table.modversion tr.odd { background:#555555; }


damit es einigermassen nach etwas aussieht.

MfG

Volker
<https://lh4.googleusercontent.com/-oos2srqJ-hY/UJaD9eZMK8I/AAAAAAAAAA8/9IYP6QBoDzY/s1600/Unbenannt.png>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Coool! Danke.

Am Sonntag, 4. November 2012 17:12:28 UTC+1 schrieb Volker:
>
> Hallo RueBe,
>
> falls noch interesse besteht hier ein Code-Zeilen zum Anzeigen der
> Versionen aller Module in Fhem.
>
> Der Code steht bei mir in der 99_myUtils.pm
>
> ###Version der
> Module###############################################################################
> #{fhem "define weblink_version weblink htmlCode {getVersion()}"}
> sub getVersion()
> {
>     #my $debug = AttrVal("weblink_version", "debug", "0");
>
>     my @versions = qx (grep '\$Id:' /var/media/ftp/fhem/FHEM/*.pm);
>     #Log 1, "@versions" if($debug);
>    
>     my $ret = "
";
>     $ret .= "> class=title>";
>    
>     my $counter = 1;
>     foreach (@versions) {
>         my ($mod, $version) = split("\#",$_);
>         my @Daten = split(" ",$version);
>         $ret .= "", ($counter&1)?"odd":"even";
>         $ret .= "";
>         $ret .= "";
>         $ret .= "";
>         $ret .= "";
>         $ret .= "";
>         $counter++
>     }
>     $ret .= "
ModulVersionDatumAutor
$Daten[1]$Daten[2]$Daten[3] $Daten[4]$Daten[5]
";
>     #Log 1, "$ret" if($debug);
>     return $ret;
> }
> ###Ende Version der
> Module###########################################################################
>
> Dann kann man noch etwas in dieser Art in seine *.css Datei einfügen:
>
> /*Version Anzeige*/
> table.modversion {border:1px solid #CCCCCC; border-radius:4px;
> background:#111111; padding:5px; margin-left:10px;}
> table.modversion tr.title {font-size: 15px; font-weight:bold;}
> table.modversion tr.odd { background:#555555; }
>
>
> damit es einigermassen nach etwas aussieht.
>
> MfG
>
> Volker
> <https://lh4.googleusercontent.com/-oos2srqJ-hY/UJaD9eZMK8I/AAAAAAAAAA8/9IYP6QBoDzY/s1600/Unbenannt.png>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Hallo Volker,

danke für den Code, erspart mir die Arbeit...;-)

Ich hätte zwar gerne eine FHEM globale Lösung gesehen, weil ich es aus
Supportgründen für sehr sinnvoll halte, aber so geht es für mich auch.

LG

RueBe


Am 04.11.2012 17:12, schrieb Volker:
>
> Hallo RueBe,
>
> falls noch interesse besteht hier ein Code-Zeilen zum Anzeigen der
> Versionen aller Module in Fhem.
>
> Der Code steht bei mir in der 99_myUtils.pm
>
> ###Version der
> Module###############################################################################
> #{fhem "define weblink_version weblink htmlCode {getVersion()}"}
> sub getVersion()
> {
>     #my $debug = AttrVal("weblink_version", "debug", "0");
>
>     my @versions = qx (grep '\$Id:' /var/media/ftp/fhem/FHEM/*.pm);
>     #Log 1, "@versions" if($debug);
>
>     my $ret = "
";
>     $ret .= "> class=title>";
>
>     my $counter = 1;
>     foreach (@versions) {
>         my ($mod, $version) = split("\#",$_);
>         my @Daten = split(" ",$version);
>         $ret .= "", ($counter&1)?"odd":"even";
>         $ret .= "";
>         $ret .= "";
>         $ret .= "";
>         $ret .= "";
>         $ret .= "";
>         $counter++
>     }
>     $ret .= "
ModulVersionDatumAutor
$Daten[1]$Daten[2]$Daten[3] $Daten[4]$Daten[5]
";
>     #Log 1, "$ret" if($debug);
>     return $ret;
> }
> ###Ende Version der
> Module###########################################################################
>
> Dann kann man noch etwas in dieser Art in seine *.css Datei einfügen:
>
> /*Version Anzeige*/
> table.modversion {border:1px solid #CCCCCC; border-radius:4px;
> background:#111111; padding:5px; margin-left:10px;}
> table.modversion tr.title {font-size: 15px; font-weight:bold;}
> table.modversion tr.odd { background:#555555; }
>
>
> damit es einigermassen nach etwas aussieht.
>
> MfG
>
> Volker
>
> <https://lh4.googleusercontent.com/-oos2srqJ-hY/UJaD9eZMK8I/AAAAAAAAAA8/9IYP6QBoDzY/s1600/Unbenannt.png>
> --
> To unsubscribe from this group, send email to
> fhem-users+unsubscribe@googlegroups.com

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Das mit der "globalen" Lösung ist unsinnig, weil es keine zentrale
Steuerung der Entwicklung und der Update-Zyklen gibt.

pah

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Mit globaler Lösung meinte ich, das in jedem Modul halt so ein
Versionsstring sein sollte, der eine korrekte Identifikation der
geladenen Module ermöglicht,
insofern ist deine Antwort vollkommen an der Problemstellung vorbei und
auch nicht sehr sinnig.


RueBe


Am 06.11.2012 16:04, schrieb Prof. Dr. Peter A. Henning:
> Das mit der "globalen" Lösung ist unsinnig, weil es keine zentrale
> Steuerung der Entwicklung und der Update-Zyklen gibt.
>
> pah
> --
> To unsubscribe from this group, send email to
> fhem-users+unsubscribe@googlegroups.com

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Man sollte wenigstens seine eigenen Posts gelesen haben:

" und fhem.pl fᅵhrt eine Liste der Module mit den dazugehᅵrigen
Versionsstrings."

Das ist einfach Käse.

pah

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Was ich einfach erreichen möchte, ist eine Übersicht über die derzeit in
fhem geladenen Module und deren Version, denn die geladene Version muss
noch lange nicht mit der gespeicherten Version übereinstimmen.

Ich sehe das in etwa so wie eine Kombination von "lsmod" und "modinfo" in
einem Linuxsystem und dort haben sich derartige Informationsmöglichkeiten
bei Supportfragen durchaus bewährt.

Das zu erreichen muss auch bei einem dezentralen, hoch modularen System
nicht viel Aufwand oder Einschränkungen bedeuten.

Viele Grüße,

RueBe

Am 6. November 2012 20:28 schrieb Prof. Dr. Peter A. Henning <
prof.dr.peter.a.henning@gmail.com>:

> Man sollte wenigstens seine eigenen Posts gelesen haben:
>
> " und fhem.pl fᅵhrt eine Liste der Module mit den dazugehᅵrigen
> Versionsstrings."
>
> Das ist einfach Käse.
>
>
> pah
>
> --
> To unsubscribe from this group, send email to
> fhem-users+unsubscribe@googlegroups.com
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Hallo Volker,
ich hab ja deinen Code schon vor einiger Zeit "adoptiert". Danke nochmal,
fuktioniert soweit gut.
Mir war am Anfang aufgefallen, dass die Zeilen nicht abwechselnd eingefärbt
waren. Nich' so schlimm, dachte ich, geht ja trotzdem. Nun habe ich aber
beim Neustart zufällig bemerkt, dass fhem meldet, in myUtils wären die zwei
Konstannten "odd" und "even" überflüssig. Ist das bei dir auch so? Das ist
ja wohl die Stelle im Code, wo die Zeilen Farbe bekommen. Ich habe den Code
mal in anderen Modulen gesucht, kann aber keinen Unterschied erkennen.
Falls Du nen Tip hast wird er gerne genommen.

Vorab vielen Dank
Grüße StefanP

Funktioniert

Am Sonntag, 4. November 2012 17:12:28 UTC+1 schrieb Volker:
>
> Hallo RueBe,
>
> falls noch interesse besteht hier ein Code-Zeilen zum Anzeigen der
> Versionen aller Module in Fhem.
>
> Der Code steht bei mir in der 99_myUtils.pm
>
> ###Version der
> Module###############################################################################
> #{fhem "define weblink_version weblink htmlCode {getVersion()}"}
> sub getVersion()
> {
>     #my $debug = AttrVal("weblink_version", "debug", "0");
>
>     my @versions = qx (grep '\$Id:' /var/media/ftp/fhem/FHEM/*.pm);
>     #Log 1, "@versions" if($debug);
>    
>     my $ret = "
";
>     $ret .= "> class=title>";
>    
>     my $counter = 1;
>     foreach (@versions) {
>         my ($mod, $version) = split("\#",$_);
>         my @Daten = split(" ",$version);
>         $ret .= "", ($counter&1)?"odd":"even";
>         $ret .= "";
>         $ret .= "";
>         $ret .= "";
>         $ret .= "";
>         $ret .= "";
>         $counter++
>     }
>     $ret .= "
ModulVersionDatumAutor
$Daten[1]$Daten[2]$Daten[3] $Daten[4]$Daten[5]
";
>     #Log 1, "$ret" if($debug);
>     return $ret;
> }
> ###Ende Version der
> Module###########################################################################
>
> Dann kann man noch etwas in dieser Art in seine *.css Datei einfügen:
>
> /*Version Anzeige*/
> table.modversion {border:1px solid #CCCCCC; border-radius:4px;
> background:#111111; padding:5px; margin-left:10px;}
> table.modversion tr.title {font-size: 15px; font-weight:bold;}
> table.modversion tr.odd { background:#555555; }
>
>
> damit es einigermassen nach etwas aussieht.
>
> MfG
>
> Volker
> <https://lh4.googleusercontent.com/-oos2srqJ-hY/UJaD9eZMK8I/AAAAAAAAAA8/9IYP6QBoDzY/s1600/Unbenannt.png>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Hallo Stefan,
habe bei mir keine Einträge diesbezüglich finden können, welchen verbose
und/oder loglevel hast du eingestellt?

Bei mir wird erst bei den 98_XXX modulen einmal nicht richtig eingefärbt,
besser gesagt ich habe eine schmale Linie dazwischen,
ich konnte aber bis jetzt nicht herausfinden woher das kommt. Ist aber
nicht verwunderlich , da ich mich mit Perl nicht auskenne.

Werde aber am Wochenende mal versuchen das zu beheben.

MfG

Volker

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Hallo Volker,
verbose ist 3. Dafür das Du dich "mit per nicht auskennst" ist dein Sub
aber recht gut geworden.
Ich bin Perl-mäßig auch eher eine Konifere ;-) Hier nochmal der Code aus
meiner myUtils. Vielleicht sieht man's dann ja erst. Aber glaub ich eher
nicht:

------------------------------schnipp--------------------------------------------
###Version der
Module#####################################################################
#{fhem "define weblink_version weblink htmlCode {getVersion()}"}
sub getVersion()
{
    #my $debug = AttrVal("weblink_version", "debug", "0");

    my @versions = qx (grep '\$Id:' /var/media/ftp/fhem/FHEM/*.pm);
    #Log 1, "@versions" if($debug);
   
    my $ret = "
";
    $ret .= "class=title>";
   
    my $counter = 1;
    foreach (@versions) {
        my ($mod, $version) = split("\#",$_);
        my @Daten = split(" ",$version);
        $ret .= "", ($counter&1)?"odd":"even";
        $ret .= "";
        $ret .= "";
        $ret .= "";
        $ret .= "";
        $ret .= "";
        $counter++
    }
    $ret .= "
ModulVersionDatumAutor
$Daten[1]$Daten[2]$Daten[3] $Daten[4]$Daten[5]
";
    #Log 1, "$ret" if($debug);
    return $ret;
}
###Ende Version der
Module###############################################################
------------------------------schnapp--------------------------------------------


Wie gesagt Fehler kommt direkt nach Start von fhem:

------------------------------schnipp--------------------------------------------
# /var/media/ftp/fhem/startfhem
# Useless use of a constant (odd) in void context at ./FHEM/99_myUtils.pm
line 78, <$fh> line 5.
Useless use of a constant (even) in void context at ./FHEM/99_myUtils.pm
line 78, <$fh> line 5.
#
------------------------------schnapp--------------------------------------------
Seltsam. Aber bei fhem bin ich inzwische einiges gewöhnt. Liegt bestimmt an
mir nicht an fhem ;-)

Gruß StefanP

Am Donnerstag, 22. November 2012 20:18:16 UTC+1 schrieb Volker:
>
> Hallo Stefan,
> habe bei mir keine Einträge diesbezüglich finden können, welchen verbose
> und/oder loglevel hast du eingestellt?
>
> Bei mir wird erst bei den 98_XXX modulen einmal nicht richtig eingefärbt,
> besser gesagt ich habe eine schmale Linie dazwischen,
> ich konnte aber bis jetzt nicht herausfinden woher das kommt. Ist aber
> nicht verwunderlich , da ich mich mit Perl nicht auskenne.
>
> Werde aber am Wochenende mal versuchen das zu beheben.
>
> MfG
>
> Volker
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Hallo Stefan,

kannst du mal diese Variante versuchen.

MfG

Volker

###Version der
Module###############################################################################
#{fhem "define weblink_version weblink htmlCode {getVersion()}"}
sub getVersion()
{
    #my $debug = AttrVal("weblink_version", "debug", "0");

    my @versions = qx (grep '\$Id:' /var/media/ftp/fhem/FHEM/*.pm);
    #Log 1, "@versions" if($debug);
   
    my $ret = "
";
    $ret .= "class=title>";
   
    my $counter = 1;
    foreach (@versions) {
        my ($mod, $version) = split("\#",$_);
        my (@Daten) = split(" ",$version);
        my $class =($counter?"odd":"even");
        $ret .= "";
        $ret .= "";
        $ret .= "";
        $ret .= "";
        $ret .= "";
        $ret .= "";
        $counter = ($counter+1)%2;
    }
    $ret .= "
ModulVersionDatumAutor
$Daten[1]$Daten[2]$Daten[3] $Daten[4]$Daten[5]
";
    #Log 1, "$ret" if($debug);
    return $ret;
}
###Ende Version der
Module###########################################################################

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Hallo,

kleine Verbesserung,

Die folgende Zeile


    my @versions = qx (grep '\$Id:' /var/media/ftp/fhem/FHEM/*.pm);

bitte durch

    my @versions = qx (grep '\# \$Id:' /var/media/ftp/fhem/FHEM/*.pm);

ersetzen. Behebt einen Fehler in der Darstellung wenn im Modul auch irgenwo
"ID" vorkommt.

MfG

Volker

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com