NEWS

rejectUnauthorized: false funktioniert nicht mehr


  • Starter

    Hallo,

    nachdem ich den JS Apdapter heute aktualisiert habe funktioniert der auf

    const request = require('request').defaults({ rejectUnauthorized: false });
    

    nicht mehr. Das hier ist der Fehler im Log:
    javascript.0 2020-06-04 15:53:48.773 error (15278) TypeError: require(...).defaults is not a function
    javascript.0 2020-06-04 15:53:48.773 error (15278) ^
    javascript.0 2020-06-04 15:53:48.773 error (15278) const request = require('request').defaults({ rejectUnauthorized: false });

    Hier mal das ganze Script. Bitte nicht gleich verhauen bin total unerfahren in Javascript.

    const request = require('request').defaults({ rejectUnauthorized: false });
    const klemmen = $('My_Devices.0.Digitalstrom.Klemmen.*');
    var dssip = getState("My_Devices.0.Digitalstrom.Server.IP-Adresse").val;
    var dssport = getState("My_Devices.0.Digitalstrom.Server.Port").val;
    var dssappltoken = getState("My_Devices.0.Digitalstrom.Token.Applicationtoken").val;
    
    on({id: /^My_Devices.0.Digitalstrom.Räume..+.Light/, change: "any"}, function (obj) {
        var value = obj.state.val;
        var zone = obj.id.replace("My_Devices.0.Digitalstrom.Räume.", "").replace(".Light","")
        var name = obj.name
        console.log(`ID = ${zone}, Room = ${name}, State = ${value}`);
        request(`https://${dssip}:${dssport}/json/system/loginApplication?loginToken=${dssappltoken}`, { json: true}, (err, res, body) => {
            if (err) { return console.log(err); }
            var sessiontoken = body.result.token;
            console.log(`SessionToken = ${sessiontoken}`);
            request(`https://${dssip}:${dssport}/json/property/query?query=/apartment/zones/*(ZoneID, name)/groups/group1(lastCalledScene)&token=${sessiontoken}`, { json: true }, (err, res, body) =>  {
                //console.log(body.result);
                var Zones = body.result.zones;
                // Zones.length - 1 because last Zone is empty 
                console.log(`Zone Count = ${Zones.length - 1}`);
                for(var zonecounter=0; zonecounter < Zones.length - 1; zonecounter++){
                    var ZoneID = Zones[zonecounter].ZoneID
                    var Room = Zones[zonecounter].name
                    var lastCalledScene = (Zones[zonecounter].group1[0].lastCalledScene)
                    //console.log(`ZoneID = ${ZoneID}`);
                    //console.log(`Room = ${Room}`);
                    //console.log(`lastCalledScene = ${lastCalledScene}`);
                    setState(`My_Devices.0.Digitalstrom.Räume.${ZoneID}.lastCalledScene`,lastCalledScene)
                    console.log(`Reading from DSServer lastCalledScene Value : ${lastCalledScene} of RoomID : ${ZoneID} `)
                };
            });
            if(value == true) {
                try {
                    console.log(`https://${dssip}:${dssport}/json/zone/callScene?id=${zone}&groupID=1&sceneNumber=5&force=true&token=${sessiontoken}`)
                    request({url: `https://${dssip}:${dssport}/json/zone/callScene?id=${zone}&groupID=1&sceneNumber=5&force=true&token=${sessiontoken}`}, function(error, response, body) {
                        console.log(body);
                        //setState(`My_Devices.0.Digitalstrom.Räume.${ZoneID}.lastCalledScene`,5)
                        console.log(`Setting lastCalledScene to 5 of RoomID : ${zone}`);
                    });
                } catch (e) { console.error(e); }
            } 
            if(value == false) {
                try {
                    console.log(`https://${dssip}:${dssport}/json/zone/callScene?id=${zone}&groupID=1&sceneNumber=0&force=true&token=${sessiontoken}`)
                    request({url: `https://${dssip}:${dssport}/json/zone/callScene?id=${zone}&groupID=1&sceneNumber=0&force=true&token=${sessiontoken}`}, function(error, response, body) {
                        console.log(body);
                        //setState(`My_Devices.0.Digitalstrom.Räume.${ZoneID}.lastCalledScene`,0)
                        console.log(`Setting lastCalledScene to 0 of RoomID : ${zone}`);
                    });
                } catch (e) { console.error(e); }
            }
        });
    });
    console.log("#################################################");
    

  • Developer

    @AkiraFFM sagte in rejectUnauthorized: false funktioniert nicht mehr:

    const request = require('request').defaults({ rejectUnauthorized: false });

    Geht es, wenn du diese erste Zeile wie folgt änderst:

    request = request.defaults({ rejectUnauthorized: false });
    

  • Starter

    @AlCalzone
    Nein jetzt mit dem Error
    javascript.0 2020-06-04 16:24:14.604 error (15278) TypeError: request.defaults is not a function
    javascript.0 2020-06-04 16:24:14.604 error (15278) ^
    javascript.0 2020-06-04 16:24:14.604 error (15278) request = request.defaults({ rejectUnauthorized: false });


  • Developer

    @AkiraFFM Hab gefunden woran es liegt und ein Issue erstellt.
    https://github.com/ioBroker/ioBroker.javascript/issues/593

    Vorerst musst du wohl wieder auf eine alte Version zurück.


  • Developer

    @AlCalzone ah gut zu wissen, bin auch erst über das Problem gestolpert.


  • Developer

    @Jey-Cee @AkiraFFM ich hab einen potentiellen Fix. Könnt ihr den grad testen, habe leider keine Skripte, wo ich request verwende?

    Dazu einfach über die Katze von custom URL installieren: https://github.com/ioBroker/ioBroker.javascript/tarball/request-missing-methods


  • Starter

    Ja das hat es gefixt. Ist ein workaround aber in JS Adapter Version 4.6.17 war es noch nicht gefixt.


  • Developer

    @AkiraFFM Bist du sicher? Der entsprechende PR müsste längst gemerged sein.

    Edit: Nevermind - ist noch nicht veröffentlicht


Log in to reply
 

Suggested Topics

1.1k
Online

32.5k
Users

39.1k
Topics

529.8k
Posts