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

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Unifi WLAN Script 2 mit Anwesenheitskontrolle

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

      @liv-in-sky das mit den siteNamen passt
      UNIFI controller Site.gif

      der Anfang meines script

      
      // September 2019 @liv-in-sky durch viel vorarbeit von @thewhobox (api verbindung)
      
      // Definition Login
      const unifi_username = "xxxxxx";
      const unifi_password = "xxxxxxx";
      const unifi_controller = "https://xxx.xxx.xxx.xxx:8443";
      
      let siteName ="home";   //Site name 
      
      // DEFINITION der zu anzeigenden Netzwerke am besten bis auf id und smart alle gleich setzen
      const wifis = {
         "DieMachtSeiMitDir":     { name: "DieMachtSeiMitDir", id: "5d55df3ec37b7b000f1f512a", desc: "DieMachtSeiMitDir", smart: "DieMachtSeiMitDir11" },
         "GastNetz":     { name: "GastNetz", id: "5dc46e09a7134000100e34c9", desc: "GastNetz", smart: "GastNetz11"}
      }
      // DEFINITION der Aliasnamen für die AP's - hat nichts mit den Aliasnamen im Controller zu tun - wird nur für das script gebraucht 
      const apName = {  "44:d9:e7:68:29:f8" : { aname: "APkleinerflur"}, //mac adresse der ap's
                        "18:e8:29:e9:44:1b" : { aname: "APWohnzimmer"}
      }
      
      //Vordefinierte Vouchers für  one-click-create - wird hier etwas geändert BITTE DATENPUNKT (Vouchers_StandardList) LÖSCHEN vor Scriptstart!!!!
      //BITTE alle Werte eingeben - für nichtbenutzte wie up-, download und nmb_begrenzung eine 0 eintragen
      // Pflichteinträge sind dauer, anzahl, multiuse und notiz !!!
      const standardVouchers = {"Vier Tage" : {dauer: 240, anzahl: 1, multiuse: 1, upload: 0, download:0, mb_begrenzung: 500, notiz:"MB Begrenzung 500 - 4 Tage"}, 
                                "Sieben Tage" : {dauer: 10080, anzahl: 1, multiuse: 1, upload: 300, download:300, mb_begrenzung: 500, notiz:"MB Begrenzung 500 - 7 Tage"},
                                "99 Minuten" : {dauer: 99, anzahl: 2, multiuse: 1, upload: 0, download:200, mb_begrenzung: 500, notiz:"Dauer 99 Minuten - Anzahl 2"}}
      
                              
      
      //Pause bei Umschalten der WLANnetze, damit Netzanmeldungen der clients wieder normal
      const clientPauseConst = 200000;    //1000 bedeutet 1 Sekunde -  das braucht Zeit !!!
      
      // Abfragezyklus definieren
      const abfragezyklus =20000; // es ist nicht zu empfehlen unter 20000 (20 sekunden) zu gehen
      const abfageoffset = 15000; // zu schnelle Abmeldungen können hier eingestellt weren - > erhöhen (15000 = 15 sek.)
      
      //HIER Einstellungen : EIN-AUSSCHALTEN Vouchers, iqontrol-Datei erstellen, anwesenheitskontrolle-clientpflege
      let iqontrol = false;
      let anwesenheit = false; // beim setzen von true auf false die verzeichnisstruktur unter iobroker-objects "von hand" löschen
      let vouchers = false;
      let apInfo = false;
      let problemWLAN=false; //bei problemen mit APs die über WLAN angebuden sind
      let countFalseSetting=2; //2 bedeutet : einmal einen abfragezyklus auslassen bevor auf false gesetzt wird: Formel:  n-1
      let aliasname=false; 
      
      let ohneClientAbfrage=false; //schaltet das bearbeiten der clients vollständig ab - auch keine datenpunkte
      
      //FARBEN für IQontrol und VIS
      //die farbe für die tabellen in der vis wird im widget eingestellt
      //color_vis_text_client_in_table
      //color_vis_text_voucher_in_table
      let color_iqontrol_text__client_letzteAenderung_VIS="lightblue";
      let color_iqontrol_text__client_letzteAenderung_VIS_Text="#d0cdcd";
      let color_iqontrol_text_client_in_table= "black";  
      let color_iqontrol_text__client_disconnected="#01A9DB";
      
      let color_iqontrol_client_gradient1= "lightblue";   
      
      let color_iqontrol_text_voucher_in_table= "black"; 
      let color_iqontrol_voucher_gradient1= "lightblue"; 
      let color_iqontrol_text__client_letzteAenderung="#848484";
      let color_iqontrol_text__voucher_ueberschrift="lightblue";
      
      let schriftart="Helvetica";  //möglich: Helvetica,Serif
      
      
      //-----------------AB HIER NICHTS MEHR ÄNDERN------------------------------------------------------
      
      
      
      Chaot liv-in-sky 2 Replies Last reply Reply Quote 0
      • Chaot
        Chaot @Iccube last edited by Chaot

        @Icube Site Name ist falsch. Das kann definitiv nicht "home" sein.
        Der einzige Name im Klartext ist "default". Alle anderen Namen sind eine Zeichenkette

        Siehe:
        @Chaot sagte in Unifi WLAN Script 2 mit Anwesenheitskontrolle:

        Der Hinweis zum Eintragen der Site wenn nicht die Deafult verwendet wird:

        Der Name der Site kommt hier:

        https://192.168.xxxxxx:8443/manage/site/ka118xps/clients/list/1/50
        

        in meinem Fall ist das "ka118xps" bei default steht da nur "default"

        BBTown Iccube 2 Replies Last reply Reply Quote 1
        • BBTown
          BBTown @Chaot last edited by

          @Chaot sagte in Unifi WLAN Script 2 mit Anwesenheitskontrolle:

          Alle anderen Namen sind eine Zeichenkette

          jetzt verstehe ich weshalb ich nie eine Verbindung zu meiner UniFy Umgebung bekommen habe.
          Ich hatte verstanden, dass diese kryptische interne Bezeichnung bei den APs bzw, der WLan IDs vorkommen, aber bei der Site ist mir das nicht klar gewesen bzw. habe ich das Überlesen

          1 Reply Last reply Reply Quote 0
          • Iccube
            Iccube @Chaot last edited by

            @Chaot du hast recht gehabt jetzt funktioniert 👍 danke😊

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

              @Icube

              und zusätzlich :da passen die settings nicht mit der neusten version zusammen - so sollte das setting aussehen - das setting gehört so zu der version, die ich dir gepostet habe - kannst du das bitte angleichen - hauptsächlich fehlt es unter der const standardVouchers

              // September 2019 @liv-in-sky durch viel vorarbeit von @thewhobox (api verbindung)
              
              // Definition Login
              const unifi_username = "username";
              const unifi_password = "passwort";
              const unifi_controller = "https://192.168.xxx.xxx:8443";
              
              let siteName ="default";   //Site name 
              
              // DEFINITION der zu anzeigenden Netzwerke am besten bis auf id und smart alle gleich setzen
              const wifis = {
                "WLAN_Dragon1":     { name: "WLAN_Dragon1", id: "5cadcxxxxxxxxxxxe5381", desc: "WLAN_Dragon1", smart: "WLAN_Dragon1" } ,
                "WLAN_DragonGuest": { name: "WLAN_DragonGuest", id: "5d65xxxxxxxxx1edd761", desc: "WLAN_DragonGuest", smart: "WLAN_DragonGuest" }
              }
              // DEFINITION der Aliasnamen für die AP's - hat nichts mit den Aliasnamen im Controller zu tun - wird nur für das script gebraucht 
              const apName = {  "b4:xx:e4:xx:96:xx" : { aname: "AP-LongR"}, //mac adresse der ap's
                               "18:xx:29:xx:40:xx" : { aname: "AP-Light"}
              }
              
              //Vordefinierte Vouchers für  one-click-create - wird hier etwas geändert BITTE DATENPUNKT (Vouchers_StandardList) LÖSCHEN vor Scriptstart!!!!
              //BITTE alle Werte eingeben - für nichtbenutzte wie up-, download und nmb_begrenzung eine 0 eintragen
              // Pflichteinträge sind dauer, anzahl, multiuse und notiz !!!
              const standardVouchers = {"Vier Tage" : {dauer: 240, anzahl: 1, multiuse: 1, upload: 0, download:0, mb_begrenzung: 500, notiz:"MB Begrenzung 500 - 4 Tage"}, 
                                       "Sieben Tage" : {dauer: 10080, anzahl: 1, multiuse: 1, upload: 300, download:300, mb_begrenzung: 500, notiz:"MB Begrenzung 500 - 7 Tage"},
                                       "99 Minuten" : {dauer: 99, anzahl: 2, multiuse: 1, upload: 0, download:200, mb_begrenzung: 500, notiz:"Dauer 99 Minuten - Anzahl 2"}}
              
              const blackList = ["GalaxyTabS2" ] //Blacklist - diese clients werden nicht berücksichtigt - aber nur wenn ein alias im controller definiert ist
              const checkConnType=["Galaxy-S9","FireTablet7"];  // Datenpunkte (werden erstellt) für Überwachung von Connection (WLAN only) - aber nur wenn ein alias im controller definiert ist
                                                                // wenn leer - keine überwachung (const checkConnType=[])
              
              //Pause bei Umschalten der WLANnetze, damit Netzanmeldungen der clients wieder normal
              const clientPauseConst = 200000;    //1000 bedeutet 1 Sekunde -  das braucht Zeit !!!
              
              // Abfragezyklus definieren
              const abfragezyklus =20000; // es ist nicht zu empfehlen unter 20000 (20 sekunden) zu gehen
              const abfageoffset = 15000; // zu schnelle Abmeldungen können hier eingestellt weren - > erhöhen (15000 = 15 sek.)
              
              //HIER Einstellungen : EIN-AUSSCHALTEN Vouchers, iqontrol-Datei erstellen, anwesenheitskontrolle-clientpflege
              let iqontrol = false;
              let anwesenheit = true; // beim setzen von true auf false die verzeichnisstruktur unter iobroker-objects "von hand" löschen
              
              let vouchers = false;
              let apInfo = true;
              let problemWLAN=false; //bei problemen mit APs die über WLAN angebuden sind
              let countFalseSetting=2; //2 bedeutet : einmal einen abfragezyklus auslassen bevor auf false gesetzt wird: Formel:  n-1
              let aliasname=false; 
              let disConClientsFirst=true; //zeigt disconnected clients als erstes im table (vis) oder iqontrol an
              
              let ohneClientAbfrage=false; //schaltet das bearbeiten der clients vollständig ab - auch keine datenpunkte
              
              let sortedByIP =false; //client anzeige nach IP sortiert
              
              
              //FARBEN für IQontrol und VIS
              //die farbe für die tabellen in der vis wird im widget eingestellt
              //color_vis_text_client_in_table
              //color_vis_text_voucher_in_table
              let color_iqontrol_text__client_letzteAenderung_VIS="lightblue";
              let color_iqontrol_text__client_letzteAenderung_VIS_Text="#d0cdcd";
              let color_iqontrol_text_client_in_table= "black";  
              let color_iqontrol_text__client_disconnected="#01A9DB";
              
              let color_iqontrol_client_gradient1= "lightblue";   
              
              let color_iqontrol_text_voucher_in_table= "black"; 
              let color_iqontrol_voucher_gradient1= "lightblue"; 
              let color_iqontrol_text__client_letzteAenderung="#848484";
              let color_iqontrol_text__voucher_ueberschrift="lightblue";
              
              let schriftart="Helvetica";  //möglich: Helvetica,Serif
              
              
              //-----------------AB HIER NICHTS MEHR ÄNDERN------------------------------------------------------
              

              oder hole dir eine neue version vom ersten post

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

                @liv-in-sky Kannst du das mit der Site vielleicht in deiner Anleitung mit eintragen? Das hätte viel Zeit gespart und im Unifi Controler ist es wirklich nicht ersichtlich.

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

                  @Chaot erstmal danke für deine hilfe

                  bin gerade dabei, dass einzuarbeiten

                  1 Reply Last reply Reply Quote 1
                  • Nashra
                    Nashra Most Active Forum Testing last edited by

                    Hey, was ist denn jetzt passiert?
                    down-up.PNG
                    die 463GB standen heute morgen noch bei letzter Monat 🤔

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

                      @Nashra das wäre wirklich seltsam, wenn das heute morgen noch so gewesen wäre - wenn es gestern noch so gewesen wäre - dann könnte ich nochmal nachsehen

                      das ganze umschichten findet wenn dann um '0 0 ***' stattImage 1.png

                      und von monat auf alten monat sollte ja auch erst am "01" des monats geschehen - heute ist ja tag 18

                      im moment fehlt mir dazu eine idee - bin aber im moment mit umpartionieren meines proxmox servers beschäftigt - größere platte - und debian updte und proxmox update - wenn das geklappt hat, schaue ich nochmal in den code

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

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

                        @Nashra das wäre wirklich seltsam, wenn das heute morgen noch so gewesen wäre - wenn es gestern noch so gewesen wäre - dann könnte ich nochmal nachsehen

                        Ähm, vlllt war es da doch schon nur habe ich es um 4 Uhr mit meinen verschlafenen Augen falsch gedeutet 😄

                        das ganze umschichten findet wenn dann um '0 0 ***' statt!

                        und von monat auf alten monat sollte ja auch erst am "01" des monats geschehen - heute ist ja tag 18

                        im moment fehlt mir dazu eine idee - bin aber im moment mit umpartionieren meines proxmox servers beschäftigt - größere platte - und debian updte und proxmox update - wenn das geklappt hat, schaue ich nochmal in den code

                        Vor allem das ein Minus davor steht, also -463GB. Mache erstmal deinen Server, ist nicht so wichtig, hauptsache der Rest läuft 🙂

                        liv-in-sky 1 Reply Last reply Reply Quote 0
                        • M
                          MyMeyer last edited by

                          Hi habe die neue Version aus dem ersten Post genommen und bekomme jetzt folgende Fehler.
                          Meine Daten habe ich natürlich vorher angepasst.

                          Was bedeutet der Fehler ?


                          17:05:41.059 warn javascript.0 (913) script.js.Allgemein.Unifi: Im Unifi Script stimmte etwas nicht - Alarm3 - getClient-Login
                          17:05:41.323 info javascript.0 (913) script.js.Allgemein.Unifi: getStatus reject StatusCodeError: 401 - "{"meta":{"rc":"error","msg":"api.err.NoSiteContext"},"data":[]}"
                          17:05:41.323 info javascript.0 (913) script.js.Allgemein.Unifi: reject weil resph ist 00
                          17:05:41.323 warn javascript.0 (913) script.js.Allgemein.Unifi: Im Unifi Script stimmte etwas nicht - Alarm7 - Health

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

                            @MyMeyer schaut nach falschen login aus - du bekommst keine daten

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

                              @liv-in-sky Richtig und warum Plötzlich. Hat sich im neue Script dort oben etwas geändert ?

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

                                @MyMeyer im neusten hat sich nichts geändert - also beim login - ganz oben - eigentlich noch nie - aber darunter könnten - unter "const apName" - neue sein - je nachdem, wie alt dein script war

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

                                  @liv-in-sky Sorry für meine Ungeduld 🙂 , hatten eine falschen Site Name eingetragen. Läuft wieder 👍

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

                                    Hi,

                                    danke für das coole Skript. Läuft bisher super (nutze grade nur die Anwesenheitserkennung) und ist wesentlich schneller als die Erkennung über den Adapter.

                                    Meine Geräte tauchen auch seltener ab. Leider verschwindet mein Honor 8 auch hier gelegentlich aus der Erkennung.

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

                                      @martinschm

                                      versuche doch mal den wert "const abfageoffset = 15000" ein wenig höher zu setzen - dann müßte es auch mit dem honor 8 klappen

                                      z.b 20000 oder 25000 - dabei wird nur die abmeldung etwas langsamer - anmelden bleibt gleich schnell

                                      M 1 Reply Last reply Reply Quote 0
                                      • P
                                        ple last edited by

                                        sorry Jungs, ich muss noch mal ran.
                                        Nachdem ich versucht habe es über die Fritzbox zu lösen bin ich nun doch wieder zurück auf den unifi.
                                        Bei mir springen ständig die Geräte auf false, selbst der Unifi Key selber.
                                        Mit den originalen Zeiten spring er ständig jede minute hin und her. Das macht die Anwesenheit natürlich nicht besser.
                                        Ich habe jetzt erst mal alles x10 genommen, ist wirklich sehr lang, aber im Moment weiß ich mir da nicht zu helfen.

                                        Meine Infrastruktur sieht eigentlich wie folgt aus.
                                        USG > 2 mal POE switch > 3 AC AP Pro.
                                        Die Einstellungen im Unifi habe ich nicht groß geändert. Kann das jemand nachstellen, der auch ein USG hat? Schön wäre es noch, wenn er Apple Geräte hat 🙂

                                        Gruß und Danke für das tolle Script

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

                                          @ple was hast du da stehen

                                          const abfageoffset

                                          oder meinst du damit "x 10" ?

                                          1 Reply Last reply Reply Quote 0
                                          • P
                                            ple last edited by

                                            const clientPauseConst = 200000;    //1000 bedeutet 1 Sekunde -  das braucht Zeit !!!
                                            
                                            // Abfragezyklus definieren
                                            //const abfragezyklus =20000; // es ist nicht zu empfehlen unter 20000 (20 sekunden) zu gehen
                                            //const abfageoffset = 15000; // zu schnelle Abmeldungen können hier eingestellt weren - > erhöhen (15000 = 15 sek.)
                                            
                                            const abfragezyklus =200000; // es ist nicht zu empfehlen unter 20000 (20 sekunden) zu gehen
                                            const abfageoffset = 150000; // zu schnelle Abmeldungen können hier eingestellt weren - > erhöhen (15000 = 15 sek.)
                                            
                                            
                                            //HIER Einstellungen : EIN-AUSSCHALTEN Vouchers, iqontrol-Datei erstellen, anwesenheitskontrolle-clientpflege
                                            let iqontrol = false;
                                            let anwesenheit = true; // beim setzen von true auf false die verzeichnisstruktur unter iobroker-objects "von hand" löschen
                                            
                                            let vouchers = false;
                                            let apInfo = true;
                                            let problemWLAN=false; //bei problemen mit APs die über WLAN angebuden sind
                                            let countFalseSetting=2; //2 bedeutet : einmal einen abfragezyklus auslassen bevor auf false gesetzt wird: Formel:  n-1
                                            let aliasname=false; 
                                            let disConClientsFirst=true; //zeigt disconnected clients als erstes im table (vis) oder iqontrol an
                                            
                                            let ohneClientAbfrage=false; //schaltet das bearbeiten der clients vollständig ab - auch keine datenpunkte
                                            
                                            

                                            auf die schnelle, damit mein Telegram nicht die ganze zeit geht. 🙂

                                            liv-in-sky 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            864
                                            Online

                                            31.9k
                                            Users

                                            80.2k
                                            Topics

                                            1.3m
                                            Posts

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