[Modul] UnifiNet - Lokale Unifi Network API

Moin Zusammen,

anbei mal mein erstes Modul: „UnifiNet“ aktuell als Beta im Store zu finden.
Da dieses noch Beta ist und mein erstes Modul bitte mit Vorsicht genießen. Kann gut sein das ihr auch mal alle Instanzen löschen müsst usw.

Edit: Nun auch als Stable.

Das Modul sollte eigentlich relativ selbsterklärend sein.

Verfügbar ab Unifi OS 4.1.9 und UNA 9.0.108. Getestet mit: Unifi OS 4.3.6 und UNA 9.3.43.

Bitte den API Key unter UniFi Network > Settings > Control Plane > Integrations erzeugen! Das Modul nutzt die Lokale Api, NICHT die SiteAPI:
image

Das Modul besteht aus den Instanzen:

  • UnifiDevice (Dokumentation)
    Dieses Modul repräsentiert die Unifi Geräte in IP-Symcon.
  • UnifiClient (Dokumentation)
    Dieses Modul repräsentiert die Unifi Clients in IP-Symcon.
  • UnifiConfigurator (Dokumentation)
    Der Konfigurator richtet Unifi Geräte und Clients in IP-Symcon ein.
  • UnifiGateway (Dokumentation)
    Die Schnittstelle zwischen Symcon und der Local Unifi Network API

Leider NICHT verfügbar für Self-Hosted UNA.

Ansonsten einfach gern testen und melden.

2 „Gefällt mir“

Cool! Wollte ich gleich ausprobieren und bekomme folgende Fehler:

Warning: 
Warning: Undefined array key "id" in /mnt/data/symcon/modules/.store/bgersmann.unifinet/UnifiGateway/module.php on line 269

Warning: Undefined array key "id" in /mnt/data/symcon/modules/.store/bgersmann.unifinet/UnifiGateway/module.php on line 271

Warning: Undefined array key "id" in /mnt/data/symcon/modules/.store/bgersmann.unifinet/UnifiGateway/module.php on line 275
RESULT: in /mnt/data/symcon/modules/.store/bgersmann.unifinet/UnifiConfigurator/module.php on line 28

paresy

Hi,
läuft dein Modul über die neue Unifi API? Hast du vor das Modul noch zu erweitern?

VG
Stefan

Ja genau. Kommt drauf an was du mit erweitern meinst? So viel mehr Daten gibt’s da ja nicht…

Habe mal gerade das Modul installiert. Da kommt folgende Meldung im Konfigurator:

Konnte Konfigurationsform nicht laden
Warning: 
Warning: Undefined array key "data" in /var/lib/symcon/modules/.store/bgersmann.unifinet/UnifiGateway/module.php on line 153

Warning: foreach() argument must be of type array|object, null given in /var/lib/symcon/modules/.store/bgersmann.unifinet/UnifiGateway/module.php on line 153

Warning: Undefined array key "data" in /var/lib/symcon/modules/.store/bgersmann.unifinet/UnifiGateway/module.php on line 242

Fatal error: Uncaught TypeError: usort(): Argument #1 ($array) must be of type array, null given in /var/lib/symcon/modules/.store/bgersmann.unifinet/UnifiGateway/module.php:243
Stack trace:
#0 /var/lib/symcon/modules/.store/bgersmann.unifinet/UnifiGateway/module.php(243): usort(NULL, Object(Closure))
#1 /var/lib/symcon/modules/.store/bgersmann.unifinet/UnifiGateway/module.php(71): UnifiGateway->getDevicesConfig()
#2 /-(3): UnifiGateway->ForwardData('{"DataID":"{4A5...')
#3 {main}
  thrown in /var/lib/symcon/modules/.store/bgersmann.unifinet/UnifiGateway/module.php on line 243
 in /var/lib/symcon/modules/.store/bgersmann.unifinet/UnifiConfigurator/module.php on line 28
{"status":[{"code":102,"icon":"active","caption":"Instanz ist aktiv"}],"elements":[{"type":"Label","label":"UniFi Device Configurator"},{"type":"Configurator","name":"UnifiDevices","caption":"Unifi Devices","rowCount":10,"delete":false,"sort":[],"columns":[{"caption":"Name","name":"Name","width":"200px","add":""},{"caption":"Typ","name":"Type","width":"200px","add":""},{"caption":"IP","name":"IP","width":"200px","add":""},{"caption":"ID","name":"ID","width":"50px","add":""}],"values":[{"caption":"Test","value":""}]}],"actions":[{"type":"Button","label":"Ger\u00e4te auslesen","onClick":"UNIFICG_Send($id,\"getDevicesConfig\");"}]} (Code: -32603)

Habe dazu meine IP von der UDM und den API Key eingegeben.

Mit Erweitern meinte ich das die „Funktionen“ wie bei den anderen Unifi Modulen (Support eingestellt) übernimmst. Da ich immer noch das Problem habe mit den Login ind den Instanzen. Wenn ich das richtig gelesen habe, lässt di neue API mehr Logins zu.

Die Site richtig ausgewählt im Gateway?

Wenn ich das Modul ja installiere kommt die Abfrag ob ein Konfigurator angelegt werden soll. Da gebe ich meine UDM IP ein, den API Key und die default Seite ist ja schon vorgegeben.

Öffne sonst mal das Gateway und wähle die Site noch mal aus der Liste.

Ist übrigens nicht die SiteAPI sonder die Lokale API:

Du meinst umgekehrt? Es ist die SiteAPI über die Unifi Seite.

Nö, ist die Lokale Api, wie im Screenshot…

Bei der lokalen habe ich das nicht.

Könntest du den API key schon eingeben? Danach vllt. Einmal das Form schließen und neu öffnen?

Lange darauf gewartet und Danke dir schon mal vorab für das Modul mit der neuen API. Jetzt sind die beschränkten Login Versuche hoffentlich Geschichte.

Gibt es noch folgende Daten in der neuen API?

CPU Auslastung
Speicher Auslastung
Verbundene Geräte

Ja, API Key ist drin und ich sehe danach auch alle meine APs in der Fehlermeldung. D.h. es kommt beim Öffnen des Konfigurators :slight_smile:

paresy

Hab mal eine neue Beta hochgeladen, bitte mal gucken ob der Fehler dort weg ist.

Vermutlich wird dann beim anlegen eines der Geräte allerdings ein Fehler kommen.

Und im Debug vom Gateway sollte beim öffnen vom Konfigurator die Ausgabe as JSON String ankommen. Gern mal als PN Schicken oder gucken ob dort ein Gerät ohne „id“ vorhanden ist.

Die werde ich noch mit aufnehmen.

Die finde ich in der API Leider nicht. Da müsste man alle Clients durchgehen und den Uplink auswerten, muss ich mir mal in ruhe anschauen.

1 „Gefällt mir“

Anderseits sieht man ja anhand der Ports wieviel Geräte angeschlossen sind. Bei deinem Modul sind ja die Ports aufgelistet.

Gibt die API auch die Geräte Temperatur her? Gibt es auch was um den Controller darzustellen?

Bei Lan ja, bei Wlan sieht man leider nichts.

Werden den Uplink noch mit aufnehmen, dann sieht man wo es angeschlossen ist.

Temperatur gibt die API nicht her, vom Controller gibt’s nur die UNA Version, sonst nichts, da weiß ich noch nicht genau wo ich die anzeigen soll.

1 „Gefällt mir“

Gibt nun ein Update der Beta, dort kann man nun die Auslastung mit auslesen, muss im Device eingeschaltet werden.

Zudem wird bei Device und Client das Uplink Device angezeigt.

1 „Gefällt mir“