NEWS
Unifi WLAN Script 2 mit Anwesenheitskontrolle
-
@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
-
@liv-in-sky
also mein log ist leer?
auch wenn ich das script stoppe und starte. sorry bin script noob -
@dos1973 manchml ist es bei mir auch so - ich schliesse dann meist alle offenen scripts - sind über dem script aufgelistet - und mache einen refresh der seite und starte das script neu - meist kommt dann was
manchmal mischen auch kopien des scripts mit und ich klicke dann diese an und es kommt dann das gewollte log beim anderen script - ist manchmal echt seltsam
-
@liv-in-sky
ok, jetzt kommt was, ich habe im script den DEBUG mode ein und aus geschaltet... was brauchst du, ist ja eine ganze Menge -
@dos1973 ales in ein txt file - ich schreibe dir meine mail nochmal ins chat
-
@liv-in-sky
ist soeben per mail raus... Danke -
@dos1973 danke angekommen
-
@liv-in-sky sagte in Unifi WLAN Script 2 mit Anwesenheitskontrolle:
@MyMeyer die datenpunkte sollten nach 20 sekunden erscheinen
- bitte mmache die anführungszeichen aus der blacklist raus sollte so aussehen blacklist=[]
Habe ich gemacht.
- setzte den wert abfageoffset=45000 - man kann später wieder weiter runtergehen
Auch erledigt.
- die mac-adressen der aps in apName solten direkt vom controller rauskopiert werden - alle buchstaben müssen klein sein
Sind sie.
- steht was im log ?
Bisher nichts auffälliges für mich.
- steht der datenpunkt Zykluszaehler zwischen 1-3 oder ist er größer 3
liegt zwischen 1-3
- nutze das neuste skript - post 1 dieses threads
Habe das aktuelle Script am laufen "12122019-3.0".
Ich habe die Anpassung wie geschrieben gemacht und werde die Sache beobachten. Letztlich machen mir die langen Zeiten bei meiner Abwesenheitserkennung immer wieder Probleme. Steuere damit meine Heizung und da sollte es schon passen sonst wird es kalt
Danke Dir erstmal ich werde beobachten und gegebenenfalls noch mal dazu melden.
-
@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.
hilfreich wäre es zum genauen testen, wenn du dir die zustände irgendwie (evtl telegram ( oder mir sagt alexa, wenn ich mich einlogge mit wifi ))) zusenden würdest
-
das auf true setzen der dp für die anwesenheit sollte nicht länger dauern als der eingestellte abfragezyklus - das funktioiert auch recht zuverlässig
-
das auf false setzen ist schon eher langsamer aber sollte nicht länger dauern als der abfragezyklus plus abfageoffset
-
richtig problematisch wird es erst , wenn ein oder mehrere datenpunkte springen, ohne das sich das handy ein oder ausloggt - dann muss man etwas debuggen
-
leider hat sich herausgestellt, dass der unifi seltsame daten liefert , wenn ein gateway (hardware (usg oder ugw) angeschlossen ist - ohne usg sollte es keine probleme geben - das script ist auch ziemlich groß und muss natürlich viel arbeiten beim auswerten der daten - da sollte die hardware nicht vergessen werden - ein raspi mit 15 adaptern und evtl 100 scripten, könnte da schon zu problemen führen
-
-
@liv-in-sky sagte in Unifi WLAN Script 2 mit Anwesenheitskontrolle:
@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
Nochmal eine kurze Rückmeldung für Dich.
Bei mir läuft diese Version jetzt 2 Tage durch und es funktioniert alles wie gewünscht. -
@dslraser ich feue mich immer über solche feedbacks - bringt ruhigen schlaf
danke dir -
Hi, erstmal vielen Dank für das Script. Ich habe es seit heute am laufen.
Ich wollte das ganze wegen Anwesenheit umsetzen, was auch einwandfrei funktioniert bisher. Das einzige was nicht angezeigt werden, sind die AP Informationen. Das sieht dann im LOG so aus:
javascript.0 2019-12-19 14:20:37.944 warn (802) at process._tickCallback (internal/process/next_tick.js:68:7) javascript.0 2019-12-19 14:20:37.944 warn (802) at Object.setInterval (script.js.Sonstiges.Unifi-Controller-Script:1961:38) javascript.0 2019-12-19 14:20:37.943 warn (802) at workAP (script.js.Sonstiges.Unifi-Controller-Script:1523:6) javascript.0 2019-12-19 14:20:37.943 warn (802) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1364:20) javascript.0 2019-12-19 14:20:37.942 warn (802) You are assigning a undefined to the state "javascript.0.WLANUnifi.APInfo.unifiAPWohnung.IP_Adresse" which expects a string. Please fix your code to use a string or change the state type to unde javascript.0 2019-12-19 14:19:37.676 warn (802) at process._tickCallback (internal/process/next_tick.js:68:7) javascript.0 2019-12-19 14:19:37.676 warn (802) at Object.setInterval (script.js.Sonstiges.Unifi-Controller-Script:1961:38) javascript.0 2019-12-19 14:19:37.675 warn (802) at workAP (script.js.Sonstiges.Unifi-Controller-Script:1523:6) javascript.0 2019-12-19 14:19:37.675 warn (802) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1364:20) javascript.0 2019-12-19 14:19:37.674 warn (802) You are assigning a undefined to the state "javascript.0.WLANUnifi.APInfo.unifiAPWohnung.IP_Adresse" which expects a string. Please fix your code to use a string or change the state type to unde javascript.0 2019-12-19 14:18:37.754 warn (802) at process._tickCallback (internal/process/next_tick.js:68:7) javascript.0 2019-12-19 14:18:37.754 warn (802) at Object.setInterval (script.js.Sonstiges.Unifi-Controller-Script:1961:38) javascript.0 2019-12-19 14:18:37.754 warn (802) at workAP (script.js.Sonstiges.Unifi-Controller-Script:1523:6) javascript.0 2019-12-19 14:18:37.753 warn (802) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1364:20) javascript.0 2019-12-19 14:18:37.752 warn (802) You are assigning a undefined to the state "javascript.0.WLANUnifi.APInfo.unifiAPWohnung.IP_Adresse" which expects a string. Please fix your code to use a string or change the state type to und javascript.0 2019-12-19 14:17:57.672 warn (802) script.js.Sonstiges.Unifi-Controller-Script: Unifi Script ist in Pause wegen WLAN Umschalteung- bis: 14:17:58 javascript.0 2019-12-19 14:17:37.549 warn (802) at process._tickCallback (internal/process/next_tick.js:68:7) javascript.0 2019-12-19 14:17:37.549 warn (802) at Object.setInterval (script.js.Sonstiges.Unifi-Controller-Script:1961:38) javascript.0 2019-12-19 14:17:37.549 warn (802) at workAP (script.js.Sonstiges.Unifi-Controller-Script:1523:6) javascript.0 2019-12-19 14:17:37.548 warn (802) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1364:20) javascript.0 2019-12-19 14:17:37.547 warn (802) You are assigning a undefined to the state "javascript.0.WLANUnifi.APInfo.unifiAPWohnung.IP_Adresse" which expects a string. Please fix your code to use a string or change the state type to und javascript.0 2019-12-19 14:17:17.619 warn (802) script.js.Sonstiges.Unifi-Controller-Script: Unifi Script ist in Pause wegen WLAN Umschalteung- bis: 14:17:58 javascript.0 2019-12-19 14:16:57.628 warn (802) script.js.Sonstiges.Unifi-Controller-Script: Unifi Script ist in Pause wegen WLAN Umschalteung- bis: 14:17:58 javascript.0 2019-12-19 14:16:37.627 warn (802) at process._tickCallback (internal/process/next_tick.js:68:7) javascript.0 2019-12-19 14:16:37.626 warn (802) at Object.setInterval (script.js.Sonstiges.Unifi-Controller-Script:1961:38) javascript.0 2019-12-19 14:16:37.626 warn (802) at workAP (script.js.Sonstiges.Unifi-Controller-Script:1523:6) javascript.0 2019-12-19 14:16:37.626 warn (802) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1364:20) javascript.0 2019-12-19 14:16:37.625 warn (802) You are assigning a undefined to the state "javascript.0.WLANUnifi.APInfo.unifiAPWohnung.IP_Adresse" which expects a string. Please fix your code to use a string or change the state type to und javascript.0 2019-12-19 14:16:17.530 warn (802) script.js.Sonstiges.Unifi-Controller-Script: Unifi Script ist in Pause wegen WLAN Umschalteung- bis: 14:17:58 javascript.0 2019-12-19 14:15:57.645 warn (802) script.js.Sonstiges.Unifi-Controller-Script: Unifi Script ist in Pause wegen WLAN Umschalteung- bis: 14:17:58 javascript.0 2019-12-19 14:15:37.609 warn (802) at process._tickCallback (internal/process/next_tick.js:68:7) javascript.0 2019-12-19 14:15:37.609 warn (802) at Object.setInterval (script.js.Sonstiges.Unifi-Controller-Script:1961:38) javascript.0 2019-12-19 14:15:37.609 warn (802) at workAP (script.js.Sonstiges.Unifi-Controller-Script:1523:6) javascript.0 2019-12-19 14:15:37.609 warn (802) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1364:20) javascript.0 2019-12-19 14:15:37.607 warn (802) You are assigning a undefined to the state "javascript.0.WLANUnifi.APInfo.unifiAPWohnung.IP_Adresse" which expects a string. Please fix your code to use a string or change the state type to und javascript.0 2019-12-19 14:15:17.635 warn (802) script.js.Sonstiges.Unifi-Controller-Script: Unifi Script ist in Pause wegen WLAN Umschalteung- bis: 14:17:58 javascript.0 2019-12-19 14:14:57.820 info (802) script.js.Sonstiges.Unifi-Controller-Script: WLAN wird gerade umgeschaltet javascript.0 2019-12-19 14:14:57.792 info (802) script.js.Sonstiges.Unifi-Controller-Script: WLAN wird gerade umgeschaltet javascript.0 2019-12-19 14:14:57.615 warn (802) script.js.Sonstiges.Unifi-Controller-Script: Unifi Script ist in Pause wegen WLAN Umschalteung- bis: 14:17:58 javascript.0 2019-12-19 14:14:38.139 info (802) script.js.Sonstiges.Unifi-Controller-Script: resp: {} javascript.0 2019-12-19 14:14:38.138 info (802) script.js.Sonstiges.Unifi-Controller-Script: ------------: [object Promise] javascript.0 2019-12-19 14:14:38.135 info (802) script.js.Sonstiges.Unifi-Controller-Script: ALL SSID: got response javascript.0 2019-12-19 14:14:38.127 info (802) script.js.Sonstiges.Unifi-Controller-Script: resp: {} javascript.0 2019-12-19 14:14:38.126 info (802) script.js.Sonstiges.Unifi-Controller-Script: ------------: [object Promise] javascript.0 2019-12-19 14:14:38.126 info (802) script.js.Sonstiges.Unifi-Controller-Script: ALL SSID: got response javascript.0 2019-12-19 14:14:37.562 info (802) script.js.Sonstiges.Unifi-Controller-Script: ssid switch in aktion javascript.0 2019-12-19 14:14:37.561 info (802) script.js.Sonstiges.Unifi-Controller-Script: false5dfa4af763c267031de2f692 javascript.0 2019-12-19 14:14:37.561 info (802) script.js.Sonstiges.Unifi-Controller-Script: falseb_gast javascript.0 2019-12-19 14:14:37.561 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 14:14:37.556 info (802) script.js.Sonstiges.Unifi-Controller-Script: ssid switch in aktion javascript.0 2019-12-19 14:14:37.555 info (802) script.js.Sonstiges.Unifi-Controller-Script: false5dfa49d363c267031de2f685 javascript.0 2019-12-19 14:14:37.554 info (802) script.js.Sonstiges.Unifi-Controller-Script: falseb javascript.0 2019-12-19 14:14:37.553 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 14:14:36.989 info (802) script.js.Sonstiges.Unifi-Controller-Script: registered 11 subscriptions and 1 schedule javascript.0 2019-12-19 14:14:36.939 info (802) Start javascript script.js.Sonstiges.Unifi-Controller-Script
das wiederholt sich dann munter weiter.
Vielleicht gibt es dafür eine Lösung?
-
@bimmi - die sollte es definitiv geben
bitte überprüfe nochmal die MAc adressen der aps, die du im script eingegen hast (in der apName constante) - format: die mac-adressen müssen mit doppelpunkten angegeben sein und die buchstaben in lower-case - also kleingeschrieben - hier ein beispiel "18:e8:29:56:40:e2"
gilt natürlich auch für unifi switches oder dem unifi gateway, falls du diese auch eingegeben hast
ps:
-
noch eine frage- hast du versucht, die ssid unsichtbar zu schalten - diese funktion wird nämlich aufgerufen - sie sollte nicht laufen, wenn du sie nicht ausgewählt hast - auswählen funktioniert über das schalten der folgenden datenpunkte : "javascript.2.WLANUnifi.WLANSSIDsHide.WLAN_SSID_normal" oder auch "javascript.2.WLANUnifi.WLANSSIDsHide.WLAN_SSID_Gast" (natürlich an deine settings (ssid-namen) angeglichen)
-
wurden eigentlich diese datenpunkte angelegt und stehen auf false ?
-
-
@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