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.
    • F
      Flauschi last edited by

      Du könntest Jens sein addon auf der CCU installieren und das damit machen?

      hm_pdetect glaub heisst es.

      Das läuft bei mir mit meinen Unifi Geräten absolut perfekt und rasch.

      1 Reply Last reply Reply Quote 0
      • S
        Superdad last edited by

        @Flauschi

        Wie hast du das eingestellt in hm_pdetect, dass es dann auf die Unifi-Geräte zugreift?

        1 Reply Last reply Reply Quote 0
        • F
          Flauschi last edited by

          es funktioniert einfach.

          Das addon schaut in der Fritzbox nach, ob diese Geräte im Netzwerk sind.

          Der Unifi liefert die Information korrekt an die Fritzbox.

          Sent from my iPhone using Tapatalk

          1 Reply Last reply Reply Quote 0
          • S
            Superdad last edited by

            Aha, man braucht also noch die Fritzbox dazu.

            Die habe ich abgeschafft.

            Dann geht es darüber wohl nicht?

            1 Reply Last reply Reply Quote 0
            • I
              IanS last edited by

              @Flauschi

              Danke die Variante kenne ich.

              Würde es dennoch lieber mit dieser Lösung machen.

              Ich möchte ja dazu was lernen und wissen was ich falsch gemacht habe. [emoji16]

              Gruß FloH

              1 Reply Last reply Reply Quote 0
              • D
                davidsieg82 last edited by

                Hallo Jens,

                ich hatte gerade versucht deinen Adapter zu installieren.

                Bei der Configseite kommt der Fehler: "File index.html not found"

                Hast du da eine Lösung?

                Gruß

                David
                4690_1.png

                1 Reply Last reply Reply Quote 0
                • I
                  IanS last edited by

                  Hallo,

                  gibt es einen Grund das fast alle Beiträge von Jens hier verschwunden sind??

                  Gruß FloH

                  EDIT: Das alles was mit dem Script zur Anwesenheit verschwunden ist??

                  Sogar in meinem Post ist das Script verschwunden….. :shock: :shock: :shock:

                  EDIT 2: Sorry, hab das mit dem Serverproblem erst jetzt gelesen :oops: :oops: :oops:

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

                    @Kiwifranky:

                    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 `

                    Ich habe das gleiche Problem. Gibt es dafür schon eine Lösung?

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

                      @stephanstricker:

                      @Kiwifranky:

                      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 `

                      Ich habe das gleiche Problem. Gibt es dafür schon eine Lösung? `

                      Habs gefunden, Benutzername war falsch

                      1 Reply Last reply Reply Quote 0
                      • W
                        Wuehler last edited by

                        Hallo,

                        ich bin zwar auf Basis fhem unterwegs, denke aber, dass auch iobroker dieselbe Anforderung an unifi hat, wie ich. Wenn ich es richtig sehe pollt iobroker.unifi ebenfalls regelmäßig, ob zB ein User connected ist. Das könnte man mit den neuen notification-emails des Unifi-Controllers auf einen push-Mechanismus umstellen, schön wäre das Ganze aber nicht wirklich.

                        Unter

                        https://community.ubnt.com/t5/UniFi-Fea … -p/2276503

                        habe ich daher einen FeatureRequest gestellt, um nicht nur mails zu bekommen sondern eine Callback-URL angeben zu können, die mit JSON-Daten aufgerufen werden soll.

                        Wäre cool, wenn ihr das mit unterstützt und ein paar "Daumen hoch" oder Kommentare hinterlasst.

                        Danke,

                        Wuehler

                        1 Reply Last reply Reply Quote 0
                        • C
                          Chris71 last edited by

                          @jens.maus:

                          @jensus11:

                          so wie schon im Homematic Forum gefragt, wie machst du jetzt deine Anwesenheitssteuerung?

                          Erkläre das doch mal bitte. `

                          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:

                          `/*
                           * 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['AA:BB:CC:DD:EE:FF'] = 'John';
                          user_devices['AA:BB:CC:DD:EE:FF'] = 'Jane';
                          
                          /* 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] = "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.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*/;
                          
                          /* Unifi controller settings */
                          var unifi_ip   = "192.168.X.X";
                          var unifi_port = 8443;
                          var unifi_user = "admin";
                          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>` 
                          
                          Ich hoffe das sollte selbsterklärend sein. Wie gesagt, momentan nur ein Anfang und ohne Beteiligung des unifi iobroker Adapters von mir, aber es sollte äquivalent zu hm_pdetect gehen. Voraussetzung ist wie gesagt das man das 'node_unifi' nodejs einbindet (js-controller einstellungen) und das man natürlich die gleichen Systemvariablen verwendet wie mit hm_pdetect. Ggf. werde ich das ganze noch etwas erweitern/verbessern und ggf. sogar in den unifi iobroker Adapter direkt integrieren damit man hier kein extra Skript machen muss sondern der Adapter das direkt anbietet. Aber dafür fehlt mir momentan die Zeit.
                          
                          Viel Spass damit. Und ich freue mich wie immer über Feedback.
                          
                          Hallo,
                          
                          habe vorher auch eine Anwesenheitsteuerung über Fritzbox mit dem Zusatzprogramm HM-Pdetect realisiert.
                          
                          Das funktionierte super einfach. Da ich jetzt auch auch Unifi baue möchte versuchen die Anwesenheit mit dem Skript von Jens Maus zu realisieren.
                          
                          Mir fehlen da aber Grundkenntnisse was Skriptprogrammierung angeht.
                          
                          Wie bekomme ich die Einstellungen im Js-Controller getätig? Muss ich da über Putty in die Datei? Momentan läuft mein IO-Broker auf einem Raspi.
                          
                          Controller für die Unifi-Geräte läuft auf einer Synology.
                          
                          Bevor ich jetzt wieder irgendetwas mache und mein IO-Broker schmiert mir ab, kann mir da vieleicht jemand helfen?
                          
                          Oder ist in absehbarer Zeit evtl. ein fertiger Adapter in Arbeit der mit der Anwesenheitsimulation arbeitet kann?
                          
                          Gruß
                          
                          Christian[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
                          ``` ` 
                          1 Reply Last reply Reply Quote 0
                          • B
                            berndroid last edited by

                            Hallo zusammen,

                            ich würde gerne in meiner Visualisierung den aktuellen Durchsatz der auch im Controller angezeigt wird darstellen. 6488_bildschirmfoto_2018-04-07_um_13.59.55.png

                            Dazu würde ich gerne die entsprechenden Datenpunkte in meiner Influx Datenbank speichern. Leider finde ich außer der aktuellen Latenz (default.health.http://www.latency) die Datenpunkte für aktuell "Gesendet" und "Empfangen" nicht. Ich dachte zuerst, die Punkte default.health.www.xput_down und default.health.www.xput_up wären die richtigen, doch leider zeigen diese nicht den aktuellen Durchsatz, sondern nur das Ergebnis des letzten Speedtests an. default.health.www.rx_bytes-r und default.health.www.tx_bytes-r ändern sich in etwa im gleichen Intervall, doch leider stimmen die Werte überhaupt nicht mit den im Dashboard angezeigten überein (2032871 bei 15,2 MBit/s).

                            Hat von euch jemand eine Idee, woher ich die Daten bekommen kann?

                            EDIT weil selbst gelöst:

                            Die Datenpunkt sind die genannten default.health.www.rx_bytes-r und default.health.www.tx_bytes-r, deren Werte Bytes darstellen. Um in Mbit/s umzurechnen, einfach durch 125000 teilen und schon passt es.

                            Manchmal hilft selbst nachDENKEN 😉

                            1 Reply Last reply Reply Quote 0
                            • G
                              Guybrushix last edited by

                              Hallo zusammen,

                              ich versuche auch das script zum laufen zu bekommen leider funktioniert weder der io.broker

                              host.ioBroker	2018-04-08 13:38:14.410	info	Restart adapter system.adapter.unifi.0 because enabled
                              host.ioBroker	2018-04-08 13:38:14.409	error	instance system.adapter.unifi.0 terminated with code 0 (OK)
                              host.ioBroker	2018-04-08 13:38:14.409	error	Caught by controller[0]: at traverseArray (/opt/iobroker/node_modules/iobroker.unifi/main.js:165:7)
                              host.ioBroker	2018-04-08 13:38:14.409	error	Caught by controller[0]: at Array.every (native)
                              host.ioBroker	2018-04-08 13:38:14.409	error	Caught by controller[0]: at /opt/iobroker/node_modules/iobroker.unifi/main.js:168:7
                              host.ioBroker	2018-04-08 13:38:14.409	error	Caught by controller[0]: at traverse (/opt/iobroker/node_modules/iobroker.unifi/main.js:155:5)
                              host.ioBroker	2018-04-08 13:38:14.408	error	Caught by controller[0]: at traverseObject (/opt/iobroker/node_modules/iobroker.unifi/main.js:178:27)
                              host.ioBroker	2018-04-08 13:38:14.408	error	Caught by controller[0]: at /opt/iobroker/node_modules/iobroker.unifi/main.js:288:13
                              host.ioBroker	2018-04-08 13:38:14.408	error	Caught by controller[0]: at traverse (/opt/iobroker/node_modules/iobroker.unifi/main.js:155:5)
                              host.ioBroker	2018-04-08 13:38:14.408	error	Caught by controller[0]: at traverseObject (/opt/iobroker/node_modules/iobroker.unifi/main.js:184:7)
                              host.ioBroker	2018-04-08 13:38:14.408	error	Caught by controller[0]: at traverse (/opt/iobroker/node_modules/iobroker.unifi/main.js:156:32)
                              host.ioBroker	2018-04-08 13:38:14.407	error	Caught by controller[0]: at /opt/iobroker/node_modules/iobroker.unifi/main.js:292:57
                              host.ioBroker	2018-04-08 13:38:14.406	error	Caught by controller[0]: TypeError: Cannot read property 'subsystem' of null
                              unifi.0	2018-04-08 13:38:14.309	info	cleaned everything up...
                              unifi.0	2018-04-08 13:38:14.309	error	TypeError: Cannot read property 'subsystem' of null at /opt/iobroker/node_modules/iobroker.unifi/main.js:292:57 at traverse (/opt/iobroker/node_modules/iobroker.unifi/main.js:156:32) at tr
                              unifi.0	2018-04-08 13:38:14.309	error	uncaught exception: Cannot read property 'subsystem' of null
                              unifi.0	2018-04-08 13:38:14.307	info	getSitesStats: default
                              unifi.0	2018-04-08 13:38:11.415	info	controller = 192.168.1.2:8443
                              unifi.0	2018-04-08 13:38:11.415	info	update_interval = 60
                              unifi.0	2018-04-08 13:38:11.413	info	Starting UniFi-Controller query
                              unifi.0	2018-04-08 13:38:11.386	info	starting. Version 0.3.1 in /opt/iobroker/node_modules/iobroker.unifi, node: v6.14.1
                              host.ioBroker	2018-04-08 13:38:09.997	info	instance system.adapter.unifi.0 started with pid 24216
                              host.ioBroker	2018-04-08 13:38:09.944	info	object change system.adapter.unifi.0
                              

                              noch findet das script irgendjemanden im netz läuft aber fehlerfrei durch.

                              die Variablen hab ich natürlich an meine angepasst (Aus Objekte)

                              `/*
                               * 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['80:B0:3D:E3:B6:11'] = 'Debbie';
                              user_devices['6C:8D:C1:51:F3:33'] = 'Lorena';
                              user_devices['CC:20:E8:B5:8A:53'] = 'Gina';
                              user_devices['b0:19:c6:a6:91:28'] = 'Micha';
                              user_devices['B8:53:AC:1C:E6:B2'] = 'Silvia';
                              
                              /* 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] = "Niemand";
                              enum_list[1] = "Debbie";
                              enum_list[2] = "Lorena";
                              enum_list[3] = "Debbie,Lorena";
                              enum_list[4] = "Gina";
                              enum_list[5] = "Debbie,Gina";
                              enum_list[6] = "Debbie,Lorena,Gina";
                              enum_list[7] = "Lorena,Gina";
                              enum_list[8] = "Micha";
                              enum_list[9] = "Debbie,Micha";
                              enum_list[11] = "Debbie,Lorena,Micha";
                              enum_list[12] = "Debbie,Lorena,Gina,Micha";
                              enum_list[13] = "Lorena,Gina,Micha";
                              enum_list[14] = "Debbie,Gina,Micha";
                              enum_list[15] = "Gina,Micha";
                              enum_list[16] = "Lorena,Micha";
                              enum_list[17] = "Silvia";
                              enum_list[18] = "Debbie,Silvia";
                              enum_list[19] = "Lorena,Silvia";
                              enum_list[20] = "Gina,Silvia";
                              enum_list[21] = "Micha,Silvia";
                              enum_list[22] = "Debbie,Lorena,Silvia";
                              enum_list[23] = "Debbie,Gina,Silvia";
                              enum_list[24] = "Debbie,Micha,Silvia";
                              enum_list[25] = "Debbie,Lorena,Gina,Silvia";
                              enum_list[26] = "Debbie,Lorena,Micha,Silvia";
                              enum_list[27] = "Debbie,Gina,Micha,Silvia";
                              enum_list[28] = "Lorena,Gina,Micha,Silvia";
                              enum_list[29] = "Gast";
                              enum_list[30] = "Debbie,Gast";
                              enum_list[31] = "Silvia,Gast";
                              enum_list[32] = "Lorena,Gast";
                              enum_list[33] = "Gina,Gast";
                              enum_list[34] = "Micha,Gast";
                              enum_list[35] = "Debbie,Lorena,Gast";
                              enum_list[36] = "Debbie,Gina,Gast";
                              enum_list[37] = "Debbie,Micha,Gast";
                              enum_list[38] = "Debbie,Silvia,Gast";
                              enum_list[39] = "Debbie,Gina,Gast";
                              enum_list[40] = "Debbie,Lorena,Micha,Gast";
                              enum_list[41] = "Debbie,Lorena,Silvia,Gast";
                              enum_list[42] = "Debbie,Lorena,Gina,Gast";
                              enum_list[43] = "Debbie,Lorena,Micha,Silvia,Gast";
                              enum_list[44] = "Debbie,Lorena,Gina,Silvia,Gast";
                              enum_list[45] = "Debbie,Lorena,Gina,Micha,Gast";
                              enum_list[46] = "Debbie,Lorena,Gina,Micha,Silvia,Gast";
                              
                              /* Path to system variables on CCU */
                              var sysvar_prefix= "Anwesenheit";
                              var sysvar_user  = "hm-rega.0.4659"/*Anwesenheit.Lorena*/;
                              var sysvar_user  = "hm-rega.0.4660"/*Anwesenheit.Debbie*/;
                              var sysvar_user  = "hm-rega.0.4661"/*Anwesenheit.Micha*/;
                              var sysvar_user  = "hm-rega.0.4662"/*Anwesenheit.Silvia*/;
                              var sysvar_user  = "hm-rega.0.4663"/*Anwesenheit.Gina*/;
                              var sysvar_user  = "hm-rega.0.4664"/*Anwesenheit.Nutzer*/;
                              var sysvar_guest = "hm-rega.0.14516"/*Anwesenheit.Gast*/;
                              var sysvar_str   = "hm-rega.0.4666"/*Anwesenheit.string*/;
                              
                              /* Unifi controller settings */
                              var unifi_ip   = "192.168.XXX.XXX";
                              var unifi_port = 8443;
                              var unifi_user = "XXXXXX";
                              var unifi_pw   = "XXXXXX";
                              
                              /***********************************/
                              /* 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>` 
                              
                              Die Variable List hab ich erst mal rausgenommen
                              
                              Kann es sein das der Cloud Controller nicht unterstützt wird ? Version 5.7.20
                              
                              Oder muss ich die APi irgendwo einschalten ? ich kann nichts finden.
                              
                              Vielen Dank im Voraus[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
                              
                              1 Reply Last reply Reply Quote 0
                              • T
                                TorbenNW last edited by

                                @eric2905:

                                Wenn ich am Sonntag aus dem Urlaub zurück bin, schaue ich mir die Systemlast meines Controllers mal an. `
                                Hallo Eric, kannst du hierzu noch mal etwas sagen? Bevor ich nun den Controller auf dem Pi installiere und mir alles zerschieße.

                                Danke dir!

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

                                  @TorbenNW

                                  Ich verstehe zwar nicht genau was du meinst, aber ich denke ich kann dir trotzdem helfen.

                                  Unifi Controler auf Raspi 3 - funktioniert

                                  Unifi Controler UND ioBroker auf Raspi 3 - Funktioniert, aber System voll ausgelastet und alles sehr sehr langsam

                                  Von daher würde ich empfehlen den Controler entweder auf einem separaten Raspi oder dem PC laufen lassen.

                                  Zur Überwachung über ioBroker brauchst du den Controler nicht und im laufenden Betrieb wird der auch nicht gebraucht.

                                  Wenn du also nicht dauernd am WLan was verändern willst reicht eigentlich die Installation auf dem PC.

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

                                    Moin,

                                    @TorbenNW:

                                    Hallo Eric, kannst du hierzu noch mal etwas sagen? Bevor ich nun den Controller auf dem Pi installiere und mir alles zerschieße.

                                    Danke dir! `
                                    auf einem eigenen Raspi müsste es gehen.

                                    Die CPU ist bei mir kein Problem (3-5% der virtuellen CPU), aber RAM ist nicht ohne (2 GB von den zugewiesenen 4 GB in Benutzung) - wobei das auch ein normales Verhalten sein kann (genug d! Also nehme ich mal).

                                    Gruß,

                                    Eric

                                    Von unterwegs getippert

                                    1 Reply Last reply Reply Quote 0
                                    • C
                                      ceerix last edited by

                                      Bei mir läuft der Controller auch in einer virtuellen Maschine mit Ubuntu Server und 500 MB RAM. Oberfläche flüssig und zur Abfrage der Anwesenheit völlig ausreichend.

                                      Lief zuvor auch auf einem Pi 3 parallel zu meinem Magic Mirror und CCU Historian ohne Probleme.

                                      Gruß Alex

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

                                        Hallo,

                                        mein unifi-Controller läuft auf einem MacMini unter OS X 24/7 und braucht etwas über 100MB. Der ioBroker Adapter knapp 40MB.
                                        261_unifi.png

                                        Gruß

                                        Pix

                                        1 Reply Last reply Reply Quote 0
                                        • M
                                          Mentalkiter last edited by

                                          Hallo Jens

                                          gerade Adapter installiert. Läuft soweit. Muss nur mal die Möglichenkeiten ausloten. Aber feine Sache

                                          1 Reply Last reply Reply Quote 0
                                          • D
                                            defrostx last edited by

                                            im Uinifi Controller gibt es einen neuen Nutzer der Read only hat. (Als Admin gehts auch nicht)

                                            Der Adapter meckert zwar nicht, aber es werden keine Objekte angelegt. In den Logs sieht es dann so aus.

                                            unifi.0	2018-05-02 14:11:15.279	info	ERROR: Error: getaddrinfo ENOTFOUND http http:443
                                            unifi.0	2018-05-02 14:11:14.319	info	controller = http://192.168.X.X/:8443
                                            unifi.0	2018-05-02 14:11:14.319	info	update_interval = 60
                                            unifi.0	2018-05-02 14:11:14.317	info	Starting UniFi-Controller query
                                            unifi.0	2018-05-02 14:11:14.296	info	starting. Version 0.3.1 in /opt/iobroker/node_modules/iobroker.unifi, node: v6.14.1
                                            

                                            Hat jemand eine Idee?

                                            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

                                            617
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            unifi
                                            170
                                            991
                                            282537
                                            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