NEWS
Unifi WLAN Script
-
@liv-in-sky
die Sortierung der Clients in den Objekten klappt fast. Ich habe eine alphabetische Reihenfolge, bis auf alle Amazon ECHO Geräte habe sich dazwischengemogelt, aber alle hintereinander.Edit:
Gerade gesehen, die Amazon Geräte fangen alle mit einem kleinen Buchstaben an, wahrscheinlich passt die Sortierung deshalb irgendwie nicht. -
@liv-in-sky
läuft alles, super Arbeit !
In der Client Liste habe ich jetzt auch die IP AdresseiQontrol am Mac
-
@dslraser sagte in Unifi WLAN Script:
Gerade gesehen, die Amazon Geräte fangen alle mit einem kleinen Buchstaben an, wahrscheinlich passt die Sortierung deshalb irgendwie nicht.
versuch.sort(function (alpha, beta) { if (alpha.hostname.toLowerCase() < beta.hostname.toLowerCase()) return -1; if (alpha.hostname.toLowerCase() > beta.hostname.toLowerCase()) return 1; return 0; });
Das sollte das Sortierproblem lösen.
-
Telegram
Meine Frau hatte noch nicht mal an der Tür geklingelt, da kam schon die Nachricht. An meinem Handy habe ich dann auch direkt mal WLAN eingeschaltet.
-
@thewhobox sagte in Unifi WLAN Script:
@dslraser sagte in Unifi WLAN Script:
Gerade gesehen, die Amazon Geräte fangen alle mit einem kleinen Buchstaben an, wahrscheinlich passt die Sortierung deshalb irgendwie nicht.
versuch.sort(function (alpha, beta) { if (alpha.hostname.toLowerCase() < beta.hostname.toLowerCase()) return -1; if (alpha.hostname.toLowerCase() > beta.hostname.toLowerCase()) return 1; return 0; });
Das sollte das Sortierproblem lösen.
kenn ich - aber leider geht's nicht - habe ich gestern getestet
-
@liv-in-sky
habe ich eben auch probiert, ging bei mir auch nicht -
@liv-in-sky Was heißt ging nicht?
Waren immer noch so sortiert?@dslraser Kannst du mir mal ein Beispiel von 1-2 Amazon Geräten und auch den darunter liegenden geben?
Gern auch per PN. -
@thewhobox
nein - nach der sortierung wird nicht mehr weitergearbeitet - script steht an dieser stelle - ich lasse anschliessend ein log raus mit der länge des sortierten arrays - das log kommt in der "guten" variante - es kokmmt aber nichts mehr in der lowercase - methode -
@liv-in-sky
ja, genau so war es bei mir. Es wurden nicht mal mehr die DP angelegt.@thewhobox
was genau brauchst Du, die Bezeichnung bzw. den Namen der ECHO'S ? -
@liv-in-sky Kann natürlich sein, dass wenn der hostname undefined ist dass er dann die Biege macht. Da er von undefined ja nicht Lowercase machen kann.
So funktioniert es bei mir:
var sorted = list.sort((a, b) => { if(a.hostname == undefined || b.hostname == undefined) return; let ah = a.hostname.toLowerCase(); let bh = b.hostname.toLowerCase(); if(ah < bh) return -1; else if(ah > bh) return 1; else return 0; });
Damit landen alle mit Hostname = undefined am unteren Ende der Liste.
-
@thewhobox sagte in Unifi WLAN Script:
undefined
davon habe ich ja einige (hatte ich Dir ja in der PN geschrieben).
-
@thewhobox werd ich probieren und rückmeldung geben - habe auch einen mit undefined
-
@thewhobox sagte in Unifi WLAN Script:
@liv-in-sky Kann natürlich sein, dass wenn der hostname undefined ist dass er dann die Biege macht. Da er von undefined ja nicht Lowercase machen kann.
So funktioniert es bei mir:
var sorted = list.sort((a, b) => { if(a.hostname == undefined || b.hostname == undefined) return; let ah = a.hostname.toLowerCase(); let bh = b.hostname.toLowerCase(); if(ah < bh) return -1; else if(ah > bh) return 1; else return 0; });
Damit landen alle mit Hostname = undefined am unteren Ende der Liste.
könnte man das so ändern, dass die undefined nicht mehr erscheinen bzw aus dem array verschwinden - ich versuche gerade noch die last-seen-by-uap zu integrieren - da hab ich probleme mit den undefined.
mir ist eh nicht klar,wo die herkommen - habe ein gerät, was einen namen hat und im netzwerk erkannt wird - nur im unifi ist er undefined -
@liv-in-sky Bin ich grad dran, aber ich weiß nicht wie die zweite Eigenschaft heißt.
Also { hostname: "Amazon-xyz", xyz: "Hier der WLAN name", ip: "192.168.0.41", mac: "ab:ce:xx:yy" }
Wofür steht xyz?
Das ist ja auch ausschlaggeben für die Geräte die per LAN angeschlossen sind. -
@thewhobox aaahh - sind das die geräte die doppelpunkte haben im namen - hier das tablet, das nicht erkannt wird
was der name bedeuted kann ich nicht sagen - leider nutzt die fritzbox diesen internen amazon namen obwohl in der fritzbox ein anderer name festgelegt wird - ist seit ein paar fritz-os-versione so !
aber ich glaube nicht, das die amazon ein problem machen - die haben einen "blöden namen" aber lesbar
hier ein file, falls noch nicht bei dir, mit allen daten von "resp - kennwort kommt via pn
json-von-geraeten.zipoder habe ich nicht verstanden was du suchst
-
@liv-in-sky Dankeschön
Ich hab das mal so probiert:
var unfiltered = []; unfiltered = JSON.parse(resp).data; dlog(unfiltered[2].hostname + unfiltered[2].mac); var versuch = []; for(var index in unfiltered) { let device = unfiltered[index]; if(device.hostname !== undefined && device.essid !== undefined) versuch.push(device); } versuch.sort(function (alpha, beta) { if (alpha.hostname.toLowerCase() < beta.hostname.toLowerCase()) return -1; if (alpha.hostname.toLowerCase() > beta.hostname.toLowerCase()) return 1; return 0; });
Das sollte
theoretisch
alle an LAN angeschlossenen Geräte ausschließen, da diese keinen Wert für essid haben (vermutlich den Namen des AP an dem sie angemeldet sind) -
@liv-in-sky
ich habe z.B. einen HP Drucker, dem ich im Controller eine IP gegeben habe, diese hat er auch, aber in der Liste wird diese nicht angezeigt. (also in der Unifi Geräte Seite fehlt die IP) Die ist dann auch undefined, keine Ahnung warum der Drucker da zicken macht, den habe ich erst neu. -
ok - ich pausiere mal uap und versuche das sortieren mal
-
ok scheint zu funktionieren - es ist richtig sortiert und es wird jetzt eine anzahl weniger angezeigt - als im unifi controller
tausend dank dafür
ich bringe es in der nächsten version - jetzt mach ich wieder mit uap weiter
~~eine frage:
habe diesen code~~
for(let fastLane_name in fastLane) { log("vorVergleich"); log(fastLane[fastLane_name].name + versuch[i].hostname); if (fastLane[fastLane_name].name==versuch[i].hostname ){ fastLaneDPs.push(versuch[i]._last_seen_by_uap); log("---------------------"+i.toString()); log(fastLaneDPs[i]); break;}}
warum funktioniert der break nicht - oder kann der nicht funktionierenvergiss es bitte -der code muss eh geändert werden
-
@liv-in-sky
schau mal was das iPhone (altes iPhone 5) meiner Frau im WLAN so veranstaltet. Für die Anwesenheit nicht zu gebrauchen.
Mein Handy-Samsung Note 8 hat sich nicht einmal als abwesend gemeldet.