Navigation

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

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Adapter: ioBroker.unifi

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

      Jetzt läuft es bei mir so halb.

      Die User die ich eingetragen habe werden allerdings nur in der string Variable aufgelistet.

      Der Nutzer und der Gast stehen auf anwesend.

      Leider werden die Variablen der einzelnen Personen nicht geändert.

      /* define actual user devices here */
      var user_devices = [];
      user_devices['XX:XX:XX:XX:XX:XX'] = 'Jens';
      user_devices['XX:XX:XX:XX:XX:XX'] = 'XXXXX';
      
      /* define here devices that you 'know', thus should
       * be ignored
       */
      var known_devices=[ "AA:BB:CC:DD:EE:FF",
                          "AA:BB:CC:DD:EE:FF",
                          "AA:BB:CC:DD:EE:FF"];
      
      /* Enum list of all combinations of users+guest */
      var enum_list = [3];
      enum_list[0] = "Nobody";
      enum_list[1] = "John";
      enum_list[2] = "Jane";
      enum_list[3] = "John,Jane";
      enum_list[4] = "Guest";
      enum_list[5] = "John,Guest";
      enum_list[6] = "Jane,Guest";
      enum_list[7] = "John,Jane,Guest";
      
      /* Path to system variables on CCU */
      var sysvar_prefix= "Anwesenheit";
      var sysvar_user  = "hm-rega.0.18XXX"/*Anwesenheit.Nutzer*/;
      var sysvar_guest = "hm-rega.0.18XXX"/*Anwesenheit.Gast*/;
      var sysvar_str   = "hm-rega.0.18XXX"/*Anwesenheit.string*/;
      var sysvar_list  = "hm-rega.0.22XXX"/*Anwesenheit.list*/;
      
      /* Unifi controller settings */
      var unifi_ip   = "XXX.XXX.X.XX";
      var unifi_port = 8443;
      var unifi_user = "XXXXX";
      var unifi_pw   = "XXXXXXXXXXX";
      

      Wodran liegt das?

      1 Reply Last reply Reply Quote 0
      • eric2905
        eric2905 last edited by

        @looxer01:

        Danke Eric `
        Gern geschehen 🙂

        @looxer01:

        Was mir nicht wirklich vorher klar war ist, dass der AP keine eigene Oberfläche hat.

        Aber aufgrund der professionellen Anforderung mit vielen APs zu arbeiten erklärt sich das natürlich. `
        Genau.

        Du kannst im Controller Profile anlegen und den einzelnen APs zuordnen. Der Controller kümmert sich dann drum, das alle APs die Konfiguriert bekommen, usw.

        Ein weiterer großer Vorteil bei die Verwendung von mehreren APs ist die Lastverteilung :

        • Wenn Du z.B. eine Fritzbox und einen Fritz-Repeater hast und beide auf die gleiche SSID einstellt, hast Du quasi eine Art Roaming. In diesem Fall entscheidet aber das Endgerät, welchen AP es nutzt. Das kann schon mal schief gehen und der "schlechtere" AP wird genutzt oder es kommt zu kurzen Ausfällen (gerade dann, wenn beide ungefähr gleich stark beim Endgerät ankommen).

        • Bei Unifi wird, wenn Du mehrere APs im gleichen WLAN hast, die Verteilung durch den Controller übernommen. Er steuert, welcher AP sich um welches Endgerät kümmert und schaltet on Demand um - Du bzw. das Endgerät kriegt davon nichts mit.

        Du kannst im Controller sogar eine maßstabsgerechte Zeichnung Deiner Wohnung hinterlegen und den/die AP(s) dort hinterlegen (Heatmap). Dann siehst Du, wie die Abdeckung ist und ob es ggf. Sinn macht, noch einen weiteren AP zu setzen.
        355_heatmap.png

        Gruß,

        Eric

        1 Reply Last reply Reply Quote 0
        • jens.maus
          jens.maus last edited by

          @jensus11:

          Jetzt läuft es bei mir so halb.

          Die User die ich eingetragen habe werden allerdings nur in der string Variable aufgelistet.

          Der Nutzer und der Gast stehen auf anwesend.

          Leider werden die Variablen der einzelnen Personen geändert.

          […]

          Wodran liegt das? `

          Die anderen Sachen (enum_list) solltest du natürlich auch noch an deine Gegebenheiten anpassen. Und dann kommentier zum testen die log() aufrufe aus.

          1 Reply Last reply Reply Quote 0
          • J
            jensus11 last edited by

            kannst du mir da weiter helfen?

            ich weiss nicht wie ich die enum_list anpassen muss.

            1 Reply Last reply Reply Quote 0
            • P
              pix last edited by

              Hallo Jens,
              @jens.maus:

              Das ganze mache ich momentan über das "node-unifi" nodejs Modul und nicht über mein unifi iobroker Adapter. Voraussetzung ist, das man im js-controller als Zusatzpaket eben "node-unifi" angegeben hat (siehe Einstellung des js-controller). Dann kann man folgendes Skript nutzen um eine an hm_pdetect angelehnte Anwesenheitserkennung durchzuführen und Systemvariablen in der CCU/RaspberryMatic setzen zu lassen:

              …

              Viel Spass damit. Und ich freue mich wie immer über Feedback. `
              habe ich gemacht. Skript läuft, verbindet sich mit Controller, alles wie gewünscht. Habe zwei User, deren Telefone ich überwachen will. Die Funktionen Liste und Anzahl sind ja schonmal gut, aber ich brauch im Wesentlichen eigentlich ein Boolean, ob jeweils die Geräte eingebucht sind oder nicht.

              Kannst du die dahinterstehenden Homematic Variablen mal erklären?

              /* Path to system variables on CCU */
              var sysvar_prefix= "Anwesenheit";
              var sysvar_user  = "hm-rega.0.35037"/*Anwesenheit.Nutzer*/;
              var sysvar_guest = "hm-rega.0.15785"/*Anwesenheit.Gast*/;
              var sysvar_str   = "hm-rega.0.31854"/*Anwesenheit.string*/;
              var sysvar_list  = "hm-rega.0.31853"/*Anwesenheit.list*/;
              

              Ich habe versucht, das in ioBroker Javascript Adapter nachzubauen, aber es klappt noch nicht ganz.

              var sysvar_prefix= "javascript.1.Unifi.Anwesenheit.";
              var sysvar_user  = idUnifiUser1; // Boolean? Wie User2 ?
              var sysvar_guest = idUnifiGast; // geht
              var sysvar_str   = idUnifiListe; // geht
              var sysvar_list  = idUnifiAnzahl; // geht
              

              Was ist die Variable sysvar_user für ein Typ und was soll da rein?

              Gruß

              Pix

              1 Reply Last reply Reply Quote 0
              • jens.maus
                jens.maus last edited by

                @pix:

                Kannst du die dahinterstehenden Homematic Variablen mal erklären?

                […]

                Ich habe versucht, das in ioBroker Javascript Adapter nachzubauen, aber es klappt noch nicht ganz. `

                Das liegt vermutlich daran das du nie hm_pdetect (https://homematic-forum.de/forum/viewto … 7t#p204194) auf der CCU verwendet hast. Das ganze funktioniert dort nämlich äquivalent. Im Grunde brauchst du folgende Systemvariablen auf der CCU.

                Systemvariablen mit exakt diesen Namen + Einstellungen:

                Anwesenheit - Boolean mit Werten true=anwesend, false=abwesend (normal in CCU bereits vorhanden)
                Anwesenheit.Nutzer – Boolean mit Werten true=anwesend, false=abwesend
                Anwesenheit.list - enum Liste aller Anwesenheitskombinationen 
                Anwesenheit.string - Zeichenkette
                Anwesenheit.Gast - Boolean mit Werten true=anwesend, false=abwesend
                

                Systemvariablen für jeden Nutzer mit NAME = Nutzername

                Anwesenheit.NAME - Boolean mit Werten true=anwesend, false=abwesend
                

                D.h. wenn man nun zwei Nutzer "John" und "Jane" hat würde man die folgenden zwei boolean Systemvariablen mit den beiden Werten true=anwesend, false=abwesend auf der CCU brauchen:

                Anwesenheit.John
                Anwesenheit.Jane
                
                

                In dem Skript den ich gepostet habe muss dann noch die enum_list variable eben mit der Enum Liste der Systemvariable "Anwesenheit.list" abgeglichen werden und im Grunde alle Kombinationen haben die man für die Anwesenheit aller Nutzer + Gast theoretisch zur verfügung hat. Bei zwei Nutzern sieht das dann eben wie folgt aus:

                /* Enum list of all combinations of users+guest */
                var enum_list = [];
                enum_list[0] = "Niemand";
                enum_list[1] = "Nutzer1";
                enum_list[2] = "Nutzer2";
                enum_list[3] = "Nutzer1,Nutzer2";
                enum_list[4] = "Gast";
                enum_list[5] = "Nutzer1,Gast";
                enum_list[6] = "Nutzer2,Gast";
                enum_list[7] = "Nutzer1,Nutzer2,Gast"
                
                

                D.h. für 2 Nutzer hat man 8 Kombinationen wie der wert von Anwesenheit.string dann z.B. aussehen kann. Genau diese Kombinationen muss man dann auch in der Anwesenheit.list CCU Systemvariablen eben mit Semikolon getrennt eingeben.

                Hoffe das macht es etwas klarer.

                1 Reply Last reply Reply Quote 0
                • jens.maus
                  jens.maus last edited by

                  @looxer01:

                  @eric2905:

                  wenn Du den AP „manuell“ konfiguriert hast, ist er beim Controller unbekannt und kann daher auch vom Adapter nicht ausgelesen werden, usw. `

                  wenn ich das richtig verstehe, dann muss der controller staendig laufen. Das ist bei meinem Win PC nicht der Fall.

                  Dann kommt nur meine debian installation in Frage.

                  Ich müsste also alles zurücksetzen und mit der DEBIAN Installation neu beginnen. `

                  Für die die nicht extra ein neues Debian aufsetzen wollen oder auf Unabhängigkeit des Unifi-Controllers setzen möchte kann auch einfach auf den "Unifi-CloudKey" setzen (https://www.ubnt.com/unifi/unifi-cloud-key/). Das ist im Grunde ein kleines Embedded Device auf dem ein minimaoistisches Linux drauf läuft und dann eben die Controller Firmware. Das hat zwar "Cloud" im Namen, aber die Cloud-Funktion muss man ja nicht einsetzen. Ich habe selbst den Unifi-CloudKey und bin da sehr mit zufrieden (zumal er einfach via PoE an einen UniFi-Switch angeschlossen werden kann).

                  1 Reply Last reply Reply Quote 0
                  • H
                    Hagiman2000 last edited by

                    Ich habe aktuell 2 Pis im Einsatz. Einen für Raspberrymatic und einen für IoBroker. Könnte ich den Unifi Adapter jetzt noch zusätzlich auf den Pi mit Iobroker installieren (habe hier ein fertiges Image genommen) oder benötige ich einen dritten Pi?

                    Da hier viel anwesend sind die mit Wlan / Internet sich aus kennen, ich konnte über die Suche keinen Adapter für Telekom Router finden sondern nur einen Fritzbox Adapter. Dabei würde ich behaupten, dass die Speedport Router auch sehr weit verbreitet sind. Gibt es hier eine Lösung Daten aus zu lesen?

                    Aktuell sieht meine Konfig so aus. Unifi AP im Erdgeschoss, Speedport Smart im Obergeschoss und Unifi AP im Dachgeschoss.

                    1 Reply Last reply Reply Quote 0
                    • eric2905
                      eric2905 last edited by

                      Ob der Pi für iobroker und UniFi-Controller ausreicht, wage ich zu bezweifeln. Er hat ganz schön was zu tun (Statistiken, usw.).

                      Wenn ich am Sonntag aus dem Urlaub zurück bin, schaue ich mir die Systemlast meines Controllers mal an.

                      Gruß,

                      Eric

                      Von unterwegs getippert

                      1 Reply Last reply Reply Quote 0
                      • lobomau
                        lobomau last edited by

                        @Hagiman2000:

                        Da hier viel anwesend sind die mit Wlan / Internet sich aus kennen, ich konnte über die Suche keinen Adapter für Telekom Router finden sondern nur einen Fritzbox Adapter. Dabei würde ich behaupten, dass die Speedport Router auch sehr weit verbreitet sind. Gibt es hier eine Lösung Daten aus zu lesen? `
                        Es gibt ein Script dazu. Die Suche sollte was dazu liefern.

                        1 Reply Last reply Reply Quote 0
                        • J
                          jensus11 last edited by

                          Hallo Jens,

                          kannst du mir nochmal helfen?

                          Ich komme nicht richtig klar mit dm Script.

                          /* define actual user devices here */
                          var user_devices = [];
                          user_devices['98:10:E8:BE:DE:A7'] = 'Klaus';
                          user_devices['B8:53:AC:14:A1:B4'] = 'Hans;
                          user_devices['B6:53:AC:18:A4:B4'] = 'Peter;
                          
                          /* define here devices that you 'know', thus should
                           * be ignored
                           */
                          var known_devices=[ "AA:BB:CC:DD:EE:FF",
                                              "AA:BB:CC:DD:EE:FF",
                                              "AA:BB:CC:DD:EE:FF"];
                          
                          /* Enum list of all combinations of users+guest */
                          var enum_list = [];
                          enum_list[0] = "Nobody";
                          enum_list[1] = "Klaus";
                          enum_list[2] = "Hans";
                          enum_list[3] = "Peter";
                          enum_list[4] = "Klaus,Hans,Peter";
                          enum_list[5] = "Guest";
                          enum_list[6] = "Klaus,Hans,Peter,Guest";
                          enum_list[7] = "Hans,Guest";
                          enum_list[8] = "Klaus,Hans,Peter,Guest";
                          enum_list[9] = "Peter,Guest";
                          enum_list[10] = "Klaus,Hans,Peter,Guest";
                          
                          /* Path to system variables on CCU */
                          var sysvar_prefix= "Anwesenheit";
                          var sysvar_user  = "hm-rega.0.14029"/*Anwesenheit.Nutzer*/;
                          var sysvar_guest = "hm-rega.0.14030"/*Anwesenheit.Gast*/;
                          var sysvar_str   = "hm-rega.0.14032"/*Anwesenheit.string*/;
                          var sysvar_list  = "hm-rega.0.20454"/*Anwesenheit.list*/;
                          

                          Wie muss die list Variable auf der CCu aussehen?

                          Dann wird mir immer der Gast mit angezeigt obwohl ich kein Gastnetzwerk eingerichtet habe.

                          Was mache ich denn verkehrt?

                          1 Reply Last reply Reply Quote 0
                          • eric2905
                            eric2905 last edited by

                            Kann es sein, das Dir die beiden Zeilen

                            enum_list[3] = "Peter";
                            enum_list[3] = "Klaus,Hans,Peter";
                            

                            in die Quere kommen?

                            Du hast erst nur „Peter“ an die 4. Stelle der Liste und dann nochmal „Klaus,Hans,Peter“.

                            Somit müsste dann immer „Klaus,Hans,Peter“ kommen, auch wenn nur Peter da ist.

                            Gruß,

                            Eric

                            Von unterwegs getippert

                            1 Reply Last reply Reply Quote 0
                            • J
                              jensus11 last edited by

                              Ups da hatte ich einen Fehler. Habe noch eine dritte Person hinzugefügt für diese Frage.

                              Hatte nur zwei angelegt mit denen es aber nicht wie gewünscht funktioniert.

                              dachte mir lieber gleich 3 machen bevor wir das hier mit zwei klären und ich dann die nächste Frage stellen muss.

                              1 Reply Last reply Reply Quote 0
                              • eric2905
                                eric2905 last edited by

                                Klappt es denn jetzt wie gewünscht?

                                Gruß,

                                Eric

                                Von unterwegs getippert

                                1 Reply Last reply Reply Quote 0
                                • J
                                  jensus11 last edited by

                                  Nein. Mir wird immer der Gast mit angezeigt.

                                  Und in der Wertevariable list auf der CCu, da weiss ich nicht was ich da bei der Wertebezeichnung eintragen soll?

                                  1 Reply Last reply Reply Quote 0
                                  • eric2905
                                    eric2905 last edited by

                                    Da bin ich erst mal raus, da ich das Script nicht einsetzte für die Anwesenheitserkennung.

                                    Gruß,

                                    Eric

                                    Von unterwegs getippert

                                    1 Reply Last reply Reply Quote 0
                                    • R
                                      Rolf_A last edited by

                                      Hallo,

                                      ich bekam immer einen oder mehrere Gast/Gäste angezeigt, solange ich nicht alle Geräte (Mac-Adressen) unter "Knowing device" eingetragen hatte.

                                      Gruß

                                      Rolf

                                      1 Reply Last reply Reply Quote 0
                                      • J
                                        jensus11 last edited by

                                        Ja das war ein super Tipp. Damit konnte ich meinen Gast schon eliminieren.

                                        Ich habe bei mir die Variable Anwesenheit_Wlan (global presence @ home) auf der CCU angelegt.

                                        Ist es möglich das ich die schalten kann?

                                        /* Path to system variables on CCU */
                                        var sysvar_prefix= "Anwesenheit_Wlan";
                                        

                                        Ich habe die anderen Variablen der prefix Bezeichnung angepasst und da funktioniert das gut.

                                        also Anwesenheit_Nutzer usw.

                                        1 Reply Last reply Reply Quote 0
                                        • lobomau
                                          lobomau last edited by

                                          @eric2905:

                                          Ob der Pi für iobroker und UniFi-Controller ausreicht, wage ich zu bezweifeln. Er hat ganz schön was zu tun (Statistiken, usw.).

                                          Wenn ich am Sonntag aus dem Urlaub zurück bin, schaue ich mir die Systemlast meines Controllers mal an.

                                          Gruß,

                                          Eric

                                          Von unterwegs getippert `
                                          Hast du mal getestet was der unifi controller so an Systemlast macht?

                                          Habe mir dazu gar keine Gedanken gemacht und erstmal nichts festgestellt, außer RAM-Verbrauch.

                                          Bei mir läuft der unifi-controller mit auf dem brix wo auch ioBroker läuft.

                                          1 Reply Last reply Reply Quote 0
                                          • P
                                            pix last edited by

                                            Hallo,

                                            ich nutze den Controller auf einem separaten Server. Keine Probleme mit der Last.

                                            Das Skript funktioniert und liefert die richtigen Namen. Nutze nur keine CCU, sondern ioBroker als Ziel.

                                            Allerdings bekomme ich täglich um 0200 eine Fehlermeldung und die jS-Adapterinstanz startet neu. Habt ihr das auch?

                                            Kann leider das log nicht hier posten, da von unterwegs in Tapatalk getippt.

                                            Pix

                                            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

                                            984
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            unifi
                                            170
                                            998
                                            307297
                                            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