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. Skripten / Logik
  4. Script in einem Widget mit HTTP GET Befehl

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.2k

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.4k

Script in einem Widget mit HTTP GET Befehl

Scheduled Pinned Locked Moved Skripten / Logik
14 Posts 2 Posters 3.0k 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.
  • hg6806H Offline
    hg6806H Offline
    hg6806
    Most Active
    wrote on last edited by
    #1

    Guten Abend zusammen,

    ich möchte in ein Widget, bei dessen Aufruf min. 2x ein Script mit einem HTTP GET Befehl ausführen.

    Darin eine normale URL

    http://192.168.178.xx/goform/formiPhone … t.xml?MVUP

    Wie bewerkstellige ich das?

    Hintergrund ist folgender:

    Damit stelle ich auf meinem Denon AVR die Lautstärke um 0,5dB lauter.

    Momentan läuft das mit jgui - Icon HTTP GET Widget. Das ist mir aber zu wenig in der Steigerung der Lautstärke, deshalb möchte ich das gerne in ein Script packen und den HTTP GET Befehl direkt x-Mal bei einem Tastendruck ausführen.

    Danke und Grüße

    1 Reply Last reply
    0
    • blauholstenB Offline
      blauholstenB Offline
      blauholsten
      Developer
      wrote on last edited by
      #2

      @hg6806:

      Guten Abend zusammen,

      ich möchte in ein Widget, bei dessen Aufruf min. 2x ein Script mit einem HTTP GET Befehl ausführen.

      Darin eine normale URL

      http://192.168.178.xx/goform/formiPhone … t.xml?MVUP

      Wie bewerkstellige ich das?

      Hintergrund ist folgender:

      Damit stelle ich auf meinem Denon AVR die Lautstärke um 0,5dB lauter.

      Momentan läuft das mit jgui - Icon HTTP GET Widget. Das ist mir aber zu wenig in der Steigerung der Lautstärke, deshalb möchte ich das gerne in ein Script packen und den HTTP GET Befehl direkt x-Mal bei einem Tastendruck ausführen.

      Danke und Grüße `

      Hi,

      auf die schnelle und ohne zu testen:

      var befehl = ""; //hier deine url eingeben
      var request = require('request');
      var counter = 2; //hier die Anzahl der Wiederholungen einstellen
      createState('Datenpunkt_VIS', false);
      
      function send(){
      
      	for(var i = 0; i < counter; i++){
      		request(befehl, function(error, response){
      	    	if(err){
      	        log(error, 'error');
      	    	}
      		})
      		if(i+1 === counter){
      			setState(Datenpunkt_VIS, false)
      		}
      	}
      }
      
      on('Datenpunkt_VIS', function(obj){
      	if(obj.newState.val){
      		send();
      	}
      });
      

      dann musst du den erstellten Datenpunkt in einen "normalen" Widget (bool o.ä.) eintragen.

      Entwickler vom: - Viessman Adapter
      - Alarm Adapter

      1 Reply Last reply
      0
      • hg6806H Offline
        hg6806H Offline
        hg6806
        Most Active
        wrote on last edited by
        #3

        Hat leider noch nicht geklappt.

        Bin wie folgt vorgegangen.

        Habe ein neues Javascript erstellt (nicht im Widget) sondern unter Admin, Scripte

        Dort Enginetyp Javascript/js ausgewählt.

        Script ganz rechts gestartet.

        Widget mit dem Script ID erstellt.

        Beim Klicken passiert nichts. Das Script geht danach wieder auf Deaktiviert.

        Zudem meldet der Script Editor in der Zeile 13: "Don't make functions with a loop. Missing semicolon.

        1 Reply Last reply
        0
        • blauholstenB Offline
          blauholstenB Offline
          blauholsten
          Developer
          wrote on last edited by
          #4

          @hg6806:

          Widget mit dem Script ID erstellt.

          Beim Klicken passiert nichts. Das Script geht danach wieder auf Deaktiviert. `

          Hi, bin jetzt leider nicht mehr am Rechner. Aber du darfst nicht als ID das Script benutzen. Du musst dort den Datenpunkt den du mit createState erstellt hast eintragen.

          Entwickler vom: - Viessman Adapter
          - Alarm Adapter

          1 Reply Last reply
          0
          • hg6806H Offline
            hg6806H Offline
            hg6806
            Most Active
            wrote on last edited by
            #5

            OK, mit dem kreierten Datenpunkt wird der Befehl immerhin schon 1x ausgeführt statt 2x.

            Habe nach wie vor noch die Fehlermeldung, die ich oben schon genannte hatte und jetzt folgende im Log:

            ReferenceError: Datenpunkt_VIS is not defined at send (script.js.Lautstärke_hoch:15:19) at Object. (script.js.Lautstärke_hoch:22:7) at Object.subs.callback

            (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:1324:48) at /opt/iobroker/node_modules/iobroker.javascript/javascript.js:584:48 at getObjectEnums

            (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:3185:45) at checkPatterns (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:580:17) at Object.utils.adapter.stateChange

            (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:252:17) at Object.that.states.States.change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:2226:37) at Socket.

            (/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:133:20)

            1 Reply Last reply
            0
            • blauholstenB Offline
              blauholstenB Offline
              blauholsten
              Developer
              wrote on last edited by
              #6

              Hi,

              Bin komme leider noch nicht an den PC, aber bei:

               setState ('Datenpunkt_VIS', false)
              

              Muss natürlich auch dein erstellter Datenpunkt eingetragen werden.

              Entwickler vom: - Viessman Adapter
              - Alarm Adapter

              1 Reply Last reply
              0
              • blauholstenB Offline
                blauholstenB Offline
                blauholsten
                Developer
                wrote on last edited by
                #7

                Besser wäre dann aber vermutlich diese Schreibweise….

                var befehl = ""; //hier deine url eingeben
                var request = require('request');
                var counter = 2; //hier die Anzahl der Wiederholungen einstellen
                var idWidget = ""; //hier die ID deine erstellen Datenpunktes eintragen
                createState('Datenpunkt_VIS', false);
                
                function send(){
                
                   for(var i = 0; i < counter; i++){
                      request(befehl, function(error, response){
                          if(err){
                           log(error, 'error');
                          }
                      })
                      if(i+1 === counter){
                         setState(idWidget, false)
                      }
                   }
                }
                
                on(idWidget, function(obj){
                   if(obj.newState.val){
                      send();
                   }
                });
                
                

                Dann brauchst du nur oben am Skript Anfang die Eintragungen zu tätigen.

                Entwickler vom: - Viessman Adapter
                - Alarm Adapter

                1 Reply Last reply
                0
                • hg6806H Offline
                  hg6806H Offline
                  hg6806
                  Most Active
                  wrote on last edited by
                  #8

                  Das Script sieht nun wie folgt aus:

                  var befehl = "http://192.168.178.20/goform/formiPhoneAppDirect.xml?MVUP"; //hier deine url eingeben
                  var request = require('request');
                  var counter = 2; //hier die Anzahl der Wiederholungen einstellen
                  var idWidget = "w00205"; //hier die ID deine erstellen Datenpunktes eintragen
                  createState('Lautstärke_mehrfach_erhoehen', false);
                  
                  function send(){
                  
                     for(var i = 0; i < counter; i++){
                        request(befehl, function(error, response){
                            if(err){
                             log(error, 'error');
                            }
                        })
                        if(i+1 === counter){
                           setState(idWidget, false)
                        }
                     }
                  }
                  
                  on(idWidget, function(obj){
                     if(obj.newState.val){
                        send();
                     }
                  });
                  
                  

                  Wenn ich auf das Widget klicke passiert nichts, aber auch im Log keine Fehlermeldung.

                  Aber noch immer die Warnings: "Don't make funktions with a loop" und "missing semikolon

                  War das mit der Widget ID ok?

                  1 Reply Last reply
                  0
                  • blauholstenB Offline
                    blauholstenB Offline
                    blauholsten
                    Developer
                    wrote on last edited by
                    #9

                    Schau mal in dem Skript oben rechts steht ID einfügen. Dort suchst du den Datenpunkt den du erstellt hast. Den findest du unter deiner JavaScript Instanz. Der sollte bei dir vermutlich sowas wie "javascript.0.Lautstärke_mehrfach_erhöhen" sein.

                    Da klickst du dann auf einfügen.

                    Entwickler vom: - Viessman Adapter
                    - Alarm Adapter

                    1 Reply Last reply
                    0
                    • hg6806H Offline
                      hg6806H Offline
                      hg6806
                      Most Active
                      wrote on last edited by
                      #10

                      Passiert wieder nichts, keine Fehlermeldung im Log, außer dem Warning im Script.

                      var befehl = "http://192.168.178.20/goform/formiPhoneAppDirect.xml?MVUP"; //hier deine url eingeben
                      var request = require('request');
                      var counter = 2; //hier die Anzahl der Wiederholungen einstellen
                      var idWidget = "javascript.0.Lautstaerke_mehrfach_erhoehen"; //hier die ID deine erstellen Datenpunktes eintragen
                      createState('Lautstaerke_mehrfach_erhoehen', false);
                      
                      function send(){
                      
                         for(var i = 0; i < counter; i++){
                            request(befehl, function(error, response){
                                if(err){
                                 log(error, 'error');
                                }
                            })
                            if(i+1 === counter){
                               setState(idWidget, false)
                            }
                         }
                      }
                      
                      on(idWidget, function(obj){
                         if(obj.newState.val){
                            send();
                         }
                      });
                      
                      
                      1 Reply Last reply
                      0
                      • blauholstenB Offline
                        blauholstenB Offline
                        blauholsten
                        Developer
                        wrote on last edited by
                        #11

                        @hg6806:

                        Passiert wieder nichts, keine Fehlermeldung im Log, außer dem Warning im Script.

                        var befehl = "http://192.168.178.20/goform/formiPhoneAppDirect.xml?MVUP"; //hier deine url eingeben
                        var request = require('request');
                        var counter = 2; //hier die Anzahl der Wiederholungen einstellen
                        var idWidget = "javascript.0.Lautstaerke_mehrfach_erhoehen"; //hier die ID deine erstellen Datenpunktes eintragen
                        createState('Lautstaerke_mehrfach_erhoehen', false);
                        
                        function send(){
                           
                           for(var i = 0; i < counter; i++){
                              request(befehl, function(error, response){
                                  if(err){
                                   log(error, 'error');
                                  }
                              })
                              if(i+1 === counter){
                                 setState(idWidget, false)
                              }
                           }
                        }
                        
                        on(idWidget, function(obj){
                           if(obj.newState.val){
                              send();
                           }
                        });
                        
                        ```` `  
                        

                        Ich probiere es wenn ich zuhause bin.

                        Entwickler vom: - Viessman Adapter
                        - Alarm Adapter

                        1 Reply Last reply
                        0
                        • hg6806H Offline
                          hg6806H Offline
                          hg6806
                          Most Active
                          wrote on last edited by
                          #12

                          OK, danke!

                          Ich nehme übrigens das hqwidgets - on/off und trage bei Objekt ID den Datenpunkt ein unter "javascript.0" und nicht den von scriptEnabled.

                          1 Reply Last reply
                          0
                          • blauholstenB Offline
                            blauholstenB Offline
                            blauholsten
                            Developer
                            wrote on last edited by
                            #13

                            @hg6806:

                            OK, danke!

                            Ich nehme übrigens das hqwidgets - on/off und trage bei Objekt ID den Datenpunkt ein unter "javascript.0" und nicht den von scriptEnabled. `
                            So habe es bei mir kurz ausprobiert. Allerdings ohne request! Bei mir haut das soweit hin. Ich habe den Code nochmal etwas abgeändert und zum testen ob dein Datenpunkt im VIS richtig konfiguriert ist, ein Log eingefügt.

                            Das mit der Meldung dürfte nur eine Warnung sein, lasse mich aber gerne berichtigen!

                            var befehl = "http://192.168.178.20/goform/formiPhoneAppDirect.xml?MVUP"; //hier deine url eingeben
                            var request = require('request');
                            var counter = 2; //hier die Anzahl der Wiederholungen einstellen
                            var idWidget = "javascript.2.Lautstaerke_mehrfach_erhoehen"; //hier die ID deine erstellen Datenpunktes eintragen
                            createState('Lautstaerke_mehrfach_erhoehen', false);
                            
                            function send(){
                               for(var i = 0; i < counter; i++){
                                  request.get(befehl).on('error', function(error){
                                      if(error){log(error, 'error');} })
                                  if(i+1 === counter){setState(idWidget, false);}
                               }
                            }
                            
                            on(idWidget, function(obj){
                                log("Tastendruck erkannt"); //Nur zum Test ob deine Zuordnung stimmt
                               if(obj.newState.val){
                                  send();
                               }
                            });
                            

                            Entwickler vom: - Viessman Adapter
                            - Alarm Adapter

                            1 Reply Last reply
                            0
                            • hg6806H Offline
                              hg6806H Offline
                              hg6806
                              Most Active
                              wrote on last edited by
                              #14

                              Jetzt geht es halbwegs.

                              Sind immer noch 2 Warnings drin.

                              Wenn ich 2 Schleifendurchgänge einstelle, wird nur um 0,5dB erhöht, bei 4 Durchgängen wird um 1dB erhöht. Irgendwas stimmt da mit der Schleife wohl noch nicht. Mir reicht es aber so, ich werde es einfach so einstellen, dass sich pro Tastendruck um 1,5dB erhöht.

                              Danke nochmals!

                              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

                              779

                              Online

                              32.5k

                              Users

                              81.7k

                              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