NEWS
Unifi WLAN Script 2 mit Anwesenheitskontrolle
Unifi WLAN Script 2 mit Anwesenheitskontrolle
-
@liv-in-sky sagte in Unifi WLAN Script 2 mit Anwesenheitskontrolle:
Suche tester:
mußte das sortieren und benennen die clients nochmal überarbeiten (der controller macht "komische" sachen) und brauche tester mit usg und/oder usw - aber z.b auch: mein gerootetes tablet hat keinen hostnamen oder löscht man den aliasnamen belibt der im datensatz als leer enthalten, was wiederrum probleme erzeugt hat
script-mit-neuer-sortierung.txt
das neue "verfahren" macht jetzt folgendes
wenn aliasname=false:
- wenn kein hostname oder leerer hostname , dann aliasnamen verwenden -wenn der auch nicht existiert oder leer ist wird ein "name aus der ipadresse +repaired" gebildet
OK

- wenn aliasname=true
wenn kein aliasname oder leerer -> direct "name aus der ipadresse +repaired"
OK

wie immer nur der teil unter "AB HIER NICHTS MEHR ÄNDERN" - -datenpunkte bitte löschen , diese könnten nun anders sein
- interessant sind auch apple (iphone) user und wie erwähnt die usg und usw nutzer
OK

- bitte auch beobachten was mit clients passiert, die leerzeichen im namen oder alias haben (vorallen bei iphone nutzern)
OK

- zum rumspielen: es gibt auch einen datenpunkt mit dem man auf aliasname=true schalten kann ohne das script zu stoppen - in der vis sieht man dann sehr gut die veränderungen
Nicht getestet

Im Log bis jetzt keine Meldungen

Super

@Nashra immer gut positives zu hören - schönen abend
-
@liv-in-sky dito

-
@liv-in-sky hab eigentlich ja nicht viel gemacht, sind nur 2 Zeilen dazu gekommen:
createState(dpPrefix + "WLANUnifi.Wifi_Info", { name: 'Info_HTML_Table_VIS', role: 'string', read: true, write: true,}); if (health) {createState(dpPrefix + "WLANUnifi.Health.WLAN.Status", { name: 'Health_Status', desc: 'Health_Status', type: 'string', unit: '', role: '',read: true, write: true }); createState(dpPrefix + "WLANUnifi.Health.WLAN.Users", { name: 'Health_Users', desc: 'Health_Users', type: 'number', unit: '', min: '0', max: '1000', role: '',read: true, write: true }); createState(dpPrefix + "WLANUnifi.Health.WLAN.Guests", { name: 'Health_Guests', desc: 'Health_Guests', type: 'number', unit: '', min: '0', max: '100', role: '',read: true, write: true }); createState(dpPrefix + "WLANUnifi.Health.WLAN.TXBytes", { name: 'Health_TXBytes', desc: 'Health_TXBytes', type: 'number', unit: '', min: '0', max: '9999999', role: '',read: true, write: true }); createState(dpPrefix + "WLANUnifi.Health.WLAN.RXBytes", { name: 'Health_RXBytes', desc: 'Health_RXBytes', type: 'number', unit: '', min: '0', max: '9999999', role: '',read: true, write: true }); createState(dpPrefix + "WLANUnifi.Health.WLAN.Adopted", { name: 'Health_Adopted', desc: 'Health_Adopted', type: 'number', unit: '', min: '0', max: '100', role: '',read: true, write: true }); createState(dpPrefix + "WLANUnifi.Health.WLAN.Disabled", { name: 'Health_Disabled', desc: 'Health_Disabled', type: 'number', unit: '', min: '0', max: '100', role: '',read: true, write: true }); createState(dpPrefix + "WLANUnifi.Health.WLAN.Disconnected", { name: 'Health_Disconnected', desc: 'Health_Disconnected', type: 'number', unit: '', min: '0', max: '100', role: '',read: true, write: true }); createState(dpPrefix + "WLANUnifi.Health.WAN.WAN_IP", {name: 'WAN_Adresse', desc: 'WAN_IP', role: 'state',read: true,write: true,type: 'string' }); }und
resph=resph.replace(/-r/g, "_r") resph = JSON.parse(resph); mylog(resph.data[0].rx_bytes_r); setState(dpPrefix + "WLANUnifi.Health.WLAN.Status",resph.data[0].status ); setState(dpPrefix + "WLANUnifi.Health.WLAN.Users",resph.data[0].num_user); setState(dpPrefix + "WLANUnifi.Health.WLAN.Guests",resph.data[0].num_guest ); setState(dpPrefix + "WLANUnifi.Health.WLAN.TXBytes",resph.data[0].tx_bytes_r ); setState(dpPrefix + "WLANUnifi.Health.WLAN.RXBytes",resph.data[0].rx_bytes_r ); setState(dpPrefix + "WLANUnifi.Health.WLAN.Adopted",resph.data[0].num_adopted ); setState(dpPrefix + "WLANUnifi.Health.WLAN.Disabled",resph.data[0].num_disabled ); setState(dpPrefix + "WLANUnifi.Health.WLAN.Disconnected",resph.data[0].num_disconnected ); setState(dpPrefix + "WLANUnifi.Health.WAN.WAN_IP",resph.data[1].wan_ip );jeweils immer die letzte Zeile
-
@liv-in-sky hab eigentlich ja nicht viel gemacht, sind nur 2 Zeilen dazu gekommen:
createState(dpPrefix + "WLANUnifi.Wifi_Info", { name: 'Info_HTML_Table_VIS', role: 'string', read: true, write: true,}); if (health) {createState(dpPrefix + "WLANUnifi.Health.WLAN.Status", { name: 'Health_Status', desc: 'Health_Status', type: 'string', unit: '', role: '',read: true, write: true }); createState(dpPrefix + "WLANUnifi.Health.WLAN.Users", { name: 'Health_Users', desc: 'Health_Users', type: 'number', unit: '', min: '0', max: '1000', role: '',read: true, write: true }); createState(dpPrefix + "WLANUnifi.Health.WLAN.Guests", { name: 'Health_Guests', desc: 'Health_Guests', type: 'number', unit: '', min: '0', max: '100', role: '',read: true, write: true }); createState(dpPrefix + "WLANUnifi.Health.WLAN.TXBytes", { name: 'Health_TXBytes', desc: 'Health_TXBytes', type: 'number', unit: '', min: '0', max: '9999999', role: '',read: true, write: true }); createState(dpPrefix + "WLANUnifi.Health.WLAN.RXBytes", { name: 'Health_RXBytes', desc: 'Health_RXBytes', type: 'number', unit: '', min: '0', max: '9999999', role: '',read: true, write: true }); createState(dpPrefix + "WLANUnifi.Health.WLAN.Adopted", { name: 'Health_Adopted', desc: 'Health_Adopted', type: 'number', unit: '', min: '0', max: '100', role: '',read: true, write: true }); createState(dpPrefix + "WLANUnifi.Health.WLAN.Disabled", { name: 'Health_Disabled', desc: 'Health_Disabled', type: 'number', unit: '', min: '0', max: '100', role: '',read: true, write: true }); createState(dpPrefix + "WLANUnifi.Health.WLAN.Disconnected", { name: 'Health_Disconnected', desc: 'Health_Disconnected', type: 'number', unit: '', min: '0', max: '100', role: '',read: true, write: true }); createState(dpPrefix + "WLANUnifi.Health.WAN.WAN_IP", {name: 'WAN_Adresse', desc: 'WAN_IP', role: 'state',read: true,write: true,type: 'string' }); }und
resph=resph.replace(/-r/g, "_r") resph = JSON.parse(resph); mylog(resph.data[0].rx_bytes_r); setState(dpPrefix + "WLANUnifi.Health.WLAN.Status",resph.data[0].status ); setState(dpPrefix + "WLANUnifi.Health.WLAN.Users",resph.data[0].num_user); setState(dpPrefix + "WLANUnifi.Health.WLAN.Guests",resph.data[0].num_guest ); setState(dpPrefix + "WLANUnifi.Health.WLAN.TXBytes",resph.data[0].tx_bytes_r ); setState(dpPrefix + "WLANUnifi.Health.WLAN.RXBytes",resph.data[0].rx_bytes_r ); setState(dpPrefix + "WLANUnifi.Health.WLAN.Adopted",resph.data[0].num_adopted ); setState(dpPrefix + "WLANUnifi.Health.WLAN.Disabled",resph.data[0].num_disabled ); setState(dpPrefix + "WLANUnifi.Health.WLAN.Disconnected",resph.data[0].num_disconnected ); setState(dpPrefix + "WLANUnifi.Health.WAN.WAN_IP",resph.data[1].wan_ip );jeweils immer die letzte Zeile
@coyote danke dir - macht es einfacher für mich - ich habe die daten nicht, da ich keine hardware dazu habe - werde es mit einpflegen
andere frage - nutzt du jetzt auch objects und files von redis - ist dass unser problem ?
wenn das file noch im directory existiert und upgedated wird - hast du dann keine rechte darauf oder ist das file leer -
@coyote danke dir - macht es einfacher für mich - ich habe die daten nicht, da ich keine hardware dazu habe - werde es mit einpflegen
andere frage - nutzt du jetzt auch objects und files von redis - ist dass unser problem ?
wenn das file noch im directory existiert und upgedated wird - hast du dann keine rechte darauf oder ist das file leer@liv-in-sky ganz genau, habe umgestellt auf redis/redis
Das file ist noch da und wird auch geändert (es sind auch Daten im File), aber ich habe dann wohl keinen Zugriff drauf über iqontrol. iqontrol sagt "File existiert nicht"
Wenn ich Apollon richtig verstanden habe, gehört das File aber anscheinend nicht da hin. -
@liv-in-sky ganz genau, habe umgestellt auf redis/redis
Das file ist noch da und wird auch geändert (es sind auch Daten im File), aber ich habe dann wohl keinen Zugriff drauf über iqontrol. iqontrol sagt "File existiert nicht"
Wenn ich Apollon richtig verstanden habe, gehört das File aber anscheinend nicht da hin.@coyote ja scheint so - leider hat er bis jetzt noch nichts zurückgeschrieben - wegren meiner kann ich auch ein anderes verzeichnis nehmen - ich müßte nur wissen welches - ich habe immer gedacht, der fixer gibt die rechte auf die iobroker verzeichnisse
falls du lust hast - zeige mir doch mal ein bild vom verzeichnis mit dem befehl ls -la
naja , vieleicht gibt es morgen was neues -
@coyote ja scheint so - leider hat er bis jetzt noch nichts zurückgeschrieben - wegren meiner kann ich auch ein anderes verzeichnis nehmen - ich müßte nur wissen welches - ich habe immer gedacht, der fixer gibt die rechte auf die iobroker verzeichnisse
falls du lust hast - zeige mir doch mal ein bild vom verzeichnis mit dem befehl ls -la
naja , vieleicht gibt es morgen was neues@liv-in-sky ja hab ich gesehen, dass noch niemand was dazu geschrieben hat.
Von welchem Verzeichnis genau meinst du?
Ich habe auch nicht verstanden, was genau jetzt anders ist bzw. sein muss/soll. -
@liv-in-sky ja hab ich gesehen, dass noch niemand was dazu geschrieben hat.
Von welchem Verzeichnis genau meinst du?
Ich habe auch nicht verstanden, was genau jetzt anders ist bzw. sein muss/soll.@coyote ich meinte das verzeichnis , indem die files vom script liegen
/opt/iobroker/iobroker-data/files/iqontrol -
@coyote ich meinte das verzeichnis , indem die files vom script liegen
/opt/iobroker/iobroker-data/files/iqontrol@liv-in-sky achso, sieht aus wie vorher denk ich.
Hier:root@debian:/opt/iobroker/iobroker-data/files/iqontrol# ls -la insgesamt 1020 drwxrwxrwx+ 6 iobroker iobroker 4096 Okt 5 12:55 . drwxrwxrwx+ 87 iobroker iobroker 4096 Sep 30 10:28 .. -rwxrwxrwx+ 1 iobroker iobroker 1044 Okt 3 14:31 cache.manifest -rwxrwxrwx+ 1 iobroker iobroker 49103 Okt 3 14:31 conn.js -rwxrwxrwx+ 1 iobroker iobroker 125162 Okt 3 14:31 _data.json -rwxrwxrwx+ 1 iobroker iobroker 28640 Okt 3 14:31 favicon_big.pn g -rwxrwxrwx+ 1 iobroker iobroker 32038 Okt 3 14:31 favicon.ico -rwxrwxrwx+ 1 iobroker iobroker 12582 Okt 3 14:31 favicon.png -rw-rw-rw-+ 1 iobroker iobroker 173 Okt 5 20:29 htmlalarm.html -rw-rwxrw-+ 1 iobroker iobroker 6514 Okt 5 20:29 htmlclients.ht ml -rw-rwxrw-+ 1 iobroker iobroker 2453 Okt 5 20:29 htmlinfo.html -rw-rwxrw-+ 1 iobroker iobroker 88 Okt 5 13:31 htmlvoucher.ht ml drwxrwxrwx+ 12 iobroker iobroker 4096 Mai 3 12:12 i18n drwxrwxrwx+ 4 iobroker iobroker 4096 Sep 8 13:35 images -rwxrwxrwx+ 1 iobroker iobroker 17538 Okt 3 14:31 index.css -rwxrwxrwx+ 1 iobroker iobroker 5687 Okt 3 14:31 index.html -rwxrwxrwx+ 1 iobroker iobroker 330878 Okt 3 14:31 index.js drwxrwxrwx+ 4 iobroker iobroker 4096 Mai 3 12:12 jquery -rw-rwxrw-+ 1 iobroker iobroker 3262 Okt 3 14:29 offline.html -rwxrwxrwx+ 1 iobroker iobroker 1867 Mai 4 13:16 test.html drwxrwxrwx+ 4 iobroker iobroker 4096 Jul 31 12:06 userimages -rwxrwxrwx+ 1 iobroker iobroker 371855 Okt 3 14:29 words.jsAch jetzt weiß ich was du willst, du willst schätze ich nach dem Rechten schauen oder?
-
@liv-in-sky achso, sieht aus wie vorher denk ich.
Hier:root@debian:/opt/iobroker/iobroker-data/files/iqontrol# ls -la insgesamt 1020 drwxrwxrwx+ 6 iobroker iobroker 4096 Okt 5 12:55 . drwxrwxrwx+ 87 iobroker iobroker 4096 Sep 30 10:28 .. -rwxrwxrwx+ 1 iobroker iobroker 1044 Okt 3 14:31 cache.manifest -rwxrwxrwx+ 1 iobroker iobroker 49103 Okt 3 14:31 conn.js -rwxrwxrwx+ 1 iobroker iobroker 125162 Okt 3 14:31 _data.json -rwxrwxrwx+ 1 iobroker iobroker 28640 Okt 3 14:31 favicon_big.pn g -rwxrwxrwx+ 1 iobroker iobroker 32038 Okt 3 14:31 favicon.ico -rwxrwxrwx+ 1 iobroker iobroker 12582 Okt 3 14:31 favicon.png -rw-rw-rw-+ 1 iobroker iobroker 173 Okt 5 20:29 htmlalarm.html -rw-rwxrw-+ 1 iobroker iobroker 6514 Okt 5 20:29 htmlclients.ht ml -rw-rwxrw-+ 1 iobroker iobroker 2453 Okt 5 20:29 htmlinfo.html -rw-rwxrw-+ 1 iobroker iobroker 88 Okt 5 13:31 htmlvoucher.ht ml drwxrwxrwx+ 12 iobroker iobroker 4096 Mai 3 12:12 i18n drwxrwxrwx+ 4 iobroker iobroker 4096 Sep 8 13:35 images -rwxrwxrwx+ 1 iobroker iobroker 17538 Okt 3 14:31 index.css -rwxrwxrwx+ 1 iobroker iobroker 5687 Okt 3 14:31 index.html -rwxrwxrwx+ 1 iobroker iobroker 330878 Okt 3 14:31 index.js drwxrwxrwx+ 4 iobroker iobroker 4096 Mai 3 12:12 jquery -rw-rwxrw-+ 1 iobroker iobroker 3262 Okt 3 14:29 offline.html -rwxrwxrwx+ 1 iobroker iobroker 1867 Mai 4 13:16 test.html drwxrwxrwx+ 4 iobroker iobroker 4096 Jul 31 12:06 userimages -rwxrwxrwx+ 1 iobroker iobroker 371855 Okt 3 14:29 words.jsAch jetzt weiß ich was du willst, du willst schätze ich nach dem Rechten schauen oder?
@coyote genau und die sind da - wie schaut den der inhalt des iqontrol popups aus ?
-
@liv-in-sky achso, sieht aus wie vorher denk ich.
Hier:root@debian:/opt/iobroker/iobroker-data/files/iqontrol# ls -la insgesamt 1020 drwxrwxrwx+ 6 iobroker iobroker 4096 Okt 5 12:55 . drwxrwxrwx+ 87 iobroker iobroker 4096 Sep 30 10:28 .. -rwxrwxrwx+ 1 iobroker iobroker 1044 Okt 3 14:31 cache.manifest -rwxrwxrwx+ 1 iobroker iobroker 49103 Okt 3 14:31 conn.js -rwxrwxrwx+ 1 iobroker iobroker 125162 Okt 3 14:31 _data.json -rwxrwxrwx+ 1 iobroker iobroker 28640 Okt 3 14:31 favicon_big.pn g -rwxrwxrwx+ 1 iobroker iobroker 32038 Okt 3 14:31 favicon.ico -rwxrwxrwx+ 1 iobroker iobroker 12582 Okt 3 14:31 favicon.png -rw-rw-rw-+ 1 iobroker iobroker 173 Okt 5 20:29 htmlalarm.html -rw-rwxrw-+ 1 iobroker iobroker 6514 Okt 5 20:29 htmlclients.ht ml -rw-rwxrw-+ 1 iobroker iobroker 2453 Okt 5 20:29 htmlinfo.html -rw-rwxrw-+ 1 iobroker iobroker 88 Okt 5 13:31 htmlvoucher.ht ml drwxrwxrwx+ 12 iobroker iobroker 4096 Mai 3 12:12 i18n drwxrwxrwx+ 4 iobroker iobroker 4096 Sep 8 13:35 images -rwxrwxrwx+ 1 iobroker iobroker 17538 Okt 3 14:31 index.css -rwxrwxrwx+ 1 iobroker iobroker 5687 Okt 3 14:31 index.html -rwxrwxrwx+ 1 iobroker iobroker 330878 Okt 3 14:31 index.js drwxrwxrwx+ 4 iobroker iobroker 4096 Mai 3 12:12 jquery -rw-rwxrw-+ 1 iobroker iobroker 3262 Okt 3 14:29 offline.html -rwxrwxrwx+ 1 iobroker iobroker 1867 Mai 4 13:16 test.html drwxrwxrwx+ 4 iobroker iobroker 4096 Jul 31 12:06 userimages -rwxrwxrwx+ 1 iobroker iobroker 371855 Okt 3 14:29 words.jsAch jetzt weiß ich was du willst, du willst schätze ich nach dem Rechten schauen oder?
@coyote ich meine das setting der kachel
-
@liv-in-sky achso, sieht aus wie vorher denk ich.
Hier:root@debian:/opt/iobroker/iobroker-data/files/iqontrol# ls -la insgesamt 1020 drwxrwxrwx+ 6 iobroker iobroker 4096 Okt 5 12:55 . drwxrwxrwx+ 87 iobroker iobroker 4096 Sep 30 10:28 .. -rwxrwxrwx+ 1 iobroker iobroker 1044 Okt 3 14:31 cache.manifest -rwxrwxrwx+ 1 iobroker iobroker 49103 Okt 3 14:31 conn.js -rwxrwxrwx+ 1 iobroker iobroker 125162 Okt 3 14:31 _data.json -rwxrwxrwx+ 1 iobroker iobroker 28640 Okt 3 14:31 favicon_big.pn g -rwxrwxrwx+ 1 iobroker iobroker 32038 Okt 3 14:31 favicon.ico -rwxrwxrwx+ 1 iobroker iobroker 12582 Okt 3 14:31 favicon.png -rw-rw-rw-+ 1 iobroker iobroker 173 Okt 5 20:29 htmlalarm.html -rw-rwxrw-+ 1 iobroker iobroker 6514 Okt 5 20:29 htmlclients.ht ml -rw-rwxrw-+ 1 iobroker iobroker 2453 Okt 5 20:29 htmlinfo.html -rw-rwxrw-+ 1 iobroker iobroker 88 Okt 5 13:31 htmlvoucher.ht ml drwxrwxrwx+ 12 iobroker iobroker 4096 Mai 3 12:12 i18n drwxrwxrwx+ 4 iobroker iobroker 4096 Sep 8 13:35 images -rwxrwxrwx+ 1 iobroker iobroker 17538 Okt 3 14:31 index.css -rwxrwxrwx+ 1 iobroker iobroker 5687 Okt 3 14:31 index.html -rwxrwxrwx+ 1 iobroker iobroker 330878 Okt 3 14:31 index.js drwxrwxrwx+ 4 iobroker iobroker 4096 Mai 3 12:12 jquery -rw-rwxrw-+ 1 iobroker iobroker 3262 Okt 3 14:29 offline.html -rwxrwxrwx+ 1 iobroker iobroker 1867 Mai 4 13:16 test.html drwxrwxrwx+ 4 iobroker iobroker 4096 Jul 31 12:06 userimages -rwxrwxrwx+ 1 iobroker iobroker 371855 Okt 3 14:29 words.jsAch jetzt weiß ich was du willst, du willst schätze ich nach dem Rechten schauen oder?
@coyote welchen browser nutzt du ? ich habe bemerkt, dass firefox bei mir nicht funktioniert
-
@coyote welchen browser nutzt du ? ich habe bemerkt, dass firefox bei mir nicht funktioniert
-
@coyote wird wohl tatsächlich am controller liegen - leider weiß ich nicht, wie das mit redis funktioniert - wird da ein pfad hineingeschrieben oder das ganze file in redis abgelegt ??? warten wir mal auf morgen
-
@coyote wird wohl tatsächlich am controller liegen - leider weiß ich nicht, wie das mit redis funktioniert - wird da ein pfad hineingeschrieben oder das ganze file in redis abgelegt ??? warten wir mal auf morgen
@liv-in-sky da fragst du mich was..
Apollon hat geantwortet in deinem anderen Thread.
Die Files sollen wohl nach iqontrol.meta -
@liv-in-sky da fragst du mich was..
Apollon hat geantwortet in deinem anderen Thread.
Die Files sollen wohl nach iqontrol.meta@coyote hab es gesehen - weiß nicht, ob ich das verstehe - teste morgen - bin heute nicht mehr am hauptrechner
-
@coyote hab es gesehen - weiß nicht, ob ich das verstehe - teste morgen - bin heute nicht mehr am hauptrechner
@liv-in-sky ich schaue morgen auch mal weiter. Die iqontrol User Files funktionieren ja auch nach der redis Umstellung. Die ganzen Icons sind noch da.
Ich schaue morgen mal ob die unter iqontrol.meta liegen, dann müssten deine Files vielleicht auch einfach nur dort hin:man-shrugging:EDIT: Also, da liegen auch die Usericons drin, heißt es reicht vllt aus wenn du die Files einfach dahin schreibst, kann ich aber morgen oder später noch, ausprobieren.
-
hier ein script für das ansteuern des unifi-controllers - der unifi adapter hat einen sehr großen datenfluß und sehr viele datenpunkte - das script arbeitet selbständig und benötigt den adapter nicht. (danke an @thewhobox und @dslraser)
es gibt eine version des scriptes, welche nur die uaps von vorher definierten clients ausliest und als datenpunkte speichert - es werden keine tabellen oder sonstiges angelegt: https://forum.iobroker.net/post/405654
was kann es:
feature variable-info WLAN ein und ausschalten (z.b. Gäste-WLAN) geht immer AP Led's schalten geht immer- nur site-wide - nicht einzeln!e ap's Speedtest Daten nur mit security gateway hardware Internet Verbindung www online ? - nur mit security gateway hardware rudimentärer datenverbrauch nur mit unifi security hardware - sammelt täglichen und monatlichen datenverbrauch Alarme gehen immer - werden alle 3 script-zyklen upgedatet anwesenheitskontrolle mit datenpunkte für die clients anwesenheit=true voucherauflistung in tabellenform über ein html-widget für vis vouchers=true voucherauflistung in tabellenform für iqontrol vouchers,iqontrol=true vouchers erstellen es gibt im script setting eine variable zum erstellen von standard vouchers (iqontrol, vis) oder man kann neue anlegen (nur vis) vouchers löschen es gibt 2 datenpunkte für seleqtList-Widget, dadurch einfache vis anbindung (iqontrol, vis) clientauflistung in tabellenform über ein html-widget für vis anwesenheit=true clientauflistung in tabellenform für iqontrol anwesenheit,iqontrol=true es gibt verschiedene tabellen dafür: alle clients (mit disconnected), nur disconnected, nur clients am lan, nur clients am WLAN wahlweise hostname oder aliasname anzeige der angemeldeten clients alias=true health des WLANs geht immer - wird nur alle 3 abfragezyklen abgefragt - kommen daher erst verspätet beim ersten aktivieren des scripts minimale Info's zu AP's variable apInfo = true - welcher Controller ist zuständig, ist der AP adoptet (einbezogen), Ip des AP's, Satisfaction, Modelbezeichnung, abruf der daten nur alle 3 zyklen - kommen daher erst verspätet beim ersten aktivieren des scripts apInfo anzeige für vis in html tabellenform und für iqontrol (über popup) mehrer installierte netzwerke z.b gästenetzwerk geht immer AccessPoint und Switches es können WLAN und LAN Geräte angezeigt werden Farben definieren, Schriftart Farben für Vis oder IQontrol können eingestellt werden script zyklus das script schreibt nicht alle daten bei jedem zyklus - die health, ap daten werden nur alle 3 zyklen geschrieben - es gibt einen datenpunkt dafür, dieser datenpunkt ist für die vis gedacht - so kann man sich anzeigen, wann der zyklus durch ist - zählt von 1 bis 3 scriptpause das script macht eine pause beim umschalten eines netzwerkes - die ap's werden umgeschaltet - es gibt einen datenpunkt, der diese pause anzeigt - z.b in meiner vis: ich ändere bei dieser pause die schriftfarbe für die cleints und die rahmen blinke rot - siehe bild am ende rudimentärer filter für client anzeige es gibt einen filter für die clientanzeige - es werden nur clientsangezeigt, welche den inhalt vom datenpunkt "Client_WhiteList" beinhalten SSID unsichtbar schalten einfache integration - die werte können vom zustand in der unifi datenbank abweichen - wird nicht abgefragt was ist wichtig :
einstellungen im oberen teil des scripts info npm zusatzmodule es müssen 3 npm zusatzmodule in der javascript instanz eingetragen - und dadurch installiert - werden: fs, request, request-promise-native login daten und port für controller und der site-name const unifi_username, unifi_passwort und unifi_controller WICHTIG:der sitename muss aus der URL im browser, bei aufruf der controller-web-seite, entnommen werden !!!https://forum.iobroker.net/post/323789konstante wlan-name(n) mit wlan-id const wifis - wie man die ID des netzwerkes rausfindet steht hier: https://forum.iobroker.net/post/295086 konstante ap-alias const apName - der Aliasnamen für die AP's und Switches- hat nichts mit den Aliasnamen im Controller zu tun - wird nur für das script gebraucht - können frei gewählt werden blacklist für clients const blackList clients via AP's kontrolle const checkConnType - darin werden clientnamen angegeben, bei denen man den aktuellen AccessPoint braucht - es werden dafür eigene Datenpunkte angelegt länge der pause beim umschalten eines netzwerkes clientPauseConst - ist für die länge der scriptpause verantwortlich - wird benötigt, da beim ein oder ausschalten eines netzwerkes (auch nur das gästenetzwerk) alle ap's einen neustart machen ( proviosioniert) und dadurch die anwesenheitskontrolle beeinflußt werden könnte. z.b brauchen tasmota-geflashte clients lange, bis sie wieder online sind - die anwesenheitskontrolle könnte auch zur überwachung solcher geräte genutzt werden abfrageinterval: "abfragezyklus" und "abfrageoffset" abfragezyklus definiert, in welchen interval die abfragen stattfinden sollen (20sek ist eingestellt) - damit erreicht man eine sehr schnelle aktualisierung beim anmelden eines clients im WLAN - beim abmelden des clients muss der abfrageoffset mit berücksichtigt werden (15 sek ist eingestellt) - wählt man den abfrageoffset zu klein, kann es sein, dass bei einem wechsel eines clients (handy) zu einem anderen accesspoint (ap) eine auslogmeldung kommt - bei meinem system bekomme ich nach ungefähr 30 sek einen anmeldevorgang gemeldet und nach ca 45-50 sek einen abmeldevorgang gewünschte features auf true setzen iqontrol, anwesenheit,vouchers,apInfo - was nicht benötigt wird, bitte nicht aktivieren -> resourcen sparen - der iqontroladapter muss installiert sein, wenn man iqontrol im script auf true setzt aliasnamen für clients aliasname - möchte man lieber, die im unifi-controller definierten aliasnamen für die clients nutzen, muß in jedem client im controller ein alias definiert sein damit alle clients im script sichtbar werden - oder es werden nur aliase für bestimmte geräte angegeben - dann ist der rest nicht sichtbar - wichtig weil: was nicht sichtbar ist, kann nicht zur anwesenheitskontrolle genutzt werden und : der standard - aliasname=false - nimmt den aliasnamen, wenn einer existiert, ansonsten den hostnamen ip clients liste nach IP adresse sortiert anzeigen sortedByIP für die clientliste in iqontrol und vis disconnected clients als erstes anzeigen disConClientsFirst für die clintliste in iqontrol und vis farben für iqontrol und vis datenpunkte im admin es wird ein ordner in der javascript instanz erzeugt - unter umständen wird ein zweiter ordner angelegt, zum sichern "dauerhafter daten". WLANUnifi kann gelöscht werden (z.b. bei einem update des scripts; WLANUnifiHelp sollte nicht gelöscht werden, darin sind Daten gespeichert, die wieder gebraucht werden (z.b datenverbrauch messung) iqontrol
kann über ein popup eingebunden werden. im feld html eintragen: mögliche files, die zur verfügung stehen:für clients:
<iframe width="100% "height="100% "frameborder="0" src="/iqontrol.meta/htmlclients.html"></iframefür vouchers:
<iframe width="100% "height="100% "frameborder="0" src="/iqontrol.meta/htmlvoucher.html"></iframefür health und /oder apInfo
<iframe width="100% "height="100% "frameborder="0" src="/iqontrol.meta/htmlinfo.html"></iframezusätzlich : nur LAN geräte : htmllan.html ; nur WLAN geräte: htmlwlan.html ; nur disconnected geräte: htmldisc.html ;
voucher erstellung:
- unter dem datenpunkt Wifi_Vouchers-CODES.A_New_Voucher kann ein voucher angelegt werden - die anzahl, dauer und multiuse müssen eingegeben werden - alle anderen sind optional
oder es gibt datenpunkte zum erstellen einer valueliste, um vorgefertigte (standard) vouchers anzulegen (selectValuelist-widget)
werte zusatz die dauer in minuten z.b. 120 die anzahl der vouchers wie viele davon sollen angelegt werden multiuse 0=immer wieder ;1 ist nur einmal und jede andere zahl für n-mal also 5 für 5 mal upload und download speed begrenzung in kbyte - eingabe ohne einheiten mb_begrenzung volumen begrenzung in MByte - eingabe ohne einheiten Voucher löschen
direkt über Datenpunkte:- zuerst ID des vouchers eintragen :"WLANUnifi.Wifi_Vouchers-CODES.A_Delete_Voucher.Voucher_ID"
-anschliessend "WLANUnifi.Wifi_Vouchers-CODES.A_Delete_Voucher.Delete" auf true setzen
oder über VIS:
dazu gibt es zwei datenpunkte
-WLANUnifi.Wifi_Vouchers_CodeList - "texte" mit binding in selectValueList widget eintragen
-WLANUnifi.Wifi_Vouchers_List - "werte" mit binding in selectValueList widget eintragenbeim update auf eine neue scriptversion:
- script stoppen
- script kopieren und einfügen (meist reicht es, nur unter der eigenene konfiguration zu kopieren und einzufügen - damit man nicht jedesmal die konfiguration (login, wlan) neu machen muss
- alle datenpunkte löschen (wichtig_)
- script starten
aktuelle version:
14.09.19
16.09.19
17.09.19- voucher löschen mit iqontrol
18.09.19- WLAN problem - mehr zeit bevor false bei clients
22.09.19 - einfacheres löschen und erzeugen von vouchers in der vis, unbenennung einiger datenpunktnamen (datenpunkte löschen vor scriptstart)
23.09.19- AP Led's site-wide ein- und ausschalten
27.09.19- AP LAodAVG für 1,5 und 15 Minuten
3.10.19- Alarm, Clients-ohne-Namen, LAN clients >> switch und usg integration
8.10.19- js-controllerv2 update, Eingabe mit Punkt im Alias, Leerzeichen ersetzen, Scriptlogik verbessert, zusätz. setting ohne Clients, fehlende IP abfangen, eigenes Widget "letzter wechsel im netzwerk für VIS, ...
9.10.19fehler behebung bei missingName datenpunkt, scriptpause bei wifiumschaltung geändert
10.10.19neue sotierung clients, speedtest-vorbereitung
11.10.19neue sotierung clients, speedtest und internet-verbindung
22.10.19kleine fehler bei LAN geräten bereinigt, Fehler mit "IP fehlt bereinigt, einzelne iqontrol und vis tables für anzeige von LAN,WLAN clients
30.10.19besseres log bei fehleranalyse "sprunghafte" clients (syslog); neue datenpunkte für verbrauchte datenmenge ins internet (nur mit usg)
9.11.2019verbesserung - clients ohne namen, neues setting - clients anzeige: Ip zuerst
06.12.19verbesserung fehlersuche und fehler mit security gateway und clientanzeige
08.12.19fehler bei anzeige von überwachten cients bereinigen
14.12.19unifi bug ausgleichen - SSID unsuchtbarschalten
18.12.19bug beim starten ohne datenpunkte behoben
30.12.19 bug ohne anwesenheit begradigtunifi-main-script-30-12-19.txt
Problembehandlung bei anwesenheitskontrolle mit zu schnellen bzw. falschen wertänderungen der clients:https://forum.iobroker.net/post/301328beispiel für vis im nächsten bild:es wurden die 3 tabellen aus den datenpunkten , die voucherlöschung (code auswählbar durch SelectValueList-widget siehe https://forum.iobroker.net/post/300367 ) und vouchererzeugung (auswählbar durch SelectValueList-widget)eingerichtet
gelber pfeil - gerät nicht angemeldet
oranger pfeil: gerät nicht angemeldet und nicht in controller gelistet - aber ist in script registriert und damit false
weißer pfeil: valuelist für erzeugung von vouchers
grüner pfeil: valuelist löschen existierender vouchers
roter pfeil: alarme
mehr infos über die anzeige in der vis: https://forum.iobroker.net/post/305865

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


zyklus anzeige :

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

@liv-in-sky DeineView gefällt mir wirklich gut.
Kannst du eventuell die zugehörigen Bilder auch mit exportieren? Das wäre das i-Tüpfelchen.Übrigens funktioniert das Script bei mir bisher absolut Problemlos. Gerade mit den selbst erstellten Vouchers kommt das richtig gut an.
- unter dem datenpunkt Wifi_Vouchers-CODES.A_New_Voucher kann ein voucher angelegt werden - die anzahl, dauer und multiuse müssen eingegeben werden - alle anderen sind optional
-
Moin Moin,
im Log im Minutentakt diese Meldungjavascript.0 2019-10-06 09:02:11.915 warn at Timer.processTimers (timers.js:223:10) javascript.0 2019-10-06 09:02:11.915 warn at listOnTimeout (timers.js:263:5) javascript.0 2019-10-06 09:02:11.915 warn at tryOnTimeout (timers.js:300:5) javascript.0 2019-10-06 09:02:11.914 warn at ontimeout (timers.js:438:13) javascript.0 2019-10-06 09:02:11.914 warn at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1332:29) javascript.0 2019-10-06 09:02:11.914 warn at Object.setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1276:20) javascript.0 2019-10-06 09:02:11.914 warn You are assigning a string to the state "javascript.0.WLANUnifi.WSS_nomap" which expects a boolean. Please fix your code to use a boolean or change the state type to string. This warning might become -
Moin Moin,
im Log im Minutentakt diese Meldungjavascript.0 2019-10-06 09:02:11.915 warn at Timer.processTimers (timers.js:223:10) javascript.0 2019-10-06 09:02:11.915 warn at listOnTimeout (timers.js:263:5) javascript.0 2019-10-06 09:02:11.915 warn at tryOnTimeout (timers.js:300:5) javascript.0 2019-10-06 09:02:11.914 warn at ontimeout (timers.js:438:13) javascript.0 2019-10-06 09:02:11.914 warn at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1332:29) javascript.0 2019-10-06 09:02:11.914 warn at Object.setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1276:20) javascript.0 2019-10-06 09:02:11.914 warn You are assigning a string to the state "javascript.0.WLANUnifi.WSS_nomap" which expects a boolean. Please fix your code to use a boolean or change the state type to string. This warning might become@Nashra auch moin
die meldung macht bei mir keinen sinn, da die zeilen um 1276 um voucher löschung geht
der datenpunkt ...WLANUnifi.WSS_nomap scheint aber ein WLAN name zu sein - kannst du bitte mal ein bild des scripts um diese zeilen posten (mit sichtbaren zeilennummern)

