NEWS
Unifi Adapter 0.6.6 Objekt Leichen
-
Hi zusammen,
habe schon lange den Unifi Adapter am laufen, funktioniert auch super.
Hab aber mittlerweile 14993 Objekte im Unifi Pfad. Ich vermute das dass evtl. ein Grund sein kann warum die Web UI etwas träger wird.Werden die nicht mehr vorhandenen Clienten die auch im Unifi Controller nicht mehr vorhanden sind, nicht weg gelöscht?
Ich habe da sehr viele Leichen drin die es im Unifi Controller nicht mehr gibt.kann das jemand bestätigen?
-
Hi zusammen,
habe schon lange den Unifi Adapter am laufen, funktioniert auch super.
Hab aber mittlerweile 14993 Objekte im Unifi Pfad. Ich vermute das dass evtl. ein Grund sein kann warum die Web UI etwas träger wird.Werden die nicht mehr vorhandenen Clienten die auch im Unifi Controller nicht mehr vorhanden sind, nicht weg gelöscht?
Ich habe da sehr viele Leichen drin die es im Unifi Controller nicht mehr gibt.kann das jemand bestätigen?
@bishop je nachdem was du ursprünglich in der Instanz eingestellt hattest, wurde dies angelegt.
Bin mir allerdings nichts sicher ob dies automatisch gelöscht wird, wenn in der Instanz deaktiviert.
Ich meine das muss man manuell anstoßen -
Hi zusammen,
habe schon lange den Unifi Adapter am laufen, funktioniert auch super.
Hab aber mittlerweile 14993 Objekte im Unifi Pfad. Ich vermute das dass evtl. ein Grund sein kann warum die Web UI etwas träger wird.Werden die nicht mehr vorhandenen Clienten die auch im Unifi Controller nicht mehr vorhanden sind, nicht weg gelöscht?
Ich habe da sehr viele Leichen drin die es im Unifi Controller nicht mehr gibt.kann das jemand bestätigen?
@bishop
14.000 ist ja schon mal 'ne Hausnummer :-DDa wird nix gelöscht.
Könnte man aber automatisieren, indem man mit 'nem Script durchrauscht und alles löscht, dessenlast_seen_by_uapälter ist als X.Man könnte natürlich in GitHub auch ein Feature-Request an den Entwickler eröffnen.
So ein Bereinigungslauf dürfte viele Anwender interessieren. -
@bishop
14.000 ist ja schon mal 'ne Hausnummer :-DDa wird nix gelöscht.
Könnte man aber automatisieren, indem man mit 'nem Script durchrauscht und alles löscht, dessenlast_seen_by_uapälter ist als X.Man könnte natürlich in GitHub auch ein Feature-Request an den Entwickler eröffnen.
So ein Bereinigungslauf dürfte viele Anwender interessieren.@codierknecht
ja so ein aufräum Script wäre nicht schlecht :)
fb-checkpresence hat auch ein Haufen Leichen.
Gibt es sowas in der Art schon für andere Zwecke im IoBroker? -
@codierknecht
ja so ein aufräum Script wäre nicht schlecht :)
fb-checkpresence hat auch ein Haufen Leichen.
Gibt es sowas in der Art schon für andere Zwecke im IoBroker?@bishop
Einsatz auf eigene Gefahr:const datum = new Date().getTime(); const diff = 90*24*60*60*1000; // Differenz in Millisekunden (90 Tage) let liste = Array.prototype.slice.apply($('state[id=unifi.0.default.clients.*.last_seen_by_uap]')); for (let dp of liste) { let timestamp = getDateObject(getState(dp).val).getTime(); if (datum-timestamp > diff) { dp = dp.replace('.last_seen_by_uap', ''); log('Lösche Datenpunkt: ' + dp); //deleteObject(dp, true); } } -
@bishop
Einsatz auf eigene Gefahr:const datum = new Date().getTime(); const diff = 90*24*60*60*1000; // Differenz in Millisekunden (90 Tage) let liste = Array.prototype.slice.apply($('state[id=unifi.0.default.clients.*.last_seen_by_uap]')); for (let dp of liste) { let timestamp = getDateObject(getState(dp).val).getTime(); if (datum-timestamp > diff) { dp = dp.replace('.last_seen_by_uap', ''); log('Lösche Datenpunkt: ' + dp); //deleteObject(dp, true); } }vielen Dank
funktioniert bestens.was mir aber aufgefallen ist, es gibt auch clients ohne den "last_seen_by_uap" Datenpunkt.
Naja da ist wohl Handarbeit angesagt :) -
vielen Dank
funktioniert bestens.was mir aber aufgefallen ist, es gibt auch clients ohne den "last_seen_by_uap" Datenpunkt.
Naja da ist wohl Handarbeit angesagt :)@bishop sagte in Unifi Adapter 0.6.6 Objekt Leichen:
es gibt auch clients ohne den "last_seen_by_uap" Datenpunkt
Dann nimm
last_seen- das sollte genau so gut funktionieren. -
@bishop sagte in Unifi Adapter 0.6.6 Objekt Leichen:
es gibt auch clients ohne den "last_seen_by_uap" Datenpunkt
Dann nimm
last_seen- das sollte genau so gut funktionieren.@codierknecht
hab dein Script mal wieder laufen lassen nur mit wie du gesagt hast "last_seen" habe auch im log einträge stehen die er gelöscht hat aber nur den Datenpunkt last_seen, nicht den kompletten Pfad.const datum = new Date().getTime(); const diff = 180*24*60*60*1000; // Differenz in Millisekunden (180 Tage) let liste = Array.prototype.slice.apply($('state[id=unifi.0.default.clients.*.last_seen]')); for (let dp of liste) { let timestamp = getDateObject(getState(dp).val).getTime(); if (datum-timestamp > diff) { dp = dp.replace('.last_seen', ''); log('Lösche Datenpunkt: ' + dp); deleteObject(dp, true); } }was muss man abändern, dass er den kompletten Ordner löscht?

javascript.0 2024-08-07 12:38:26.221 info script.js.common.Debuggen.Objekt-Leichen-loeschen: Lösche Datenpunkt: unifi.0.default.clients.40:91:51:48:4d:26.last_seen -
@codierknecht
hab dein Script mal wieder laufen lassen nur mit wie du gesagt hast "last_seen" habe auch im log einträge stehen die er gelöscht hat aber nur den Datenpunkt last_seen, nicht den kompletten Pfad.const datum = new Date().getTime(); const diff = 180*24*60*60*1000; // Differenz in Millisekunden (180 Tage) let liste = Array.prototype.slice.apply($('state[id=unifi.0.default.clients.*.last_seen]')); for (let dp of liste) { let timestamp = getDateObject(getState(dp).val).getTime(); if (datum-timestamp > diff) { dp = dp.replace('.last_seen', ''); log('Lösche Datenpunkt: ' + dp); deleteObject(dp, true); } }was muss man abändern, dass er den kompletten Ordner löscht?

javascript.0 2024-08-07 12:38:26.221 info script.js.common.Debuggen.Objekt-Leichen-loeschen: Lösche Datenpunkt: unifi.0.default.clients.40:91:51:48:4d:26.last_seen@bishop sagte in Unifi Adapter 0.6.6 Objekt Leichen:
was muss man abändern, dass er den kompletten Ordner löscht?
Eigentlich nix.
In Zeile 8 wird ja das.last_seenaus der ID des DP entfernt.
Bei mir funktioniert das auch tadellos:
Aus einem für mich unersichtlichen Grund klappt das "replace" bei Dir nicht.Du könntest mal versuchen, Zeile 8 zu ersetzen durch:
dp = dp.substring(0,41);Die Länge der ID ist ja fix. Unschön, aber einen Versuch wert.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden