Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • 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. Skripten / Logik
  4. JavaScript
  5. [gelöst]Wertänderung bei Aktualisierung

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

[gelöst]Wertänderung bei Aktualisierung

Geplant Angeheftet Gesperrt Verschoben JavaScript
javascriptmonitoring
6 Beiträge 3 Kommentatoren 892 Aufrufe 3 Watching
  • Ä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.
  • Dominik F.D Offline
    Dominik F.D Offline
    Dominik F.
    schrieb am zuletzt editiert von Dominik F.
    #1

    Hallo,

    ich habe folgendes Skript schon mit viel Unterstützung am Laufen:

    let json = JSON.parse(getState('admin.0.info.updatesJson').val);
    let updates = [];
    let result;
     
    for(let adapter in json) {
     
        let tmp = {};
     
        tmp.adapter = adapter;
        tmp.installed = json[adapter].installedVersion;
        tmp.available = json[adapter].availableVersion;
     
        updates.push(tmp);
    }
     
    result = JSON.stringify(updates);
    
    // Skriptstart  
    setState('javascript.0.VIS.ioBroker_Updates'/*ioBroker Updates*/, result);
    
    // Aktualisierung bei Wertänderung
    on({id: 'admin.0.info.updatesJson', change: 'ne'}, function(dp) {
       setState('javascript.0.VIS.ioBroker_Updates'/*ioBroker Updates*/, dp.state.val);
    });
    
    

    Ich möchte mir damit zu aktualisierende Adapter von Iobroker in Vis anzeigen lassen. Das ganze funktioniert auch soweit.
    Unbenannt.PNG
    Der folgende Teil funktioniert leider noch nicht wie gewünscht und ich bräuchte da Hilfe. Das ganze Skript funktioniert im Moment nur wenn das Skript neu gestartet wird. Ich möchte wenn im Datenpunkt admin.0.info.updatesJson eine Änderung auftritt, das Skipt darauf reagiert. Hat jemand eine Idee was ich falsch mache?

    // Aktualisierung bei Wertänderung
    on({id: 'admin.0.info.updatesJson', change: 'ne'}, function(dp) {
       setState('javascript.0.VIS.ioBroker_Updates'/*ioBroker Updates*/, dp.state.val);
    });
    paul53P M 2 Antworten Letzte Antwort
    0
    • Dominik F.D Dominik F.

      Hallo,

      ich habe folgendes Skript schon mit viel Unterstützung am Laufen:

      let json = JSON.parse(getState('admin.0.info.updatesJson').val);
      let updates = [];
      let result;
       
      for(let adapter in json) {
       
          let tmp = {};
       
          tmp.adapter = adapter;
          tmp.installed = json[adapter].installedVersion;
          tmp.available = json[adapter].availableVersion;
       
          updates.push(tmp);
      }
       
      result = JSON.stringify(updates);
      
      // Skriptstart  
      setState('javascript.0.VIS.ioBroker_Updates'/*ioBroker Updates*/, result);
      
      // Aktualisierung bei Wertänderung
      on({id: 'admin.0.info.updatesJson', change: 'ne'}, function(dp) {
         setState('javascript.0.VIS.ioBroker_Updates'/*ioBroker Updates*/, dp.state.val);
      });
      
      

      Ich möchte mir damit zu aktualisierende Adapter von Iobroker in Vis anzeigen lassen. Das ganze funktioniert auch soweit.
      Unbenannt.PNG
      Der folgende Teil funktioniert leider noch nicht wie gewünscht und ich bräuchte da Hilfe. Das ganze Skript funktioniert im Moment nur wenn das Skript neu gestartet wird. Ich möchte wenn im Datenpunkt admin.0.info.updatesJson eine Änderung auftritt, das Skipt darauf reagiert. Hat jemand eine Idee was ich falsch mache?

      // Aktualisierung bei Wertänderung
      on({id: 'admin.0.info.updatesJson', change: 'ne'}, function(dp) {
         setState('javascript.0.VIS.ioBroker_Updates'/*ioBroker Updates*/, dp.state.val);
      });
      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von paul53
      #2

      @Dominik-F sagte:

      eine Änderung auftritt, das Skipt darauf reagiert.

      Das Skript reagiert auf Wertänderungen des Datenpunktes, schreibt den Wert allerdings ohne Modifikation in den Vis-Datenpunkt. Die Umwandlung muss in eine Funktion gepackt werden, die bei Skriptstart und im Trigger aufgerufen wird.

      const idUpdates = 'admin.0.info.updatesJson';
      const idVis = 'javascript.0.VIS.ioBroker_Updates'/*ioBroker Updates*/;
      
      function modify(json) {
         let obj = JSON.parse(json);
         let updates = [];
         for(let adapter in obj) {
            let tmp = {};
            tmp.adapter = adapter;
            tmp.installed = obj[adapter].installedVersion;
            tmp.available = obj[adapter].availableVersion;
            updates.push(tmp);
         }
         setState(idVis, JSON.stringify(updates), true);
      }
      
      // Skriptstart 
      modify(getState(idUpdates).val);
       
      // Aktualisierung bei Wertänderung
      on({id: idUpdates, change: 'ne'}, function(dp) {
         modify(dp.state.val);
      });
      

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      Dominik F.D 1 Antwort Letzte Antwort
      1
      • paul53P paul53

        @Dominik-F sagte:

        eine Änderung auftritt, das Skipt darauf reagiert.

        Das Skript reagiert auf Wertänderungen des Datenpunktes, schreibt den Wert allerdings ohne Modifikation in den Vis-Datenpunkt. Die Umwandlung muss in eine Funktion gepackt werden, die bei Skriptstart und im Trigger aufgerufen wird.

        const idUpdates = 'admin.0.info.updatesJson';
        const idVis = 'javascript.0.VIS.ioBroker_Updates'/*ioBroker Updates*/;
        
        function modify(json) {
           let obj = JSON.parse(json);
           let updates = [];
           for(let adapter in obj) {
              let tmp = {};
              tmp.adapter = adapter;
              tmp.installed = obj[adapter].installedVersion;
              tmp.available = obj[adapter].availableVersion;
              updates.push(tmp);
           }
           setState(idVis, JSON.stringify(updates), true);
        }
        
        // Skriptstart 
        modify(getState(idUpdates).val);
         
        // Aktualisierung bei Wertänderung
        on({id: idUpdates, change: 'ne'}, function(dp) {
           modify(dp.state.val);
        });
        
        Dominik F.D Offline
        Dominik F.D Offline
        Dominik F.
        schrieb am zuletzt editiert von
        #3

        @paul53

        Vielen lieben Dank, du hast mir mal wieder sehr geholfen :)

        1 Antwort Letzte Antwort
        0
        • Dominik F.D Dominik F.

          Hallo,

          ich habe folgendes Skript schon mit viel Unterstützung am Laufen:

          let json = JSON.parse(getState('admin.0.info.updatesJson').val);
          let updates = [];
          let result;
           
          for(let adapter in json) {
           
              let tmp = {};
           
              tmp.adapter = adapter;
              tmp.installed = json[adapter].installedVersion;
              tmp.available = json[adapter].availableVersion;
           
              updates.push(tmp);
          }
           
          result = JSON.stringify(updates);
          
          // Skriptstart  
          setState('javascript.0.VIS.ioBroker_Updates'/*ioBroker Updates*/, result);
          
          // Aktualisierung bei Wertänderung
          on({id: 'admin.0.info.updatesJson', change: 'ne'}, function(dp) {
             setState('javascript.0.VIS.ioBroker_Updates'/*ioBroker Updates*/, dp.state.val);
          });
          
          

          Ich möchte mir damit zu aktualisierende Adapter von Iobroker in Vis anzeigen lassen. Das ganze funktioniert auch soweit.
          Unbenannt.PNG
          Der folgende Teil funktioniert leider noch nicht wie gewünscht und ich bräuchte da Hilfe. Das ganze Skript funktioniert im Moment nur wenn das Skript neu gestartet wird. Ich möchte wenn im Datenpunkt admin.0.info.updatesJson eine Änderung auftritt, das Skipt darauf reagiert. Hat jemand eine Idee was ich falsch mache?

          // Aktualisierung bei Wertänderung
          on({id: 'admin.0.info.updatesJson', change: 'ne'}, function(dp) {
             setState('javascript.0.VIS.ioBroker_Updates'/*ioBroker Updates*/, dp.state.val);
          });
          M Offline
          M Offline
          myssv
          schrieb am zuletzt editiert von
          #4

          @Dominik-F sagte in [gelöst]Wertänderung bei Aktualisierung:

          Ich möchte mir damit zu aktualisierende Adapter von Iobroker in Vis anzeigen lassen. Das ganze funktioniert auch soweit.
          Unbenannt.PNG

          Wie hast Du die Tabelle hinbekommen. Ich scheiter da gerade. Bei mir sieht es so aus:

          2b9ef903-e78f-4a5d-afe5-339961d7bfbb-grafik.png

          Dominik F.D 1 Antwort Letzte Antwort
          0
          • M myssv

            @Dominik-F sagte in [gelöst]Wertänderung bei Aktualisierung:

            Ich möchte mir damit zu aktualisierende Adapter von Iobroker in Vis anzeigen lassen. Das ganze funktioniert auch soweit.
            Unbenannt.PNG

            Wie hast Du die Tabelle hinbekommen. Ich scheiter da gerade. Bei mir sieht es so aus:

            2b9ef903-e78f-4a5d-afe5-339961d7bfbb-grafik.png

            Dominik F.D Offline
            Dominik F.D Offline
            Dominik F.
            schrieb am zuletzt editiert von
            #5

            @myssv

            Ich nutze das Material Design CSS von Uhula.
            Hier das Widget:

            [{"tpl":"tplTableBody","data":{"g_fixed":true,"g_visibility":true,"g_css_font_text":true,"g_css_background":true,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","static_value":"","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"class":"mdui-table","table_oid":"javascript.0.VIS.ioBroker_Updates","colCount":"3","colWidth1":"150px","colWidth2":"50px","colWidth3":"50px","colName1":"Adapter","colName2":"Installed","colName3":"Available","max_rows":"0"},"style":{"left":"10px","top":"20px","width":"auto","height":"auto","background-color":"transparent","position":"","text-align":"left"},"widgetSet":"basic"}]
            
            1 Antwort Letzte Antwort
            1
            • M Offline
              M Offline
              myssv
              schrieb am zuletzt editiert von
              #6

              DANKE SEHR!

              1 Antwort Letzte Antwort
              0
              Antworten
              • In einem neuen Thema antworten
              Anmelden zum Antworten
              • Älteste zuerst
              • Neuste zuerst
              • Meiste Stimmen


              Support us

              ioBroker
              Community Adapters
              Donate

              707

              Online

              32.6k

              Benutzer

              82.2k

              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