Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. [Gelöst] - Vis 1 Editor Skript: setzen eines Objekt-Wertes?

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    12
    1
    127

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

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

[Gelöst] - Vis 1 Editor Skript: setzen eines Objekt-Wertes?

Scheduled Pinned Locked Moved JavaScript
9 Posts 3 Posters 1.0k Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • I Offline
    I Offline
    ioBit
    wrote on last edited by ioBit
    #1

    Hallo ioBroker-Forum!

    Ein Skript im vis-editor liest die Auflösung des Fensters aus, indem die vis läuft und bei Änderung der Auflösung, reagiert das Skript. Frage: kann man per Vis-Skript die Werte eines Buttons (oder eins beliebigen anderen Widgets) oder noch besser eines Objekt-Wertes per Editor-Skript ändern?

    Ziel: Ändern der Auflösung (zB durch Drehen eines iPads) soll automatisch die View ändern.
    Anmerkung: Ein Wechsel auf Vis 2 ist erst einmal nicht vorgesehen.

    Aufbau:

    View_1 (1024x768)
    View_2 (z.B.: 768x1024)

    // SKRIPT IM VIS EDITOR
    const mq = window.matchMedia('(min-width: 1024px)');
    
    function updateView(mq) {
      if (mq.matches) {
        console.log('Große Auflösung');
        // kann man jetzt einen Widget/Button/Objekt-Wert ändern lassen?
        return true;
      } else {
        console.log('Kleine Auflösung');
        // kann man jetzt einen Widget/Button/Objekt-Wert ändern lassen?
        return false;
      }
    }
    updateView(mq);
    mq.addEventListener('change', updateView);
    

    Objekte/Datenpunkt: 0_userdata.0.isHighResolution

    JavaScript im Adapter:

    on('0_userdata.0.isHighResolution', function(obj) {
        var state = getState('0_userdata.0.isHighResolution').val;
        const smallView = 'View_2';
        const largeView = 'View_1';
        const instance = 'XXXXXXX'
        
        if (state) {
            setState('vis.0.control.instance', instance);
            setState('vis.0.control.data', largeView);
            setState('vis.0.control.command',  'changeView');
        } else {
            setState('vis.0.control.instance', instance);
            setState('vis.0.control.data', smallView);
            setState('vis.0.control.command',  'changeView');
        }
    });
    

    Aktueller Workaround:
    In der vis befindet sich ein Button, der den Objektwert beim Drücken zwischen true/false wechselt.
    Das Wechseln des Objektwertes triggert das Javascript, welches die View für die spezielle Instanz ändert.

    liv-in-skyL 1 Reply Last reply
    0
    • I ioBit

      Hallo ioBroker-Forum!

      Ein Skript im vis-editor liest die Auflösung des Fensters aus, indem die vis läuft und bei Änderung der Auflösung, reagiert das Skript. Frage: kann man per Vis-Skript die Werte eines Buttons (oder eins beliebigen anderen Widgets) oder noch besser eines Objekt-Wertes per Editor-Skript ändern?

      Ziel: Ändern der Auflösung (zB durch Drehen eines iPads) soll automatisch die View ändern.
      Anmerkung: Ein Wechsel auf Vis 2 ist erst einmal nicht vorgesehen.

      Aufbau:

      View_1 (1024x768)
      View_2 (z.B.: 768x1024)

      // SKRIPT IM VIS EDITOR
      const mq = window.matchMedia('(min-width: 1024px)');
      
      function updateView(mq) {
        if (mq.matches) {
          console.log('Große Auflösung');
          // kann man jetzt einen Widget/Button/Objekt-Wert ändern lassen?
          return true;
        } else {
          console.log('Kleine Auflösung');
          // kann man jetzt einen Widget/Button/Objekt-Wert ändern lassen?
          return false;
        }
      }
      updateView(mq);
      mq.addEventListener('change', updateView);
      

      Objekte/Datenpunkt: 0_userdata.0.isHighResolution

      JavaScript im Adapter:

      on('0_userdata.0.isHighResolution', function(obj) {
          var state = getState('0_userdata.0.isHighResolution').val;
          const smallView = 'View_2';
          const largeView = 'View_1';
          const instance = 'XXXXXXX'
          
          if (state) {
              setState('vis.0.control.instance', instance);
              setState('vis.0.control.data', largeView);
              setState('vis.0.control.command',  'changeView');
          } else {
              setState('vis.0.control.instance', instance);
              setState('vis.0.control.data', smallView);
              setState('vis.0.control.command',  'changeView');
          }
      });
      

      Aktueller Workaround:
      In der vis befindet sich ein Button, der den Objektwert beim Drücken zwischen true/false wechselt.
      Das Wechseln des Objektwertes triggert das Javascript, welches die View für die spezielle Instanz ändert.

      liv-in-skyL Offline
      liv-in-skyL Offline
      liv-in-sky
      wrote on last edited by
      #2

      @iobit sagte in Vis 1 Editor Skript: setzen eines Objekt-Wertes?:

      eines Objekt-Wertes per Editor-Skript ändern?

      meinst du einen datenpunkt ändern ?

      dann:

      vis.setValue('0_userdata.0.CONTROL-OWN.AAATEST.ATESTBildUpload.uplaodBase64',myvalue);
      

      nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

      I 1 Reply Last reply
      1
      • liv-in-skyL liv-in-sky

        @iobit sagte in Vis 1 Editor Skript: setzen eines Objekt-Wertes?:

        eines Objekt-Wertes per Editor-Skript ändern?

        meinst du einen datenpunkt ändern ?

        dann:

        vis.setValue('0_userdata.0.CONTROL-OWN.AAATEST.ATESTBildUpload.uplaodBase64',myvalue);
        
        I Offline
        I Offline
        ioBit
        wrote on last edited by
        #3

        @liv-in-sky sagte in Vis 1 Editor Skript: setzen eines Objekt-Wertes?:

        @iobit sagte in Vis 1 Editor Skript: setzen eines Objekt-Wertes?:

        eines Objekt-Wertes per Editor-Skript ändern?

        meinst du einen datenpunkt ändern ?

        dann:

        vis.setValue('0_userdata.0.CONTROL-OWN.AAATEST.ATESTBildUpload.uplaodBase64',myvalue);
        

        Vielen Dank für die rasche und korrekte Antwort!
        Es hat funktioniert. Mit "vis.setValue" kann ich den Datenpunkt setzen und die Änderung triggert mein Skript.

        A 1 Reply Last reply
        0
        • I ioBit

          @liv-in-sky sagte in Vis 1 Editor Skript: setzen eines Objekt-Wertes?:

          @iobit sagte in Vis 1 Editor Skript: setzen eines Objekt-Wertes?:

          eines Objekt-Wertes per Editor-Skript ändern?

          meinst du einen datenpunkt ändern ?

          dann:

          vis.setValue('0_userdata.0.CONTROL-OWN.AAATEST.ATESTBildUpload.uplaodBase64',myvalue);
          

          Vielen Dank für die rasche und korrekte Antwort!
          Es hat funktioniert. Mit "vis.setValue" kann ich den Datenpunkt setzen und die Änderung triggert mein Skript.

          A Offline
          A Offline
          Andreas.S
          wrote on last edited by
          #4

          @iobit
          Hi,
          ich möchte in einer User-Variablen festhalten, wenn z.B. vom Startbildschirm abgesprungen wird.
          Dazu habe ich einen Datenpunkt angelegt, den ich nun mit diesem Vorgehen ansprechen wollte. Offenbar geht das nicht so, wie ich es gedacht hatte.
          Ich habe versucht den Code beim Widget in Skripte einzubetten. Das setzt aber nicht den Datenpunkt.

          vis.setValue('0_userdata.0.Variablen.VIS.Absprung_aus_Start',true);
          

          VIS-setstate.jpg

          liv-in-skyL 2 Replies Last reply
          0
          • A Andreas.S

            @iobit
            Hi,
            ich möchte in einer User-Variablen festhalten, wenn z.B. vom Startbildschirm abgesprungen wird.
            Dazu habe ich einen Datenpunkt angelegt, den ich nun mit diesem Vorgehen ansprechen wollte. Offenbar geht das nicht so, wie ich es gedacht hatte.
            Ich habe versucht den Code beim Widget in Skripte einzubetten. Das setzt aber nicht den Datenpunkt.

            vis.setValue('0_userdata.0.Variablen.VIS.Absprung_aus_Start',true);
            

            VIS-setstate.jpg

            liv-in-skyL Offline
            liv-in-skyL Offline
            liv-in-sky
            wrote on last edited by liv-in-sky
            #5

            @andreas-s sagte in [Gelöst] - Vis 1 Editor Skript: setzen eines Objekt-Wertes?:

            vom Startbildschirm abgesprungen wird

            das ist wohl dein trigger - kommt aber nicht in deinem script vor - was genau bedeutet abgesprungen vom startbildschirm

            dein script wird einmal ausgeführt, wenn du die seite (bzw vis-project) aufrufst - bzw wenn du einen seiten-reload machst - mehr passiert da nicht

            nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

            A 1 Reply Last reply
            0
            • A Andreas.S

              @iobit
              Hi,
              ich möchte in einer User-Variablen festhalten, wenn z.B. vom Startbildschirm abgesprungen wird.
              Dazu habe ich einen Datenpunkt angelegt, den ich nun mit diesem Vorgehen ansprechen wollte. Offenbar geht das nicht so, wie ich es gedacht hatte.
              Ich habe versucht den Code beim Widget in Skripte einzubetten. Das setzt aber nicht den Datenpunkt.

              vis.setValue('0_userdata.0.Variablen.VIS.Absprung_aus_Start',true);
              

              VIS-setstate.jpg

              liv-in-skyL Offline
              liv-in-skyL Offline
              liv-in-sky
              wrote on last edited by
              #6

              @andreas-s

              nebenbei - je nachdem, wie deine vis aufgebaut ist, sieht man auch in den dp, welche seite geöffnet ist

              Image 061.png

              nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

              A 1 Reply Last reply
              0
              • liv-in-skyL liv-in-sky

                @andreas-s sagte in [Gelöst] - Vis 1 Editor Skript: setzen eines Objekt-Wertes?:

                vom Startbildschirm abgesprungen wird

                das ist wohl dein trigger - kommt aber nicht in deinem script vor - was genau bedeutet abgesprungen vom startbildschirm

                dein script wird einmal ausgeführt, wenn du die seite (bzw vis-project) aufrufst - bzw wenn du einen seiten-reload machst - mehr passiert da nicht

                A Offline
                A Offline
                Andreas.S
                wrote on last edited by
                #7

                @liv-in-sky
                Vielen Dank.
                Ich habe erst jetzt gesehen, dass das Skript an der gesamten View hängt.
                Ich bin fälschlicher Weise davon ausgegangen, dass es am Widget-Objekt (z.B. dem Navigations-Widget) hängt und durch das getriggert wird.

                1 Reply Last reply
                0
                • liv-in-skyL liv-in-sky

                  @andreas-s

                  nebenbei - je nachdem, wie deine vis aufgebaut ist, sieht man auch in den dp, welche seite geöffnet ist

                  Image 061.png

                  A Offline
                  A Offline
                  Andreas.S
                  wrote on last edited by
                  #8

                  @liv-in-sky
                  Gibt es da auch eine Möglichkeit zu sehen auf welchem Gerät die VIS Seite geöffnet wurde?

                  Beispiel: Ich habe ein Tablet im Flur mit Kiosk-Browser. Wenn jemand im Vorbeigehen sich etwas ansieht, möchte ich das nachher wieder zurückstellen. Nicht so, wenn ich das VIS auf dem PC nutze.

                  liv-in-skyL 1 Reply Last reply
                  0
                  • A Andreas.S

                    @liv-in-sky
                    Gibt es da auch eine Möglichkeit zu sehen auf welchem Gerät die VIS Seite geöffnet wurde?

                    Beispiel: Ich habe ein Tablet im Flur mit Kiosk-Browser. Wenn jemand im Vorbeigehen sich etwas ansieht, möchte ich das nachher wieder zurückstellen. Nicht so, wenn ich das VIS auf dem PC nutze.

                    liv-in-skyL Offline
                    liv-in-skyL Offline
                    liv-in-sky
                    wrote on last edited by
                    #9

                    @andreas-s in den daten punten oben gibt es instance dp - der sagt das aus

                    du kannst das da ablesen und sogar setzen und die tablets wechsel die seite

                    mach die vis editor seite auf, auf dem tablet, dass du nutzt und gehe im viseditor unter tools - dort kannst du die instanz setzen

                    Image 062.png

                    einziges problem - wenn du den cache des browser löscht, ist die instanz auch weg und muss neu gesetzt werden

                    nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                    1 Reply Last reply
                    0
                    Reply
                    • Reply as topic
                    Log in to reply
                    • Oldest to Newest
                    • Newest to Oldest
                    • Most Votes


                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    576

                    Online

                    32.7k

                    Users

                    82.4k

                    Topics

                    1.3m

                    Posts
                    Community
                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                    ioBroker Community 2014-2025
                    logo
                    • Login

                    • Don't have an account? Register

                    • Login or register to search.
                    • First post
                      Last post
                    0
                    • Home
                    • Recent
                    • Tags
                    • Unread 0
                    • Categories
                    • Unreplied
                    • Popular
                    • GitHub
                    • Docu
                    • Hilfe