Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Unifi WLAN Script 2 mit Anwesenheitskontrolle

    NEWS

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

    Unifi WLAN Script 2 mit Anwesenheitskontrolle

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

      @liv-in-sky

      Ich habe ein Problem und zwar wird ein iphone das im Gastnetzwerk (Kripobeobachtungswagen47) nicht unter wifi_client_states aufgeführt.

      In der VIS taucht es aber auf. Könnte es daran liegen das beide iphone heißen?

      A7A682F6-EDDA-4E96-8FD7-E81AE7198D98.jpeg

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

        @saeft_2003 doppelte namen - könnte ein thema sein - alias im unifi controller vergeben ?

        S 2 Replies Last reply Reply Quote 1
        • S
          saeft_2003 Most Active @liv-in-sky last edited by

          @liv-in-sky

          Schau ich nachher nach und meld mich noch mal

          1 Reply Last reply Reply Quote 0
          • S
            saeft_2003 Most Active @liv-in-sky last edited by

            @liv-in-sky

            Ich hab einen Alias vergeben und nun taucht es auch unter wifi_client_state auf! Vielen Dank

            1 Reply Last reply Reply Quote 0
            • A
              aleks-83 last edited by

              Ich würde gerne wissen wie man unabhängig von diesem Skript ein WLAN ein- und ausschalten kann.
              Kann ich einen Datenpunkt des Adapters schalten? Kann ich eine URL aufrufen?
              Das habe ich im Skript unter SET WIFIS - WIFI EIN-AUSSCHALTEN nicht gefunden.

              Das Skript selbst kann ich leider nicht verwenden da ich einige Datenpunkte brauche (tx_rate, tx_bytes...) die es nur im Adapter gibt.

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

                @aleks-83

                hier sehr "quick and dirty" zusammenkopiert - bei mir geht es

                macht unter javascript.x datenpunkte, die geschalten werden können - ansonsten musst du oben im script deine daten eingeben

                
                const unifi_username = "username";
                const unifi_password = "password";
                const unifi_controller = "https://192.168.178.157:8443";
                
                let siteName ="default";   //Site name 
                
                let cookies = [];
                const dpPrefix = "javascript."+ instance +".";
                const request = require('request-promise-native').defaults({ rejectUnauthorized: false });
                let loggedIn = false;
                let wifiDPs = [];
                let testerrws;
                let debug = false;
                
                // DEFINITION der zu anzeigenden Netzwerke am besten bis auf id und smart alle gleich setzen
                const wifis = {
                  "WLAN_DragonRoot1": { name: "WLAN_DragonRoot1",         id: "5caxxxxxxxd7e5381", desc: "WLAN_DragonRoot1" } ,
                  "WLAN_DragonRootGuest": { name: "WLAN_DragonRootGuest", id: "5d65xxxxxedd761", desc: "WLAN_DragonRootGuest" }
                }
                
                for(let wifi_name in wifis) {
                    wifiDPs.push(dpPrefix + "WLANSchalten." + wifis[wifi_name].name);
                    createState(dpPrefix + "WLANSchalten."+ wifi_name, { name: wifis[wifi_name].desc, role: 'switch', read: true, write: true, type: "boolean" });}
                
                async function setWifi(enabled, wifi) {
                
                  return new Promise(async (resolve, reject) => {
                      //log("setWifi: start set Wifi_haupt");
                      if (!loggedIn) { log("need to login"); await login().catch((e) => reject(e)); }
                     // dlog("setWifi: now setting Wifi_haupt");
                      let resp = request.post({
                          url: unifi_controller + "/api/s/"+siteName+"/upd/wlanconf/" + wifi.id,
                          body: JSON.stringify({ enabled }),
                          headers: { 'Content-Type': 'application/json', Cookie: cookies.join("; ") }
                      }).catch((e) => { log("setWifi: rejected: " + e); /*reject(e)*/ return testerrws=true; });
                     // dlog("setWifi: got response")
                
                      if (resp != null) {
                       //   dlog("setWifi: Wifi wurde erfolgreich " + (enabled ? "eingeschaltet" : "ausgeschaltet"));
                         // dlog(resp);
                                  // getclient()  Pause für umschalten
                
                     
                        
                       
                          setState(dpPrefix + "WLANSchalten." + wifi.name, enabled, enabled);
                          resolve();
                      } else {
                       //   dlog("setWifi: rejetced")
                       //   dlog("resp: " + JSON.stringify(resp));
                          reject("msg: " + JSON.parse(resp.body).meta.msg);}
                      
                  });
                
                }
                
                
                
                async function login() {
                  return new Promise(async (resolve, reject) => {
                      cookies=[];
                      let respl = 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) => { log("login: reject"), reject(e);  loggedIn =false;return respl=[];});
                      
                      if(respl != null) {
                          log("login: login war erfolgreich! " + ((respl.headers && respl.headers.hasOwnProperty("set-cookie")) ? "Mit Cookies":"Ohne Cookies"));
                          if(respl.headers && respl.headers.hasOwnProperty("set-cookie")) {
                              let set_cookies = respl.headers["set-cookie"];
                              for(i = 0; i < set_cookies.length; i++) {
                                  let cookie = set_cookies[i];
                                  //log(set_cookies[i]);
                                  cookie = cookie.split(";")[0];
                                  cookies.push(cookie);
                              }
                          } else {
                              log("login: no cookies to set!")
                          }
                          loggedIn = true;
                                
                          resolve();
                      } else {
                          log("login: rejected")
                            loggedIn = false;
                          reject("respl = null");
                      }
                  });
                }
                
                
                
                on({id: wifiDPs, ack: false, change: "ne"}, function (obj) { 
                 var value = obj.state.val;
                 var dp2 = obj.name
                 setWifi(value, wifis[dp2]);
                // dlog(wifis[dp2])
                 //if (firstTime<wifiLength+1) firstTime++;
                          
                });
                
                
                function getStatus(wifi) {
                    // mylog("BIN IN STATUS");
                  return new Promise(async (resolve, reject) => {
                  //    dlog("nur mal so");
                      if (!loggedIn) await login().catch((e) => reject(e));
                      let resp = await request.get({
                          url: unifi_controller + "/api/s/"+siteName+"/rest/wlanconf/" + wifi.id,
                          headers: { Cookie: cookies.join("; ") }
                      }).catch((e) => { dlog("getStatus reject " + e); /*reject(e)*/ return testerrws=true; });
                    if (!testerrws) {
                    //  dlog("got response " + JSON.stringify(resp));
                      resp = JSON.parse(resp);
                
                      let wlanOn = resp.data[0].enabled;
                    //  dlog("WLAN " + wifi.name + " ist: " + (wlanOn ? "an" : "aus"));
                
                      if (resp != null && resp.meta && resp.meta.rc == "ok") {
                          dlog("Status erfolgreich geholt!");
                          dlog(resp);
                          let wlanOn = resp.data[0].enabled;
                          dlog("WLAN ist: " + (wlanOn ? "an" : "aus"));
                          setStateDelayed(dpPrefix + "WLANSchalten." + wifi.name, wlanOn, 200);
                       
                          resolve(wlanOn);
                      } else {
                          log("nicht ok... getStatusWifi")
                          reject(JSON.stringify(resp));
                      }
                      } else {dlog("reject weil respslogin ist 00"); dlog("BIN raus aus LOGOUT"); reject();}
                     // mylog("BIN aus STATUS raus");
                  });
                   
                }
                
                function dlog(message) {
                  if(debug)
                      console.log(message);
                }
                
                
                 for(let wifi_name in wifis) {
                   //    if ( firstTime == 3 && getState(dpPrefix + "WLANUnifi."+wifi_name).val !== null ) firstTime = 3;
                        getStatus(wifis[wifi_name])}   
                
                
                

                A 1 Reply Last reply Reply Quote 1
                • A
                  aleks-83 @liv-in-sky last edited by

                  @liv-in-sky Hey cool. Danke.
                  Werde ich mal ausprobieren und mich melden.

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

                    @aleks-83 du weißt ja, dass das umschalten eines wlans den ganzen accesspoint neustartet - daher etwas warten bis sich das netzwerk dann zeigt

                    A 1 Reply Last reply Reply Quote 1
                    • A
                      aleks-83 @liv-in-sky last edited by aleks-83

                      @liv-in-sky
                      Der ganze AP startet neu? Auch wenn ich ein Gast WLAN schalte?
                      Und wenn die SSID auf 2 APs läuft starten beide automatisch neu?
                      Warum ist das so?

                      Das dauert doch dann jedes mal ne Minute oder mehr!?

                      dslraser liv-in-sky 2 Replies Last reply Reply Quote 0
                      • dslraser
                        dslraser Forum Testing Most Active @aleks-83 last edited by

                        @aleks-83 sagte in Unifi WLAN Script 2 mit Anwesenheitskontrolle:

                        Warum ist das so?

                        gute Frage, stelle die mal bei Unifi....Ist leider so.

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

                          @aleks-83 ja ist wie weihnachten - bei umschalten des wlan's blinken alle sonoffs im haus, weil sie ihre verbindung verlieren

                          1 Reply Last reply Reply Quote 0
                          • A
                            aleks-83 last edited by

                            😁 Stimmt

                            Ist für mich aber Grund genug, das Ganze nicht zu nutzen.
                            Ich wollte eigentlich nur das Gäste WLAN damit umschalten.
                            Für den Spaß ist es mir das nicht wert.

                            Dass man das auch nicht mal in der UniFi App gescheit machen kann...
                            Man muss in jeden einzelnen AP rein gehen und die WLAN SSID de-/aktivieren.

                            Danke trotzdem.

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

                              @aleks-83 dann evtl über die fritzbox - nur für gäste - ist zwar nicht so toll (z.b. kein voucher), wenn man schon unifi hat, aber sollte ohne probleme integrierbar sein

                              A 1 Reply Last reply Reply Quote 0
                              • A
                                aleks-83 @liv-in-sky last edited by aleks-83

                                @liv-in-sky Das WLAN an der Fritte habe ich komplett deaktiviert weil sie sowieso im HWR steht wo kein Signal rein oder raus geht...

                                Vouchers nutze ich nicht. Bin kein Hotelier 😬

                                Nutzt ihr Vouchers für eure Freunde und Verwandte?

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

                                  @aleks-83 ich nicht - aber ein paar leute haben das integriert

                                  1 Reply Last reply Reply Quote 0
                                  • M
                                    martinschm last edited by

                                    Hi,

                                    seit ein paar Tagen ist bei mir die Anwesenheitserkennung sehr "flatterhaft".
                                    Sowohl bei meinem Honor 8 (das hat immer schonmal mucken gemacht) aber auch dem S8 meiner Frau wird mir häufig wechselnde Anwesenheit/Abwesenheit signalisiert.

                                    Kann es an der neuen Firmware von den Access Points liegen ?

                                    crunchip liv-in-sky 2 Replies Last reply Reply Quote 0
                                    • crunchip
                                      crunchip Forum Testing Most Active @martinschm last edited by

                                      @martinschm sagte in Unifi WLAN Script 2 mit Anwesenheitskontrolle:

                                      Kann es an der neuen Firmware

                                      hat sich nix geändert.
                                      Welche Firmware, für welche AP´s?
                                      einzigste was es bei mir anzeigt, wäre ein Upgrade des USG, hab ich aber noch nicht gemacht, da diese bei mir mit einer anderen Version läuft

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

                                        @martinschm habe auch auf update der accesspoints gedrückt - bisher keine auffallenden meldungen bei mir (S9)

                                        version 4.0.80.10875

                                        crunchip 1 Reply Last reply Reply Quote 0
                                        • crunchip
                                          crunchip Forum Testing Most Active @liv-in-sky last edited by

                                          @liv-in-sky sagte in Unifi WLAN Script 2 mit Anwesenheitskontrolle:

                                          version 4.0.80.10875

                                          die läuft bei mir schon Wochenlang

                                          @martinschm sagte in Unifi WLAN Script 2 mit Anwesenheitskontrolle:

                                          häufig wechselnde Anwesenheit/Abwesenheit signalisiert.

                                          das hab ich nach wie vor, wenn zwischen 5 und 2,4 Frequenz gewechselt wird
                                          möglich wäre z.b. nen Datenpunkt zu erstellen, mit nem kleinen blockly und timeout abstimmen

                                          dslraser M 2 Replies Last reply Reply Quote 0
                                          • dslraser
                                            dslraser Forum Testing Most Active @crunchip last edited by dslraser

                                            @crunchip sagte in Unifi WLAN Script 2 mit Anwesenheitskontrolle:

                                            das hab ich nach wie vor, wenn zwischen 5 und 2,4 Frequenz gewechselt wird

                                            das habe ich bei mir inzwischen so geregelt, das die Geräte in nur ein Netz können.
                                            Also zwei WLAN, eins mit 5 GHz und eins mit 2,4 GHz mit unterschiedlichen Zugangsdaten. Auf den jeweiligen AP kann man ja die gewünschten Frequenzen der Netze aktivieren/deaktivieren.
                                            Ich habe noch einige wenige Geräte die nur 2,4 können (5 Stück)

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            889
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

                                            javascript monitoring
                                            46
                                            1358
                                            329342
                                            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