Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Adapter: ioBroker.unifi

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.3k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.4k

Adapter: ioBroker.unifi

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
unifi
1.0k Beiträge 172 Kommentatoren 394.0k Aufrufe 93 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • J Offline
    J Offline
    jensus11
    schrieb am zuletzt editiert von
    #106

    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 Antwort Letzte Antwort
    0
    • eric2905E Offline
      eric2905E Offline
      eric2905
      schrieb am zuletzt editiert von
      #107

      Klappt es denn jetzt wie gewünscht?

      Gruß,

      Eric

      Von unterwegs getippert

      Roses are red, violets are blue,

      if I listen to metal, my neighbours do too

      1 Antwort Letzte Antwort
      0
      • J Offline
        J Offline
        jensus11
        schrieb am zuletzt editiert von
        #108

        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 Antwort Letzte Antwort
        0
        • eric2905E Offline
          eric2905E Offline
          eric2905
          schrieb am zuletzt editiert von
          #109

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

          Gruß,

          Eric

          Von unterwegs getippert

          Roses are red, violets are blue,

          if I listen to metal, my neighbours do too

          1 Antwort Letzte Antwort
          0
          • R Offline
            R Offline
            Rolf_A
            schrieb am zuletzt editiert von
            #110

            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 Antwort Letzte Antwort
            0
            • J Offline
              J Offline
              jensus11
              schrieb am zuletzt editiert von
              #111

              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 Antwort Letzte Antwort
              0
              • lobomauL Offline
                lobomauL Offline
                lobomau
                schrieb am zuletzt editiert von
                #112

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

                Host: NUC8i3 mit Proxmox:

                • ioBroker CT Debian 13, npm 10.9.3, nodejs 22.20.0
                • Slave: Pi4
                1 Antwort Letzte Antwort
                0
                • P Offline
                  P Offline
                  pix
                  schrieb am zuletzt editiert von
                  #113

                  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

                  ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

                  1 Antwort Letzte Antwort
                  0
                  • N Offline
                    N Offline
                    nibblerrick
                    schrieb am zuletzt editiert von
                    #114

                    Ich habe mich mal an einer Anwesenheitsmeldung/Erkennung mit Blockly probiert und dafuer den last_seen state genommen. Allerdings nicht die Unixzeit daraus sondern nur als Trigger.

                    Ist das so in Ordnung oder ist der Ansatz aus irgendwelchen Gruenden sch…? Es scheint soweit zu funktionieren.
                    3803_chrome_2017-10-18_15-09-59.png

                    1 Antwort Letzte Antwort
                    0
                    • K Offline
                      K Offline
                      Koelner
                      schrieb am zuletzt editiert von
                      #115

                      Weil ich selber APs von Unifi einsetze interessiert mich der Adapter sehr. Erst einmal ein großes Lob für die Arbeit. Gibte es auch einen Screen wo man eine Visualisierung im VIS sehen kann?

                      Ich stelle mir eine Übersicht aller SSID inklusive der gerade angemeldeten Geräte vor. Wäre so etwas umsetzbar?

                      1 Antwort Letzte Antwort
                      0
                      • P Offline
                        P Offline
                        pix
                        schrieb am zuletzt editiert von
                        #116

                        Hallo,

                        @pix:

                        Hallo,

                        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 `

                        ich zitiere mich selbst und hole das Thema erneut hoch:

                        Habe Punkt 0200 jede Nacht diesen Fehler im Log:

                        `2017-10-30 02:00:03.774  - [31merror[39m: unifi.0 uncaught exception: Cannot read property 'map' of undefined
                        2017-10-30 02:00:03.782  - [31merror[39m: unifi.0 TypeError: Cannot read property 'map' of undefined
                        2017-10-30 02:00:03.855  - [31merror[39m: Caught by controller[0]: [TypeError: Cannot read property 'map' of undefined]
                        2017-10-30 02:00:03.856  - [31merror[39m: Caught by controller[1]: 2017-10-30 02:00:03.775  -  unifi.0 uncaught exception: Cannot read property 'map' of undefined
                        2017-10-30 02:00:03.856  - [31merror[39m: Caught by controller[2]: 2017-10-30 02:00:03.782  -  unifi.0 TypeError: Cannot read property 'map' of undefined
                        2017-10-30 02:00:03.856  - [31merror[39m: Caught by controller[2]:     at /Users/pix/Documents/iobroker/node_modules/iobroker.unifi/main.js:471:28
                        2017-10-30 02:00:03.856  - [31merror[39m: Caught by controller[2]:     at /Users/pix/Documents/iobroker/node_modules/node-unifi/unifi.js:1411:13
                        2017-10-30 02:00:03.856  - [31merror[39m: Caught by controller[2]:     at /Users/pix/Documents/iobroker/node_modules/node-unifi/node_modules/async/dist/async.js:906:16
                        2017-10-30 02:00:03.856  - [31merror[39m: Caught by controller[2]:     at next (/Users/pix/Documents/iobroker/node_modules/node-unifi/node_modules/async/dist/async.js:5198:18)
                        2017-10-30 02:00:03.856  - [31merror[39m: Caught by controller[2]:     at Request._callback (/Users/pix/Documents/iobroker/node_modules/node-unifi/unifi.js:1399:27)
                        2017-10-30 02:00:03.856  - [31merror[39m: Caught by controller[2]:     at Request.self.callback (/Users/pix/Documents/iobroker/node_modules/request/request.js:188:22)
                        2017-10-30 02:00:03.856  - [31merror[39m: Caught by controller[2]:     at emitTwo (events.js:87:13)
                        2017-10-30 02:00:03.856  - [31merror[39m: Caught by controller[2]:     at Request.emit (events.js:172:7)
                        2017-10-30 02:00:03.856  - [31merror[39m: Caught by controller[2]:     at Request. <anonymous>(/Users/pix/Documents/iobroker/node_modules/request/request.js:1171:10)
                        2017-10-30 02:00:03.857  - [31merror[39m: Caught by controller[2]:     at emitOne (events.js:77:13)
                        2017-10-30 02:00:03.857  - [31merror[39m: Caught by controller[2]:     at Request.emit (events.js:169:7)
                        2017-10-30 02:00:03.857  - [31merror[39m: host.MacMini.local instance system.adapter.unifi.0 terminated with code 0 (OK)[/code]</anonymous>`
                        Woher kann das kommen? Der Controller wird doch standardmäßig nicht neugestartet. Ebenso nicht die Hotspots, oder?
                        
                        Gruß
                        
                        Pix
                        

                        ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

                        1 Antwort Letzte Antwort
                        0
                        • A Offline
                          A Offline
                          andyb
                          schrieb am zuletzt editiert von
                          #117

                          Ich hab ähnliches Problem.

                          host.orangepiplus2e	2017-11-03 07:53:54.537	error	instance system.adapter.unifi.0 terminated with code 0 (OK)
                          Caught	2017-11-03 07:53:54.537	error	by controller[1]: at emitOne (events.js:101:20)
                          Caught	2017-11-03 07:53:54.536	error	by controller[1]: at TLSSocket.socketCloseListener (_http_client.js:286:9)
                          Caught	2017-11-03 07:53:54.536	error	by controller[1]: at ClientRequest.emit (events.js:188:7)
                          Caught	2017-11-03 07:53:54.536	error	by controller[1]: at emitOne (events.js:96:13)
                          Caught	2017-11-03 07:53:54.535	error	by controller[1]: at Request.onRequestError (/opt/iobroker/node_modules/request/request.js:884:8)
                          Caught	2017-11-03 07:53:54.535	error	by controller[1]: at Request.emit (events.js:188:7)
                          Caught	2017-11-03 07:53:54.535	error	by controller[1]: at emitOne (events.js:101:20)
                          Caught	2017-11-03 07:53:54.534	error	by controller[1]: at Request. (/opt/iobroker/node_modules/iobroker.unifi/node_modules/node-unifi/unifi.js:1099:11)
                          Caught	2017-11-03 07:53:54.534	error	by controller[1]: at next (/opt/iobroker/node_modules/iobroker.unifi/node_modules/node-unifi/node_modules/async/dist/async.js:5171:25)
                          Caught	2017-11-03 07:53:54.534	error	by controller[1]: at /opt/iobroker/node_modules/iobroker.unifi/node_modules/node-unifi/node_modules/async/dist/async.js:903:32
                          Caught	2017-11-03 07:53:54.533	error	by controller[1]: Error: Callback was already called.
                          Caught	2017-11-03 07:53:54.533	error	by controller[0]: at emitOne (events.js:96:13)
                          Caught	2017-11-03 07:53:54.533	error	by controller[0]: at TLSSocket.socketErrorListener (_http_client.js:310:9)
                          Caught	2017-11-03 07:53:54.532	error	by controller[0]: at ClientRequest.emit (events.js:188:7)
                          Caught	2017-11-03 07:53:54.532	error	by controller[0]: at emitOne (events.js:96:13)
                          Caught	2017-11-03 07:53:54.532	error	by controller[0]: at Request.onRequestError (/opt/iobroker/node_modules/request/request.js:884:8)
                          Caught	2017-11-03 07:53:54.531	error	by controller[0]: at Request.emit (events.js:188:7)
                          Caught	2017-11-03 07:53:54.531	error	by controller[0]: at emitOne (events.js:101:20)
                          Caught	2017-11-03 07:53:54.531	error	by controller[0]: at Request. (/opt/iobroker/node_modules/iobroker.unifi/node_modules/node-unifi/unifi.js:1099:11)
                          Caught	2017-11-03 07:53:54.530	error	by controller[0]: at next (/opt/iobroker/node_modules/iobroker.unifi/node_modules/node-unifi/node_modules/async/dist/async.js:5171:25)
                          Caught	2017-11-03 07:53:54.527	error	by controller[0]: at /opt/iobroker/node_modules/iobroker.unifi/node_modules/node-unifi/node_modules/async/dist/async.js:903:32
                          Caught	2017-11-03 07:53:54.512	error	by controller[0]: Error: Callback was already called.
                          
                          1 Antwort Letzte Antwort
                          0
                          • M Offline
                            M Offline
                            Markus76
                            schrieb am zuletzt editiert von
                            #118

                            Hi,

                            ich möchte auch gerne die An-Abwesenheits steuerung über den Unifi Adapter machen.

                            Installiert ist alles und die Daten kommen beim IOBroker an.

                            Nun möchte ich den last_seen Zeitstempel nutzen und wenn dieser upgedatet wird, dann bin ich anwesend und wenn nicht, dann abwesend.

                            Variable auf der CCU2 ist angelegt, wir aber leider nicht gefüllt

                            Ich bekomme das in Blockly irgendwie nicht hin…

                            Kann mir da bitte jemand unter die Arme greifen..
                            4009_bildschirmfoto_2017-11-10_um_13.21.16.png

                            1 Antwort Letzte Antwort
                            0
                            • lobomauL Offline
                              lobomauL Offline
                              lobomau
                              schrieb am zuletzt editiert von
                              #119

                              @Markus76:

                              Hi,

                              ich möchte auch gerne die An-Abwesenheits steuerung über den Unifi Adapter machen.

                              Installiert ist alles und die Daten kommen beim IOBroker an.

                              Nun möchte ich den last_seen Zeitstempel nutzen und wenn dieser upgedatet wird, dann bin ich anwesend und wenn nicht, dann abwesend.

                              Variable auf der CCU2 ist angelegt, wir aber leider nicht gefüllt

                              Ich bekomme das in Blockly irgendwie nicht hin…

                              Kann mir da bitte jemand unter die Arme greifen.. `
                              Folgendes Blockly Script läuft bei mir sehr gut mit Unifi für die Anwesenheit. Anstatt last_seen habe ich uptime_by_uap. Musst nur den client anpassen, hier wird alle 2 Minuten getriggert:
                              1146_unbenannt.jpg
                              Blockly Import:

                              ! <xml 1999/xmlns="<URL url=" http:/www.w3.org/xhtml"="">http://www.w3.org/1999/xhtml">
                              ! <block type="create" id="LcnDrYS;;Bc/!E+1GuwZ" x="-837" y="13"><field name="NAME">Variablen.ICH_UAP</field></block>
                              ! <block type="schedule" id="{@eI25!GvKfragf.dsL" x="-837" y="113"><field name="SCHEDULE">*/2 * * * *</field> ! <statement name="STATEMENT"><block type="controls_if" id="B+@.|[Ga9L/N^}7kRBv,"><mutation else="1"></mutation> ! <value name="IF0"><block type="logic_compare" id="CniS*}L/,0cF#N|nCepx"><field name="OP">EQ</field> ! <value name="A"><block type="logic_compare" id="T_r[9FxM%kil?c^0EZ:J"><field name="OP">LT</field> ! <value name="A"><block type="math_arithmetic" id="B%^IgKuzuM5{246Y!m,(" inline="false"><field name="OP">MINUS</field> ! <value name="A"><shadow type="math_number" id="G5:q#-9.sd2K90TfdAJ"><field name="NUM">1</field></shadow>
                              ! <block type="get_value" id="gC-urCBA/^%84(j=^i*"><field name="ATTR">lc</field> ! <field name="OID">unifi.0.default.clients.++MAC-Adresse._uptime_by_uap</field></block></value> ! <value name="B"><shadow type="math_number" id="zYRKTi[[k_,%fr.8Vy7M"><field name="NUM">1</field></shadow> ! <block type="math_arithmetic" id="]J~)QBR4cH/jiG*lz?UL"><field name="OP">MINUS</field> ! <value name="A"><shadow type="math_number" id="XX}xF%B/_0,1}l~SgW-"><field name="NUM">1</field></shadow>
                              ! <block type="time_get" id="-4r2Is(JCg_?:Ms_v+Y"><mutation format="false" language="false"></mutation> ! <field name="OPTION">object</field></block></value> ! <value name="B"><shadow type="math_number" id="rCdNrAEh^-FoWAxGU~G"><field name="NUM">120000</field></shadow></value></block></value></block></value>
                              ! <value name="B"><block type="math_number" id="DLCYi/V][Pj-{RpP]JE{"><field name="NUM">0</field></block></value></block></value>
                              ! <value name="B"><block type="logic_boolean" id="]F~s0eAM%+j//mq0GH"><field name="BOOL">TRUE</field></block></value></block></value>
                              ! <statement name="DO0"><block type="control" id="o;yBJXcmet8(TwXWJlMf"><mutation delay_input="false"></mutation>
                              ! <field name="OID">javascript.0.Variablen.ICH_UAP</field>
                              ! <field name="WITH_DELAY">FALSE</field>
                              ! <value name="VALUE"><block type="logic_boolean" id="JD=F=FX|FbaZIy,OPphL"><field name="BOOL">FALSE</field></block></value></block></statement>
                              ! <statement name="ELSE"><block type="control" id="GrHf7?!*t8yz{3P2n=w="><mutation delay_input="false"></mutation>
                              ! <field name="OID">javascript.0.Variablen.ICH_UAP</field>
                              ! <field name="WITH_DELAY">FALSE</field>
                              ! <value name="VALUE"><block type="logic_boolean" id="zTf,][x}2(Hs!fMBWgz:"><field name="BOOL">TRUE</field></block></value></block></statement></block></statement></block></xml>

                              Host: NUC8i3 mit Proxmox:

                              • ioBroker CT Debian 13, npm 10.9.3, nodejs 22.20.0
                              • Slave: Pi4
                              1 Antwort Letzte Antwort
                              0
                              • A Offline
                                A Offline
                                adarof
                                schrieb am zuletzt editiert von
                                #120

                                Hallo

                                Kann mir jemand sagen, ob ich in der Vielfallt der Parameter des Adapters auch einen finde, um das (Gast-)WLAN ein/aus zu schalten?

                                Ich möchte das Gast-WLAN einfach nur dann einschalten, wenn auch Gäste zu Besuch sind.

                                Die Checkbox existiert (siehe Anhang) - aber ich finde aktuell in den ioBroker-Objekten die einzelnen Netzkwerke garnicht abgebildet?!

                                Gruss -
                                2636_capture.png

                                1 Antwort Letzte Antwort
                                0
                                • K Offline
                                  K Offline
                                  Kiwifranky
                                  schrieb am zuletzt editiert von
                                  #121

                                  Hi,

                                  hab heute mal den Unifi Adapter ausprobieren wollen. Leider schmeisst er beim Start direkt "api.err.Invalid".

                                  Der Unifi Controller ist Version 5.6.29.

                                  Irgendwelche Tipps?

                                  Grüsse

                                  Franky

                                  1 Antwort Letzte Antwort
                                  0
                                  • A Offline
                                    A Offline
                                    adarof
                                    schrieb am zuletzt editiert von
                                    #122

                                    Hallo

                                    Ich habe hier einen Workround entwickelt, der eine offizielle API von dem Unify Server nutzt:

                                    #!/bin/bash
                                    export username= <username>export password= <password>export baseurl=https://localhost:8443
                                    export site=default
                                    
                                    . unifi_sh_api
                                    unifi_api /upd/wlanconf/ <networkid>'{"enabled": true}'</networkid></password></username> 
                                    

                                    und zum ausschalten:````
                                    unifi_api /upd/wlanconf/ <networkid>'{"enabled": false}'</networkid>

                                    
                                    Vielleicht hilfts jemandem noch :)
                                    1 Antwort Letzte Antwort
                                    0
                                    • C Offline
                                      C Offline
                                      Chris71
                                      schrieb am zuletzt editiert von
                                      #123

                                      Hallo,

                                      habe vor kurzen die IP-adressen in meinem Netzwerk geändert. Danach etwas Probleme mit dem IObroker der auf einem Raspi rennt.

                                      Mittlerweile läuft bis auf den Unifi aber wieder alles.

                                      Folgende Fehlermeldung steht im LOG.

                                      Gruß

                                      Chris
                                      1623_screenshot__24_.png

                                      1 Antwort Letzte Antwort
                                      0
                                      • C Offline
                                        C Offline
                                        Chris71
                                        schrieb am zuletzt editiert von
                                        #124

                                        PROBLEM GELÖST!

                                        Nach Neustart der Synology DS läuft es jetzt. Da ivh mit anderen Geräten Zugriff auf den Controller hatte wundert mich das jetzt schon ein wenig.

                                        Aber egal nun läufts.

                                        1 Antwort Letzte Antwort
                                        0
                                        • I Offline
                                          I Offline
                                          IanS
                                          schrieb am zuletzt editiert von
                                          #125

                                          Hallo Jens und alle Anderen,

                                          ich bin die Tage bei meiner Suche nach einer Anwesenheitserkennung auf diesen Adapter gestoßen.

                                          Hab Versucht das ganze ans laufen zu bringen, leider ist es aber für mich iwie noch Rakentenwissenschaft….

                                          Der Adapter laüft ohne Fehler im Log und in den SV auf der CCU wir auch was geändert, allerdings nicht alles.

                                          Ich würde mich über einen Tipp oder Schupps in die richtige Richtung sehr freuen.

                                          Ein Handy und ein Gast ist angemeldet und unter .list und .string .Nutzer passt es auch.

                                          Nur wird nicht die Anwesenheit gesetzt, Weder vom User noch Gesamtanwesenheit.

                                          Einzig beim Gast klappt es....

                                          Hier mal das Script, Bild der SVs hänge ich mal unten an.

                                          Würde mich echt freuen wenn jemand helfen könnte.

                                          Gruß

                                          FloH

                                          `/*
                                           * unifi_pdetect v0.1 (29.09.2017)
                                           * 
                                           * Copyright (c) 2017 Jens Maus <mail@jens-maus.de>
                                           *
                                           */
                                          
                                          /* define actual user devices here */
                                          var user_devices = [];
                                          user_devices['C8:3C:85:30:61:59'] = 'FloH';
                                          user_devices['9C:5C:F9:53:08:1F'] = 'Jessii';
                                          
                                          /* define here devices that you 'know', thus should
                                           * be ignored
                                           */
                                          var known_devices=[ "34:c0:59:10:f3:b1",
                                                              "84:20:96:22:c5:3b",
                                                              "7e:49:79:58:cb:55",
                                                              "08:78:08:cd:75:f4",
                                                              "70:ee:50:22:d3:c4",];
                                          
                                          /* Enum list of all combinations of users+guest */
                                          var enum_list = [];
                                          enum_list[0] = "Keiner da";
                                          enum_list[1] = "FloH";
                                          enum_list[2] = "Jessii";
                                          enum_list[3] = "FloH,Jessii";
                                          enum_list[4] = "Gast";
                                          enum_list[5] = "FloH,Gast";
                                          enum_list[6] = "Jessii,Gast";
                                          enum_list[7] = "FloH,Jessii,Gast";
                                          
                                          /* Path to system variables on CCU */
                                          var sysvar_prefix= "hm-rega.0.8964"/*Anwesenheit_Mobile*/;
                                          var sysvar_user  = "hm-rega.0.8965"/*Anwesenheit.Nutzer*/;
                                          var sysvar_guest = "hm-rega.0.8968"/*Anwesenheit.Gast*/;
                                          var sysvar_str   = "hm-rega.0.8967"/*Anwesenheit.string*/;
                                          var sysvar_list  = "hm-rega.0.8966"/*Anwesenheit.list*/;
                                          
                                          /* Unifi controller settings */
                                          var unifi_ip   = "192.168.XXX.XX";
                                          var unifi_port = 8443;
                                          var unifi_user = "XXXXXXXX";
                                          var unifi_pw   = "XXXXXXXX";
                                          
                                          /***********************************/
                                          /* Don't modify anything from here */
                                          function check_presence() {
                                          
                                              var unifi = require('node-unifi');
                                              var controller = new unifi.Controller(unifi_ip, unifi_port);
                                          
                                              var guest_found = false;
                                              var users_found = [];
                                          
                                              var tmp = known_devices.join('~').toUpperCase();
                                              known_devices = tmp.split('~');
                                          
                                              // LOGIN
                                              controller.login(unifi_user, unifi_pw, function(err) {
                                          
                                                  if(err) {
                                                      console.log('ERROR: ' + err);
                                                      return;
                                                  }
                                          
                                                  // GET SITE STATS
                                                  controller.getSitesStats(function(err, sites) {
                                                      // GET CLIENT DEVICES
                                                      controller.getClientDevices(sites[0].name, function(err, client_data) {
                                                          //log('curtime: ' + Math.floor((new Date).getTime()/1000));
                                                          for (var i=0; i < client_data[0].length; i++) {
                                                              if(typeof(client_data[0][i].ip) !== 'undefined' && client_data[0][i].ip) {
                                                                  if(typeof(client_data[0][i]._last_seen_by_uap) !== 'undefined' && client_data[0][i]._last_seen_by_uap) {
                                                                      //log(client_data[0][i].mac + " " + client_data[0][i]._last_seen_by_uap + " " + client_data[0][i].idletime + " " + client_data[0][i].ip + " " + client_data[0][i].hostname + " " + client_data[0][i].is_guest);
                                          
                                                                      var user_device = user_devices[client_data[0][i].mac.toUpperCase()];
                                                                      if(typeof(user_device) !== 'undefined') {
                                                                          //log('user device[' + user_device + ']: ' + client_data[0][i].mac.toUpperCase() + ' ' + client_data[0][i].hostname + ' - idle: ' + client_data[0][i].idletime);
                                                                          users_found.push(user_device);
                                                                      }
                                                                      else if(known_devices.indexOf(client_data[0][i].mac.toUpperCase()) === -1)
                                                                      {
                                                                          //log('guest device found: ' + client_data[0][i].mac.toUpperCase() + ': ' + client_data[0][i].hostname + ' - idle: ' + client_data[0][i].idletime);
                                                                          guest_found = true;
                                                                      }
                                                                  }
                                                              }
                                                          }
                                          
                                                          controller.logout();
                                          
                                                          if(getState(sysvar_user).val !== (users_found.length > 0)) {
                                                              setState(sysvar_user, (users_found.length > 0));
                                                          }
                                          
                                                          var presence_string = "";
                                                          var num_presence = 0;
                                                          for (var j in user_devices) {
                                                              var user_present = users_found.indexOf(user_devices[j]) !== -1;
                                          
                                                              if(user_present === true) {
                                                                  if(num_presence > 0) 
                                                                      presence_string += ",";
                                                                  presence_string += user_devices[j];
                                                                  num_presence++;
                                                              }
                                          
                                                              var id = getIdByName(sysvar_prefix + '.' + user_devices[j]);
                                                              if(typeof(id) !== 'undefined' && id) {
                                                                  if(getState(id).val !== user_present) {
                                                                      setState(id, user_present);
                                                                      log("User '" + user_devices[j] + "' changed present state: " + user_present);
                                                                  }
                                                              }
                                                          }
                                          
                                                          // find out if guest mode is already on or off and then we switch it
                                                          // accordingly
                                                          if(getState(sysvar_guest).val !== guest_found) {
                                                              setState(sysvar_guest, guest_found);
                                                              log('Guest mode set to ' + guest_found);
                                                          }
                                                          if(guest_found === true) {
                                                              if(num_presence > 0)
                                                                  presence_string += ",";
                                                              presence_string += "Gast";
                                                          }
                                          
                                                          if(getState(sysvar_str).val !== presence_string) {
                                                              setState(sysvar_str, presence_string);
                                                          }
                                          
                                                          var enum_id = enum_list.indexOf(presence_string);
                                                          if(enum_id === -1)
                                                              enum_id = 0;
                                                          if(getState(sysvar_list).val !== enum_id) {
                                                              setState(sysvar_list, enum_id);
                                                          }
                                                      });
                                                  });
                                              });
                                          }
                                          
                                          schedule("*/15 * * * * *", function () { // Execute every 15 seconds
                                              check_presence();
                                          });</mail@jens-maus.de>`
                                            [2820_screenshot_2018-03-01_19.58.42.png](/assets/uploads/files/2820_screenshot_2018-03-01_19.58.42.png)  [/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
                                          
                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

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

                                          730

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe