NEWS
Adapter: ioBroker.unifi
-
@thewhobox da stimmt was nicht mit dem upgedaten file
-
@liv-in-sky Habs korrigiert.
-
@thewhobox compiler fehler bei der
asynch function test() { await setWifi(true); let isWlanOn = await getStatus(); }
sollte woh async heißen
-
@liv-in-sky wenn ich test() aufrufe passiert nix
-
@liv-in-sky Jap, das liegt daran, dass ich zuwenig geschlafen habe^^
Ich korrigiere das gleich. -
@thewhobox mach dir keinen stress @dslraser und ich sind froh, dass du dich darum kümmerst - wir testen solange, bis es läuft
-
@liv-in-sky Okay, dankeschön Wenn du magst kannst es testen. Hab es oben aktualisiert.
-
compiler fehler - await irgendwas
-
@liv-in-sky Na gut. Jetzt müsste es aber funktionieren
-
@thewhobox
ich bin noch unterwegs, teste aber gern heute Abend mit.
Mein Ziel ist eigentlich Blockly, da ich das einigermaßen kann. Das heißt, ich würde gern den Status in einen eigenen Datenpunkt schreiben (reicht beim Abruf) und die an und ausschalten Funktion in Blockly haben.
Also müsste man in Blockly mehrere (3) Funktionen hernehmen und da dann Deinen Code reinpacken ?
Von da aus kann ich es dann ja weiter verarbeiten. -
@dslraser In Blockly wird das schwer bis unmöglich, da es dort keine möglichkeit für asynchrone Funktionen gibt.
Du kannst den Code aber ganz leicht anpassen wie zum Beispiel:on("javascript.0.turnWifiOn", (state) => { setWifi(true); });
-
bin wiedr aktiv - compiler fehler ist weg aber es wird nichts geschalten - auch der status allein wird nicht wiedergegeben
es kommt nur noch login war erfolgreich - bei allen drei möglichkeiten
bei aufruf der test function kommen dann 2 logins -
@liv-in-sky Ist leider blöd, wenn ich das hier selbst nicht testen kann. Kannst du das mal kurz testen? Hab mal mehr debug logs eingebaut.
-
@thewhobox das glaub ich
mehr kommt nicht
-
@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"); } }); }
-