Navigation

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

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Unifi WLAN Script 2 mit Anwesenheitskontrolle

    This topic has been deleted. Only users with topic management privileges can see it.
    • SirDirk
      SirDirk @liv-in-sky last edited by 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

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

        @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++; }
        
        

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

          SirDirk 1 Reply Last reply Reply Quote 0
          • SirDirk
            SirDirk @dslraser last edited by

            @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;
            dslraser 1 Reply Last reply Reply Quote 0
            • SirDirk
              SirDirk @dslraser last edited by

              @dslraser

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

              Was muss denn da rein?

              1 Reply Last reply Reply Quote 0
              • dslraser
                dslraser Forum Testing Most Active @SirDirk last edited by 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.

                SirDirk 1 Reply Last reply Reply Quote 0
                • SirDirk
                  SirDirk @dslraser last edited by

                  @dslraser

                  Also Zeile 96?

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

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

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

                    @SirDirk
                    schau mal in meinen Spoiler von oben

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

                    (Bei mir Zeilen 9 und 67)

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

                      @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

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

                        @liv-in-sky
                        okay

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

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

                          nifiHelp.Others der datenpunkt mit den wifi-geräten angelegt word

                          Script habe ich mehrfach gestoppt und auch die Instanz neu gestartet.
                          Datenpunkte für Anwesenheit sind nicht vorhanden.
                          @dslraser
                          Leider habe ich nun nicht verstanden, was ich wo ändern muss.

                          liv-in-sky dslraser 2 Replies Last reply Reply Quote 0
                          • liv-in-sky
                            liv-in-sky @SirDirk last edited by

                            @SirDirk gibt es die möglichkeit anydesk oder teamviewer - dann schau ich mal rein

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

                              @SirDirk
                              nee, alles gut. Ich war auf dem falschen Dampfer unterwegs.....(Sorry für die Verwirrung)

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

                                @liv-in-sky
                                Teamviewer wäre kein Problem. Wie kann ich die Daten per PN senden?

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

                                  @SirDirk rechts oben neben der glocke ist der chat

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

                                    @liv-in-sky
                                    heute morgen hat es funktioniert.(mit VPN und dem geänderten Script)
                                    Screenshot_20191217-090227_Chrome.jpg

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

                                      @dslraser danke - für die gute nachricht

                                      1 Reply Last reply Reply Quote 0
                                      • D
                                        dos1973 last edited by

                                        @liv-in-sky
                                        Kurze Frage zum Speedtest.

                                        Kannst du DP’s für Datum und Uhrzeit erzeugen ... wann der Speed Test gemacht/ geschrieben wurde...

                                        Danke

                                        liv-in-sky 2 Replies Last reply Reply Quote 0
                                        • liv-in-sky
                                          liv-in-sky @dos1973 last edited by

                                          @dos1973 hi

                                          dazu bräuchte ich die daten nochmal - ich weiß nicht, ob die uhrzeit der messung drinsteht

                                          am roten pfeil mylog in log ändern - dann müßten die daten unter dem script im log sehen

                                          Image 5.png

                                          D 1 Reply Last reply Reply Quote 0
                                          • M
                                            MyMeyer last edited by MyMeyer

                                            Hallo,
                                            wie lange braucht das Script um zu erkennen ob ein Gerät Online ist. Mein Handy Huawei ist seit 15 Min im Unifi Controller sichtbar , aber im IoBroker unter Objekt wird nichts angezeigt von dem Gerät. Ich habe jetzt die letzte Version vom Script aktiviert und vorher alle Objekte gelöscht. In Summe habe ich ca. 50 Geräte im Netzwerk.

                                            Hier meine Einstellungen:

                                            //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=["Huawei-Mate10","Samsung-Galaxy-A50","Samsung-Galaxy-S7"]; // Datenpunkte (werden erstellt) für Überwachung von Connection (WLAN only) - aber nur wenn ein alias im controller definiert ist
                                            // wenn leer - keine überwachung (const checkConnType=[])

                                            //Pause bei Umschalten der WLANnetze, damit Netzanmeldungen der clients wieder normal
                                            const clientPauseConst = 200000; //1000 bedeutet 1 Sekunde - das braucht Zeit !!!

                                            // Abfragezyklus definieren
                                            const abfragezyklus =20000 ; // es ist nicht zu empfehlen unter 20000 (20 sekunden) zu gehen
                                            const abfageoffset = 15000 ; // zu schnelle Abmeldungen können hier eingestellt weren - > erhöhen (15000 = 15 sek.)

                                            //HIER Einstellungen : EIN-AUSSCHALTEN Vouchers, iqontrol-Datei erstellen, anwesenheitskontrolle-clientpflege
                                            let iqontrol = false;
                                            let anwesenheit = true; // beim setzen von true auf false die verzeichnisstruktur unter iobroker-objects "von hand" löschen

                                            let vouchers = false;
                                            let apInfo = true;
                                            let problemWLAN=false; //bei problemen mit APs die über WLAN angebuden sind
                                            let countFalseSetting=2; //2 bedeutet : einmal einen abfragezyklus auslassen bevor auf false gesetzt wird: Formel: n-1
                                            let aliasname=true;
                                            let disConClientsFirst=false; //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

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            566
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            javascript monitoring
                                            46
                                            1358
                                            395472
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo