Hauptmenü

SYSSTAT Uptime

Begonnen von mrbreil, 18 September 2017, 09:10:23

Vorheriges Thema - Nächstes Thema

mrbreil

Würde mir gerne in Tablet UI die Laufzeit meines Raspberry anzeigen lassen.
Leider habe ich keinen Plan von Regex und die "Versuch macht Klug Methode" will einfach nicht funktionieren.
Habe auch schon den Regex https://txt2re.com Generator ausprobiert, leider ohne erfolg.
Das Reading sieht folgend aus
2 days, 1:37

Mein Tablet UI Code
<div class="inline">
                            <div data-type="progress" data-device="Raspberry" data-get="uptime" data-part="1" data-max="364" class="small"></div>
                            <div data-type="label" class="narrow">Tagen</div>
                        </div>
                        <div class="inline">
                            <div data-type="progress" data-device="Raspberry" data-get="uptime" data-part=" ???? " data-max="24" class="small"></div>
                            <div data-type="label" class="narrow">Stunden</div>
                        </div>
                        <div class="inline">
                            <div data-type="progress" data-device="Raspberry" data-get="uptime" data-part=" ????? " data-max="60" class="small"></div>
                            <div data-type="label" class="narrow">Minuten</div>
                        </div>


Vielleicht könnte jemand mal einen Blick darauf werfen.

setstate

Wenn vor der Zeit immer ein Leerzeichen ist, könntest du einfach den dritten Teil nehmen
... ohne RegEx

data-part="3"

Wernieman

#2
Es stimmt nicht gaaaaans ... Die Laufzeit im Beispiel ist ja "2Tage, 1 Stunde und 37 Sekunden".

Das Blöde ist, das bei kurzen Laufzeiten es auch anders aussehen kann ....

Edit:
Würde es außerhalb von sysstat erledigen. uptime zeigt z.B. mit "-p" ein Verständlicheres Format an ..

Oder noch besser:
cat /proc/uptime
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

setstate

Stimmt, ich habe gar nicht auf die Nedeutung geachtet, nur auf die Form.

Was ist denn das Ziel? Warum nicht 1:1 anzeigen?
Gibt es kein Reading, was die Uptime in Sekunden ausgibt?

Wernieman

Da ich SYSSTAT nicht (mehr) verwende, kann ich es Dir nicht sagen ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

mrbreil

Zitat von: setstate am 18 September 2017, 09:45:03
Stimmt, ich habe gar nicht auf die Nedeutung geachtet, nur auf die Form.

Was ist denn das Ziel? Warum nicht 1:1 anzeigen?
Gibt es kein Reading, was die Uptime in Sekunden ausgibt?

Ich kann mir die uptime auch als Sekunden ausgeben lassen, aber ich stehe auf dem Schlauch wie mich das weiter bringt.

Gruß Christian

Wernieman

In dem Du dann die Zeit (Sekunden) in Dein Gewünschtes Format umrechnest ... aber wie solches Rechnen gehst, müsstest Du Spezies von Tables UI fragen ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

gloob

#7
In FTUI habe ich es wie folgt integriert:

<li data-row="1" data-col="4" data-sizex="4" data-sizey="2" class="semitransparent">
<div class="hbox items-space-around">
<div class="vbox">
<div class="hbox items-space-around">
<div>RPi:</div>
<div data-type="label" data-device="sysmon" data-get="uptime_text" data-color="grey"/>
</div>
<div class="hbox items-space-around">
<div>FHEM:</div>
<div data-type="label" data-device="sysmon" data-get="fhemuptime_text" data-color="grey"/>
</div>
</div>
</div>
</li>


Wie soll das Format denn aussehen?
Raspberry Pi 3 | miniCUL 433MHz | nanoCUL 868 MHz | nanoCUL 433 MHz | MySensors WLAN Gateway | LaCrosse WLAN Gateway | SignalESP 433 MHz | SignalESP 868 MHz | HM-MOD-UART WLAN Gateway | IR - 360 Grad WLAN Gateway

setstate

Es soll eben nicht nur ein Label benutzt werden, sondern drei Range-Widgets, nach Tage, Stunden und Minuten getrennt. Range hat aber kein data-substitution. Die Werte müssen daher vorher schon im FHEM getrennt werden.

gloob

#9
Dann könnte man in FHEM ja einfach die 3 Werte berechnen, wenn die Uptime in Sekunden vorliegt.

hour = uptime / 3600
minute = (uptime - (hour * 3600)) / 60
seconds = (uptime - (hour * 3600) - (minute * 60)


bzw.

day = uptime / 86400
hour = (uptime  - (day * 86400)) / 3600
minute = (uptime  - (day * 86400) - (hour * 3600)) / 60
seconds = (uptime - (day * 86400) - (hour * 3600) - (minute * 60)
Raspberry Pi 3 | miniCUL 433MHz | nanoCUL 868 MHz | nanoCUL 433 MHz | MySensors WLAN Gateway | LaCrosse WLAN Gateway | SignalESP 433 MHz | SignalESP 868 MHz | HM-MOD-UART WLAN Gateway | IR - 360 Grad WLAN Gateway

justme1968

ja. SYSSTAT auf sekunden umstellen und dann drei user readings verwenden.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

gloob

#11

attr Uptime userReadings Day { int(ReadingsVal("$NAME","seconds",0) / 86400)} , Hour { int((ReadingsVal("$NAME","seconds",0) - (ReadingsVal("$NAME","Day",0) * 86400) / 3600)}
...

usw.
Raspberry Pi 3 | miniCUL 433MHz | nanoCUL 868 MHz | nanoCUL 433 MHz | MySensors WLAN Gateway | LaCrosse WLAN Gateway | SignalESP 433 MHz | SignalESP 868 MHz | HM-MOD-UART WLAN Gateway | IR - 360 Grad WLAN Gateway

justme1968

fast.

es muss alles in ein attribut und man sollte das uptime reading in der regex angeben.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968