Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. Datenpunkt per VIS-Script ändern

    NEWS

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    Datenpunkt per VIS-Script ändern

    This topic has been deleted. Only users with topic management privileges can see it.
    • J
      joerg55 last edited by

      Hi,

      ich habe in einem früheren Topic gesehen, dass man das click-Ereignis eines Widgets auf eine eigene Routine umleiten kann

      function onClick() {
          alert("Hallo Welt");
          var s1 = getState("vis.0.data01").val;
          alert(s1);
      }
      
      function enableClick(id) {
          var $id = $("#" + id);
          if (!$id.length) return setTimeout(enableClick, 300, id);
      
          $id.click(onClick);
      }
      
      if (!vis.editMode) enableClick('w00002');
      

      Leider gelingt es mir nicht, auf Datenpunkte zuzugreifen (siehe Zeile 3, der Datenpunkt existiert auch). Was mache ich falsch?

      Joerg

      OliverIO 1 Reply Last reply Reply Quote 0
      • OliverIO
        OliverIO @joerg55 last edited by

        @joerg55 sagte in Datenpunkt per VIS-Script ändern:

        function onClick() { alert("Hallo Welt"); var s1 = getState("vis.0.data01").val; alert(s1); } function enableClick(id) { var $id = $("#" + id); if (!$id.length) return setTimeout(enableClick, 300, id); $id.click(onClick); } if (!vis.editMode) enableClick('w00002');

        an dieser stelle solltest du keine datenpunkte anlegen.
        Die einzigen Bereiche, wo du selbst datenpunkte anlegen solltest ist

        0_userdata.0 und
        javascript.0

        Weiterhin funktionieren die Befehle in vis nicht exakt so wie im javascript-Adapter, da du dich ja im browser befindest.
        Daher musst du den Befehl asynchron erst an den Server senden:

        <script>
            function onClick() {
                vis.conn._socket.emit('getState', "0_userdata.0.select", function (err, state) {
                    alert(state.val);
                });
            }
         
        function enableClick(id) {
            var $id = $("#" + id);
            if (!$id.length) return setTimeout(enableClick, 300, id);
             $id.click(onClick);
        }
        
        if (!vis.editMode) enableClick('w00011');
        </script>
        
        J 1 Reply Last reply Reply Quote 0
        • J
          joerg55 @OliverIO last edited by

          @oliverio ,

          prima, das funktioniert. Schönen Dank.

          Ich sehe häufig, dass mit dem ioBroker und seiner Visualisierung alle erdenklichen Varianten von Smarthome-Themen sehr ansprechend realisierbar sind. Ich würde da gern ein bißchen tiefer einsteigen, um eigene Vorstellungen besser umsetzen zu können. Leider finde ich nirgends entsprechende Dokumentation. Gibt es die irgendwo?

          Bezogen auf obiges Thema hätte ich noch die Frage, wie ich innerhalb meiner onClick-Funktion auf die visible-Eigenschaft von anderen Widgets des Projekts zugreifen kann.

          Hast du da noch einen Tipp für mich?

          OliverIO 1 Reply Last reply Reply Quote 0
          • OliverIO
            OliverIO @joerg55 last edited by

            @joerg55 sagte in Datenpunkt per VIS-Script ändern:

            @oliverio ,

            prima, das funktioniert. Schönen Dank.

            Ich sehe häufig, dass mit dem ioBroker und seiner Visualisierung alle erdenklichen Varianten von Smarthome-Themen sehr ansprechend realisierbar sind. Ich würde da gern ein bißchen tiefer einsteigen, um eigene Vorstellungen besser umsetzen zu können. Leider finde ich nirgends entsprechende Dokumentation. Gibt es die irgendwo?

            Bezogen auf obiges Thema hätte ich noch die Frage, wie ich innerhalb meiner onClick-Funktion auf die visible-Eigenschaft von anderen Widgets des Projekts zugreifen kann.

            Hast du da noch einen Tipp für mich?

            welches visible`?
            das css visible?
            oder eines der vis-einstellungen zu einem widget?
            im browser in der console findest du das huaptobjekt von vis, nämlich vis.
            das kannst mal durchschauen

            die vis Einstellungen für eine view und den darin enthaltenen widgets findest du unter

            vis.views[viewname]widgets[widgetID]
            

            Änderungen daran werden allerdings nicht übernommen.
            da musst du direkt auf css gehen

            J 1 Reply Last reply Reply Quote 0
            • J
              joerg55 @OliverIO last edited by

              @oliverio ,

              @oliverio said in Datenpunkt per VIS-Script ändern:

              Änderungen daran werden allerdings nicht übernommen.
              da musst du direkt auf css gehen

              Ok. Ich meinte die Sichtbarkeit eines Widgets im 'Nicht-Edit-Modus' also das css-visible. Hintergrund war die Idee, ein Klick im View zu nutzen, um Bilder ein- bzw. auszublenden, ohne dabei den 'Umweg' über einen Datenpunkt zu gehen.

              Besten Dank, Gruß Joerg

              OliverIO 1 Reply Last reply Reply Quote 0
              • OliverIO
                OliverIO @joerg55 last edited by

                @joerg55 said in Datenpunkt per VIS-Script ändern:

                @oliverio ,

                @oliverio said in Datenpunkt per VIS-Script ändern:

                Änderungen daran werden allerdings nicht übernommen.
                da musst du direkt auf css gehen

                Ok. Ich meinte die Sichtbarkeit eines Widgets im 'Nicht-Edit-Modus' also das css-visible. Hintergrund war die Idee, ein Klick im View zu nutzen, um Bilder ein- bzw. auszublenden, ohne dabei den 'Umweg' über einen Datenpunkt zu gehen.

                Besten Dank, Gruß Joerg

                Das lässt sich sehr gut mit jquery abfragen und ändern:

                $(selektor).css('visibility','none');
                

                https://api.jquery.com/css/

                J 1 Reply Last reply Reply Quote 0
                • J
                  joerg55 @OliverIO last edited by

                  @oliverio said in Datenpunkt per VIS-Script ändern:

                  $(selektor).css('visibility','none');

                  ja, das ist genau das, was ich gesucht habe. Ich habe im Moment leider noch keinen wirklichen Plan zu dem gesamten web-Thema (html, css, dom, jquery...). Ich hoffe, die Community bleibt geduldig mit mir 😊

                  Besten Dank, Joerg

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

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  536
                  Online

                  31.6k
                  Users

                  79.5k
                  Topics

                  1.3m
                  Posts

                  2
                  7
                  421
                  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