Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. Mehrere Aktionen mit einem Widget ausführen

    NEWS

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    Mehrere Aktionen mit einem Widget ausführen

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

      Guten Abend,

      gibt es die Möglichkeit mit nur einem Widget z.B. einen Aktor einzuschalten und einen Link zu öffnen?

      Ich möchte mir einem Klick meine Anlage über einen Aktor einschalten und Gleichzeitig über einen Link das Radio auf meinem Raspberry einschalten.

      Lg Kai

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

        Das geht indirekt mit einem Javascript Adapter.

        var request = require(request);
        createState('actorAndRadio', false, function () {
           on(actorAndRadio, function (obj) {
              if (!obj.newState.ack) {
                  setState('myActor', obj.newState.val);
                  if (obj.newState.val) {   
                       request('http://raspbery/radio/on');
                  } else {
                       request('http://raspbery/radio/off');
                 }
              }
           });
        );
        
        

        Und dann in vis das Objekt actorAndRadio benutzen.

        Falls es kein Link wäre sondern irgend ein Wert und Datapoint, dann konnte man noch Szenes dafür benutzen.

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

          Vielen Dank für die Antwort.

          Doch leider komme ich damit noch nicht so ganz klar.

          Ich habe das jetzt bei Skripte einfach eingefügt, wie im angehängten Foto zu sehen.

          Muss ich noch weitere Daten ändern, oder kann das so bleiben?

          Und kann ich dann einfach ein Widget nehmen und es bei Object ID einfügen, oder muss ich ein bestimmtes nehmen?

          Sorry, mit Skripten habe ich noch nicht wirklich gearbeitet, wahrscheinlich ein Fehler 😉

          628_bildschirmfoto_2015-11-01_um_11.07.17.png

          var request = require(request);
          createState('actorAndRadio', false, function () {
             on(actorAndRadio, function (obj) {
                if (!obj.newState.ack) {
                    setState('hm-rpc.0.LEQ0411821.2.STATE"/*5.1 System.STATE*/', obj.newState.val);
                    if (obj.newState.val) {   
                         request('http://192.168.178.56/webradio/?a=play');
                    } else {
                         request('http://192.168.178.56/webradio/?a=stop');
                   }
                }
             });
          );
          
          1 Reply Last reply Reply Quote 0
          • P
            pix last edited by

            Hallo,

            Zeile 13 (im Bild unten Zeile 102), erste Stelle: geschweifte Klammer zu "}" einfügen

            261_bildschirmfoto_2015-11-01_um_12.57.13.jpg

            Gruß,

            Pix

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

              Noch mal gefixt:

              var request = require(request);
              createState('actorAndRadio', false, function () {
                 on('actorAndRadio', function (obj) {
                    if (!obj.newState.ack) {
                        setState('hm-rpc.0.LEQ0411821.2.STATE"/*5.1 System.STATE*/', obj.newState.val);
                        if (obj.newState.val) {   
                             request('http://192.168.178.56/webradio/?a=play');
                        } else {
                             request('http://192.168.178.56/webradio/?a=stop');
                       }
                    }
                 });
              });
              

              In Zeile auch ein Fehler

              on(actorAndRadio, function (obj) {
              
              

              on('actorAndRadio', function (obj) {

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

                Vielen Dank für eure Mühe.

                Leider funktioniert es bei mir immer noch nicht.

                Ich gebe das Script einfach bei dem Widget "jqui-mfd - ctrl - Socket" unter Object ID ein, ist das richtig, und sollte das so funktionieren?

                LG und ein schönes Restwochenende noch. 😉

                628_bildschirmfoto_2015-11-01_um_22.31.40.png

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

                  Wenn du Skript so modifizierst, sieht du was im log?

                  var request = require('request');
                  createState('actorAndRadio', false, function () {
                     on('actorAndRadio', function (obj) {
                        console.log(JSON.stringify(obj.newState));
                        if (!obj.newState.ack) {
                            setState('hm-rpc.0.LEQ0411821.2.STATE"/*5.1 System.STATE*/', obj.newState.val);
                            if (obj.newState.val) {   
                                 request('http://192.168.178.56/webradio/?a=play');
                            } else {
                                 request('http://192.168.178.56/webradio/?a=stop');
                           }
                        }
                     });
                  });
                  
                  1 Reply Last reply Reply Quote 0
                  • K
                    K K last edited by

                    Einfach so per Code hier einfügen?

                    javascript.0	2015-11-01 22:45:43	error	TypeError: Property 'request' of object # is not a function at Object. (script.js.actorAndRadio:24:16) at Object.subscriptions.push.callback (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:1043:48) at /opt/iobroker/node_modules/iobroker.javascript/javascript.js:385:48 at getObjectEnums (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:2090:17) at checkPatterns (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:381:17) at Object.utils.adapter.stateChange (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:153:17) at Object.that.states.States.change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:1905:80) at Socket.StatesInMemClient.client.on.connectionTimeout (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInMemClient.js:45:30) at Socket.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/component-emitter/index.js:134:20) at Socket.onevent (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/socket.js:254:10)
                    javascript.0	2015-11-01 22:45:43	error	message javascript.0.actorAndRadio [object Object] Property 'request' of object # is not a function
                    javascript.0	2015-11-01 22:45:43	warn	javascript.0 State 'hm-rpc.0.LEQ0411821.2.STATE'/*5.1 System.STATE*/' not found
                    javascript.0	2015-11-01 22:45:43	info	javascript.0 script.js.actorAndRadio: {'val':false,'ts':1446414343,'ack':false,'lc':1446414343,'from':'system.adapter.web.0'}
                    
                    1 Reply Last reply Reply Quote 0
                    • Bluefox
                      Bluefox last edited by

                      Ok.

                      In der Zeile:

                      var request = require(request);
                      

                      Ist auch ein Fehler:

                      var request = require('request');

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

                        Das Radio geht schon mal an.

                        Aber das Schalten des Aktors funktioniert noch nicht :

                        Der Aktor muss auch nur Eingeschaltet werden, egal wie oft das Skript gestartet wird, zum Stoppen soll ein weiteres Skript gestartet werden.

                        javascript.0 2015-11-01 23:03:51 warn javascript.0 State "hm-rpc.0.LEQ0411821.2.STATE"/5.1 System.STATE/" not found

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

                          Jetzt funktioniert es.

                          ich habe die Zeile:

                                    setState('hm-rpc.0.LEQ0411821.2.STATE"/*5.1 System.STATE*/', obj.newState.val);
                          
                          

                          auf folgendes gekürzt:

                          setState('hm-rpc.0.LEQ0411821.2.STATE', obj.newState.val);

                          (Also können ja eigentlich nur die Anführungszeichen zu viel gewesen sein, denke ich)

                          Jetzt möchte ich jedoch, dass mit diesem Script der Aktor nur eingeschaltet wird, egal wie oft das Script gestartet wird.

                          Momentan schaltet der Aktor sich beim erneuten starten Ein und Aus, das möchte ich jedoch mit einem weiteren Script bezwecken.

                          Könnt ihr dabei noch helfen, also der Aktor soll jedes mal auf "1" gesetzt werden.

                          Danke

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

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          543
                          Online

                          32.0k
                          Users

                          80.5k
                          Topics

                          1.3m
                          Posts

                          3
                          11
                          1996
                          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