Hinter dem englischen Begriff Gadget verbirgt sich die sinngemäße deutsche Übersetzung „technische Spielerei“.  Eine solche möchte ich hier vorstellen, nicht unbedingt notwendig, aber schön dass es geht. Uptime ist ein englischer Ausdruck für die Zeit, in der ein Computersystem läuft und funktionstüchtig ist, auf Deutsch also Betriebszeit, oder auch verfügbare Betriebszeit.

Da ich auch beruflich in der IT-Branche aktiv bin, kenne ich die Bedeutung einer solchen Zeit für die Zuverlässigkeit eines Systems. Daher war die Idee nicht so abwegig die Betriebszeit meiner HomeMatic Zentrale zu ermitteln und wenn möglich auf dem Startbildschirm anzuzeigen. Da sowohl die CCU wie auch RaspberryMatic auf einem Linux System basieren, begann meine Suche genau dort.

Der Befehl „uptime“ gibt auf Unix-Derivaten die aktuelle Uhrzeit, die Uptime des Systems, sowie den Load-Average über die letzten 1, 5 und 15 Minuten aus.

Mit dem nachfolgenden Befehl habe ich dann versucht die für mich relevanten Informationen heraus zu filtern.

Ich habe den Befehl in der Folge noch weiter angepasst und im HomeMatic Script weiter unten findet ihr den endgültigen Befehl, der die Betriebszeit in einem angenehmen, „human“ Format ausgibt.


Systemvariable erstellen

Im nächsten Schritt ist die Systemvariable anzulegen, in die wir die ermittelte Betriebszeit schreiben wollen. Dazu ist über die WebUI eine Variable vom Typ „Zeichenkette“ zu definieren. Wenn ihr eure HomeMatic Zentrale auf einer CCU betreibt, könnt ihr die Variable entsprechend definieren.

Startseite > Einstellungen > Systemvariable

Systemvariable zur Startseite hinzufügen

Über das folgende WebUI Menü:  Startseite > Einstellungen > Benutzerverwaltung Könnt ihr die neue Systemvariable der Startseite des entsprechenden Benutzers hinzufügen.

SCRIPT

WebUI Programm

Um den ermittelten Wert in die oben angelegte Systemvariable zu schreiben, lasse ich ein Programm zyklisch laufen. Wichtig dabei ist, den Zyklus nicht zu kurz zu wählen, weil das zu Problemen führen kann. Außerdem macht es aus meiner Sicht keinen Sinn, im Minutentakt die Betriebszeit zu berechnen. Aus diesem Grund habe ich mich für einen Zyklus von 5 Minuten entschieden.

Hier der Ausdruck des Programms:

Wie bereits im Artikel „AddOn CUx-Daemon (CUx-D)“ beschrieben, empfehle ich bei häufigen Aufrufen von Systemfunktionen das über dieses AddOn umzusetzen. Dadurch läuft es sehr viel stabiler wie mit der Funktion „system.exec“. Warum genau habe ich dort detailliert beschrieben.


Eines möchte ich hier aber zusätzlich noch aufzeigen. Über das in CUx-D definierte Gerät kann man bis zu 19 Kanäle bestimmten Funktions-Aufrufen zuweisen. Im obigen Programm könnt ihr sehen, dass ich für die Ermittlung der Betriebszeit den Kanal 5 zugewiesen habe.

Damit ich immer einen Überblick habe, wie ich die einzelnen Kanäle des CUxD-Gerätes zugewiesen habe, nutze ich die Möglichkeit das in der Gerätekonfiguration in der WebUI zu definieren.

Startseite > Einstellungen > Geräte

Anzeige auf der WebUI Startseite

Zum Schluss noch ein Screenshot von der aktualisierten Startseite:

 

Das könnte Dich auch interessieren

