Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

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

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.9k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.3k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.5k

Mehrere Aktionen mit einem Widget ausführen

Geplant Angeheftet Gesperrt Verschoben Visualisierung
11 Beiträge 3 Kommentatoren 2.1k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • BluefoxB Offline
    BluefoxB Offline
    Bluefox
    schrieb am zuletzt editiert von
    #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 Antwort Letzte Antwort
    0
    • K Offline
      K Offline
      K K
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      0
      • P Offline
        P Offline
        pix
        schrieb am zuletzt editiert von
        #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 Antwort Letzte Antwort
        0
        • BluefoxB Offline
          BluefoxB Offline
          Bluefox
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          0
          • K Offline
            K Offline
            K K
            schrieb am zuletzt editiert von
            #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 Antwort Letzte Antwort
            0
            • BluefoxB Offline
              BluefoxB Offline
              Bluefox
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              0
              • K Offline
                K Offline
                K K
                schrieb am zuletzt editiert von
                #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 Antwort Letzte Antwort
                0
                • BluefoxB Offline
                  BluefoxB Offline
                  Bluefox
                  schrieb am zuletzt editiert von
                  #9

                  Ok.

                  In der Zeile:

                  var request = require(request);
                  

                  Ist auch ein Fehler:

                  var request = require('request');

                  1 Antwort Letzte Antwort
                  0
                  • K Offline
                    K Offline
                    K K
                    schrieb am zuletzt editiert von
                    #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 Antwort Letzte Antwort
                    0
                    • K Offline
                      K Offline
                      K K
                      schrieb am zuletzt editiert von
                      #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 Antwort Letzte Antwort
                      0
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      784

                      Online

                      32.4k

                      Benutzer

                      81.6k

                      Themen

                      1.3m

                      Beiträge
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Anmelden

                      • Du hast noch kein Konto? Registrieren

                      • Anmelden oder registrieren, um zu suchen
                      • Erster Beitrag
                        Letzter Beitrag
                      0
                      • Home
                      • Aktuell
                      • Tags
                      • Ungelesen 0
                      • Kategorien
                      • Unreplied
                      • Beliebt
                      • GitHub
                      • Docu
                      • Hilfe