Anwesenheitserkennung mit UniFi AP's

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • fifman
    Dumb Home'r
    • 07.10.2015
    • 25

    #91
    Hallo Leute,

    Ich würde mich auch für die Anwesenheitserkennung Interessieren.

    Ich habe jedoch bereits den unifi cloud key.

    Besteht die Möglichkeit den cloud key für die Anwesenheitserkennung zu nutzrn.

    Grüße

    Gesendet von meinem SM-G930F mit Tapatalk

    Kommentar

    • Gast

      #92
      Hallo

      Der Cloud Key mit dem Controller ist ok, aber du brauchst für diese Version noch einen Webserver wo das php Skript laufen kann.. (NAS, Raspi, .... )

      Kommentar

      • fifman
        Dumb Home'r
        • 07.10.2015
        • 25

        #93
        Hallo,

        bei mir läuft eine Raspi mit Loxberry und eine mit einem Kodi.

        Ich wollte den Unifi cloud key weiter nutzen.
        Ist das möglich ?

        Kommentar

        • Gast

          #94
          Klar kannst du den nutzen.

          Einfach den Pi als Webserver einrichten und im Skript als Controller IP die IP vom Cloud Key eingeben (inkl. Benutzer und Passwort)

          Denke Anleitungen um den Pi einzurichten findest du bei Tante Google genug...

          Viel Erfolg!
          Gruss

          Kommentar

          • fifman
            Dumb Home'r
            • 07.10.2015
            • 25

            #95
            super danke !!

            werde es WE testen

            LG

            Kommentar

            • Gast

              #96
              Ich habe diese Konfiguratio am laufen. Also auf einer Synology. Leider scheint die Abfrage mal länger zu dauern dann kommt es zum Timeout.
              Hat jemand das Problem gelöst, oder weiss, wo man den Timeout in der Synology höher stellen kann?

              Danke für eure Hilfe

              Kommentar

              • Gast

                #97
                Timeout Zeit musst du nicht am Syno NAS einstellen sondern in der loxone beim http eingang..
                die hohe antwortzeit kommt von den zu vielen events
                im file.. evtl. Im contoller einstellen das events nur 2 tage gespeichert werden oderso.. evtl. Hilfts..

                Kommentar

                • hodojazi
                  Extension Master
                  • 03.10.2016
                  • 102

                  #98
                  Ich habe mir mal den Artikel zur Anwesenheitserkennung angesehen. Läuft das bei jemandem, wie im Artikel beschrieben? Mir kommen da zweierlei Zweifel:
                  1. ?action=list_events gibt ja das komplette log durch. Der älteste Eintrag ist bei mir von vor exakt 2 Wochen. Die JSON ist damit 600KB groß. Den Miniserver das regelmäßig abholen und parsen zu lassen finde ich vor den Ressourcen her schon etwas sportlich.
                  2. Bei mir sehen die Einträge darin bspw. wie folgt aus:
                    Code:
                    	"msg": "User[4c:49:....] disconnected ....
                    	...
                    	"msg": "User[4c:49:....] has connected to ...
                    Das nachfolgende ASCII-Zeichen nach der MAC-Adresse ist somit immer ein Leerzeichen. Daraus kann man doch nicht schließen ob connected oder disconnected wurde, oder?

                  Kommentar

                  • Gast

                    #99
                    Nutze inzwischen die anbindung mittels Node-RED, das ganze hier hat aber immer funktioniert...
                    Bei mir waren die Einträge mehrere Monate... Timeout sollte aber möglichst hoch gewählt werden, es wird ja immer mehr. (Problematik wurde hier glaube ich such schon diskutiert...)

                    Bin der Meinung, dass irgendwo in der Anleitung steht, das du dort noch den leerschlag beim „suchbegriff“ einbauen musst...

                    Kommentar

                    • hodojazi
                      Extension Master
                      • 03.10.2016
                      • 102

                      Zitat von climber6
                      Bin der Meinung, dass irgendwo in der Anleitung steht, das du dort noch den leerschlag beim „suchbegriff“ einbauen musst...
                      Habe den Artikel um diese Info, sowie die Funktionsweise und ein Beispiel in Textform erweitert.

                      Nochmal zum Timeout: Habe gerade gesehen: das reine Laden der Events dauert gar nicht so lange. Lediglich das Rendering im Browser hat alles etwas ausgebremst. Zumal das Rendering auf Miniserverseite jedoch sowieso wegfällt relativiert sich das etwas.

                      Unabhängig davon habe ich es nun die Anwesenheitserkennung mit dieser Lösung umgesetzt.

                      Kommentar

                      • bob83
                        Azubi
                        • 13.05.2020
                        • 6

                        Hallo,

                        ich möchte gerne auch die Anwesenheitserkennung mittels UniFi lösen. Dazu habe ich mir den Controller auf dem Raspi installiert und mir den UniFi API Browser auf meine Synology gepackt. Ich habe wie beschrieben auch die config angepasst. Nun kann ich den UniFi API Browser auf der WebStation der Synology erfolgreich aufrufen und durch das Menü browsen und kann mir auch die Events anzeigen lassen (siehe Bild). Soweit so gut.

                        Wenn ich das richtig verstanden habe muss ich als nächstes die index.php im root Verzeichnis so anpassen, dass ich mit dem initalen Aufruf des UniFi API Browser direkt zu den Events komme, sodass Loxone das auswerten kann. Das bekomme ich aber leider überhaupt nicht hin.

                        Wo muss ich denn diesen Block genau einfügen?
                        $action = 'list_events';
                        $site_id = 'default';
                        $site_name = 'Default';
                        $selection = '';
                        $output_format = 'json';
                        $theme = 'bootstrap';
                        $data = '';
                        $objects_count = '';
                        $alert_message = '';
                        $cookietimeout = '1800';

                        Ich hoffe mir kann einer helfen, die es schon am Laufen haben. Ich denke ich habe hier einfach nur einen Denkfehler und komme nicht drauf.

                        Vielen Dank schon einmal
                        Angehängte Dateien

                        Kommentar

                        • heilmoa
                          Smart Home'r
                          • 04.12.2017
                          • 41

                          Habe ebenfalls Probleme beim Erstellen der Index.php. Ich gehe davon aus, dass die Index.Php im Config Pfad gemeint sein könnte, sicher bin ich mir aber nicht.

                          Leider komme ich immer nur auf die Standard-Startseite, auf der ich erst einen Controller auswählen muss.


                          bob83 Hast du das inzwischen hinbekommen? Würde mich über eine Antwort freuen.
                          Zuletzt geändert von heilmoa; 25.08.2020, 23:00.

                          Kommentar

                          • bob83
                            Azubi
                            • 13.05.2020
                            • 6

                            Hi Heilmoa,

                            leider bin ich hier noch nicht weiter gekommen. Ich habe auch mit beiden index.php herrum probiert, doch ich glaube wir haben hier ein generelles Verständnisproblem.

                            Vielleicht hat ja noch jemand eine Idee.

                            Kommentar

                            • heilmoa
                              Smart Home'r
                              • 04.12.2017
                              • 41

                              Bekomme es auch mit einer älteren Version nicht zum Laufen...
                              Es kommt immer die Meldung, dass ein Controller ausgewählt werden muss. Wähle ich dort Einträge aus, werden die Daten aus dem Controller ausgelesen.


                              Es liegt wohl an der falsch konfigurierten Index.php. Ich glaube, hier muss entweder Controller Name oder Controller ID als Session Variable mitgegeben werden.



                              hodojazi Könntest du uns kurz aushelfen? Du bist wohl der letzte, der das umgesetzt hat...

                              Welche API Browser Version kann verwendet werden?
                              Welche Parameter müssen, an welcher Stelle, in welcher index.php ergänzt werden?
                              Zuletzt geändert von heilmoa; 26.08.2020, 22:32.

                              Kommentar

                              • hodojazi
                                Extension Master
                                • 03.10.2016
                                • 102

                                Zitat von heilmoa

                                Es liegt wohl an der falsch konfigurierten Index.php. Ich glaube, hier muss entweder Controller Name oder Controller ID als Session Variable mitgegeben werden.

                                hodojazi Könntest du uns kurz aushelfen? Du bist wohl der letzte, der das umgesetzt hat...

                                Welche API Browser Version kann verwendet werden?
                                Welche Parameter müssen, an welcher Stelle, in welcher index.php ergänzt werden?
                                Hallo. Soweit ich das sehe, habe ich meine index.php gar nicht angepasst. Die Controllerversion habe ich auf die letzte v5-Version geupdated. Sollte aber mit v6 sicher auch gehen. Die Version vom API Browser ist bei mir sehr alt, aber die neueren Versionen sollten ohne Weiteres auch funktionieren. Eventuell folge mal der Anleitung unten und schau in das PHP-Error log.


                                Ich habe mich aber auch nicht an die Anleitung gehalten, zumal ich mir nicht vorstellen kann, dass der Miniserver auf Dauer stabil läuft, wenn ich die messages, mittlerweile 1,6MB groß, in regelmäßigen Abständen dort abhole. Ich habe mir hingegen die Datei /examples/list_connected_users.php in das Root Verzeichnis herausgeholt und verwende dieses um alle verbundenen Clients in Form eines JSONs abzuholen. Dabei hatte ich das Problem, wie bereits hier erwähnt: #100 .

                                Jedoch führt das mit neueren Miniserverversionen zu regelmäßigen Reboots des Miniservers. Loxone findet hier den Fehler nicht. Aus diesem Grund habe ich es nun auch einfach mit Node-Red umgesetzt. Das ist in ein paar Minuten getan:
                                1. List_connected_users.php Datei nach Root raus kopieren und testen.
                                2. Auf einem Loxberry Portainer installieren. Dazu gib's ein Plugin.
                                3. In Portainer Node-Red installieren.
                                4. Einen solchen Flow erstellen:
                                  1. Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Screenshot 2020-09-27 at 11.52.22.png
