Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [Gelöst] Problem mit URL Request: "Error: self signed certificate"

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Gelöst] Problem mit URL Request: "Error: self signed certificate"

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

      Hallo zusammen,

      ich möchte gerne in einem Skript eine URL Aufrufen lassen.

      Das Skript dazu bekomme ich auch gebaut, allerdings scheints Probleme mit dem "https" zu geben.

      Ich bekomme als error im log "Error: self signed certificate"

      Die URL die ausgeführt wird, gehört zu einer webcam, die für den SSL Zugriff offenbar ein selbstsigniertes Zertifikat verwendet. Zugriff ohne SSL lässt sich leider nicht aktivieren.

      Gibt es eine Möglichkeit iobroker dazu zu bringen auch diese Zertifikate zu akzeptieren?

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

        Ich habe mal für dich gegoogelt … Erstes Ergebnis: https://stackoverflow.com/questions/108 ... ps-request

        1 Reply Last reply Reply Quote 0
        • T
          Thosch last edited by

          Danke!

          Leider komm ich damit auch nicht weiter. Habe nun folgenden Code:

          on({id: 'mihome.0.devices.switch_158d0002107b85.click', change: "ne"}, function (obj) {
            var value = obj.state.val;
            var oldValue = obj.oldState.val;
            if (getState("mihome.0.devices.switch_158d0002107b85.click").val == true) {
              var request = require("request");
              var agentOptions;
              var agent;
          
          agentOptions = {
            host: '192.168.178.161'
          , port: '443'
          , path: '/'
          , rejectUnauthorized: false
          };
          
          agent = new https.Agent(agentOptions);
          
          request({
            url: "https://192.168.178.161/cgi-bin/action.cgi?cmd=ir_led_off"
          , method: 'GET'
          , agent: agent
          }, function (err, resp, body) {
            // ...
          });
          }
          });
          

          Bekomme aber damit folgenden Fehler:

          javascript.0 2018-08-22 08:27:56.627 error at Object. <anonymous>(script.js.Cam.Skript2:16:13)

          javascript.0 2018-08-22 08:27:56.627 error Error in callback: ReferenceError: https is not defined

          Jemand noch eine Idee, was ich falsch mache?</anonymous>

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

            Mal mindestens fehlt denke ich ein

            https = require(‚https‘);

            Und bitte die Anführungszeichen nicht kopieren sondern selber richtig schreiben 😉

            Gesendet vom Handy …

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

              @Thosch:

              agent = new https.Agent(agentOptions);
              
              

              ReferenceError: https is not defined `

              Ja, ganz oben einfügen:

              const https = require("https");
              
              
              1 Reply Last reply Reply Quote 0
              • T
                Thosch last edited by

                Danke!!

                Jetzt gibt das Skript keinen Error mehr aus.

                Allerdings wird offenbar die URL nicht ausgeführt.

                Wenn ich die URL im Browser ausführe, schaltet sich das IR-Licht meiner Webcam aus. Beim Skript tut sich allerdings nichts.

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

                  Dann logge mal im Callback den Inhalt von resp und err:

                  if (err) log(JSON.stringify(err));
                  if (resp) log(JSON.stringify(resp));
                  
                  1 Reply Last reply Reply Quote 0
                  • T
                    Thosch last edited by

                    Wirklich echt super, dass ihr mir auf die Sprünge helft!!

                    Sorry, ich bin totaler Neuanfänger mit Javascript.

                    Ich hab die Zeilen jetzt so eingebaut:

                    const https = require("https");
                    
                    on({id: 'javascript.0.Alarm', change: "ne"}, function (obj) {
                      var value = obj.state.val;
                      var oldValue = obj.oldState.val;
                      if (getState("javascript.0.Alarm").val == true) {
                        var request = require("request");
                        var agentOptions;
                        var agent;
                    
                    agentOptions = {
                      host: '192.168.178.161'
                    , port: '443'
                    , path: '/'
                    , rejectUnauthorized: false
                    };
                    
                    agent = new https.Agent(agentOptions);
                    
                    request({
                      url: "https://192.168.178.161/cgi-bin/action.cgi?cmd=ir_led_off"
                    , method: 'GET'
                    , agent: agent
                    }, function (err, resp, body) {
                    if (err) log(JSON.stringify(err));
                    if (resp) log(JSON.stringify(resp));
                    });
                    }
                    });
                    
                    

                    Bekomme aber keinen log Eintrag.

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

                      Dann wird der Request sehr wahrscheinlich nicht ausgeführt. Das kannst du am besten überprüfen, indem du direkt vor der Zeile noch eine Logausgabe einfügst.

                      1 Reply Last reply Reply Quote 0
                      • T
                        Thosch last edited by

                        Der Request wird offenbar doch ausgeführt. Aber ich bekomme die Rückmeldung 401, da ich auch noch ganz vergessen hatte, dass die http Oberfläche durch Zugangsdaten gesperrt ist.

                        Mit der angepassten url: https://user:password@192.x usw. hats dann funktioniert!

                        Nochmal vielen Dank euch für die Hilfe!!!

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        809
                        Online

                        31.7k
                        Users

                        79.8k
                        Topics

                        1.3m
                        Posts

                        3
                        10
                        2580
                        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