Ankündigung

Einklappen
Keine Ankündigung bisher.

Alexa Custom Skill für EDOMI (LBS 19000646 und 19000647)

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

    #16
    Zitat von Teutone Beitrag anzeigen
    Moin jonofe , top Arbeit, allerdings habe ich bis jetzt die eine Anmeldung für den Echo dot. Bin aber froh das du das schon am laufen hast.
    Wahnsinn was hier passiert und was du für Arbeit da lässt, aber dir geht es wahrscheinlich wie vielen, es ist Hobby^^
    Ja, so ist es.

    Zitat von Teutone Beitrag anzeigen
    Eine Frage zum Invocation Name...Ist der Fix gesetzt oder kann ich den ersetzen durch einen eigenen Namen?
    Den Invocation Name kannst du wählen wie du willst. Der spielt für die weitere Implementierung und die Edomi LBS keine Rolle.
    Ist tatsächlich nur für die Invocation, dass Amazon deinen Sprachbefehl an den richtigen Skill weiterleitet.

    Kommentar


      #17
      Ein Update des Alexa Receivers ist jetzt verfügbar.

      Änderungen:

      - LBS Hilfe ergänzt
      - LBS lässt sich jetzt durch Senden einer 0 auf E1 stoppen

      Kommentar


        #18
        jonofe vielen Dank für die super Anleitung!

        Ich habe die durchgearbeitet und hat auch soweit geklappt, nur die FritzBox hat ärger gemacht und wollte den Port 443 nicht weiterleiten, aber jetzt geht es. Ich habe auch einen Raspberry Pi 2 mit nginx am laufen. Das letsencrypt Zertifikat ließ sich nicht im standalone modus generieren, dass habe ich dann über webroot hinbekommen.

        Ergänzt habe ich noch die automatische Erneuerung des Zertifikats über einen cronjob (sudo crontab -e):
        Code:
        30 2 * * 1 /opt/letsencrypt/letsencrypt-auto renew >> /var/log/le-renew.log
        35 2 * * 1 /bin/systemctl reload nginx
        Aber der letzte Schritt der Anleitung (Service Simulator) funktioniert bei mir nicht, beim Test wird der Service Request generiert, aber alexa.php antwortet nicht (The remote endpoint could not be called, or the response it returned was invalid.)
        Wenn ich das alexa.php direkt im Browser aufrufe wird keine Ausgabe erzeugt (vermutlich i.O.), setze ich ein echo "Test"; in das PHP wird dieses ausgegeben, also das Skript läuft prinzipiell von extern. Das Zertifikat hat ein Rating von A+, sollte auch i.O. sein.
        Aber was könnte ich noch prüfen? Hat jemand eine Idee?

        Kommentar


          #19
          Das mit der Zertifikatserneuerung ist ein guter Hinweis. Das nehme ich noch in die Doku auf. Hatte es bei mir auch eingerichtet, nur vergessen es zu dokumentieren. Danke dafür

          Hast du mal das alexa.php von extern, d.h. aus dem Internet heraus aufgerufen?

          EDIT: mach zusätzlich mal auf dem EDOMI Server in einem Terminal

          Code:
          tail -f /usr/local/edomi/www/data/log/alexa.log
          Und dann die Ausgabe hier posten. Versuch zuerst mal mit "starte edomi" im Service Simulator.

          In der Alexa App hast den Skill aber aktiviert, oder?
          Und die ApplicationID haste auch im alexa.php eingetragen, oder?
          Zuletzt geändert von jonofe; 22.12.2016, 21:08.

          Kommentar


            #20
            So, war mein Fehler, ich habe gleich die fünf Prozent-Schritte in alexa.php ergänzt und einmal statt => nur ein = stehen gehabt

            Fazit: deine Anleitung habe ich zwar nicht zu 100% nachvollzogen, weil ich schon vieles vorher fertig hatte, aber Fehler sind mir bisher keine aufgefallen. Gute Arbeit

            Kommentar


              #21
              Kurzer Querverweis - ich denke es könnte einige interessieren:
              https://knx-user-forum.de/forum/proj...er-lautstärke

              Kommentar


                #22
                Hi,
                bin hier auch am start. Alexa hört soweit gut. Schalten, Dimmen funktioniert.
                Woran ich momentan noch scheitere sind Scenen über den Command Validator auszuwerten.
                Scenenbefehl wird von Alexa empfangen und das Intent wird auch gesendet:

                {"group":"Szene","name":"fernsehen","value":"ferns ehen"}

                Allerdings bleibt der Ausgang am LBS immer leer.

                Habt ihr Scenen schon getestet? Funktioniert das bei euch?

                jonofe Übringens, sehr tolle arbeit. Dein Howto ist super erklärt, so kann das jeder schaffen. Du schaffst es immer die richtigen LBS für mich zu erstellen. Onkyo, Telegram, Milight, Yeelight und jetzt Alexa. Danke dafür.

                Kommentar


                  #23
                  Zitat von webasti321 Beitrag anzeigen
                  Hi,
                  bin hier auch am start. Alexa hört soweit gut. Schalten, Dimmen funktioniert.
                  Woran ich momentan noch scheitere sind Scenen über den Command Validator auszuwerten.
                  Scenenbefehl wird von Alexa empfangen und das Intent wird auch gesendet:

                  {"group":"Szene","name":"fernsehen","value":"ferns ehen"}

                  Allerdings bleibt der Ausgang am LBS immer leer.

                  Habt ihr Scenen schon getestet? Funktioniert das bei euch?
                  Du hast recht, da ist noch ein Bug in der Validierung von Group, Name, Location und Value.
                  Update kommt ...

                  Zitat von webasti321 Beitrag anzeigen
                  jonofe Übringens, sehr tolle arbeit. Dein Howto ist super erklärt, so kann das jeder schaffen. Du schaffst es immer die richtigen LBS für mich zu erstellen. Onkyo, Telegram, Milight, Yeelight und jetzt Alexa. Danke dafür.
                  Das freut mich zu hören

                  Kommentar


                    #24
                    Noch als weiteren Hinweis:

                    Man kann mit dem Skill-Skript alexa.php auch die empfangenen Befehle an mehrere EDOMI Instanzen verteilen:

                    Dazu die $targets Definition am Beginn des alexa.php Files wie folgt anpassen:

                    PHP-Code:
                    $targets = array(
                        array(
                            
                    'ip' => '192.168.1.111',
                            
                    'protocol' => 'tcp',
                            
                    'port' => 8000
                        
                    ),
                        array(
                            
                    'ip' => '192.168.1.33',
                            
                    'protocol' => 'tcp',
                            
                    'port' => 8001
                        
                    )
                    ); 
                    IP und Port Werte entsprechend ändern.
                    IP ist jeweils die IP eines EDOMI Servers und Port den konfigurierte Port des Alexa Receiver LBS.

                    Kommentar


                      #25
                      Zitat von jonofe Beitrag anzeigen

                      Du hast recht, da ist noch ein Bug in der Validierung von Group, Name, Location und Value.
                      Update kommt ...
                      Update ist jetzt verfügbar: LBS19000647 - Alexa Command Validator v0.2

                      Kommentar


                        #26
                        Super!

                        Funktioniert jetzt wie erwartet.

                        Danke dir

                        Kommentar


                          #27
                          Sehr gerne. Frohe Weihnachten

                          Kommentar


                            #28
                            Zitat von panzaeron Beitrag anzeigen
                            jonofe
                            Aber der letzte Schritt der Anleitung (Service Simulator) funktioniert bei mir nicht, beim Test wird der Service Request generiert, aber alexa.php antwortet nicht (The remote endpoint could not be called, or the response it returned was invalid.)
                            Wenn ich das alexa.php direkt im Browser aufrufe wird keine Ausgabe erzeugt (vermutlich i.O.), setze ich ein echo "Test"; in das PHP wird dieses ausgegeben, also das Skript läuft prinzipiell von extern. Das Zertifikat hat ein Rating von A+, sollte auch i.O. sein.
                            Aber was könnte ich noch prüfen? Hat jemand eine Idee?
                            Das ist mir gestern auch passiert. Das liegt offenbar daran, dass der Simulator von einer anderen IP aus auf alexa.php zugreift (72.21.217.66), und man diesen Test solange machen sollte wie in der Proxy-Konfiguration testweise noch "Require all granted" steht. (bei mir der Apache)

                            An dieser Stelle auch von mir herzlichen Dank an André für die sehr gute Entwicklung und Dokumentation! Immer wieder klasse, was Du hier leistest...
                            Zwei kleine Anmerkungen zur PDF-Doku: Auf Seite 7/8: Die Datei "/etc/apache/sites-available/000-default-le-ssl.conf" liegt auf meinem Pi in /etc/apache2.

                            Was mich an dieser Stelle noch interessiert: Der reverse proxy ist ja sicherheitsrelevant. Was raten die Experten- sollte man einen Pi exklusiv für diese Aufgabe abstellen, oder kann man den Pi dann mit allen anderen Aufgaben, die man aus Edomi noch auslagern muss, beschäftigen? In meinem Fall 1wire, HABridge (noch), homegear?

                            Besten Dank,

                            Gunnar

                            Kommentar


                              #29
                              braucht man nun zwingend die Hardware dafür?
                              Leider kann man das Amazon Echo ja noch nicht kaufen,...

                              Kommentar


                                #30
                                Zitat von junibart Beitrag anzeigen

                                Das ist mir gestern auch passiert. Das liegt offenbar daran, dass der Simulator von einer anderen IP aus auf alexa.php zugreift (72.21.217.66), und man diesen Test solange machen sollte wie in der Proxy-Konfiguration testweise noch "Require all granted" steht. (bei mir der Apache)
                                Das schau ich mir noch mal an, ob die Service Simulator Requests von anderen IP's kommen. Ich habe den Netzwerktraffic gescannt und mit den offiziellen Liste der Amazon AWS IP-Ranges abgeglichen. Aber es kann sein, dass ich das nur für die realen Alexa Commands gemacht habe, die vom Device kommen.

                                Zitat von junibart Beitrag anzeigen
                                An dieser Stelle auch von mir herzlichen Dank an André für die sehr gute Entwicklung und Dokumentation! Immer wieder klasse, was Du hier leistest...
                                Zwei kleine Anmerkungen zur PDF-Doku: Auf Seite 7/8: Die Datei "/etc/apache/sites-available/000-default-le-ssl.conf" liegt auf meinem Pi in /etc/apache2.
                                Ja, das ist ein Bug in der Doku. Bei mir ist es auch apache2. Werde das anpassen.

                                Zitat von junibart Beitrag anzeigen
                                Was mich an dieser Stelle noch interessiert: Der reverse proxy ist ja sicherheitsrelevant. Was raten die Experten- sollte man einen Pi exklusiv für diese Aufgabe abstellen, oder kann man den Pi dann mit allen anderen Aufgaben, die man aus Edomi noch auslagern muss, beschäftigen? In meinem Fall 1wire, HABridge (noch), homegear?
                                Ich persönlich mache auf dem RPi nur Reverse Proxy und alles was ich zum Internet bereitstellen möchte. Da ich einen eigenen Mailserver betreibe, fungiert dieser RPi auch als Proxy für die emails. Interne Funktionen betreibe ich dort jedoch nicht. Außerdem habe ich noch einen Router/Firewall zwischen internem Netz und dem RPI. D.h. er ist in meiner Mini-DMZ. D.h. wenn ein Angreifer Zugang zu meinem RPI in der DMZ bekommt, dann hat er keinen Zugriff auf mein internes Netz oder andere Server.

                                Am Ende hängt es immer vom persönlichen Sicherheitsbedürfnis ab. Das würde ich grundsätzlich bei einer EDOMI Installation als hoch ansehen. Kostentechnisch ist es mir das Wert (ca. 50€ für den RPI inkl. Gehäuse, SD Karte und Netzteil + Stromverbrauch).

                                Kommentar

                                Lädt...
                                X