Ankündigung

Einklappen
Keine Ankündigung bisher.

Alexa Smart Home Skill

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

    Alexa Smart Home Skill

    Ich habe drei LBS erstellt, die Alexa mit dem Smart Home Skill nutzen.

    Jonofe hat hier seine sehr guten LBS für die Alexa Custom Skill vorgestellt, welche ich bei mir für besondere Funktionen verwende.
    Die Grundfunktionen wollte ich aber nur durch Befehle wie z. B.:
    "Alexa, schalte im Wohnbereich das Licht ein"
    steuern und habe deshalb unter Verwendung von Steffen79s-Skripten die hier vorgestellten LBS erstellt.

    Das Ergebnis sieht in EDOMI so aus: LBS für Alexa Smart Home Skill.png

    Es gibt insgesamt drei LBS:Der Connector wird nur einmal benötigt, die anderen beiden jeweils so oft wie Geräte gesteuert werden sollen.
    Rollläden bzw. Jalousien lassen sich mit dem Smart Home Skill leider nicht steuern.

    Die Kommunikation zwischen den LBS erfolgt über zwei interne Kommunikationsobjekte:
    • Transmit (im Screenshot 2106)
    • Receive (im Screenshot 2105)
    Die Installation ist nicht ganz einfach, in der ZIP-Datei des Connector LBS ist eine kleine Installationsanleitung enthalten und hier ein paar hilfreiche Links:
    Das oben angesprochene Helper-Skript "alexa_sh.php" muss aus dem Internet erreichbar sein. Ich nutze hierfür einen Raspberry Pi 2 als Reserve-Proxy, was Jonofe hier gut erläutert hat.

    Um das "Alexa Smart Home Skill" nutzen zu können, werden zusätzlich zwei weitere (kostenlose) Amazon-Accounts benötigt:Die Einrichtung dieser beiden Dienste ist ausführlich im Wiki von FHEM beschrieben und in Kurzform in der Installationsanleitung in der beiliegenden ZIP-Datei.

    Noch ein Hinweis zum Schluss: Diese drei LBS sind nicht kompatibel mit denen von Jonofe, denn das Alexa "Smart Home Skill" arbeitet völlig anders als das von Jonofe verwendete "Custom Skill".
    Zuletzt geändert von panzaeron; 29.01.2017, 22:08.

    #2
    Zitat von panzaeron Beitrag anzeigen
    Noch ein Hinweis zum Schluss: Diese drei LBS sind nicht kompatibel mit denen von Jonofe, denn das Alexa "Smart Home Skill" arbeitet völlig anders als das von Jonofe verwendete "Custom Skill".
    Kurze Frage dazu- bevor ich mich an die "nicht ganz einfache" Installation mache: Was meint "nicht kompatibel"? Können denn auf einem EDOMI-System die beiden Skills/LBS-Typen nebeneinander arbeiten? also, z.B.Licht schalten über den Smarthome-Skill von panzaeron , Rolläden fahren übr den Custom Skill von jonofe ?

    Grüße,
    Gunnar

    Kommentar


      #3
      Ja, das ist kein Problem, ich nutze auch beide. Mit kompatibel meinte ich das meine LBS nur an meinem Conector funktionieren und die von Jonofe an dem zugehörigen Receiver.
      Zuletzt geändert von panzaeron; 29.01.2017, 23:41.

      Kommentar


        #4
        Bitte entschuldigt die eventuell etwas unnötige Frage, aber irgendwie kapiere ich die Notwendigkeit nicht, dass ich "irgendein" Device (PHP-fähig) nach aussen aufmachen muss, um Alexa zu nutzen. Ich dachte bisher durch Nutzung des Smart Home Skill könnte man sich das sparen und das Echo bekommt quasi über die Response von Amazon den Befehl gleich mit, welchen es dann im internen Netz ausführt (Aufruf eines http-Requests z.B. an edomi). Zu einfach gedacht?

        Kommentar


          #5
          Naja, Alexa ist ein Cloud-Dienst und zumindest meine steuerbaren Devices auch (auch wenn es manchmal nicht so deutlich ist). EDOMI ist kein Cloud-Dienst und daher muss Alexa aus dem Netz einen Zugriff darauf erhalten. PHP muss es nicht sein, ist es nur Aufgrund der Einfachheit. Lokal über die Echos läuft bei Alexa leider nichts.

          Aber wo Du es gerade ansprichst, vielleicht gibt es eine Möglichkeit, dass EDOMI eine Verbindung zum Lambda-Skript aufbaut und hält? Dann würde der ganze Reverse-Kram wegfallen, aber dafür reicht mein Wissen leider nicht...

          Kommentar


            #6
            Genau auf dieses Thema Erreichbarkeit zielt meine Frage ab, denn Alexa steuert ja z.B. auch Sonos, das wieder hat keine offene Verbindung, ist also vom Internet aus nicht erreichbar. Da funktioniert das ja offenbar auch irgendwie (oder demnächst...). Baut aber ein Device von meinem internen Netzwerk eine Verbindung zu einem Server im Internet auf, dann kann hier über den Response jede Information fließen, ohne dass man über Reverse-Proxy oder Portweiterleitung gehen muss.

            Genau so dachte ich funktioniert Echo, wenn ich aber dafür erstmal eine eigene Server-Infrastruktur (welche über das Internet dann erreichbar ist) bauen muss, finde ich das für mich persönlich etwas grenzwertig, weiß nicht ob ich hier überempfindlich bin, aber für gewöhnlich sind solche Systeme einfach erstmal ein weiterer Administrationsaufwand der unbedarft behandelt durchaus ein Eigenleben entwickeln kann .

            Kommentar


              #7
              Zitat von crewo Beitrag anzeigen
              Genau so dachte ich funktioniert Echo, wenn ich aber dafür erstmal eine eigene Server-Infrastruktur (welche über das Internet dann erreichbar ist) bauen muss, finde ich das für mich persönlich etwas grenzwertig, weiß nicht ob ich hier überempfindlich bin, aber für gewöhnlich sind solche Systeme einfach erstmal ein weiterer Administrationsaufwand der unbedarft behandelt durchaus ein Eigenleben entwickeln kann .
              Da hast du natürlich recht, gerade das "Eigenleben" ist nicht zu unterschätzen. Es wäre auch denkbar, dass jemand einen eigenen "EDOMI-Dienst" auf einem externen Hoster entwickelt und einrichtet, welcher als Vermittler zwischen EDOMI und dem Lambda-Skript dient, so dass man im Idealfall nur noch einen Account auf dem externen Dienst einrichtet und in Alexa den "EDOMI"-Skill auswählt und die Geräte sind da. Ob das sicherer bzw. besser ist weiß ich nicht, einfacher aber auf jedenfall.

              Kommentar


                #8
                Alexa funktioniert aber so, dass es auf den Befehl, der vom Echo gesendet wird, keine Antwort über dieselbe Connection passiert, sondern aus der Amazon Cloud eine neue Verbindung zu einem Skill Skript aufgebaut wird. Und das ist entweder ein Skript auf dem eigenen Server oder eine Lamdafunktion auf einem AWS Server.

                Kommentar


                  #9
                  Hi
                  kannst du mir sagen wie/worauf man achten muss wenn das PHP script auf einem anderen Server läuft?
                  Das Script ist erreichbar - die Lambda-Test-Funktion scheint zumindest erfolgreich damit zu kommunizieren (Nachtrag: sehe ich auch im PHP-Log).
                  Jetzt ist die Frage wie EDOMI und das PHP zusammenkommen.
                  Im Smarthome-connector habe ich die IP des servers (im selben Subnetz) eingegeben.
                  Port receiver und port transmitter habe ich nicht angepasst.
                  In "transmit" steht auch was drinnen: bad;S:3966S
                  Das kommt auch an A2 wieder raus - A1 (receive) bleibt aber leer.
                  im Log steht:
                  2017-07-25 19:50:32 516619 31401 - EXEC LBS19000660(3965) 1 (Receiver): Socket ge�ffnet
                  2017-07-25 19:50:45 480289 31318 - LBS19000660(3965) 1: Erstes Ger�t hinzugef�gt (bad;S:3966S)

                  .... sehe gerade das man im PHP Script den EDOMI eintragen muss - wenn man auf verschiedenen hosts ist - ... das fehlt in der Doku (oder habe ich übersehen).
                  Auch nach anpassen der IP funktioniert es leider noch nicht.

                  Ach ja: in der Alexa app taucht der EDOMI bei den Skills auf (Ihre Skills) - aber in den Details steht "Kontoverknüpfung erforderlich"... das aber nicht funktioniert. Ist da der Fehler?

                  Nachtrag: die "allowed return URLs" haben gefehlt. Jetzt funktioniert auch das anmelden...
                  Leider werden immernoch keine Geräte gefunden.

                  Im Edomi-Log steht jetzt auch:
                  Code:
                  2017-07-25 22:49:18 492485 6293 - EXEC LBS19000660(3965) 1 (Transmitter): Daten senden (Client: tcp://192.168.0.105:8002 - Daten: 000C|bad;S:3966S)
                  2017-07-25 22:49:18 495177 6293 - EXEC LBS19000660(3965) 1 (Transmitter): Wert gesendet: 000C|bad;S:3966S
                  2017-07-25 22:49:18 495420 6293 - EXEC LBS19000660(3965) 1 (Receiver): Befehl empfangen: 0000C|request
                  und wenn ich das PHP manuell aufrufe kommt:
                  Code:
                  {"header":{"namespace":"Alexa.ConnectedHome.Discovery","name":"DiscoverAppliancesResponse","payloadVersion":"2"},"payload":{"discoveredAppliances":[{"applianceId":"devicebad","manufacturerName":"EDOMI","modelName":"Model Licht","version":"VER01","friendlyName":"bad","isReachable":true,"friendlyDescription":"Licht im bad (devicebad)","actions":["turnOn","turnOff"]}]}}
                  Scheinbar können EDOMI und das PHP script miteinander kommunizieren....

                  Gruß Thorsten
                  Zuletzt geändert von ThorstenGehrig; 25.07.2017, 22:24.

                  Kommentar


                    #10
                    Hallo,

                    Amazon scheint etwas geändert zu haben.
                    Nach der Anleitung finde ich die ganzen Punkte für die Lambda Funktion nicht?

                    Kommentar


                      #11
                      dafür habe ich die Anleitung auf eine V0.6 gehoben und Andre zugeschickt... Scheint aber noch nicht von ihm hochgeladen worden zu sein. Wenn Du mir ne PM mit email Adresse schickst kann ich Dir die Anleitung zukommen lassen (zu groß für das Forum). Mit etwas Aufwand und hin und herscrollen der v0.5 Anleitung kann man es sich aber auch zusammenpuzzeln es ist nur eine etwas veränderte Reihenfolge und ein anderes Layout der Amazonseiten...
                      Gruß
                      Andi

                      Kommentar


                        #12
                        Ich denke in diesem Thread geht es um einen anderen Smarthome Skill, nicht um den 19000646.
                        Hier darf man die Anleitungen natürlich nicht durcheinander bringen.

                        tger977 Stimmt, die Anleitung ist noch nicht hochgeladen. Grund dafür ist, dass es ursprünglich kein Word sondern ODT Format war. Und egal ob ich dein Update mit Word oder OpenOffice öffne, es gehen immer einige Boxen durcheinander, die bestimmte Bereiche in den Screenshots hervorheben sollen (z.B. S. 15 und S. 21). Außerdem fehlt zum Beispiel der Text in der lila Box auf Seite 39

                        Falls das bei dir alles korrekt dargestellt wird, könntest du es dann nach PDF exportieren und mir nochmal zusenden? Welche Version von Word verwendest du?

                        Kommentar


                          #13
                          ups, sorry ich hab nur Alexa Smart Home Skill gelesen... Sorry für die Verwirrung, die Anleitung ist natürlich nur für die Bausteine von jonofe...

                          jonofe ich schau mir es gleich nochmal an und melde mich per PN...
                          Gruß
                          Andi

                          Kommentar


                            #14
                            ThorstenGehrig hast du Alexa eingebunden bekommen? Hab das gleiche Problem!

                            Skill ist in Alexa vor handen und Aktiviert

                            Fehler suche gem. Anleitung durchgegangen!

                            PHP skript ist Erreichbar!

                            Code:
                            {"header":{"namespace":"Alexa.ConnectedHome.Discovery","name":"DiscoverAppliancesResponse","payloadVersion":"2"},"payload":{"discoveredAppliances":[{"applianceId":"devicelicht","manufacturerName":"EDOMI","modelName":"Model Licht","version":"VER01","friendlyName":"licht","isReachable":true,"friendlyDescription":"Licht im licht (devicelicht)","actions":["turnOn","turnOff"]}]}}
                            Unbenannt.PNG

                            wenn noch jemand einen Tip hat woran es hängen könnte wäre ech super!!!

                            Gruß Timo

                            PS: Leider werden keine Geräte gefunden.
                            Zuletzt geändert von Inventor; 05.01.2018, 20:21.

                            Kommentar

                            Lädt...
                            X