NEWS
Unifi WLAN Script 2 mit Anwesenheitskontrolle
-
@liv-in-sky danke für deine Antwort. Habe die MAC Adressen direkt aus der Controller Übersicht kopiert.
// September 2019 @liv-in-sky durch viel vorarbeit von @thewhobox (api verbindung) // Definition Login const unifi_username = "admin"; const unifi_password = "##############"; const unifi_controller = "https://192.168.1.250:8443"; let siteName ="default"; //Site name // DEFINITION der zu anzeigenden Netzwerke am besten bis auf id und smart alle gleich setzen const wifis = { "b": { name: "b", id: "5d#####85", desc: "b", smart: "b" } , "b_gast": { name: "b_gast", id: "5d#####92", desc: "b_gast", smart: "b_gast" } } // DEFINITION der Aliasnamen für die AP's - hat nichts mit den Aliasnamen im Controller zu tun - wird nur für das script gebraucht const apName = { "78:8a:20:d0:dd:10" : { aname: "unifiAPWohnung"}, //mac adresse der ap's "78:8a:20:d0:dd:d9" : { aname: "unifiAPKeller"} } //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=["bimmiPoco","Yvonne"]; // 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 = 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=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------------------------------------------------------
Schreibfehler sind ausgeschlossen. Habe gerade nochmal alles überprüft! Habe aber trotzdem nochmal meine Config angehängt, vielleicht hab ich ja doch einen Fehler drin?
Habe auch bisher nur die clients gesucht, habe noch nichts geschalten über das Script.
Edit: nicht wundern, hab den APWohnung aktuell nicht am Netz.
-
@bimmi wenn du einen ap nicht im netz hast - aber im setting - wird das , dass probelm sein - nimm ihn aus dem setting - sonst sehe ich keinen fehler in deinen settings
-
das script überprüft nicht, ob hardware vorhanden ist - es geht davon aus, dass sie da ist
muss mal sehen wie aufwendig es ist, das abzuprüfen
aber ich habe noch einen anderen fehler gesehen - den ich im script ändern muss - hat mit den logs von dir zu tun, da wird etwas gestartet, was nicht gestartet werden soll
-
@liv-in-sky said in Unifi WLAN Script 2 mit Anwesenheitskontrolle:
@bimmi wenn du einen ap nicht im netz hast - aber im setting - wird das , dass probelm sein - nimm ihn aus dem setting - sonst sehe ich keinen fehler in deinen settings
ok, habe das jetzt auskommentiert im script. Jetzt zeigt er auch die Daten an und die Fehlermeldungen kommen nicht mehr. Danke für den Tipp.
@liv-in-sky said in Unifi WLAN Script 2 mit Anwesenheitskontrolle:
das script überprüft nicht, ob hardware vorhanden ist - es geht davon aus, dass sie da ist
muss mal sehen wie aufwendig es ist, das abzuprüfen
aber ich habe noch einen anderen fehler gesehen - den ich im script ändern muss - hat mit den logs von dir zu tun, da wird etwas gestartet, was nicht gestartet werden soll
Habe eigentlich den APKeller im Keller, welchen ich vom Strom nehme wenn ich nicht daheim bin und ihn eher selten laufen lasse... Vielleicht gibt es ja eine Lösung bald.
Den Fehler mit der WLAN Umschaltung meinst Du?
javascript.0 2019-12-19 15:49:53.960 warn (802) script.js.Sonstiges.Unifi-Controller-Script: Unifi Script ist in Pause wegen WLAN Umschalteung- bis: 15:50:34 javascript.0 2019-12-19 15:49:33.999 warn (802) script.js.Sonstiges.Unifi-Controller-Script: Unifi Script ist in Pause wegen WLAN Umschalteung- bis: 15:50:34 javascript.0 2019-12-19 15:49:14.085 warn (802) script.js.Sonstiges.Unifi-Controller-Script: Unifi Script ist in Pause wegen WLAN Umschalteung- bis: 15:50:34 javascript.0 2019-12-19 15:48:53.997 warn (802) script.js.Sonstiges.Unifi-Controller-Script: Unifi Script ist in Pause wegen WLAN Umschalteung- bis: 15:50:34 javascript.0 2019-12-19 15:48:34.042 warn (802) script.js.Sonstiges.Unifi-Controller-Script: Unifi Script ist in Pause wegen WLAN Umschalteung- bis: 15:50:34 javascript.0 2019-12-19 15:48:14.092 warn (802) script.js.Sonstiges.Unifi-Controller-Script: Unifi Script ist in Pause wegen WLAN Umschalteung- bis: 15:50:34 javascript.0 2019-12-19 15:47:53.983 warn (802) script.js.Sonstiges.Unifi-Controller-Script: Unifi Script ist in Pause wegen WLAN Umschalteung- bis: 15:50:34 javascript.0 2019-12-19 15:47:34.357 info (802) script.js.Sonstiges.Unifi-Controller-Script: WLAN wird gerade umgeschaltet javascript.0 2019-12-19 15:47:34.318 info (802) script.js.Sonstiges.Unifi-Controller-Script: WLAN wird gerade umgeschaltet javascript.0 2019-12-19 15:47:34.155 warn (802) script.js.Sonstiges.Unifi-Controller-Script: Unifi Script ist in Pause wegen WLAN Umschalteung- bis: 15:50:34 javascript.0 2019-12-19 15:47:14.386 info (802) script.js.Sonstiges.Unifi-Controller-Script: resp: {} javascript.0 2019-12-19 15:47:14.386 info (802) script.js.Sonstiges.Unifi-Controller-Script: ------------: [object Promise] javascript.0 2019-12-19 15:47:14.385 info (802) script.js.Sonstiges.Unifi-Controller-Script: ALL SSID: got response javascript.0 2019-12-19 15:47:14.378 info (802) script.js.Sonstiges.Unifi-Controller-Script: resp: {} javascript.0 2019-12-19 15:47:14.377 info (802) script.js.Sonstiges.Unifi-Controller-Script: ------------: [object Promise] javascript.0 2019-12-19 15:47:14.377 info (802) script.js.Sonstiges.Unifi-Controller-Script: ALL SSID: got response javascript.0 2019-12-19 15:47:13.778 info (802) script.js.Sonstiges.Unifi-Controller-Script: ssid switch in aktion javascript.0 2019-12-19 15:47:13.777 info (802) script.js.Sonstiges.Unifi-Controller-Script: false5dfa4af763c267031de2f692 javascript.0 2019-12-19 15:47:13.777 info (802) script.js.Sonstiges.Unifi-Controller-Script: falseb_gast javascript.0 2019-12-19 15:47:13.777 info (802) script.js.Sonstiges.Unifi-Controller-Script: !11111111_________: javascript.0.WLANUnifi.WLANSSIDsHide.b,javascript.0.WLANUnifi.WLANSSIDsHide.b_gastjavascript.0.WLANUnifi.b,javascript.0.WLANUnif javascript.0 2019-12-19 15:47:13.773 info (802) script.js.Sonstiges.Unifi-Controller-Script: ssid switch in aktion javascript.0 2019-12-19 15:47:13.772 info (802) script.js.Sonstiges.Unifi-Controller-Script: false5d##########85 javascript.0 2019-12-19 15:47:13.771 info (802) script.js.Sonstiges.Unifi-Controller-Script: falseb javascript.0 2019-12-19 15:47:13.770 info (802) script.js.Sonstiges.Unifi-Controller-Script: !11111111_________: javascript.0.WLANUnifi.WLANSSIDsHide.b,javascript.0.WLANUnifi.WLANSSIDsHide.b_gastjavascript.0.WLANUnifi.b,javascript.0.WLANUnif javascript.0 2019-12-19 15:47:13.400 info (802) script.js.Sonstiges.Unifi-Controller-Script: registered 11 subscriptions and 1 schedule
-
@bimmi ja den meine ich
tu mir mal bitte einen gefallen
habe im ersten post neues script - kannst du dies bitte installieren ( nur ab "AB HIER NICHTS MEHR ..)" ersetzen. dann alle datenpunkte löschen und das script nochmal starten - dann sollten keine meldungen mehr mit "WLAN wird umgeschalten" kommen
-
@liv-in-sky der log bleibt leer jetzt mit dem neuen script und funktioniert einwandfrei!
Es läuft jetzt auch gefühlt schneller im Browser ab alles.
Vielen Dank für die Hilfe
-
schaue mir noch das überprüfen , ob hardware da ist an - muss erstmal besten weg erkunden, fallse es einen besten weg gibt
-
@liv-in-sky danke für die Mühe!
-
hab mal die daten angesehen - da steht 18.12.2019 - 06:24:48 für die runtime des speedtests - kann das sein ? läuft der speedtest nicht immer bei dir ?
-
bitte teste mal dieses script und stecke den ap ein und aus => es sollte ein neuer datenpunkt erscheinen, der unter dem AP einen state dp zeigt (true/false) - in den tabellen für iqontrol und vis wird er dann nicht mehr angezeigt und unter health steht dann warnung - UND es sollten keine fehler im log kommen
@dos1973
@all_with_usgkönntest du auch bitte das script testen (oder jeder , der den speedtest (also usg) hat) und mir sagen ob es unter dem speedtest 2 neue datenpunkte gibt - runtime und runtimeorginal - ergeben die daten sinn, werden sie überhaupt geschrieben und auch erscheien sie in der vis bzw iqontrol
macht euch eine kopie für dieses testscript - es könnte sein, dass noch fehler bei der ausgabe erscheinen (programmier- blindflug, da ich kein usg habe) - wie immer alles unter "AB HIER NICHTS" ... kopieren - daten punkte müssen nicht gelöscht werden
-
@liv-in-sky sagte in Unifi WLAN Script 2 mit Anwesenheitskontrolle:
@MyMeyer ja bitte feedback - ist wichtig - aber so wie es aussieht, funktioniert es jetzt ???
was macht den genau probleme - das ein oder ausloggen - bzw das true oder false setzen der dp.
Hi beides hat immer wieder ein wenig Probleme gemacht, aber jetzt ! ES LÄUFT ALLES PERFEKT
Zwei Änderungen habe ich gemacht. WLAN Verschlüsselung angepasst und im Script bei Blacklist die Anführungszeichen entfernt. Jetzt läuft es alles super. Rein / Raus perfekte.
Was mir noch aufgefallen ist das noch nicht alle Objekte vom Script gefüllt werden . z.B.:
"SpeedTest", "Internet-Verbindung steht auf false, obwohl verbunden","Wan1TransferDaily steht alles auf '0'".
Aber ansonsten bin recht zufrieden -
@MyMeyer hast du die unifi security gatewy hardware box und wenn ja, hast du sie in apName eingegeben ?
-
@liv-in-sky sagte in Unifi WLAN Script 2 mit Anwesenheitskontrolle:
apName
Hi... Ja habe eine USG und nicht bei apName eingetragen ...mache ich jetzt gleich...
Kommen unter apName alle Unifi Gerät auch Switche ? -
@MyMeyer ja genau alles was unifi ist - da rein
dann kommen auch die LAN geräte zumvorschein
-
@liv-in-sky sagte in Unifi WLAN Script 2 mit Anwesenheitskontrolle:
@MyMeyer ja genau alles was unifi ist - da rein
dann kommen auch die LAN geräte zumvorschein
Danke Es wird immer besser... Herrlich... Nein im ernst Prima Arbeit
-
@MyMeyer wer einen intel i5 als proxmox hat, der braucht auch ein paar scripts, die rechnen und performance wollen
-
@liv-in-sky sagte in Unifi WLAN Script 2 mit Anwesenheitskontrolle:
@dos1973
@all_with_usgkönntest du auch bitte das script testen (oder jeder , der den speedtest (also usg) hat) und mir sagen ob es unter dem speedtest 2 neue datenpunkte gibt - runtime und runtimeorginal - ergeben die daten sinn, werden sie überhaupt geschrieben und auch erscheien sie in der vis bzw iqontrol
Hi,
ich habe das Script jetzt eingefügt. die 2 DP sind da.
- javascript.0.WLANUnifi.APInfo.SpeedTest.RunTime = 43
- javascript.0.WLANUnifi.APInfo.SpeedTest.RunTimeOrginal = not available
was für Daten sollen dort erscheinen (ergeben die Sinn?), keine Ahnung was die 43 bedeuten soll?
zudem tauchen Fehler im Logfile auf...
javascript.0 2019-12-20 00:40:09.647 warn (447) at process._tickCallback (internal/process/next_tick.js:68:7) javascript.0 2019-12-20 00:40:09.647 warn (447) at Object.setInterval (script.js.6_Diverse.Unifit_Info2:1976:38) javascript.0 2019-12-20 00:40:09.647 warn (447) at workAP (script.js.6_Diverse.Unifit_Info2:1473:13) javascript.0 2019-12-20 00:40:09.646 warn (447) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1404:20) javascript.0 2019-12-20 00:40:09.645 warn (447) You are assigning a number to the state "javascript.0.WLANUnifi.APInfo.SpeedTest.RunTime" which expects a string. Please fix your code to use a string or change the state type to number. This wa javascript.0 2019-12-20 00:39:09.658 warn (447) at process._tickCallback (internal/process/next_tick.js:68:7) javascript.0 2019-12-20 00:39:09.658 warn (447) at Object.setInterval (script.js.6_Diverse.Unifit_Info2:1976:38) javascript.0 2019-12-20 00:39:09.658 warn (447) at workAP (script.js.6_Diverse.Unifit_Info2:1473:13) javascript.0 2019-12-20 00:39:09.658 warn (447) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1404:20) javascript.0 2019-12-20 00:39:09.657 warn (447) You are assigning a number to the state "javascript.0.WLANUnifi.APInfo.SpeedTest.RunTime" which expects a string. Please fix your code to use a string or change the state type to number. This w javascript.0 2019-12-20 00:38:09.631 warn (447) at process._tickCallback (internal/process/next_tick.js:68:7) javascript.0 2019-12-20 00:38:09.631 warn (447) at Object.setInterval (script.js.6_Diverse.Unifit_Info2:1976:38) javascript.0 2019-12-20 00:38:09.631 warn (447) at workAP (script.js.6_Diverse.Unifit_Info2:1473:13) javascript.0 2019-12-20 00:38:09.631 warn (447) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1404:20) javascript.0 2019-12-20 00:38:09.630 warn (447) You are assigning a number to the state "javascript.0.WLANUnifi.APInfo.SpeedTest.RunTime" which expects a string. Please fix your code to use a string or change the state type to number. This w javascript.0 2019-12-20 00:37:09.629 warn (447) at process._tickCallback (internal/process/next_tick.js:68:7) javascript.0 2019-12-20 00:37:09.629 warn (447) at Object.setInterval (script.js.6_Diverse.Unifit_Info2:1976:38) javascript.0 2019-12-20 00:37:09.629 warn (447) at workAP (script.js.6_Diverse.Unifit_Info2:1473:13) javascript.0 2019-12-20 00:37:09.629 warn (447) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1404:20) javascript.0 2019-12-20 00:37:09.625 warn (447) You are assigning a number to the state "javascript.0.WLANUnifi.APInfo.SpeedTest.RunTime" which expects a string. Please fix your code to use a string or change the state type to number. This w javascript.0 2019-12-20 00:36:09.633 warn (447) at process._tickCallback (internal/process/next_tick.js:68:7) javascript.0 2019-12-20 00:36:09.633 warn (447) at Object.setInterval (script.js.6_Diverse.Unifit_Info2:1976:38) javascript.0 2019-12-20 00:36:09.632 warn (447) at workAP (script.js.6_Diverse.Unifit_Info2:1473:13) javascript.0 2019-12-20 00:36:09.632 warn (447) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1404:20) javascript.0 2019-12-20 00:36:09.631 warn (447) You are assigning a number to the state "javascript.0.WLANUnifi.APInfo.SpeedTest.RunTime" which expects a string. Please fix your code to use a string
im script editor Logfile
00:30:34.369 info javascript.0 (447) Stop script script.js.6_Diverse.Unifit_Info2 00:31:21.564 info javascript.0 (447) Start javascript script.js.6_Diverse.Unifit_Info2 00:31:21.609 info javascript.0 (447) script.js.6_Diverse.Unifit_Info2: registered 11 subscriptions and 1 schedule 00:34:17.460 info javascript.0 (447) Stop script script.js.6_Diverse.Unifit_Info2 00:35:07.353 info javascript.0 (447) Stop script script.js.6_Diverse.Unifit_Info2 00:35:09.224 info javascript.0 (447) Start javascript script.js.6_Diverse.Unifit_Info2 00:35:09.261 info javascript.0 (447) script.js.6_Diverse.Unifit_Info2: registered 11 subscriptions and 1 schedule 00:36:09.632 warn javascript.0 (447) at workAP (script.js.6_Diverse.Unifit_Info2:1473:13) 00:36:09.633 warn javascript.0 (447) at Object.setInterval (script.js.6_Diverse.Unifit_Info2:1976:38) 00:37:09.629 warn javascript.0 (447) at workAP (script.js.6_Diverse.Unifit_Info2:1473:13) 00:37:09.629 warn javascript.0 (447) at Object.setInterval (script.js.6_Diverse.Unifit_Info2:1976:38) 00:38:09.631 warn javascript.0 (447) at workAP (script.js.6_Diverse.Unifit_Info2:1473:13) 00:38:09.631 warn javascript.0 (447) at Object.setInterval (script.js.6_Diverse.Unifit_Info2:1976:38) 00:39:09.658 warn javascript.0 (447) at workAP (script.js.6_Diverse.Unifit_Info2:1473:13) 00:39:09.658 warn javascript.0 (447) at Object.setInterval (script.js.6_Diverse.Unifit_Info2:1976:38) 00:40:09.647 warn javascript.0 (447) at workAP (script.js.6_Diverse.Unifit_Info2:1473:13) 00:40:09.647 warn javascript.0 (447) at Object.setInterval (script.js.6_Diverse.Unifit_Info2:1976:38)
-
@dos1973 danke fürs testen und
sorry - next tryich würde sagen, wenn man nicht weiß,was es bedeuten soll (43), dann ergibt es keinen sinn
-
@liv-in-sky
sieht gut ausich würde es bevorzugen 2 DP zu haben, also Datum und Uhrzeit, aber denke dass ist Geschmackssache
ich beobachte es die Tage.
-
hier mit geteilten datenpunkt
bitte prüfe auch die vis oder iqontrol - ob alles stimmt