Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. [gelöst]-Wie kann man ein Objekt von VIS Script lesen

    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]-Wie kann man ein Objekt von VIS Script lesen

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

      Ich versuche bereits seit Tage herauszufinden, wie ich ein Objektstatus aus einem VIS Script lesen kann. Es gibt ja die Funktion vis.SetValue. Nun suche ich etwas in der Art vis.GetValue. Zur Klarstellung. Ich spreche nicht vom Javascript-Adapter. Hat jemand eine Idee oder hat das schon hinbekommen?

      arteck liv-in-sky 2 Replies Last reply Reply Quote 0
      • arteck
        arteck Developer Most Active @BitCoder last edited by

        @bitcoder was hast du vor ??

        1 Reply Last reply Reply Quote 0
        • liv-in-sky
          liv-in-sky @BitCoder last edited by liv-in-sky

          @bitcoder z.b.

          vis.servConn.getStates(['0_userdata.0.CONTROL-OWN.ECHO8.Echo2Player-PP',
                                'javascript.0.YouTube.whichDevice'], (error, states) => {
                                    console.log(states['0_userdata.0.CONTROL-OWN.ECHO8.Echo2Player-PP'].val);                                         
                                    console.log(states['javascript.0.YouTube.whichDevice'].val)})
          

          oder wenn der dp schon in dem vis-project genutzt wird und somit in der vis bekannt ist:

          var myRunningDevice1=vis.states.attr('javascript.0.YouTube.whichDevice.val');
          
           " javascript.0.YouTube.whichDevice " muss z.b in einem anderen widget genutzt werden z.b. über binding {javascript.0.YouTube.whichDevice}
          

          oder über simple api abfrage:

          // über simple-api: 
          $.get( "http://192.168.178.59:8087/get/0_userdata.0.CONTROL-OWN.AAATEST.TestLogic3", function( data ) {
            console.log( "Data Loaded: " + data.val );
            console.log( "Data Loaded: " + data.lc )
          });
          
          B 1 Reply Last reply Reply Quote 0
          • B
            BitCoder @liv-in-sky last edited by

            Ich möchte den Zustand oder einen Wert von einem Homematic-Gerät via alias auslesen. Dieser Wert dient anschliessend als Vorgabewert bei der nächsten Einschaltung des Geräts. Hier ein Dimmer.
            Wow, danke schon mal für Eure raschen Antworten.

            B 1 Reply Last reply Reply Quote 0
            • B
              BitCoder @BitCoder last edited by BitCoder

              @liv-in-sky
              Hallo liv-in-sky
              Meine Antwort hat ein wenig länger gedauert.
              Danke für die Codefragmente. Die haben mich auf den richtigen Pfad gebracht. Hier ist nun der Code, wie ich das umgesetzt habe. Wichtig war mir, dass die Abfrage synchron abgehandelt wird. Dabei gilt es zu beachten, dass alle übergeordneten Funktionen ebenfalls mit sync deklariert sind.

              Hier die Funktion GetState

              async function GetState (strDataPoint, oDPValue) {
                  return await new Promise((resolve, reject) => {
                      window.servConn.getStates([strDataPoint], (error, states) => {
                          console.log(++iStepCount+": 1. oDPValue.iVal = " + oDPValue.iVal);    
              
                          oDP = states[strDataPoint]; 
                          if (oDP !== null)
                          {
                              resolve(oDPValue.iVal = states[strDataPoint].val);
                          }
                          else
                          {
                              reject(Error("The specified data point does not exist! DP: "
                                           + strDataPoint));                
                          }
                          
                          console.log(++iStepCount+": 2. oDPValue.iVal = " + oDPValue.iVal);
                      });
                  });
              }
              

              Und hier der Aufruf im Code.

              async function dcmbInit (id, dcmbDefinition, strDeviceAddress)
              {
                   /* exp. 'alias.0.Gang_OG.Deckenspots.Lichtstärke.val' */
                  console.log("strDeviceAddress = " + strDeviceAddress);
              
                  if (strDeviceAddress !== undefined && strDeviceAddress !== null)
                  {
                      oValue = { iVal: 0 };
                      await GetState(strDeviceAddress + ".Lichtstärke", oValue);
                      console.log("dcmbInit: iValue = " + oValue.iVal);
                  }
                  return false;        
              }
              
              1 Reply Last reply Reply Quote 0
              • First post
                Last post

              Support us

              ioBroker
              Community Adapters
              Donate

              679
              Online

              31.9k
              Users

              80.1k
              Topics

              1.3m
              Posts

              3
              5
              303
              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