Ankündigung

Einklappen
Keine Ankündigung bisher.

Amazon Alexa Plugin

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

    Hallo Jürgen ,

    es gibt mehrere Möglichkeiten. Die einfachste ist, wenn Du versuchst die Kamera mittels Monocle-Gateway einzubinden, zumindest zum testen.
    Mit "zumindest zum testen" meine ich das es bei vielen Kameras fast ungmöglich ist diese direkt an die Echo-Shows/fireTV's über den Standard-rtsp-Player von Amazon anzuzeigen. Die Ursache liegt im "schlecht" implementierten RTSP-Player von Amazon. Wenn es via Monocle funktioniert dann funktioniert es auch via AlexaCamProxy, wenn nicht via Monocle dann auch nicht via AlexaCamProxy.

    Der Camera-Proxy funktioniert !! Das aber auch nur im Rahmen der Möglichkeiten des rtsp-Players von Amazon. (das ist bei Monocle genauso)

    Für den Camera-Proxy ist etwas mehr Konfig-Aufwand notwendig. (Abhängig von der bereits vorhandenen Netz-Infra-Struktur in Deinem LAN)

    Mit dem Monocle-Gateway ist das relativ einfach zu testen und es wird kein freier Port 443 nach Außen benötigt. Dazu kurze Erklärung.

    Monocle bildet für jeden User eine Sub-Domain. Diese Sub-Domain wird automatisch auf das Monocle-Gateway (in Deinem LAN) gelinkt wenn dieses gestaret wird.

    Soll heißen :

    die Domain 8562d271-d4e0-4964-a0e6-25b72a3XXXX.mproxy.io wird von Monocle auf Deinen Host auf dem das Gateway läuft geroutet (z.B.: 192.168.178.xx)

    Diese Sub-Domain von "mproxy-io" wird von Monocle erstellt.

    Die Standard-Namesauflösung erfolgt nun auf Deine IP des Gateways - es erfolgt auch hier keine Kommunikation nach Aussen. Die hinterlegten Kameras bei Monocle verweisen alle auf diese URL.
    Monocle liefert ein Wildcard-Zertifikat für alle Sub-Domains mit. Das Echo-Device ruft direkt obige URL auf.
    Die URL wird auf deinen Host mit dem Monocle-Gateway umgeleitet, das Monocle Gateway erledigt den notwendigen SSL-Teil.

    Das Monocle-Gateway baut eine Socket-Verbindung zur entsprechenden Kamera auf und leitet die Daten direkt an das Echo-Device weiter.

    Der CamProxy funktioniert genauso, Ausnahme es gibt kein Wildcard-Zertifikat und keine automatische Sub-Domain (darum muss man sich selber kümmern, bei Bedarf kann ich hier gerne mehr Infos liefern und unterstützen).

    Das eigentliche Problem liegt in der dürftigen Implemtierung des RTSP-Players von Amazon !! - Vielleicht gibts hier ja mal in absehbarer Zeit ein Update - dann wären viele der Probleme behoben.
    Ich bin noch auf der Suche einer besseren Realisierung des Themas. Für FireTV's gäbe es eine mittels adb-Console. Leider unterstützen die Show's kein adb-Debugging. - Soll heißen die Suche geht weiter.

    Ich hoffe ich habe etwas Licht ins Dunkel gebracht und bin gerne bereit hier zu unterstützen. Jegliche Erfahrung mit allen Cameras hilft hier weiter, da ich versuche, genauso wie Monocle, den jeweiligen Kamera-Stream so anzupassen, dass dieser auch auf den Amazon Geräten angezeigt werden kann.

    Höre gerne von Erfahrungen

    Viele Grüsse

    Andre








    Kommentar


      Hallo Andre,

      Monocle war mein erster versuch, soweit alles ok, Alexa hat die cam gefunden, aber sie antwortet nicht.
      Laut Gurgel ein Echo 5 Problem, da zwingend https erwartet wird.
      Ich wurschtel mich mal durch, mache 443 frei und melde mich.
      Mococle kennt das Thema ja und bietet auch mehrere Gateways für Windows und Linux an.

      Gruß
      Zuletzt geändert von Jürgen; 23.02.2020, 20:39.

      Kommentar


        Hallo Juergen ,

        Monocle macht immer HTTPS darum brauchst Du dich nicht kümmern (das wollen auch alle anderen Devices die auf dem aktuellen fireOS-Stand sind, nicht nur Show's der 2. Generation). Das ist kein Echo5-Problem.
        Du benötigst auf jeden Fall das Monocle-Gateway.
        Es sind keine Router-Einstellungen notwendig !!
        Die Adresse lautet immer auf Deine interne IP des Gateways.
        Dieses zu installieren sollte kein Problem sein, falls Fragen auftauchen kann ich auch hier gerne unterstützen.
        Auch die Config ist recht einfacht.
        Das "Finden" der Cam läuft noch auf dem Monocle-Server auf. Soll heißen jede Cam die dort definiert wurde wird auch gefunden.
        Das entspricht dem normalen "Discovery" was wir von alexa und smarthomeNG kennen, nur umgeleitet über die Lambda von Monocle auf deren Routine.
        Erst beim Aufruf der Kamera kommt das Gateway ins Spiel. Das loggen des Monocle-Gateway mittels "monocle-gateway --fail" zeigt hier dann entsprechende
        Meldungen.

        Nur so nebenbei : Es gibt nach meinem Kenntnisstand keine Kamera die HTTPS mit einem gültigen Zertifikat für rtsp-Streams direkt unterstützt !!!!!!!!!
        Falls jemand eine kennt wäre ich für diese Information dankbar.

        Wie denn auch, Zertifikat heißt eindeutige URL - eindeutige URL heißt Domain die direkt auf die Kamera verweist- heißt jede Camera müsste mit einer "unique"-Domain ausgeliefert werden bzw. sich diese bei Inbetriebnahme holen und im Anschluss ein offizielles Zertifikat holen und dieses aktuell halten ?! - Halte ich für unwahrscheinlich.
        Das funktioniert Stand heute immer nur über irgendein Gateway. Bei den Standard-Gateways der Hersteller (z.B. REOLINK) funktioniert das. Hier jedoch mit erheblichen Time-Lag da die Daten rausgehen, in der Cloud "normalisiert" werden und dann an das Alexa-Device gesendet werden. Genau dieses Rein/Raus wollten wir ja vermeiden. Monocle mach das nicht und der CamProxy auch nicht. Die Hersteller haben nur den Vorteil, dass Sie die Anforderungen der Echo-Devices kennen und genau wissen was ihre Cams, abweichend davon, liefern, das was abweicht wird dann in der Cloud "normalisiert". Das wissen wir nicht :-(

        Gruss Andre

        Kommentar


          Hallo Andre,

          bin mal wieder verwirrt..
          Brauche ist das Monocle Gateway zusätzlich zu Deinem Camproxy?

          Nginx habe ich durch Änderung der Config nun auf einem anderen Port als 443.
          Muss ich nun im Router noch den externen 443 auf meinen SH Server einrichten? Was antwortet dann bei externem Aufruf? Wollte die Zgriffe ja eigentlich über den Nginx laufen lassen.

          Python 3.5 hab ich nicht, daher läuft Dein Befehl auf Fehler:

          You have to give the Plugin access to Port 443. To do this you have to give Python permissions to bind privileged ports without root access.To setup this run the following command.It´s not allowed to Bind Symlinks. So after a update of the used Python version you have to do this again.(Python3 -> Symlink to python 3.5 after Update Python3 -> Symlink to python 3.6)
          =================================================


          sudo setcap CAP_NET_BIND_SERVICE=+eip /usr/bin/python3.5

          Hier mein Verzeichnis:

          lrwxrwxrwx 1 root root 9 Mär 16 2015 python2 -> python2.7
          lrwxrwxrwx 1 root root 9 Mär 16 2015 python -> python2.7
          lrwxrwxrwx 1 root root 12 Mär 16 2015 pygettext -> pygettext2.7
          lrwxrwxrwx 1 root root 8 Mär 16 2015 pydoc -> pydoc2.7
          -rwxr-xr-x 1 root root 154 Aug 5 2016 python2-pbr
          lrwxrwxrwx 1 root root 26 Apr 4 2017 pybuild -> ../share/dh-python/pybuild
          -rwxr-xr-x 1 root root 22097 Sep 16 19:16 pygettext2.7
          -rwxr-xr-x 1 root root 79 Sep 16 19:16 pydoc2.7
          -rwxr-xr-x 1 root root 2603568 Sep 16 19:22 python2.7
          -rwxr-xr-x 1 root root 22368 Sep 16 19:53 pygettext3.4
          -rwxr-xr-x 1 root root 79 Sep 16 19:53 pydoc3.4
          -rwxr-xr-x 2 root root 3116524 Sep 16 19:58 python3.4m
          -rwxr-xr-x 2 root root 3116524 Sep 16 19:58 python3.4
          lrwxrwxrwx 1 root root 37 Sep 16 19:58 python3.4m-config -> arm-linux-gnueabihf-python3.4m-config
          lrwxrwxrwx 1 root root 36 Sep 16 19:58 python3.4-config -> arm-linux-gnueabihf-python3.4-config

          Brauche ich 3.5?

          Hmpf, nächste Frage:
          SmartHomeNG >= 1.5.2, mein Backend meint: 1.5.1Was fehlt, was muss ich ändern?

          Alles nix für Windows User ;-)

          Gruß und Dank
          Jürgen
          Zuletzt geändert von Jürgen; 24.02.2020, 13:30.

          Kommentar


            Hallo Juergen ,

            da bei dir python3.4 läuft musst Du die Berechtigung für python3.4 setzen
            Zitat von Jürgen Beitrag anzeigen
            sudo setcap CAP_NET_BIND_SERVICE=+eip /usr/bin/python3.4
            Wenn du den CamProxy verwendest brauchst du kein Monocle Gateway.

            Du musst an Deinem Router den Port 443 auf Deine shNG-Maschine weiterleiten. Der NGINX unterstützt keine Weiterleitung von Streams. Man kann den NGINX
            an dieser Stelle leider nicht nutzen. Der CamProxy lehnt alle Verbindungen von Aussen bei entsprechender Config, siehe unten, ab.

            Der CamProxy sollte auch mit python3.4 und smarthomeNG 1.5.1 laufen, wenn ich mich richtig erinnere war 1.5.2 nur ein Zwischenrelease für die Plugins ?
            Der CamProxy stellt ein Web-Interface zur Verfügung, Web-Interfaces wurden lt. Release-Log ab 1.5 unterstützt. Sollte also auch passen.

            Bei dieser Config würde ich dann auf jeden Fall
            Code:
            "only_allow_own_IP: true"
            setzen. Achtung hier war noch Typo drin. Ich habe gerade nochmal eine
            aktuelle Version hochgeladen. Das Readme habe ich in diesem Zug auch noch aktualisiert und die Min-Version des Plugins auf 1.5.1 angepasst.

            Somit solltest Du hier keinen Trouble mehr mit der shNG-Version bekommen.
            Falls du den letzten Stand des Alexa4p3-Plugins von meinem Git-Account einsetzen kannst, gibt es dort die Möglichkeit im Web-IF das item für Kameras interaktiv zu erstellen.

            Viel Erfolg
            Gruss Andre

            Kommentar


              Guten Abend,

              ich versuche gerade Alexa4p3 einzurichten. 3 Fragen hätte ich zu der PDF Anleitung:
              - könnte man diese ev. ins Plugin/github einbauen? wie soll man diese Info sonst finden?
              - zur Routerkonfig. Es steht bei der Fritzbox sind die Ports 443 und 80 "freizugeben". Wenn man jetzt einen Standardrouter hat, was ist zu tun?
              Portweiterleitung, wie es in der Console bei der einrichtung des Reverseproxy steht? Bin da etwas skeptisch. 443 wäre ja möglich, aber wenn ich Port 80 forwarde, kann ja jeder der meine IP/DynDNS kennt oder findet auf mein SmartVISU zugreifen!
              - Punkt 8: in der Alexa APP - welche App ist da gemeint?

              Besten Dank
              Johannes

              Kommentar


                Hallo Johannes,

                Die Ports sind in jedem Router freizugeben, damit Dein SSL Zertifikat erneuert werden kann.
                Die Smartvisu sollte dadurch nicht erreichbar sein, wenn Du die Ports auf einen Reverse Proxy (Nginx) leitest.
                Die Alexa APP ist die APP auf Deinem Handy, die mit "Alexa" bezeichnet ist... ;-)

                Gruß
                Jürgen

                Kommentar


                  Hallo Jürgen, besten Dank!

                  App hatte ich schon lange nicht mehr in Verwendung - wäre naheliegend gewesen.

                  Eine Schwierigkeit habe ich jetzt noch mit der Aktivierung des Skills in der App, da erhalte ich die Fehlermeldung
                  amazon alexa
                  Verknüpfung fehlgeschlagen
                  Der Autorisierungsserver meldete einen error-
                  Parameter. Weitere Informationen finden Sie unter https://tools.ietf.org/html/rfc6749#section-4.1.2.1
                  Soweit ich bis jetzt rausgefunden habe, irgendein Problem vermutlich mit dem Account linking.

                  In der Alexa developer console steht nach wie vor:
                  3. Account Linking
                  You will need to configure the account linking skill capability in order for the Smart Home Voice Model to be functional
                  Gerade noch einmal gemacht, der blaue Hinweis ist nach wie vor da.

                  hat wer eine Idee woran das liegen kann?

                  Kommentar


                    Hallo Johannes,

                    kannst Du über denbei Amazon angegeben Port mit https auf Deinen Router zugreifen? Ist das Zertifikat gültig und offiziell?
                    Sonst klappt der Zugriff für Alexa auch nicht.

                    Gruß Jürgen

                    Kommentar


                      hm, ich fürchte nein. meine SmartVISU ist auch nicht mehr erreichbar. sieht so aus als hätte mein nginx etwas. dabei hätte ich mich penibel an die anleitung gehalten. sollte dich parallel beides gehen, oder?

                      Kommentar


                        Hallo Johannes,

                        rufe Deine Startseite auf, da muss Nginx antworten: https://<deine Domain>:<dein Port>

                        Welcome to nginx on Debian!
                        If you see this page, the nginx web server is successfully installed and working on Debian. Further configuration is required.

                        Gruß Jürgen

                        Kommentar


                          Nach dem Update von SmartHomeNG auf 1.71 läuft das plugin nicht so richtig. Ich habe jetzt die Version aus dem Master genommen, also 1.02. Das Web-Interface lädt nicht, da kommt dann ein Fehler 500 udn auch die Funktionen gehen nicht so richtig:

                          Wenn ich Licht einschaltet funktioniert das zwar, Alexa sagt aber, dass das Gerät nicht reagiert. Die Rollläden fahren erst gar nicht. Das steht im Log:

                          Code:
                          2020-04-27 08:36:28 ERROR plugins.alexa4p3 Alexa P3: execution of control-directive 'SetRangeValue' failed: 'SmartHome' object has no attribute 'Alexa4P3'
                          2020-04-27 08:36:59 ERROR plugins.alexa4p3 Alexa P3: execution of control-directive 'SetRangeValue' failed: 'SmartHome' object has no attribute 'Alexa4P3'
                          2020-04-27 08:37:21 ERROR plugins.alexa4p3 Alexa P3: execution of control-directive 'TurnOn' failed: 'SmartHome' object has no attribute 'Alexa4P3'
                          2020-04-27 08:37:33 ERROR plugins.alexa4p3 Alexa P3: execution of control-directive 'SetRangeValue' failed: 'SmartHome' object has no attribute 'Alexa4P3'
                          Zuletzt geändert von Cannon; 27.04.2020, 08:03.

                          Kommentar


                            Ich glaube da ist etwas schief gegangen. Da fehlen wohl noch ein paar Dateien.
                            AndreK ist wohl schon dabei.


                            Grüße...

                            Kommentar


                              Cannon ,

                              ich stell heute abend einen bug-fix ein

                              Gruss Andre

                              Kommentar


                                Hallo Cannon ,

                                heute schaffe ich es nicht mehr ,hab irgendwie meine Dev-Umgebung zerschossen.
                                Muss ich erst wieder herstellen.
                                Ich gebe Info sobald es was neues

                                Gruss Andre

                                Kommentar

                                Lädt...
                                X