Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [gelöst]Wertänderung bei Aktualisierung

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst]Wertänderung bei Aktualisierung

    This topic has been deleted. Only users with topic management privileges can see it.
    • Dominik F.
      Dominik F. last edited by 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);
      });
      paul53 M 2 Replies Last reply Reply Quote 0
      • paul53
        paul53 @Dominik F. last edited by 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. 1 Reply Last reply Reply Quote 1
        • Dominik F.
          Dominik F. @paul53 last edited by

          @paul53

          Vielen lieben Dank, du hast mir mal wieder sehr geholfen 🙂

          1 Reply Last reply Reply Quote 0
          • M
            myssv @Dominik F. last edited by

            @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. 1 Reply Last reply Reply Quote 0
            • Dominik F.
              Dominik F. @myssv last edited by

              @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 Reply Last reply Reply Quote 1
              • M
                myssv last edited by

                DANKE SEHR!

                1 Reply Last reply Reply Quote 0
                • First post
                  Last post

                Support us

                ioBroker
                Community Adapters
                Donate

                933
                Online

                31.9k
                Users

                80.2k
                Topics

                1.3m
                Posts

                javascript monitoring
                3
                6
                753
                Loading More Posts
                • Oldest to Newest
                • Newest to Oldest
                • Most Votes
                Reply
                • Reply as topic
                Log in to reply
                Community
                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                The ioBroker Community 2014-2023
                logo