Hallo
wäre es nicht interessant bei Fheminfo die Uptime von FHEM seit dem letzten Start zu sehen?
Gruß Hannes
Warum nicht, z.Zt. kann man das nur indirekt auch aus dem Log rausfischen.
Der fheminfo Autor ist z.Zt. inaktiv und ich betreue das Modul komissarisch.
Wenn Du einen sinnvollen Patch anhaengst, dann kann ich das einbauen.
@Hannes: reichen Dir Sekunden oder welches Ausgabeformat stellst Du Dir vor?
(http://up.picr.de/17795240mu.png)
Hallo,
Zitatxd, yh, zm
für Tage, Stunden, Minuten wäre was feines ;)
Grüße
ich habs ja fast befürchtet...
Wäre es so genehm?
(http://up.picr.de/17795963zs.png)
(http://up.picr.de/17795964jv.png)
(http://up.picr.de/17795965bj.png)
Ausserdem können (unabhängig von fheminfo) die Sekunden seit dem fhem-Start ermittelt werden, falls jemand die Zeit selbst formatieren möchte.
Hallo,
ZitatWäre es so genehm?
Jep, für mich würde das so reichen 8)
Danke.
Grüße
Vorgeschlagener Patch für fhem.pl und 98_fheminfo.pm:
Index: fhem.pl
===================================================================
--- fhem.pl (revision 5366)
+++ fhem.pl (working copy)
@@ -216,6 +216,8 @@
use vars qw($reread_active);
use vars qw($winService); # the Windows Service object
+use vars qw($fhem_started); # used for uptime calculation
+
my $AttrList = "verbose:0,1,2,3,4,5 room group comment alias ".
"eventMap userReadings";
@@ -480,6 +482,7 @@
}
}
DoTrigger("global", "INITIALIZED", 1);
+$fhem_started = time;
$attr{global}{motd} .= "Running with root privileges."
if($^O !~ m/Win/ && $<==0 && $attr{global}{motd} =~ m/^$sc_text/);
Index: FHEM/98_fheminfo.pm
===================================================================
--- FHEM/98_fheminfo.pm (revision 5366)
+++ FHEM/98_fheminfo.pm (working copy)
@@ -79,6 +79,8 @@
my $sendStatistics = AttrVal("global","sendStatistics",undef);
my $moddir = $attr{global}{modpath}."/FHEM";
my $uidFile = $moddir."/FhemUtils/uniqueID";
+ my $upTime;
+ $upTime = fhemUptime();
if(defined($uniqueID) && $uniqueID eq $uidFile) {
my $fh;
@@ -170,6 +172,7 @@
$str .= sprintf(" Arch%*s: %s\n",5," ",$arch);
$str .= sprintf(" Perl%*s: %s\n",5," ",$perl);
$str .= sprintf(" uniqueID%*s: %s\n",0," ",$uniqueID);
+ $str .= sprintf(" upTime%*s: %s\n",3," ",$upTime);
$str .= "\n";
my $contModules;
@@ -366,6 +369,27 @@
}
}
+sub fhemUptime {
+ my $diff = time - $fhem_started;
+ my ($d,$h,$m,$ret);
+
+ ($d,$diff) = _myDiv($diff,86400);
+ ($h,$diff) = _myDiv($diff,3600);
+ ($m,$diff) = _myDiv($diff,60);
+
+ $ret = "";
+ $ret .= "$d days, " if($d > 1);
+ $ret .= "1 day, " if($d == 1);
+ $ret .= sprintf("%02s:%02s:%02s", $h, $m, $diff);
+
+ return $ret;
+}
+
+sub _myDiv($$) {
+ my ($p1,$p2) = @_;
+ return (int($p1/$p2), $p1 % $p2);
+}
+
1;
=pod
Der Timestamp (epoche) steht damit fhemweit als neue Variable $fhem_started zur Verfügung und kann für eigene Berechnungen verwendet werden.
{time - $fhem_started}
liefert die Sekunden seit dem letzten fhem INITIALIZED.
Zitat von: betateilchen am 29 März 2014, 12:18:38
ich habs ja fast befürchtet...
Wäre es so genehm?
(http://up.picr.de/17795963zs.png)
(http://up.picr.de/17795964jv.png)
(http://up.picr.de/17795965bj.png)
Ausserdem können (unabhängig von fheminfo) die Sekunden seit dem fhem-Start ermittelt werden, falls jemand die Zeit selbst formatieren möchte.
Super genauso hab ich mir das vorgestellt :-)
Hab mir das mal angeschaut, wie ich sowas machen könnte.
Aber die Idee die Zeit beim starten von fhem zu speichern ist fast die beste Idee.
Ich hatte überlegt, die fhem.log auszuwerten aber viel zu umständlich.
Gruß und Danke
Gesendet von Unterwegs mit Tapatalk 4
Zitat von: AHA1805 am 29 März 2014, 17:34:01
Aber die Idee die Zeit beim starten von fhem zu speichern ist fast die beste Idee.
Na mal sehen, was Rudi zu der Idee meint. Er wollte einen Patch haben, nun hat er einen 8)
Ich habe den patch gerade eingespielt und er funktioniert super.
Da ich nicht heraus gefunden habe mit welchem Tool ich die Files patchen kann,
habe ich die Änderungen manuell um die jeweiligen Änderungen ergänzt.
Mit welchem Tool werden die patches erstellt und anschließend die Files mit Hilfe des Patchfiles gepachted?
Hab ein paar gefunden
diff
Winmerge
dann habe ich noch was von git gelesen.
Welches Tool verwendet Ihr, dann kann ich es mir mal anschauen wie das funktioniert,
im Wiki habe ich nix gefunden.
Wenn ich es verstanden habe, kann ich ja einen Wiki Eintrag in der Sektion HOWTOS machen. (Denke das wäre es am besten aufgehoben)
Gruß und Danke
Hannes
Anwender sollten die Files nicht unbedingt selbst patchen, sondern warten, bis der zuständige Modulentwickler einen Vorschlag geprüft, ggf. kompatibel gemacht und offiziell eingebaut hat.
Aber um Deine Fragen zu beantworten:
Patches erstelle ich am schnellsten auf der Konsole mit "svn diff <fileName> > <patchFileName>" und das Tool zum Einspielen eines patches heißt - man glaubt es kaum - "patch" 8)
Eingecheckt
Zitat von: betateilchen am 29 März 2014, 21:50:25
Patches erstelle ich am schnellsten auf der Konsole mit "svn diff <fileName> > <patchFileName>" und das Tool zum Einspielen eines patches heißt - man glaubt es kaum - "patch" 8)
Udo, danke für die Info :-)
Ist das ein Commandlinetool von Subversion?
... und gibt das auch als einzell Tool oder muss ich dafür das komplette SubVersion installieren?
Zitat von: rudolfkoenig am 30 März 2014, 08:59:25
Eingecheckt
Danke Rudi :)
@Rudi: Danke!
@Hannes:
Da ich "svn" starte, ist das das "Hauptprogramm" und kein separates Tool. Es gibt aber auch standalone tools dafür, einige hattest Du ja schon genannt. Standard dürfte diff sein http://manpages.ubuntu.com/manpages/gutsy/de/man1/diff.1.html
Diff tools gibt es sogar online, da kann man auf einer Webseite zwei Dateien hochladen und erhält das diff als Antwort.