Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. HILFE!!! Variable anlegen und Befehl per URL absetzen

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    HILFE!!! Variable anlegen und Befehl per URL absetzen

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

      Hallo Leute,

      ich brauche eure Hilfe, ich bin ein absoluter Neuling was das Programmieren mit JavaSrcipt angeht.

      Und zwar möchte ich eine Variable anlegen, die durch den Cloud-Adapter mit true und false beschrieben werden kann, um dann jeweils einen Befehl per URL an mein Mediola-Gateway zu schicken das wiederum meine Geräte per IR ansteuert. Die URL ist mir bekannt.

      Hintergrund: Ich möchte diverse IR-Geräte per Alexa steuern.

      Variable und Scripte in der CCU2 anlegen funktioniert, nur möchte ich damit die CCU2 nicht zusätzlich belasten, deshalb wollte ich diese Zuordnungen im ioBroker machen,

      ich habe aber keinen Plan wie ich das anstellen kann und hoffe ihr könnt mir helfen.

      Gruß Marc

      1 Reply Last reply Reply Quote 0
      • blauholsten
        blauholsten Developer last edited by

        Vielleicht so:

        createState('Licht', false, {
                                  desc: "Licht schalten",
                                  type: "boolean",
                                  smartName: "Licht",
                                  def: false });
        
        var request = require('request');
        var IDLicht = "javascript.0.Licht"; //oder eine andere Instanz in dem der State erzeugt wurde
        var URLwahr = "deine url bei true";
        var URLfalsch = "deine url bei false";
        
        on(IDLicht, function(obj){
            if(obj.newState.val) {
                request.get(URLwahr).on('error', function(error){
                    if(error){log(error, 'error');}
                });
            }
            else{
                request.get(URLfalsch).on('error', function(error){
                    if(error){log(error, 'error');}
                });
            }
        });
        
        

        Ich gehe einfach mal davon aus, das eine funktionierende JS Instanz läuft. Falls nicht mal bitte die Suche bemühen…

        1 Reply Last reply Reply Quote 0
        • M
          Marc1970 last edited by

          Vielen, vielen Dank, es funktioniert.

          Gruß Marc

          1 Reply Last reply Reply Quote 0
          • blauholsten
            blauholsten Developer last edited by

            @Marc1970:

            Vielen, vielen Dank, es funktioniert.

            Gruß Marc `
            Freut mich

            1 Reply Last reply Reply Quote 0
            • M
              Marc1970 last edited by

              Hallo, ich brauche nochmal Hilfe,

              basierend auf meine anfängliche Frage und dem dazugehörenden Script möchte ich gerne bei "true" mehrere URL's aufrufen (teilweise noch zeitverzögert um 2 Sekunden) und danach die Variable wieder auf "false" setzen, bei "false" soll dann nichts passieren.

              Gruß Marc

              1 Reply Last reply Reply Quote 0
              • blauholsten
                blauholsten Developer last edited by

                Heißt da du willst bei false gar nichts mehr setzen?

                Alles andere wird wohl eher nichts…..

                1 Reply Last reply Reply Quote 0
                • M
                  Marc1970 last edited by

                  Genau, bei "false" soll nichts gesetzt werden, dann aber nach Beendigung der Befehlskette für "true" die Variable wieder auf "false" gesetzt werden.

                  Mehrere Befehle nacheinander absetzen geht wirklich nicht?

                  Hintergrund wäre die Bedienung von meinem Fernseher, für alle Programme >9 müßte ich 2 - 3 URL-Befehle absetzen,

                  wenn es nicht geht kann ich es ja noch über die CCU2 machen, da funktioniert es.

                  Gruß Marc

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

                    Schau dir mal den Szenen Adapter an.

                    Damit habe ich es auch gelöst.

                    Ein Tastendruck und schon schaltet sich der Radio aus, der SAT ein, der AV Receiver ein, der Beamer ein und die Leinwand fährt herab.

                    Jedes einzelne Aktion mit einer abgesetzter URL gesteuert.

                    Lg

                    Günther

                    1 Reply Last reply Reply Quote 0
                    • blauholsten
                      blauholsten Developer last edited by

                      createState('Licht', false, {
                                                desc: "Licht schalten",
                                                type: "boolean",
                                                smartName: "Licht",
                                                def: false });
                      
                      var request = require('request');
                      var IDLicht = "javascript.0.Licht"; //oder eine andere Instanz in dem der State erzeugt wurde
                      var URLeins = "deine url";
                      var URLzwei = "deine url";
                      var URLdrei = "deine url";
                      
                      on(IDLicht, function(obj){
                          if(obj.newState.val) {
                              request.get(URLeins).on('error', function(error){
                                  if(error){log(error, 'error');}
                              });
                              request.get(URLzwei).on('error', function(error){
                                  if(error){log(error, 'error');}
                               });
                               request.get(URLdrei).on('error', function(error){
                                  if(error){log(error, 'error');}
                               });
                               setState (IDLicht, false);
                          }
                      });
                      
                      

                      Müsste so gehen. Falls du noch eine Verzögerung brauchst, melde dich

                      1 Reply Last reply Reply Quote 0
                      • M
                        Marc1970 last edited by

                        Hallo Blauholsten,

                        vielen Dank für Deine Hilfe das Script funktioniert!

                        Es wäre schön, wenn du mir zeigen könntest wie ich jetzt da noch eine Verzögerung (ca. 2 Sekunden) reinbekomme,

                        vielen Dank

                        Gruß Marc

                        1 Reply Last reply Reply Quote 0
                        • blauholsten
                          blauholsten Developer last edited by

                          @Marc1970:

                          Hallo Blauholsten,

                          vielen Dank für Deine Hilfe das Script funktioniert!

                          Es wäre schön, wenn du mir zeigen könntest wie ich jetzt da noch eine Verzögerung (ca. 2 Sekunden) reinbekomme,

                          vielen Dank

                          Gruß Marc `

                          so vielleicht….2, 4, 6 sekunden

                          createState('Licht', false, {
                                                    desc: "Licht schalten",
                                                    type: "boolean",
                                                    smartName: "Licht",
                                                    def: false });
                          
                          var request = require('request');
                          var IDLicht = "javascript.0.Licht"; //oder eine andere Instanz in dem der State erzeugt wurde
                          var URLeins = "deine url";
                          var URLzwei = "deine url";
                          var URLdrei = "deine url";
                          
                          on(IDLicht, function(obj){
                              if(obj.newState.val) {
                                  setTimeout(function(){request.get(URLeins).on('error', function(error){
                                      if(error){log(error, 'error');}
                                  });
                                  }, 2000);
                                  setTimeout(function(){request.get(URLzwei).on('error', function(error){
                                      if(error){log(error, 'error');}
                                  });
                                  }, 4000);
                                  setTimeout(function(){request.get(URLdrei).on('error', function(error){
                                      if(error){log(error, 'error');}
                                  });
                                  }, 6000);
                                   setState (IDLicht, false);
                              }
                          });
                          
                          1 Reply Last reply Reply Quote 0
                          • M
                            Marc1970 last edited by

                            Vielen Dank, es klappt.

                            Gruß Marc

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

                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            997
                            Online

                            31.7k
                            Users

                            79.8k
                            Topics

                            1.3m
                            Posts

                            3
                            12
                            1722
                            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