Neues Modul - 74_Unifi - Für den Ubiquiti Networks (UBNT) - Unifi Controller

Begonnen von rapster, 23 August 2015, 02:12:04

Vorheriges Thema - Nächstes Thema

Wuppi68

ichhabe das gleiche Problem ....

auch diese ständigen freezes.

Habe meinen unibi controller auf einem anderen Rechner
und die unifi in meine 2. FHEM Instansz ausgelagert

beides keinen Erfolg ...

Ich vermute, da Perl nur single threaded ist ist igendwann bei größeren Installationen auf 1GHz Kisten Ende

Wenn noch Informationen zum Performancetracking gebraucht werden...  nen Profiler z.B nytprof kann ein Freund werden ...

Liebe Grüße

Ralf
Jetzt auf nem I3 und primär Homematic - kein Support für cfg Editierer

Support heißt nicht wenn die Frau zu Ihrem Mann sagt: Geh mal bitte zum Frauenarzt, ich habe Bauchschmerzen

Wuehler

Zunächst einmal Danke für das Klasse Modul. Hat mich gefreut, als ich gemerkt habe, dass fhem mal wieder etwas mehr zusammenführen kann. :)
Bei mir gibt es leider auch Performance-Probleme. Habe auf einem frischen raspi 3 sowohl fhem als auch unifi-controller
(nach http://www.lowefamily.com.au/2016/06/02/installing-ubiquiti-unifi-controller-5-on-raspberry-pi/3/)
installiert. Alles in aktuellster Version. Alle 30 Sekunden (=gesetztes refresh-Intervall im myunifi) geht der raspi in die Knie.
Wenn ich myunifi disable läuft alles wie es soll.
Ich schaue mir die nächsten Tage nochmal an, ob ich da irgendetwas finden kann und berichte dann, freue mich aber auch auf Vorschläge  ;)

Wuehler


