NEWS
Unifi WLAN Script 2 mit Anwesenheitskontrolle
-
@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> </td><td> </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;
-
unter dem Teil "//-----------------AB HIER NICHTS MEHR ÄNDERN------------------------------------------------------" habe ich nichts geändert.
Was muss denn da rein?
-
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
schau mal in meinen Spoiler von obenhttps://forum.iobroker.net/post/340908
(Bei mir Zeilen 9 und 67)
-
@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 -
@liv-in-sky
okay -
@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. -
@SirDirk gibt es die möglichkeit anydesk oder teamviewer - dann schau ich mal rein
-
@SirDirk
nee, alles gut. Ich war auf dem falschen Dampfer unterwegs.....(Sorry für die Verwirrung) -
@liv-in-sky
Teamviewer wäre kein Problem. Wie kann ich die Daten per PN senden? -
@SirDirk rechts oben neben der glocke ist der chat
-
@liv-in-sky
heute morgen hat es funktioniert.(mit VPN und dem geänderten Script)
-
@dslraser danke - für die gute nachricht
-
@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
-
@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
-
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:
-
@liv-in-sky
ok habe das log geändert...
das Ergebnis ist dann im "logging" zu sehen...? -
@dos1973 ja das ergebnis sollte unter dem script in dem log teil zu sehen sein und kommt alle 3 zyklen
-
@MyMeyer die datenpunkte sollten nach 20 sekunden erscheinen
- bitte mmache die anführungszeichen aus der blacklist raus sollte so aussehen blacklist=[]
- setzte den wert abfageoffset=45000 - man kann später wieder weiter runtergehen
- die mac-adressen der aps in apName solten direkt vom controller rauskopiert werden - alle buchstaben müssen klein sein
- steht was im log ?
- steht der datenpunkt Zykluszaehler zwischen 1-3 oder ist er größer 3
- nutze das neuste skript - post 1 dieses threads