test: modul 74_UnifiProtect.pm

Begonnen von justme1968, 24 Februar 2020, 21:04:58

Vorheriges Thema - Nächstes Thema

justme1968

ganz oben gibt es eine neue version die auch für unifi os systeme das javascript für 'live' bild in der detail ansicht unterstützt.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

andasquared

Hallo justme,

ich bin gerade auf dein Modul gestoßen.
Suche schon lange danach, keine Ahnung wie mir das bis jetzt entgangen ist  ;)

Bekomme es aber leider nicht zum Laufen.
Ich habe eine UDM-Pro

Der State geht bei mir direkt auf disconnected.
Die Kameras werden aber ausgelesen:

defmod UnifiProtect UnifiProtect xxx.xxx.xxx.xxx
attr UnifiProtect DbLogExclude .*
attr UnifiProtect password crypt:xxxxx
attr UnifiProtect room UniFi
attr UnifiProtect user crypt:xxxx
attr UnifiProtect verbose 5

setstate UnifiProtect disconnected
setstate UnifiProtect 2021-03-03 09:26:12 cam0id xxxxxxxxxxxxxxxxxxxxxxxx
setstate UnifiProtect 2021-03-03 09:26:12 cam0name G3 Micro
setstate UnifiProtect 2021-03-03 09:26:12 cam0state CONNECTED
setstate UnifiProtect 2021-03-03 09:26:12 cam1id xxxxxxxxxxxxxxxxxxxxxxxx
setstate UnifiProtect 2021-03-03 09:26:12 cam1name G4 Pro
setstate UnifiProtect 2021-03-03 09:26:12 cam1state CONNECTED
setstate UnifiProtect 2021-03-03 09:26:12 cam2id xxxxxxxxxxxxxxxxxxxxxxxx
setstate UnifiProtect 2021-03-03 09:26:12 cam2name G3 Flex
setstate UnifiProtect 2021-03-03 09:26:12 cam2state CONNECTED
setstate UnifiProtect 2021-03-03 09:26:12 cam3id xxxxxxxxxxxxxxxxxxxxxxxx
setstate UnifiProtect 2021-03-03 09:26:12 cam3name G4 Bullet
setstate UnifiProtect 2021-03-03 09:26:12 cam3state CONNECTED
setstate UnifiProtect 2021-03-03 09:26:12 totalCount 4

Hättest du eine Idee was hier falsch läuft?

Bin mir auch nicht ganz sicher, ob ich die aktuellste Version von deinem pm file habe.
In der ersten Zeile steht:
# $Id: 74_UnifiProtect.pm 19679 2019-06-21 14:14:29Z justme1968 $

Danke!
lg

justme1968

das datum im file ist falsch so lange es noch nicht eingecheckt ist.

doe einzige stelle an der wirklich disconnected gesetzt wird ist wenn es kein user oder kein password gibt.

schau mal bitte ins log. ist da was zu sehen?

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

andasquared

User und Passwort sind gesetzt.
habe einen Local Admin Account mit View Only Berechtigung auf Protect erstellt.
mit dem User kann ich mich normal anmelden und habe entsprechend Zugriff.

Im Log ist jetzt nichts auffälliges zu finden.

2021.03.03 12:07:39 3: UnifiProtect: is UnifiOS: 1
2021.03.03 12:07:39 4: UnifiProtect: fetching data from https://xxx.xxx.xxx.xxx/api/auth/login
2021.03.03 12:07:40 5: $VAR1 = {
          'method' => 'POST',
          'url' => 'https://xxx.xxx.xxx.xxx/api/auth/login',
          'header' => 'Content-Type: application/json
X-CSRF-Token: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx',
          'loglevel' => 4,
          'buf' => '',
.
.
.

                                      'totalCount' => {
                                                        'VAL' => 4,
                                                        'TIME' => '2021-03-03 12:07:26'
                                                      }
                                    }
                    },
          'code' => '200',
          'key' => 'auth',
          'hu_filecount' => 1,
          'path' => '/api/auth/login',
          'data' => '{ "username": "xxxx", "password": "xxxxxxxx" }'
        };

also ich sehe, dass er meinen korrekten User verwendet.
die Kameras werden in den Readings auch gezeigt.

sowas sehe ich noch:

2021.03.03 11:49:49 1: PERL WARNING: Use of uninitialized value $name in hash element at ./FHEM/74_UnifiProtect.pm line 238.
2021.03.03 11:49:49 1: PERL WARNING: Use of uninitialized value $name in concatenation (.) or string at ./FHEM/74_UnifiProtect.pm line 240.

ev. wird der Status nur falsch angezeigt?
wenn ich eine Kamera neu starte - sehe ich trotzdem in den Readings, dass sie disconnected ist.
später ist sie dann auch wieder Connected.
hm..

Livebilder sehe ich im Device keine.
Im WebLink Device sehe ich das auch nicht.
defmod UnifiProtectCAM1 weblink htmlCode {UnifiVideo_2html('UnifiProtect','G3 Micro','700')}

lg





justme1968

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

andasquared

ja, das funktioniert.

habe jetzt auch einen sshUser hinterlegt.
seit dem hat das Device den Status "watching"

kann das später am Abend prüfen, ob hier motion events ausgelesen werden können.


d.h. es schaut so aus, als wäre der status "disconnected" nur fälschlicher weise angezeigt worden.
die Kameras wurden erkannt und auch ein restart einer kamera ist im Reading erkannt worden.

