[phpBB Debug] PHP Warning: in file [ROOT]/ext/kinerity/bestanswer/event/main_listener.php on line 514: Undefined array key "poster_answers"
openhabforum.de • OpenHab Uptime in der Sitemap ?
Seite 1 von 5

OpenHab Uptime in der Sitemap ?

Verfasst: 6. Aug 2020 16:59
von PeterA
Hallo zusammen,

wenn man über SSH in der Konsole folgendes eingibt:

Code: Alles auswählen

sudo openhab-cli status
Bekommt man diese Ausgabe:

Code: Alles auswählen

A systemd service configuration exists...
Use 'sudo /bin/systemctl status openhab2.service' to find the status of an openHAB service
openHAB is running with PID: 2066 and has been running for 79-06:22:39
Ich nehme an das "79-06:22:39" bedeutet ?
Also 79 Tage und 6 Stunden 22 Minuten 39 Sekunden.

Oder wenn ich eingebe:

Code: Alles auswählen

sudo /bin/systemctl status openhab2.service
Kommt u.a. folgendes zurück:

Code: Alles auswählen

Active: active (running) since Tue 2020-05-19 10:29:17 CEST; 2 months 18 days ago
Lässt sich das auf der Sitemap zur Anzeige bringen ?

Gruß Peter

OpenHab Uptime in der Sitemap ?

Verfasst: 6. Aug 2020 18:00
von udo1toni
Klar geht das. Zunächst aber solltest Du wissen, dass man für systemctl status kein sudo braucht, es reicht also ein

Code: Alles auswählen

systemctl status openhab2
Ja, auch das .service kann man einfach weg lassen.
Nun kommt da ja viel mehr zurück, als nur die Startzeit.

Der erste Teil der Aufgabe ist also, per exec Binding den Befehl abzusetzen. Dann musst Du den Output Channel mit einem String Item verknüpfen. Ich sitze gerade nicht an einem passenden Rechner... kannst Du direkt eine Transformation im Channel setzen? Vermutlich eher nicht...
Macht aber nichts, Der Output ist ja schon mal im Item, dann brauchst Du noch eine Rule, in der Du per REGEX Transformation den betreffenden Teil extrahierst und in ein zweites Item per postUpdate einfügst. Dieses zeigst Du dann an.

Denke auch an die whitelist, in der die Befehlszeile identisch eingefügt werden muss.

Gesendet von iPad mit Tapatalk

Re: OpenHab Uptime in der Sitemap ?

Verfasst: 7. Aug 2020 17:31
von PeterA
Hallo Udo,

danke für deinen Tipp.

thing:

Code: Alles auswählen

Thing exec:command:openhabuptime2 [command="openhab-cli status", interval=60, timeout=5] //OpenHab Uptime
item:

Code: Alles auswählen

String BefehlOutput	"Rückgabewert"	 {channel="exec:command:openhabuptime2:output"}
Bringt dann im Log:

Code: Alles auswählen

BefehlOutput changed from A systemd service configuration exists...

Use 'sudo /bin/systemctl status openhab2.service' to find the status of an openHAB service

openHAB is running with PID: 2066 and has been running for 80-06:57:25 to A systemd service configuration exists...

Use 'sudo /bin/systemctl status openhab2.service' to find the status of an openHAB service

openHAB is running with PID: 2066 and has been running for 80-06:58:25
Das funktioniert schon mal. :D

Nun wie bekomme ich "80-06:58:25" in 80 Tage, 6 Std, 58 min umgewandelt.
Mit Regex hab ich noch nichts gemacht und ich verstehe noch nicht wie man da "extrahiert"

Gruß Peter

Re: OpenHab Uptime in der Sitemap ?

Verfasst: 7. Aug 2020 18:16
von peter-pan
Hallo Peter,
ich weiss leider auch nicht wie Regex so richtig funktioniert. Hast du schon mal "split" in einer Regel ausprobiert ? Als ersten Split würde ich dann "and has been running for " nehmen, usw. Ich hab das allerdings nicht ausprobiert, also nur Theorie und vielleicht etwas amateurhaft.

Re: OpenHab Uptime in der Sitemap ?

Verfasst: 8. Aug 2020 08:47
von thomas_w
PeterA hat geschrieben: 7. Aug 2020 17:31 Bringt dann im Log:

