Update

ioBroker Skript zur Anzeige der benötigten System Updates des Raspberry Pi

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);

Schreibe einen Kommentar

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