Ansichten: 1514
Größe: 87,3 KB
ID: 267187
                                  2. Das Inject soll einfach alle paar Sekunden aufgerufen werden.
                                  3. http request node:
                                    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Screenshot 2020-09-27 at 11.56.55.png
Ansichten: 1278
Größe: 101,7 KB
ID: 267188
                                  4. Function node. Dort habe in einfach den folgenden code geschrieben:
                                    Code:
                                    		if(msg.payload.length <= 0)
                                    		return null;
                                    
                                    		var presences = {
                                    		"Person1": false,
                                    		"Person2": false,
                                    		"Person3": false,
                                    		"Person4": false
                                    		}
                                    
                                    
                                    		for(var i=0;i<msg.payload.length;i++)
                                    		{
                                    		var client = msg.payload[i];
                                    		if(client.hostname == "hostname von Person1")
                                    		presences.Person1 = true;
                                    		else if(client.hostname == "hostname von Person2")
                                    		presences.Person2 = true;
                                    		else if(client.hostname == "hostname von Person3")
                                    		presences.Person3 = true;
                                    		else if(client.hostname == "hostname von Person4")
                                    		presences.Person4 = true;
                                    		}
                                    
                                    
                                    		return [
                                    		{ "payload": [presences.Person1 && "on" || "off"]},
                                    		{ "payload": [presences.Person2 && "on" || "off"]},
                                    		{ "payload": [presences.Person3 && "on" || "off"]},
                                    		{ "payload": [presences.Person4 && "on" || "off"]},
                                    		];
                                  5. An den 4 Ausgängen des function blocks einfach die out nodes von node-red-contrib-loxone anhängen. Natürlich braucht es dafür vorher die entsprechenden virtuellen Eingänge in Loxone, damit diese verknüpft werden können.

                                Der ganze Aufwand eigentlich nur deswegen, weil ich das unifi node noch nicht zum Laufen gebracht habe. Ansonsten könnte man sich den PHP-Teil komplett sparen und das komplett in Node-Red machen. Aber dazu kann ich im Moment noch nichts sagen, weil ich es noch nicht hinbekommen habe.

                                Kommentar

                                Lädt...