Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Übersicht der verfügbaren JS-Funktionen

    NEWS

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

    Übersicht der verfügbaren JS-Funktionen

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

      Hallo ihr,

      ich versuche mich ja weiterhin in JS für ioBroker einzuarbeiten. Das eigentliche JS geht ja, schwieriger ist es im Moment für mich die Nutzweise in ioBroker zu verstehen.

      Ich möchte ein kleines Bild einblenden, wenn mindestens einer von 8 Fensterkontakten den State >0 hat.

      Dazu wollte ich eine eigene Bool-Var verwenden, um dann diese in .vis mittels "Sichtbarkeit" in einen Static Widget zu nutzen.

      8 Sensoren (einer im State>0) -> Setze Var auf true <- Wenn Var True, zeige widget an.

      Ich muss ja vermutlich mittels "on/subscribe" die Status der Sensoren abfragen.

      Ich habe es mit der Doku versucht, stoße aber sehr früh an generelle Probleme.

      Beispiel:

      Wenn ich funktionierenden Code…

      ...
      on({
          id:'javascript.0.VIS.Kamera_Garten_Steuerung',
          change: 'any'
      }, function (data) {
          var steuerbefehl_garten = Kamera_Garten_Steuerung_url + data.newState.val;
      ...
      

      umschreiben möchte, frage ich mich,

      1.) woher die Funktion function (data) kommt? In der Doku gibt es auch noch z. B. function (obj), usw. Wie kann ich verstehen, wann ich welche nutzen muss und wie diese funktionieren?

      2.) Wie eine ODER -Abfrage zu den 8 Sensoren aussieht? In der Doku wird schön die RegEx Möglichkeit gezeigt, leider kann ich diese nicht logisch nutzen, da diese 8 Sensoren bedingt durch ihre Namen keine eindeutige Filterung zulassen (es gibt noch etliche andere). Muss ich also ein "on" für jeden Adapter nutzen?

      Danke für Eure Unterstützung.

      Fitti

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

        Hallo Fitti,

        @Fitti:

        8 Sensoren (einer im State>0) -> Setze Var auf true <- Wenn Var True, zeige widget an. `
        Das gab's hier schon mal:

        http://forum.iobroker.org/viewtopic.php?f=21&t=535

        Die gesetzte Variable kann dann leicht in VIS weiterverwendet werden.

        Gruß

        Pix

        1 Reply Last reply Reply Quote 0
        • F
          Fitti last edited by

          Hi pix,

          wieder vielen Dank. Es passt nicht 100%, da ich vier Räume habe, die ich abfrage. Aber das schreibe ich mir zurecht. Werde in jenem Thread noch nach einer eleganten Art nachfragen.

          Aber die ersten Tests laufen mit einem Raum sehr gut.

          Kann mir jemand bei der 1. Frage noch helfen?

          Danke wie immer an alle,

          Fitti

          1 Reply Last reply Reply Quote 0
          • paul53
            paul53 last edited by

            @Fitti:

            woher die Funktion function (data) kommt? In der Doku gibt es auch noch z. B. function (obj), usw. Wie kann ich verstehen, wann ich welche nutzen muss und wie diese funktionieren? `

            on(pattern, function(dp) {
            ...
            });
            

            deklariert eine Funktion, wobei im Beispiel dp der selbst gewählte lokale Name des an die Funktion übergebenen Objekts ist, so wie es in der javascript-Adapter-Doku beschrieben ist. Innerhalb der Funktion kann über den lokalen Namen auf die übergebenen Elemente zugriffen werden, z.B.

            var x = dp.newState.val; // neuer Wert
            var n = dp.common.name; // Objekt-Name
            

            Soll kein Objekt-Zugriff innerhalb der deklarierten Funktion erfolgen, kann der lokale Name auch entfallen:

            on(pattern, function() {
            ...
            });
            

            Im http://forum.iobroker.org/viewtopic.php?f=21&t=1208#p9958 wird anstelle von

            var x = dp.newState.val;
            

            die Funktion

            var x = getState(id).val;
            

            verwendet.
            1632_wemo-fix.png

            1 Reply Last reply Reply Quote 0
            • paul53
              paul53 last edited by

              @Fitti:

              In der Doku wird schön die RegEx Möglichkeit gezeigt, leider kann ich diese nicht logisch nutzen, da diese 8 Sensoren bedingt durch ihre Namen keine eindeutige Filterung zulassen (es gibt noch etliche andere). `
              Das mag für die ID zutreffen. Da die Objektnamen selbst vergeben werden können, lässt sich ein eindeutiger Bestandteil (z.B. am Ende) der Namen für die 8 Sensoren sicherlich finden.

              1 Reply Last reply Reply Quote 0
              • F
                Fitti last edited by

                @paul53:

                …deklariert eine Funktion, ... `
                Ohh man. Schon blöd eine Deklaration mit einem Call zu verwechseln. Vielen Dank - jetzt ist es etwas klarer. Da diese in den Beispielen immer den gleichen Namen hatten, dachte ich, es wird eine Funktion aufgerufen.

                @paul53:

                Das mag für die ID zutreffen. Da die Objektnamen selbst vergeben werden können, lässt sich ein eindeutiger Bestandteil (z.B. am Ende) der Namen für die 8 Sensoren sicherlich finden. `
                Leider nein. Ich habe den Sensoren logisch im Namen aufgebaut: typ_raum_name_eigenschaft. Das hat bisher auch gut für CCU Skripte gereicht.

                Da diese Sensoren auch in CCU-Skripten benutzt werden, möchte ich diese Namen nicht ändern.

                Im Moment konzentriere ich mich primär bei ioBroker um die Anzeige-Möglichkeiten.

                Da ich hier nicht an zwei Stellen die Gleiche Frage stellen möchte, verweise ich jetzt auf den anderen Thread, den Pix 4x weiter oben verlinkt hat. Da habe ich es genauer aufgeführt. Ich wäre Die natürlich sehr dankbar, wenn Du mir noch diesen "Filter" oder was auch immer erklären könntest.

                Viele Grüße,

                Fitti

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

                  @Fitti:

                  Viele Grüße,

                  Pix `
                  Das ist mein Gruß! :lol:
                  859_adapter.jpg
                  859_host.jpg

                  1 Reply Last reply Reply Quote 0
                  • F
                    Fitti last edited by

                    @pix:

                    @Fitti:

                    Viele Grüße,

                    Pix Das ist mein Gruß! :lol:
                    Jetzt ist es ganz zu spät…. ich ändere das mal. :lol: :oops:

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

                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    1.0k
                    Online

                    31.6k
                    Users

                    79.4k
                    Topics

                    1.3m
                    Posts

                    3
                    8
                    1612
                    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