Code: Alles auswählen

BefehlOutput changed from A systemd service configuration exists...

Use 'sudo /bin/systemctl status openhab2.service' to find the status of an openHAB service

openHAB is running with PID: 2066 and has been running for 80-06:57:25 to A systemd service configuration exists...

Use 'sudo /bin/systemctl status openhab2.service' to find the status of an openHAB service

openHAB is running with PID: 2066 and has been running for 80-06:58:25
Im dem Output steht eigentlich zweimal der gesuchte Wert 80-06:57:25 Würde nicht einmal genügen?

Der REGEX könnte so aussehen (glaub jetzt nicht, dass ich das vollständig verstanden habe, habe nur ein passendes Beispiel gefunden)

Code: Alles auswählen

\b[\w.!#$%&’*+\/=?^`{|}~-]+-[\w-:]+(?:\.[\w-]+)*\b
Der liefert dann zweimal diesen String zurück 80-06:58:25
Das weitere wäre dann wohl eine Formatierung im numerischen Item

REGEX ausprobieren läßt sich prima hier:
https://regexr.com/
openhab-regex-aus-text.JPG
Grüße
Thomas

Re: OpenHab Uptime in der Sitemap ?

Verfasst: 8. Aug 2020 10:24
von kurtharders
Hallo,

um die Startzeit zu erahlten kann man die Befehlszeile

Code: Alles auswählen

systemctl status openhab2 | grep running | sed 's/.*since \(.*\);.*/\1/'
nutzen. Erklärung: status mit systemctl ausgeben, mit grep die Active:-Zeile herausschneiden, mit sed die Zeichen die zwischen den Klammern stehen ausgeben lassen.
Wenn man die Laufzeit genau haben will, wird es etwas komplizierter. Wenn es jemand braucht setze ich mich gerne an den awk ;) .

Grüße, Kurt

Re: OpenHab Uptime in der Sitemap ?

Verfasst: 8. Aug 2020 10:38
von udo1toni
Sehr gute Idee, das schon auf Konsolenebene herunterzubrechen.

Oftmals gibt es Mit dem Exec Addon Probleme, wenn die Befehlszeile zu komplex wird. Dann böte es sich an, das Ganze in ein Mini Bash Script auszulagern, welches dann schon den korrekten wert zurück liefert. von Exec aus reicht dann ein simpler Aufruf des Scripts.


Gesendet von iPad mit Tapatalk

Re: OpenHab Uptime in der Sitemap ?

Verfasst: 8. Aug 2020 11:00
von kurtharders
Dann sollten wir ein kleines Skript vereinbaren, welches mit einem Parameter verschiedene Varianten liefert. Z.B.
ohuptime -s Uptime in Sekunden
ohuptime -h Uptime in Stunden
ohuptime -hm Uptime in Stunden und Sekunden.

Ich habe noch nicht nachgeschaut, ob man auf die Formatierung wie bei date zurückgreifen kann. Das wäre dann universell.
Ich mache mich mal an dieses Skript in bash oder evtl. python3

Grüße, Kurt

Re: OpenHab Uptime in der Sitemap ?

Verfasst: 8. Aug 2020 11:09
von peter-pan
thomas_w hat geschrieben: 8. Aug 2020 08:47 Im dem Output steht eigentlich zweimal der gesuchte Wert 80-06:57:25 Würde nicht einmal genügen?
Ich denke das sind 2 Log-Ausgaben. Einer um 80-06:57:25 und der andere um 80-06:58:25, also eine Minute später, so wie im Thing definiert. Also könnte dein Regex vielleicht funktionieren.

Re: OpenHab Uptime in der Sitemap ?

Verfasst: 8. Aug 2020 11:32
von PeterA
peter-pan hat geschrieben: 8. Aug 2020 11:09
thomas_w hat geschrieben: 8. Aug 2020 08:47 Im dem Output steht eigentlich zweimal der gesuchte Wert 80-06:57:25 Würde nicht einmal genügen?
Ich denke das sind 2 Log-Ausgaben. Einer um 80-06:57:25 und der andere um 80-06:58:25, also eine Minute später, so wie im Thing definiert. Also könnte dein Regex vielleicht funktionieren.
Hi Peter,
ja so ist es. Im Item steht nur die "letzte" Zeile also auf den aktualisierten Wert.