Plugin: Wifi Presence Unifi

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • LoxxyFoxxy
    Dumb Home'r
    • 28.08.2024
    • 10

    Plugin: Wifi Presence Unifi

    Hey Leute,

    ich habe ein Plugin für Presence über Unifi geschrieben.

    Motiviation
    Das vorhandene Plugin von Ronald Marske benötigt den Node Express Server, welches wiederum unter Debian 12 nicht mehr funktioniert. Da weder das Plugin für den Express Server noch für die UniFi Integration mehr gewartet werden, habe ich die Entwicklung dieses Plugins gestartet. Ich werde es simpel halten, sodass es möglichst wenig Abhängigkeiten gibt. So erhoffe ich mir, dass es lange störungsfrei funktionieren wird.

    Dieses Plugin arbeitet mit einem Intervall. Es ruft alle 60 Sekunden die verbundenen Geräte per API bei einem UniFi Controller ab. So entsteht zwar ein Zeitversatz und auch die Performance könnte besser sein, aber auf der anderen Seite ist das Plugin so besonders robust, leichtgewichtig und zukunftssicher.

    Anforderungen und Einschränkungen
    • LoxBerry Version 3
    • Unifi Controller (Dream Machine habe ich nicht getestet - sollte aber seit 0.1.1 auch gehen, sofern Nutzer kein MFA hat)
    • Kein Support für MFA
    • Das hier ist eine der ersten Versionen! Das ist nicht Beta, das ist Alpha, lol!

    Download
    https://github.com/2-click/loxberry-plugin-wifi-presence-unifi
    https://github.com/2-click/loxberry-plugin-wifi-presence-unifi/archive/refs/tags/0.1.3.zip


    Roadmap
    Wichtig - Ich liebe Github!
    Ich erstelle diesen Post hier der guten Ordnung halber. Ich werde auch hin und wieder reinschauen, aktivier bin ich aber auf GitHub. Hinweis an die Zukunft: Wenn ich irgendwann hier nicht mehr reagiere, bin ich trotzdem weiterhin (vermutlich mein Leben lang? Let's see) auf GitHub aktiv.


    Screenshots
    Klicke auf die Grafik für eine vergrößerte Ansicht  Name: image.png Ansichten: 0 Größe: 65,2 KB ID: 441267Klicke auf die Grafik für eine vergrößerte Ansicht  Name: image.png Ansichten: 0 Größe: 61,2 KB ID: 441268
    Klicke auf die Grafik für eine vergrößerte Ansicht  Name: image.png Ansichten: 0 Größe: 69,6 KB ID: 441277
    Zuletzt geändert von LoxxyFoxxy; 14.09.2024, 16:49.
  • LoxxyFoxxy
    Dumb Home'r
    • 28.08.2024
    • 10

    #2
    Neues Update:
    Nun werden auch Informationen zu APs übermittelt und ob diese von einer der überwachten MAC-Adressen verwendet werden. So kann man nicht mehr nur Anwesenheit von Personen überwachen, sondern auch Präsenz in Räumlichkeiten erkennen.

    Kommentar

    • hstohl
      LoxBus Spammer
      • 09.02.2016
      • 290

      #3
      Super Sache, danke!

      Kommentar

      • LoxxyFoxxy
        Dumb Home'r
        • 28.08.2024
        • 10

        #4
        Neues Update (0.1.3):
        UI wurde optimiert
        Je Client wird nun nicht nur die AP MAC übermittelt, sondern auch der AP Name

        Kommentar

        • leopoldiskatzinakis
          Smart Home'r
          • 29.08.2016
          • 52

          #5
          Danke, ich finde dein Plugin super. Leider ist mir ein Problem aufgefallen: nach einer gewissen Zeit scheint zB. ein Handy in Loxone offline auf, obwohl ich zuhause bin. Steige ich in den Loxberry ein und öffne dein Plugin, klicke auf speichern, wird es wieder aktualisiert. Hat vielleicht noch jemand so ein Problem?
          Ich verwende einen Unifi Cloudkey und 2 Faktor Authentifizierung.
          Danke.

          Kommentar


          • LoxxyFoxxy
            LoxxyFoxxy kommentierte
            Kommentar bearbeiten
            Das ist interessant - die speichern Funktion hat keinen direkten Einfluss auf das Plugin. Wenn du speicherst macht das Plugin selbst nichts, loxberry aktualisiert nur eine JSON Datei. Der Intervall von einer Minute wird weiterhin eingehalten.
            Ich würde hier zunächst zwei Probleme im Betracht ziehen:
            - Manche WLAN Geräte gehen in den Wifi standby Modus, dann ist das Gerät laut UniFi nicht verbunden, aber laut iPhone schon.
            Ich persönlich habe damit wenig Probleme, aber ich höre immer mal wieder, dass manche Leute damit Probleme haben.

            - Irgendwas mit Loxberry und MQTT? Wenn du speichern klickst passiert nichts anderes, als dass loxberry eine JSON Datei schreibt. Rufst du LB vielleicht über das betroffene Gerät auf? Das würde dafür sorgen, dass der Wifi standby beendet wird.

            Was sagen denn die Logs? Stell mal auf DEBUG und schau, wenn dein Gerät offline geht, was die logs dann sagen. Ist der Auth dann vielleicht einfach abgelaufen wegen der MFA?
            Wenn du auf speichern klickst, triggert das einen MFA prompt bei dir?

          • leopoldiskatzinakis
            leopoldiskatzinakis kommentierte
            Kommentar bearbeiten
            Danke für die Tipps. Betrifft übrigens auch Android.
            Derzeit läuft es wieder, ich beobachte es und setze die Logs rauf.
        • leopoldiskatzinakis
          Smart Home'r
          • 29.08.2016
          • 52

          #6
          Heute kam der Fehler wieder (siehe Screenshot). Er trat bei iPhone 13 Pro, als auch bei einem Samsung Galaxy S24 auf.
          Das Log Level auf Debug kann ich nicht stellen, es gibt nirgendwo die Möglichkeit dies zu ändern.

          Plugin Version:
          Version 3.0.1
          Loxberry:
          v3.0.1.2

          Angehängte Dateien
          Zuletzt geändert von leopoldiskatzinakis; 23.09.2024, 18:11.

          Kommentar


          • leopoldiskatzinakis
            leopoldiskatzinakis kommentierte
            Kommentar bearbeiten
            Entschuldige, ich habe das nur überflogen. Danke für deine Arbeit.
            FYI: Mit dem UF Cloudkey scheint es derzeit noch nicht zu funktionieren.
            Zuletzt geändert von leopoldiskatzinakis; 23.09.2024, 20:55.

          • LoxxyFoxxy
            LoxxyFoxxy kommentierte
            Kommentar bearbeiten
            Vermutlich, weil du MFA an hast. Leg dir einen Nutzer ohne MFA an, dann sollte es gehen :-)

          • challo
            challo kommentierte
            Kommentar bearbeiten
            funktioniert mit CloudKey ohne MFA
        • LoxxyFoxxy
          Dumb Home'r
          • 28.08.2024
          • 10

          #7
          Vermutlich, weil du MFA an hast. Leg dir einen Nutzer ohne MFA an, dann sollte es gehen :-)

          Kommentar

          • challo
            LoxBus Spammer
            • 21.09.2016
            • 372

            #8
            Hi LoxxyFoxxy, dein Plugin funktioniert jetzt nach der Umstellung auf "Art of Wifi" Library super mit dem CloudKey. Zwei Vorschläge hätte ich noch.
            • Aktuellen werden alle Daten auf MQTT anhand der MAC gesendet. Hier wär es cool wenn man anstelle der Mac auch den FriendlyName (den man in Unifi Controller einstellt) als Basis verwenden könnte. Dann ist die Programmierung in Loxone auch z.b. nach einem Handywechsel noch gegeben wenn man in unifi den Namen gleich einträgt
            • Ich habe ab und zu, manchmal 2 mal in 24h, manchmal weniger manchmal mehr, Fehlermeldungen die das Loxberry als "Benachrichtigung" anzeigt. Wäre es hier möglich, dass nur eine Benachrichtigung kommt wenn z.b. 2 mal der Abruf fehlschlägt.

            Kommentar


            • LoxxyFoxxy
              LoxxyFoxxy kommentierte
              Kommentar bearbeiten
              Werde ich beides implementieren, wenn ich mal wieder dran sitze!
          • MarkusCosi
            Extension Master
            • 28.09.2023
            • 193

            #9
            Hallo,

            danke für deine Arbeit und Mühen ein funktionierendes und zuverlässiges Unifi Plugin bereitzustellen! Nachdem das alte Plugin mit der MFA immernoch manchmal (wenngleich gefühlt seltener als vor der MFA) aussteigt, wollte ich dein Plugin unbedingt mal probieren.

            Ich habe für meine Ultimate Dream Machine Pro (UDM Pro) einen neuen Admin mit lokaler Berechtigung angelegt wie in der Beschreibung vorgesehen. dieser wird mir in den "Settings" unter "Admins & Users" als "Active" (grün) angezeigt und hat die Berechtigung auf die Network Application. Allerdings kann ich mich komischerweise nicht mit diesem online unter https://unifi.ui.com/ einloggen.

            Auch mit dem Plugin habe ich noch Schwierigkeiten: wie bekomme ich die Port Adresse heraus die einzutragen ist? Ist das ein Standard Port? Die IP ist von der UDM Pro einzutragen? Auch mit "Name der site" kann ich nicht viel anfangen. Ich habe es auf "default" belassen und sehe ein "default" auch im webinterface in der URL. Auch die log-datei vom manuellen Abrufen kann ich nicht finden?

            Leider kommt dennoch nichts für die MAC die ich im webinterface sehe und in der Liste eingetragen habe beim MQTT an.

            Edit: ich habe die log-datei über den Dateimanager des Loxberry unter opt/loxberry/log/plugins/wifi-presence-unifi/ gefunden.
            Da steht: "<ERROR> list_aps returned unexpected result"

            Edit2: ohne den Port hat es nun funktioniert und ich sehe die MQTT Messages im MQTT incoming view .
            Zuletzt geändert von MarkusCosi; 03.10.2024, 14:34.

            Kommentar


            • LoxxyFoxxy
              LoxxyFoxxy kommentierte
              Kommentar bearbeiten
              Super, dass es doch noch geklappt hat!
              Der Account den du angelegt hast funktioniert nur lokal, deshalb kannst du dich damit unter unifi.ui.com nicht anmelden.
              Unter der lokalen IP schon.
              Macht es dir was aus, einen Screenshot der settings zu teilen? Hilft anderen UDM Nutzern bestimmt. Würde ich dann hinzufügen.

            • MarkusCosi
              MarkusCosi kommentierte
              Kommentar bearbeiten
              Hi LoxxyFoxxy,

              Danke für den Hinweis zum Einloggen. Macht natürlich Sinn
              Zu den Einstellungen: ich habe einfach bei der Zeile "Unifi Controller URL" eingetragen: https://<<IP der UDM Pro>>.
              So hat es dann funktioniert.

              Controller Version war bei mir 4.0.6. (zu finden z.B. bei Settings → Control Plane → Updates → UniFi OS → UDM Pro → Version).

              Unter "Name der site" habe ich "default" eingetragen, da es so auch in der URL erscheint wenn ich mich einlogge: https://unifi.ui.com/consoles/XX...X.../control-plane

              "Benutzername" und "Passwort" im Plugin angegeben so wie im unifi-Portal unter Settings → Admins & Users unter "Local Credentials" angelegt. (Network: Full Management, rest: None) "use predefined roles": uncheck, "save as predefined role": uncheck.
          • Tweeet
            Dumb Home'r
            • 01.03.2018
            • 25

            #10
            Hallo zusammen, brauche eure Hilfe. Login scheint gemäss Log zu klappen. Aber dann komme ich nicht mehr weiter.

            ================================================== ==============================
            <LOGSTART>19.10.2024 09:22:14 TASK STARTED
            <LOGSTART>Script called.
            <INFO> LoxBerry Version 3.0.1.2 ( is_arch_armv7l.cfg is_raspberry.cfg )
            <INFO> WiFi Presence UniFi Version 0.1.3
            <INFO> Loglevel: 7
            <INFO> Started from HTTP.
            <INFO> Starting action poll
            <INFO> Switched to getconfigasjson
            Retrieved backend config: {"VERSION":"2.0.2.2","DEBUG":0,"slave":{"Main": {"u rl":"https:\/\/10.10.10.10:8443","username":"xx","password":"xx", "sitename":"Loft Horgen","version":"7.2.97","macaddressesraw":"70:2 2:FE:C3:6A:46\r\nc4:c3:6b:04:15:2a","macaddresses" :["70:22:FE:C3:6A:46","c4:c3:6b:04:15:2a"]},"macaddresses":[]}}
            Attempting login...
            Login response received
            <INFO> Login to UniFi was successful
            Fetching UniFi clients...
            list_clients returned unexpected result
            stat_allusers returned unexpected result
            Fetching UniFi devices...
            <ERROR> list_aps returned unexpected result

            ================================================== ==============================​

            Mit und ohne Port bekomme ich dasselbe Ergebnis.
            CloudKey Gen1 im Einsatz.
            Version 7.2.97

            Kommentar


            • LoxxyFoxxy
              LoxxyFoxxy kommentierte
              Kommentar bearbeiten
              Könnte am Site Name liegen. Wenn du im UniFi Controller bist, schau mal in die URL-Leiste deines Browsers. Schick nen Screenshot davon, da steht der Site Code drin.
          • leopoldiskatzinakis
            Smart Home'r
            • 29.08.2016
            • 52

            #11
            Nachdem ich nun das richtige Plugin installiert habe muss ich sagen: danke, cooles Plugin. Schaut bisher gut aus - mit Unifi CloudKey getestet.

            Kommentar


            • Lenardo
              Lenardo kommentierte
              Kommentar bearbeiten
              ja da schliesse ich mich an, mit einer Dream Machine Pro und lokalen account funktioniert das simpel aber gut !!
          • Tweeet
            Dumb Home'r
            • 01.03.2018
            • 25

            #12
            Danke euch für die Tipps! Nachdem ich den Sitenamen auf 'default' geändert habe, hats perfekt funktioniert. War ja eigentlich auch so beschrieben. Dachte nur, es müsste mit dem Site Namen aus dem Controller übereinstimmen.

            Kommentar

            Lädt...