UniFi Protect | IP-Camera von Fremdherstellern einbinden

  • In diesem Artikel geht es darum eine Möglichkeit aufzuzeigen auch noch alte bzw. vorhandene IP-Kameras der Infrastruktur in Unifi Protect einzubinden.

    Da ich aus dem Discord Channel darum gebeten wurde, habe ich nochmal eine deutsche Anleitung aus meiner eigenen Erfahrung dazu niedergeschrieben.

    1 Anforderungen

    • Diese Anleitung setzt Grundkenntnisse in Docker sowie einen funktionierender Docker-Host voraus
      Der Proxy kann auch nativ laufen, siehe dazu die original Anleitung.
    • Die Fremdkamera muss RTSP unterstützen.
      Dies kann man z.B. testen, indem man mit VLC mal eine Url öffnet: rtsp://user:password@cameraip/ 
    • Es wird ein einigermaßen Leistungsstarker PC benötigt.
    • OpenSSL
    • Linux-Shell oder unter WIndows eine WSL Shell
      Alternativ müsst ihr die Befehle auf den WIndows-Pfadsyntax anpassen.


    2 Das Prinzip

    Damit die Fremd-Kamera erkannt wird, müssen wir Unifi Protect vorgaukeln, dass es sich um eine Unifi Kamera handelt. Dies übernimmt der Unifi-Kamera-Proxy. Er gibt sich als Unifi Kamera aus, und übermittelt die Daten von einer beliebigen RTSP Quelle.

    Fremd-Kamera --> Unifi Kamera Proxy --> Unifi Protect


    Dieser Proxy muss permanent laufen, ist er aus, ist die Kamera für Unifi Protect auch aus.

    Ich habe aktuell keine Erfahrungen wie viele Kameras auf einem Raspberry PI 4 laufen würden, ich vermute aber mal nicht all zu viele. Daher würde ich schon einen leistungsstärkeren Computer/Server für diese Aufgabe betreuen.


    3 Zertifikat erstellen

    Bevor es losgeht benötigen wir erstmal ein Fake-Zertifikat für die Kamera.

    Dazu erstellen wir uns ein Verzeichnis in dem wir arbeiten. Ich habe z.B. /home/hefti/unifi-cam erstellt. Das könnte unter Windows aber auch  C:\unifi-cam sein.

    Wir öffnen eine Shell und wechseln in das Verzeichnis und führen darin folgende Befehle aus. Achtung: für Windows Pfade anpassen.

    Code
    openssl ecparam -out /tmp/private.key -name prime256v1 -genkey -noout
    openssl req -new -sha256 -key /tmp/private.key -out /tmp/server.csr -subj "/C=TW/L=Taipei/O=Ubiquiti Networks Inc./OU=devint/CN=camera.ubnt.dev/[email protected]"
    openssl x509 -req -sha256 -days 36500 -in /tmp/server.csr -signkey /tmp/private.key -out /tmp/public.key
    cat /tmp/private.key /tmp/public.key > client.pem
    rm -f /tmp/private.key /tmp/public.key /tmp/server.csr



    Jetzt sollte es im Verzeichnis eine client.pem geben die wir im späteren Schritt benötigen.


    4 Adoption Token erstellen

    1. Wir öffnen Unifi Protect, und fügen eine neue Kamera auf der Devices Seite hinzu.
      https://unifi/protect/devices (Url kann je nach Installation variieren)
    2. Als Kamera wählen wir G3 Micro

    3. Auf der nächsten Dialog-Seite klicken wir auf Continue
    4. Danach gebt ihr irgendeinen Quatsch als Wifi-Zugangsdaten ein

    Und klickt anschließend auf Generate QR Code


    Von dem QR Code macht ihr jetzt einen Screenshot. Unter Windows 10 habe ich das mittels [Windowstaste + Shift + S] gemacht und dann den QR-Code ausgeschnitten.

    Snipping-Tool oder einfach die Drucken-Taste und dann in MsPaint.exe einfügen geht aber sicher auch.

    Der QR Code muss jedenfalls als Bild gespeichert werden.


    Danach geht auf folgende Webseite, ladet das soeben gespeicherte Bild hoch und schaut euch den kodierten Inhalt des QR Codes an.

    ZXing Decoder Online


    Im Abschnitt Raw text kopiert ihr jetzt die Zeichenkette der vorletzten Zeile.

    z.B.

    Code
    RoOOnpyC2nmjW3BLECXB8PSFJws2wCoA


    Dies ist euer Adoption-Token.

    Dieser ist nur zeitlich begrenzt gültig. Wenn ihr für den nächsten Schritt zulange benötigt, kann es sein, dass ihr nochmal einen neuen Token erstellen müsst.

    5 Den Proxy starten und die Kamera einbinden

    Bitte vergewissert euch nochmals, dass ihr die Kamera über VLC mit RTSP aufrufen könnt.


    Jetzt starten wir unifi-camera-proxy als docker container.

    Dazu müsst ihr

    • den Pfad für die client.pem auf dem Host anpassen, in meinem Fall ist dies /home/hefti/unifi-cam/client.pem
    • die Platzhalter inklusive der spitzen Klammern mit eueren Daten ersetzen
    • und natürlich die richtige rtsp Url mitangeben.
    Code
    docker run --rm -v "/home/hefti/unifi-cam/client.pem:/client.pem" keshavdv/unifi-cam-proxy unifi-cam-proxy --verbose --ip "<Camera IP>" --host <Unifi Protect IP> --mac 'AA:BB:CC:00:00:01' --cert /client.pem --token <Adoption token> rtsp -s rtsp://user.pass@cameraip/

    Ich habe hier bewusst den Parameter --mac mit angegeben, an letzter Stelle eine 01 für die 1. Kamera. Wenn ihr eine Zweite Kamera hinzufügen wollt, soltet ihr diese Zahl erhöhen auf z.b. 02 usw. für jede weitere Kamera. Bei mir ist dies identisch mit der letzten Stelle der IPv4 Adresse der Kamera.
    Die Kamera wird euch in Unifi-Protect dann auch mit den letzten beiden Stellen der MAC-Adresse angezeigt, also 0001.


    Nachdem ihr den Befehl gestartet habt, sollte Docker den Proxy ausführen und eure Kamera in Unifi Protect auftauchen.


    Hier der Link zur original Dokumentation / Anleitung:


    GitHub - keshavdv/unifi-cam-proxy: Enable non-Ubiquiti cameras to work with Unifi NVR
    Enable non-Ubiquiti cameras to work with Unifi NVR - GitHub - keshavdv/unifi-cam-proxy: Enable non-Ubiquiti cameras to work with Unifi NVR
    github.com


    Disclaimer: Alle Anleitungen/Tutorials sind nach bestem Wissen und Gewissen verfasst, gehen immer von den definierten Software/Firmware-Versionen aus und sind auf das englische GUI ausgelegt.

    Es gibt keine Garantien auf Erfolg. Im Falle eines Misserfolges hilft aber sicherlich die Community hier immer weiter.

    Keiner der Autoren oder der Betreiber des Forums ist für die aus der Nutzung resultierenden Probleme/Herausforderungen verantwortlich.

    Jegliche hier beschriebenen Schritte erfolgen ausnahmslos in eigener Verantwortung des Durchführenden. Eltern haften für ihre Kinder.

