FHEM Forum

FHEM => Sonstiges => Thema gestartet von: AHA1805 am 28 März 2014, 23:54:46

Titel: Fheminfo Uptime von FHEM
Beitrag von: AHA1805 am 28 März 2014, 23:54:46
Hallo

wäre es nicht interessant bei Fheminfo die Uptime von FHEM seit dem letzten Start zu sehen?



Gruß Hannes
Titel: Antw:Fheminfo Uptime von FHEM
Beitrag von: rudolfkoenig am 29 März 2014, 07:45:58
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.
Titel: Antw:Fheminfo Uptime von FHEM
Beitrag von: betateilchen am 29 März 2014, 10:42:53
@Hannes: reichen Dir Sekunden oder welches Ausgabeformat stellst Du Dir vor?

(http://up.picr.de/17795240mu.png)

Titel: Antw:Fheminfo Uptime von FHEM
Beitrag von: Puschel74 am 29 März 2014, 12:13:37
Hallo,

Zitatxd, yh, zm

für Tage, Stunden, Minuten wäre was feines  ;)

Grüße
Titel: Antw:Fheminfo Uptime von FHEM
Beitrag 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.
Titel: Antw:Fheminfo Uptime von FHEM
Beitrag von: Puschel74 am 29 März 2014, 12:25:59
Hallo,

ZitatWäre es so genehm?
Jep, für mich würde das so reichen  8)
Danke.

Grüße
Titel: Antw:Fheminfo Uptime von FHEM
Beitrag von: betateilchen am 29 März 2014, 12:29:58
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.
Titel: Antw:Fheminfo Uptime von FHEM
Beitrag von: AHA1805 am 29 März 2014, 17:34:01
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

Titel: Antw:Fheminfo Uptime von FHEM
Beitrag von: betateilchen am 29 März 2014, 19:08:37
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)
Titel: Antw:Fheminfo Uptime von FHEM
Beitrag von: AHA1805 am 29 März 2014, 21:46:35
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
Titel: Antw:Fheminfo Uptime von FHEM
Beitrag von: betateilchen am 29 März 2014, 21:50:25
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)
Titel: Antw:Fheminfo Uptime von FHEM
Beitrag von: rudolfkoenig am 30 März 2014, 08:59:25
Eingecheckt
Titel: Antw:Fheminfo Uptime von FHEM
Beitrag von: AHA1805 am 30 März 2014, 11:02:28
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 :)
Titel: Antw:Fheminfo Uptime von FHEM
Beitrag von: betateilchen am 30 März 2014, 11:48:02
@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.