Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. [gelöst] blockly-request-seltsamer fehler

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst] blockly-request-seltsamer fehler

    This topic has been deleted. Only users with topic management privileges can see it.
    • liv-in-sky
      liv-in-sky last edited by liv-in-sky

      ich habe einen node webserver auf meinem pc laufen. das blockly, um das es geht, sendet vom iobroker server über request die befehle an meinen pc

      das problem:

      • script startet - zum test wird nach 3 sekunden ein befehl gesendet
      • dann schalte ich das blockly ab (oder ich lasse es weiter laufen - passiert das selbe)
      • einige zeit später kommt dann der fehler - im log sieht man, dass das script nicht getriggert wird (ist ja auch aus) aber der request sendet einen fehler zurück

      Image 2.png

      Image 3.png

      was läuft da im request block schief ? hat jmd eine ahnung

      das ganze lief früher immer ohne probleme - ist also kein neues script

      1 Reply Last reply Reply Quote 0
      • liv-in-sky
        liv-in-sky last edited by

        @apollon77 , @AlCalzone

        ich schreib euch mal direkt an - evtl ist es ja ein javascript adapter problem ?

        1 Reply Last reply Reply Quote 0
        • liv-in-sky
          liv-in-sky last edited by

          hier noch ein bild über browsers mit antwort

          Image 4.png

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

            Also was da kommt ist ein timeout. Auf den wartet das Skript auch wenn du es stoppst. Kannst ggf nur beim call einen timeout mitgeben (keine Ahnung ob blockly das kann)

            liv-in-sky 1 Reply Last reply Reply Quote 0
            • liv-in-sky
              liv-in-sky @apollon77 last edited by

              @apollon77 bedeutet das, dass der webserver auf der pc seite keine "richtige" antwort sendet ?

              ich wüßte nicht, wie ich bei blockly request sowas einstellen könnte - ich glaube, ich habe gelesen, dass der request intern auf axios umgestellt wurde

              ich könnte also nur auf der webserver seite etwas machen (evtl bei response.end - siehe code unten

              @bahnuhr du nutzt das doch auch - hast du damit kein problem ?

              der webserver ist so aufgebaut

              const http = require('http');
              const port = 3000;
              
              
              const requestHandler = (request, response) => {
                console.log(request.url);
                var payload = request.url;
                var arr = payload.split("/");
              
                  if (arr[1] == "unmute") {
              		child = execFile('C:\\BATCH-FILES\\mutestop.cmd');
              		console.log('mute aus');
              		response.end('mute aus');
                };
              
              const server = http.createServer(requestHandler);
              server.listen(port, (err) => {
                if (err) {
                  return console.log('something bad happened', err)
                }
                console.log(`server is listening on ${port}`)
              });
              
              bahnuhr 1 Reply Last reply Reply Quote 0
              • bahnuhr
                bahnuhr Forum Testing Most Active @liv-in-sky last edited by bahnuhr

                @liv-in-sky

                Hallo,
                anbei mal ein Script Extract was einwandfrei funktioniert.
                Blockly hab ich leider nicht.

                var request = require('request'), IP_Tablet = "192.168.243.122";   
                
                    request("http://" + IP_Tablet + ":3000/key/shift", function (error, response, body) {
                    if (!error && response.statusCode == 200) { log ("Tablet Windows - Taste shift gesendet."); } 
                    }); 
                
                

                Und das Webserver script sieht so aus:

                /*
                Examples
                http://<ip>:3000/brightness/10  switches brightness of server display to 10%
                http://<ip>:3000/Lautstaerke/10  switches Lautstärke
                http://<ip>:3000/battery returns a number containing the battery level 0..1
                http://<ip>:3000/key/windows press win am pc
                */
                const batteryLevel = require('battery-level');
                const brightness = require('brightness');
                const laut = require('loudness');
                const ks = require('node-key-sender');
                var execFile = require('child_process').execFile, child;
                const http = require('http');
                const port = 3000;
                
                const requestHandler = (request, response) => {
                  console.log(request.url);
                  var payload = request.url;
                  var arr = payload.split("/");
                  if (arr[1] == "battery") {
                    batteryLevel().then(level => {
                		console.log(level*100);
                		response.end(''+level*100);
                	   });
                   } 
                  if (arr[1] == "brightness") {
                	  var value = Number(arr[2])/100;
                	  brightness.set(value).then(() => {
                		console.log('Changed brightness to ' + value*100 + ' %');
                	   });
                	   response.end('Changed brightness to ' + value*100 + ' %');
                  }
                  if (arr[1] == "Lautstaerke") {
                	  var value = Number(arr[2]);
                	  laut.setVolume(value).then(() => {
                		console.log('Changed Lautstaeke to ' + value + ' %');
                	   });
                	   response.end('Changed Lautstaerke to ' + value + ' %');
                  }
                  if (arr[1] == "key") {
                		if (arr[2] == "windows") {
                			ks.sendKey(arr[2]).then(() => {
                			console.log('key ' + arr[2] + ' gesendet');
                			response.end('key ' + arr[2] + ' gesendet');
                			});
                		}
                		if (arr[2] == "shift") {
                			ks.sendKey(arr[2]).then(() => {
                			console.log('key ' + arr[2] + ' gesendet');
                			response.end('key ' + arr[2] + ' gesendet');
                			});
                		}
                  }
                  if (arr[1] == "aus") {
                		child = execFile('c:\\users\\dieter\\webserver\\turnoffmonitor.exe');
                		console.log('Display aus');
                		response.end('Display aus');
                  };
                }
                 
                const server = http.createServer(requestHandler);
                server.listen(port, (err) => {
                  if (err) {
                    return console.log('something bad happened', err)
                  }
                  console.log(`server is listening on ${port}`)
                });
                
                liv-in-sky 1 Reply Last reply Reply Quote 0
                • liv-in-sky
                  liv-in-sky @bahnuhr last edited by

                  @bahnuhr

                  danke dir - das ist ja von dir kopiert 🙂

                  habe aber festgestellt, dass irgendwie die firewall rule nicht da war und der webserver nicht mehr erreichbar war - absolut keine ahnung warum ?
                  habe die letzten tage meine fritzbox gewechselt bzw wechseln müssen - da war erstmal ein wenig chaos im netzwerk (ip adressen)

                  jetzt läuft es wieder - firewall auf pc mit port 3000 wieder enabled

                  @apollon77 - danke auch dir - war kein blockly problem sondern wie meist: ein user problem 😞

                  apollon77 1 Reply Last reply Reply Quote 2
                  • apollon77
                    apollon77 @liv-in-sky last edited by

                    @liv-in-sky sagte in [gelöst] blockly-request-seltsamer fehler:

                    @apollon77 - danke auch dir - war kein blockly problem sondern wie meist: ein user problem

                    All Fine, dazu sind wir alle hier um uns gegenseitig zu helfen

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

                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    440
                    Online

                    31.9k
                    Users

                    80.1k
                    Topics

                    1.3m
                    Posts

                    3
                    8
                    339
                    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