also scheinen "nur" die Livebilder nicht zu funktionieren.

schaut für dich mein define beim UnifiProtect und beim weblink device richtig aus?

justme1968

ssh ist für protect (aktuell) nicht relevant.

bitte nimm die version die ich eben an den ersten beitrag angehängt habe und versuch die folgenden urls: jeweils fhem ip, name und id ersetzen.

http://<fhem ip>:8083/fhem/protect

http://<fhem ip>:8083/fhem/protect?name=<name>&cam=<id>

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

andasquared

danke für die Änderungen in deinem Modul.
hab das gerade eingespielt und getestet.

gebe ich jetzt direkt die URL ein, so wie du es beschrieben hast, funktioniert die Anzeige des Livebilds:

http://fhem.domain.local:8083/fhem/protect?name=UnifiProtect&cam=XXXXXXXXXXXXXXXXXXX
http://fhem.domain.local:8083/fhem/protect?name=UnifiProtect&cam=XXXXXXXXXXXXXXXXXXX&width=800

kann hier auch den Parameter width mitgeben, und das funktioniert.

man sieht im Device jetzt, dass versucht wird ein Livebild anzuzeigen.
dort klappt es aber noch nicht.
die variable unvr wird scheinbar nicht richtig mit dem Devicenamen (in meinem Fall) UnifProtect befüllt.

diese URL wird jede Sekunde neu geladen:
http://fhem.domain.local:8083/fhem/protect/?name=unvr&cam=XXXXXXXXXXXXXXXXXXX&width=16&ts=1614833080.047
auch die anderen 3 CAMs werden versucht anzuzeigen.
die IDs der Kameras passen.

im Weblink Device ist alles gleich geblieben.
hier sehe ich nicht, dass versucht wird eine Verbindung zu der Kamera aufzubauen.

lg

andasquared

hab noch gerade versucht mein Device von UnifiProtect zu unvr umzubenennen.
dann funktionieren die Livebilder kurz.
Fhem hängt sich dann aber komplett auf.

Can't use an undefined value as a symbol reference at ./FHEM/74_UnifiProtect.pm line 541
... der Eintrag ist dann der letzte im Log

justme1968

neue version im ersten beitrag.

ich hatte den namen auf js seite noch fest codiert.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

andasquared

cool - super!
Livebilder funktionieren jetzt - und FHEM hängt sich auch nicht auf.

schaut sehr gut aus!
danke, dass du das so schnell eingebaut hast ;)

2 Fragen trotzdem noch:
das WebLink Device zeigt noch nichts
defmod UnifiProtectCAM1 weblink htmlCode {UnifiVideo_2html('UnifiProtect','xxxxxxxxxxxxxxx','700')}
muss ich hier irgendwas anderes machen?

zum Motion detection über ssh:
das klappt noch nicht - hier bist du noch dran, oder kann ich hier schon irgendwas machen?
... vielleicht kann ich dich mit Tests unterstützen?

vielen Dank nochmal!
lg

justme1968

bei protect ist es UnifiProtect_2html statt UnifiVideo_2html :).

für protect scheint es so zu sein das man nicht auf den ssh hack ausweichen muss. ich habe aber noch nicht geschaut wie es mit den events genau funktioniert.

aber: bist du sicher das du die motion events für irgendetwas verwenden würdest? bei unifi video ist das ganze so schlecht das jede wolke events produziert. da ich meine cams noch nicht umgezogen habe weiss ich nicht ob protect besser ist, nach allem was im unifi forum zu sehen ist scheint es aber zumindest mit g3 kammeras nicht so zu sein.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

andasquared

ups - ja, das hätte ich auch sehen können ;)

kann das Live Video jetzt auch in dem webLink Device anschauen.

hab mich vorher allerdings zu früh gefreut.
Fhem hängt sich trotzdem auf.
egal ob ich in UnifiProtect Device oder im WebLink Device drinnen bin.

Can't use an undefined value as a symbol reference at ./FHEM/74_UnifiProtect.pm line 545.

Fhem als Service läuft noch - also es schmiert nicht komplett ab.
aber Fhem steht - man kann keine Seiten mehr erreichen.
es kommt nach dem Eintrag oben auch kein weiterer Eintrag ins Logfile.

wegen den Motion Events...
keine Ahnung, ich dachte nur - wenn es geht, baue ich das auch ein ;)
zb. Telegram Benachrichtigung bei einem Motion Event und zb. einen Snapshot machen und mitschicken

lg

justme1968

wann genau bekommst du diesen fehler? sofort oder nach einiger zeit?

ganz oben gibt es eine neue version mit ein paar zusätzlichen debug ausgaben.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

andasquared

Danke für die neue Version.
Hab jetzt nach dem Einspielen noch keinen Fehler gehabt.

Vorher ist es direkt gekommen, als ich das UnifiProtect Gerät geöffnet haben und die 4 Life Bilder gesehen habe.
Danach konnte ich keinen Seiten Refresh mehr machen.
Auch im WebLink Device war dieses Verhalten.

Nachdem ich den Fhem Serivce gestoppt und neu gestartet habe, konnte ich den "restlichen" Fhem normal verwenden.
Erst wieder mit einem Klick auf die beiden Devices kam der Fehler.

Ich beobachte das ein bisschen und gebe dir wieder Rückmeldung.
Danke für deine ganze Arbeit :)