FHEM Forum

FHEM => Frontends => TabletUI => Thema gestartet von: mrbreil am 18 September 2017, 09:10:23

Titel: SYSSTAT Uptime
Beitrag von: mrbreil am 18 September 2017, 09:10:23
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.
Titel: Antw:SYSSTAT Uptime
Beitrag von: setstate am 18 September 2017, 09:28:27
Wenn vor der Zeit immer ein Leerzeichen ist, könntest du einfach den dritten Teil nehmen
... ohne RegEx

data-part="3"
Titel: Antw:SYSSTAT Uptime
Beitrag von: Wernieman am 18 September 2017, 09:39:32
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
Titel: Antw:SYSSTAT Uptime
Beitrag 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?
Titel: Antw:SYSSTAT Uptime
Beitrag von: Wernieman am 18 September 2017, 10:03:01
Da ich SYSSTAT nicht (mehr) verwende, kann ich es Dir nicht sagen ...
Titel: Antw:SYSSTAT Uptime
Beitrag von: mrbreil am 18 September 2017, 10:29:31
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
Titel: Antw:SYSSTAT Uptime
Beitrag von: Wernieman am 18 September 2017, 11:10:23
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 ...
Titel: Antw:SYSSTAT Uptime
Beitrag von: gloob am 18 September 2017, 13:49:14
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?
Titel: Antw:SYSSTAT Uptime
Beitrag von: setstate am 18 September 2017, 13:58:21
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.
Titel: Antw:SYSSTAT Uptime
Beitrag von: gloob am 18 September 2017, 14:08:11
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)
Titel: Antw:SYSSTAT Uptime
Beitrag von: justme1968 am 18 September 2017, 14:18:31
ja. SYSSTAT auf sekunden umstellen und dann drei user readings verwenden.
Titel: Antw:SYSSTAT Uptime
Beitrag von: gloob am 18 September 2017, 14:23:06

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

usw.
Titel: Antw:SYSSTAT Uptime
Beitrag von: justme1968 am 18 September 2017, 14:41:29
fast.

es muss alles in ein attribut und man sollte das uptime reading in der regex angeben.