Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. LAN-Clients als Objekte vom Unifi Adapter

    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

    LAN-Clients als Objekte vom Unifi Adapter

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

      Hallo Zusammen,
      ich habe eine Frage zur Umsetzung. Ich habe einen 24-Port Switch und einen 8-60W Switch von Unifi. An diese sind bei mir alle LAN-Dosen aus den Wohnräumen/Garage angeschlossen. Ich würde mir gerne eine VIS erzeugen, die an den jeweiligen Port des Switches den Client schreibt. Bekomme ich auch irgendwie hin (ich würde mir entsprechend mittels Skript unter 0_userdata Einträge zu den Ports erzeugen.
      Nun nutze ich den Unifi-Adapter und unter clients im Objekt-Baum tauchen alle Clients mit einer MAC-Adresse auf. In der Unterstruktur bei jedem Client finde ich dann z.b. den Port, die IP-Adresse, die MAC-Adresse vom Switch usw.
      So sieht die Struktur aus:
      8c46bdbf-94b5-4176-99ba-b9107599dee5-image.png

      und so die Unterstruktur:
      2779c9e6-6de2-4552-84fd-5cd3a1fc72a0-image.png

      Fragen:
      Wenn ich die MAC-Adresse des Clients kenne, kann ich im Unterordner entsprechend schauen, an welcher MAC-Adresse des Switches er hängt und kann dann über den Port entsprechend mir die Daten abgreifen und unter 0_userdaten schreiben.
      Wenn ich aber die MAC-Adresse eines Clients NICHT kenne, sondern "nur" ein neues Gerät z.B. zeitweise an eine LAN-Dose anschließe, was mache ich dann?
      Kann ich irgendwie die Client-MAC-Adressen abgreifen?
      Wie bekomme ich denn heraus, dass es quasi neue MAC Adressen in meinem System gibt?

      Danke
      Marcus

      liv-in-sky 1 Reply Last reply Reply Quote 0
      • liv-in-sky
        liv-in-sky @mguenther last edited by

        @mguenther

        am einfachsten du nimmst den client vom lan und wenn du ihn wieder ansteckst , kannst du im unifi controller nachsehen, was sich als letztes eingelogt hat - dann siehst du namen und mac - so mache ich es mmer mit neuen wlan geräten - sollte auch mit lan funktionieren

        oder ein script :
        https://forum.iobroker.net/topic/30057/ip-devices-im-netzwerk-html-tabelle-vis-iqontrol

        M 1 Reply Last reply Reply Quote 0
        • M
          mguenther @liv-in-sky last edited by mguenther

          @liv-in-sky
          ja, dein Skript hab ich mir angeschaut, das ist aber nicht das, was ich gerne hätte.
          Und nein, ich will nicht immer was anstecken, schauen und neu eingeben. Hatte gehofft, dass er sobald sich einer neuer client per MAC Adresse anmeldet, die Daten dort ausliest und quasi regelmässig alle clients überprüft.

          das sind meine "Ziel" Objekte unter 0_userdata.0. ..., da hätte ich dann gerne die Daten drin:
          c451d4b0-17b0-47fd-ae72-0e3d599a636f-image.png

          z.B. bei Client ab.12.cd.34.ef.56 gibt es in der Unterstruktur die Einträge "is online" und "is wired". Wenn ja, dann nimm die MAC vom Switch (Annahme für dieses Beispiel, es ist der 24Port Switch) und den Port vom Switch und schreibe dann unter 0_userdata die Daten von dem Client rein.

          Mein Problem ist halt, dass ich nicht immer weiß, welche Clients welche MAC Adresse haben.

          liv-in-sky 1 Reply Last reply Reply Quote 0
          • liv-in-sky
            liv-in-sky @mguenther last edited by

            @mguenther

            das brauchst du doch ein script dazu ? wo ist das ?

            M 1 Reply Last reply Reply Quote 0
            • M
              mguenther @liv-in-sky last edited by mguenther

              @liv-in-sky
              ja, ich brauch nen neues Skript - ich habe ja noch keines und hatte gehofft, hier Hilfe zu bekommen 🙂
              ich hatte dein Skript mir angeschaut und nur teilweise verstanden. Ich hatte am Anfang gesehen, dass du Zuweisungen über deine IP-Adressen machst, das wollt ich ja quasi nicht...

              Homoran liv-in-sky 2 Replies Last reply Reply Quote 0
              • Homoran
                Homoran Global Moderator Administrators @mguenther last edited by

                @mguenther sagte in LAN-Clients als Objekte vom Unifi Adapter:

                dass du Zuweisungen über deine IP-Adressen machst,

                das ist optional um anderslautende "Host"-Namen zu vergebben

                1 Reply Last reply Reply Quote 0
                • liv-in-sky
                  liv-in-sky @mguenther last edited by

                  @mguenther

                  sowas ?

                  https://github.com/liv-in-sky/iobroker-unificlients-table-vis

                  dort kann man sortieren nach device

                  M 1 Reply Last reply Reply Quote 0
                  • M
                    mguenther @liv-in-sky last edited by

                    @liv-in-sky sagte in LAN-Clients als Objekte vom Unifi Adapter:
                    @liv-in-sky sagte in LAN-Clients als Objekte vom Unifi Adapter:

                    @mguenther

                    sowas ?

                    https://github.com/liv-in-sky/iobroker-unificlients-table-vis

                    dort kann man sortieren nach device

                    ich will eigentlich in meiner VIS gar nichts eingeben, sondern nur die aktuelle Situation grafisch abbilden. Die grafische Abbildung/Umsetzung bekomme ich auch hin.
                    Ich bräuchte ein Skript, was die Objekte unter den Unifi-clients durchsucht und wenn bei einem Client "is online = true" und "is wired = true" existiert, und welches dann von dem Client die entsprechenden Daten in mein 0_userdata Bereich schreibt.
                    Später wäre noch in einem 2. Schritt interessant "is online = true" und "is wired = false" interessant, um die Daten in einen anderen 0_userdata Bereich zu schreiben (für die WLAN Clients).

                    Das, was du hast, ist schon viel zu viel...

                    liv-in-sky 1 Reply Last reply Reply Quote 0
                    • liv-in-sky
                      liv-in-sky @mguenther last edited by

                      @mguenther

                      hier ein blockly, welches dir ein beispiel für eine schleife durch das unifi-verzeichnis macht - gibt im log den namen,die ip-adresse und die mac adresse aus

                      <block xmlns="https://developers.google.com/blockly/xml" type="controls_forEach" id="aYemk+_zO9R0[1B:rn?(" x="962.8488159179688" y="62.905670166015625">
                       <field name="VAR" id="ju_axXKM0evm)kFjt0^x">i</field>
                       <value name="LIST">
                         <block type="selector" id="rKA=#Nad;Fi_*@NP?K:Z">
                           <field name="TEXT">unifi.0.default.clients.*.is_online</field>
                         </block>
                       </value>
                       <statement name="DO">
                         <block type="controls_if" id="|O%_{Xy06sAlt2RW9tV#">
                           <value name="IF0">
                             <block type="logic_compare" id="-I`/FPZ2K@j{~io5~]r+">
                               <field name="OP">EQ</field>
                               <value name="A">
                                 <block type="get_value_var" id="~m,Fq^;FOLA6l$jr%:F3">
                                   <field name="ATTR">val</field>
                                   <value name="OID">
                                     <shadow type="text">
                                       <field name="TEXT"></field>
                                     </shadow>
                                     <block type="variables_get" id="L0b9mNZeAQE0#X26G1[`">
                                       <field name="VAR" id="ju_axXKM0evm)kFjt0^x">i</field>
                                     </block>
                                   </value>
                                 </block>
                               </value>
                               <value name="B">
                                 <block type="logic_boolean" id="J/A_IB5v6k8^G!R:%Svc">
                                   <field name="BOOL">TRUE</field>
                                 </block>
                               </value>
                             </block>
                           </value>
                           <statement name="DO0">
                             <block type="debug" id="}/]^`3$y7dC9[h]LL#)^" disabled="true">
                               <field name="Severity">log</field>
                               <value name="TEXT">
                                 <shadow type="text" id="z_Jp{j)DQ;J(RgG!Zc9X">
                                   <field name="TEXT">test</field>
                                 </shadow>
                                 <block type="variables_get" id="d}x=SAG*EN)jF#~[5#Tt">
                                   <field name="VAR" id="ju_axXKM0evm)kFjt0^x">i</field>
                                 </block>
                               </value>
                               <next>
                                 <block type="variables_set" id="#NCte3)4ES3goO*c|}qc" disabled="true">
                                   <field name="VAR" id="=$.f[B97caRLYGEl6{~,">myName</field>
                                   <value name="VALUE">
                                     <block type="variables_get" id="/8m4z|zJ1;V}~~Ibybiw">
                                       <field name="VAR" id="ju_axXKM0evm)kFjt0^x">i</field>
                                     </block>
                                   </value>
                                   <next>
                                     <block type="debug" id="NF1!tD,3U=2qn$oo^tV3">
                                       <field name="Severity">log</field>
                                       <value name="TEXT">
                                         <shadow type="text" id="3L7!XW4g./4}Vz%{A{/o">
                                           <field name="TEXT">test</field>
                                         </shadow>
                                         <block type="text_join" id="``V`=4efQJc:+?SCrg[w">
                                           <mutation items="6"></mutation>
                                           <value name="ADD0">
                                             <block type="text" id=":?zAY.hRSY]VBhZ%1|-~">
                                               <field name="TEXT">name: </field>
                                             </block>
                                           </value>
                                           <value name="ADD1">
                                             <block type="get_value_var" id="%f8?Ez@UKuWAf+Ead1z2">
                                               <field name="ATTR">val</field>
                                               <value name="OID">
                                                 <shadow type="text">
                                                   <field name="TEXT"></field>
                                                 </shadow>
                                                 <block type="text_join" id="$m)L4Fg7n3g_%P;HGH6P">
                                                   <mutation items="2"></mutation>
                                                   <value name="ADD0">
                                                     <block type="text_getSubstring" id=",2sv)7`z1%|*RU@iy]7k">
                                                       <mutation at1="false" at2="true"></mutation>
                                                       <field name="WHERE1">FIRST</field>
                                                       <field name="WHERE2">FROM_START</field>
                                                       <value name="STRING">
                                                         <block type="variables_get" id="b1S/yh3(_~)|@EY%|Ftc">
                                                           <field name="VAR" id="ju_axXKM0evm)kFjt0^x">i</field>
                                                         </block>
                                                       </value>
                                                       <value name="AT2">
                                                         <block type="text_indexOf" id="q1*2SiSyPk^cs9,SO95:">
                                                           <field name="END">LAST</field>
                                                           <value name="VALUE">
                                                             <block type="variables_get" id="29@gL#5oe|e%zrg]8So$">
                                                               <field name="VAR" id="ju_axXKM0evm)kFjt0^x">i</field>
                                                             </block>
                                                           </value>
                                                           <value name="FIND">
                                                             <shadow type="text" id="mj,ug{_!NFV*M9GW1Oa=">
                                                               <field name="TEXT">.</field>
                                                             </shadow>
                                                           </value>
                                                         </block>
                                                       </value>
                                                     </block>
                                                   </value>
                                                   <value name="ADD1">
                                                     <block type="text" id="d{(iw~l4O:hL~A9mBxp^">
                                                       <field name="TEXT">name</field>
                                                     </block>
                                                   </value>
                                                 </block>
                                               </value>
                                             </block>
                                           </value>
                                           <value name="ADD2">
                                             <block type="text" id="8^0E~@Q=mrrDq]XbCLpw">
                                               <field name="TEXT">  ---   macadresse: </field>
                                             </block>
                                           </value>
                                           <value name="ADD3">
                                             <block type="lists_getIndex" id="`J#n.9]2.j1fdGmH|rY}">
                                               <mutation statement="false" at="true"></mutation>
                                               <field name="MODE">GET</field>
                                               <field name="WHERE">FROM_START</field>
                                               <value name="VALUE">
                                                 <block type="lists_split" id="A*]6B:O_te4,XQbW5Z;O">
                                                   <mutation mode="SPLIT"></mutation>
                                                   <field name="MODE">SPLIT</field>
                                                   <value name="INPUT">
                                                     <block type="variables_get" id="UmzVNPnUc#SVB%d.IhTP">
                                                       <field name="VAR" id="ju_axXKM0evm)kFjt0^x">i</field>
                                                     </block>
                                                   </value>
                                                   <value name="DELIM">
                                                     <shadow type="text" id="r2d8_+S)Rr9B{P$d$/yU">
                                                       <field name="TEXT">.</field>
                                                     </shadow>
                                                   </value>
                                                 </block>
                                               </value>
                                               <value name="AT">
                                                 <block type="math_number" id="w8/{G.YAR|[r2brMXQmQ">
                                                   <field name="NUM">5</field>
                                                 </block>
                                               </value>
                                             </block>
                                           </value>
                                           <value name="ADD4">
                                             <block type="text" id="`AG[/3/pE=`f#saT#RS,">
                                               <field name="TEXT">  ---   ip-adresse: </field>
                                             </block>
                                           </value>
                                           <value name="ADD5">
                                             <block type="get_value_var" id="^(R1L8Xr}?uyOU4@Z?)5">
                                               <field name="ATTR">val</field>
                                               <value name="OID">
                                                 <shadow type="text">
                                                   <field name="TEXT"></field>
                                                 </shadow>
                                                 <block type="text_join" id="h!uXyjX9!,l`jZs]h8=G">
                                                   <mutation items="2"></mutation>
                                                   <value name="ADD0">
                                                     <block type="text_getSubstring" id="q!)b,%.BKd21X{)2|@1?">
                                                       <mutation at1="false" at2="true"></mutation>
                                                       <field name="WHERE1">FIRST</field>
                                                       <field name="WHERE2">FROM_START</field>
                                                       <value name="STRING">
                                                         <block type="variables_get" id="e7ehu^TshPsCaj3$v-jF">
                                                           <field name="VAR" id="ju_axXKM0evm)kFjt0^x">i</field>
                                                         </block>
                                                       </value>
                                                       <value name="AT2">
                                                         <block type="text_indexOf" id="avCgTnckU=}$L:DUST35">
                                                           <field name="END">LAST</field>
                                                           <value name="VALUE">
                                                             <block type="variables_get" id="~aFljR-%eww0/_*32V93">
                                                               <field name="VAR" id="ju_axXKM0evm)kFjt0^x">i</field>
                                                             </block>
                                                           </value>
                                                           <value name="FIND">
                                                             <shadow type="text" id="@sv^U+Gksy1~!Mrf`9.#">
                                                               <field name="TEXT">.</field>
                                                             </shadow>
                                                           </value>
                                                         </block>
                                                       </value>
                                                     </block>
                                                   </value>
                                                   <value name="ADD1">
                                                     <block type="text" id="ju?MH,Qkk[(che*7veis">
                                                       <field name="TEXT">ip</field>
                                                     </block>
                                                   </value>
                                                 </block>
                                               </value>
                                             </block>
                                           </value>
                                         </block>
                                       </value>
                                     </block>
                                   </next>
                                 </block>
                               </next>
                             </block>
                           </statement>
                         </block>
                       </statement>
                      </block>
                      

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

                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      753
                      Online

                      31.9k
                      Users

                      80.1k
                      Topics

                      1.3m
                      Posts

                      3
                      9
                      282
                      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