Kommentare 15

  • Moin Zusammen,

    ich habe seit gestern einen Cloud Key Gen2 Plus im Einsatz. Dort ist ja auch Protect installiert.

    Ich habe zusätzlich ein Kamerasystem (NICHT von ubiquiti) laufen, 4 Kameras mit extra WLAN Router.

    Könnte ich den WLAN Router weg lassen und die "Fremdkameras" mit dem Cloud Key, bzw. Protect nutzen?

    Offiziel funktionieren ja nur Kameras von Ubiquiti, kann man da irgendwas "umbiegen"?


    Gruß

    Sascha

    • Bevor ich den Cloud Key eingerichtet habe, hatte ich einen Raspberry mit dem UniFi Controller genutzt.

      Könnte ich den jetzt neu aufsetzen und da nur Docker und den Proxy laufen lassen?

      Werden die Kameras dann in dem Cloud Key erkannt?

      Oder bin jetzt völlig auf dem Holzweg?

  • leider ist ein downgrade auf 1.25.1 nicht mehr möglich.

    Gibt es eine andere Möglichkeit eine Kamera hinzuzufügen?


    Version table:

    *** 2.8.28 500

    500 https://apt.artifacts.ui.com bullseye/release arm64 Packages

    100 /var/lib/dpkg/status

    2.7.34 500

    500 https://apt.artifacts.ui.com bullseye/release arm64 Packages

    2.7.33 500

    500 https://apt.artifacts.ui.com bullseye/release arm64 Packages

    2.7.18 500

    500 https://apt.artifacts.ui.com bullseye/release arm64 Packages

    2.6.17 500

    500 https://apt.artifacts.ui.com bullseye/release arm64 Packages

  • Hab mich gestern Abend mal mit der Geschichte befasst...Funktioniert auch alles ganz gut...Nur bekomme ich kein Bild.
    Container läuft, Kamera ist eingebunden, nur wenn man sie in der UDM-Pro anschauen will, kommt ne Eieruhr und kein Bild...

    Habs sowohl auf nem Mac probiert, als auch auf nem zügigen I7 unter Windows...

  • Mega Toll.....DANKE

  • Ich versuch dies gerade mit einer UDM-SE mit Firmware 2.4.6 und UniFi Protect Application 2.0.0-beta.3.


    So als Hilfe für andere mit dem selben Problem.

    Adopt-Token / add Device Funktion ist in UniFi Protect Application Version 2.0.0-beta.2 und 3 nicht mehr vorhanden.


    Lösung; Downgrade auf Version 1.21.5 der UniFi Protect Application. > SSH > apt-get install --reinstall --allow-downgrades unifi-protect=1.21.5 -y

    Dann funktioniert wieder https://192.168.1.1/protect/devices/add



    Tldr: Der Downgrade Prozedur

    Stop UniFi Protect in UniFi OS Settings-Applications

    Enable SSH if not done already

    SSH into the device

    [email protected] (Thel IP Adress of your UDM Pro or UCKG2+)

    enter the password you set

    then type the following commands

    apt-get update

    apt-get install --reinstall --allow-downgrades unifi-protect=1.21.5 -y


    Bonus: "apt-cache policy unifi-protect" damit kann man sich die ganzen verfügbaren Versionen von UniFi Protect anzeigen lassen.


    Hoffe habe damit ein par Leuten geholfen, die auf das selbe Problem gestossen sind.


    Gruss

    Piranja

    • Hallo,

      leider gibt es den Download zu der Version 1.21.5 nicht mehr.

      Kennt jemand eine andere Möglichkeit ein Downgrade von protect auf einem cloud key durchzuführen?

    • https://<UDM/UNVR IP>/proxy/protect/api/cameras/qr

  • Ich versuche das gerade bei mir umzusetzen. Allerdings scheitere ich schon bei der Erstellung des Adopt-Token. Ich kann auch der Device-Seite nirgends eine Möglichkeit finden ein neues Gerät hinzuzufügen. Wo finde ich die?


    edit: gerade gefunden, man muss in der URL ein 'Add' anhängen (https://192.168.1.1/protect/devices/add)

  • Hallo,


    ich bekomme beim starten des Dockers leider immer diesen Fehler:


    an was könnte das noch liegen?

    • gute frage an dieser stelle scheiter ich auch gerade

  • Hallo, ich bin heute auf dieses tolle Projekt gestoßen und bei weiterer Suche auch auf den Docker Container auf der Synology. Leider habe ich dazu keine weiteren Infos gefunden, wie der Container konfiguriert werden sollte. Für eine kurze Hilfestellung wäre ich sehr dankbar.

    Gruss Lutz

  • Hallo Flori


    Funktioniert auch eine PTZ Kamera.


    Ich möchte ein Axis M5014 PTZ über Protect laufen lassen. Hat da jemand Erfahrung?


    Danke Gruss Andreas

  • Wie gesagt, ich habe mir meinen gebrauchten 100€ PC mit 16GB Ram, 4 Kernen gekauft um drauf Home Assistant OS laufen zu lassen.

    Darunter habe ich mir per Docker die 4 Proxys zusätzlich installiert und es läuft gut.

    Mit PI etc habe ich keine Erfahrung. Hatte da mal rumgespielt früher mit ffmpeg und das war eher geruckel.


    Und was ich auch sagen kann, an die Experience von Unifi Cameras kommt das nicht heran. Vielleicht liegt es aber auch einfach an meinen Cameras, sind ja schon 7 Jahre alt und nicht mehr zuvergleichen mit der Optik/Funktionen der Unifi G4 Pro.


    Mir war nur wichtig, dass die Kameras endlich mal aufgezeichnet werden und nicht mehr in die China-Cloud (Hikvision) funken.

  • Ich hab jetzt noch nicht alles durch geschaut aber die Überschrift sagt schon mal aus das ich das suche :grinning_face_with_smiling_eyes:


    Meine Eltern haben erst nen Schweine Geld für billige China Kameras ausgegeben.


    Danach kam UniFi und wir ärgern uns alle das wir noch auch die Kameras genommen haben.


    Naja ich schau mal nochmal genauer .


    Aber klingt gut :smiling_face: