NEWS
Unifi WLAN Script
-
@thewhobox
Wieso einmischen ? Ist doch Dein Script !
Ich freue mich das Du hier bist -
@thewhobox ja klasse, dass du drüber schaust - bin auch froh, dass du dabei bleibst
-
gibst du mir bitte bescheid mit welchen script ich dann weiterarbeiten soll - ich füge morgen dann die voucher sache dazu
ich denke, ich werde das iqontrol auch mit einbauen und es mit einen marker setzen - wer es enablen will kann es dann auch
damit bleiben wir bei einem script - bitte poste das "offizielle" script , wenn du noch was von thewhobox miteinbauen möchtest - heute ist keine zeit mehr um weiterzumachen
-
@thewhobox
ich hatte das Script jetzt so gemacht, um von beiden WLAN den Status holen zu können. Das funktioniert auch, vielleicht geht es besser/kürzer ?
Wenn ich Dein aufgeräumtes Script nehme, dann kann der Status nur für ein WLAN geholt werden. Oder habe ich was übersehen ?Hier noch mal meine "aufgeräumte Variante" (in der von oben hatte ich noch einige Tippfehler bei den States)
-
@dslraser ok - dann nehm ich das - falls sich bis morgen was ändert - einfach mitteilen
-
@thewhobox
Kannst du mir mal helfen was ich hier übersehe?javascript.0 2019-08-29 20:25:17.258 error at Script.runInContext (vm.js:133:20) javascript.0 2019-08-29 20:25:17.258 error at script.js.Unifi.WLanSchalten:1:50 javascript.0 2019-08-29 20:25:17.258 error TypeError: Cannot read property 'defaults' of undefined javascript.0 2019-08-29 20:25:17.258 error ^ javascript.0 2019-08-29 20:25:17.257 error const request = require('request-promise-native').defaults({ rejectUnauthorized: false }); javascript.0 2019-08-29 20:25:17.257 error script.js.Unifi.WLanSchalten: script.js.Unifi.WLanSchalten:1 javascript.0 2019-08-29 20:25:17.256 error at Script.runInContext (vm.js:133:20) javascript.0 2019-08-29 20:25:17.256 error at script.js.Unifi.WLanSchalten:1:17 javascript.0 2019-08-29 20:25:17.256 error script.js.Unifi.WLanSchalten: Error: Cannot find module '/opt/iobroker/node_modules/iobroker.javascript/lib/../../request-promise-native'
-
@Chaot probier mal "request" in zusätzlichen modulen in setting der javascript-instanz
-
@liv-in-sky
habe ich bei mir nicht drinn (und geht trotzdem) ?
-
@liv-in-sky
Danke für den Denkanstoß.
Ich habe jetzt zusätzlich "request-promise-native" eingefügt und die Fehlermeldung ist weg.Ich habe aber ehrlich gesagt keine Ahnung warum. Mit "request" alleine hat es nicht funktioniert.
-
Ok, jetzt habe ich doch noch eine Frage.
Die Datenpunkte werden korrekt erstellt.
Habe ich auch die Möglichkeit über einen Datenpunkte einen Voucher zu erstellen oder werden da nur die Voucher ausgelesen die ich über den Hotspot Manager erstelle?
Mein Gedanke war das ich in der VIS einen Button für einen Voucher einfüge (oder macht das keinen Sinn?) -
@Chaot hab ich auch schon dran gedacht - im moment geht das nicht, da brauche ich wahrscheinlich etwas hilfe - wenn es mal gehen sollte -dann mehr info auf diesem kanal
-
@liv-in-sky
Ok, danke für die Info.
Ich denke mal das das bestimmt irgendwann umsetzbar wird.
Zumindest für mich wäre das die perfekte Lösung.
Da ich mittlerweile mit mehreren Geräten für die VIS arbeite bin ich aktuell daran ein Tablet als "Multimedia" Vis einzurichten.
Also Musiksteuerung drauf wie bei einer Jukebox und Internetradio. Und genau da drauf wäre dann der button für den Gästezugang perfekt. -
@dslraser So, hier dann nochmal dein Skript in einer abgespeckten Version.
Du kannst von jedem WLAN den Status abfragen. Du gibst der FunktionsetWifi(WiFi_id)
die Wifi-Id als Parameter mit.Mir ist noch mehr aufgefallen, was man verbessern könnte:
Du benutzt Momentan 6 States allein für An/Aus/Status.
Die drei Funktionen könntest du in einem einzigen Datenpunkt machen.@liv-in-sky Voucher erstellen sollte mit der API funktionieren. Zumindest ist es in dem von dir verlinkten Skript im anderen Thread eingebaut.
-
Und wer mutig ist und was testen möchte kann mal das Skript ausprobieren.
Ist nun noch kleiner.
Datenpunkte werden nun Variabel hinzugefügt.
Es gibt nur noch ein Datenpunkt pro WLAN! Setzen auf false schaltet es aus, auf true schaltet es an. Außerdem wird der Datenpunkt alle 15 Sekunden mit dem aktuellen Status geupdated. -
@thewhobox
Danke Dir für die Mühe. Ich habe mir die andere Variante für später abgespeichert.
Ich hatte mir bewußt mehrer Datenpunkte als Button gemacht, da ich die in einer Routine in der Alexa App besser/individueller verarbeiten kann. (Alexa, schalte Gastnetz an---oder eben was man sagen will, dann muss ich mich nicht an den SmartNamen für den iot Adapter halten, wenn ich was an oder ausschalten will). Aber wie ganz oben geschrieben geht das ja auch mit Schaltern und weniger Datenpunkten.Jetzt habe ich es mir noch mal anders überlegt und es noch mal für mich umstrukturiert und es erstmal bei einem WLAN (Gäste) im Script belassen.
@liv-in-sky und @thewhobox
Ich habe jetzt alles auf javascript.0 und mal alle Codeschnipsel von @liv-in-sky bei mir eingebaut.
Die Voucher im Datenpunkt Liste werden geholt, auch die Anzahl (bei mir 9 ) stimmtWas ich bis jetzt nicht hinbekomme sind die "Einzel-Codes", wie oben von Dir @liv-in-sky gezeigt. Könntet Ihr @thewhobox und @liv-in-sky mal drüber schauen wo der Fehler ist ?
-
@thewhobox sagte in Unifi WLAN Script:
Und wer mutig ist und was testen möchte kann mal das Skript ausprobieren.
Ist nun noch kleiner.
Datenpunkte werden nun Variabel hinzugefügt.
Es gibt nur noch ein Datenpunkt pro WLAN! Setzen auf false schaltet es aus, auf true schaltet es an. Außerdem wird der Datenpunkt alle 15 Sekunden mit dem aktuellen Status geupdated.Ah, jetzt hast Du natürlich noch eine interessante Variante
-
ich habe es mal ausprobiert. Ich habe nur die ID's eingetragen, oder muß noch mehr gemacht werden ?
Datenpunkte werden angelegt, aber nicht befüllt. -
wenn ich in der kurzen Variante den erstellten State einsetze (bei getClients), werden die Daten abgeholt
setState("javascript.0.Unifi.Unifi_Wifi.00_Anzahl_Geraete", resp.data.length);
setState("javascript.0.Unifi.Unifi_Wifi.00_Wifi_Geraeteliste", clientListe.concat(clientListe + "</table>"));
Also stimmt wahrscheinlich beim zusammensetzen noch was nicht, also hier
setState(dpPrefix + "00_Anzahl_Geraete", resp.data.length);
und hier
setState(dpPrefix + "00_Geraeteliste", clientListe.concat(clientListe + "</table>"));
-
@thewhobox sagte in Unifi WLAN Script:
Und wer mutig ist und was testen möchte kann mal das Skript ausprobieren.
Ist nun noch kleiner.
Datenpunkte werden nun Variabel hinzugefügt.
Es gibt nur noch ein Datenpunkt pro WLAN! Setzen auf false schaltet es aus, auf true schaltet es an. Außerdem wird der Datenpunkt alle 15 Sekunden mit dem aktuellen Status geupdated.So funktioniert bei mir das abholen der Client Liste und Anzahl mit der kurzen Variante. Wifi Status und schalten noch nicht.
-
moin - wollte gerade das voucher und iqontrol hinzufügen - leider jetzt wird es etwas unübersichtlich für mich - daher ein vorschlag
@thewhobox hast du die "muse" und würdest diese beiden "features auch dazu fügen - nicht weil ich es nicht machen will, sondern weil du es prof. machen würdest
falls ja hier die zusätze:
für die vouchersache:
datenpunkte:
und datenpunkte für anzahl clients,vouchers
getVoucher funktion
dann noch iqontrol - kann durch variable iqontrol dazugeschalten werden
definitionen:
ich habe die die erstellung der tabelle geändert
in getclients()
und vouchers:
um das unnötige schreiben auf die festplate zu verhindern gehört noch folgendes in die getclient() funktion