Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Javascript: subscribe from

    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

    Javascript: subscribe from

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

      Ein kleiner Wunsch, der aber hoffentlich vielen das Programmieren erleichtert:

      Um auf Ereignisse zu reagieren, werte ich häufig selbst angelegte Objekte aus (quasi variablen). Dieses geschieht per subscribe/on.

      Wenn man per Javascript den Wert eines Objektes verändert, reagiert subscribe/on zunächst nicht. Man muss dann zusätzlich from:system.adapter.javascript.0 angeben. Den Sinn verstehe ich nicht. Schön wäre es, wenn man hier auch "any" angeben könnte. Zur Zeit habe ich nämlich das Problem, dass ich das subscribe wegen des Verhaltens mehrfach schreiben muss. Vielleicht wäre es auch sinnvoll, from:'any' als default zu setzen. Wer das ändern möchte, kann das ja mit from:… machen.

      Gruß Gerhard

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

        Eigentlich "from" ist nicht erforderlich und wird normallerweise ignoriert.

        Was für ein Szenario hast du?

        1 Reply Last reply Reply Quote 0
        • S
          steinwedel last edited by

          Ein Beispiels für ein Szenario:

          In einem View habe ich eine Drop-Downbox (jqui Select ValueList) für verschiedene Stimmungen. Diese habe ich mit einem Objekt verknüpft, welches ich mit "createState("Szene",0);" angelegt habe. Wenn sich das Objekt (Web-Oberfläche oder per Javaskript) ändert soll folgendes Skript ausgeführt werden:

          subscribe({id: "javascript.0.Szene", val: true}, function (obj) {
                      setNextScene(scene);
                  });
          
          

          Das bekomme ich nur hin, indem ich zusätzlich folgendes Skript habe:

          subscribe({id: "javascript.0.Szene",
                  change:'any',
                  from : 'system.adapter.web.0'
              }, function (obj) {
                  setScene(scene);
          });
          
          

          Anscheinend kommt es darauf an, wer den Inhalt von Objekten ändert. Deswegen meine Anregung.

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

            @steinwedel:

            Wenn man per Javascript den Wert eines Objektes verändert, reagiert subscribe/on zunächst nicht. `
            @steinwedel:

            In einem View habe ich eine Drop-Downbox (jqui Select ValueList) für verschiedene Stimmungen. Diese habe ich mit einem Objekt verknüpft, welches ich mit "createState("Szene",0);" angelegt habe. `
            Das ist eine Veränderung in VIS, nicht in Javascript. Habe auch einige solche Konstrukte. Ich nehme auch "from" dafür. Wenn du aber in Javascript mit setState agierst, brauchst du das nicht.

            Andererseits würde zB das State val Widget in VIS gar nicht mehr funktionieren, wenn nicht auch Javascript auf die Änderung nach Tastendruck reagierte. Ich bin jetzt auch verwirrt. :roll:

            Pix

            1 Reply Last reply Reply Quote 0
            • blauholsten
              blauholsten Developer last edited by

              @steinwedel:

              subscribe({id: "javascript.0.Szene", val: true}, function (obj) {
                          setNextScene(scene);
                      });
              
              ```` `  
              

              Hier wird ja nur auf eine Veränderung reagiert, wenn "Szene" den Wert true hat. Dies wird aber in deinen benutzen Widget eventuell nicht passieren.
              @steinwedel:

              subscribe({id: "javascript.0.Szene",
                      change:'any',
                      from : 'system.adapter.web.0'
                  }, function (obj) {
                      setScene(scene);
              });
              
              ```` `  
              

              Hier wird auf jede Veränderung reagiert!!!

              1 Reply Last reply Reply Quote 0
              • S
                steinwedel last edited by

                Gut gesehen. Ist aber auch so gewollt. In meiner Liste, die ausgewählt wird, ist der Eintrag 0 = Licht aus. Per Webseite ist es schön, das Licht ausschalten zu können. Wenn man den Taster zum Wechseln der Szene drückt, so sollte das Licht nicht ausgeschaltet werden. Dazu gibt es den eigentlichen Lichtschalter. Hier macht also diese merkwürdige Funktionalität sogar Sinn.

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

                Support us

                ioBroker
                Community Adapters
                Donate
                FAQ Cloud / IOT
                HowTo: Node.js-Update
                HowTo: Backup/Restore
                Downloads
                BLOG

                536
                Online

                31.9k
                Users

                80.2k
                Topics

                1.3m
                Posts

                4
                6
                1981
                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