NEWS
Unifi WLAN Script 2 mit Anwesenheitskontrolle
-
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
-
-
@liv-in-sky sagte in Unifi WLAN Script 2 mit Anwesenheitskontrolle:
UPDATE UPDATE UPDATE (im ersten post)
Klasse Arbeit und es wird alles sauber angezeigt, sogar Unifi Bug-Anzeige funktioniert
Danke @liv-in-sky
-
Moin, irgendetwas stimmt noch nicht.
Wenn ich mich nicht aus dem WLAN abmelde, sondern einfach so bei eingeschaltetem WLAN das Haus verlasse, dann kommt zwar im DP richtiger Weise false, aber kein noConn in dem Network DP und auch nicht in der iQontrol WLAN Liste. In der iQontrol Gesamtliste stehen die Geräte als noConn drinn.
Ich bin jetzt gerade per VPN zu Hause angemeldet.richtig:
falsch:
richtig:
In der iQontrol WLAN-Liste erscheinen die Geräte nicht.
-
hier hat übrigens Jemand den gleichen Verdacht....
https://forum.iobroker.net/post/340053 -
@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
-
@liv-in-sky
mache ich. -
Nach der Installation des Scriptes komme ich wegen der folgenden Fehlermeldungen nicht weiter:
Die Zugangsdaten zum Cloud-Key sind korrekt eingetragen.
Kann mir evtl. jemand Hinweise zur Fehlerbehebung geben?
-
@SirDirk evtl der sitename - bitte prüfen im controller
-
-
@SirDirk
hast Du schon die WLAN ID/ID's eingetragen ? -
@dslraser
ja, aus der Url (hinter dem EDIT) -
@SirDirk sagte in Unifi WLAN Script 2 mit Anwesenheitskontrolle:
@liv-in-sky
der Sitename stimmt überein:im Controller:
im Script:
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 ? -
@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
-
@SirDirk und die zusätze im javascript adapter setting hast du dazugefügt
-
@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:
@dslraser
nach dem klein-schreiben von default funktioniert nun der Login - es kommt jetzt aber folgende Fehlermeldung:Irgendwie komme ich da auf folgende Zeilen, denn es sind keine MephistoFon-Einträge in den Datenpunkten.
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:
-
Kannst Du mal diesen Teil ( also ohne Deine Zugangsdaten ab unter Const apName (ohne Deine AP'S) posten
-
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. -
@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.