NEWS
Adapter: ioBroker.unifi
-
@liv-in-sky Ist das alles im log? Eig müsste er nach "Login erfolgreich" noch die Cookies anzeigen.
Kannst du die zwei Zeilen mal unter
let set_cookies = resp.headers["set-cookie"]
machen?
(Zeile 19 müsste das sein)console.log("set_cookies: ", typeof set_cookies); console.log("set_cookies: ", set_cookies);
-
@thewhobox sagte in Adapter: ioBroker.unifi:
console.log("set_cookies: ", typeof set_cookies); console.log("set_cookies: ", set_cookies);
soweit kommt er nicht - da gibt es keinen neuen log eintrag
javascript.2 2019-08-27 16:49:56.566 info script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: login: Login war erfolgreich! javascript.2 2019-08-27 16:49:56.566 info script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: login: got response javascript.2 2019-08-27 16:49:56.259 info script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: registered 0 subscriptions and 0 schedules javascript.2 2019-08-27 16:49:56.259 info script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: need to login javascript.2 2019-08-27 16:49:56.259 info script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: start set wifi javascript.2 2019-08-27 16:49:56.259 info script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: starting test javascript.2 2019-08-27 16:49:56.259 info Start javascript script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2 javascript.2 2019-08-27 16:49:56.209 info Stop script script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2 js2fs.0 2019-08-27 16:49:56.191 info Script file script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2 changed, also update in ioBroker javascript.2 2019-08-27 16:49:54.480 info script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: login: Login war erfolgreich! javascript.2 2019-08-27 16:49:54.480 info script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: login: got response javascript.2 2019-08-27 16:49:54.186 info script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: registered 0 subscriptions and 0 schedules javascript.2 2019-08-27 16:49:54.186 info script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: need to login javascript.2 2019-08-27 16:49:54.186 info script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: start set wifi javascript.2 2019-08-27 16:49:54.186 info script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: starting test javascript.2 2019-08-27 16:49:54.186 info Start javascript script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2 js2fs.0 2019-08-27 16:49:54.175 info Script script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2 modified in ioBroker, write to file javascript.2 2019-08-27 16:49:54.173 info Stop script script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2 javascript.0 2019-08-27 16:49:54.172 info Stop script script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2 javascript.1 2019-08-27 16:49:54.172 info Stop script script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2
-
@liv-in-sky okay. Und wenn du eine Zeile vorher das ein fügst:
console.log(resp.headers);
-
@thewhobox sagte in Adapter: ioBroker.unifi:
console.log(resp.headers);
war nicht sicher - einmal vor und einmal nach "if(resp...) - habe es zweimal eingesetzt
web.1 2019-08-27 16:53:10.916 info <==Disconnect system.user.admin from ::ffff:192.168.178.42 vis.0 javascript.2 2019-08-27 16:53:07.278 info script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: login: Login war erfolgreich! javascript.2 2019-08-27 16:53:07.278 info script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: undefined javascript.2 2019-08-27 16:53:07.278 info script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: undefined javascript.2 2019-08-27 16:53:07.277 info script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: login: got response javascript.2 2019-08-27 16:53:06.987 info script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: registered 0 subscriptions and 0 schedules javascript.2 2019-08-27 16:53:06.987 info script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: need to login javascript.2 2019-08-27 16:53:06.987 info script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: start set wifi javascript.2 2019-08-27 16:53:06.987 info script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: starting test javascript.2 2019-08-27 16:53:06.987 info Start javascript script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2 javascript.2 2019-08-27 16:53:06.037 info Stop script script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2
-
@liv-in-sky Okay, war egal ob davor oder danach Aber jetzt weiß ich woran es liegt.
Ersetz mal die Funktion login durch folgende:async function login() { return new Promise(async (resolve, reject) => { let resp = await request.post({ url: unifi_controller + "/api/login", body: JSON.stringify({ username: unifi_username, password: unifi_password }), headers: { 'Content-Type': 'application/json' } }).catch((e) => { console.log("login: reject"), reject(e) }); console.log("login: got response") if(resp != null) { console.log("login: Login war erfolgreich!"); if(resp.headers && resp.headers.hasOwnProperty("set-cookie")) { let set_cookies = resp.headers["set-cookie"]; console.log("set_cookies: ", typeof set_cookies); console.log("set_cookies: ", set_cookies); for(i = 0; i < set_cookies.length; i++) { let cookie = set_cookies[i]; cookie = cookie.split(";")[0]; cookies.push(cookie); } console.log("login: Cookies: " + JSON.stringify(cookies)); } else { console.log("login: no cookies to set!") } loggedIn = true; console.log("login: resolved") resolve(); } else { console.log("login: rejected") reject("resp = null"); } }); }
-
-
@liv-in-sky Okay und ersetze mal die Testfunktion durch:
async function test() { console.log("starting test"); await setWifi(true).catch((e) => console.log("reject1: " + e)); console.log("getting status"); let wlan = await getStatus().catch((e) => console.log("reject2 " + e)); console.log("fin") console.log(wlan); }
-
-
@liv-in-sky Okay, denke ich weiß langsam wo das hinführt. Setzt bitte nochmal ein
console.log(resp);
vorconsole.log("login: got response")
-
-
@liv-in-sky Jetzt fallen mir zwei optionen ein:
setWifi ersetzten
Wenn das nicht klappt, mal in der test funktion als erstes
await logout();
-
-
@liv-in-sky Hast das mit setwifi ersetzen probiert?
Hier nochmal das ganze Skript
-
-
@liv-in-sky Okay danke fürs Ausprobieren. Ich weiß jetzt wo der Fehler liegt, muss aber erstmal schauen wie ich das Problem löse. Ich melde mich später nochmal
-
@thewhobox geht klar - bin eh beeindruckt, wie du das ohne testobject alles schreiben kannst
-
@liv-in-sky Ach das geht schon^^
Noch ganz kurz, was wenn du das mal probierst?
-
frage : sollte der aufruf getStatus(); noch funktionieren oder müßte man auch einen anderen aufruf machen - das ging ja schon mal aber jetzt nicht mehr
das log ist mit deinem neuen file - ohne getStatus() - war nur eine frage
-
@liv-in-sky sagte in Adapter: ioBroker.unifi:
login: got response: {"statusCode":200,"body":"{\
Könntest du davon mir die komplette Zeile schicken?
Also momentan funktioniert das speichern des Cookies nicht, deswegen geht getStatus und setWifi nicht.
-
javascript.2 script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: login: got response: {"statusCode":200,"body":"{\"meta\":{\"rc\":\"ok\"},\"data\":[]}","headers":{"vary":"Origin","access-control-allow-credentials":"true","access-control-expose-headers":"Access-Control-Allow-Origin,Access-Control-Allow-Credentials","set-cookie":["unifises=7Eqk0YywPeNtHf5nKKMdWmNAqRhSyR8Q; Path=/; Secure; HttpOnly","csrf_token=HlhrzcVRNkyp4CpUYN2pRQAvYzwK6p6U; Path=/; Secure"],"x-frame-options":"DENY","content-type":"application/json;charset=UTF-8","content-length":"30","date":"Tue, 27 Aug 2019 15:27:36 GMT","connection":"close"},"request":{"uri":{"protocol":"https:","slashes":true,"auth":null,"host":"192.168.178.157:8443","port":"8443","hostname":"192.168.178.157","hash":null,"search":null,"query":null,"pathname":"/api/login","path":"/api/login","href":"https://192.168.178.157:8443/api/login"},"method":"POST","headers":{"Content-Type":"application/json","content-length":40}}}
alles