Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. Zugriff auf javascript.0.Variablen aus Vis View Script heraus

    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

    Zugriff auf javascript.0.Variablen aus Vis View Script heraus

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

      Hi,

      ich setze mit einem Javascript Script eine Variable abhängig von einem Bewegungsmelder-Zustand.

      Nun möchte ich in meiner View (also am Anzeigeclient) die Helligeit regeln mit

      document.getElementById("visview_start").style.filter = "brightness(100%)";
      ````, aber eben in Abhängigkeit von der Variable des Servers.
      
      Doch wie greife ich darauf aus einem Script in einer Vis View zu? getState ist dort nicht definiert… on() auch nicht... das muss doch gehen? kann man einen eventlistener bauen o.ä.?
      
      Irgendwie blicke ich es nicht!
      
      Beste Grüße
      1 Reply Last reply Reply Quote 0
      • P
        pix last edited by

        Hallo ,

        das geht mit Vis 'bindings'. Suche mal danach, auch in der Vis Doku auf Github.

        {javascript.0.datenpunkt}
        

        Pix

        1 Reply Last reply Reply Quote 0
        • M
          manne01 last edited by

          Hi Pix,

          Danke für den Tipp, das kannte ich in der Tat noch nicht. Kann ich diese Bindings nur in Attribut-Werte der Widgets eintragen (klappt hervorragend) oder kann ich diese auch im Script verwenden? Im Script ist es mir zumindest noch nicht gelungen.

          Dazu kommt ja noch, dass ich gerne innerhalb Vis (also auf dem Client) in einem Script auf Änderungen an einem solchen Wert reagieren möchte?! D.h. Sobald der Wert z.B. auf True springt möchte ich etwas JavaScript ausführen lassen.

          Ein Scheduler der das permanent prüft kommt mir dazu nicht richtig vor. Außerdem soll es möglichst Verzögerungsfrei laufen.

          Die Widgets reagieren ja auch alle "live" auf Veränderungen der Werte. Solch eine Reaktion muss doch also auch in einem Script möglich sein?!

          Kannst Du mir nochmal weiterhelfen?

          1 Reply Last reply Reply Quote 0
          • M
            manne01 last edited by

            Oder natürlich auch jemand anderes der mir hierzu Rat geben kann!

            1 Reply Last reply Reply Quote 0
            • P
              pix last edited by

              Hallo,

              ich weiß jetzt nicht, welches Problem du lösen willst, welche Anwendung du vorhast.

              Eigentlich wird die Logik nicht auf der Client Seite ausgeführt. Solche Lösungen (Wenn Dann) machen die Adapter (zB Javascript, Scenes, etc…).

              In Vis gibt es aber die Möglichkeit, jedes Einstellungsfenster für Widgets mit Bindings zu füllen. Somit sind kleinere Logiken möglich.

              Zum Beispiel kann man die Farbe abhängig vom Wert ändern.````
              {wert:adaptername.instanznummer.objekt;(wert>0) ? "red" : "green"}

              
              Zuviele dieser Bindings belasten aber den Client. Deshalb sollte das lieber im Server oder mit einem passenden Widget gelöst werden.
              
              Es gibt dann noch Skripte für VIS, die zB Views umschalten, wenn eine bestimmte Zeit keine Eingabe erfolgte:
              
              [http://forum.iobroker.net/viewtopic.php … 493#p22052](http://forum.iobroker.net/viewtopic.php?f=29&t=2493#p22052)
              
              Gruß
              
              Pix
              1 Reply Last reply Reply Quote 0
              • M
                manne01 last edited by

                Hallo Pix,

                ich möchte einfach die Helligkeit des Screens nachts (zw. 23 und 8 Uhr) reduzieren. Wenn ich im "dunklen" Modus den View berühre (Click Event), wird auch sofort hell. Soweit funktioniert das schon mit der lokalen Logik im VIS View Script Reiter.

                Nun habe ich aber noch einen Bewegungsmelder im Flur. Sobald dieser Bewegung meldet, soll der Screen unmittelbar normal hell werden, d.h. ich muss den Bewegungs-Zustand im VIS-Script verwenden.

                Am Ende läut es wohl auf einen Timer hinaus, der z.B. jede Sekunde auf Bewegung prüft. Nur wie greife ich auf die Variable überhaupt zu? Mir fällt nur ein Umweg ein: Das Bewegungsmelder-Objekt würde ich zB in einem Widget als Sichtbarkeits-Kriterium einstellen und z.B. auf die …getElementsById.visibility o.ä. genau dieses Widgets prüfen.

                Aber gibts da nicht noch was saubereres, direktes? Die Widgets können es doch alle auch!:)

                VG

                Manfred

                1 Reply Last reply Reply Quote 0
                • M
                  Marc_St last edited by

                  @manne01:

                  Aber gibts da nicht noch was saubereres, direktes? Die Widgets können es doch alle auch!:) `

                  An dem Punkt beiße ich mir gerade aus die Zähne aus. Ich würde meine Visualisierung (maßgeblich SVGs in VIS) gerne per Javascript animieren und kolorieren, muss dabei aber in Javascript auswerten können, wie eine Temperatur ist, bzw. ob eine Pumpe läuft usw. Ich verstehe einfach nicht, wie ich das in VIS in Javascript machen kann. Ein Widget kann ja auch die Daten auslesen / verarbeiten …

                  Danke!

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

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  818
                  Online

                  31.8k
                  Users

                  80.0k
                  Topics

                  1.3m
                  Posts

                  3
                  7
                  3612
                  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