Hallo,
möchte zur Anwesenheitserkennung den Unifi Ubiquiti AP-AC Lite verwenden.
Habe wie im Commandref beschrieben mit putty apt-get install libjson-perl
ausgeführt.
Es kam eine Meldung in der Art, dass das bestehende aktuell ist.
In FHEM habe ich folgendes eingegeben
define Unifi_AC_Abstellkammer Unifi 192.168.33.3 8443 MeinBenutzername MeinPasswort
Leider zeigt es mir als state "disconnected" an.
An was könnte das liegen?
Ich habe den Unifi noch nicht lange und habe auch derzeit noch ein Problem, dass der Unifi über Windows 7 erst erkannt wird (zum Konfigurieren mit dem Unifi Controller), wenn ich die Firewall deaktiviere.
WLan funktioniert aber ohne Probleme.
Das Windowsproblem dürfte aber doch nichts mit dem FHEM/Raspberry Problem zu tun haben?
Hier ein List vom Device Unifi_AC_Abstellkammer
Internals:
CFGFN
DEF 192.168.33.3 8443 crypt:2d554b4211065b7e crypt:3c014d632006474c1b7645475a5a51344b5c535e
FUUID 5c7b84b3-f33f-194f-d4d4-c021603df865be0d
NAME Unifi_AC_Abstellkammer
NOTIFYDEV global
NR 1624
NTFY_ORDER 50-Unifi_AC_Abstellkammer
STATE disconnected
TYPE Unifi
VERSION 3.1.0
Helper:
DBLOG:
state:
DbLog:
TIME 1551598771.30267
VALUE disconnected
READINGS:
2019-03-03 08:39:31 state disconnected
accespoints:
alerts_unarchived:
clients:
events:
helper:
password crypt:3c014d632006474c1b7645475a5a51344b5c535e
username crypt:2d554b4211065b7e
hotspot:
vouchers:
httpParams:
ignoreredirects 1
loglevel 5
method POST
noshutdown 0
timeout 5
hash:
sslargs:
SSL_verify_mode 0
unifi:
CONNECTED disconnected
deprecatedClientNames 1
eventPeriod 24
interval 30
url https://192.168.33.3:8443/api/s/default/
version 4
updateDispatch:
wlans:
Attributes:
192.168.33.3 ist das die IP von dem Accesspoint? (Ich interpretiere das ausdenken Namen des Devices).
Das Unifi Device verbindet sich mit dem Controller / Cloudkey und nicht mit dem AP.
Für eine Anwesenheitserkennung muss der Controller dann aber 24/7 laufen.
Ja, das wäre die IP von meinem Accesspoint.
Habe es so verstanden und nach dem Beispiel aus der Commandref (define my_unifi_controller Unifi 192.168.1.15 443 admin secret) gemacht.
Wie sehe ich die IP vom Controller?
Wenn ich diesen über den Browser aufrufe wird in der Adresszeile nur https://localhost:8443/... angezeigt.
Wie kann der Controller 24/7 laufen. Den Windows PC möchte ich nicht immer laufen lassen.
Muss/kann ich den Controller auf dem Raspberry installieren, auf dem FHEM läuft?
Ja, es gibt eine lösung für Raspi.
Versprech Dir aber nicht zuviel davon, das ist nicht gerade performant...
Ohne Controller macht Unifi nur halb soviel Spaß.
Du kannst z.B. den Unify Cloudkey im Dauerbetrieb benutzen oder das Paket unter Linux installieren.
Der Cloudkey ist theoretisch bunt und kindgerecht, ich habe allerdings schlechte Erfahrung damit gemacht (momentan ist er mal wieder eingeschickt).
Theoretisch müsste der Controller auch auf einem Raspi laufen. Da müsstest du dich aber selbst schlau machen ob die Ressourcen ausreichen.
Ich habe ihn unter Ubuntu auf einer Nuc laufen.
Hallo,
habe das auch erst kürzlich in Betrieb genommen. Bei mir läuft der Controller momentan auf einem Raspi 1 mit 512MB.
Das war ein ganz schönes gefrickel das dort ans Laufen zu bekommen.
Für eine kleine Installation mit nur einem AP geht das bei mir. Für eine größere Installation wird das wohl aber nichts.
Vom Cloud-Key hört man öfters, dass der Probleme macht. Wichtig ist egal welche Hardware, dass man immer sauber beendet und runterfährt, da sonst die Datenbank korrumpiert und nix mehr geht.
Gruß
Olly
Habe mir eigentlich den Unifi vor allem deswegen gekauft, dass die Anwesenheitserkennung zuverlässlicher funktioniert im Vergleich zur Fritzbox.
Habe in einen Blog (https://www.meintechblog.de/2018/04/wlan-anwesenheitserkennung-mit-unifi-accesspoints-in-fhem-einbinden-und-an-loxone-weiterleiten/) eine Anleitung zum installieren des Controllers auf dem Raspberry gefunden.
folgende Befehlt werden ausgeführt.
sudo apt-get -y install libjson-perl
sudo sh -c "echo 'deb http://www.ubnt.com/downloads/unifi/debian stable ubiquiti' > /etc/apt/sources.list.d/ubnt.list"
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 06E85760C0A52C50
sudo apt-get -y --allow-unauthenticated install unifi
sudo reboot
Sollte das so funktionieren?
@Olly
hast du es ähnlich gemacht?
Zitat von: der-Lolo am 03 März 2019, 10:10:40
das ist nicht gerade performant...
Ohne Controller macht Unifi nur halb soviel Spaß.
Was meinst Du mit nicht gerade perfomant? Wegen der Geschwindigkeit?
Wird hier das gesamte FHEM ausgebremst?
Ohne Controller kann ich den AP doch gar nicht in FHEM nutzen, oder?
Ist der Raspberry 3 zu langsam?
Zitat von: stefanpf am 03 März 2019, 10:10:55
Ich habe ihn unter Ubuntu auf einer Nuc laufen.
Was wäre ein günstiger Nuc, welcher für den Controller ausreichend ist?
Vor allem habe ich von Nuc noch nicht gehört. Muss erst mal die Suchmaschine befragen.
Bin leider auf dem Gebiet nicht fit und muss mir vieles zusammensuchen.
der alte cloudkey braucht vor allem auf jeden fall eine usv. wenn er nicht sauber runterfährt gibt es probleme. wenn man eine hat ist er empfehlenswerter als ein raspberry.
der neue cloudkey hat eine mini usv eingebaut und sollte das problem nicht mehr haben. kostet aber mehr als ein raspberry und ist für einen ap sicher überdimensioniert.
Moin,
Zum Start kannst du den UnifiController ruhig auf demselben Pi laufen lassen wie auch fhem. Idealerweise das Update-Interval erstmal auf 120 Sekunden setzen. Sonst handelst du dir schnell mal Performanceprobleme ein. Es kommt drauf an, wie groß/Ressourcenhungrig dein fhem und dein Unifi-Netzwerk sind. Wenn ein Updatezyklus länger als das eingestellte Intervall dauert, wird das den RasPi schnell an die Lastgrenzen bringen. Auf zwei RasPi verteilt läuft aber offenbar ohne Probleme mit 30 Sekunden update-Intervall.
Mach am Besten bei jeder (größeren) Änderung im Unifi-Controller ein Backup um eine ggf. korrumpierte DB wieder heile zu bekommen.
Bei deiner Anleitung fehlt ggf. ein aktuelles Java. Es kommt drauf an, was auf deinem Pi bisher installiert wurde.
Im Unif-Blog gibt es auch eine gute Anleitung (https://community.ubnt.com/t5/UniFi-Routing-Switching/Step-By-Step-Tutorial-Guide-Raspberry-Pi-with-UniFi-controller/td-p/2470231). Ich würde Methode-B empfehlen. Das Pi-Hole ist nicht zwingend.
Viel Erfolg,
Dirk
@Ruggy: Ich habe nicht den "normalen" stabile Zweig gewählt, sondern oldstable. Das installiert eine Controller Ver. 5.9.xx, aktuell ist die 5.10.xx die habe ich aber auf meinem alten Pi nicht ans laufen bekommen.
Java habe ich eine openJDK Ver. anstatt die Oracle Ver. genommen.
Die aktuelle Oracle läuft auf dem alten Pi mit Arm6 nicht.
Mit einem Pi3 sollte das aber gehen (Arm7).
Gruß
Olly
Ich denke, dass ich es mit einem weiteren Raspberry versuchen und nach Methode-B installieren. Habe noch einen Raspberry 3 (die erste Version) daheim.
Wenn ich auf dem zweiten Raspberry den Controller installiert habe, nehme ich dann die IP-Adresse von diesen Raspberry für den Befehl, welchen ich oben schon genannt habe und es sollte funktionieren?
define Unifi_AC_Abstellkammer Unifi "IpVomZweiten_Raspberry" 8443 MeinBenutzername MeinPasswort
Zitat von: Ruggy am 03 März 2019, 13:52:14
Ich denke, dass ich es mit einem weiteren Raspberry versuchen und nach Methode-B installieren. Habe noch einen Raspberry 3 (die erste Version) daheim.
Wenn ich auf dem zweiten Raspberry den Controller installiert habe, nehme ich dann die IP-Adresse von diesen Raspberry für den Befehl, welchen ich oben schon genannt habe und es sollte funktionieren?
define Unifi_AC_Abstellkammer Unifi "IpVomZweiten_Raspberry" 8443 MeinBenutzername MeinPasswort
Ja, das sollte dann passen.
Gruß
Olly
Btw:
je nach genutzter Unifi Infrastruktur und Version funktioniert das mit der Anwesenheitserkennung auch nicht 100%.
Bei mir bleiben die Handys gerne auf dem Status "connected" und werden haben aber als verbundenen Accesspoint dann den Unifi Switch oder den Unifi Gateway eingetragen.
Da der Controller selbst auch dann und wann solche Anwandlungen hat vermute ich die Ursache eher in der Unifi API
Mit der folgenden Funktion im Presence Device lässt sich das aber sehr gut kompensieren (ist nicht auf meinem Mist gewachsen - ich meine, dass habe ich hier irgendwo im Forum aufgeschnappt.
defmod presence.Stefan PRESENCE function { ((ReadingsVal("UniFi","Galaxy-S9","") eq "connected") and ((index(ReadingsVal("UniFi","Galaxy-S9_accesspoint",""), "AP_EG")) != -1 or (index(ReadingsVal("UniFi","Galaxy-S9_accesspoint",""), "AP_OG")) != -1))? 1 : 0} 10
Habe gesehen, dass Ubiquiti den UniFi Cloud Key als Hardwarelösung anbietet.
Wäre dies das selbe wie ein Raspberry mit dem Controller?
Was wäre besser?
Raspberry hätte ich und ist auch günstiger; aber ist die Hardware von Ubiquiti stabiler?
hast du die antworten weiter oben gelesen?
@stefanpf
Danke für den Tip; werde ich probieren, wenn ich soweit bin.
Eine Frage zum Code hätte ich aber vorher schon; auch weil ich das Device noch nicht gesehen habe, wenn es funktioniert.
Der Teil "UniFi","Galaxy-S9" im Code ist wahrscheinlich mein Smartphone, welches mir als WLan-Verbindung im UniFi Device angezeigt wird?
Was bedeutet aber dann folgender Teil "UniFi","Galaxy-S9_accesspoint"?
Sorry, über diesen Hardware CloudKey wurde ja bereits geschrieben und als nicht so zuverlässig erachtet.
Irgendwie hat mich der Begriff "Cloud" irritiert; habe an etwas nicht reales in einer Cloud gedacht und verdrängt.
Sorry nochmals. Versuche dann wahrscheinlich doch vorerst die Lösung mit dem Raspberry.
Jedes WLAN Gerät hat mehrere Readings im Unifi Device
Das XYZ_Accesspoint enthält den Accesspoint mit dem das Gerät gerade verbunden ist.
Da ich zwei APs habe prüfe ich ob es entweder mit dem einen oder dem anderen verbunden ist.
Ich glaube ich habe es soweit hinbekommen.
Habe es auf den Raspberry 3 nach Methode B installiert.
@stefanpf
Wie würde der Befehl für einen AP lauten?
Deiner ist anscheinend auf zwei AP ausgelegt (EG und OG).
So?
Vor allem auch wegen den ganzen (),"" usw.
defmod presence.Stefan PRESENCE function { ((ReadingsVal("UniFi","Galaxy-S9","") eq "connected") and (index(ReadingsVal("UniFi","Galaxy-S9_accesspoint",""))) ? 1 : 0} 10
Muss die "10" hinter der letzten } stehen?
In der Commandref ist es ohne die "10"
define <NAME> PRESENCE function {ReadingsVal("<UniFi>","<NamedDevice>","") eq "connected" ? 1:0}
So sollte es passen:
function { ((ReadingsVal("UniFi","HUAWEI_RIO-L01-1d07a68502","") eq "connected") and (index(ReadingsVal("UniFi","HUAWEI_RIO-L01-1d07a68502_accesspoint",""), "AP_EG")) != -1 )? 1 : 0} 10
ansonsten kannst du den zweiten AP auch einfach mit einem Phantasienamen drin lassen :)
Die 10 gibt den Prüfinterval in Sekunden an.
Jetzt hab ich doch noch eine Frage;
Das "AP_EG" hat das eine bestimmte Bedeutung oder kann ich das weg lassen? Oder was soll ich hier schreiben?
Mein einziger Accesspoint heißt Unifi_AC_Abstellkammer
Das ist der Name, den du im Controller (nicht im FHEM) für den AP vergeben hast.
Ich konstruiere einmal ein Beispiel mit gefakten Readings:
2019-01-21 22:10:27 HUAWEI_P9 disconnected
2019-01-21 22:09:53 HUAWEI_P9_accesspoint AP_OG
2019-02-18 22:16:38 SPTAB disconnected
2019-02-18 22:16:08 SPTAB_accesspoint unknown
2019-03-03 20:29:59 HUAWEI_RIO-L01 connected
2019-03-03 20:29:59 HUAWEI_RIO-L01_accesspoint SWI01
In einer heilen Welt sollte der Unifi Controller ein nicht mehr vorhandenes Gerät nach kurzer Zeit erkennen und das Reading auf disconnect setzen. Das accesspoint Reading bleibt danach üblicherweise auf dem zuletzt genutzten Accessport (bzw. Switchport, falls es per Kabel angeschlossen war). Wenn das zuverlässig funktioniert, dann reicht es natürlich nur das "Hautpreading" auszuwerten.
Die ersten zwei Zeilen zeigen genau dieses verhalten
Bei SPTAB siehst du eine "fehlerhafte" Variante - der Controller weiß nicht (mehr) an welchem AP das Gerät war. Disconnect wurde aber erkannt.
Bei HUAWEI_RIO_L01 siehst du den Fehler der Probleme bereitet: Das Hautpreading bleibt auf connected und das accesspoint Reading zeigt auf einmal auf den Switch "SW01".
Diesen Bug kann man auch im Unifi Controller beobachten. Ich habe z.B. einen ESP8266 Sensor der nur alle 15 min aufwacht um ein paar Daten zu senden.
Anschließend wird er auch in der Topologie Ansicht im Controller unterhalb des Switches angezeigt.
Aktuell kann ich den Fehler nicht nachstellen. Er war allerdings einerseits random und andererseits habe ich vor ein paar Tagen gerade die letzten Beta Firmware Versionen installiert (vielleicht haben die das ja endlich in den Griff bekommen).
Lange Rede, wenig Sinn: probier es aus... falls du über das Problem stolperst, kennst du wenigstens den Workaround :)
Vielen Dank für die ausführliche Erklärung; muss ich aber erst ein paarmal durchlesen und setzen lassen ;)
Ich könnte mich aber nicht erinnern im Controller einen Namen für den AP vergeben zu haben.
Wenn ich den Controller im Browser aufrufe, steht unter Einstellungen->Controller->Controller-Name-> UniFi
Ist dann UniFi der Name?
Sorry, dass ich mich so anstelle.
Im Unifi Controller unter "DEVICES" in der Spalte "Device-Name" nachsehen :)
Konfiguriert wird der über den Alias des Devices (per Default steht dort die MAC Adresse des APs).
Wenn ich mich recht erinnere musst du wenn du den Alias im FHEM änderst im Unifi Device anschließend die Readings clearen (die mit dem alten Namen verbleiben dort und du hast sonst alles doppelt)
Blöde Frage: warum schaust du dir nicht einfach die Readings des UniFi Devices im FHEM an? Da sollte sich ja der AP Name wiederfinden lassen.
Ok, dort steht als Gerätename die MAC Adresse.
Im Unifi Device im FHEM kann ich den Namen bzw. MAC vom AP nicht finden; wenn ich ein List vom Unifi Device mache kann ich die MAC Adresse finden.
Ich versuche es jetzt dann mal.
Danke und schönen restlichen Abend noch.