Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Unifi WLAN Script 2 mit Anwesenheitskontrolle

NEWS

  • Wartung am 15.11. – Forum ab 22:00 Uhr nicht erreichbar
    BluefoxB
    Bluefox
    11
    2
    198

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    7.9k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.7k

Unifi WLAN Script 2 mit Anwesenheitskontrolle

Unifi WLAN Script 2 mit Anwesenheitskontrolle

Scheduled Pinned Locked Moved JavaScript
javascriptmonitoring
1.4k Posts 46 Posters 475.9k Views 51 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • liv-in-skyL liv-in-sky

    UPDATE UPDATE UPDATE (im ersten post)

    • ich würde empfehlen, die datenpunkte unter WLANUnifi zu löschen bevor man das neue script startet. das neue script in einer kopie zu starten ist auch keine schlechte idee - aber nicht das abschalten des alten scriptes vergessen - es kamen keine neuen datenpunkte dazu, also alkes unter "AB HIER NICHTS MEHR ÄNDERN" austauschen. bitte überprüft aber, ob die settings (variablen) darüber auch alle vorhanden sind (abhängig vom datum des letzten updates)

    • es gibt wieder eines - es wird der unifi bug "begradigt", welcher abgemeldete ac-clients (wifi connected clients) als LAN geräte weiterhin anzeigt und als angemeldet zeigt - ist ein problem bei der anwesenheit (nicht jeder user hat dieses problem - es ist davon abhängig, ob ein usg installiert ist )

    • ein vorteil ist nun, dass man via vpn ins netzwerk gehen kann (mit einem wifi-client) und nicht als anwesend angezeigt wird - somit schalten sich auch keine lichter oder sonstiges ein 🙂

    • unter dem ordner WLANUnifiHelp wird dafür ein dp angelegt, welcher alle wifi-clients speichert (Others) - es kann sein, dass das script ein paar durchläufe braucht, bis es es diesen datenpunkt geschrieben hat - erst wenn dieser dp erscheint, kann man sicher sein, dass alles funktioniert

    • ferner wurde die möglichkeit eingebunden , SSID's unsichtbar zu schalten - dabei werden die AC wieder neugestertet - das script bleibt für einige zeit "stehen" und ändert keine clients. dies wird im log als warnung angezeigt - zusätzlich gibt es ja den dp "Wifi_Client_Pause", der dies anzeigt. ein nachteil - schaltet man im unifi browser diese unsichtbarkeit an oder aus, wird dies nicht im script wahrgenommen - man sollte also am besten nur über das script schalten, damit man in den datenpunkten den richtigen wert stehen hat.

    besonderen dank an die tester, die mir ihre rechner und live-umgebungen "geliehen" haben, um das script zu erstellen

    dslraserD Offline
    dslraserD Offline
    dslraser
    Forum Testing Most Active
    wrote on last edited by
    #1013

    @liv-in-sky

    hier hat übrigens Jemand den gleichen Verdacht....
    https://forum.iobroker.net/post/340053

    liv-in-skyL 1 Reply Last reply
    0
    • dslraserD dslraser

      @liv-in-sky

      hier hat übrigens Jemand den gleichen Verdacht....
      https://forum.iobroker.net/post/340053

      liv-in-skyL Offline
      liv-in-skyL Offline
      liv-in-sky
      wrote on last edited by
      #1014

      @dslraser hallo h.

      so wie es scheint, es ist tatsächlich wieder ein anderes verhalten - wenn mein handy aus dem netz verschwindet - wird bei mir im controller unter last activity "just now" angezeigt - anscheinend kommen da wieder andere werte- wie sich das mit usg auswirkt weiß ich im moment nicht

      würdest du das bitte mal testen und morgen, wenn du wieder im büro bist, kontrollieren

      unifi-skipt-ohne-abmelden-test.txt

      danke dir

      ps: ist garnicht so leicht darzustellen - das handy aus dem netz zu bekommen, obwohl alle ap'S online sind 😞

      nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

      dslraserD 3 Replies Last reply
      1
      • liv-in-skyL liv-in-sky

        @dslraser hallo h.

        so wie es scheint, es ist tatsächlich wieder ein anderes verhalten - wenn mein handy aus dem netz verschwindet - wird bei mir im controller unter last activity "just now" angezeigt - anscheinend kommen da wieder andere werte- wie sich das mit usg auswirkt weiß ich im moment nicht

        würdest du das bitte mal testen und morgen, wenn du wieder im büro bist, kontrollieren

        unifi-skipt-ohne-abmelden-test.txt

        danke dir

        ps: ist garnicht so leicht darzustellen - das handy aus dem netz zu bekommen, obwohl alle ap'S online sind 😞

        dslraserD Offline
        dslraserD Offline
        dslraser
        Forum Testing Most Active
        wrote on last edited by
        #1015

        @liv-in-sky
        mache ich.

        1 Reply Last reply
        0
        • SirDirkS Offline
          SirDirkS Offline
          SirDirk
          wrote on last edited by SirDirk
          #1016

          Nach der Installation des Scriptes komme ich wegen der folgenden Fehlermeldungen nicht weiter:

          16c6c78c-fd12-4506-92e6-fc1b41a76f73-grafik.png

          Die Zugangsdaten zum Cloud-Key sind korrekt eingetragen.

          Kann mir evtl. jemand Hinweise zur Fehlerbehebung geben?

          b2f0c71e-2c92-43f6-a21a-f99f5696dc30-grafik.png

          liv-in-skyL 1 Reply Last reply
          0
          • SirDirkS SirDirk

            Nach der Installation des Scriptes komme ich wegen der folgenden Fehlermeldungen nicht weiter:

            16c6c78c-fd12-4506-92e6-fc1b41a76f73-grafik.png

            Die Zugangsdaten zum Cloud-Key sind korrekt eingetragen.

            Kann mir evtl. jemand Hinweise zur Fehlerbehebung geben?

            b2f0c71e-2c92-43f6-a21a-f99f5696dc30-grafik.png

            liv-in-skyL Offline
            liv-in-skyL Offline
            liv-in-sky
            wrote on last edited by
            #1017

            @SirDirk evtl der sitename - bitte prüfen im controller
            Image 2.png

            nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

            SirDirkS 1 Reply Last reply
            0
            • liv-in-skyL liv-in-sky

              @SirDirk evtl der sitename - bitte prüfen im controller
              Image 2.png

              SirDirkS Offline
              SirDirkS Offline
              SirDirk
              wrote on last edited by
              #1018

              @liv-in-sky
              der Sitename stimmt überein:

              im Controller:
              6023aedc-9d5f-4bce-a602-c11de79206fa-grafik.png

              im Script:

              a853278c-89b7-4b00-a5ef-8dc5ddda0bca-grafik.png

              hast du evtl. noch eine Idee?

              dslraserD 2 Replies Last reply
              0
              • SirDirkS SirDirk

                @liv-in-sky
                der Sitename stimmt überein:

                im Controller:
                6023aedc-9d5f-4bce-a602-c11de79206fa-grafik.png

                im Script:

                a853278c-89b7-4b00-a5ef-8dc5ddda0bca-grafik.png

                hast du evtl. noch eine Idee?

                dslraserD Offline
                dslraserD Offline
                dslraser
                Forum Testing Most Active
                wrote on last edited by
                #1019

                @SirDirk
                hast Du schon die WLAN ID/ID's eingetragen ?

                SirDirkS 1 Reply Last reply
                0
                • dslraserD dslraser

                  @SirDirk
                  hast Du schon die WLAN ID/ID's eingetragen ?

                  SirDirkS Offline
                  SirDirkS Offline
                  SirDirk
                  wrote on last edited by
                  #1020

                  @dslraser
                  ja, aus der Url (hinter dem EDIT)

                  ae57ee8a-92ac-4542-84f8-cc648d3e100a-grafik.png

                  5fe9f071-84ac-45f1-80a0-74b3ffeba617-grafik.png

                  liv-in-skyL 1 Reply Last reply
                  0
                  • SirDirkS SirDirk

                    @liv-in-sky
                    der Sitename stimmt überein:

                    im Controller:
                    6023aedc-9d5f-4bce-a602-c11de79206fa-grafik.png

                    im Script:

                    a853278c-89b7-4b00-a5ef-8dc5ddda0bca-grafik.png

                    hast du evtl. noch eine Idee?

                    dslraserD Offline
                    dslraserD Offline
                    dslraser
                    Forum Testing Most Active
                    wrote on last edited by
                    #1021

                    @SirDirk sagte in Unifi WLAN Script 2 mit Anwesenheitskontrolle:

                    @liv-in-sky
                    der Sitename stimmt überein:

                    im Controller:
                    6023aedc-9d5f-4bce-a602-c11de79206fa-grafik.png

                    im Script:

                    a853278c-89b7-4b00-a5ef-8dc5ddda0bca-grafik.png

                    hast du evtl. noch eine Idee?

                    Bei mir im Controller ist der Site Name auch Default, aber im Script schon immer klein (default) geschrieben.
                    Ich weiß aber nicht ob das eine Rolle spielt ?

                    liv-in-skyL 1 Reply Last reply
                    0
                    • dslraserD dslraser

                      @SirDirk sagte in Unifi WLAN Script 2 mit Anwesenheitskontrolle:

                      @liv-in-sky
                      der Sitename stimmt überein:

                      im Controller:
                      6023aedc-9d5f-4bce-a602-c11de79206fa-grafik.png

                      im Script:

                      a853278c-89b7-4b00-a5ef-8dc5ddda0bca-grafik.png

                      hast du evtl. noch eine Idee?

                      Bei mir im Controller ist der Site Name auch Default, aber im Script schon immer klein (default) geschrieben.
                      Ich weiß aber nicht ob das eine Rolle spielt ?

                      liv-in-skyL Offline
                      liv-in-skyL Offline
                      liv-in-sky
                      wrote on last edited by
                      #1022

                      @dslraser hab ich auch gerade gesehen - würde es def. klein schreiben

                      der pfad im browser ist auch :

                      https://192.168.178.157:8443/manage/site/default/settings/site
                      

                      klein geschrieben -

                      hast du ein "extra spezielles" passwort - keine leerzeichen, keine umlaute

                      ich denke, er logt sich nicht ein

                      nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                      SirDirkS 1 Reply Last reply
                      0
                      • SirDirkS SirDirk

                        @dslraser
                        ja, aus der Url (hinter dem EDIT)

                        ae57ee8a-92ac-4542-84f8-cc648d3e100a-grafik.png

                        5fe9f071-84ac-45f1-80a0-74b3ffeba617-grafik.png

                        liv-in-skyL Offline
                        liv-in-skyL Offline
                        liv-in-sky
                        wrote on last edited by
                        #1023

                        @SirDirk und die zusätze im javascript adapter setting hast du dazugefügt

                        nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                        dslraserD 1 Reply Last reply
                        0
                        • liv-in-skyL liv-in-sky

                          @dslraser hab ich auch gerade gesehen - würde es def. klein schreiben

                          der pfad im browser ist auch :

                          https://192.168.178.157:8443/manage/site/default/settings/site
                          

                          klein geschrieben -

                          hast du ein "extra spezielles" passwort - keine leerzeichen, keine umlaute

                          ich denke, er logt sich nicht ein

                          SirDirkS Offline
                          SirDirkS Offline
                          SirDirk
                          wrote on last edited by SirDirk
                          #1024

                          @liv-in-sky
                          Ich habe ein kompliziertes Passwort aus einem PW-Manager mit Sonderzeichen und Zahlen - aber keine Umlaute - keine Leerzeichen.

                          In der JS-Instanz habe ich die folgenden Einträge:

                          14ac5649-3f90-4bff-a20d-57f21d40f249-grafik.png

                          @dslraser
                          nach dem klein-schreiben von default funktioniert nun der Login - es kommt jetzt aber folgende Fehlermeldung:

                          099831ea-0029-4bf4-944c-029e3a33ebfd-grafik.png

                          Irgendwie komme ich da auf folgende Zeilen, denn es sind keine MephistoFon-Einträge in den Datenpunkten.

                          dce2b33d-8d0b-42ff-a2c2-aefe467fc05f-grafik.png

                          Danke für die Hilfe beim Login - habt ihr evtl. eine Idee zu der neuen Fehlermeldung?

                          die folgenden Log-Einträge sind auch noch vorhanden:

                          7754af29-a0a2-45cb-9626-81120153884d-grafik.png

                          dslraserD liv-in-skyL 2 Replies Last reply
                          0
                          • SirDirkS SirDirk

                            @liv-in-sky
                            Ich habe ein kompliziertes Passwort aus einem PW-Manager mit Sonderzeichen und Zahlen - aber keine Umlaute - keine Leerzeichen.

                            In der JS-Instanz habe ich die folgenden Einträge:

                            14ac5649-3f90-4bff-a20d-57f21d40f249-grafik.png

                            @dslraser
                            nach dem klein-schreiben von default funktioniert nun der Login - es kommt jetzt aber folgende Fehlermeldung:

                            099831ea-0029-4bf4-944c-029e3a33ebfd-grafik.png

                            Irgendwie komme ich da auf folgende Zeilen, denn es sind keine MephistoFon-Einträge in den Datenpunkten.

                            dce2b33d-8d0b-42ff-a2c2-aefe467fc05f-grafik.png

                            Danke für die Hilfe beim Login - habt ihr evtl. eine Idee zu der neuen Fehlermeldung?

                            die folgenden Log-Einträge sind auch noch vorhanden:

                            7754af29-a0a2-45cb-9626-81120153884d-grafik.png

                            dslraserD Offline
                            dslraserD Offline
                            dslraser
                            Forum Testing Most Active
                            wrote on last edited by
                            #1025

                            @SirDirk

                            Kannst Du mal diesen Teil ( also ohne Deine Zugangsdaten ab unter Const apName (ohne Deine AP'S) posten

                            //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 = [] //Blacklist - diese clients werden nicht berücksichtigt - aber nur wenn ein alias im controller definiert ist
                            const checkConnType=["Heiko-Note10","Kerstin-Note8"];  // 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 =30000; // es ist nicht zu empfehlen unter 20000 (20 sekunden) zu gehen
                            const abfageoffset = 40000; // 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 = true;
                            let anwesenheit = true; // beim setzen von true auf false die verzeichnisstruktur unter iobroker-objects "von hand" löschen
                            let vouchers = true;
                            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=true; 
                            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 =true; //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="blue";
                            let schriftart="Helvetica";  //möglich: Helvetica,Serif
                            
                            //-----------------AB HIER NICHTS MEHR ÄNDERN------------------------------------------------------
                            
                            const versionNr = "12122019-3.0"
                            const dpPrefix = "javascript."+ instance +".";
                            // Hier Definition iqontrol-Style für Popup
                            const format = "<!DOCTYPE html><html lang=\"de\"><head><title>Voucher</title><meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"></head><body><table style=\"color:"+color_iqontrol_text_voucher_in_table+";text-align:center; font-family:"+schriftart+";background-image: linear-gradient(42deg,transparent,"+color_iqontrol_voucher_gradient1+");\">";
                            const format2 = "<!DOCTYPE html><html lang=\"de\"><head><title>Clients</title><meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"></head><body><table style=\"color:"+color_iqontrol_text_client_in_table+"; font-family:"+schriftart+";background-image: linear-gradient(42deg,transparent," +color_iqontrol_client_gradient1+");\">";
                            const format3 = "<table style=\"color:"+color_iqontrol_text__client_letzteAenderung_VIS_Text+"; font-family:"+schriftart+";\">";
                            const format6 ="<tr><td>&ensp;</td><td>&ensp;</td></tr> <tr style=\"color:"+color_iqontrol_text__voucher_ueberschrift+";\">"
                            const apHead = "<!DOCTYPE html><html lang=\"de\"><head><title>Voucher</title><meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"></head><body>"
                            const apTable = "<table style=\"color:"+color_iqontrol_text_client_in_table+"; font-family:"+schriftart+";background-image: linear-gradient(42deg,transparent," +color_iqontrol_client_gradient1+");\">";
                            const tableAus = "</table>";
                            
                            
                            
                            const request = require('request-promise-native').defaults({ rejectUnauthorized: false });
                            
                            const pathVoucher = "/htmlvoucher.html"; const pathClient = "/htmlclients.html"; const pathInfo = "/htmlinfo.html"; const pathAlarm = "/htmlalarm.html"; const pathAbmelung = "/htmlLog.html";
                            const pathOnlyWLAN = "/htmlwlan.html";const pathOnlyLAN = "/htmllan.html";const pathOnlyDISC = "/htmldisc.html";
                            let cookies = [];
                            let loggedIn = false;
                            let debug = false;
                            let mylogs = false;
                            let syslogs = false;
                            let xxClientxx="Heiko-Note10";"Kerstin-Note8"; // falls der name leerzeichen beinhaltet müssen diese mit _ ersetzt werden z.b : "liv in sky handy"  zu  "liv_in_sky_handy"
                            let xxClientxxIndex=0;
                            let clientPause = false;
                            let clientPauseVal;
                            let wifiDPs = [];
                            let wifiDPsHide = [];
                            let vouchiesDPs=[];
                            let myname = 'hostname';
                            let respv; let respc; let respw; let resph; let respgv; let respa; let respal; //geholte Daten
                            let countFalse=1; 
                            let statusarr=[];
                            let writeFileVar =0;
                            let listValue=[];            //iqontrol löschen kachel
                            let listValue2;              //iqontrol löschen kachel
                            let listValue3;              //iqontrol löschen VIS
                            let nichtSchalten=true;   
                            //let nichtSchalten2=false;    //iqontrol löschen kachel
                            let versuch;
                            let listeDatenpunkte = [];
                            let listeDatenpunkteControl=[];
                            let countie;
                            let binAmArbeiten=false;
                            var midnight=false;
                            let apListeTable;
                            let apListe;
                            let healthListe;
                            let healthListeTable;
                            let notSeen=[];
                            let ipArrFehlt=[];
                            var notseenLengthOld;
                            var notseenLength;
                            let lastChange=[];
                            let mybodyVouchers2; // create-one-click-standard-voucher
                            let expire_var; // create-one-click-standard-voucher
                            let n_var; // create-one-click-standard-voucher
                            let quota_var; // create-one-click-standard-voucher
                            let note_var; // create-one-click-standard-voucher
                            let up_var; // create-one-click-standard-voucher
                            let down_var; // create-one-click-standard-voucher
                            let MBytes_var; // create-one-click-standard-voucher
                            let testerral=false; let testerrc=false; let testerrl=false; let testerrv=false; let testerrs=false; let testerrh=false; let testerrcv=false; let testerrdv=false; let testerrws=false; let testerrap=false; 
                            var scriptCounter=0;
                            let health = true;  // Angaben zum Systemstatus - die Healtdaten werden nur alle 5 Abfragezyklen geholt
                            let alarmSwitch =false;
                            let alarmCounter =0;
                            let firstTime=0;
                            let mybodyVouchers;
                            let monthChangeData=false;
                            let checkNetwork=false;
                            var wifiLength=0;
                                 for(let wifi_name in wifis) {      
                               wifiLength++; }
                            
                            

                            SirDirkS 1 Reply Last reply
                            0
                            • liv-in-skyL liv-in-sky

                              @SirDirk und die zusätze im javascript adapter setting hast du dazugefügt

                              dslraserD Offline
                              dslraserD Offline
                              dslraser
                              Forum Testing Most Active
                              wrote on last edited by dslraser
                              #1026

                              @liv-in-sky

                              ich finde es ein bisschen "unglücklich" das dieser Punkt

                              let xxClientxx="Heiko-Note10";"Kerstin-Note8"; // falls der name leerzeichen beinhaltet müssen diese mit _ ersetzt werden z.b : "liv in sky handy"  zu  "liv_in_sky_handy"
                              

                              unter "ab hier nichts mehr ändern" steht. Ich vermute da auch den Fehler von @SirDirk , kann das sein ?
                              Weil da eigentlich nichts geändert werden soll, aber die eigenen Geräte da rein müssen.

                              SirDirkS 1 Reply Last reply
                              0
                              • dslraserD dslraser

                                @SirDirk

                                Kannst Du mal diesen Teil ( also ohne Deine Zugangsdaten ab unter Const apName (ohne Deine AP'S) posten

                                //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 = [] //Blacklist - diese clients werden nicht berücksichtigt - aber nur wenn ein alias im controller definiert ist
                                const checkConnType=["Heiko-Note10","Kerstin-Note8"];  // 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 =30000; // es ist nicht zu empfehlen unter 20000 (20 sekunden) zu gehen
                                const abfageoffset = 40000; // 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 = true;
                                let anwesenheit = true; // beim setzen von true auf false die verzeichnisstruktur unter iobroker-objects "von hand" löschen
                                let vouchers = true;
                                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=true; 
                                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 =true; //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="blue";
                                let schriftart="Helvetica";  //möglich: Helvetica,Serif
                                
                                //-----------------AB HIER NICHTS MEHR ÄNDERN------------------------------------------------------
                                
                                const versionNr = "12122019-3.0"
                                const dpPrefix = "javascript."+ instance +".";
                                // Hier Definition iqontrol-Style für Popup
                                const format = "<!DOCTYPE html><html lang=\"de\"><head><title>Voucher</title><meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"></head><body><table style=\"color:"+color_iqontrol_text_voucher_in_table+";text-align:center; font-family:"+schriftart+";background-image: linear-gradient(42deg,transparent,"+color_iqontrol_voucher_gradient1+");\">";
                                const format2 = "<!DOCTYPE html><html lang=\"de\"><head><title>Clients</title><meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"></head><body><table style=\"color:"+color_iqontrol_text_client_in_table+"; font-family:"+schriftart+";background-image: linear-gradient(42deg,transparent," +color_iqontrol_client_gradient1+");\">";
                                const format3 = "<table style=\"color:"+color_iqontrol_text__client_letzteAenderung_VIS_Text+"; font-family:"+schriftart+";\">";
                                const format6 ="<tr><td>&ensp;</td><td>&ensp;</td></tr> <tr style=\"color:"+color_iqontrol_text__voucher_ueberschrift+";\">"
                                const apHead = "<!DOCTYPE html><html lang=\"de\"><head><title>Voucher</title><meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"></head><body>"
                                const apTable = "<table style=\"color:"+color_iqontrol_text_client_in_table+"; font-family:"+schriftart+";background-image: linear-gradient(42deg,transparent," +color_iqontrol_client_gradient1+");\">";
                                const tableAus = "</table>";
                                
                                
                                
                                const request = require('request-promise-native').defaults({ rejectUnauthorized: false });
                                
                                const pathVoucher = "/htmlvoucher.html"; const pathClient = "/htmlclients.html"; const pathInfo = "/htmlinfo.html"; const pathAlarm = "/htmlalarm.html"; const pathAbmelung = "/htmlLog.html";
                                const pathOnlyWLAN = "/htmlwlan.html";const pathOnlyLAN = "/htmllan.html";const pathOnlyDISC = "/htmldisc.html";
                                let cookies = [];
                                let loggedIn = false;
                                let debug = false;
                                let mylogs = false;
                                let syslogs = false;
                                let xxClientxx="Heiko-Note10";"Kerstin-Note8"; // falls der name leerzeichen beinhaltet müssen diese mit _ ersetzt werden z.b : "liv in sky handy"  zu  "liv_in_sky_handy"
                                let xxClientxxIndex=0;
                                let clientPause = false;
                                let clientPauseVal;
                                let wifiDPs = [];
                                let wifiDPsHide = [];
                                let vouchiesDPs=[];
                                let myname = 'hostname';
                                let respv; let respc; let respw; let resph; let respgv; let respa; let respal; //geholte Daten
                                let countFalse=1; 
                                let statusarr=[];
                                let writeFileVar =0;
                                let listValue=[];            //iqontrol löschen kachel
                                let listValue2;              //iqontrol löschen kachel
                                let listValue3;              //iqontrol löschen VIS
                                let nichtSchalten=true;   
                                //let nichtSchalten2=false;    //iqontrol löschen kachel
                                let versuch;
                                let listeDatenpunkte = [];
                                let listeDatenpunkteControl=[];
                                let countie;
                                let binAmArbeiten=false;
                                var midnight=false;
                                let apListeTable;
                                let apListe;
                                let healthListe;
                                let healthListeTable;
                                let notSeen=[];
                                let ipArrFehlt=[];
                                var notseenLengthOld;
                                var notseenLength;
                                let lastChange=[];
                                let mybodyVouchers2; // create-one-click-standard-voucher
                                let expire_var; // create-one-click-standard-voucher
                                let n_var; // create-one-click-standard-voucher
                                let quota_var; // create-one-click-standard-voucher
                                let note_var; // create-one-click-standard-voucher
                                let up_var; // create-one-click-standard-voucher
                                let down_var; // create-one-click-standard-voucher
                                let MBytes_var; // create-one-click-standard-voucher
                                let testerral=false; let testerrc=false; let testerrl=false; let testerrv=false; let testerrs=false; let testerrh=false; let testerrcv=false; let testerrdv=false; let testerrws=false; let testerrap=false; 
                                var scriptCounter=0;
                                let health = true;  // Angaben zum Systemstatus - die Healtdaten werden nur alle 5 Abfragezyklen geholt
                                let alarmSwitch =false;
                                let alarmCounter =0;
                                let firstTime=0;
                                let mybodyVouchers;
                                let monthChangeData=false;
                                let checkNetwork=false;
                                var wifiLength=0;
                                     for(let wifi_name in wifis) {      
                                   wifiLength++; }
                                
                                

                                SirDirkS Offline
                                SirDirkS Offline
                                SirDirk
                                wrote on last edited by
                                #1027

                                @dslraser sagte in Unifi WLAN Script 2 mit Anwesenheitskontrolle:

                                Kannst Du mal diesen Teil ( also ohne Deine Zugangsdaten ab unter Const apName (ohne Deine AP'S) posten

                                Folgt hier:

                                
                                //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 = [] //Blacklist - diese clients werden nicht berücksichtigt - aber nur wenn ein alias im controller definiert ist
                                const checkConnType=["MephistoFon"];  // 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 = 45000; // 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 = true;
                                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------------------------------------------------------
                                
                                const versionNr = "12122019-3.0"
                                const dpPrefix = "javascript."+ instance +".";
                                // Hier Definition iqontrol-Style für Popup
                                const format = "<!DOCTYPE html><html lang=\"de\"><head><title>Voucher</title><meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"></head><body><table style=\"color:"+color_iqontrol_text_voucher_in_table+";text-align:center; font-family:"+schriftart+";background-image: linear-gradient(42deg,transparent,"+color_iqontrol_voucher_gradient1+");\">";
                                const format2 = "<!DOCTYPE html><html lang=\"de\"><head><title>Clients</title><meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"></head><body><table style=\"color:"+color_iqontrol_text_client_in_table+"; font-family:"+schriftart+";background-image: linear-gradient(42deg,transparent," +color_iqontrol_client_gradient1+");\">";
                                const format3 = "<table style=\"color:"+color_iqontrol_text__client_letzteAenderung_VIS_Text+"; font-family:"+schriftart+";\">";
                                const format6 ="<tr><td>&ensp;</td><td>&ensp;</td></tr> <tr style=\"color:"+color_iqontrol_text__voucher_ueberschrift+";\">"
                                const apHead = "<!DOCTYPE html><html lang=\"de\"><head><title>Voucher</title><meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"></head><body>"
                                const apTable = "<table style=\"color:"+color_iqontrol_text_client_in_table+"; font-family:"+schriftart+";background-image: linear-gradient(42deg,transparent," +color_iqontrol_client_gradient1+");\">";
                                const tableAus = "</table>";
                                
                                
                                
                                const request = require('request-promise-native').defaults({ rejectUnauthorized: false });
                                
                                const pathVoucher = "/htmlvoucher.html"; const pathClient = "/htmlclients.html"; const pathInfo = "/htmlinfo.html"; const pathAlarm = "/htmlalarm.html"; const pathAbmelung = "/htmlLog.html";
                                const pathOnlyWLAN = "/htmlwlan.html";const pathOnlyLAN = "/htmllan.html";const pathOnlyDISC = "/htmldisc.html";
                                let cookies = [];
                                let loggedIn = false;
                                let debug = false;
                                let mylogs = false;
                                let syslogs = false;
                                let xxClientxx="Heiko-Note10"; // falls der name leerzeichen beinhaltet müssen diese mit _ ersetzt werden z.b : "liv in sky handy"  zu  "liv_in_sky_handy"
                                let xxClientxxIndex=0;
                                let clientPause = false;
                                let clientPauseVal;
                                let wifiDPs = [];
                                
                                let wifiDPsHide = [];
                                let vouchiesDPs=[];
                                let myname = 'hostname';
                                let respv; let respc; let respw; let resph; let respgv; let respa; let respal; //geholte Daten
                                let countFalse=1; 
                                let statusarr=[];
                                let writeFileVar =0;
                                let listValue=[];            //iqontrol löschen kachel
                                let listValue2;              //iqontrol löschen kachel
                                let listValue3;              //iqontrol löschen VIS
                                let nichtSchalten=true;   
                                //let nichtSchalten2=false;    //iqontrol löschen kachel
                                let versuch;
                                let listeDatenpunkte = [];
                                let listeDatenpunkteControl=[];
                                let countie;
                                let binAmArbeiten=false;
                                var midnight=false;
                                let apListeTable;
                                let apListe;
                                let healthListe;
                                let healthListeTable;
                                let notSeen=[];
                                let ipArrFehlt=[];
                                var notseenLengthOld;
                                var notseenLength;
                                let lastChange=[];
                                let mybodyVouchers2; // create-one-click-standard-voucher
                                let expire_var; // create-one-click-standard-voucher
                                let n_var; // create-one-click-standard-voucher
                                let quota_var; // create-one-click-standard-voucher
                                let note_var; // create-one-click-standard-voucher
                                let up_var; // create-one-click-standard-voucher
                                let down_var; // create-one-click-standard-voucher
                                let MBytes_var; // create-one-click-standard-voucher
                                let testerral=false; let testerrc=false; let testerrl=false; let testerrv=false; let testerrs=false; let testerrh=false; let testerrcv=false; let testerrdv=false; let testerrws=false; let testerrap=false; 
                                var scriptCounter=0;
                                let health = true;  // Angaben zum Systemstatus - die Healtdaten werden nur alle 5 Abfragezyklen geholt
                                let alarmSwitch =false;
                                let alarmCounter =0;
                                let firstTime=0;
                                let mybodyVouchers;
                                let monthChangeData=false;
                                let checkNetwork=false;
                                var wifiLength=0;
                                      for(let wifi_name in wifis) {      
                                    wifiLength++; }
                                
                                
                                 if (aliasname)  myname="name";
                                 if (ohneClientAbfrage) anwesenheit=false;
                                 writeMyFile("neugestartet ... bitte warten", pathClient);
                                 writeMyFile("neugestartet ... bitte warten", pathVoucher);
                                 writeMyFile("neugestartet ... bitte warten", pathAlarm);
                                 writeMyFile("neugestartet ... bitte warten", pathInfo);
                                 writeMyFile("neugestartet ... bitte warten", pathOnlyWLAN);
                                 writeMyFile("neugestartet ... bitte warten", pathOnlyLAN);
                                 writeMyFile("neugestartet ... bitte warten", pathOnlyDISC);
                                 if ( !anwesenheit) {writeMyFile("variable anwesenheit und/oder iqontrol ist nicht im unifiscript aktiviert - auf true setzen", pathClient);
                                                     writeMyFile("variable anwesenheit und/oder iqontrol ist nicht im unifiscript aktiviert - auf true setzen", pathOnlyWLAN);
                                                     writeMyFile("variable anwesenheit und/oder iqontrol ist nicht im unifiscript aktiviert - auf true setzen", pathOnlyLAN);
                                                     writeMyFile("variable anwesenheit und/oder iqontrol ist nicht im unifiscript aktiviert - auf true setzen", pathOnlyDISC);}
                                
                                
                                 if ( !vouchers && !iqontrol) writeMyFile("variable vouchers und/oder iqontrol ist nicht im unifiscript aktiviert - auf true setzen", pathVoucher);
                                
                                for(let wifi_name in wifis) {
                                     wifiDPsHide.push(dpPrefix + "WLANUnifi.WLANSSIDsHide." + wifis[wifi_name].name);
                                     createState(dpPrefix + "WLANUnifi.WLANSSIDsHide."+ wifi_name, false, { name: wifis[wifi_name].desc, role: 'switch', read: true, write: true, type: "boolean" });}
                                
                                 //Erstelle Datenpunkte für die WLANs automatisch
                                 for(let wifi_name in wifis) {
                                     wifiDPs.push(dpPrefix + "WLANUnifi." + wifis[wifi_name].name);
                                     createState(dpPrefix + "WLANUnifi."+ wifi_name, { name: wifis[wifi_name].desc, role: 'switch', read: true, write: true, type: "boolean" });}
                                
                                 createState(dpPrefix + "WLANUnifi.Wifi_Clients", "not available",{ name: 'Clients_HTML_Table_VIS',  role: 'string', read:  true,  write: true,});
                                 createState(dpPrefix + "WLANUnifi.Wifi_ClientsOnlyLAN", "not available",{ name: 'Clients_LAN_HTML_Table_VIS',  role: 'string', read:  true,  write: true,});
                                 createState(dpPrefix + "WLANUnifi.Wifi_ClientsOnlyWLAN", "not available",{ name: 'Clients__WLAN_HTML_Table_VIS',  role: 'string', read:  true,  write: true,});
                                 createState(dpPrefix + "WLANUnifi.Wifi_ClientsOnlyDISC", "not available",{ name: 'Clients__Disconnected_HTML_Table_VIS',  role: 'string', read:  true,  write: true,});
                                 createState(dpPrefix + "WLANUnifi.Wifi_Clients_Anzahl_LAN",  { name: 'Wifi_Clients_Anzahl_LAN', desc: 'Wifi_Clients_Anzahl_LAN', type: 'number',def:0, unit: '', min: '0', max: '100', role: '',read: true, write: false });
                                 createState(dpPrefix + "WLANUnifi.Wifi_Clients_Anzahl_WLAN",  { name: 'Wifi_Clients_Anzahl_WLAN', desc: 'Wifi_Clients_Anzahl_WLAN', type: 'number',def:0, unit: '', min: '0', max: '100', role: '',read: true, write: false });
                                 createState(dpPrefix + "WLANUnifi.Wifi_Clients_Anzahl_DISC",  { name: 'Wifi_Clients_Anzahl_DISC', desc: 'Wifi_Clients_Anzahl_DISC', type: 'number',def:0, unit: '', min: '0', max: '100', role: '',read: true, write: false });
                                 createState(dpPrefix + "WLANUnifi.SiteLED", false, { name: 'SiteLED',  type: 'boolean', role: 'switch', read:  true,  write: true,});
                                 createState(dpPrefix + "WLANUnifi.Client_WhiteList", "default", { name: 'Client_WhiteList_Filter_String', desc: 'Alarm_Table', type: 'string', unit: '',  role: '',read: true, write: true }); 
                                 createState(dpPrefix + "WLANUnifi.Alarm.Alarm", { name: 'Alarm_Table_not_archieved', desc: 'Alarm_Table', type: 'string', unit: '',  role: '',read: true, write: true }); 
                                 createState(dpPrefix + "WLANUnifi.Missing_Name", "not available", { name: 'Missing_Name', desc: 'Missing_Name', type: 'string', unit: '',  role: '',read: true, write: true }); 
                                 createState(dpPrefix + "WLANUnifi.Alarm.Alarm_Anzahl", { name: 'Alarm_Anzahl', desc: 'Alarm_Table', type: 'number', unit: '',  role: '',read: true, write: true });
                                 createState(dpPrefix + "WLANUnifi.ZyklusZaehler", 1, { name: 'ZyklusZaehler', desc: 'ZyklusZaehler', type: 'number', unit: '',  role: '',read: true, write: true });
                                 createState(dpPrefix + "WLANUnifi.xxxScriptVersionxxx", versionNr,{ name: 'ScriptVersion', desc: 'ScriptVersion', type: 'string', unit: '',  role: '',read: true, write: true });
                                 if (anwesenheit) createState(dpPrefix + "WLANUnifi.Wifi_Clients_Log", { name: 'Clients_HTML_Table_VIS_Log',  role: 'string', read:  true,  write: true,});
                                
                                 var foo = (aliasname) ? true : false;
                                 createState(dpPrefix + "WLANUnifi.AliasName", foo,  { name: ' AliasName',  desc:  'schaltet Aliasnamen ein', role: 'switch', type: 'boolean', read:  true,  write: true,
                                            }  , function() {setStateDelayed(dpPrefix + "WLANUnifi.AliasName", foo, 200)});
                                
                                 //createState(dpPrefix + "WLANUnifi.Aussortiert", { name: 'Aussortiert',  role: 'string', read:  true,  write: true,});
                                
                                
                                 if (vouchers) {
                                  createState(dpPrefix + "WLANUnifi.Wifi_Vouchers", { name: 'Vouchers_HTML_Table_VIS',  role: 'string', read:  true,  write: true,});
                                  createState(dpPrefix + "WLANUnifi.Wifi_Vouchers_List", { name: 'Vouchers_ID_List',  role: 'string', read:  true,  write: true,});
                                  createState(dpPrefix + "WLANUnifi.Wifi_Vouchers_CodeList", { name: 'Vouchers_Texte_Delete_VIS_Widget',  role: 'string', read:  true,  write: true,});
                                  createState(dpPrefix + "WLANUnifi.Wifi_Vouchers_CodeList2", { name: 'Vouchers_Werte_Delete_VIS_Widget',  role: 'string', read:  true,  write: true,});
                                  createState(dpPrefix + "WLANUnifi.Wifi_Vouchers_ValueCodeList", { name: 'Vouchers_ValueList_IQontrol', desc:"ValueCodeList", role: "", type:'number', states: "1:please wait ...;2:refresh webpage", def:1, min: 0, max: 20,  read:  true,  write: true,});
                                  createState(dpPrefix + "WLANUnifi.Wifi_Vouchers-CODES.A_New_Voucher.Create", false,  { name: 'A_New_Voucher_Create',  role: 'switch', type: 'boolean', read:  true,  write: true,});
                                  createState(dpPrefix + "WLANUnifi.Wifi_Vouchers_DeleteVIS",   { name: 'Vouchers_Schalter_Delete_VIS_Widget',  role: 'switch', type: 'number', read:  true,  write: true,});
                                  createState(dpPrefix + "WLANUnifi.Wifi_Vouchers_CreateStandard", 1,  { name: 'Vouchers_Schalter_Create_VIS_Widget',  role: 'switch', type: 'number', read:  true,  write: true,});
                                  //createState(dpPrefix + "WLANUnifi.Wifi_Create_Standard_Voucher", false,  { name: 'A_Delete_Voucher',  role: 'switch', type: 'boolean', read:  true,  write: true,});
                                  createState(dpPrefix + "WLANUnifi.Wifi_Vouchers-CODES.A_Delete_Voucher.Delete", false,  { name: 'Voucher_Delete__Botton_VIS',  role: 'switch', type: 'boolean', read:  true,  write: true,});
                                  createState(dpPrefix + "WLANUnifi.Wifi_Vouchers-CODES.A_Delete_Voucher.Voucher_ID", "must be set",{ name: 'A_Delete_Voucher.Voucher_ID', role: 'string', read:  true,  write: true,});
                                  createState(dpPrefix + "WLANUnifi.Wifi_Vouchers-CODES.A_New_Voucher.Dauer", "must be set",{ name: ' A_New_Voucher_Dauer',  role: 'string', read:  true,  write: true,});
                                  createState(dpPrefix + "WLANUnifi.Wifi_Vouchers-CODES.A_New_Voucher.MultiUse", "must be set",{ name: ' A_New_Voucher_MultiUse',  role: 'string', read:  true,  write: true,});
                                  createState(dpPrefix + "WLANUnifi.Wifi_Vouchers-CODES.A_New_Voucher.Anzahl", "must be set",{ name: ' A_New_Voucher_Anzahl',  role: 'string', read:  true,  write: true,});
                                  createState(dpPrefix + "WLANUnifi.Wifi_Vouchers-CODES.A_New_Voucher.Notiz", "",{ name: ' A_New_Voucher_Notiz',  role: 'string', read:  true,  write: true,});
                                  createState(dpPrefix + "WLANUnifi.Wifi_Vouchers-CODES.A_New_Voucher.Upload", "",{ name: ' A_New_Voucher_Uplaod',  role: 'string', read:  true,  write: true,});
                                  createState(dpPrefix + "WLANUnifi.Wifi_Vouchers-CODES.A_New_Voucher.Download", "",{ name: ' A_New_Voucher_Download',  role: 'string', read:  true,  write: true,});
                                  createState(dpPrefix + "WLANUnifi.Wifi_Vouchers-CODES.A_New_Voucher.Mb_Begrenzung", "", { name: ' A_New_Voucher_Mb_Begrenzung',  role: 'string', read:  true,  write: true,});
                                
                                for (var i = 1; i < 21; i++) { 
                                    var x=i.toString();
                                    if (i<10) x="0"+x;
                                   createState(dpPrefix + "WLANUnifi.Wifi_Vouchers-CODES.CODE"+x, { name: 'Unifi Voucher_Code'+x,  role: 'string', read:  true,  write: true, });
                                   createState(dpPrefix + "WLANUnifi.Wifi_Vouchers-CODES.CODE"+x+".code"+x, { name: 'Unifi Voucher_Code_code'+x,  role: 'string', read:  true,  write: true, });    
                                   createState(dpPrefix + "WLANUnifi.Wifi_Vouchers-CODES.CODE"+x+".erstellt", { name: 'Unifi Voucher_Code_erstellt'+x,  role: 'string', read:  true,  write: true, });
                                   createState(dpPrefix + "WLANUnifi.Wifi_Vouchers-CODES.CODE"+x+".dauer", { name: 'Unifi Voucher_Code_duration'+x,  role: 'string', read:  true,  write: true, });
                                   createState(dpPrefix + "WLANUnifi.Wifi_Vouchers-CODES.CODE"+x+".abgelaufen", { name: 'Unifi Voucher_Code_expires'+x,  role: 'string', read:  true, write: true, });
                                   createState(dpPrefix + "WLANUnifi.Wifi_Vouchers-CODES.CODE"+x+".id", { name: 'Unifi Voucher_Code_id'+x,  role: 'string', read:  true,  write: true, });
                                   createState(dpPrefix + "WLANUnifi.Wifi_Vouchers-CODES.CODE"+x+".notiz", { name: 'Unifi Voucher_Code_notiz'+x,  role: 'string', read:  true,  write: true, });
                                }
                                    let vouchiesHelper=""  //Werteliste-Datenpunkt für StandardVouchies
                                    let vouchiesHelper2="Wähle Standard;"
                                    let vouchiesHelper3="1;"
                                     countie=0;
                                dslraserD 1 Reply Last reply
                                0
                                • dslraserD dslraser

                                  @liv-in-sky

                                  ich finde es ein bisschen "unglücklich" das dieser Punkt

                                  let xxClientxx="Heiko-Note10";"Kerstin-Note8"; // falls der name leerzeichen beinhaltet müssen diese mit _ ersetzt werden z.b : "liv in sky handy"  zu  "liv_in_sky_handy"
                                  

                                  unter "ab hier nichts mehr ändern" steht. Ich vermute da auch den Fehler von @SirDirk , kann das sein ?
                                  Weil da eigentlich nichts geändert werden soll, aber die eigenen Geräte da rein müssen.

                                  SirDirkS Offline
                                  SirDirkS Offline
                                  SirDirk
                                  wrote on last edited by
                                  #1028

                                  @dslraser

                                  unter dem Teil "//-----------------AB HIER NICHTS MEHR ÄNDERN------------------------------------------------------" habe ich nichts geändert.

                                  Was muss denn da rein?

                                  1 Reply Last reply
                                  0
                                  • SirDirkS SirDirk

                                    @dslraser sagte in Unifi WLAN Script 2 mit Anwesenheitskontrolle:

                                    Kannst Du mal diesen Teil ( also ohne Deine Zugangsdaten ab unter Const apName (ohne Deine AP'S) posten

                                    Folgt hier:

                                    
                                    //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 = [] //Blacklist - diese clients werden nicht berücksichtigt - aber nur wenn ein alias im controller definiert ist
                                    const checkConnType=["MephistoFon"];  // 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 = 45000; // 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 = true;
                                    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------------------------------------------------------
                                    
                                    const versionNr = "12122019-3.0"
                                    const dpPrefix = "javascript."+ instance +".";
                                    // Hier Definition iqontrol-Style für Popup
                                    const format = "<!DOCTYPE html><html lang=\"de\"><head><title>Voucher</title><meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"></head><body><table style=\"color:"+color_iqontrol_text_voucher_in_table+";text-align:center; font-family:"+schriftart+";background-image: linear-gradient(42deg,transparent,"+color_iqontrol_voucher_gradient1+");\">";
                                    const format2 = "<!DOCTYPE html><html lang=\"de\"><head><title>Clients</title><meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"></head><body><table style=\"color:"+color_iqontrol_text_client_in_table+"; font-family:"+schriftart+";background-image: linear-gradient(42deg,transparent," +color_iqontrol_client_gradient1+");\">";
                                    const format3 = "<table style=\"color:"+color_iqontrol_text__client_letzteAenderung_VIS_Text+"; font-family:"+schriftart+";\">";
                                    const format6 ="<tr><td>&ensp;</td><td>&ensp;</td></tr> <tr style=\"color:"+color_iqontrol_text__voucher_ueberschrift+";\">"
                                    const apHead = "<!DOCTYPE html><html lang=\"de\"><head><title>Voucher</title><meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"></head><body>"
                                    const apTable = "<table style=\"color:"+color_iqontrol_text_client_in_table+"; font-family:"+schriftart+";background-image: linear-gradient(42deg,transparent," +color_iqontrol_client_gradient1+");\">";
                                    const tableAus = "</table>";
                                    
                                    
                                    
                                    const request = require('request-promise-native').defaults({ rejectUnauthorized: false });
                                    
                                    const pathVoucher = "/htmlvoucher.html"; const pathClient = "/htmlclients.html"; const pathInfo = "/htmlinfo.html"; const pathAlarm = "/htmlalarm.html"; const pathAbmelung = "/htmlLog.html";
                                    const pathOnlyWLAN = "/htmlwlan.html";const pathOnlyLAN = "/htmllan.html";const pathOnlyDISC = "/htmldisc.html";
                                    let cookies = [];
                                    let loggedIn = false;
                                    let debug = false;
                                    let mylogs = false;
                                    let syslogs = false;
                                    let xxClientxx="Heiko-Note10"; // falls der name leerzeichen beinhaltet müssen diese mit _ ersetzt werden z.b : "liv in sky handy"  zu  "liv_in_sky_handy"
                                    let xxClientxxIndex=0;
                                    let clientPause = false;
                                    let clientPauseVal;
                                    let wifiDPs = [];
                                    
                                    let wifiDPsHide = [];
                                    let vouchiesDPs=[];
                                    let myname = 'hostname';
                                    let respv; let respc; let respw; let resph; let respgv; let respa; let respal; //geholte Daten
                                    let countFalse=1; 
                                    let statusarr=[];
                                    let writeFileVar =0;
                                    let listValue=[];            //iqontrol löschen kachel
                                    let listValue2;              //iqontrol löschen kachel
                                    let listValue3;              //iqontrol löschen VIS
                                    let nichtSchalten=true;   
                                    //let nichtSchalten2=false;    //iqontrol löschen kachel
                                    let versuch;
                                    let listeDatenpunkte = [];
                                    let listeDatenpunkteControl=[];
                                    let countie;
                                    let binAmArbeiten=false;
                                    var midnight=false;
                                    let apListeTable;
                                    let apListe;
                                    let healthListe;
                                    let healthListeTable;
                                    let notSeen=[];
                                    let ipArrFehlt=[];
                                    var notseenLengthOld;
                                    var notseenLength;
                                    let lastChange=[];
                                    let mybodyVouchers2; // create-one-click-standard-voucher
                                    let expire_var; // create-one-click-standard-voucher
                                    let n_var; // create-one-click-standard-voucher
                                    let quota_var; // create-one-click-standard-voucher
                                    let note_var; // create-one-click-standard-voucher
                                    let up_var; // create-one-click-standard-voucher
                                    let down_var; // create-one-click-standard-voucher
                                    let MBytes_var; // create-one-click-standard-voucher
                                    let testerral=false; let testerrc=false; let testerrl=false; let testerrv=false; let testerrs=false; let testerrh=false; let testerrcv=false; let testerrdv=false; let testerrws=false; let testerrap=false; 
                                    var scriptCounter=0;
                                    let health = true;  // Angaben zum Systemstatus - die Healtdaten werden nur alle 5 Abfragezyklen geholt
                                    let alarmSwitch =false;
                                    let alarmCounter =0;
                                    let firstTime=0;
                                    let mybodyVouchers;
                                    let monthChangeData=false;
                                    let checkNetwork=false;
                                    var wifiLength=0;
                                          for(let wifi_name in wifis) {      
                                        wifiLength++; }
                                    
                                    
                                     if (aliasname)  myname="name";
                                     if (ohneClientAbfrage) anwesenheit=false;
                                     writeMyFile("neugestartet ... bitte warten", pathClient);
                                     writeMyFile("neugestartet ... bitte warten", pathVoucher);
                                     writeMyFile("neugestartet ... bitte warten", pathAlarm);
                                     writeMyFile("neugestartet ... bitte warten", pathInfo);
                                     writeMyFile("neugestartet ... bitte warten", pathOnlyWLAN);
                                     writeMyFile("neugestartet ... bitte warten", pathOnlyLAN);
                                     writeMyFile("neugestartet ... bitte warten", pathOnlyDISC);
                                     if ( !anwesenheit) {writeMyFile("variable anwesenheit und/oder iqontrol ist nicht im unifiscript aktiviert - auf true setzen", pathClient);
                                                         writeMyFile("variable anwesenheit und/oder iqontrol ist nicht im unifiscript aktiviert - auf true setzen", pathOnlyWLAN);
                                                         writeMyFile("variable anwesenheit und/oder iqontrol ist nicht im unifiscript aktiviert - auf true setzen", pathOnlyLAN);
                                                         writeMyFile("variable anwesenheit und/oder iqontrol ist nicht im unifiscript aktiviert - auf true setzen", pathOnlyDISC);}
                                    
                                    
                                     if ( !vouchers && !iqontrol) writeMyFile("variable vouchers und/oder iqontrol ist nicht im unifiscript aktiviert - auf true setzen", pathVoucher);
                                    
                                    for(let wifi_name in wifis) {
                                         wifiDPsHide.push(dpPrefix + "WLANUnifi.WLANSSIDsHide." + wifis[wifi_name].name);
                                         createState(dpPrefix + "WLANUnifi.WLANSSIDsHide."+ wifi_name, false, { name: wifis[wifi_name].desc, role: 'switch', read: true, write: true, type: "boolean" });}
                                    
                                     //Erstelle Datenpunkte für die WLANs automatisch
                                     for(let wifi_name in wifis) {
                                         wifiDPs.push(dpPrefix + "WLANUnifi." + wifis[wifi_name].name);
                                         createState(dpPrefix + "WLANUnifi."+ wifi_name, { name: wifis[wifi_name].desc, role: 'switch', read: true, write: true, type: "boolean" });}
                                    
                                     createState(dpPrefix + "WLANUnifi.Wifi_Clients", "not available",{ name: 'Clients_HTML_Table_VIS',  role: 'string', read:  true,  write: true,});
                                     createState(dpPrefix + "WLANUnifi.Wifi_ClientsOnlyLAN", "not available",{ name: 'Clients_LAN_HTML_Table_VIS',  role: 'string', read:  true,  write: true,});
                                     createState(dpPrefix + "WLANUnifi.Wifi_ClientsOnlyWLAN", "not available",{ name: 'Clients__WLAN_HTML_Table_VIS',  role: 'string', read:  true,  write: true,});
                                     createState(dpPrefix + "WLANUnifi.Wifi_ClientsOnlyDISC", "not available",{ name: 'Clients__Disconnected_HTML_Table_VIS',  role: 'string', read:  true,  write: true,});
                                     createState(dpPrefix + "WLANUnifi.Wifi_Clients_Anzahl_LAN",  { name: 'Wifi_Clients_Anzahl_LAN', desc: 'Wifi_Clients_Anzahl_LAN', type: 'number',def:0, unit: '', min: '0', max: '100', role: '',read: true, write: false });
                                     createState(dpPrefix + "WLANUnifi.Wifi_Clients_Anzahl_WLAN",  { name: 'Wifi_Clients_Anzahl_WLAN', desc: 'Wifi_Clients_Anzahl_WLAN', type: 'number',def:0, unit: '', min: '0', max: '100', role: '',read: true, write: false });
                                     createState(dpPrefix + "WLANUnifi.Wifi_Clients_Anzahl_DISC",  { name: 'Wifi_Clients_Anzahl_DISC', desc: 'Wifi_Clients_Anzahl_DISC', type: 'number',def:0, unit: '', min: '0', max: '100', role: '',read: true, write: false });
                                     createState(dpPrefix + "WLANUnifi.SiteLED", false, { name: 'SiteLED',  type: 'boolean', role: 'switch', read:  true,  write: true,});
                                     createState(dpPrefix + "WLANUnifi.Client_WhiteList", "default", { name: 'Client_WhiteList_Filter_String', desc: 'Alarm_Table', type: 'string', unit: '',  role: '',read: true, write: true }); 
                                     createState(dpPrefix + "WLANUnifi.Alarm.Alarm", { name: 'Alarm_Table_not_archieved', desc: 'Alarm_Table', type: 'string', unit: '',  role: '',read: true, write: true }); 
                                     createState(dpPrefix + "WLANUnifi.Missing_Name", "not available", { name: 'Missing_Name', desc: 'Missing_Name', type: 'string', unit: '',  role: '',read: true, write: true }); 
                                     createState(dpPrefix + "WLANUnifi.Alarm.Alarm_Anzahl", { name: 'Alarm_Anzahl', desc: 'Alarm_Table', type: 'number', unit: '',  role: '',read: true, write: true });
                                     createState(dpPrefix + "WLANUnifi.ZyklusZaehler", 1, { name: 'ZyklusZaehler', desc: 'ZyklusZaehler', type: 'number', unit: '',  role: '',read: true, write: true });
                                     createState(dpPrefix + "WLANUnifi.xxxScriptVersionxxx", versionNr,{ name: 'ScriptVersion', desc: 'ScriptVersion', type: 'string', unit: '',  role: '',read: true, write: true });
                                     if (anwesenheit) createState(dpPrefix + "WLANUnifi.Wifi_Clients_Log", { name: 'Clients_HTML_Table_VIS_Log',  role: 'string', read:  true,  write: true,});
                                    
                                     var foo = (aliasname) ? true : false;
                                     createState(dpPrefix + "WLANUnifi.AliasName", foo,  { name: ' AliasName',  desc:  'schaltet Aliasnamen ein', role: 'switch', type: 'boolean', read:  true,  write: true,
                                                }  , function() {setStateDelayed(dpPrefix + "WLANUnifi.AliasName", foo, 200)});
                                    
                                     //createState(dpPrefix + "WLANUnifi.Aussortiert", { name: 'Aussortiert',  role: 'string', read:  true,  write: true,});
                                    
                                    
                                     if (vouchers) {
                                      createState(dpPrefix + "WLANUnifi.Wifi_Vouchers", { name: 'Vouchers_HTML_Table_VIS',  role: 'string', read:  true,  write: true,});
                                      createState(dpPrefix + "WLANUnifi.Wifi_Vouchers_List", { name: 'Vouchers_ID_List',  role: 'string', read:  true,  write: true,});
                                      createState(dpPrefix + "WLANUnifi.Wifi_Vouchers_CodeList", { name: 'Vouchers_Texte_Delete_VIS_Widget',  role: 'string', read:  true,  write: true,});
                                      createState(dpPrefix + "WLANUnifi.Wifi_Vouchers_CodeList2", { name: 'Vouchers_Werte_Delete_VIS_Widget',  role: 'string', read:  true,  write: true,});
                                      createState(dpPrefix + "WLANUnifi.Wifi_Vouchers_ValueCodeList", { name: 'Vouchers_ValueList_IQontrol', desc:"ValueCodeList", role: "", type:'number', states: "1:please wait ...;2:refresh webpage", def:1, min: 0, max: 20,  read:  true,  write: true,});
                                      createState(dpPrefix + "WLANUnifi.Wifi_Vouchers-CODES.A_New_Voucher.Create", false,  { name: 'A_New_Voucher_Create',  role: 'switch', type: 'boolean', read:  true,  write: true,});
                                      createState(dpPrefix + "WLANUnifi.Wifi_Vouchers_DeleteVIS",   { name: 'Vouchers_Schalter_Delete_VIS_Widget',  role: 'switch', type: 'number', read:  true,  write: true,});
                                      createState(dpPrefix + "WLANUnifi.Wifi_Vouchers_CreateStandard", 1,  { name: 'Vouchers_Schalter_Create_VIS_Widget',  role: 'switch', type: 'number', read:  true,  write: true,});
                                      //createState(dpPrefix + "WLANUnifi.Wifi_Create_Standard_Voucher", false,  { name: 'A_Delete_Voucher',  role: 'switch', type: 'boolean', read:  true,  write: true,});
                                      createState(dpPrefix + "WLANUnifi.Wifi_Vouchers-CODES.A_Delete_Voucher.Delete", false,  { name: 'Voucher_Delete__Botton_VIS',  role: 'switch', type: 'boolean', read:  true,  write: true,});
                                      createState(dpPrefix + "WLANUnifi.Wifi_Vouchers-CODES.A_Delete_Voucher.Voucher_ID", "must be set",{ name: 'A_Delete_Voucher.Voucher_ID', role: 'string', read:  true,  write: true,});
                                      createState(dpPrefix + "WLANUnifi.Wifi_Vouchers-CODES.A_New_Voucher.Dauer", "must be set",{ name: ' A_New_Voucher_Dauer',  role: 'string', read:  true,  write: true,});
                                      createState(dpPrefix + "WLANUnifi.Wifi_Vouchers-CODES.A_New_Voucher.MultiUse", "must be set",{ name: ' A_New_Voucher_MultiUse',  role: 'string', read:  true,  write: true,});
                                      createState(dpPrefix + "WLANUnifi.Wifi_Vouchers-CODES.A_New_Voucher.Anzahl", "must be set",{ name: ' A_New_Voucher_Anzahl',  role: 'string', read:  true,  write: true,});
                                      createState(dpPrefix + "WLANUnifi.Wifi_Vouchers-CODES.A_New_Voucher.Notiz", "",{ name: ' A_New_Voucher_Notiz',  role: 'string', read:  true,  write: true,});
                                      createState(dpPrefix + "WLANUnifi.Wifi_Vouchers-CODES.A_New_Voucher.Upload", "",{ name: ' A_New_Voucher_Uplaod',  role: 'string', read:  true,  write: true,});
                                      createState(dpPrefix + "WLANUnifi.Wifi_Vouchers-CODES.A_New_Voucher.Download", "",{ name: ' A_New_Voucher_Download',  role: 'string', read:  true,  write: true,});
                                      createState(dpPrefix + "WLANUnifi.Wifi_Vouchers-CODES.A_New_Voucher.Mb_Begrenzung", "", { name: ' A_New_Voucher_Mb_Begrenzung',  role: 'string', read:  true,  write: true,});
                                    
                                    for (var i = 1; i < 21; i++) { 
                                        var x=i.toString();
                                        if (i<10) x="0"+x;
                                       createState(dpPrefix + "WLANUnifi.Wifi_Vouchers-CODES.CODE"+x, { name: 'Unifi Voucher_Code'+x,  role: 'string', read:  true,  write: true, });
                                       createState(dpPrefix + "WLANUnifi.Wifi_Vouchers-CODES.CODE"+x+".code"+x, { name: 'Unifi Voucher_Code_code'+x,  role: 'string', read:  true,  write: true, });    
                                       createState(dpPrefix + "WLANUnifi.Wifi_Vouchers-CODES.CODE"+x+".erstellt", { name: 'Unifi Voucher_Code_erstellt'+x,  role: 'string', read:  true,  write: true, });
                                       createState(dpPrefix + "WLANUnifi.Wifi_Vouchers-CODES.CODE"+x+".dauer", { name: 'Unifi Voucher_Code_duration'+x,  role: 'string', read:  true,  write: true, });
                                       createState(dpPrefix + "WLANUnifi.Wifi_Vouchers-CODES.CODE"+x+".abgelaufen", { name: 'Unifi Voucher_Code_expires'+x,  role: 'string', read:  true, write: true, });
                                       createState(dpPrefix + "WLANUnifi.Wifi_Vouchers-CODES.CODE"+x+".id", { name: 'Unifi Voucher_Code_id'+x,  role: 'string', read:  true,  write: true, });
                                       createState(dpPrefix + "WLANUnifi.Wifi_Vouchers-CODES.CODE"+x+".notiz", { name: 'Unifi Voucher_Code_notiz'+x,  role: 'string', read:  true,  write: true, });
                                    }
                                        let vouchiesHelper=""  //Werteliste-Datenpunkt für StandardVouchies
                                        let vouchiesHelper2="Wähle Standard;"
                                        let vouchiesHelper3="1;"
                                         countie=0;
                                    dslraserD Offline
                                    dslraserD Offline
                                    dslraser
                                    Forum Testing Most Active
                                    wrote on last edited by dslraser
                                    #1029

                                    @SirDirk
                                    @liv-in-sky

                                    schau mal in Zeile 79....(wie vermutet, da steht noch mein Gerät vom testen drinn)

                                    Da muß Dein Gerät /Deine Geräte rein die Du überwachen möchtest, das aus Zeile 10 vom Post oben.

                                    SirDirkS 1 Reply Last reply
                                    0
                                    • dslraserD dslraser

                                      @SirDirk
                                      @liv-in-sky

                                      schau mal in Zeile 79....(wie vermutet, da steht noch mein Gerät vom testen drinn)

                                      Da muß Dein Gerät /Deine Geräte rein die Du überwachen möchtest, das aus Zeile 10 vom Post oben.

                                      SirDirkS Offline
                                      SirDirkS Offline
                                      SirDirk
                                      wrote on last edited by
                                      #1030

                                      @dslraser

                                      Also Zeile 96?

                                      e9bf440e-aed4-41c0-a84d-3aa6ffcfad55-grafik.png

                                      Und was müsste ich für mehrere Geräte eintragen?

                                      dslraserD 1 Reply Last reply
                                      0
                                      • SirDirkS SirDirk

                                        @dslraser

                                        Also Zeile 96?

                                        e9bf440e-aed4-41c0-a84d-3aa6ffcfad55-grafik.png

                                        Und was müsste ich für mehrere Geräte eintragen?

                                        dslraserD Offline
                                        dslraserD Offline
                                        dslraser
                                        Forum Testing Most Active
                                        wrote on last edited by dslraser
                                        #1031

                                        @SirDirk
                                        schau mal in meinen Spoiler von oben

                                        https://forum.iobroker.net/post/340908

                                        (Bei mir Zeilen 9 und 67)

                                        1 Reply Last reply
                                        0
                                        • SirDirkS SirDirk

                                          @liv-in-sky
                                          Ich habe ein kompliziertes Passwort aus einem PW-Manager mit Sonderzeichen und Zahlen - aber keine Umlaute - keine Leerzeichen.

                                          In der JS-Instanz habe ich die folgenden Einträge:

                                          14ac5649-3f90-4bff-a20d-57f21d40f249-grafik.png

                                          @dslraser
                                          nach dem klein-schreiben von default funktioniert nun der Login - es kommt jetzt aber folgende Fehlermeldung:

                                          099831ea-0029-4bf4-944c-029e3a33ebfd-grafik.png

                                          Irgendwie komme ich da auf folgende Zeilen, denn es sind keine MephistoFon-Einträge in den Datenpunkten.

                                          dce2b33d-8d0b-42ff-a2c2-aefe467fc05f-grafik.png

                                          Danke für die Hilfe beim Login - habt ihr evtl. eine Idee zu der neuen Fehlermeldung?

                                          die folgenden Log-Einträge sind auch noch vorhanden:

                                          7754af29-a0a2-45cb-9626-81120153884d-grafik.png

                                          liv-in-skyL Offline
                                          liv-in-skyL Offline
                                          liv-in-sky
                                          wrote on last edited by
                                          #1032

                                          @SirDirk bei den ersten lauf kann es schon mal zu warnungen kommen

                                          du solltest auf jeden fall mal das script stoppen - dann den javascript adapter auch neustarten und dann wieder das script starten

                                          kontrolliere mal :

                                          sind die datenpunkte für die anwesenheit alle da und true

                                          • ist unter WLANUnifiHelp.Others der datenpunkt mit den wifi-geräten angelegt worden

                                          @dslraser
                                          xxClientsxx ist nur zum testen da und kommt nicht zum einsatz, wenn syslog=false ist - ist nur für ausnahmefälle und debug - deshalb der richtige platz - dieses debug sagt einem nur was, wenn man weiß, was im script abläuft

                                          nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                                          dslraserD SirDirkS 2 Replies Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          167

                                          Online

                                          32.4k

                                          Users

                                          81.3k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe