NEWS
Backitup
-
Hallo Zusammen. Ich hab folgende Frage. Wie und was kann man einstellen, damit das Datum des letzten Backups in VIS die Farbe ändern kann. Bei mir wird ein automatisches Backup jede 10 Tage erstellt bzw. soll erstellt werden. Ich hätte gern, das das Datum des letzten Backups innerhalb der nächsten 10 Tagen in grüner Farbe angezeigt wird, und danach in rot (falls kein Backup aus irgendwelchen Gründen erstellt wurde). Hat jemand eine Idee? Vielen Dank im Voraus!
Gruß. Alex -
Hallo Zusammen. Ich hab folgende Frage. Wie und was kann man einstellen, damit das Datum des letzten Backups in VIS die Farbe ändern kann. Bei mir wird ein automatisches Backup jede 10 Tage erstellt bzw. soll erstellt werden. Ich hätte gern, das das Datum des letzten Backups innerhalb der nächsten 10 Tagen in grüner Farbe angezeigt wird, und danach in rot (falls kein Backup aus irgendwelchen Gründen erstellt wurde). Hat jemand eine Idee? Vielen Dank im Voraus!
Gruß. Alex@Mizantrop
Ich habe ein Script, das jeden Tag prüft, ob (a) das letzte Backup erfolgreich war, und (b) ob das letzte Backup innerhalb von X Tagen ausgeführt wurde. Als Ergebnis wird ein Datenpunkt unter javascript.0.... gesetzt mit true/false. Hilft dir das? Dann sag Bescheid, dann kann ich gerne das JavaScript posten. -
@Mizantrop
Ich habe ein Script, das jeden Tag prüft, ob (a) das letzte Backup erfolgreich war, und (b) ob das letzte Backup innerhalb von X Tagen ausgeführt wurde. Als Ergebnis wird ein Datenpunkt unter javascript.0.... gesetzt mit true/false. Hilft dir das? Dann sag Bescheid, dann kann ich gerne das JavaScript posten. -
@Mizantrop
Ok, here you go:/********************************************* * Script: War ioBroker-Backup erfolgreich? * In einem Datenpunkt wird angezeigt, ob das Backup des Backup-Adapters erfolgreich war. * Hierbei wird geprüft, ob das letzte Backup erfolgreich war und ob es in den letzten X Stunden ausgeführt wurde. * * Autor: Mic * Version: 0.1 * Veröffentlicht auch unter: https://forum.iobroker.net/topic/27421/backitup ********************************************/ /******************************************************************************* * Einstellungen ******************************************************************************/ // Welchen Datenpunkt anlegen? Kann man so lassen. const STATE_ID_SUCCESS = 'javascript.0.VIS.Backup.ioBroker_backup_successful'; // Vor weniger als wie vielen Stunden muss das Backup durchgeführt worden sein? // Hier genügend Puffer hinzufügen, etwa jeweils 24 für einen Tag hinzufügen. // D.h. bei Backup jeden Tag = 48 (2 Tage), jede Woche = 192 (8 Tage). const M_HOURS = 48; // Wie oft soll der Backup-Adapter geprüft und Datenpunkte aktualisiert werden? // 1 mal pro Tag reicht, man macht ja i.d.R. nicht mehrfach am Tag Backups mit dem Adapter. const M_CRON = '10 5 * * *' // Um 05:10 jeden Tag /******************************************************************************* * Ab hier nichts mehr ändern / Stop editing here! ******************************************************************************/ init(); function init() { // Create state and call main() once created. createState(STATE_ID_SUCCESS, {'name':'Was ioBroker Backup successful and within last 2 days?', 'type':'boolean', 'read':true, 'write':false, 'role':'state', 'def':false }, function() { main(); }); } function main() { // Update initially updateVisState(); // Execute on every day at 5:00 in the morning schedule(M_CRON, function () { updateVisState(); }); // -- We don't really need this, is more for testing... // Execute once a minimal backup was performed on({id: 'backitup.0.history.iobrokerSuccess', change: 'any'}, function(obj) { updateVisState(); }); } function updateVisState() { let result = backupWithinLastXHours(M_HOURS); setState(STATE_ID_SUCCESS, result); } /** * Check if last backup was successful and occurred within last x hours * @param {number} hours Number of hours to check * @return {boolean} True if successful and within last x hours, false otherwise. */ function backupWithinLastXHours(hours) { if(! getState('backitup.0.history.iobrokerSuccess').val) { log('Letztes ioBroker-Backup war nicht erfolgreich!', 'warn'); return false; } // Last Backup date let tsLastBackup = getState('backitup.0.history.iobrokerSuccess').ts; // Now let dtNow = new Date(); let tsNow = dtNow.getTime(); // Difference let diff = Math.round((tsNow - tsLastBackup) / 1000 / 60 / 60); // Zeitdifferenz in Stunden if (diff > hours) { log('Letztes ioBroker-Backup war vor länger als ' + hours + ' Stunden', 'warn'); return false; } else { log('Letztes ioBroker-Backup war erfolgreich'); return true; } } -
-
@Mizantrop
Ok, here you go:/********************************************* * Script: War ioBroker-Backup erfolgreich? * In einem Datenpunkt wird angezeigt, ob das Backup des Backup-Adapters erfolgreich war. * Hierbei wird geprüft, ob das letzte Backup erfolgreich war und ob es in den letzten X Stunden ausgeführt wurde. * * Autor: Mic * Version: 0.1 * Veröffentlicht auch unter: https://forum.iobroker.net/topic/27421/backitup ********************************************/ /******************************************************************************* * Einstellungen ******************************************************************************/ // Welchen Datenpunkt anlegen? Kann man so lassen. const STATE_ID_SUCCESS = 'javascript.0.VIS.Backup.ioBroker_backup_successful'; // Vor weniger als wie vielen Stunden muss das Backup durchgeführt worden sein? // Hier genügend Puffer hinzufügen, etwa jeweils 24 für einen Tag hinzufügen. // D.h. bei Backup jeden Tag = 48 (2 Tage), jede Woche = 192 (8 Tage). const M_HOURS = 48; // Wie oft soll der Backup-Adapter geprüft und Datenpunkte aktualisiert werden? // 1 mal pro Tag reicht, man macht ja i.d.R. nicht mehrfach am Tag Backups mit dem Adapter. const M_CRON = '10 5 * * *' // Um 05:10 jeden Tag /******************************************************************************* * Ab hier nichts mehr ändern / Stop editing here! ******************************************************************************/ init(); function init() { // Create state and call main() once created. createState(STATE_ID_SUCCESS, {'name':'Was ioBroker Backup successful and within last 2 days?', 'type':'boolean', 'read':true, 'write':false, 'role':'state', 'def':false }, function() { main(); }); } function main() { // Update initially updateVisState(); // Execute on every day at 5:00 in the morning schedule(M_CRON, function () { updateVisState(); }); // -- We don't really need this, is more for testing... // Execute once a minimal backup was performed on({id: 'backitup.0.history.iobrokerSuccess', change: 'any'}, function(obj) { updateVisState(); }); } function updateVisState() { let result = backupWithinLastXHours(M_HOURS); setState(STATE_ID_SUCCESS, result); } /** * Check if last backup was successful and occurred within last x hours * @param {number} hours Number of hours to check * @return {boolean} True if successful and within last x hours, false otherwise. */ function backupWithinLastXHours(hours) { if(! getState('backitup.0.history.iobrokerSuccess').val) { log('Letztes ioBroker-Backup war nicht erfolgreich!', 'warn'); return false; } // Last Backup date let tsLastBackup = getState('backitup.0.history.iobrokerSuccess').ts; // Now let dtNow = new Date(); let tsNow = dtNow.getTime(); // Difference let diff = Math.round((tsNow - tsLastBackup) / 1000 / 60 / 60); // Zeitdifferenz in Stunden if (diff > hours) { log('Letztes ioBroker-Backup war vor länger als ' + hours + ' Stunden', 'warn'); return false; } else { log('Letztes ioBroker-Backup war erfolgreich'); return true; } } -
@Mic
Ich hab jetzt mal ein bisschen rumgespielt und versucht folgendes als Bining zu machen:{ats:new Date().getTime(); lb:backitup.0.history.minimalSuccess.ts; lb + 864000000000 > ats? "green" : "red"}Aber das Problem ist dass ich im Binding kein Ergebnis aus 'new Date().getTime()' bekomme, somit kann ich auch nicht damit rechnen
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden