Update

Mit diesem Skript lässt sich ein Datenpunkt erstellen, der die Anzahl der aktuell verfügbaren System Updates des Raspberry Pi anzeigt. Ich lasse es nachts um 00:01 Uhr einmalig ausführen. Somit wird der Stand aktualisiert, sollten tagsüber neue System Updates heraus gekommen sein.

Man erstellt das Skript unter einem beliebigen Namen im “common” – Bereich des Skript-Editors.

// Skript, um SystemUpdates des HostSystems anzuzeigen
var pfad = "Systeminfos.ioBroker" + ".";
var apt_update = "sudo apt update";
var abfrage = "apt list --upgradable 2>/dev/null | wc -l | awk '{print $S1-1}'";
var DataPoint = pfad + 'raspi_updates';
createState(DataPoint, "", {
    name: 'Raspi Updates',
    desc: 'Systemupdates für den Raspi',
    type: 'string',
    unit: '',
    role: 'value'
});
function check_for_updates() {
    exec(apt_update);
    exec(abfrage,
        function (error, stdout, stderr) {
            var value = stdout;
            if (value == '') {
                value = '0';
            } else {
                value = stdout;
            }
            setState(DataPoint, value);
        });
}
// Abfrage nachts um 00:01 Uhr
schedule('1 0 * * *',check_for_updates);

Nachdem das Skript aktiviert ist, steht die Version im Datenpunkt:

// javascript 0 bei nur einer installierten Skript - Instanz
javascript.0.Systeminfos.ioBroker.raspi_updates

Hierbei ist zu beachten, dass die Anzahl der verfügbaren Updates nachts um 00:01 Uhr eingetragen wird.

Sollte man eine vorherige Anzeige benötigen, so kann man das Skript erweitern und einmal den Funktionsaufruf mit einfügen.

// Skript, um SystemUpdates des HostSystems anzuzeigen
var pfad = "Systeminfos.ioBroker" + ".";
var apt_update = "sudo apt update";
var abfrage = "apt list --upgradable 2>/dev/null | wc -l | awk '{print $S1-1}'";
var DataPoint = pfad + 'raspi_updates';
createState(DataPoint, "", {
    name: 'Raspi Updates',
    desc: 'Systemupdates für den Raspi',
    type: 'string',
    unit: '',
    role: 'value'
});
function check_for_updates() {
    exec(apt_update);
    exec(abfrage,
        function (error, stdout, stderr) {
            var value = stdout;
            if (value == '') {
                value = '0';
            } else {
                value = stdout;
            }
            setState(DataPoint, value);
        });
}
check_for_updates(); //Hier findet der Funktionsaufruf einmalig statt und füllt den Datenpunkt
// Abfrage nachts um 00:01 Uhr
schedule('1 0 * * *',check_for_updates);

Kategorien:

Bisher keine Kommentare

Schreibe einen Kommentar

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