NEWS
Unifi WLAN Script
-
@liv-in-sky sagte in Unifi WLAN Script:
@dslraser ja ein apple problem - auf diesem weg scheint die anwesenheitskontrolle nicht zu funktionieren mit iphone - kannst du höchstens mit einem zusätzliche script abfangen
wie es scheint, meldet es sich immer nur für ein paar minuten ab - das könntest du prüfen
Das ist ein Apple-Problem per se. Die Anwesenheitserkennung über UniFi ist die einzige Variante, die bei einem iPhone wirklich sehr gut funktioniert - zumindest grundsätzlich. Das Verhalten mit dem An- und Abmelden hatte ich auch schonmal. Ein Neustart des Telefons hat geholfen.
-
@Hiltex sagte in Unifi WLAN Script:
Ein Neustart des Telefons hat geholfen.
Jetzt mit dem letzten Script und nach dem Handyneustart läuft es Amok...
Die google Suche hat auch so einiges zum Thema Apple ausgespuckt. Das scheint ja ein bekanntes Problem zu sein.
Ist nicht so tragisch, ich nutze zur Anwesenheit etwas anderes... -
@dslraser mit dem neuen script wird natürlich öfter geprüft - wenn da das last-seen-by-uap durch das handy verückt spielt - kommen natürlich maßig nachrichten
mit android oder anderen geräten funktioniert es aber hoffentlich ???
das kann man auch nicht mehr mit einem externen script abfangen
-
habe das error problem so gelöst - ist das in ordnung ?? -sorry für meine unwissenheit
habe dazu die login() funktion geändert und den gruppenaufrufsetInterval(async () => { if (await login()) { for(let wifi_name in wifis) { await getStatus(wifis[wifi_name]);} if (vouchers) getVouchers(); await getClients(); } else { log("Verbindung zum Unifi Controller nicht möglich - Unifi Script settings prüfen oder controller check !!!","error");} }, abfragezyklus); // wird oben definiert
rote pfeile sind änderung:
log, wenn controller service down:
-
@liv-in-sky sagte in Unifi WLAN Script:
mit android oder anderen geräten funktioniert es aber hoffentlich ???
mit meinem Androiden ist alles okay.
-
@liv-in-sky ja ist auch eine möglichkeit.
Evtl müsste man beim cookie speichern noch was ändern, damit da nicht alle x Sekunden die cookies drin gespeichert werden.
Schaue später daheim mal kurz nach -
@thewhobox sagte in Unifi WLAN Script:
@liv-in-sky ja ist auch eine möglichkeit.
Evtl müsste man beim cookie speichern noch was ändern, damit da nicht alle x Sekunden die cookies drin gespeichert werden.
Schaue später daheim mal kurz nachich hatte auch versucht getStatus eine fehlermeldung abzuringen - z.b wenn die id falsch definiert ist - das hat garnicht geklappt - problem - die daten (resp) wird auf meta ok geprüft (was auch kommt, da verbindung ja funktioniert) aber nicht, ob bei resp.data etwas drinsteht ( got response "{"meta":{"rc":"ok"},"data":[]}")
ich wollte eigendlich beim aufruf der gruppenabfrage eine art kette bilden und abfragen, ob alles ok ist (wenn ja - ab zur nächsten abfrage (get clients) wieder alles ok - ab zu vouchers - bei dem beispiel ( got response "{"meta":{"rc":"ok"},"data":[]}") ist nichts ok, das programm fängt immer von vorne an - da ich das falsche netzwerk als zweites definiert hatte, wird nur das erste auf status gecheckt - das dritte wird ausgelassen
wäre toll, wenn du noch ein paar minuten heue abend hättest
-
@liv-in-sky
so, noch mal Feedback !
Ich habe mein Telegram Script jetzt mal aus und habe nur die Objekte beobachtet.
Mein Handy (Anroid) wird übrigens auch im 20 Sekunden Takt (wahrscheinlich im Aktualisierungsintervall, manchmal wird auch eins übersprungen) von true auf false gewechselt, obwohl ich am Handy das WLAN nicht an und aus schalte, und immer so weiter...Das iPhone meiner Frau habe ich jetzt mal aussen vor gelassen.
Also als Test mit dieser Vorgehensweise:
Ich starte das Script, Handy wird in den DP's aufgeleistet, dann deaktiviere ich einmal das WLAN am Handy und warte bis es auf false geht. Dann schalte ich das WLAN am Handy wieder an, dann beginnt die true und false schalterei.im Script selbst ist eins von diesen hier zu viel. Jedenfalls schmeisst das Script beim ersten Start diesen Fehler, hatte ich vorhin vergessen zu schreiben.
let wifiDPs = [];
ich habe meine zwei "zu überwachenden" Geräte so eingefügt, ist das so von Dir gedacht ?
//Überwachte Geräte beim Abschalten - Beispiele überschreiben! const fastLane = { "Galaxy-Note8": { name: "Galaxy-Note8"} , "Mollys-iPhone": { name: "Mollys-iPhone"}, }
Irgendwas passt Da jedenfalls noch nicht...
Hast Du das mal mit Deinem Handy probiert und die Objekte beobachtet ? -
noch eine Info/Frage ?
im Log taucht jetzt alle 20 Sekunden als bzw. unter info: eine meiner amazon Geräte auf, warum bzw. wofür ist das ? -
@dslraser - ich mache nichts anderes als zu beobachten in den letzten tagen - ich hba edauernd eine benachrichtigung durch alexa, wenn etwas schaltet - beim start habe ich auch schon mal das umschalten gesehen - aber nur einmal anschliessend ist der status richtig - das liegt daran, das ein disconnect erstmal durch ein nicht in der liste von unifi geschaltet wird - das kan n ich nicht umgehen, da ich immer eine aktuelle liste von unifi brauche - anschliessend werden die einzelfälle nochmal bearbeitet. ich schau mal - aber wie gesagt- nur beim neustart des scripts - nach spätestens einen zyklus ist das vorbei
ich habe sehr kurze checkzeiten für das last seen-by-uap - eventuell ist da ein problem
doch bevor du das versuchst, lösche mal das komma nach mollys-iphone siehe:const fastLane = { "Galaxy-S9": { name: "Galaxy-S9"} , "GalaxyTabS2": { name: "GalaxyTabS2"}, "ESP_C75826" : {name: "ESP_C75826"} }
nach dem letzten eintrag gehört kein komma- warscheinlich unwichtig - aber versuche es mal
zurück zum uap thema du kannst hier mal etwas testen
dadurch werden die registrierzeiten etwas verlängert aber evt. beruhigt es das ganze.
zu ändern - bei zweitem pfeilen - in funktion fastlane() - änderung: abfragezyklus zu abfragezyklus+15000 - eigentlich nur wichtig beim unterem pfeil - evtl hilft das -
@liv-in-sky sagte in Unifi WLAN Script:
abfragezyklus+15000
also die 1000 auf 15000 ? (oder meinst Du 1500 ?)
-
ich bekomme beim import des skripts zig "missing semikolon" sowie " expected an identifier but instead saw ')' " in quasi jeder function.
Die Semikolons sind kein Problem, das mit den Klammern verstehe ich nicht, da alles zu passen scheint. habs mir nochmal im editor angesehen, da passt m.E. alles
mit aktualisertem JS Adapter sieht meine Konsole beim starten des Skripts so aus:
2019-09-04 21:57:42.261 error at TCP.onread (net.js:547:20) javascript.0 2019-09-04 21:57:42.261 error at Socket.Readable.push (_stream_readable.js:134:10) javascript.0 2019-09-04 21:57:42.261 error at readableAddChunk (_stream_readable.js:176:18) javascript.0 2019-09-04 21:57:42.261 error at Socket.emit (events.js:188:7) javascript.0 2019-09-04 21:57:42.261 error at emitOne (events.js:96:13) javascript.0 2019-09-04 21:57:42.260 error at Socket.realHandler (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/ws/lib/WebSocket.js:825:20) javascript.0 2019-09-04 21:57:42.260 error at Receiver.add (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/ws/lib/Receiver.js:103:24) javascript.0 2019-09-04 21:57:42.260 error at Receiver.expectHandler (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/ws/lib/Receiver.js:499:31) javascript.0 2019-09-04 21:57:42.260 error at Receiver.finish (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/ws/lib/Receiver.js:541:12) javascript.0 2019-09-04 21:57:42.260 error at Receiver.flush (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/ws/lib/Receiver.js:347:3) javascript.0 2019-09-04 21:57:42.260 error at /opt/iobroker/node_modules/iobroker.js-controller/node_modules/ws/lib/Receiver.js:508:14 javascript.0 2019-09-04 21:57:42.259 error at Receiver.applyExtensions (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/ws/lib/Receiver.js:371:5) javascript.0 2019-09-04 21:57:42.259 error at /opt/iobroker/node_modules/iobroker.js-controller/node_modules/ws/lib/Receiver.js:536:18 javascript.0 2019-09-04 21:57:42.259 error at Receiver.ontext (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/ws/lib/WebSocket.js:841:10) javascript.0 2019-09-04 21:57:42.259 error at WebSocket.emit (events.js:191:7) javascript.0 2019-09-04 21:57:42.259 error at emitTwo (events.js:106:13) javascript.0 2019-09-04 21:57:42.259 error at WebSocket.onMessage (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/ws/lib/WebSocket.js:442:14) javascript.0 2019-09-04 21:57:42.258 error at WebSocket.ws.onmessage (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/engine.io-client/lib/transports/websocket.js:146:10) javascript.0 2019-09-04 21:57:42.258 error at WS.Transport.onData (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/engine.io-client/lib/transport.js:137:8) javascript.0 2019-09-04 21:57:42.258 error at WS.Transport.onPacket (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/engine.io-client/lib/transport.js:145:8) javascript.0 2019-09-04 21:57:42.258 error at WS.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/component-emitter/index.js:133:20) javascript.0 2019-09-04 21:57:42.258 error at WS.<anonymous> (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/engine.io-client/lib/socket.js:268:10) javascript.0 2019-09-04 21:57:42.258 error at Socket.onPacket (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/engine.io-client/lib/socket.js:451:14) javascript.0 2019-09-04 21:57:42.258 error at Socket.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/component-emitter/index.js:133:20) javascript.0 2019-09-04 21:57:42.257 error at Socket.<anonymous> (/opt/iobroker/node_modules/component-bind/index.js:21:15) javascript.0 2019-09-04 21:57:42.257 error at Manager.ondata (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/manager.js:322:16) javascript.0 2019-09-04 21:57:42.257 error at Decoder.add (/opt/iobroker/node_modules/socket.io-parser/index.js:246:12) javascript.0 2019-09-04 21:57:42.257 error at Decoder.Emitter.emit (/opt/iobroker/node_modules/component-emitter/index.js:134:20) javascript.0 2019-09-04 21:57:42.257 error at Decoder.<anonymous> (/opt/iobroker/node_modules/component-bind/index.js:21:15) javascript.0 2019-09-04 21:57:42.257 error at Manager.ondecoded (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/manager.js:332:8) javascript.0 2019-09-04 21:57:42.257 error at Manager.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/component-emitter/index.js:133:20) javascript.0 2019-09-04 21:57:42.256 error at Manager.<anonymous> (/opt/iobroker/node_modules/component-bind/index.js:21:15) javascript.0 2019-09-04 21:57:42.256 error at Socket.onpacket (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/socket.js:236:12) javascript.0 2019-09-04 21:57:42.256 error at Socket.onack (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/socket.js:312:9) javascript.0 2019-09-04 21:57:42.256 error at Socket.adapter.getForeignState (/opt/iobroker/node_modules/iobroker.javascript/main.js:745:17) javascript.0 2019-09-04 21:57:42.256 error at createProblemObject (/opt/iobroker/node_modules/iobroker.javascript/main.js:1123:17) javascript.0 2019-09-04 21:57:42.256 error at prepareScript (/opt/iobroker/node_modules/iobroker.javascript/main.js:1070:37) javascript.0 2019-09-04 21:57:42.255 error at compile (/opt/iobroker/node_modules/iobroker.javascript/main.js:878:28) javascript.0 2019-09-04 21:57:42.255 error at Object.createScript (vm.js:56:10) javascript.0 2019-09-04 21:57:42.255 error SyntaxError: Unexpected token function javascript.0 2019-09-04 21:57:42.255 error ^^^^^^^^ javascript.0 2019-09-04 21:57:42.255 error async function login(){ javascript.0 2019-09-04 21:57:42.254 error at script.js.common.System.WLAN_Ein_aus:68 javascript.0 2019-09-04 21:57:42.254 error script.js.common.System.WLAN_Ein_aus compile failed: javascript.0 2019-09-04 21:57:42.248 info Start javascript script.js.common.System.WLAN_Ein_aus
-
@dslraser 15000 -wenn das nicht hilf mach mal 30000
bedeutet 15 sekunden
-
@tempestas hast du evtl beim ändern der variablen ganz oben etwas vergessen oder zuviel gemacht - dadurch kann ein ganzer "rattenschwanz" an fehlern kommen - bitte nochmal prüfen evtl neu kopieren
-
@dslraser sagte in Unifi WLAN Script:
@liv-in-sky sagte in Unifi WLAN Script:
abfragezyklus+15000
also die 1000 auf 15000 ? (oder meinst Du 1500 ?)
sorry - nicht die 1000 ändern
nur ""abfragezyklus" zu "abfragezyklus+15000
also nach abfragezyklus ein +15000 einfügen
-
@dslraser sagte in Unifi WLAN Script:
noch eine Info/Frage ?
im Log taucht jetzt alle 20 Sekunden als bzw. unter info: eine meiner amazon Geräte auf, warum bzw. wofür ist das ?@liv-in-sky
Ich zitiere mich mal selbst...(kommt alle 20 Sekunden)4.9.2019, 21:15:17.089 [info ]: javascript.0 script.js.Heiko.16Unifi.Unifi-Final3: amazon-45b394e84 4.9.2019, 21:15:36.702 [info ]: javascript.0 script.js.Heiko.16Unifi.Unifi-Final3: amazon-45b394e84
-
@dslraser ja glaub ich erinnere mich - es gibt noch ein log(...) irgendwo in der getclient()
mach bitte dlog(...) daraus - du hast das neue file zu schnell gedownloaded - ich habe es erst nach ein paar minuten im forum geändert - sorry
abe wir testen ja noch - da kann das mal passieren
was macht das ein-abmelden deines handy - ist jetzt ruhe eingerkehrt ?
-
ich werd auch einen neuen thread öffnen, wenn die fehlerbearbeitung besser ist - hab das nicht überlesen
übrigens danke für's testen und für deine geduld - meine bisherigen js scripts waren eher20-zeiler
-
@liv-in-sky
ich teste gerade noch. Ich habe jetzt beim Handy meiner Frau mal die Netzwerkeinstellungen zurück gesetzt, aus Unifi gelöscht und es wird neu gefunden (mit anderem Namen), aber es wird nicht in den DP's mit aufgelistet.) Ich lösche jetzt mal das Script und alle DP, dann kopiere ich nochmal neu -
@liv-in-sky
ist das Script weiter oben sonst okay ?da ist immer noch eins zuviel drinn
let wifiDPs = [];