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.
    • liv-in-sky
      liv-in-sky last edited by liv-in-sky

      hier ein script für das ansteuern des unifi-controllers - der unifi adapter hat einen sehr großen datenfluß und sehr viele datenpunkte - das script arbeitet selbständig und benötigt den adapter nicht. (danke an @thewhobox und @dslraser)

      es gibt eine version des scriptes, welche nur die uaps von vorher definierten clients ausliest und als datenpunkte speichert - es werden keine tabellen oder sonstiges angelegt: https://forum.iobroker.net/post/405654

      was kann es:

      feature variable-info
      WLAN ein und ausschalten (z.b. Gäste-WLAN) geht immer
      AP Led's schalten geht immer- nur site-wide - nicht einzeln!e ap's
      Speedtest Daten nur mit security gateway hardware
      Internet Verbindung www online ? - nur mit security gateway hardware
      rudimentärer datenverbrauch nur mit unifi security hardware - sammelt täglichen und monatlichen datenverbrauch
      Alarme gehen immer - werden alle 3 script-zyklen upgedatet
      anwesenheitskontrolle mit datenpunkte für die clients anwesenheit=true
      voucherauflistung in tabellenform über ein html-widget für vis vouchers=true
      voucherauflistung in tabellenform für iqontrol vouchers,iqontrol=true
      vouchers erstellen es gibt im script setting eine variable zum erstellen von standard vouchers (iqontrol, vis) oder man kann neue anlegen (nur vis)
      vouchers löschen es gibt 2 datenpunkte für seleqtList-Widget, dadurch einfache vis anbindung (iqontrol, vis)
      clientauflistung in tabellenform über ein html-widget für vis anwesenheit=true
      clientauflistung in tabellenform für iqontrol anwesenheit,iqontrol=true es gibt verschiedene tabellen dafür: alle clients (mit disconnected), nur disconnected, nur clients am lan, nur clients am WLAN
      wahlweise hostname oder aliasname anzeige der angemeldeten clients alias=true
      health des WLANs geht immer - wird nur alle 3 abfragezyklen abgefragt - kommen daher erst verspätet beim ersten aktivieren des scripts
      minimale Info's zu AP's variable apInfo = true - welcher Controller ist zuständig, ist der AP adoptet (einbezogen), Ip des AP's, Satisfaction, Modelbezeichnung, abruf der daten nur alle 3 zyklen - kommen daher erst verspätet beim ersten aktivieren des scripts
      apInfo anzeige für vis in html tabellenform und für iqontrol (über popup)
      mehrer installierte netzwerke z.b gästenetzwerk geht immer
      AccessPoint und Switches es können WLAN und LAN Geräte angezeigt werden
      Farben definieren, Schriftart Farben für Vis oder IQontrol können eingestellt werden
      script zyklus das script schreibt nicht alle daten bei jedem zyklus - die health, ap daten werden nur alle 3 zyklen geschrieben - es gibt einen datenpunkt dafür, dieser datenpunkt ist für die vis gedacht - so kann man sich anzeigen, wann der zyklus durch ist - zählt von 1 bis 3
      scriptpause das script macht eine pause beim umschalten eines netzwerkes - die ap's werden umgeschaltet - es gibt einen datenpunkt, der diese pause anzeigt - z.b in meiner vis: ich ändere bei dieser pause die schriftfarbe für die cleints und die rahmen blinke rot - siehe bild am ende
      rudimentärer filter für client anzeige es gibt einen filter für die clientanzeige - es werden nur clientsangezeigt, welche den inhalt vom datenpunkt "Client_WhiteList" beinhalten
      SSID unsichtbar schalten einfache integration - die werte können vom zustand in der unifi datenbank abweichen - wird nicht abgefragt

      was ist wichtig :

      einstellungen im oberen teil des scripts info
      npm zusatzmodule es müssen 3 npm zusatzmodule in der javascript instanz eingetragen - und dadurch installiert - werden: fs, request, request-promise-native
      login daten und port für controller und der site-name const unifi_username, unifi_passwort und unifi_controller WICHTIG: der sitename muss aus der URL im browser, bei aufruf der controller-web-seite, entnommen werden !!!https://forum.iobroker.net/post/323789
      konstante wlan-name(n) mit wlan-id const wifis - wie man die ID des netzwerkes rausfindet steht hier: https://forum.iobroker.net/post/295086
      konstante ap-alias const apName - der Aliasnamen für die AP's und Switches- hat nichts mit den Aliasnamen im Controller zu tun - wird nur für das script gebraucht - können frei gewählt werden
      blacklist für clients const blackList
      clients via AP's kontrolle const checkConnType - darin werden clientnamen angegeben, bei denen man den aktuellen AccessPoint braucht - es werden dafür eigene Datenpunkte angelegt
      länge der pause beim umschalten eines netzwerkes clientPauseConst - ist für die länge der scriptpause verantwortlich - wird benötigt, da beim ein oder ausschalten eines netzwerkes (auch nur das gästenetzwerk) alle ap's einen neustart machen ( proviosioniert) und dadurch die anwesenheitskontrolle beeinflußt werden könnte. z.b brauchen tasmota-geflashte clients lange, bis sie wieder online sind - die anwesenheitskontrolle könnte auch zur überwachung solcher geräte genutzt werden
      abfrageinterval: "abfragezyklus" und "abfrageoffset" abfragezyklus definiert, in welchen interval die abfragen stattfinden sollen (20sek ist eingestellt) - damit erreicht man eine sehr schnelle aktualisierung beim anmelden eines clients im WLAN - beim abmelden des clients muss der abfrageoffset mit berücksichtigt werden (15 sek ist eingestellt) - wählt man den abfrageoffset zu klein, kann es sein, dass bei einem wechsel eines clients (handy) zu einem anderen accesspoint (ap) eine auslogmeldung kommt - bei meinem system bekomme ich nach ungefähr 30 sek einen anmeldevorgang gemeldet und nach ca 45-50 sek einen abmeldevorgang
      gewünschte features auf true setzen iqontrol, anwesenheit,vouchers,apInfo - was nicht benötigt wird, bitte nicht aktivieren -> resourcen sparen - der iqontroladapter muss installiert sein, wenn man iqontrol im script auf true setzt
      aliasnamen für clients aliasname - möchte man lieber, die im unifi-controller definierten aliasnamen für die clients nutzen, muß in jedem client im controller ein alias definiert sein damit alle clients im script sichtbar werden - oder es werden nur aliase für bestimmte geräte angegeben - dann ist der rest nicht sichtbar - wichtig weil: was nicht sichtbar ist, kann nicht zur anwesenheitskontrolle genutzt werden und : der standard - aliasname=false - nimmt den aliasnamen, wenn einer existiert, ansonsten den hostnamen
      ip clients liste nach IP adresse sortiert anzeigen sortedByIP für die clientliste in iqontrol und vis
      disconnected clients als erstes anzeigen disConClientsFirst für die clintliste in iqontrol und vis
      farben für iqontrol und vis
      datenpunkte im admin es wird ein ordner in der javascript instanz erzeugt - unter umständen wird ein zweiter ordner angelegt, zum sichern "dauerhafter daten". WLANUnifi kann gelöscht werden (z.b. bei einem update des scripts; WLANUnifiHelp sollte nicht gelöscht werden, darin sind Daten gespeichert, die wieder gebraucht werden (z.b datenverbrauch messung)

      iqontrol
      kann über ein popup eingebunden werden. im feld html eintragen: mögliche files, die zur verfügung stehen:

      für clients:

      <iframe width="100% "height="100% "frameborder="0" src="/iqontrol.meta/htmlclients.html"></iframe
      

      für vouchers:

      <iframe width="100% "height="100% "frameborder="0" src="/iqontrol.meta/htmlvoucher.html"></iframe
      

      für health und /oder apInfo

      <iframe width="100% "height="100% "frameborder="0" src="/iqontrol.meta/htmlinfo.html"></iframe
      

      zusätzlich : nur LAN geräte : htmllan.html ; nur WLAN geräte: htmlwlan.html ; nur disconnected geräte: htmldisc.html ;

      voucher erstellung:

      • unter dem datenpunkt Wifi_Vouchers-CODES.A_New_Voucher kann ein voucher angelegt werden - die anzahl, dauer und multiuse müssen eingegeben werden - alle anderen sind optional
        oder es gibt datenpunkte zum erstellen einer valueliste, um vorgefertigte (standard) vouchers anzulegen (selectValuelist-widget)
      werte zusatz
      die dauer in minuten z.b. 120
      die anzahl der vouchers wie viele davon sollen angelegt werden
      multiuse 0=immer wieder ;1 ist nur einmal und jede andere zahl für n-mal also 5 für 5 mal
      upload und download speed begrenzung in kbyte - eingabe ohne einheiten
      mb_begrenzung volumen begrenzung in MByte - eingabe ohne einheiten

      Voucher löschen
      direkt über Datenpunkte:

      • zuerst ID des vouchers eintragen :"WLANUnifi.Wifi_Vouchers-CODES.A_Delete_Voucher.Voucher_ID"
        -anschliessend "WLANUnifi.Wifi_Vouchers-CODES.A_Delete_Voucher.Delete" auf true setzen

      oder über VIS:
      dazu gibt es zwei datenpunkte
      -WLANUnifi.Wifi_Vouchers_CodeList - "texte" mit binding in selectValueList widget eintragen
      -WLANUnifi.Wifi_Vouchers_List - "werte" mit binding in selectValueList widget eintragen

      beim update auf eine neue scriptversion:

      • script stoppen
      • script kopieren und einfügen (meist reicht es, nur unter der eigenene konfiguration zu kopieren und einzufügen - damit man nicht jedesmal die konfiguration (login, wlan) neu machen muss
      • alle datenpunkte löschen (wichtig_)
      • script starten

      aktuelle version:

      14.09.19
      16.09.19
      17.09.19 - voucher löschen mit iqontrol
      18.09.19 - WLAN problem - mehr zeit bevor false bei clients
      22.09.19 - einfacheres löschen und erzeugen von vouchers in der vis, unbenennung einiger datenpunktnamen (datenpunkte löschen vor scriptstart)
      23.09.19 - AP Led's site-wide ein- und ausschalten
      27.09.19 - AP LAodAVG für 1,5 und 15 Minuten
      3.10.19 - Alarm, Clients-ohne-Namen, LAN clients >> switch und usg integration
      8.10.19- js-controllerv2 update, Eingabe mit Punkt im Alias, Leerzeichen ersetzen, Scriptlogik verbessert, zusätz. setting ohne Clients, fehlende IP abfangen, eigenes Widget "letzter wechsel im netzwerk für VIS, ...
      9.10.19 fehler behebung bei missingName datenpunkt, scriptpause bei wifiumschaltung geändert
      10.10.19 neue sotierung clients, speedtest-vorbereitung
      11.10.19 neue sotierung clients, speedtest und internet-verbindung
      22.10.19 kleine fehler bei LAN geräten bereinigt, Fehler mit "IP fehlt bereinigt, einzelne iqontrol und vis tables für anzeige von LAN,WLAN clients
      30.10.19 besseres log bei fehleranalyse "sprunghafte" clients (syslog); neue datenpunkte für verbrauchte datenmenge ins internet (nur mit usg)
      9.11.2019 verbesserung - clients ohne namen, neues setting - clients anzeige: Ip zuerst
      06.12.19 verbesserung fehlersuche und fehler mit security gateway und clientanzeige
      08.12.19 fehler bei anzeige von überwachten cients bereinigen
      14.12.19 unifi bug ausgleichen - SSID unsuchtbarschalten
      18.12.19 bug beim starten ohne datenpunkte behoben
      30.12.19 bug ohne anwesenheit begradigt

      unifi-main-script-30-12-19.txt

      Problembehandlung bei anwesenheitskontrolle mit zu schnellen bzw. falschen wertänderungen der clients: https://forum.iobroker.net/post/301328

      beispiel für vis im nächsten bild:es wurden die 3 tabellen aus den datenpunkten , die voucherlöschung (code auswählbar durch SelectValueList-widget siehe https://forum.iobroker.net/post/300367 ) und vouchererzeugung (auswählbar durch SelectValueList-widget)eingerichtet

      gelber pfeil - gerät nicht angemeldet
      oranger pfeil: gerät nicht angemeldet und nicht in controller gelistet - aber ist in script registriert und damit false
      weißer pfeil: valuelist für erzeugung von vouchers
      grüner pfeil: valuelist löschen existierender vouchers
      roter pfeil: alarme
      mehr infos über die anzeige in der vis: https://forum.iobroker.net/post/305865
      Image 7.png

      mittlerweile gibt es 3 zusätzliche html-tables für die vis und iqontrol: einzelne anzeigen für LAN oder WLAN geräte und einen table für die disconnected clients (nicht mehr im controller sichtbar aber als datenpunkt vorahnden)

      Image 3.png
      Image 1.png

      zyklus anzeige :

      zyklus.gif

      scriptpause beim umschalten der wifis: zb.wlan - in dieser pause werden keine client abfragen gemacht - da die ap's neustarten und sich alle clients neu anmelden werden
      scriptpause.gif

      dslraser Chaot Negalein 4 Replies Last reply Reply Quote 9
      • dslraser
        dslraser Forum Testing Most Active @liv-in-sky last edited by dslraser

        @liv-in-sky
        @thewhobox
        Feedback Nr.: 1

        ich habe jetzt 3 AP drinn sowie iQontrol und alles andere aktiv. Läuft alles (bei mir über aliasname)
        sieht dann in iQontrol bei mir so aus:

        Bildschirmfoto 2019-09-13 um 14.06.03.png

        Bildschirmfoto 2019-09-13 um 14.20.10.png

        Die Voucherliste und auch das erstellen von Vouchern funktioniert ebenfalls.

        Danke auch nochmal an @thewhobox für die Starthilfe und ganz besonderen Dank an @liv-in-sky , der viel Zeit in dieses Script gesteckt hat. So macht es Spaß, auch das Testen und Fehler finden sowie korrigieren macht dann Spaß.

        liv-in-sky 1 Reply Last reply Reply Quote 2
        • liv-in-sky
          liv-in-sky @dslraser last edited by

          @dslraser kleines update im ersten post - einstellen der farben und schriftart für vis und iqontrol 🙂

          1 Reply Last reply Reply Quote 1
          • Chaot
            Chaot last edited by

            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"

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

              wieder kleines update

              vouchers können gelöscht werden - siehe beschreibung erster post

              besonders für vis user - datenpunkte direkt für SelecValueList- Widget vorbereitet - müssen nur noch mit binding eingebunden werden - anschliessend kann der zu löschende code ausgewählt werden und mit schalter des datenpunktes "Wifi_Vouchers-CODES.A_Delete_Voucher.Delete" aktiviert (mit true) werden
              Image 1.png

              Image 4.png

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

                Daten kommen alle und Vouchers lassen sich generieren.
                Aber ich kann keines der beiden Netwerke schalten.
                Habe ich irgendwas übersehen?

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

                  @Chaot dann könnte es am setting liegen

                  das hier richtig konfiguriert? ganz oben im script

                  // 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" }
                  }
                  
                  Chaot 1 Reply Last reply Reply Quote 1
                  • Chaot
                    Chaot @liv-in-sky last edited by

                    @liv-in-sky Der Datenpunkt ist leer

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

                      @Chaot zeig mal deine conf
                      die id verfremden und den wlannamen über all etwas verändern

                      wieviele netze hast du definiert und wieviele daten punkte hast du für diese netze

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

                        @liv-in-sky
                        KopfTisch KopfTisch
                        Ich habe versucht den Namen der Site zu ändern. Dabei wurden die ID verändert
                        KopfTisch KopfTisch

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

                          @Chaot

                          kopfWand ist wirksamer ! 🙂

                          hätte ich aber wahrscheinlich auch vergessen zu kontrollieren

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

                            @liv-in-sky Besser Nicht. Ich habe im Büro nur Rigips. Das gibt Löcher 😧

                            Dann werde ich mal die Version aktualisieren und weiter testen.

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

                              kleines update - minimale ap infos

                              sonst keine änderung - update muss also nicht sein

                              ap infos werden alle 3 zyklen geholt

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

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

                                minimale ap infos

                                welche denn ?

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

                                  @dslraser steht in beschreibung

                                  und

                                  Image 5.png

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

                                    weiters update

                                    die ap-info's stehen auch für iqontrol zur verfügung - popup-filename: "htmlinfo.html" - siehe letztes bild der beschreibung

                                    <iframe width="100% "height="100% "frameborder="0" src="htmlinfo.html"></iframe)>
                                    

                                    es gibt auch einen info table für die vis - zum einfachen einbinden - wie erwähnt html-widget mit binding zum table-info-datenpunkt (javascript.x.WLANUnifi.Wifi_Info)

                                    dieses update bis ganz nach oben bis zum site-name ersetzen - danach die gewünschten features wieder auf "true" setzen - und falls verändert - die farben einstellen

                                    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;
                                    
                                    dslraser 2 Replies Last reply Reply Quote 0
                                    • dslraser
                                      dslraser Forum Testing Most Active @liv-in-sky last edited by

                                      @liv-in-sky

                                      funktioniert in iQontrol

                                      Bildschirmfoto 2019-09-15 um 21.24.45.png

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

                                        @liv-in-sky
                                        Ganz oben ist ein Umlaute Fehler bei Gäste, wo finde ich das im Script ?

                                        EDIT: Die Umlautefehler bekomme ich immer wenn ich aus einer Textdatei das Script kopiere.

                                        liv-in-sky 1 Reply Last reply Reply Quote 0
                                        • D
                                          dos1973 last edited by dos1973

                                          Ich gebe zu habe nicht alles gelesen, aber eine kurze Frage vorab.

                                          Bein Gast wlan ein/ ausschalten.
                                          Wird dann proviosioniert? K.a ob der Begriff stimmt, aber so ähnlich 😉

                                          Thx

                                          dslraser 1 Reply Last reply Reply Quote 0
                                          • dslraser
                                            dslraser Forum Testing Most Active @dos1973 last edited by

                                            @dos1973
                                            ja, es wird provisioniert.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            935
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

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