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

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Unifi WLAN Script 2 mit Anwesenheitskontrolle

    This topic has been deleted. Only users with topic management privileges can see it.
    • 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
                                          • crunchip
                                            crunchip Forum Testing Most Active @dslraser last edited by

                                            @dslraser wäre eine Möglichkeit,
                                            ich verwende aktuell nur einen AP, hab zwar noch einen zweiten da, ist aber aufgrund der Räumlichkeiten eigentlich nicht nötig.

                                            jedoch habe ich mein Netzwerk unterteilt

                                            • normales Netz
                                            • für IoT
                                            • für NoT
                                              in allen drei 2,4 und 5 GHz aktiv, die ich auch benötige
                                              könnte theoretisch 5 GHz abschalten, jedoch führt das dann zu Verbindungsabbrüchen, da ich zu viele Geräte im Netz habe
                                              ältere Geräte hab ich auch noch im Gebrauch, bekomm ich aber zur Zeit gar nicht zum laufen.
                                              Genauso mein Bush&Jäger Unterputzradio, das will irgendwie nicht laufen
                                            dslraser 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            486
                                            Online

                                            31.6k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

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