Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Http request

    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

    Http request

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

      Hallo mein Name ist Willi, bin Anfänger und ich habe ein Problem.

      Ich programmiere normalerweise in C. Perl, Java und Blockly sind nicht so meine Welt.

      Ich habe schon seit langem ein Eigenbau-Interface für Rollos mit einem ESP8266 in Betrieb das so mit Fhem super läuft.

      Jetzt möchte ich das in iobroker umsetzen.

      In Fhem kann ich den Rollo z.B. mit {velux("0Z")} schließen.

      Ich habe eine Perl Funktion in 99_myUtils.pm erstellt, die das macht:

      sub velux($)

      {

      my ($cmd) = @_;

      my $s1;

      $s1 = join "", "http://user:passwort%5C@192.168.178.55/msg?msg=", $cmd;

      GetFileFromURL($s1);

      }

      Auch durch Eingabe im Browser von:

      http://user:passwort@192.168.178.55/msg?msg=0Z

      funktioniert das einwandfrei.

      Jetzt habe ich in iobroker ein Blockly script erzeugt.

      Hier soll testweise auf eine Aktualisierung der Fhem-Variable "testvar" reagiert werden. Was auch passiert.

      Benutzt habe ich die "Aktion" "request" und die URL "http://user:passwort@192.168.178.55/msg?msg=0Z" eingetragen.

      Hier der erzeugte code:

      on({id: 'fhem.0.testvar.state', change: "any"}, function (obj) {

      var value = obj.state.val;

      var oldValue = obj.oldState.val;

      try {

      require("request")('http://user:passwort@192.168.178.55/msg?msg=0Z').on("error", function (e) {console.error(e);});

      } catch (e) { console.error(e); }

      });

      Aber nichts geschieht.

      Kann mir bitte jemand einen Tipp geben, woran das liegt. Ich probiere nun schon seit Tagen, aber ohne Erfolg.

      Ich dachte der Eintrag bei "URL" in "request" führt zum gleiche Ergebnis wie in Fhem oder im Browser, aber so ist das wohl nicht.

      Hier noch ein paar Daten:

      iobroker läuft auf Raspberry 3B

      Versionen:

      user: 3.4.7

      fhem: 0.5.0

      node: 8.11.1

      npm: 5.8.0

      Danke und viele Grüße

      Willi

      1 Reply Last reply Reply Quote 0
      • Q
        quorle last edited by

        Ich nutze zum Beispiel eine NodeMCU mkt esp8266 und ESPEasy drauf. Was dein esp ausgeben soll ( Relais ansteuern ) kann man einstellen. Und verbunden ist er mit dem Broker über Mqtt. Dann muss man nur noch den request senden.

        Gesendet von iPhone mit Tapatalk

        1 Reply Last reply Reply Quote 0
        • arteck
          arteck Developer Most Active last edited by

          sagemal da du in C Programmierst.. schon mal was von Formatierung gehört… da gibbet ein Tag für damit der Code besser lesbar ist.... :lol: :lol: :lol:

          hast du auch in den Java instanz den "request" als Erweiterung angegeben

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

            @lt1014:

            Ich dachte der Eintrag bei "URL" in "request" führt zum gleiche Ergebnis wie in Fhem oder im Browser, aber so ist das wohl nicht. `

            Ich sehe zwei Möglichkeiten:

            1. Die JavaScript-Instanz oder das Skript selbst läuft nicht.

            2. Irgendwas stimmt mit dem Skript nicht

            1. kannst du leicht überprüfen. Alles grün? Instanz und Skript?

            2. Hast du mal in den Log geschaut ob da was steht? Kannst du mit einem Debug-Baustein überprüfen ob der Trigger überhaupt ausgeführt wird?

            @arteck:

            hast du auch in den Java instanz den "request" als Erweiterung angegeben `
            Ist unnötig, request ist eines der Module, das standardmäßig geladen ist.

            1 Reply Last reply Reply Quote 0
            • L
              lt1014 last edited by

              ESPEasy kann ich nicht verwenden. Es geht nicht nur um ein/aus schalten. Der ESP steuert die Rollos über ein proprietäres serielles Protokoll an.

              Ja, alles grün.

              Der Trigger wird ausgeführt. Ich hab testweise noch einen Variable in Fhem (läuft auf einem anderen Raspberry) ändern lassen, das hat funktioniert.

              Auch habe ich mal in "request" die URL vom PC zum "Packet Sender" eingegeben, dort ist es dann auch angekommen:

              Time: 7:48:56.673
              TO: You:1313
              From: 192.168.178.65:38246
              Method: TCP
              Error:
              
              ASCII:
              GET /msg?msg=S HTTP/1.1\r\nhost: 192.168.178.37:1313\r\nauthorization: 
              Basic YWRtaW46MTcwNzYx\r\nConnection: close\r\n\r\n
              
              HEX:
              47 45 54 20 2F 6D 73 67 3F 6D 73 67 3D 53 20 48 54 54 50 2F 31 2E 31 0D 0A 68 6F 73 74 3A 20 31 39 32 2E 31 36 38 2E 31 37 38 2E 33 37 3A 31 33
              31 33 0D 0A 61 75 74 68 6F 72 69 7A 61 74 69 6F 6E 3A 20 42 61 73 69 63
              20 59 57 52 74 61 57 34 36 4D 54 63 77 4E 7A 59 78 0D 0A 43 6F 6E 6E 65
              63 74 69 6F 6E 3A 20 63 6C 6F 73 65 0D 0A 0D 0A
              
              

              hier zum Vergleich die "Umleitung" wie sie von Fhem kommt und funktioniert:

              Time: 7:43:07.366
              TO: You:1313
              From: 192.168.178.25:59312
              Method: TCP
              Error:
              
              ASCII:
              GET /msg?msg=S HTTP/1.0\r\nHost: 192.168.178.37:1313\r\nUser-Agent: 
              fhem\r\nAuthorization: Basic YWRtaW46MTcwNzYx\r\n\r\n
              
              HEX:
              47 45 54 20 2F 6D 73 67 3F 6D 73 67 3D 53 20 48 54 54 50 2F 31 2E 30 0D 0A 48 6F 73 74 3A 20 31 39 32 2E 31 36 38 2E 31 37 38 2E 33 37 3A 31 33
              31 33 0D 0A 55 73 65 72 2D 41 67 65 6E 74 3A 20 66 68 65 6D 0D 0A 41 75
              74 68 6F 72 69 7A 61 74 69 6F 6E 3A 20 42 61 73 69 63 20 59 57 52 74 61
              57 34 36 4D 54 63 77 4E 7A 59 78 0D 0A 0D 0A
              
              

              Kann es sein, weil im ersten Fall "Connection: close" mitgesendet wird?

              Wie kann man das verhindern?

              Gruß

              Willi

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

              Support us

              ioBroker
              Community Adapters
              Donate

              825
              Online

              31.7k
              Users

              79.9k
              Topics

              1.3m
              Posts

              4
              5
              639
              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