Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. http (GET) Aufruf mit username:password@ funktioniert nicht

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    http (GET) Aufruf mit username:password@ funktioniert nicht

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

      Hallo

      ich bekomme folgenden Scriptteil einfach nicht zum laufen.
      Das Script wird ausgeführt, zumindest wird die debug Message ausgegeben, danach passiert aber nichts weiter.

      3c7694d9-805a-4629-a16b-67de17146673-image.png

      Wenn ich die Adresszeile in den Browser eingebe dauert es zwar 10-20s aber dann sagt das Gerät message received auf der Browserseite und es hat funktioniert.

      Die ganze Adresszeile die aufgerufen werden soll sieht ungefähr so aus:
      http://username:passwort@dynamischedns.my.to:1234/set?soc=2

      Liegt das Ganze daran dass der Get Befehl insgesamt nicht wirklich funktioniert oder am Adapter der das mit Username und Passwort so irgendwie nicht rüberbringt?

      Codierknecht 2 Replies Last reply Reply Quote 0
      • Codierknecht
        Codierknecht Developer Most Active @arumpel last edited by

        @arumpel
        Schau Dir mal statt "Data" den "Staus code" an.

        A 1 Reply Last reply Reply Quote 0
        • A
          arumpel @Codierknecht last edited by

          @codierknecht
          Da kommt 401 zurück was unauthorized heißt.
          Wenn ich die URL aber mit copy und paste in den Brower kopiere und aufrufe klappt es.
          Muss ich da irgendwas bei der Javascript Instanz noch einstellen oder installieren oder wo klemmts?

          Homoran 1 Reply Last reply Reply Quote 0
          • Codierknecht
            Codierknecht Developer Most Active @arumpel last edited by

            @arumpel sagte in http (GET) Aufruf mit username:password@ funktioniert nicht:

            Liegt das Ganze daran dass der Get Befehl insgesamt nicht wirklich funktioniert oder am Adapter der das mit Username und Passwort so irgendwie nicht rüberbringt?

            Der Get-Befehl wird schon funktionieren, aber evtl. nicht vollumfänglich mit Blockly. Je nach Art der zulässigen Authentifizierung (Basic, Bearer etc.) der Gegenseite müsste das evtl. in eine JS-Funktion ausgelagert werden.
            Bei der Übergabe per URL müssen Sonderzeichen im Kennwort übrigens URL-kodiert werden. Das macht der Browser automatisch, der Get-Befehl in Blockly vermutlich nicht.

            Näheres dazu kann vielleicht Matthias @haus-automatisierung sagen.

            haus-automatisierung 1 Reply Last reply Reply Quote 0
            • haus-automatisierung
              haus-automatisierung Developer Most Active @Codierknecht last edited by

              @codierknecht Wenn es so im Browser geht, ist es ja einfach nur Basic-Authentication. Das klappt so auch mit Blockly.

              Mal den Verbose-Mode im Script aktivieren. Dann sieht man mehr was genau gesendet wird und ob etwas zurückkommt.

              Homoran Codierknecht 2 Replies Last reply Reply Quote 0
              • Homoran
                Homoran Global Moderator Administrators @haus-automatisierung last edited by

                @haus-automatisierung könnte/wäre/würde so ein Gerät vielleicht eventuell möglicherweise den User Agent prüfen?

                haus-automatisierung 1 Reply Last reply Reply Quote 0
                • haus-automatisierung
                  haus-automatisierung Developer Most Active @Homoran last edited by haus-automatisierung

                  @homoran Der User-Agent ist ja nur ein separater HTTP-Header und muss nichtmal übermittelt werden. Eine API würde den Agent-Header (hoffentlich) nie prüfen oder validieren.

                  Dennoch übermittelt der JavaScript-Adapter bei httpGet einen Agent, weil manche damit ja auch Webseiten parsen usw. Siehe

                  https://github.com/ioBroker/ioBroker.javascript/blob/7778007eb9304658aed10f4a975de91864ad26bc/lib/tools.js#L169

                  Codierknecht 1 Reply Last reply Reply Quote 1
                  • Codierknecht
                    Codierknecht Developer Most Active @haus-automatisierung last edited by

                    @haus-automatisierung sagte in http (GET) Aufruf mit username:password@ funktioniert nicht:

                    Wenn es so im Browser geht, ist es ja einfach nur Basic-Authentication. Das klappt so auch mit Blockly.

                    Es könnten aber vielleicht bestimmte Sonderzeichen Ärger machen. Wird der Kram von httpGet auch URL-codiert?

                    haus-automatisierung 1 Reply Last reply Reply Quote 0
                    • Homoran
                      Homoran Global Moderator Administrators @arumpel last edited by

                      @arumpel sagte in http (GET) Aufruf mit username:password@ funktioniert nicht:

                      Wenn ich die URL aber mit copy und paste in den Brower kopiere und aufrufe klappt es.

                      hast du dich in dem Browser schon mal manuell authentifiziert?

                      oder andersherum:
                      klappt das auch im Inkognito-Tab?

                      A 1 Reply Last reply Reply Quote 1
                      • Codierknecht
                        Codierknecht Developer Most Active @haus-automatisierung last edited by

                        @haus-automatisierung sagte in http (GET) Aufruf mit username:password@ funktioniert nicht:

                        Eine API würde den Agent-Header (hoffentlich) nie prüfen oder validieren.

                        Hatte ich auch schon. Musste dem Request dann einen unverfänglichen Agenten "unterjubeln" 😉

                        1 Reply Last reply Reply Quote 0
                        • haus-automatisierung
                          haus-automatisierung Developer Most Active @Codierknecht last edited by

                          @codierknecht sagte in http (GET) Aufruf mit username:password@ funktioniert nicht:

                          Es könnten aber vielleicht bestimmte Sonderzeichen Ärger machen.

                          Alles Mutmaßungen und bringt ja niemanden weiter. URL Escaping muss man natürlich selbst machen.
                          Aber all das würde man im Log des Verbose-Mode ja sehen...

                          A 1 Reply Last reply Reply Quote 0
                          • A
                            arumpel @haus-automatisierung last edited by

                            @haus-automatisierung
                            Danke für die rege Beteiligung. Ich hoffe ich habe das richtige Log was Ihr sehen wollt. Geändert habe ich darin nur die dynamische DNS Adresse und username sowie passwort. Das sind aber alles nur normale Kleinbuchstaben im Original.

                            javascript.0 09:35:24.768 info script.js.BMS: Ändere BMS SOC
                            javascript.0 09:35:24.769 info script.js.BMS: httpGet(config={"method":"get","url":"http://dynamischedns.my.to:4718/set?soc=2","responseType":"text","responseEncoding":"utf8","timeout":60000,"auth":{"username":"username","password":"passwort"},"headers":{"User-Agent":"Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/121.0"}})
                            javascript.0 09:35:24.778 info script.js.BMS: getState(id=mqtt.0.BMS.Pack_Cell_Low_Voltage, timerId=undefined) => {"val":3.169,"ack":true,"ts":1745307321735,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1745307305763}
                            javascript.0 09:35:24.778 info script.js.BMS: sendTo(instance=telegram.0, cmd=send, msg={"text":"Akkustand kritisch! Geringste Zellenspannung: 3.169V"}, hasCallback=false)
                            javascript.0 09:35:25.979 info script.js.BMS: httpGet(url=http://username:passwort@dynamischedns.my.to:4718/set?soc=2, responseTime=1210ms)
                            javascript.0 09:35:25.980 info script.js.BMS: 401

                            1 Reply Last reply Reply Quote 0
                            • A
                              arumpel @Homoran last edited by arumpel

                              @homoran
                              Also im Chrome Inkognito Tab wenn ich die URL reinkopiere sagt er:

                              dynamischedns.my.to unterstützt keine sichere Verbindung
                              Du siehst diese Warnung, weil diese Website kein HTTPS unterstützt und du den Inkognitomodus nutzt. Weitere Informationen zu dieser Warnung...

                              Die URL die ich gepasted habe war aber nur http://... also ohne das s

                              Wenn ich es im Firefox Broswer im privaten Fenster mache klappt es.
                              Dann kommt ein message received vom Device zurück und der SOC wurde per Webhook geändert.

                              Homoran 1 Reply Last reply Reply Quote 0
                              • Homoran
                                Homoran Global Moderator Administrators @arumpel last edited by

                                @arumpel sagte in http (GET) Aufruf mit username:password@ funktioniert nicht:

                                Die URL die ich gepasted habe war aber nur http://... also ohne das s

                                war das auch hinterher noch so?
                                die Browser ändern das je nach Einstellungen eigenständig ab.

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

                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                636
                                Online

                                31.6k
                                Users

                                79.6k
                                Topics

                                1.3m
                                Posts

                                4
                                14
                                336
                                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