Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Unifi Adapter 0.6.6 Objekt Leichen

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Unifi Adapter 0.6.6 Objekt Leichen

    This topic has been deleted. Only users with topic management privileges can see it.
    • B
      bishop last edited by

      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?

      crunchip Codierknecht 2 Replies Last reply Reply Quote 0
      • crunchip
        crunchip Forum Testing Most Active @bishop last edited by

        @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

        1 Reply Last reply Reply Quote 0
        • Codierknecht
          Codierknecht Developer Most Active @bishop last edited by

          @bishop
          14.000 ist ja schon mal 'ne Hausnummer 😄

          Da wird nix gelöscht.
          Könnte man aber automatisieren, indem man mit 'nem Script durchrauscht und alles löscht, dessen last_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.

          B 1 Reply Last reply Reply Quote 0
          • B
            bishop @Codierknecht last edited by bishop

            @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 1 Reply Last reply Reply Quote 0
            • Codierknecht
              Codierknecht Developer Most Active @bishop last edited by

              @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);
                }
              }
              
              B 1 Reply Last reply Reply Quote 0
              • B
                bishop @Codierknecht last edited by

                @codierknecht

                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 🙂

                Codierknecht 1 Reply Last reply Reply Quote 0
                • Codierknecht
                  Codierknecht Developer Most Active @bishop last edited by

                  @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.

                  B 1 Reply Last reply Reply Quote 0
                  • B
                    bishop @Codierknecht last edited by bishop

                    @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?

                    2024_08_07_12_48_26_Window.png

                    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 1 Reply Last reply Reply Quote 0
                    • Codierknecht
                      Codierknecht Developer Most Active @bishop last edited by

                      @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_seen aus der ID des DP entfernt.
                      Bei mir funktioniert das auch tadellos:

                      b43c376b-d733-47c4-bd1a-3500d70dcee6-image.png
                      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.

                      1 Reply Last reply Reply Quote 0
                      • First post
                        Last post

                      Support us

                      ioBroker
                      Community Adapters
                      Donate
                      FAQ Cloud / IOT
                      HowTo: Node.js-Update
                      HowTo: Backup/Restore
                      Downloads
                      BLOG

                      636
                      Online

                      31.9k
                      Users

                      80.3k
                      Topics

                      1.3m
                      Posts

                      3
                      9
                      337
                      Loading More Posts
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes
                      Reply
                      • Reply as topic
                      Log in to reply
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                      The ioBroker Community 2014-2023
                      logo