test: modul 74_UnifiProtect.pm

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

Vorheriges Thema - Nächstes Thema

justme1968

anbei eine erste test version eines moduls für unifi protect.

prinzipiell funktioniert das modul genau so wie dieses hier: https://forum.fhem.de/index.php/topic,76529.msg684210.html#msg684210 für unifi video.

die abweichungen sind wie folgt:
- statt dem apiKey wird user und password verwendet. d.h.:
  auf protect seite einen view only user anlegen users->invite users->local access only (mit dem admin account hat es bei mir nicht funktioniert)
  dann mit define <protect> UnifiProtect <ip> <user> <password> das device anlegen
- events bei bewegung gibt es noch nicht
- achtung: das token für die autorisierung per url läuft etwa nach 10 minuten ab. da noch kein refresh eingebaut ist geht dann der live view in der detail ansicht bzw. dem weblink nicht mehr. abhilfe: set <protect> reconnect und seite neu laden.

snapshots lassen sich für eine längere zeit machen. ob dieses token auch abläuft weiss ich noch nicht.

ich habe aktuell nur eine kamera an einem cloud key gen2 plus. ob es mit mehr kameras und/oder einem protect nvr oder einer udm pro geht weiss ich nicht.

falls es anwender gibt:
ich würde den autorefresh der token noch einbauen und schauen ob man an die motion events kommt. ebenso kann man die plattengröße und den füllstand auslesen. man kommt scheinbar auch an vergangene motion events inklusive snaphosts. wie man letzteres sinnvoll in fhem integriert weiss ich noch nicht.

edit 2020-02-28: das 'live' bild sollte jetzt unbegrenzt laufen, ich habe aber bemerkt das es auf protect seite scheinbar nur alle 10 sekunden aktualisiert wird. oder hat jemand mit der alten version etwas anderes gesehen?

edit 2020-04-06: erzeugen von motion events in fhem wenn es entsprechende einträge im events.cameras.log des protect servers gibt.

voraussetzung: der user unter dem fhem läuft muss per ssh und ohne password auf das system kommen auf dem der nur läuft. im fhem nvr device ist das sshUser attribut zu setzen. dies ist der user mit dem das ssh kommando auf nvr seite aufschlagen soll. bei einem 'echten' nvr ist das der user ubnt.

also:
- ssh zugang einrichten. d.h. public key in .ssh/authorized_keys file auf nvr seite eintragen
- auf kommandozeile testen ob es geht
- sshUser attribut setzen
- set <nvr> reconnect

ich konnte noch nicht testen was passiert wenn das motion.log file auf nvr seite rotiert wird. müsste aber gehen.

edit 2020-12-11: automatische erkennung von unifi os (unvr(-pro), udm(-pro)).
damit geht: login, token refresh, kameras erkennen, snapshot.
damit geht noch nicht: javascript für 'live' bild in der detail ansicht, events per ssh.
wichtig: fhem user anlegen mit: add admin -> add user -> role: limited admin, account type: local access only

edit 2021-02-28: javascript für 'live' bild in der detail ansicht und für die weblink devices auch für unifi os systeme. achtung:
da es nicht mehr möglich ist die bilder im browser per javascript direkt vom nvr zu holen spielt fhem proxy. d.h. die bilder werden über eine url af dem fhem system geholt und das modul reicht die anfrage an den nvr weiter. die version im angehängten modul macht das non blocking und ohne fork. es ist zwar auch eine version mit fork implementiert die fhem theoretisch weniger belastet aber da noch jede sekunde abgefragt wird sind das viele forks. ohne fork sollte also doch besser sein. im gegensatz zu unifi video aktualisiert protect den snapshot nicht sekündlich sondern alle 3-5 sekunden. das 'live' bild ist also noch weniger live.

edit 2021-03-04: 'live' bild repariert

edit 2022-02-04: das modul ist jetzt mit diesem stand eingecheckt
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

andies

