Udo, das ist super! Und zaubert mir ein Grinsen ins Gesicht.
Und ich habe
nochwas dazugelernt: es gibt einen Unterschied zwischen SH und BASH. Ich hatte den Befehl zuerst mit "sh oh_uptime.sh" aufgerufen, und den Fehler
oh_uptime.sh: 8: [[: not found
erhalten. Mit bash klappt's.
Einzige Anpassung aufgrund meines inneren Monks:
Code: Alles auswählen
var zeit = iDays.toString + " Tage "
switch iDays.intValue {
case 0 : zeit = ""
case 1 : zeit = "1 Tag " }
zeit += iHours.toString + " Std. " + iMinutes.toString + " Min. "
OHUptimeText.postUpdate(zeit)
Ein böhmisches Dorf für mich ist aber der cut-Befehl. Deine Bash-Datei tut was sie soll, rufe ich den Befehl über die Konsole auf, ist die Ausgabe an ganz anderer Stelle "geschnippelt".
Also,
Code: Alles auswählen
openhabian@openhabian:/home $ sudo systemctl status openhab.service | grep since | cut -d' ' -f6
Active:
Hinterfrage ich einfach nicht, läuft ja
Ich habe das gleich mal für einen ähnlichen Fall adaptiert; ich lasse mir auch die openHAB Version in der Sitemap anzeigen.
Bisher habe ich das recht umständlich mit folgender Rule gemacht:
Code: Alles auswählen
var newValue = BefehlOutputOpenHabVersion.state.toString.split('Version: ').get(1).split('(Build)').get(0).replace("(","").trim
das Thing dazu war:
Code: Alles auswählen
Thing exec:command:openhab_version "openHAB Version" [command="openhab-cli info", interval=86400, timeout=5]
Nach deinem Ansatz viel smarter als BASH:
Code: Alles auswählen
#! /bin/bash
LINE=`openhab-cli info | grep Version`
VERSION=`echo ${LINE} | cut -d' ' -f2`
echo ${VERSION}
Danke!