Endlich dazu gekommen. Logging von unifi in der system.properties auf debug gestellt und in fhem verbose=5 und HttpLoglevel=5 gesetzt. Wobei der HttpLoglevel keine Ausgaben der HttpUtils hervorgerufen hat :(

Fhem.log

2016.11.27 12:07:51 5: Unifi (Unifi_DoUpdate) - executed.
2016.11.27 12:07:51 5: Unifi (Unifi_GetHealth_Send) - executed.
2016.11.27 12:07:53 5: Unifi (Unifi_GetHealth_Receive) - executed.
2016.11.27 12:07:53 5: Unifi (Unifi_GetHealth_Receive) - state:'ok'
2016.11.27 12:07:53 5: Unifi (Unifi_GetClients_Send) - executed.
2016.11.27 12:07:55 5: Unifi (Unifi_GetClients_Receive) - executed.
2016.11.27 12:07:55 5: Unifi (Unifi_GetClients_Receive) - state:'ok'
2016.11.27 12:07:55 5: Unifi (Unifi_GetEvents_Send) - executed.
2016.11.27 12:07:56 5: Unifi (Unifi_GetEvents_Receive) - executed.
2016.11.27 12:07:56 5: Unifi (Unifi_GetEvents_Receive) - state:'ok'
2016.11.27 12:07:57 5: Unifi (Unifi_GetWlans_Send) - executed.
2016.11.27 12:07:58 5: Unifi (Unifi_GetWlans_Receive) - executed.
2016.11.27 12:07:58 5: Unifi (Unifi_GetWlans_Receive) - state:'ok'
2016.11.27 12:07:58 5: Unifi (Unifi_GetUnarchivedAlerts_Send) - executed.
2016.11.27 12:08:00 5: Unifi (Unifi_GetUnarchivedAlerts_Receive) - executed.
2016.11.27 12:08:00 5: Unifi (Unifi_GetUnarchivedAlerts_Receive) - state:'ok'
2016.11.27 12:08:00 5: Unifi (Unifi_GetAccesspoints_Send) - executed.
2016.11.27 12:08:02 5: Unifi (Unifi_GetAccesspoints_Receive) - executed.
2016.11.27 12:08:02 5: Unifi (Unifi_GetAccesspoints_Receive) - state:'ok'
2016.11.27 12:08:02 5: Unifi (Unifi_ProcessUpdate) - executed after 10.8838 seconds.
2016.11.27 12:08:02 5: Unifi (Unifi_SetHealthReadings) - executed.
2016.11.27 12:08:02 5: Unifi (Unifi_SetClientReadings) - executed.
2016.11.27 12:08:02 5: Unifi (Unifi_SetAccesspointReadings) - executed.
2016.11.27 12:08:02 5: Unifi (Unifi_ProcessUpdate) - finished after 10.9122 seconds.


Server.log des unifi-controllers:

[2016-11-27 12:07:51,620] <check-network-interfaces> DEBUG system - Interfaces: [{ "ip" : "192.x.y.z" , "name" : "eth0"}]
[2016-11-27 12:07:52,522] <inform-8> DEBUG inform - Inform [44:dd:ee:bb:00:44] ip=192.x.y.a {
[2016-11-27 12:07:52,523] <inform-8> INFO  inform - from [44:dd:ee:bb:00:44](UAP_WZ, BZ2, 3.7.21.5389): state=CONNECTED, ext/stun_ip=192.x.y.c, dev_ip=192.168.178.74, up=303276
[2016-11-27 12:07:52,540] <inform-8> DEBUG inform - } Inform finished (18 handling)
[2016-11-27 12:07:52,554] <inform_stat-2> DEBUG uap    -    uplink: eth0
[2016-11-27 12:07:52,572] <inform_stat-2> DEBUG uap    -    [sta seen] 33:dd:ee:bb:00:cc (ng-user , iPhone1, myWLAN) up=84658
[2016-11-27 12:07:52,575] <inform_stat-2> DEBUG uap    -    [sta seen] 33:dd:ee:bb:00:bb (ng-user , HHub, myWLAN) up=177359
[2016-11-27 12:07:52,577] <inform_stat-2> DEBUG uap    -    [sta seen] 33:dd:ee:bb:00:aa(ng-user , null, myWLAN) up=301163
[2016-11-27 12:07:53,426] <webapi-22> DEBUG api    - /api/s/default/stat/health finished (15 handling, 2 rendering)
[2016-11-27 12:07:55,148] <webapi-23> DEBUG api    - /api/s/default/stat/sta finished (2 handling, 5 rendering)
[2016-11-27 12:07:56,987] <webapi-24> DEBUG api    - /api/s/default/stat/event finished (27 handling, 76 rendering)
[2016-11-27 12:07:58,842] <webapi-25> DEBUG api    - /api/s/default/list/wlanconf finished (7 handling, 3 rendering)
[2016-11-27 12:07:59,628] <inform-9> DEBUG inform - Inform [44:dd:ee:bb:00:22] ip=192.x.y.z {
[2016-11-27 12:07:59,629] <inform-9> INFO  inform - from [44:dd:ee:bb:00:22](UAP_SZ, BZ2, 3.7.21.5389): state=CONNECTED, ext/stun_ip=192.x.y.d, dev_ip=192.168.178.75, up=303779
[2016-11-27 12:07:59,659] <inform-9> DEBUG inform - } Inform finished (32 handling)
[2016-11-27 12:07:59,669] <inform_stat-3> DEBUG uap    -    uplink: eth0
[2016-11-27 12:08:00,573] <webapi-26> DEBUG api    - /api/s/default/list/alarm finished (6 handling, 2 rendering)
[2016-11-27 12:08:01,623] <devmgr> DEBUG system - mac[44:dd:ee:bb:00:44], last_seen=1480244872, state=1(CONNECTED)
[2016-11-27 12:08:01,624] <devmgr> DEBUG system - mac[44:dd:ee:bb:00:55], last_seen=1480244867, state=1(CONNECTED)
[2016-11-27 12:08:01,624] <devmgr> DEBUG system - mac[44:dd:ee:bb:00:22], last_seen=1480244879, state=1(CONNECTED)
[2016-11-27 12:08:02,448] <webapi-27> DEBUG api    - /api/s/default/stat/device finished (25 handling, 14 rendering)

Wenn ich mir die Logs ansehe, scheint die Zeit beim Abfragen der Unifi-API liegen zu bleiben. Wenn ich die API-Url direkt im Browser eingebe bekomme ich quasi sofort das entsprechende Antwort.json. In den Funktione GetXXXX_Send wird HttpUtils_NonblockingGet() aufgerufen. Diese Funktion habe ich noch nicht durchschaut.  So viel erstmal zu meiner bisherigen Analyse.

Btw: Gibt es eigentlich ein FHEM-Modul , dass Events durch parsen eines Logfiles erzeugt. Aktuell interessiert mich von Unifi nur, welcher Client sich wann connected und das steht im server.log von unifi.






Eisix

@Wuehler: CustomReadings erlaubt parsen eines Logfiles

@Rapster: Hattes du einen Weg gefunden das Passwort zu ändern?

Gruß
Eisix

rapster

Ich glaube Passwort ändern habe ich mir bereits mal angeschaut und sollte machbar sein, allerdings finde ich im Moment keine ruhigen Minuten um mir Gedanken darüber zu machen.
Evtl. ist es nach Weihnachten etwas ruhiger :)

