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] - Vis 1 Editor Skript: setzen eines Objekt-Wertes?

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

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

Geplant Angeheftet Gesperrt Verschoben JavaScript
9 Beiträge 3 Kommentatoren 961 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.
  • I Offline
    I Offline
    ioBit
    schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
    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
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      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
        schrieb am zuletzt editiert von
        #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 Antwort Letzte Antwort
        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
          schrieb am zuletzt editiert von
          #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 Antworten Letzte Antwort
          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
            schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
            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
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              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
                schrieb am zuletzt editiert von
                #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 Antwort Letzte Antwort
                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
                  schrieb am zuletzt editiert von
                  #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 Antwort Letzte Antwort
                  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
                    schrieb am zuletzt editiert von
                    #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 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

                    692

                    Online

                    32.6k

                    Benutzer

                    82.0k

                    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