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

kunze

Hi Dirk,

zwei Probleme:
1. der Login teil muss den Header mit content-type enthalten:
Zeile 899ff:
    HttpUtils_NonblockingGet( {
                 %{$hash->{httpParams}},
        url      => $loginurl,
        data     => $logindata,

        header   => "Content-Type: application/json",
        callback => \&Unifi_Login_Receive
    } );


2. Nach dem login kommt nur data zurück, also schlägt die Prüfung auf nur meta rc ok fehl.
Zeile 918:
            if ($data->{meta}->{rc} eq "ok" || $data->{username} ne '') {

Wuehler

Hi Michael,

vielen Dank. Im Anhang neue Versionen (UnifiSwitch hat sich nicht geändert zum 2 Posts vorher).

VG,
Dirk

Florie

Hi, vorab ich bin totaler Unifi-Neuling, habe gerade die Version aus dem vorherigen Post bei mir in FHEM eingespielt. Ich bin damit leider nicht auf die UDM Progekommen, er bliebt immer auf disconnected stehen. Habe nun   if ($data->{meta}->{rc} eq "ok" || $data->{username} ne '') { auskommentiert und es ging sofort auf connected und die Readings sind auch sofort gekommen.

Wenn ich etwas zur Fehlerbeseitigung (Falls der Fehler nicht bei mir liegt :)) beisteuern kann, dann sagt Bescheid.

VG

bogi999

Zitat von: Wuehler am 20 September 2020, 22:29:52
Hi Michael,

vielen Dank. Im Anhang neue Versionen (UnifiSwitch hat sich nicht geändert zum 2 Posts vorher).

VG,
Dirk

Kurze Rückmeldung.

Direkt nach setzen des Attributes "isUDM" auf 1 war ich verbunden. Die Switche wurden ausgelesen, auch der der UDM wurde angelegt. Die Abwesenheit läuft wieder.

Vielen Dank dafür!!

Wenn nun @justme1968 ähnliches beim Protectmodul einfügen könnte, wär die UDM auch komplett im FHEM,

kunze

@Wuehler: bei mir läuft seit zwei Tagen die Version aus deinem letzten Post.

Wuehler

Moin,

@Florie: Verstehe dein Problem noch nicht. Kannst du mal deine geänderte Moduldatei und ein list des FHEM-Devices posten.

@all_non_UDM_User: Hat von euch mal jemand getestet?

@kunze: Vielen Dank für deine Anpassungen und Mühen.

VG,
Dirk

Wolle02

Zitat von: Wuehler am 22 September 2020, 20:48:42
@all_non_UDM_User: Hat von euch mal jemand getestet?

Moin Dirk,

ich habe hier einen UniFi-CloudKey Gen1 laufen und habe mir jetzt deine Version 3.5.0 auf mein Testsystem gezogen.

Beim ersten Betrachten scheint alles zu laufen wie zuvor.


Gruß
Wolle

Micky79

Haben es eben auch mal getestet. Bei mir kommt leider folgendes:

2020.09.23 20:24:50 5: UnifiController (Unifi_Notify) - executed.
2020.09.23 20:24:50 5: UnifiController: get called with ?.
2020.09.23 20:24:52 5: UnifiController (Unifi_Login_Send) - executed.
2020.09.23 20:24:53 5: UnifiController (Unifi_Login_Receive) - executed.
2020.09.23 20:24:53 5: UnifiController (Unifi_Login_Receive) - Login Failed! - state:'error.decode_json' - msg:'malformed JSON string, neither tag, array, object, number, string or atom, at character offset 1 (before "<!doctype html>\n<ht...") at ./FHEM/74_Unifi.pm line 917.


Status bleibt auf disconnected

Florie

@Wuehler hier mal das List, ohne readings

Internals:
   DEF        192.168.1.1 443 crypt:XXXXXXXXXXXXXXXXXXXXXX crypt:XXXXXXXXXXXXXXXXXXXXXXX
   DreamMachinePro_MSGCNT 127124
   DreamMachinePro_TIME 2020-09-23 20:35:32
   FUUID      5f69bc8a-f33f-7810-58ba-84ba8b234d5ae75b
   FVERSION   74_Unifi.pm:0.199890/2019-08-12
   LASTInputDev DreamMachinePro
   MSGCNT     127124
   NAME       DreamMachinePro
   NOTIFYDEV  global
   NR         272
   NTFY_ORDER 50-DreamMachinePro
   STATE      connected
   TYPE       Unifi
   UC_VERSION 5.14.22
   VERSION    3.5.0
Attributes:
   DbLogExclude .*
   isUDM      1
   room       System->Unifi


An sich hatte ich eben die if Zeile auskommentiert mehr nicht.

@Micky79 & @Wuehler So war das eben bei mir auch mit dem if statement, wenn das auskommentiert ist, dann connectet FHEM einwandfrei. Ich habe eine DreamMachine Pro, FW 1.8.0

Micky79

Ah, habe das device gelöscht und dann neu angelegt. Jetzt geht es.
Super und Danke!!!


Wuehler

@Florie: Kannst du bitte das if wieder einkommentieren, schauen ob es wieder nicht connected und dnn ein shitdown restart von FHEM durchführen. Mal schauen ob es dann geht.

Florie

Dann springt er nach Neustart von FHEM direkt wieder auf disconnected :(

Internals:
   DEF        192.168.178.1 443 crypt:XXXXXXX crypt:XXXXXXXXX
   FUUID      5f69bc8a-f33f-7810-58ba-84ba8b234d5ae75b
   FVERSION   74_Unifi.pm:0.199890/2019-08-12
   NAME       DreamMachinePro
   NOTIFYDEV  global
   NR         272
   NTFY_ORDER 50-DreamMachinePro
   STATE      disconnected
   TYPE       Unifi
   UC_VERSION unknown
   VERSION    3.5.0


Auch das Löschen des Devices und anschließendem define bringt nur disconnected.
Nachdem ichs wieder auskommentiert habe hat nach FHEM-Neustart das "neue" Device direkt wieder connected und sich die Readings geholt ... Username ist bei mir meine Mailadresse, sprich da ist ein @-Zeichen drinnen. Kann es daran liegen, dass das if-Statement "fehlschlägt"?

Wuehler

Mmmh, seltsam. Hast du schon mal ins Log geschaut mit einkommentiertem if.
Ggf. verbose auf 5 stellen. Ich hoffe das Modul loggt dann die empfangene Login-Antwort (habe gerade keinen Zugriff auf den Sourcecode).

kunze

@Florie
Kannst du mal ausprobieren das username durch zum Beispiel unique_id zu ersetzen ob es dann geht?

@Wuehler
ich würde die Funktion Unifi_Login_Receive für die UDM umbauen.
Wenn ich einen falschen Nutzer oder Passwort angebe bekomme ich immer ein
HTTP/1.1 401 Unauthorized

Wenn der Nutzer und das Passwort stimmen, immer ein
HTTP/1.1 200 OK

Das sollte doch beim CK hoffentlich auch so sein, oder kommt da auch ein OK zurück wenn der Login nicht erfolgreich war?

Also evtl. so wie im Anhang, ungetestet.

Florie

@Wuehler:

Das kommt alle 30 Sekunden im Log mit einkommentiertem if-Statement

2020.09.27 08:56:52 5: DreamMachinePro (Unifi_Login_Receive) - executed.
2020.09.27 08:56:52 5: DreamMachinePro (Unifi_Login_Receive) - Login Failed (without msg)! - state:''
2020.09.27 08:56:52 5: DreamMachinePro (Unifi_Login_Receive) - Connect/Login to Unifi-Controller failed. Will try again after interval...


@kunze: Mach ich gerne, wie bekomme ich die unique_id bzw. was soll ich genau tun ;) ?