rapster

Zitat von: Wuehler am 27 November 2016, 13:42:52
Btw: Gibt es eigentlich ein FHEM-Modul , dass Events durch parsen eines Logfiles erzeugt. Aktuell interessiert mich von Unifi nur, welcher Client sich wann connected und das steht im server.log von unifi.
Für die uptime eines Geräts gibt es doch bereits das _uptime reading?
Bei Bedarf kann ich noch ein reading mit dem Timestamp des connects anbieten (timestamp von uptime=0)
Was is der Anwendungsfall hierfür?

Wuehler

Danke für die Antworten. Das mit dem Log auslesen war im Grunde nur eine blöde Idee, die beim Schreiben gekommen ist.
Ich habe gestern eine für mich erstmal brauchbare Lösung gefunden indem ich im Unifi-Modul in doUpdate() den Aufruf aller Methoden ausser GetClients() auskommentiert habe. Die anderen Readings benötige ich aktuell noch nicht. Damit ist der RasPi nur sehr kurzzeitig recht ausgelastet.

Zwei mögliche Gründe für die Performance-Probleme:
1. Der Unifi-Controller und FHEM laufen auf demselben RasPi
2. Wenn ich es richtig sehe wird V5 des Unifi-Controllers noch nicht unterstützt. Diese habe ich aber installiert.

Eisix

@Wuehler

zu 2. Wenn du dir die älteren messages dieses Thread durchlesen würdest, würdest du sehen das die V5 funktioniert  ;)

Kann auch bestätigen das es mit V5.2.9 läuft.

Gruß
Eisix

Eisix

@rapster: keinen Stress mit dem PW

Kann bestätigen das Controller v5.3.8.2 läuft.

Gruß
Eisix

Ghostchaser

Guten Morgen,

kann auch die Funktionalität mit 5.3.8 bestätigen.  8)

Gruß
Jörg

Mitch

Hallo,

bin gerade durch Zufall auf dieses Modul gestoßen.
Vielen Dank dafür, funktioniert ja genial!

Eine Frage hätte ich aber: in den Readings für meinen AP und mein USG habe ich ein Minus, weswegen ich die nicht weiterverabeiten kann (z.B. stateformat).
siehe: -AP_OfficeAP_clients

WIe kann ich das denn ändern, bzw. ist das ein Fehler in meinem Controller, oder im Modul?
FHEM im Proxmox Container

rapster

Hi,
nein das - ist i.M. Absicht wegen der Sortierung der Readings :-)

Was genau funktioniert wegen dem - nicht? Bisher sind mir da noch keine Probleme begenet..

Mitch

Sorry, mein Fehler, alles gut  :-[
FHEM im Proxmox Container

rapster

Ah OK, du solltest auf alle Fälle die Perl Schreibweise verwenden können:
attr Unifi stateFormat {ReadingsVal($name,'-UC_events','')}

Mitch

FHEM im Proxmox Container