Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Scriptstart bei Aufruf einer URL

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Scriptstart bei Aufruf einer URL

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

      Hallo Zusammen,

      ich möchte gerne ein Script ausführen, wenn eine URL aufgerufen wird.

      Hintergrund:

      Ich habe eine Weckerapp, die beim klingeln einen Task in Tasker ausführt. Ich suche nun eine Möglichkeit, von Tasker heraus die Ausführung eines JavaScripts anzustoßen. Darin soll z.B. das Radio eingeschaltet werden.

      Bisher habe ich das über ein Programm in der CCU realisiert, dass ich durch einen URL-Aufruf bequem starten kann.

      Hat sowas schon jemand realisiert oder eine Idee für mich?

      Viele Grüße

      Andreas

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

        Du kannst dafür simple-api benutzen.
        48_simpleapi.png

        Danach kannst du http://ipaddress:8082/help

        aufrufen und du bekommst so was:

        {
          "getPlainValue": "http://ipaddress:8082/getPlainValue/stateID",
          "get": "http://ipaddress:8082/get/stateID/?prettyPrint",
          "getBulk": "http://ipaddress:8082/getBulk/stateID1,stateID2/?prettyPrint",
          "set": "http://ipaddress:8082/set/stateID?value=1&prettyPrint",
          "toggle": "http://ipaddress:8082/toggle/stateID&prettyPrint",
          "setBulk": "http://ipaddress:8082/setBulk?stateID1=0.7&stateID2=0&prettyPrint",
          "objects": "http://ipaddress:8082/objects?pattern=system.adapter.admin.0*&prettyPrint",
          "states": "http://ipaddress:8082/states?pattern=system.adapter.admin.0*&prettyPrint"
        }
        

        D.h. um eine Variable (die dann Skript anfeuert) zu setzen muss du das aufrufen:

        http://ipaddress:8082/set/EINE_VARIABLE?value=1

        1 Reply Last reply Reply Quote 0
        • B
          Beatz last edited by

          Danke Bluefox,

          daran hatte ich auch schon gedacht. Ich würde mir dann für Programme (JavaScripts), die von extern angestoßen werden sollen, einen Ordner Trigger anlegen und darin entsprechend je eine Variable pro Script. Diese werden dann von den entsprechenden Scripts per on überwacht. Werde das heute Nachmittag mal testen und dann berichten.

          javascript.0

          |– trigger

          -- | -- programm1

          -- | -- programm2

          Viele Grüße

          Andreas
          2271_m_her.txt

          1 Reply Last reply Reply Quote 0
          • B
            Beatz last edited by

            Wenn auch etwas später, aber ich wollte kurz nochmal berichten, dass Dein Vorschlag wunderbar funktioniert.

            1. Schritt (Vorbereitungen)

            Wie von Bluefox beschrieben, habe ich SimpleApi im web-Adapter aktiviert. Vorher hatte ich noch den separaten Adapter dafür installiert, der auf Port 8087 lief. Diesen habe ich nun deaktiviert.

            2. Schritt (Einrichtung des Triggers und Skripts)

            Das Objekt, über das mein Skript ausgeführt werden soll, lege ich direkt im Script an. Dazu habe ich folgendes Skript angelegt (Handlung.Aufstehen.Trigger). Dieser ist dann unter javascript.0.Handlung.Aufstehen.Trigger zu finden.

            Ich habe mir angewöhnt, im Skript die Aktionen jeweils vom Trigger (on/subscribe) zu lösen, um ggf. später weitere Trigger bequem ergänzen zu können.

            // -----------------------------------------------
            // Trigger
            // -----------------------------------------------
            
            // Aufstehen
            on({
                id: "javascript.0.Handlung.Aufstehen.Trigger"/*Handlung.Aufstehen.Trigger*/,
            }, function (obj) {
                Aufstehen();
            });
            
            // -----------------------------------------------
            // Aktionen
            // -----------------------------------------------
            
            function Aufstehen() {
                setState("hm-rpc.0.LEQ0277042.1.LEVEL"/*Rollladen Schlafzimmer (Gaube).LEVEL*/, 25);
                setState("hm-rpc.0.LEQ0276707.1.LEVEL"/*Rollladen Schlafzimmer (West).LEVEL*/, 25);
                setState("hm-rpc.0.LEQ0277215.1.LEVEL"/*Rollladen Kind.LEVEL*/, 100);
            
                setState("hm-rpc.0.LEQ0217489.1.LEVEL"/*Rollladen Gäste WC.LEVEL*/, 100);
                setState("hm-rpc.0.LEQ0217527.1.LEVEL"/*Rollladen HWR.LEVEL*/, 100);
                setState("hm-rpc.0.LEQ0276733.1.LEVEL"/*Rollladen Küche.LEVEL*/, 100);
                setState("hm-rpc.0.LEQ0217546.1.LEVEL"/*Rollladen Wohnzimmer 1.LEVEL*/, 100);
                setState("hm-rpc.0.LEQ0276721.1.LEVEL"/*Rollladen Wohnzimmer 2.LEVEL*/, 100);
                setState("hm-rpc.0.LEQ0276697.1.LEVEL"/*Rollladen Wohnzimmer 3.LEVEL*/, 100);
                setState("hm-rpc.0.LEQ0277051.1.LEVEL"/*Rollladen Wohnzimmer 4.LEVEL*/, 100);
                setState("hm-rpc.0.LEQ0276690.1.LEVEL"/*Rollladen Wohnzimmer 5.LEVEL*/, 100);
            
                setState("hm-rpc.0.KEQ0876727.1.STATE"/*Zirkulationspumpe.STATE*/, true);
            
                setState("onkyo.0.system-power"/*system-power*/, true);
                setState("onkyo.0.input"/*Input selector*/, "fm");
                setState("onkyo.0.master-volume"/*Master volume*/, 9);
            }
            
            createState("Handlung.Aufstehen.Trigger", false);
            

            3. Schritt: Verknüpfung vom CCU2-Programm

            Ich nutze zur Bedienung per Smartphone noch webmatic. Um das Skript auch von dort noch bequem aufrufen zu können, habe ich das das alte Programm bestehen gelassen, jedoch ohne automatisierte Bedingungen und Logik. Es wird von Dort einzig der Trigger des ioBroker über einen URL Aufruf angestoßen.

            Dazu habe ich unter Aktivität im Programmteil alles gelöscht und stattdessen einen Punkt Skript eingefügt.

            var url = "http://raspberrypi:8082/set/javascript.0.Handlung.Aufstehen.Trigger?value=true&prettyPrint";
            dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("wget -q -O - '"#url#"'");
            dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
            string result = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
            

            Also nochmal vielen Dank an Bluefox für den wertvollen Hinweis.

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

              Hallo zusammen,

              Ich würde gerne ebenfalls die Script Api nutzen, allerdings funktioniert bei mir nur die set Methode. Toggle läuft leider nicht:

              http://w.x.y.z:8082/toggle/hue.0.Philips_hue.WZ_HL.on
              

              liefert:

              {"id":"hue.0.Philips_hue.WZ_HL.on","value":true}
              

              Was dem aktuellen Status entspricht, er wird nicht getoggelt.

              Folgendes funktioniert:

              http://w.x.y.z:8082/set/hue.0.Philips_hue.WZ_HL.on?value=true
              http://w.x.y.z:8082/set/hue.0.Philips_hue.WZ_HL.on?value=false
              

              Hoffe ihr habt einen Tipp für mich.

              Gruß

              mikey7891

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

                toggle muss jetzt laufen.

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

                  Super, klappt einwandfrei. Danke

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

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  626
                  Online

                  31.7k
                  Users

                  79.7k
                  Topics

                  1.3m
                  Posts

                  3
                  7
                  5595
                  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