Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Visualisierung
  4. Backitup

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    770

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    18
    1
    6.2k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.5k

Backitup

Geplant Angeheftet Gesperrt Verschoben Visualisierung
vis
8 Beiträge 3 Kommentatoren 427 Aufrufe 2 Beobachtet
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • M Offline
    M Offline
    Mizantrop
    schrieb am zuletzt editiert von Mizantrop
    #1

    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

    MicM 1 Antwort Letzte Antwort
    0
    • M Mizantrop

      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

      MicM Offline
      MicM Offline
      Mic
      Developer
      schrieb am zuletzt editiert von
      #2

      @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.

      M 1 Antwort Letzte Antwort
      0
      • MicM Mic

        @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.

        M Offline
        M Offline
        Mizantrop
        schrieb am zuletzt editiert von
        #3

        @Mic
        Ja, gerne! Genau das, was ich brauche. Danke!

        MicM 1 Antwort Letzte Antwort
        0
        • M Mizantrop

          @Mic
          Ja, gerne! Genau das, was ich brauche. Danke!

          MicM Offline
          MicM Offline
          Mic
          Developer
          schrieb am zuletzt editiert von
          #4

          @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;
              }
          
          }
          
          
          
          
          M 1 Antwort Letzte Antwort
          0
          • PeoplesP Offline
            PeoplesP Offline
            Peoples
            schrieb am zuletzt editiert von
            #5

            Könnte man auch ohne Script mit einem Binding lösen

            Ich beantworte keine Fragen zu Themen via PN

            MicM 1 Antwort Letzte Antwort
            0
            • PeoplesP Peoples

              Könnte man auch ohne Script mit einem Binding lösen

              MicM Offline
              MicM Offline
              Mic
              Developer
              schrieb am zuletzt editiert von
              #6

              @Peoples sagte in Backitup:

              Könnte man auch ohne Script mit einem Binding lösen

              Ein längeres Script hat bei mir leider nie funktioniert. Geht das bei dir? Also im Binding Datenpunkt abfragen, Datumsvergleich gegen .ts und Inhaltsprüfung, dann je nach Ergebnis Ausgabe.

              PeoplesP 1 Antwort Letzte Antwort
              0
              • MicM Mic

                @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;
                    }
                
                }
                
                
                
                
                M Offline
                M Offline
                Mizantrop
                schrieb am zuletzt editiert von
                #7

                @Mic
                funzt prima, vielen Dank!

                1 Antwort Letzte Antwort
                0
                • MicM Mic

                  @Peoples sagte in Backitup:

                  Könnte man auch ohne Script mit einem Binding lösen

                  Ein längeres Script hat bei mir leider nie funktioniert. Geht das bei dir? Also im Binding Datenpunkt abfragen, Datumsvergleich gegen .ts und Inhaltsprüfung, dann je nach Ergebnis Ausgabe.

                  PeoplesP Offline
                  PeoplesP Offline
                  Peoples
                  schrieb am zuletzt editiert von
                  #8

                  @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

                  Ich beantworte keine Fragen zu Themen via PN

                  1 Antwort Letzte Antwort
                  0

                  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
                  Antworten
                  • In einem neuen Thema antworten
                  Anmelden zum Antworten
                  • Älteste zuerst
                  • Neuste zuerst
                  • Meiste Stimmen


                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  589

                  Online

                  32.8k

                  Benutzer

                  82.7k

                  Themen

                  1.3m

                  Beiträge
                  Community
                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                  ioBroker Community 2014-2025
                  logo
                  • Anmelden

                  • Du hast noch kein Konto? Registrieren

                  • Anmelden oder registrieren, um zu suchen
                  • Erster Beitrag
                    Letzter Beitrag
                  0
                  • Home
                  • Aktuell
                  • Tags
                  • Ungelesen 0
                  • Kategorien
                  • Unreplied
                  • Beliebt
                  • GitHub
                  • Docu
                  • Hilfe