VORSCHAU – Neuigkeit 01.2019 – Homematic IP 6fach-Kontakt-Interface ...
Aufrufe 2263
Ein weiterer sehr interessanter Aktor ist das Homematic IP 6fach-Kontakt-Interface UP, welches unter dem Namen HmIP-FCIS. Damit ist es möglich auch h...
VORSCHAU – Neuigkeit 01.2019 – Homematic IP Fernbedienung mit Montagegurt –...
Aufrufe 1411
Heute möchte ich euch wieder eQ-3 Neuigkeiten vorstellen, die für Januar 2019 angekündigt sind. In diesem Artikel geht es um eine HomeMatic IP Fernbe...
NEUHEIT – Homematic IP Funk-Klingeltaster HmIP-DBB, ARR-Bausatz
Aufrufe 3081
Bereits am 25.07.2018 habe ich euch in dem Artikel "Vorschau - Neuigkeiten 09.2018" über diesen Aktor informiert. Nun ist er verfügbar und ich möchte...
VORSCHAU – Neuigkeiten 09.2018 – Homematic IP Kombisignalgeber
Aufrufe 2775
Aktuell hat ELV einige Neuigkeiten vorgestellt. Wie üblich wird noch nicht allzu viel verraten, aber es sind aus meiner Sicht trotzdem interessante Sa...
Erfahrungsbericht – HomeMatic IP Wassersensor-HmIP-SWD – Klein aber ...
Aufrufe 2141
Nachdem ich nun eine viel zu lange Zeit warten musste, ist nun endlich der bestellte neue Homematic IP Wassersonsor HmIP-SWD bei mir eingetroffen. Ich...
Erfahrungsbericht – HomeMatic IP Lichtsensor HmIP-SLO – Homematic
Aufrufe 2975
Seit einigen Tagen bin ich im Besitz den neuen HomeMatic IP Lichtsensor HmIP-SLO. Nachdem ich diesen Aktor das erste Mal in der Hand hatte, fiel mir g...
4 Kommentare
  1. Mathias sagte:

    Und so gehts beim Tinkerboard:
    Beschreibung wie ober, aber als Skript geben wir folgendes ein:

    string temp;
    system.Exec(„cat /sys/class/thermal/thermal_zone0/temp | sed ’s/.\{3\}$/.&/'“, &temp);
    if(temp != „“) {
    dom.GetObject(ID_SYSTEM_VARIABLES).Get(„CPU_Temp“).State(temp);
    }
    system.Exec(„cat /proc/loadavg | cut -d‘ ‚ -f-3 | tr -d ‚\n'“, &temp);
    if(temp != „“) {
    dom.GetObject(ID_SYSTEM_VARIABLES).Get(„CPU_Load“).State(temp);
    }
    system.Exec(„free -m | grep Mem: | awk ‚{ printf(\“%.1f\“, $3/$2*100) }'“, &temp);
    if(temp != „“) {
    dom.GetObject(ID_SYSTEM_VARIABLES).Get(„RAM_Usage“).State(temp);
    }
    system.Exec(„awk ‚{s=int($1);d=int(s/86400);h=int(s % 86400/3600);m=int(s % 3600 / 60); printf \“%d days, %02d:%02d\“, d, h, m}‘ /proc/uptime“, &temp);
    if(temp != „“) {
    dom.GetObject(ID_SYSTEM_VARIABLES).Get(„SYS_Uptime“).State(temp);
    }
    system.Exec(„/usr/bin/ntpq -pn | grep ‚*‘ | awk ‚{print $9}'“, &temp);
    if(temp != „“) {
    dom.GetObject(ID_SYSTEM_VARIABLES).Get(„SYS_NTPOffset“).State(temp);
    }
    Wir brauchen noch die Systemvariablen:
    CPU_Temp – Zahl mit Einheit °C (min: -100, max: 100)
    CPU_Load – Zeichenkette
    RAM_Usage – Zahl mit Einheit % (min: 0, max: 100)
    SYS_Uptime – Zeichenkeitte
    SYS_NTPOffset – Zahl mit Einheit ms (min: -999999, max: 999999)

    Antworten
  2. Manu sagte:

    Hallo,

    wie müsste das Script aussehen, um mit „vcgencmd measure_clock arm“ die Taktfrequenz der CPU (in MHz) anzeigen zu lassen?
    Hatte es mit dem Script zur Temperatur-Auslesung probiert, aber das klappt nicht so recht.

    Antworten
  3. Joachim sagte:

    Dank der Überschrift bin ich etwas irritiert. Ich dachte, ich könnte die tatsächliche Betriebszeit des Raspberry in der Raspberrymatic auslesen. Vielmehr ist der Zeitabschnitt von einem Bootvorgang zum nächsten Bootvorgang gemeint. Und wenn das Scipt ordentlich zeitverzögert läuft, ist sogar der vorherige Wert nach einem Reboot zu sehen, bis er wieder auf Null gesetzt wird und neu zählt. Monatliche Updates und Hardwareschraubereien sorgen dafür, dass immer nur Tage zusammen kommen.
    Lässt sich das Script auf die gesamte Betriebszeit anpassen?

    Antworten
  4. Stefan sagte:

    Perfekt, das werden ich auf alle Fälle ausprobieren!

    Und wie das mit system.exec“ klappt wollte ich schon lange wissen,
    habe schon befürchtet ich muss jedesmal eine neue „Fernbedienung“ installieren und habe mir schon irgendwie gedacht dass nicht alles auf den gleichen Kanal laufen kann.

    sehr gut erklärt soweit ich das zu so später Stunde überflogen habe.

    Antworten

Dein Kommentar

An Diskussion beteiligen?
Hinterlasse uns Deinen Kommentar!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Ich akzeptiere die Speicherung der Daten.