Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. Wie mit vis Button ein Event in einem Adapter auslösen?

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Wie mit vis Button ein Event in einem Adapter auslösen?

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

      Hallo zusammen

      nach längerem mitlesen hier im Forum hab ich mich nun doch mal angemeldet und komme auch gleich mit der ersten Frage 🙂

      Ich habe einen Adapter geschrieben der mir Werte aus einer externen Quelle zur Verfügung stellt.

      Ich würde jetzt gerne beim Druck eines Buttons auf einer vis Oberfläche, Code in meinem Adapter ausführen.

      Also quasi einen Eventhandler im Adapter triggern.

      Was wäre hier der richtige Weg das zu realisieren?

      Danke für eure Hilfe

      Gruß

      Stefan

      1 Reply Last reply Reply Quote 0
      • Jeeper.at
        Jeeper.at last edited by

        Hallo,

        du generierst einen Datenpunkt.

        Auf diesen horcht dein Script.

        Dieser Datenpunkt kann mit vielen verschiedenen Widgets aus VIS ändern.

        Lg

        Günther

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

          Hallo Stefan,

          willkommen im Forum. Und dann gleich im ersten Post einen Adapter-Ankündigung, super!

          Du kannst natürlich auch im Adapter einen State anlegen und den überwachen. Nennen wir in "trigger".

          adaptername.0.trigger
          

          Dann kannst du den mitadapter.on("adaptername.0.trigger")natürlich auch überwachen. Wenn die Änderungen nur aus VIS erwünscht sind, kannst die Überwachung mit````
          "from: system.adapter.web.0"

          
          [https://github.com/ioBroker/ioBroker/wi … ant-events](https://github.com/ioBroker/ioBroker/wiki/Adapter-Development-Documentation#most-important-events)
          
          States anderer Adapter lassen sich damit überwachen:
          

          adapter.subscribeForeignStates

          
          Diese Seite gesehen?
          
          [https://github.com/ioBroker/ioBroker/wi … #functions](https://github.com/ioBroker/ioBroker/wiki/Adapter-Development-Documentation#functions)
          
          Gruß
          
          Pix
          1 Reply Last reply Reply Quote 0
          • S
            stefan0875 last edited by

            @pix:

            Hallo Stefan,

            willkommen im Forum. Und dann gleich im ersten Post einen Adapter-Ankündigung, super! `
            Vielen Dank erst mal für die Unterstützung hier!

            Ich spiele erst noch viel rum und versuche da einen Einstieg in die JavaScript und nodeJS Welt zu bekommen.

            Von einem nutzbaren Adapter für die Allgemeinheit bin ich noch weit entfernt wie du an meinen laienhaften Fragen merkst

            @pix:

            Du kannst natürlich auch im Adapter einen State anlegen und den überwachen. Nennen wir in "trigger".

            adaptername.0.trigger
            ```` `  
            

            Wie genau würdest du den State anlegen? Bisher habe ich es z.B so gemacht:

            adapter.setObject('trigger', {
                    type: 'state',
                    common: {
                        name: 'trigger',
                        type: 'boolean',
            	    role: 'switch'
                    },
                    native: {}
                });
            

            @pix:

            Dann kannst du den mitadapter.on("adaptername.0.trigger")natürlich auch überwachen. Wenn die Änderungen nur aus VIS erwünscht sind, kannst die Überwachung mit"from: system.adapter.web.0"einschränken `

            Dazu muss ich mich aber erst subscriben, oder?

            adapter.subscribeStates('trigger');
            

            Allerdings wird jetzt zwar der > adapter.stateChanged() notifiziert,

            nicht aber mein

            adapter.on('trigger', function () {
            		adapter.log.info("Trigger triggered");
            	});
            

            Bisher ändere ich die States auch nur über den Admin/Objekte. Wie das dann über VIS geht muss ich auch noch lernen. Mit VIS hab ich bisher noch gar nichts gemacht.

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

              Das ist nicht so richtig:

              adapter.on('trigger', function () {
                    adapter.log.info("Trigger triggered");
                 });
              

              So sollte es sein:

              adapter.on('stateChange', function (id, state) {
                  if (!state || state.ack) return;
              
                  // Warning, state can be null if it was deleted
              
                  if (id === adapter.namespace + '.trigger') {
                  	// do something
                      adapter.log.debug('stateChange ' + id + ' ' + JSON.stringify(state));
                  }
              });
              

              https://github.com/ioBroker/ioBroker.te … ain.js#L59

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

                Danke Bluefox

                So hab ich es dann in meinem Samsung2016 Adapter gemacht, weil es anders nicht funktionierte.

                Dachte aber das wäre eher eine Notlösung und das 'stateChange' nicht dafür gemacht.

                Gut zu wissen dass es dann doch so richtig ist.

                Obwohl ja ein 'adpater.on('varName', function(){});' schon elegant(er) wäre.

                Wie genau würdest du denn 'trigger' im setObject erzeugen?

                Ich denke ja, als boolean, aber ich bin mir bei der "Rolle" nie sicher. Was hat die für eine Bedeutung?

                Und zum Schluss noch die dumme Newbie Frage: Wie trigger ich den State dann über einen VIS button?

                Danke und Gruß

                Stefan

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

                Support us

                ioBroker
                Community Adapters
                Donate

                876
                Online

                32.0k
                Users

                80.5k
                Topics

                1.3m
                Posts

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