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. Skripten / Logik
  4. Blockly
  5. Gelöst: Http Request rausfinden

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    546

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.7k

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

Gelöst: Http Request rausfinden

Geplant Angeheftet Gesperrt Verschoben Blockly
11 Beiträge 3 Kommentatoren 1.1k Aufrufe 2 Watching
  • Ä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.
  • R RomN

    Hallo Zusammen

    Ich bin nicht sonderlich stark in dem Bereich wo ich mich gerade Versuche drin, sprich wenn meine Sprache/Begriffe nicht korrekt sind, gerne korrigieren.

    Ich versuche einen Beamer per Blockly Script auszuschalten. Leider hat der Beamer kein PJ-Link, scheinbar kann man ihn über Crestron steuern, was ich aber soweit ich verstanden habe nicht nutzen kann mit IO-Broker.

    Der Beamer hat ein Webinterface über welches ich ih Auschalten kann. Das müsste doch bedeuten dass ich irgendwie mit einem Blockly Script das tun kan was der Browser auch macht? Ich habe versucht das ganze per Google Tools anzuschauen aber nun komme ich nicht mehr weiter.

    Habt ihr mir Tipps/Suchbegriffe/Ansätze wie ich rausbekomme was gesendet wird wenn ich den Off Button im Webinterface drücke?

    Einschalten kann/muss ich den Beamer via WOL was bestens funktioniert.

    M Online
    M Online
    MCU
    schrieb am zuletzt editiert von
    #2

    @romn Beamer Hersteller, ID, Type usw. Wo gekauft. Sind Hinweise um besser an die daten zu kommen.

    NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
    Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

    R 1 Antwort Letzte Antwort
    0
    • R RomN

      Hallo Zusammen

      Ich bin nicht sonderlich stark in dem Bereich wo ich mich gerade Versuche drin, sprich wenn meine Sprache/Begriffe nicht korrekt sind, gerne korrigieren.

      Ich versuche einen Beamer per Blockly Script auszuschalten. Leider hat der Beamer kein PJ-Link, scheinbar kann man ihn über Crestron steuern, was ich aber soweit ich verstanden habe nicht nutzen kann mit IO-Broker.

      Der Beamer hat ein Webinterface über welches ich ih Auschalten kann. Das müsste doch bedeuten dass ich irgendwie mit einem Blockly Script das tun kan was der Browser auch macht? Ich habe versucht das ganze per Google Tools anzuschauen aber nun komme ich nicht mehr weiter.

      Habt ihr mir Tipps/Suchbegriffe/Ansätze wie ich rausbekomme was gesendet wird wenn ich den Off Button im Webinterface drücke?

      Einschalten kann/muss ich den Beamer via WOL was bestens funktioniert.

      OliverIOO Offline
      OliverIOO Offline
      OliverIO
      schrieb am zuletzt editiert von
      #3

      @romn sagte in Http Request rausfinden:

      Der Beamer hat ein Webinterface über welches ich ih Auschalten kann. Das müsste doch bedeuten dass ich irgendwie mit einem Blockly Script das tun kan was der Browser auch macht? Ich habe versucht das ganze per Google Tools anzuschauen aber nun komme ich nicht mehr weiter.

      ja da bist du schon auf dem richtigen weg.
      hoffe mal darauf, das da keine extra authentifizierung mit dabei ist.
      um es einzugrenzen öffnest du das webinterface und die developer tools des browsers.
      dann gehst du in den netzwerk tab.
      dann löscht du die angezeigte historie,
      dann drückst du den knopf für das ein und ausschalten.
      bei den dann angezeigten zeilen sind das request mit dabei, das den schaltbefehl enthält.
      die schaut man sich an und hoffentlich ist es nur ein request.

      den versucht man dann nachzustellen. da kann man oft einige header angaben entfernen.
      der blockly-request ist leider etwas eingeschränkt und kann nicht so gut konfiguriert werden, daher empfehle ich dir das mit javascript umzusetzen.

      wenn man in den developer tools auf dem request rechte maustaste macht, gibt es (zumindest im chrome) einen Befehl "copy -> copy as node.js fetch"
      wenn man dann noch im javascript adapter diese bibliothek installiert, dann kann man den Befehl 1:1 übernehmen
      https://www.npmjs.com/package/node-fetch

      Meine Adapter und Widgets
      TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
      Links im Profil

      R 1 Antwort Letzte Antwort
      0
      • M MCU

        @romn Beamer Hersteller, ID, Type usw. Wo gekauft. Sind Hinweise um besser an die daten zu kommen.

        R Offline
        R Offline
        RomN
        schrieb am zuletzt editiert von
        #4

        @mcu da ich da schon ziemlich viel Zeit verwendet hab, hab ich das weggelassen aber es handelt sich um einen Acer P5630

        1 Antwort Letzte Antwort
        0
        • OliverIOO OliverIO

          @romn sagte in Http Request rausfinden:

          Der Beamer hat ein Webinterface über welches ich ih Auschalten kann. Das müsste doch bedeuten dass ich irgendwie mit einem Blockly Script das tun kan was der Browser auch macht? Ich habe versucht das ganze per Google Tools anzuschauen aber nun komme ich nicht mehr weiter.

          ja da bist du schon auf dem richtigen weg.
          hoffe mal darauf, das da keine extra authentifizierung mit dabei ist.
          um es einzugrenzen öffnest du das webinterface und die developer tools des browsers.
          dann gehst du in den netzwerk tab.
          dann löscht du die angezeigte historie,
          dann drückst du den knopf für das ein und ausschalten.
          bei den dann angezeigten zeilen sind das request mit dabei, das den schaltbefehl enthält.
          die schaut man sich an und hoffentlich ist es nur ein request.

          den versucht man dann nachzustellen. da kann man oft einige header angaben entfernen.
          der blockly-request ist leider etwas eingeschränkt und kann nicht so gut konfiguriert werden, daher empfehle ich dir das mit javascript umzusetzen.

          wenn man in den developer tools auf dem request rechte maustaste macht, gibt es (zumindest im chrome) einen Befehl "copy -> copy as node.js fetch"
          wenn man dann noch im javascript adapter diese bibliothek installiert, dann kann man den Befehl 1:1 übernehmen
          https://www.npmjs.com/package/node-fetch

          R Offline
          R Offline
          RomN
          schrieb am zuletzt editiert von
          #5

          @oliverio

          Vieln Dank für deine Antwort. Ich glaube ich bin ein Stück weiter.

          Hier sind die Ausgaben, soweit ich sagen kann, ist keine Authentifizierung nötig. Das Web Interface hat zwar ein Passwort.

          Unter Headers kann ich folgendes finden:

          Request URL:
          http://192.168.1.100/form/control_cgi
          Request Method:
          POST
          Status Code:
          200 OK
          Remote Address:
          192.168.1.100:80
          Referrer Policy:
          strict-origin-when-cross-origin
          HTTP/1.0 200 OK
          Server: GoAhead-Webs
          Pragma: no-cache
          Cache-control: no-cache
          Content-Type: text/html
          POST /form/control_cgi HTTP/1.1
          Accept: */*
          Accept-Encoding: gzip, deflate
          Accept-Language: de-CH,de-DE;q=0.9,de;q=0.8,en-US;q=0.7,en;q=0.6,uk;q=0.5
          Connection: keep-alive
          Content-Length: 35
          Content-type: application/x-www-form-urlencoded
          Cookie: atop_user=1; atop_pw=1
          Host: 192.168.1.100
          Origin: http://192.168.1.100
          Referer: http://192.168.1.100/control.asp
          User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
          

          Unter Payload

          pwr: pwr
          

          und bei Preview kam: {pwr:"1",hid:"0",frz:"0",eco:"1",src:"3",bri:"50",con:"50",vks:"0",hks:"0",gam:"2.2",ctp:"CT2",mod:"2",vol:"0",apr:"0",zom:"1.0",prj:"0",lgo:"0",aks:"0",dyar:"31"}

          Das mit dem Node-Fetch habe ich probiert mit der dem folgenden kopierten Script:

          fetch("http://192.168.1.100/form/control_cgi", {
            "headers": {
              "accept": "*/*",
              "accept-language": "de-CH,de-DE;q=0.9,de;q=0.8,en-US;q=0.7,en;q=0.6,uk;q=0.5",
              "content-type": "application/x-www-form-urlencoded"
            },
            "referrer": "http://192.168.1.100/control.asp",
            "referrerPolicy": "strict-origin-when-cross-origin",
            "body": "SendQueryBatchCDM=SendQueryBatchCDM",
            "method": "POST",
            "mode": "cors",
            "credentials": "include"
          });
          

          Kriege dann aber die Meldung:
          12:42:52.238 error javascript.0 (166690) script.js.Projektor_2: ReferenceError: fetch is not defined
          12:42:52.239 error javascript.0 (166690) at script.js.Projektor_2:1:1
          12:42:52.239 error javascript.0 (166690) at script.js.Projektor_2:14:3

          Ich habe das Gefühl ich sei schon nah dran, aber mir fehlen halt die Basics... kannst du mir nochmals einen Tipp geben?

          OliverIOO 1 Antwort Letzte Antwort
          0
          • R RomN

            @oliverio

            Vieln Dank für deine Antwort. Ich glaube ich bin ein Stück weiter.

            Hier sind die Ausgaben, soweit ich sagen kann, ist keine Authentifizierung nötig. Das Web Interface hat zwar ein Passwort.

            Unter Headers kann ich folgendes finden:

            Request URL:
            http://192.168.1.100/form/control_cgi
            Request Method:
            POST
            Status Code:
            200 OK
            Remote Address:
            192.168.1.100:80
            Referrer Policy:
            strict-origin-when-cross-origin
            HTTP/1.0 200 OK
            Server: GoAhead-Webs
            Pragma: no-cache
            Cache-control: no-cache
            Content-Type: text/html
            POST /form/control_cgi HTTP/1.1
            Accept: */*
            Accept-Encoding: gzip, deflate
            Accept-Language: de-CH,de-DE;q=0.9,de;q=0.8,en-US;q=0.7,en;q=0.6,uk;q=0.5
            Connection: keep-alive
            Content-Length: 35
            Content-type: application/x-www-form-urlencoded
            Cookie: atop_user=1; atop_pw=1
            Host: 192.168.1.100
            Origin: http://192.168.1.100
            Referer: http://192.168.1.100/control.asp
            User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
            

            Unter Payload

            pwr: pwr
            

            und bei Preview kam: {pwr:"1",hid:"0",frz:"0",eco:"1",src:"3",bri:"50",con:"50",vks:"0",hks:"0",gam:"2.2",ctp:"CT2",mod:"2",vol:"0",apr:"0",zom:"1.0",prj:"0",lgo:"0",aks:"0",dyar:"31"}

            Das mit dem Node-Fetch habe ich probiert mit der dem folgenden kopierten Script:

            fetch("http://192.168.1.100/form/control_cgi", {
              "headers": {
                "accept": "*/*",
                "accept-language": "de-CH,de-DE;q=0.9,de;q=0.8,en-US;q=0.7,en;q=0.6,uk;q=0.5",
                "content-type": "application/x-www-form-urlencoded"
              },
              "referrer": "http://192.168.1.100/control.asp",
              "referrerPolicy": "strict-origin-when-cross-origin",
              "body": "SendQueryBatchCDM=SendQueryBatchCDM",
              "method": "POST",
              "mode": "cors",
              "credentials": "include"
            });
            

            Kriege dann aber die Meldung:
            12:42:52.238 error javascript.0 (166690) script.js.Projektor_2: ReferenceError: fetch is not defined
            12:42:52.239 error javascript.0 (166690) at script.js.Projektor_2:1:1
            12:42:52.239 error javascript.0 (166690) at script.js.Projektor_2:14:3

            Ich habe das Gefühl ich sei schon nah dran, aber mir fehlen halt die Basics... kannst du mir nochmals einen Tipp geben?

            OliverIOO Offline
            OliverIOO Offline
            OliverIO
            schrieb am zuletzt editiert von OliverIO
            #6

            @romn

            Also das sind 2 unterschiedliche requests
            Das was als payload ausgewiesen wird müsste bei fetch also body ausgegeben werden.

            Auch gibt es diskrepanzen zwischen payload und preview.
            Payload müsste eine cklickbare objektstruktur der inhalte von preview sein (ist ja json)

            Hast du den die Bibliothek node-fetch im JavaScript Adapter installiert?
            Einfach den Namen bei zusätzliche npm Pakete hinzufügen. Dann kennt er auch den Befehl fetch.
            Am Anfang des Skripts muss man mit require noch die Bibliothek in das Skript importieren. Wie findest du in der Dokumentation von Node-fetch

            Meine Adapter und Widgets
            TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
            Links im Profil

            R 2 Antworten Letzte Antwort
            0
            • OliverIOO OliverIO

              @romn

              Also das sind 2 unterschiedliche requests
              Das was als payload ausgewiesen wird müsste bei fetch also body ausgegeben werden.

              Auch gibt es diskrepanzen zwischen payload und preview.
              Payload müsste eine cklickbare objektstruktur der inhalte von preview sein (ist ja json)

              Hast du den die Bibliothek node-fetch im JavaScript Adapter installiert?
              Einfach den Namen bei zusätzliche npm Pakete hinzufügen. Dann kennt er auch den Befehl fetch.
              Am Anfang des Skripts muss man mit require noch die Bibliothek in das Skript importieren. Wie findest du in der Dokumentation von Node-fetch

              R Offline
              R Offline
              RomN
              schrieb am zuletzt editiert von RomN
              #7

              @oliverio

              a4fd7ee1-94f5-4285-8796-9b0597b96732-image.png

              Hätte ich gemeint dass ich node-fetch richtig installiert habe

              Edit: Wenn ich einbinde kommt eine neue Fehlermeldung:

              const fetch = require('node-fetch');
              fetch("http://192.168.1.100/form/control_cgi", {
                "headers": {
                  "accept": "*/*",
                  "accept-language": "de-CH,de-DE;q=0.9,de;q=0.8,en-US;q=0.7,en;q=0.6,uk;q=0.5",
                  "content-type": "application/x-www-form-urlencoded"
                },
                "referrer": "http://192.168.1.100/control.asp",
                "referrerPolicy": "strict-origin-when-cross-origin",
                "body": "SendQueryBatchCDM=SendQueryBatchCDM",
                "method": "POST",
                "mode": "cors",
                "credentials": "include"
              });
              

              13:47:21.547 error javascript.0 (167677) script.js.Projektor_2: Error [ERR_REQUIRE_ESM]: require() of ES Module /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-fetch/src/index.js from /opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js not supported.
              13:47:21.547 info javascript.0 (167677) script.js.Projektor_2: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
              13:47:21.549 error javascript.0 (167677) script.js.Projektor_2: TypeError: fetch is not a function
              13:47:21.549 error javascript.0 (167677) at script.js.Projektor_2:2:1
              13:47:21.549 error javascript.0 (167677) at script.js.Projektor_2:15:3

              Ich habe nun noch probiert über die Browsererweiterung den Befehl abzuschicken, weil ich schonmal sowas gebraucht habe für ein OTA Update... Rester gibt mir die Response 200 OK aber es passiert nichts

              bdce33f0-4beb-4a30-9dd5-36ac1d9918d6-image.png

              1 Antwort Letzte Antwort
              0
              • OliverIOO OliverIO

                @romn

                Also das sind 2 unterschiedliche requests
                Das was als payload ausgewiesen wird müsste bei fetch also body ausgegeben werden.

                Auch gibt es diskrepanzen zwischen payload und preview.
                Payload müsste eine cklickbare objektstruktur der inhalte von preview sein (ist ja json)

                Hast du den die Bibliothek node-fetch im JavaScript Adapter installiert?
                Einfach den Namen bei zusätzliche npm Pakete hinzufügen. Dann kennt er auch den Befehl fetch.
                Am Anfang des Skripts muss man mit require noch die Bibliothek in das Skript importieren. Wie findest du in der Dokumentation von Node-fetch

                R Offline
                R Offline
                RomN
                schrieb am zuletzt editiert von RomN
                #8

                @oliverio

                Ok node-fetch läuft jetzt um es mit Requiere einzubinden muss man node-fetch@2 zum adapter hinzufügen

                Das mit dem Body hab ich nun auch hingekriegt, es scheint als ob ich ein Copy Fehler gemacht habe

                fetch("http://192.168.1.100/form/control_cgi", {
                  "headers": {
                    "accept": "*/*",
                    "accept-language": "de-CH,de-DE;q=0.9,de;q=0.8,en-US;q=0.7,en;q=0.6,uk;q=0.5",
                    "content-type": "application/x-www-form-urlencoded"
                  },
                  "referrer": "http://192.168.1.100/control.asp",
                  "referrerPolicy": "strict-origin-when-cross-origin",
                  "body": "pwr=pwr",
                  "method": "POST",
                  "mode": "cors",
                  "credentials": "include"
                });
                

                So siehgt die richtige Copy aus für die nachwelt :dog:
                Vielen Dank jetzt muss ich nur noch dieses Skript mit dem Blockly verbinden, aber da probiere ich nun ein bisschen selbst

                OliverIOO 1 Antwort Letzte Antwort
                0
                • R RomN

                  @oliverio

                  Ok node-fetch läuft jetzt um es mit Requiere einzubinden muss man node-fetch@2 zum adapter hinzufügen

                  Das mit dem Body hab ich nun auch hingekriegt, es scheint als ob ich ein Copy Fehler gemacht habe

                  fetch("http://192.168.1.100/form/control_cgi", {
                    "headers": {
                      "accept": "*/*",
                      "accept-language": "de-CH,de-DE;q=0.9,de;q=0.8,en-US;q=0.7,en;q=0.6,uk;q=0.5",
                      "content-type": "application/x-www-form-urlencoded"
                    },
                    "referrer": "http://192.168.1.100/control.asp",
                    "referrerPolicy": "strict-origin-when-cross-origin",
                    "body": "pwr=pwr",
                    "method": "POST",
                    "mode": "cors",
                    "credentials": "include"
                  });
                  

                  So siehgt die richtige Copy aus für die nachwelt :dog:
                  Vielen Dank jetzt muss ich nur noch dieses Skript mit dem Blockly verbinden, aber da probiere ich nun ein bisschen selbst

                  OliverIOO Offline
                  OliverIOO Offline
                  OliverIO
                  schrieb am zuletzt editiert von OliverIO
                  #9

                  @romn
                  Und das klappt?
                  Das steht was von credentials?
                  Muss man sich gegenüber dem Gerät nicht authentifizieren?
                  Auch die refererpolicy könnte noch Probleme machen

                  Meine Adapter und Widgets
                  TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                  Links im Profil

                  1 Antwort Letzte Antwort
                  0
                  • R Offline
                    R Offline
                    RomN
                    schrieb am zuletzt editiert von RomN
                    #10

                    @oliverio

                    Ja läuft genau so wie ich das eigentlich möchte...

                    Die Frage ist dann wohl wie lange, das mit den Credentials ist wirklich ein bisschen komisch

                    Aber bis jetzt konnte ich nichts provozieren dass es nicht lief...

                    OliverIOO 1 Antwort Letzte Antwort
                    0
                    • R RomN

                      @oliverio

                      Ja läuft genau so wie ich das eigentlich möchte...

                      Die Frage ist dann wohl wie lange, das mit den Credentials ist wirklich ein bisschen komisch

                      Aber bis jetzt konnte ich nichts provozieren dass es nicht lief...

                      OliverIOO Offline
                      OliverIOO Offline
                      OliverIO
                      schrieb am zuletzt editiert von
                      #11

                      @romn

                      ne dann ist gut.
                      iobroker ist für den webserver wieder ein anderes gerät wie der browser

                      Meine Adapter und Widgets
                      TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                      Links im Profil

                      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

                      832

                      Online

                      32.5k

                      Benutzer

                      81.8k

                      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