Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Visualisierung
  4. Mehrere Aktionen mit einem Widget ausführen

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.8k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.1k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

Mehrere Aktionen mit einem Widget ausführen

Scheduled Pinned Locked Moved Visualisierung
11 Posts 3 Posters 2.1k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • K Offline
    K Offline
    K K
    wrote on last edited by
    #1

    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
    0
    • BluefoxB Offline
      BluefoxB Offline
      Bluefox
      wrote on last edited by
      #2

      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
      0
      • K Offline
        K Offline
        K K
        wrote on last edited by
        #3

        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
        0
        • P Offline
          P Offline
          pix
          wrote on last edited by
          #4

          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

          ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

          1 Reply Last reply
          0
          • BluefoxB Offline
            BluefoxB Offline
            Bluefox
            wrote on last edited by
            #5

            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
            0
            • K Offline
              K Offline
              K K
              wrote on last edited by
              #6

              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
              0
              • BluefoxB Offline
                BluefoxB Offline
                Bluefox
                wrote on last edited by
                #7

                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
                0
                • K Offline
                  K Offline
                  K K
                  wrote on last edited by
                  #8

                  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
                  0
                  • BluefoxB Offline
                    BluefoxB Offline
                    Bluefox
                    wrote on last edited by
                    #9

                    Ok.

                    In der Zeile:

                    var request = require(request);
                    

                    Ist auch ein Fehler:

                    var request = require('request');

                    1 Reply Last reply
                    0
                    • K Offline
                      K Offline
                      K K
                      wrote on last edited by
                      #10

                      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
                      0
                      • K Offline
                        K Offline
                        K K
                        wrote on last edited by
                        #11

                        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
                        0
                        Reply
                        • Reply as topic
                        Log in to reply
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes


                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        693

                        Online

                        32.6k

                        Users

                        82.3k

                        Topics

                        1.3m

                        Posts
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                        ioBroker Community 2014-2025
                        logo
                        • Login

                        • Don't have an account? Register

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • Home
                        • Recent
                        • Tags
                        • Unread 0
                        • Categories
                        • Unreplied
                        • Popular
                        • GitHub
                        • Docu
                        • Hilfe