Ankündigung

Einklappen
Keine Ankündigung bisher.

Amazon Alexa Plugin

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • AndreK
    antwortet
    Hallo psilo,

    bitte poste doch mal den Eintrag aus der streamdump.txt (natürlich teilanonymisiert) bei der Anfrage an das Alexa-Device nach dem Stream.
    Vielleicht gibts daraus erweiterte Erkenntnisse (das sind die Daten die aus dem Skill/Lambda an das Device gesendet werden).
    Es geht aus der Amazon Doku nicht ganz klar hervor, was an das Gerät tatsächlich gesendet wird.
    Auch die Beispiele auf der Amazon Skill-Website und auf den Beispielseiten von Amazon auf Github sind widersprüchlich.

    Auf welchem Device hast du getestet Show oder Spot. Eventuell liegt es auch einfach daran, dass beim Test auf dem Spot die Auflösung von 1280x720 nicht dargestellt werden kann (lt Amazon Spezi kann das Spot 480x480)

    jonofe : Wenn das bei mit Monocle funktioniert kannst Du eventuell via Wireshark mal mit protokollieren was da an Traffic gesendet wird.
    Nach meinen Erkenntnissen (Monocle Doku) sollte nach Übermittlung der Daten an das Alexa-Device das Protokoll usw. keine Rolle mehr spielen da der Stream dann direkt vom Alexa-Device von der Cam angefordert wird (siehe Config-Doku von Monocle hier wird auch via rtsp auf Port 554 übertragen ).

    Mal sehen ob wir das gemeinsam nicht doch ans Laufen bekommen.


    monocle.png
    Zuletzt geändert von AndreK; 02.01.2019, 03:14.

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Ich habe den CamerstreamController für den Edomi Smarthome Skill auch implementiert aber auch nicht zum Laufen bekommen.
    Problem sind vermutlich die Security Anforderungen seitens Amazon, d.h. es muss ein RTSP Stream auf Port 443 mit TLS1.2 sein.:

    https://developer.amazon.com/de/docs...s-requirements

    Der Monocle Smarthome Skill scheint das irgendwie anders zu machen, denn der funktioniert mit all meinen Hikvision Cams.

    Einen Kommentar schreiben:


  • psilo
    antwortet
    achja und in der p3_tools.py ist noch ein typo: "experitationDate" => "expirationDate"

    Einen Kommentar schreiben:


  • psilo
    antwortet
    Ich habe jetzt überall NONE eingetragen, leider auch ohne effekt - die auflösung habe ich auch korrigiert:
    Code:
    kitchencam:
        name: 'Kamera Küche'
        alexa_description: 'Kamera Küche'
        alexa_name: 'Kamera Küche'
        alexa_device: kitchencam
        alexa_icon: CAMERA
        alexa_actions: InitializeCameraStreams
        alexa_camera_imageUri: 'http://192.168.178.40/image/jpeg.cgi'
        alexa_csc_uri: '{"Stream1":"192.168.178.40/play1.sdp"}'
        alexa_auth_cred: ''
        alexa_stream_1: '{
        "protocols":["RTSP"],
        "resolutions":[{"width":1280,"height":720}],
        "authorizationTypes":["NONE"],
        "videoCodecs":["H264"],
        "audioCodecs":["NONE"]
        }'
    das "doorcam" kam übrigens wohl vom itemnamen. das ist jetzt weg.

    die myStream Daten aus der p3_tools.py:

    Code:
    plugins.alexa4p3.p3_tools {'expirationTime': '2019-01-01T19:45:30.20Z', 'videoCodec': ['H264'],
     'audioCodec': ['NONE'], 'resolution': {'height': 720, 'width': 1280}, 'protocol': 'RTSP', 'authorizationType': ['NONE'], 'ur
    i': 'rtsp://192.168.178.40/play1.sdp', 'idleTimeoutSeconds': 30}
    Zuletzt geändert von psilo; 01.01.2019, 19:42.

    Einen Kommentar schreiben:


  • psilo
    antwortet
    hmm habe jetzt die rtsp url im vlc erfolgreich getestet und die basic auth der kamera deaktiviert. kamera küche reagiert aber immer noch nicht.mmhm

    aktuelle konfig:
    Code:
    doorcam:
        name: 'Kamera Küche'
        alexa_description: 'Kamera Küche'
        alexa_name: 'Kamera Küche'
        alexa_device: kitchencam
        alexa_icon: CAMERA
        alexa_actions: InitializeCameraStreams
        alexa_camera_imageUri: 'http://192.168.178.40/image/jpeg.cgi'
        alexa_csc_uri: '{"Stream1":"192.168.178.40/play1.sdp"}'
        alexa_auth_cred: ''
        alexa_stream_1: '{
        "protocols":["RTSP"],
        "resolutions":[{"width":1920,"height":1080}],
        "authorizationTypes":["BASIC"],
        "videoCodecs":["H264"],
        "audioCodecs":["G711"]
        }'
    ich teste gerade mit MP4A als Audio Codec, müsste ja korrekt sein, oder:

    dd.JPG
    Angehängte Dateien
    Zuletzt geändert von psilo; 01.01.2019, 19:17.

    Einen Kommentar schreiben:


  • psilo
    antwortet

    das wäre der teilanonymisierte payload.. offenbar steht irgendwo hardcoded noch doorcam drin? oder woher kommt das beim cookie? {"payload": {"cameraStreams": [{"authorizationType": "BASIC", "videoCodec": "H264", "audioCodec": "G711", "resolution": {"width": 1920, "height": 1080}, "protocol": "RTSP"}]}, "header": {"name": "InitializeCameraStreams", "namespace": "Alexa.CameraStreamController", "messageId": "...", "payloadVersion": "3", "correlationToken": "..."}, "endpoint": {"scope": {"type": "BearerToken", "token": "Atza|..."}, "endpointId": "kitchencam", "cookie": {"extraDetail1": "doorcam"}}}

    Einen Kommentar schreiben:


  • psilo
    antwortet
    ps: alexa sagt derzeit wenn ich "zeige die kamera in der küche" sage, "Küche reagiert gerade nicht.. ich vermute meine url passt nicht für rtsp.. leider ist die trendnet cam sehr mager dokumentiert.. ich teste mal weiter..

    Einen Kommentar schreiben:


  • psilo
    antwortet
    AndreK offenbar habe ich das zu kompliziert ausgedrückt

    1) die cam ist basic auth geschutzt
    2) die basic auth credentials der kamera habe ich im nginx konfiguriert, da ich von "aussen" auf die kamera zugreife und der nginx für die weiterleitung diese wissen muss
    3) nginx hat diese info base64 encoded - da ich den vor ca 1 jahr eingerichtet habe, wusste ich sie nichtmehr im original. daher musste ich sie mir jetzt via https://www.base64decode.org/ wieder dekodieren, um sie in klartext in deinem plugin einzutragen

    => den letzten schritt hätte ich mir gespart, wenn neben der klartextangabe auch die base64 version in deinem plugin gehen würde (und dann intern dekodiert wird). das ist aber wirklich nice to have...

    Einen Kommentar schreiben:


  • AndreK
    antwortet
    Kurzer Nachtrag :

    Die "alexa_auth_cred" brauchst Du nur wenn der Zugang zu Kamera mit User usw. angelegt ist. Das hat nichts mit der Nginx-Config zu tun.
    Die Infos werden aus der Amazon-Cloud an das Show oder Spot gesendet und der Stream direkt von dort aufgebaut. Es geht dann keine Kommunikation mehr über den Nginx bzw. über extern.

    Einen Kommentar schreiben:


  • psilo
    antwortet
    zu base64: in nginx gibt man das base64 encodede ergebnis aus user : passwort an, also im fall smartvisu:xxx ein c21hcnR2aXN1Onh4eA==

    das würde es einfacher machen.. dort hatte ich für die weiterleitung die creds von der kamera hinterlegt und musste das jetzt erst wieder decoden, weil ich sie vergessen hatte.. ist aber nur nice to have

    Einen Kommentar schreiben:


  • psilo
    antwortet
    bist du sicher? ich kriege immer noch den fehler.. lade gerade nochmal deinen master..

    ok vielleicht zu frueh neu gestartet.. ist jetzt weg. jetzt hoffe ich dass die mjpg url auch für rtsp richtig ist
    Zuletzt geändert von psilo; 01.01.2019, 18:18.

    Einen Kommentar schreiben:


  • AndreK
    antwortet
    Hallo psilo

    ich habe die aktuelle Version jetzt erst auf meinen Git-Account hochgeladen. Das hatte ich im alten Jahr nicht mehr geschafft. (Die Gäste sind früher gekommen)
    Der Stand sollte nun die gewünschte Funktionalität haben.
    Im Moment ist noch eine Funktion eingebaut welche die Requests von der Lambda in (...smarthome/streamdump.txt) schreibt. Man kann dort nachverfolgen welche
    Anfragen aus der Lambda kommen. Dies soll im Moment bei der Fehlersuche helfen und kommt dann wieder raus.

    Unter den Streams das Protokoll weglassen (http://), die eigentliche URL wird aus "protocols" "RTSP", den "alexa_auth_cred" und der Stream_X-URI gebildet.
    Im Moment würde bei Deiner Config folgendes ankommen :

    "uri": "rtsp://smartvisu:xxx@http://192.168.178.40/video/mjpg.cgi"

    Für den Snapshot wird bei einer Angabe von "alexa_auth_cred" ebenfalls user":"password in die URL ergänzt ( "imageUri": "http://smartvisu:xxx@192.168.178.40/image/jpeg.cgi")

    Das mit den base64 encoded verstehe ich nicht. Bitte hilf mir hier auf die Sprünge

    Gruss Andre

    Einen Kommentar schreiben:


  • psilo
    antwortet
    auf basis des neustem codes aus dem github repo von AndreK kriege ich derzeit nach dem neustart einen 2019-01-01 08:16:10 ERROR plugins.alexa4p3 Alexa: invalid alexa action 'InitializeCameraStreams' specified in item doorca
    m, ignoring item

    Item ist:
    Code:
    doorcam:
        name: kitchencam
        alexa_description: 'Kamera Küche'
        alexa_name: Kitchencam
        alexa_device: kitchencam
        alexa_icon: CAMERA
        alexa_actions: InitializeCameraStreams
        alexa_camera_imageUri: 'http://192.168.178.40/image/jpeg.cgi'
        alexa_csc_uri: '{"Stream1":"http://192.168.178.40/video/mjpg.cgi"}'
        alexa_auth_cred: 'smartvisu:xxx'
        alexa_stream_1: '{
        "protocols":["RTSP"],
        "resolutions":[{"width":1920,"height":1080}],
        "authorizationTypes":["BASIC"],
        "videoCodecs":["H264"],
        "audioCodecs":["G711"]
        }'
    PS: cool wäre wenn man die Creds alternativ base64 encoded übergeben könnte, so wie es bspw im NGINX gemacht wird
    Zuletzt geändert von psilo; 01.01.2019, 09:07.

    Einen Kommentar schreiben:


  • Cannon
    antwortet
    Zitat von AndreK Beitrag anzeigen
    Da ich selbst kein EchoSpot bzw. EchoShow habe ist die Frage ob jemand eines der Geräte im Einsatz hat und die Funktion testen würde.
    Wenn das mit dem CameraStreamController funktioniert würde ich den aktuellen Stand für vorerst als fertig befinden und an diesem Stand bis zum nächsten Release von shNG keine Änderungen / Erweiterungen mehr vornehmen sondern lediglich Bugfixes bearbeiten. Es sollte dann gewährleistet sein, das eine fehlerfreie Version ins Repo geht.
    Ich würde gern helfen, geht aber leider nicht, weil ich keines der genannten Geräte habe.

    Einen guten Rutsch für alle. Ich bin schon in 2019. ;-)

    Einen Kommentar schreiben:


  • psilo
    antwortet
    sehe gerade im neuen README, dass im Endeffekt alles erklärt ist... Cam hat laut Weboberfläche definitiv RTSP, wage mich also evtl heute oder ganz sicher morgen noch dran!

    Einen Kommentar schreiben:

Lädt...
X