NEWS
Unifi WLAN Script
-
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 = [];
-
@dslraser habe nochmal getestet - alle datenpunkte gelöscht- neue handys werden bei mir gefunden
-
@tempestas sagte in Unifi WLAN Script:
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
falls du immer noch ein problem hast - ich lade morgen nochmal das orginal hoch -heute geht es nicht mehr
ich habe mal nachträglich darin etwas geändert - nicht das ich da einen fehler gemacht habe - muss dich leider auf morgen vertrösten
-
@dslraser sagte in Unifi WLAN Script:
@liv-in-sky
ist das Script weiter oben sonst okay ?da ist immer noch eins zuviel drinn
let wifiDPs = [];
wird in nächster version bereinigt sein - habe ich bei mir schon gemacht - kommt morgen
-
Hi,
der Fehlier liegt irgendwie in der login function, da meckert er ja über die syntax...
ich habe das Skript schon mehrfach von 0 neu reinkopiert, immer das gleiche
-
@tempestas bitte warte bis morgen
dann gibt es wieder nachschub - sorry
-
@tempestas
meinst Du das Script aus dem Beitrag hier ?https://forum.iobroker.net/post/297012
da ist ein zuviel
let wifiDPs = [];
am Anfang eines davon auskommentieren.
Edit: ich glaube es ist korrigiert...?
-
( @dslraser - ist kein update - selbe version wie letztes mal)
hier nochmal das script
- dpPrefix im script setting und javainstanz, in der das script läuft, müssen gleich sein !
- evtl zusatzmodule in der js-instanz hinzufügen
hier das file, diesmal in textdatei
-
@liv-in-sky
Vorschlag:
Nimm mal bitte hierconst unifi_password = "xxxxxx!";
zukünftig das Ausrufungszeichen hinter den x'en in der Vorlage weg. Wenn ich diese Stelle mit einem Doppelklick markiere und lösche, um dann meine Daten rein zu schreiben, bleibt das Ausrufungszeichen drinn stehen. Habe ich schon mehrfach übersehen und bin drauf rein gefallen. Dann konnte sich das Script natürlich nicht anmelden. Habe ich dann erst bei debug auf true gesehen.
-
@liv-in-sky sagte in Unifi WLAN Script:
hier das file, diesmal in textdatei
ich muss später mal nachsehen, wenn ich wieder am Rechner bin. Beim Import/Download der Textdatei scheint es event. zu Umlaute Fehlern zu kommen ?
-
@liv-in-sky Hey, ich hab mir das Skript mal angeschaut.
Zwei Sachen sind mit aufgefallen:
- Variablen die du nur einer Funktion brauchst bitte nicht als globale Variable machen^^ Ist auch zugunsten vom Arbeitsspeicher besser es dann nur in der Funktion zu machen.
- Funktionen nur als async deklarieren, wenn man es auch wirklich braucht. Ansonsten werden sie parallel zum restlichen Code ausgeführt und es kann zu Fehlern kommen.
-
@thewhobox danke dir
ich schau mir das mal alles in ruhe an - heut ist ein "es klappt nix"- programmier tag
das mit der fehlersache klappt irgendwie nicht - wenn das script die clientdatenpunkte nicht mehr setzt und ich die javascript instanz neustarte kommen immer die promise fehler ! - werd jetzt erstmal ein video dazu anschauen
-
hab mal etwas getestet - login scheint zu funktionieren aber es hängt dann in der getStatus - zyklus 1 ist logeintrag vor getstatus - zyklus2 wäre logeintrag vor getvoucher() zyklus 3 logeintrag vor getclients()
ich habe dein login, getstatus und setwifis übernommen und die anfänge von (login und datenholen) in den anderen funktionen - hängt sich aber in getstatus() auf bzw - fehlendes resolve - got response sollte antwort von controller sein (resp)
anschliessend instanz neustarten mit folgenden fehler
so sieht getstatus aus
-
ich danke dir. Leider funktioniert es weiterhin nicht, ich habe 1:1 den gleichen Fehler wie vorher, obwohl das Skript komplett anders aussieht. Es ist immer die async login funktion, an der er sich aufhängt.
Habe alle diene Einstellungen nachgepflegt. Es bleibt bei den massiven Errors:
avascript.0 2019-09-05 20:02:56.673 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-05 20:02:56.673 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-05 20:02:56.673 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-05 20:02:56.673 error at WS.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/component-emitter/index.js:133:20) javascript.0 2019-09-05 20:02:56.672 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-05 20:02:56.672 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-05 20:02:56.672 error at Socket.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/component-emitter/index.js:133:20) javascript.0 2019-09-05 20:02:56.672 error at Socket.<anonymous> (/opt/iobroker/node_modules/component-bind/index.js:21:15) javascript.0 2019-09-05 20:02:56.672 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-05 20:02:56.671 error at Decoder.add (/opt/iobroker/node_modules/socket.io-parser/index.js:246:12) javascript.0 2019-09-05 20:02:56.671 error at Decoder.Emitter.emit (/opt/iobroker/node_modules/component-emitter/index.js:134:20) javascript.0 2019-09-05 20:02:56.671 error at Decoder.<anonymous> (/opt/iobroker/node_modules/component-bind/index.js:21:15) javascript.0 2019-09-05 20:02:56.671 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-05 20:02:56.670 error at Manager.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/component-emitter/index.js:133:20) javascript.0 2019-09-05 20:02:56.669 error at Manager.<anonymous> (/opt/iobroker/node_modules/component-bind/index.js:21:15) javascript.0 2019-09-05 20:02:56.669 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-05 20:02:56.669 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-05 20:02:56.669 error at Socket.adapter.getForeignState (/opt/iobroker/node_modules/iobroker.javascript/main.js:745:17) javascript.0 2019-09-05 20:02:56.669 error at createProblemObject (/opt/iobroker/node_modules/iobroker.javascript/main.js:1123:17) javascript.0 2019-09-05 20:02:56.668 error at prepareScript (/opt/iobroker/node_modules/iobroker.javascript/main.js:1070:37) javascript.0 2019-09-05 20:02:56.668 error at compile (/opt/iobroker/node_modules/iobroker.javascript/main.js:878:28) javascript.0 2019-09-05 20:02:56.668 error at Object.createScript (vm.js:56:10) javascript.0 2019-09-05 20:02:56.665 error SyntaxError: Unexpected token function javascript.0 2019-09-05 20:02:56.665 error ^^^^^^^^ javascript.0 2019-09-05 20:02:56.664 error async function login() { javascript.0 2019-09-05 20:02:56.664 error at script.js.common.System.WLAN_Ein_aus:145 javascript.0 2019-09-05 20:02:56.664 error script.js.common.System.WLAN_Ein_aus compile failed:
-
@tempestas hast du die zusatzmodule in der instanz installiert?
-
Ja, habe ich.
Js Adapter ist auf aktuellem stable.
Edit: omg, mein node js war uralt... v 6.11 oder so. Async geht erst ab v 7.6
habe jetzt aktualisiert, mal sehenedit 2: das war wohl nichts. rein gar keine änderung, leider
edit 3: ok, ich komme wohl ans ende meiner linux unkenntnis.
ich habe nodejs aktualisiert, hier steht auch
wie passt das zusammen? angeblich ist 10.16 installiert aber die v zeigt dan doch nur 6.11 an?
-
@tempestas bitte in dem node update thread posten
z.b https://forum.iobroker.net/topic/22867/how-to-node-js-für-iobroker-richtig-updaten
-
Danke dir. terminal neu starten hat gereicht nun zeigt er die richtige nodejs version an.
Bleibt die Frage, warum das Skript nicht magedit:
ha, irgendwas ist passiert, nur noch das hier als Fehler:
javascript.0 2019-09-05 22:30:51.532 error at Script.runInContext (vm.js:133:20) javascript.0 2019-09-05 22:30:51.531 error at script.js.common.System.WLAN_Ein_aus:61:20 javascript.0 2019-09-05 22:30:51.531 error at ProtectFs.writeFileSync (/opt/iobroker/node_modules/iobroker.javascript/lib/protectFs.js:31:37) javascript.0 2019-09-05 22:30:51.531 error at writeFileSync (fs.js:1194:35) javascript.0 2019-09-05 22:30:51.531 error at Object.openSync (fs.js:443:3) javascript.0 2019-09-05 22:30:51.531 error Error: ENOENT: no such file or directory, open '/opt/iobroker/iobroker-data/files/iqontrol/htmlvoucher.html' javascript.0 2019-09-05 22:30:51.531 error ^ javascript.0 2019-09-05 22:30:51.531 error throw err; javascript.0 2019-09-05 22:30:51.531 error script.js.common.System.WLAN_Ein_aus: fs.js:114
schaue ich mir morgen an