Das klappt alles schon mal. Ich sehe ein nicht erkanntes Bild oben im device (siehe Screenshot), kann aber user und Passwort auslesen. Auch snapshot läuft!
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

justme1968

wie oben geschrieben: das bild oben geht nicht mehr sobald nach 5 minuten das token abläuft. nach einem set reconnect und neu laden der seite sollte es wieder für 5 minuten gehen.

das wird dann mit dem automatischen refresh und etwas javascript behoben.

es wäre noch gut zu wissen ob die snapshots nach einer weile auch nicht mehr gehen. das zweite token ist länger gültig. ich weiß aber nicht wie lange.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

andies

Ich sehe auch nach einem refresh der Seite kein Bild!
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

justme1968

und direkt vorher set <protect> reconnect?
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

andies

FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

kl@us

Hallo justme,
vielen Dank für das Modul. Ich konnte es für einen cloudkey2 einrichten. Alle 4 Kameras werden sauber erkannt. Für die aktuell connecteten 2 Kameras wird auch sauber ein Previewbild angezeigt.

Schon mal Danke für das Modul.
Produktiv: FHEM (aktuell) auf NUC; diverse HM-Sensoren und Aktoren; Z-Wave, HUE

Newbie

Hallo justme,

kann kl@us nur zustimmen. Meine zwei Kameras funktionieren auch. 
Ich muss aber zweimal set <protect> reconnect ausführen, damit wieder Live Bilder zu sehen sind.

vg Jens
fhem-6.1 (configDB+DbLog)  auf ODROID-XU4

justme1968

ich habe die version ganz oben aktualisiert.

das 'live' bild sollte jetzt unbegrenzt laufen, die js seite aktualisiert das token jede minute.

ich habe aber bemerkt das das bild auf protect seite scheinbar nur alle 10 Sekunden aktualisiert wird. egal wie oft man einen snapshot macht. hat jemand mit der alten version etwas anderes gesehen?

wenn das vorschau bild nicht geht: welcher browser ist das ? sieht man in der js konsole fehler?
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

andies

Komisch, ich sehe nach wie vor kein Vorschaubild, ich habe
Chrome Version 79.0.3945.130 (Offizieller Build) (64-Bit)
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

justme1968

schau dir mal die javascript konsole an. wenn da etwas von Failed to load resource: net::ERR_CERT_AUTHORITY_INVALID steht musst du ein mal die protect seite direkt aufrufen und die nicht sicher meldung von hand bestätigen bzw. trotzdem anschauen. das kommt weil chrome das private zertifikat nicht mag.

wenn es etwas anderes ist: zeig mal die javascript konsole.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

andies

Danke, klappt. Für diejenigen, die mitlesen: Anzeigen->Entwickler->JavaScript Konsole und da steht dann ales weitere zum aufrufen.
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

kl@us

Ich habe die neue Version inzwischen geladen. Ein "überspielen" und Neustarten von Fhem hat nicht geklappt.
Nach dem Löschen des vorhandenen Device in Fhem und dann neuer Definition alles okay.
Vorschaubilder werden upgedatet. Einen Timeout zwischen Fhem und Cloudkey nicht erkennen.

Zum Browser: Mit Firefox funktioniert die Anzeige der Vorschauen. Unter IOS mit Safari werden die Vorschaubilder nicht angezeigt.

Danke. Klaus
Produktiv: FHEM (aktuell) auf NUC; diverse HM-Sensoren und Aktoren; Z-Wave, HUE

justme1968

unter iOS wird vermutlich auch das selbst signierte zertifikat des cloudkey nicht akzeptiert. geh mal direkt mit safari auf die url und bestätige die meldung.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

kl@us

Deine Annahme war korrekt.

Zertifikat wurde "angemeckert". Hab die Seite dann trotzdem geladen und jetzt klappt es auch mit Fhem.

Danke für den Hinweis.
Produktiv: FHEM (aktuell) auf NUC; diverse HM-Sensoren und Aktoren; Z-Wave, HUE