UniFi Protect - Python API

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • MarkusCosi
    LoxBus Spammer
    • 28.09.2023
    • 320

    #1

    UniFi Protect - Python API

    Hallo zusammen,

    hat schonmal jemand die inoffizielle Unifi Protect Python API benutzt?

    Ich würde mir davon erhoffen bspw. den Lautsprecher der Kamera nutzen zu können (Alarm z.B.), z.B. über die talkback_stream Funktion.
    Oder aber für Detections des Alarm-Managers (über die native Webhook-Schnittstelle, siehe Thema hier) noch die Detection Zones (vllt. über die Smart Detection Zone Funktion?)

    Hat hier jemand Erfahrungen damit und weiß, ob das auf z.B. einem Loxberry problemlos und ressourcenschonend läuft?

    Danke!
  • MarkusCosi
    LoxBus Spammer
    • 28.09.2023
    • 320

    #2
    ...da ich gerne AI-Katzen-Detektions-getriggert den Lautsprecher der Unifi-Cam nutzen wollen würde, so dachte ich, ich probiere es noch ein mal:
    hat schon jemand die Lautsprecher der Unifi-Cams nutzen können?

    In den Settings → Control Pane → Integrations → Protect API ist nun auch eine Doku zu einer API aufgetaucht: "UniFi Protect API (5.3.45)". (wohl ähnlich zur Network API?)
    Dort findet sich unter Camera Information & Management auch " Create talkback session for camera".

    Das werde ich wohl mal ausprobieren... vllt. hat das schon jemand gemacht und hat Erfahrungswerte?

    Kommentar


    • GeoPod
      GeoPod kommentierte
      Kommentar bearbeiten
      Hört sich sehr spannend an. Bin sehr gespannt was du heraus bekommst.
  • MarkusCosi
    LoxBus Spammer
    • 28.09.2023
    • 320

    #3
    so.... mit der selben API Token wie für die neue Unifi Network API (siehe Link und Vorgehen hierzu oben) bekomme ich nun eine ID für die Unifi-Protect-Kameras im Netzwerk über den folgenden Befehl in der Kommando-Zeile bzw. dem MacOS Terminal:
    • curl -k -X GET 'https://192.168.XXX.XXX/proxy/protect/integration/v1/cameras' -H 'X-API-KEY: XXX' -H 'Accept: application/json'
    Mit folgenden API call bekomme ich dann eine rtp-Streaming Adresse (siehe hier) für die spezifische Kamera mit der ID YYY (steht im Output des obigen Befehls im Terminal):
    • curl -k -X POST 'https://192.168.XXX.XXX/proxy/protect/integration/v1/cameras/YYY/talkback-session' -H 'X-API-KEY: XXX' -H 'Accept: application/json'
    Als Ausgabe im Terminal steht dann die Info:
    {"url":"rtp://IPderKamera:7004","codec":"opus","sampling Rate": 24000,"bitsPerSample":16}

    Mit dem Tool ffmpeg lässt sich eine mp3 auf die Kamera streamen. Ziel ist hier eine Ausgabe per Terminal Befehl den man dann über das AnyPlugin z.B. über einen virtuellen Ausgang in Loxone triggern kann..

    folgender Befehl spielt dann eine mp3 über den Lautsprecher der Kamera ab:
    • ffmpeg -re -i 'file:///Users/../Test.mp3' -c:a opus -strict -2 -b:a 24k -f rtp rtp://IPderKamera:7004
    Über das AnyPlugin am Loxberry lässt sich so nun ein Sound-File über die Unifi-Kameras abspielen...
    Zuletzt geändert von MarkusCosi; 05.05.2025, 11:33.

    Kommentar

    • MarkusCosi
      LoxBus Spammer
      • 28.09.2023
      • 320

      #4
      ....gerne würde ich auch TTS benutzen können... Hierfür scheint ffmpeg den Filter "flite" vorgesehen zu haben, siehe hier.
      Leider ist der nicht standardmäßig installiert, und auch nicht auf dem Loxberry (dort: ffmpeg version 4.3.6-0+deb11u1+rpt). Weiß jemand, wie man den Filter nachträglich hinzufügt?

      Kommentar

      • MarkusCosi
        LoxBus Spammer
        • 28.09.2023
        • 320

        #5
        Update: Mit folgendem Befehl kann man seine Unifi-Kameras auch sprechen lassen.
        • ffmpeg -re -f lavfi -i flite=text='test':voice=slt -c:a opus -strict -2 -b:a 24k -f rtp rtp://IPderKamera:7004
        Über den Loxberry (dort ist der TTS-Filter flite bereits installiert!) und das Any-Plugin kann ich nun erfolgreich so über Loxone mp3's und Text über die Kameras ausgeben..

        Kommentar

        Lädt...