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

    • 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 (GET) Aufruf mit username:password@ funktioniert nicht

    This topic has been deleted. Only users with topic management privileges can see it.
    • 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.

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

                      @homoran

                      Im Chrome habe ich es mehrfach probiert. Wenn ich paste mache und da http://... drin steht kommt die Fehlermeldung das kein HTTPS unterstützt wird. In der Adresszeile fehlt aber der Zusatz http:// oder auch https:// komplett, nur der Rest der Adresse steht noch drin.

                      Trotzdem funktioniert es wenn ich es im Firefox im privaten Fenster eingebe. Das Device gibt dann eine Rückmeldung und der Webhook hat funktioniert.

                      Nur eben in Blockly mit Get Auffruf funktioniert das nicht. Ich kann so halt nichts automatisieren.

                      P 1 Reply Last reply Reply Quote 0
                      • P
                        peterfido @arumpel last edited by

                        @arumpel Was ist das für ein Server, welcher unverschlüsselt im Internet hängt? Da kann ja jeder dazwischenliegende Hop mitlesen.

                        Ist es Dein eigener, dann schalte die Verschlüsselung ein.

                        Es gibt noch den Parameter validateCertificate

                        httpGet( URL, { validateCertificate: false, timeout: 2000, responseType: 'arraybuffer' }, async (err, response) => {
                        ...
                        ...
                        ...
                        

                        wie das in Blockly aussieht, weiß ich allerdings nicht. Auch nicht, ob Dir das weiterhilft.

                        In Chrome zeigt er schon das Protokoll an. Dafür muss man in die Adresszeile reinklicken. Die Screenshots sind zwar vom Vivaldi, gilt aber auch für Chrome:

                        8f85c6a1-5497-42c4-a3eb-6c6c2ed7bd5b-image.png

                        f48afba3-482e-4973-a16d-a2c073db2b84-image.png

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

                          @peterfido
                          Es ist nur ein kleiner Wifi ESP welcher ein PV Akku BMS ausließt um die Werte zu übermitteln. Man kann auch einen SOC Wert setzen, das ist eben ab und an erforderlich wenn die Batterie durch Eigenentladung ziemlich leer ist wenn lange nicht geladen wurde. Ich hab die Software für das Ding nicht programmiert, will nur den Befehl automatisieren.

                          Ja wenn ich in die Adressleiste mit Rechtklick klicke und vollständige URL Anzeigen wähle dann steht die Adresse mit http wie im Versuch mit Paste drin. Ich muss dann auf trotzdem weiter zur unsicheren Seite klicken dann geht der Befehl auch. Nur wenn Blockly das aufruft irgendwie nicht. Ich weiß nicht ob der Programmierer von dem Teil da vielleicht auch irgendwelche Fehler drin hat die es per Blockly unmöglich machen. Es dauert manchmal sehr lange bis das Device antwortet aber ich habe ja schon einen Timeout von 60s gesetzt.

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

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          940
                          Online

                          31.9k
                          Users

                          80.1k
                          Topics

                          1.3m
                          Posts

                          5
                          17
                          605
                          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