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.2k

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

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

Adapter: ioBroker.unifi

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
unifi
1.0k Beiträge 172 Kommentatoren 393.5k 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.
  • 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
              • F Offline
                F Offline
                Flauschi
                schrieb am zuletzt editiert von
                #126

                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 Antwort Letzte Antwort
                0
                • S Offline
                  S Offline
                  Superdad
                  schrieb am zuletzt editiert von
                  #127

                  @Flauschi

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

                  CCU3

                  iOBroker auf IntelNUC Proxmox

                  1 Antwort Letzte Antwort
                  0
                  • F Offline
                    F Offline
                    Flauschi
                    schrieb am zuletzt editiert von
                    #128

                    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 Antwort Letzte Antwort
                    0
                    • S Offline
                      S Offline
                      Superdad
                      schrieb am zuletzt editiert von
                      #129

                      Aha, man braucht also noch die Fritzbox dazu.

                      Die habe ich abgeschafft.

                      Dann geht es darüber wohl nicht?

                      CCU3

                      iOBroker auf IntelNUC Proxmox

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

                        @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 Antwort Letzte Antwort
                        0
                        • D Offline
                          D Offline
                          davidsieg82
                          schrieb am zuletzt editiert von
                          #131

                          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 Antwort Letzte Antwort
                          0
                          • I Offline
                            I Offline
                            IanS
                            schrieb am zuletzt editiert von
                            #132

                            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 Antwort Letzte Antwort
                            0
                            • stephan1827S Offline
                              stephan1827S Offline
                              stephan1827
                              schrieb am zuletzt editiert von
                              #133

                              @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 Antwort Letzte Antwort
                              0
                              • stephan1827S Offline
                                stephan1827S Offline
                                stephan1827
                                schrieb am zuletzt editiert von
                                #134

                                @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 Antwort Letzte Antwort
                                0
                                • W Offline
                                  W Offline
                                  Wuehler
                                  schrieb am zuletzt editiert von
                                  #135

                                  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 Antwort Letzte Antwort
                                  0
                                  • C Offline
                                    C Offline
                                    Chris71
                                    schrieb am zuletzt editiert von
                                    #136

                                    @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 Antwort Letzte Antwort
                                    0
                                    • B Offline
                                      B Offline
                                      berndroid
                                      schrieb am zuletzt editiert von
                                      #137

                                      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 Antwort Letzte Antwort
                                      0
                                      • G Offline
                                        G Offline
                                        Guybrushix
                                        schrieb am zuletzt editiert von
                                        #138

                                        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 Antwort Letzte Antwort
                                        0
                                        • T Offline
                                          T Offline
                                          TorbenNW
                                          schrieb am zuletzt editiert von
                                          #139

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

                                          520

                                          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