Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Adapter: ioBroker.unifi

    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

    Adapter: ioBroker.unifi

    This topic has been deleted. Only users with topic management privileges can see it.
    • thewhobox
      thewhobox @liv-in-sky last edited by thewhobox

      @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.

      const request = require('request-promise-native').defaults({ rejectUnauthorized: false });
      const unifi_username = "user";
      const unifi_password = "pass";
      const unifi_controller = "https://192.168.x.xx:xxxx";
      const wifi_id = "dsa4fsda6g46fdsg984";
      let cookies = [];
      let loggedIn = false;
      
      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!");
                  let set_cookies = resp.headers["set-cookie"];
                  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));
                  loggedIn = true;
                  console.log("login: resolved")
                  resolve();
              } else {
                  console.log("login: rejected")
                  reject("resp = null");
              }
          });
      }
      
      async function getStatus() {
          return new Promise(async (resolve, reject) => {
              if(!loggedIn) await login().catch((e) => reject(e));
              let resp = await request.get({
                  url: unifi_controller + "/api/s/default/rest/wlanconf/" + wifi_id,
                  headers: { Cookie: cookies.join("; ") }
              }).catch((e) => reject(e));
          
              if(resp != null && resp.statusCode == 200) {
                  console.log("Status erfolgreich geholt!");
                  console.log(resp);
                  let status = JSON.parse(resp);
                  let wlanOn = status.data[0].enabled;
                  console.log("WLAN ist: " + (wlanOn ? "an" : "aus"));
                  resolve(wlanOn);
              } else {
                  reject(JSON.parse(resp.body).meta.msg);
              }
          });
      }
      
      async function logout() {
          return new Promise(async (resolve, reject) => {
              if(!loggedIn) await login().catch((e) => reject(e));
              let resp = await request.get({
                  url: unifi_controller + "/logout",
                  headers: { Cookie: cookies.join("; ") }
              }).catch((e) => reject(e));
              if(resp != null) {
                  console.log("Du bist nun ausgeloggt.");
                  console.log(resp);
                  resolve();
              } else {
                  reject("resp = null");
              }
          });
      }
      
      async function setWifi(enabled) {
          return new Promise(async (resolve, reject) => {
              console.log("setWifi: start set wifi");
              if(!loggedIn) { console.log("need to login"); await login().catch((e) => reject(e)); }
              console.log("setWifi: now setting wifi");
              let resp = request.post({
                  url: unifi_controller + "/api/s/default/rest/wlanconf/" + wifi_id,
                  body: JSON.stringify({ _id: "", enabled }),
                  headers: { 'Content-Type': 'application/json', Cookie: cookies.join("; ") }
              }).catch((e) => { console.log("setWifi: rejected"); reject(e) });
              console.log("setWifi: got response")
              if(resp != null && resp.statusCode == 200) {
                  console.log("setWifi: Wifi wurde erfolgreich " + (enabled ? "eingeschaltet" : "ausgeschaltet"));
                  console.log(resp);
                  resolve();
              } else {
                  console.log("setWifi: rejetced")
                  reject(JSON.parse(resp.body).meta.msg);
              }
          });
      }
      
      async function test() {
          console.log("starting test");
          await setWifi(true).catch((e) => console.log("reject1"));
          console.log("getting status");
          let wlan = await getStatus().catch((e) => console.log("reject2"));
          console.log("fin")
          console.log(wlan);
      }
      
      test()
      

      liv-in-sky 1 Reply Last reply Reply Quote 0
      • liv-in-sky
        liv-in-sky @thewhobox last edited by liv-in-sky

        @thewhobox das glaub ich
        Image 15.png

        mehr kommt nicht

        thewhobox 1 Reply Last reply Reply Quote 0
        • thewhobox
          thewhobox @liv-in-sky last edited by

          @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);
          
          liv-in-sky 1 Reply Last reply Reply Quote 0
          • liv-in-sky
            liv-in-sky @thewhobox last edited by

            @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
            
            thewhobox 1 Reply Last reply Reply Quote 0
            • thewhobox
              thewhobox @liv-in-sky last edited by

              @liv-in-sky okay. Und wenn du eine Zeile vorher das ein fügst:

              console.log(resp.headers);
              
              liv-in-sky 1 Reply Last reply Reply Quote 0
              • liv-in-sky
                liv-in-sky @thewhobox last edited by liv-in-sky

                @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
                
                thewhobox 1 Reply Last reply Reply Quote 0
                • thewhobox
                  thewhobox @liv-in-sky last edited by

                  @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 1 Reply Last reply Reply Quote 0
                  • liv-in-sky
                    liv-in-sky @thewhobox last edited by

                    @thewhobox

                    javascript.2	2019-08-27 16:57:55.246	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: undefined
                    javascript.2	2019-08-27 16:57:55.245	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: fin
                    javascript.2	2019-08-27 16:57:55.245	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: reject2
                    javascript.2	2019-08-27 16:57:55.241	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: getting status
                    javascript.2	2019-08-27 16:57:55.241	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: reject1
                    javascript.2	2019-08-27 16:57:55.241	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: rejected
                    javascript.2	2019-08-27 16:57:55.235	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: rejetced
                    javascript.2	2019-08-27 16:57:55.235	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: got response
                    javascript.2	2019-08-27 16:57:55.235	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: now setting wifi
                    javascript.2	2019-08-27 16:57:55.235	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: login: resolved
                    javascript.2	2019-08-27 16:57:55.235	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: login: no cookies to set!
                    javascript.2	2019-08-27 16:57:55.235	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: login: Login war erfolgreich!
                    javascript.2	2019-08-27 16:57:55.234	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: login: got response
                    javascript.2	2019-08-27 16:57:54.937	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: registered 0 subscriptions and 0 schedules
                    javascript.2	2019-08-27 16:57:54.936	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: need to login
                    javascript.2	2019-08-27 16:57:54.936	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: start set wifi
                    javascript.2	2019-08-27 16:57:54.936	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: starting test
                    javascript.2	2019-08-27 16:57:54.936	info	Start javascript script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2
                    javascript.2	2019-08-27 16:57:54.906	info	Stop script script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2
                    js2fs.0	2019-08-27 16:57:54.890	info	Script file script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2 changed, also update in ioBroker
                    javascript.2	2019-08-27 16:57:53.197	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: undefined
                    javascript.2	2019-08-27 16:57:53.197	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: fin
                    javascript.2	2019-08-27 16:57:53.196	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: reject2
                    javascript.2	2019-08-27 16:57:53.192	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: getting status
                    javascript.2	2019-08-27 16:57:53.192	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: reject1
                    javascript.2	2019-08-27 16:57:53.192	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: rejected
                    javascript.2	2019-08-27 16:57:53.184	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: rejetced
                    javascript.2	2019-08-27 16:57:53.184	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: got response
                    javascript.2	2019-08-27 16:57:53.184	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: now setting wifi
                    javascript.2	2019-08-27 16:57:53.184	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: login: resolved
                    javascript.2	2019-08-27 16:57:53.184	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: login: no cookies to set!
                    javascript.2	2019-08-27 16:57:53.184	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: login: Login war erfolgreich!
                    javascript.2	2019-08-27 16:57:53.184	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: login: got response
                    javascript.2	2019-08-27 16:57:52.922	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: registered 0 subscriptions and 0 schedules
                    javascript.2	2019-08-27 16:57:52.922	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: need to login
                    javascript.2	2019-08-27 16:57:52.922	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: start set wifi
                    javascript.2	2019-08-27 16:57:52.922	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: starting test
                    javascript.2	2019-08-27 16:57:52.922	info	Start javascript script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2
                    javascript.1	2019-08-27 16:57:52.891	info	Stop script script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2
                    javascript.2	2019-08-27 16:57:52.890	info	Stop script script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2
                    javascript.0	2019-08-27 16:57:52.886	info	Stop script script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2
                    js2fs.0	2019-08-27 16:57:52.876	info	Script script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2 modified in ioBroker, write to file
                    

                    thewhobox 1 Reply Last reply Reply Quote 0
                    • thewhobox
                      thewhobox @liv-in-sky last edited by

                      @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 1 Reply Last reply Reply Quote 0
                      • liv-in-sky
                        liv-in-sky @thewhobox last edited by

                        @thewhobox

                        javascript.2	2019-08-27 17:02:52.211	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: undefined
                        javascript.2	2019-08-27 17:02:52.211	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: fin
                        javascript.2	2019-08-27 17:02:52.211	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: reject2 StatusCodeError: 401 - "{\"meta\":{\"rc\":\"error\",\"msg\":\"api.err.LoginRequired\"},\"data\":[]}"
                        javascript.2	2019-08-27 17:02:52.207	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: getting status
                        javascript.2	2019-08-27 17:02:52.207	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: reject1: StatusCodeError: 401 - "{\"meta\":{\"rc\":\"error\",\"msg\":\"api.err.LoginRequired\"},\"data\":[]}"
                        javascript.2	2019-08-27 17:02:52.207	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: rejected
                        javascript.2	2019-08-27 17:02:52.201	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: rejetced
                        javascript.2	2019-08-27 17:02:52.201	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: got response
                        javascript.2	2019-08-27 17:02:52.201	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: now setting wifi
                        javascript.2	2019-08-27 17:02:52.201	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: login: resolved
                        javascript.2	2019-08-27 17:02:52.201	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: login: no cookies to set!
                        javascript.2	2019-08-27 17:02:52.199	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: login: Login war erfolgreich!
                        javascript.2	2019-08-27 17:02:52.199	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: login: got response
                        javascript.2	2019-08-27 17:02:51.974	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: registered 0 subscriptions and 0 schedules
                        javascript.2	2019-08-27 17:02:51.974	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: need to login
                        javascript.2	2019-08-27 17:02:51.974	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: start set wifi
                        javascript.2	2019-08-27 17:02:51.974	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: starting test
                        javascript.2	2019-08-27 17:02:51.974	info	Start javascript script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2
                        javascript.2	2019-08-27 17:02:51.951	info	Stop script script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2
                        js2fs.0	2019-08-27 17:02:51.925	info	Script file script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2 changed, also update in ioBroker
                        javascript.2	2019-08-27 17:02:50.163	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: undefined
                        javascript.2	2019-08-27 17:02:50.163	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: fin
                        javascript.2	2019-08-27 17:02:50.162	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: reject2 StatusCodeError: 401 - "{\"meta\":{\"rc\":\"error\",\"msg\":\"api.err.LoginRequired\"},\"data\":[]}"
                        javascript.2	2019-08-27 17:02:50.158	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: getting status
                        javascript.2	2019-08-27 17:02:50.158	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: reject1: StatusCodeError: 401 - "{\"meta\":{\"rc\":\"error\",\"msg\":\"api.err.LoginRequired\"},\"data\":[]}"
                        javascript.2	2019-08-27 17:02:50.158	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: rejected
                        javascript.2	2019-08-27 17:02:50.151	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: rejetced
                        javascript.2	2019-08-27 17:02:50.151	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: got response
                        javascript.2	2019-08-27 17:02:50.151	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: now setting wifi
                        javascript.2	2019-08-27 17:02:50.151	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: login: resolved
                        javascript.2	2019-08-27 17:02:50.151	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: login: no cookies to set!
                        javascript.2	2019-08-27 17:02:50.151	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: login: Login war erfolgreich!
                        javascript.2	2019-08-27 17:02:50.151	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: login: got response
                        javascript.2	2019-08-27 17:02:49.932	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: registered 0 subscriptions and 0 schedules
                        javascript.2	2019-08-27 17:02:49.932	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: need to login
                        javascript.2	2019-08-27 17:02:49.932	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: start set wifi
                        javascript.2	2019-08-27 17:02:49.932	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: starting test
                        javascript.2	2019-08-27 17:02:49.932	info	Start javascript script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2
                        javascript.2	2019-08-27 17:02:49.922	info	Stop script script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2
                        javascript.1	2019-08-27 17:02:49.917	info	Stop script script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2
                        javascript.0	2019-08-27 17:02:49.909	info	Stop script script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2
                        js2fs.0	2019-08-27 17:02:49.907	info	Script script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2 modified in ioBroker, write to file
                        

                        thewhobox 1 Reply Last reply Reply Quote 0
                        • thewhobox
                          thewhobox @liv-in-sky last edited by

                          @liv-in-sky Okay, denke ich weiß langsam wo das hinführt. Setzt bitte nochmal ein console.log(resp); vor console.log("login: got response")

                          liv-in-sky 1 Reply Last reply Reply Quote 0
                          • liv-in-sky
                            liv-in-sky @thewhobox last edited by

                            @thewhobox

                            javascript.2	2019-08-27 17:07:30.007	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: undefined
                            javascript.2	2019-08-27 17:07:30.007	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: fin
                            javascript.2	2019-08-27 17:07:30.007	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: reject2 StatusCodeError: 401 - "{\"meta\":{\"rc\":\"error\",\"msg\":\"api.err.LoginRequired\"},\"data\":[]}"
                            javascript.2	2019-08-27 17:07:29.999	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: getting status
                            javascript.2	2019-08-27 17:07:29.999	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: reject1: StatusCodeError: 401 - "{\"meta\":{\"rc\":\"error\",\"msg\":\"api.err.LoginRequired\"},\"data\":[]}"
                            javascript.2	2019-08-27 17:07:29.998	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: rejected
                            javascript.2	2019-08-27 17:07:29.993	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: rejetced
                            javascript.2	2019-08-27 17:07:29.993	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: got response
                            javascript.2	2019-08-27 17:07:29.993	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: now setting wifi
                            javascript.2	2019-08-27 17:07:29.993	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: login: resolved
                            javascript.2	2019-08-27 17:07:29.992	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: login: no cookies to set!
                            javascript.2	2019-08-27 17:07:29.992	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: login: Login war erfolgreich!
                            javascript.2	2019-08-27 17:07:29.992	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: login: got response
                            javascript.2	2019-08-27 17:07:29.992	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: {"meta":{"rc":"ok"},"data":[]}
                            javascript.2	2019-08-27 17:07:29.738	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: registered 0 subscriptions and 0 schedules
                            javascript.2	2019-08-27 17:07:29.738	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: need to login
                            javascript.2	2019-08-27 17:07:29.738	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: start set wifi
                            javascript.2	2019-08-27 17:07:29.737	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: starting test
                            javascript.2	2019-08-27 17:07:29.737	info	Start javascript script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2
                            javascript.2	2019-08-27 17:07:29.707	info	Stop script script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2
                            js2fs.0	2019-08-27 17:07:29.689	info	Script file script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2 changed, also update in ioBroker
                            javascript.2	2019-08-27 17:07:27.950	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: undefined
                            javascript.2	2019-08-27 17:07:27.950	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: fin
                            javascript.2	2019-08-27 17:07:27.950	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: reject2 StatusCodeError: 401 - "{\"meta\":{\"rc\":\"error\",\"msg\":\"api.err.LoginRequired\"},\"data\":[]}"
                            javascript.2	2019-08-27 17:07:27.946	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: getting status
                            javascript.2	2019-08-27 17:07:27.946	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: reject1: StatusCodeError: 401 - "{\"meta\":{\"rc\":\"error\",\"msg\":\"api.err.LoginRequired\"},\"data\":[]}"
                            javascript.2	2019-08-27 17:07:27.945	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: rejected
                            javascript.2	2019-08-27 17:07:27.938	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: rejetced
                            javascript.2	2019-08-27 17:07:27.937	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: got response
                            javascript.2	2019-08-27 17:07:27.937	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: now setting wifi
                            javascript.2	2019-08-27 17:07:27.937	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: login: resolved
                            javascript.2	2019-08-27 17:07:27.937	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: login: no cookies to set!
                            javascript.2	2019-08-27 17:07:27.937	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: login: Login war erfolgreich!
                            javascript.2	2019-08-27 17:07:27.937	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: login: got response
                            javascript.2	2019-08-27 17:07:27.937	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: {"meta":{"rc":"ok"},"data":[]}
                            javascript.2	2019-08-27 17:07:27.698	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: registered 0 subscriptions and 0 schedules
                            javascript.2	2019-08-27 17:07:27.698	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: need to login
                            javascript.2	2019-08-27 17:07:27.698	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: start set wifi
                            javascript.2	2019-08-27 17:07:27.698	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: starting test
                            javascript.2	2019-08-27 17:07:27.698	info	Start javascript script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2
                            javascript.1	2019-08-27 17:07:27.691	info	Stop script script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2
                            javascript.0	2019-08-27 17:07:27.683	info	Stop script script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2
                            javascript.2	2019-08-27 17:07:27.680	info	Stop script script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2
                            js2fs.0	2019-08-27 17:07:27.673	info	Script script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2 modified in ioBroker, write to file
                            

                            thewhobox 1 Reply Last reply Reply Quote 0
                            • thewhobox
                              thewhobox @liv-in-sky last edited by

                              @liv-in-sky Jetzt fallen mir zwei optionen ein:
                              setWifi ersetzten

                              async function setWifi(enabled) {
                                 return new Promise(async (resolve, reject) => {
                                     console.log("setWifi: start set wifi");
                                     if(!loggedIn) { console.log("need to login"); await login().catch((e) => reject(e)); }
                                     console.log("setWifi: now setting wifi");
                                     let resp = request.post({
                                         url: unifi_controller + "/api/s/default/rest/wlanconf/" + wifi_id,
                                         body: JSON.stringify({ _id: "", enabled }),
                                         headers: { 'Content-Type': 'application/json', Cookie: cookies.join("; ") }
                                     }).catch((e) => { console.log("setWifi: rejected: " + e); reject(e) });
                                     console.log("setWifi: got response")
                                     if(resp != null && resp.statusCode == 200) {
                                         console.log("setWifi: Wifi wurde erfolgreich " + (enabled ? "eingeschaltet" : "ausgeschaltet"));
                                         console.log(resp);
                                         resolve();
                                     } else {
                                         console.log("setWifi: rejetced")
                                         console.log("resp: " + JSON.stringify(resp));
                                         reject("msg: " + JSON.parse(resp.body).meta.msg);
                                     }
                                 });
                              }
                              

                              Wenn das nicht klappt, mal in der test funktion als erstes

                              await logout();
                              
                              liv-in-sky 1 Reply Last reply Reply Quote 0
                              • liv-in-sky
                                liv-in-sky @thewhobox last edited by

                                @thewhobox sagte in Adapter: ioBroker.unifi:

                                await logout();

                                javascript.2	2019-08-27 17:10:52.965	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: undefined
                                javascript.2	2019-08-27 17:10:52.964	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: fin
                                javascript.2	2019-08-27 17:10:52.964	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: reject2 StatusCodeError: 401 - "{\"meta\":{\"rc\":\"error\",\"msg\":\"api.err.LoginRequired\"},\"data\":[]}"
                                javascript.2	2019-08-27 17:10:52.956	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: getting status
                                javascript.2	2019-08-27 17:10:52.956	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: reject1: StatusCodeError: 401 - "{\"meta\":{\"rc\":\"error\",\"msg\":\"api.err.LoginRequired\"},\"data\":[]}"
                                javascript.2	2019-08-27 17:10:52.956	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: rejected
                                javascript.2	2019-08-27 17:10:52.948	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: rejetced
                                javascript.2	2019-08-27 17:10:52.948	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: got response
                                javascript.2	2019-08-27 17:10:52.948	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: now setting wifi
                                javascript.2	2019-08-27 17:10:52.948	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: start set wifi
                                javascript.2	2019-08-27 17:10:52.948	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: starting test
                                javascript.2	2019-08-27 17:10:52.947	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: <!DOCTYPE html><html lang="en" ng-controller="ManageController as manageCtrl" ng-strict-di><head><meta charset="utf-8"><title ng-bind="manageCtrl.system.g
                                javascript.2	2019-08-27 17:10:52.947	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: Du bist nun ausgeloggt.
                                javascript.2	2019-08-27 17:10:52.926	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: login: resolved
                                javascript.2	2019-08-27 17:10:52.925	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: login: no cookies to set!
                                javascript.2	2019-08-27 17:10:52.925	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: login: Login war erfolgreich!
                                javascript.2	2019-08-27 17:10:52.925	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: login: got response
                                javascript.2	2019-08-27 17:10:52.925	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: {"meta":{"rc":"ok"},"data":[]}
                                javascript.2	2019-08-27 17:10:52.706	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: registered 0 subscriptions and 0 schedules
                                javascript.2	2019-08-27 17:10:52.705	info	Start javascript script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2
                                javascript.2	2019-08-27 17:10:52.685	info	Stop script script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2
                                js2fs.0	2019-08-27 17:10:52.663	info	Script file script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2 changed, also update in ioBroker
                                javascript.2	2019-08-27 17:10:50.957	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: undefined
                                javascript.2	2019-08-27 17:10:50.957	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: fin
                                javascript.2	2019-08-27 17:10:50.956	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: reject2 StatusCodeError: 401 - "{\"meta\":{\"rc\":\"error\",\"msg\":\"api.err.LoginRequired\"},\"data\":[]}"
                                javascript.2	2019-08-27 17:10:50.952	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: getting status
                                javascript.2	2019-08-27 17:10:50.951	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: reject1: StatusCodeError: 401 - "{\"meta\":{\"rc\":\"error\",\"msg\":\"api.err.LoginRequired\"},\"data\":[]}"
                                javascript.2	2019-08-27 17:10:50.951	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: rejected
                                javascript.2	2019-08-27 17:10:50.944	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: rejetced
                                javascript.2	2019-08-27 17:10:50.944	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: got response
                                javascript.2	2019-08-27 17:10:50.944	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: now setting wifi
                                javascript.2	2019-08-27 17:10:50.944	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: start set wifi
                                javascript.2	2019-08-27 17:10:50.944	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: starting test
                                javascript.2	2019-08-27 17:10:50.944	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: <!DOCTYPE html><html lang="en" ng-controller="ManageController as manageCtrl" ng-strict-di><head><meta charset="utf-8"><title ng-bind="manageCtrl.system.g
                                javascript.2	2019-08-27 17:10:50.944	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: Du bist nun ausgeloggt.
                                javascript.2	2019-08-27 17:10:50.919	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: login: resolved
                                javascript.2	2019-08-27 17:10:50.919	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: login: no cookies to set!
                                javascript.2	2019-08-27 17:10:50.919	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: login: Login war erfolgreich!
                                javascript.2	2019-08-27 17:10:50.919	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: login: got response
                                javascript.2	2019-08-27 17:10:50.918	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: {"meta":{"rc":"ok"},"data":[]}
                                javascript.2	2019-08-27 17:10:50.667	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: registered 0 subscriptions and 0 schedules
                                javascript.2	2019-08-27 17:10:50.667	info	Start javascript script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2
                                javascript.2	2019-08-27 17:10:50.657	info	Stop script script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2
                                javascript.0	2019-08-27 17:10:50.656	info	Stop script script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2
                                javascript.1	2019-08-27 17:10:50.653	info	Stop script script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2
                                js2fs.0	2019-08-27 17:10:50.648	info	Script script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2 modified in ioBroker, write to file
                                

                                thewhobox 1 Reply Last reply Reply Quote 0
                                • thewhobox
                                  thewhobox @liv-in-sky last edited by thewhobox

                                  @liv-in-sky Hast das mit setwifi ersetzen probiert?
                                  Hier nochmal das ganze Skript

                                  const request = require('request-promise-native').defaults({ rejectUnauthorized: false });
                                  const unifi_username = "user";
                                  const unifi_password = "pass";
                                  const unifi_controller = "https://192.168.x.xx:xxxx";
                                  const wifi_id = "dsa4fsda6g46fdsg984";
                                  let cookies = [];
                                  let loggedIn = false;
                                  
                                  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: " + JSON.stringify(resp))
                                         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");
                                         }
                                     });
                                  }
                                  
                                  async function getStatus() {
                                     return new Promise(async (resolve, reject) => {
                                         if(!loggedIn) await login().catch((e) => reject(e));
                                         let resp = await request.get({
                                             url: unifi_controller + "/api/s/default/rest/wlanconf/" + wifi_id,
                                             headers: { Cookie: cookies.join("; ") }
                                         }).catch((e) => reject(e));
                                     
                                         if(resp != null && resp.statusCode == 200) {
                                             console.log("Status erfolgreich geholt!");
                                             console.log(resp);
                                             let status = JSON.parse(resp);
                                             let wlanOn = status.data[0].enabled;
                                             console.log("WLAN ist: " + (wlanOn ? "an" : "aus"));
                                             resolve(wlanOn);
                                         } else {
                                             reject(JSON.parse(resp.body).meta.msg);
                                         }
                                     });
                                  }
                                  
                                  async function logout() {
                                     return new Promise(async (resolve, reject) => {
                                         let resp = await request.get({
                                             url: unifi_controller + "/logout",
                                             headers: { Cookie: cookies.join("; ") }
                                         }).catch((e) => reject(e));
                                         if(resp != null) {
                                             console.log("Du bist nun ausgeloggt.");
                                             console.log(resp);
                                             resolve();
                                         } else {
                                             reject("resp = null");
                                         }
                                     });
                                  }
                                  
                                  async function setWifi(enabled) {
                                     return new Promise(async (resolve, reject) => {
                                         console.log("setWifi: start set wifi");
                                         if(!loggedIn) { console.log("need to login"); await login().catch((e) => reject(e)); }
                                         console.log("setWifi: now setting wifi");
                                         let resp = request.post({
                                             url: unifi_controller + "/api/s/default/rest/wlanconf/" + wifi_id,
                                             body: JSON.stringify({ _id: "", enabled }),
                                             headers: { 'Content-Type': 'application/json' }
                                         }).catch((e) => { console.log("setWifi: rejected: " + e); reject(e) });
                                         console.log("setWifi: got response")
                                         if(resp != null && resp.statusCode == 200) {
                                             console.log("setWifi: Wifi wurde erfolgreich " + (enabled ? "eingeschaltet" : "ausgeschaltet"));
                                             console.log(resp);
                                             resolve();
                                         } else {
                                             console.log("setWifi: rejetced")
                                             console.log("resp: " + JSON.stringify(resp));
                                             reject("msg: " + JSON.parse(resp.body).meta.msg);
                                         }
                                     });
                                  }
                                  
                                  async function test() {
                                     await logout();
                                     console.log("starting test");
                                     await setWifi(true).catch((e) => console.log("reject1"));
                                     console.log("getting status");
                                     let wlan = await getStatus().catch((e) => console.log("reject2"));
                                     console.log("fin")
                                     console.log(wlan);
                                  }
                                  
                                  test()
                                  

                                  liv-in-sky 1 Reply Last reply Reply Quote 0
                                  • liv-in-sky
                                    liv-in-sky @thewhobox last edited by

                                    @thewhobox

                                    mit dem ganzen script von eben

                                    javascript.2	2019-08-27 17:16:56.397	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: undefined
                                    javascript.2	2019-08-27 17:16:56.397	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: fin
                                    javascript.2	2019-08-27 17:16:56.397	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: reject2
                                    javascript.2	2019-08-27 17:16:56.393	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: getting status
                                    javascript.2	2019-08-27 17:16:56.393	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: reject1
                                    javascript.2	2019-08-27 17:16:56.393	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: rejected: StatusCodeError: 401 - "{\"meta\":{\"rc\":\"error\",\"msg\":\"api.err.LoginRequired\"},\"data\":[]}"
                                    javascript.2	2019-08-27 17:16:56.387	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: resp: {}
                                    javascript.2	2019-08-27 17:16:56.387	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: rejetced
                                    javascript.2	2019-08-27 17:16:56.387	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: got response
                                    javascript.2	2019-08-27 17:16:56.387	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: now setting wifi
                                    javascript.2	2019-08-27 17:16:56.387	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: login: resolved
                                    javascript.2	2019-08-27 17:16:56.387	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: login: got response: "{\"meta\":{\"rc\":\"ok\"},\"data\":[]}"
                                    javascript.2	2019-08-27 17:16:56.089	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: need to login
                                    javascript.2	2019-08-27 17:16:56.089	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: start set wifi
                                    javascript.2	2019-08-27 17:16:56.089	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: starting test
                                    javascript.2	2019-08-27 17:16:56.089	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: <!DOCTYPE html><html lang="en" ng-controller="ManageController as manageCtrl" ng-strict-di><head><meta charset="utf-8"><title ng-bind="manageCtrl.system.g
                                    javascript.2	2019-08-27 17:16:56.089	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: Du bist nun ausgeloggt.
                                    javascript.2	2019-08-27 17:16:56.069	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: registered 0 subscriptions and 0 schedules
                                    javascript.2	2019-08-27 17:16:56.069	info	Start javascript script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2
                                    javascript.2	2019-08-27 17:16:56.047	info	Stop script script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2
                                    js2fs.0	2019-08-27 17:16:56.024	info	Script file script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2 changed, also update in ioBroker
                                    javascript.2	2019-08-27 17:16:54.357	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: undefined
                                    javascript.2	2019-08-27 17:16:54.357	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: fin
                                    javascript.2	2019-08-27 17:16:54.357	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: reject2
                                    javascript.2	2019-08-27 17:16:54.350	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: getting status
                                    javascript.2	2019-08-27 17:16:54.350	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: reject1
                                    javascript.2	2019-08-27 17:16:54.350	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: rejected: StatusCodeError: 401 - "{\"meta\":{\"rc\":\"error\",\"msg\":\"api.err.LoginRequired\"},\"data\":[]}"
                                    javascript.2	2019-08-27 17:16:54.342	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: resp: {}
                                    javascript.2	2019-08-27 17:16:54.342	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: rejetced
                                    javascript.2	2019-08-27 17:16:54.342	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: got response
                                    javascript.2	2019-08-27 17:16:54.341	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: now setting wifi
                                    javascript.2	2019-08-27 17:16:54.341	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: login: resolved
                                    javascript.2	2019-08-27 17:16:54.341	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: login: got response: "{\"meta\":{\"rc\":\"ok\"},\"data\":[]}"
                                    javascript.2	2019-08-27 17:16:54.057	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: need to login
                                    javascript.2	2019-08-27 17:16:54.057	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: start set wifi
                                    javascript.2	2019-08-27 17:16:54.057	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: starting test
                                    javascript.2	2019-08-27 17:16:54.056	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: <!DOCTYPE html><html lang="en" ng-controller="ManageController as manageCtrl" ng-strict-di><head><meta charset="utf-8"><title ng-bind="manageCtrl.system.g
                                    javascript.2	2019-08-27 17:16:54.056	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: Du bist nun ausgeloggt.
                                    javascript.2	2019-08-27 17:16:54.037	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: registered 0 subscriptions and 0 schedules
                                    javascript.2	2019-08-27 17:16:54.037	info	Start javascript script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2
                                    javascript.2	2019-08-27 17:16:54.025	info	Stop script script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2
                                    javascript.1	2019-08-27 17:16:54.021	info	Stop script script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2
                                    javascript.0	2019-08-27 17:16:54.015	info	Stop script script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2
                                    

                                    thewhobox 1 Reply Last reply Reply Quote 0
                                    • thewhobox
                                      thewhobox @liv-in-sky last edited by

                                      @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

                                      liv-in-sky 1 Reply Last reply Reply Quote 0
                                      • liv-in-sky
                                        liv-in-sky @thewhobox last edited by

                                        @thewhobox geht klar - bin eh beeindruckt, wie du das ohne testobject alles schreiben kannst

                                        thewhobox 1 Reply Last reply Reply Quote 0
                                        • thewhobox
                                          thewhobox @liv-in-sky last edited by

                                          @liv-in-sky Ach das geht schon^^
                                          Noch ganz kurz, was wenn du das mal probierst?

                                          const request = require('request-promise-native').defaults({ rejectUnauthorized: false });
                                          const unifi_username = "user";
                                          const unifi_password = "pass";
                                          const unifi_controller = "https://192.168.x.xx:xxxx";
                                          const wifi_id = "dsa4fsda6g46fdsg984";
                                          let cookies = [];
                                          let loggedIn = false;
                                          
                                          async function login() {
                                             return new Promise(async (resolve, reject) => {
                                                 let resp = await request.post({
                                                     resolveWithFullResponse: true,
                                                     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: " + JSON.stringify(resp))
                                                 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");
                                                 }
                                             });
                                          }
                                          
                                          async function getStatus() {
                                             return new Promise(async (resolve, reject) => {
                                                 if(!loggedIn) await login().catch((e) => reject(e));
                                                 let resp = await request.get({
                                                     url: unifi_controller + "/api/s/default/rest/wlanconf/" + wifi_id,
                                                     headers: { Cookie: cookies.join("; ") }
                                                 }).catch((e) => reject(e));
                                             
                                                 if(resp != null && resp.statusCode == 200) {
                                                     console.log("Status erfolgreich geholt!");
                                                     console.log(resp);
                                                     let status = JSON.parse(resp);
                                                     let wlanOn = status.data[0].enabled;
                                                     console.log("WLAN ist: " + (wlanOn ? "an" : "aus"));
                                                     resolve(wlanOn);
                                                 } else {
                                                     reject(JSON.parse(resp.body).meta.msg);
                                                 }
                                             });
                                          }
                                          
                                          async function logout() {
                                             return new Promise(async (resolve, reject) => {
                                                 let resp = await request.get({
                                                     url: unifi_controller + "/logout",
                                                     headers: { Cookie: cookies.join("; ") }
                                                 }).catch((e) => reject(e));
                                                 if(resp != null) {
                                                     console.log("Du bist nun ausgeloggt.");
                                                     console.log(resp);
                                                     resolve();
                                                 } else {
                                                     reject("resp = null");
                                                 }
                                             });
                                          }
                                          
                                          async function setWifi(enabled) {
                                             return new Promise(async (resolve, reject) => {
                                                 console.log("setWifi: start set wifi");
                                                 if(!loggedIn) { console.log("need to login"); await login().catch((e) => reject(e)); }
                                                 console.log("setWifi: now setting wifi");
                                                 let resp = request.post({
                                                     url: unifi_controller + "/api/s/default/rest/wlanconf/" + wifi_id,
                                                     body: JSON.stringify({ _id: "", enabled }),
                                                     headers: { 'Content-Type': 'application/json' }
                                                 }).catch((e) => { console.log("setWifi: rejected: " + e); reject(e) });
                                                 console.log("setWifi: got response")
                                                 if(resp != null && resp.statusCode == 200) {
                                                     console.log("setWifi: Wifi wurde erfolgreich " + (enabled ? "eingeschaltet" : "ausgeschaltet"));
                                                     console.log(resp);
                                                     resolve();
                                                 } else {
                                                     console.log("setWifi: rejetced")
                                                     console.log("resp: " + JSON.stringify(resp));
                                                     reject("msg: " + JSON.parse(resp.body).meta.msg);
                                                 }
                                             });
                                          }
                                          
                                          async function test() {
                                             await logout();
                                             console.log("starting test");
                                             await setWifi(true).catch((e) => console.log("reject1"));
                                             console.log("getting status");
                                             let wlan = await getStatus().catch((e) => console.log("reject2"));
                                             console.log("fin")
                                             console.log(wlan);
                                          }
                                          
                                          test()
                                          

                                          liv-in-sky 1 Reply Last reply Reply Quote 0
                                          • liv-in-sky
                                            liv-in-sky @thewhobox last edited by liv-in-sky

                                            @thewhobox

                                            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

                                            javascript.2	2019-08-27 17:27:36.644	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: getting status
                                            javascript.2	2019-08-27 17:27:36.644	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: reject1
                                            javascript.2	2019-08-27 17:27:36.644	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: rejected: StatusCodeError: 401 - "{\"meta\":{\"rc\":\"error\",\"msg\":\"api.err.LoginRequired\"},\"data\":[]}"
                                            javascript.2	2019-08-27 17:27:36.639	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: resp: {}
                                            javascript.2	2019-08-27 17:27:36.638	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: rejetced
                                            javascript.2	2019-08-27 17:27:36.638	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: got response
                                            javascript.2	2019-08-27 17:27:36.638	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: now setting wifi
                                            javascript.2	2019-08-27 17:27:36.638	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: login: resolved
                                            javascript.2	2019-08-27 17:27:36.638	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: login: Cookies: ["unifises=7Eqk0YywPeNtHf5nKKMdWmNAqRhSyR8Q","csrf_token=HlhrzcVRNkyp4CpUYN2pRQAvYzwK6p6U"]
                                            javascript.2	2019-08-27 17:27:36.638	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: set_cookies:
                                            javascript.2	2019-08-27 17:27:36.638	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: set_cookies:
                                            javascript.2	2019-08-27 17:27:36.638	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: login: Login war erfolgreich!
                                            javascript.2	2019-08-27 17:27:36.638	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: login: got response: {"statusCode":200,"body":"{\"meta\":{\"rc\":\"ok\"},\"data\":[]}","headers":{"vary":"Origin","access-control-allow-credentials":"true
                                            javascript.2	2019-08-27 17:27:36.376	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: need to login
                                            javascript.2	2019-08-27 17:27:36.376	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: start set wifi
                                            javascript.2	2019-08-27 17:27:36.376	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: starting test
                                            javascript.2	2019-08-27 17:27:36.376	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: <!DOCTYPE html><html lang="en" ng-controller="ManageController as manageCtrl" ng-strict-di><head><meta charset="utf-8"><title ng-bind="manageCtrl.system.g
                                            javascript.2	2019-08-27 17:27:36.376	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: Du bist nun ausgeloggt.
                                            javascript.2	2019-08-27 17:27:36.356	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: registered 0 subscriptions and 0 schedules
                                            javascript.2	2019-08-27 17:27:36.355	info	Start javascript script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2
                                            javascript.2	2019-08-27 17:27:36.326	info	Stop script script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2
                                            js2fs.0	2019-08-27 17:27:36.308	info	Script file script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2 changed, also update in ioBroker
                                            javascript.2	2019-08-27 17:27:34.580	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: getting status
                                            javascript.2	2019-08-27 17:27:34.580	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: reject1
                                            javascript.2	2019-08-27 17:27:34.580	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: rejected: StatusCodeError: 401 - "{\"meta\":{\"rc\":\"error\",\"msg\":\"api.err.LoginRequired\"},\"data\":[]}"
                                            javascript.2	2019-08-27 17:27:34.574	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: resp: {}
                                            javascript.2	2019-08-27 17:27:34.574	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: rejetced
                                            javascript.2	2019-08-27 17:27:34.574	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: got response
                                            javascript.2	2019-08-27 17:27:34.574	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: now setting wifi
                                            javascript.2	2019-08-27 17:27:34.574	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: login: resolved
                                            javascript.2	2019-08-27 17:27:34.574	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: login: Cookies: ["unifises=3qzciQyP04QRdIr9SC4MbgTL5c1fukGH","csrf_token=YHgpqCYp6XK2hDHth01oMxtsWJQaHnnj"]
                                            javascript.2	2019-08-27 17:27:34.574	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: set_cookies:
                                            javascript.2	2019-08-27 17:27:34.574	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: set_cookies:
                                            javascript.2	2019-08-27 17:27:34.574	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: login: Login war erfolgreich!
                                            javascript.2	2019-08-27 17:27:34.573	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: login: got response: {"statusCode":200,"body":"{\"meta\":{\"rc\":\"ok\"},\"data\":[]}","headers":{"vary":"Origin","access-control-allow-credentials":"true
                                            javascript.2	2019-08-27 17:27:34.333	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: need to login
                                            javascript.2	2019-08-27 17:27:34.333	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: setWifi: start set wifi
                                            javascript.2	2019-08-27 17:27:34.333	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: starting test
                                            javascript.2	2019-08-27 17:27:34.332	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: <!DOCTYPE html><html lang="en" ng-controller="ManageController as manageCtrl" ng-strict-di><head><meta charset="utf-8"><title ng-bind="manageCtrl.system.g
                                            javascript.2	2019-08-27 17:27:34.332	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: Du bist nun ausgeloggt.
                                            javascript.2	2019-08-27 17:27:34.313	info	script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2: registered 0 subscriptions and 0 schedules
                                            javascript.2	2019-08-27 17:27:34.313	info	Start javascript script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2
                                            javascript.0	2019-08-27 17:27:34.308	info	Stop script script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2
                                            javascript.2	2019-08-27 17:27:34.300	info	Stop script script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2
                                            javascript.1	2019-08-27 17:27:34.296	info	Stop script script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2
                                            js2fs.0	2019-08-27 17:27:34.291	info	Script script.js.Armin_Schalter.ALLERLEI.UnifiWLAN2 modified in ioBroker, write to file
                                            

                                            das log ist mit deinem neuen file - ohne getStatus() - war nur eine frage

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            793
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            unifi
                                            170
                                            998
                                            311017
                                            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