Ankündigung

Einklappen
Keine Ankündigung bisher.

Alexa Smarthome Skill (Payload Version 3)

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

    Alexa Smarthome Skill (Payload Version 3)

    Hier mal der aktuelle Entwicklungsstand zum Thema Alexa Smarthome Skill Payload Version 3. Eine entsprechende Anleitung (Danke an panzaeron ) ist im Downloadportal im ZIP des LBS19001200 enthalten.

    Es sind die beiden LBS 19001200 und 19001201 erforderlich.

    Hier noch die möglichen Kommandos, die derzeit unterstützt werden. Die Überschriften sind die, die im LBS 1201 aktiviert werden müssen, um ein solches Device auszuwählen. Wenn man also im LBS1201 den Powercontroller Eingang auf 1 setzt, dann kann das Kommando "Schalte # ein/aus" verwendet werden.

    Wie bereits gesagt, habe ich derzeit wenig Zeit dies zu supporten, aber trotzdem gerne die Fragen hier im Thread stellen.

    Powercontroller
    ==========
    Schalte # ein|aus

    Powerlevel Controller | Brightness Controller | Percentage Controller
    ==========================================
    # um x% erhöhen|verringern
    Stelle # auf x%

    Color Controller
    ==========
    setze # auf <color>

    Color Temperature Controller
    ==================
    schalte # auf (warm|warmes weiß|weiches weiß|weiß|tageslicht weiß|tageslicht|kalt)
    mache # wärmer|kälter

    Scene Controller
    ===========
    aktiviere #
    deaktiviere #
    aktiviere Szene #
    deaktiviere Szene #

    Thermostat
    =======
    Stelle # auf x°
    Stelle # Modus auf auto|kühlen|heizen|eco
    Erhöhe # um x°
    Verringere # um x°
    Stelle # kälter
    Stelle # wärmer
    Stelle # auf ausgeschaltet

    Temperatur Sensor
    ============
    Wie ist die Temperatur in #

    Lock Controller
    ==========
    Schließe # ab
    Ist # abgeschlossen?

    Camera Stream Controller
    =================
    Zeige #.

    Channel Controller
    ============
    vorherigen Kanal auf #
    nächsten Kanal auf #
    einen Kanal vor auf #
    einen Kanal zurück auf #
    wechsel auf # zu Kanal <channel_number>
    wechsel auf # den Kanal zu <channel_name>

    InputController
    ==========
    wechsel auf # zu Input <input_name>
    wechsel auf # den Input zu <input_name>

    Speaker
    =====
    stelle Lautstärke von # auf <0-100>
    stelle Lautstärke von # um <0-100> <runter|hoch>
    stelle # stumm
    stelle # stumm aus

    Playback Controller
    ============
    # stop (Stop)
    # neustarten (StartOver)
    # zurückspulen (Rewind)
    # rückwärts
    Spule auf # zurück (Rewind)
    # vorspulen (FastForward)
    # vorwärts (FastForward)
    Spule auf # vor (FastForward)
    # abspielen (Play)
    # pausieren (Pause)
    # nächstes (Next)
    # weiter (Next)
    # zurück (Previous)
    # vorheriges (Previous)

    Hier nochmal ein Beispiel für die Konfiguration eines Powerlevel Controllers, welcher vermutlich der beste Start darstellt:

    Screenshot from 2018-06-20 12-30-27.png
    Und hier die Konfig des Skill LBS:

    Screenshot from 2018-06-20 12-32-02.png
    Wichtig A1 von LBS1201 muss mit E4 von LBS1200 verbunden werden und A1 von LBS1200 mit E1 von LBS1201.
    Dadurch wird das Discovery und die Weiterleitung der Events ermöglicht.
    Zuletzt geändert von jonofe; 18.11.2018, 18:52.

    #2
    Moin Jonofe,
    da ich mich jetzt erst in Edomi reingefuchst habe konnte ich das noch nicht testen. Auch deine erste Version noch nicht.
    Was ist denn genau der Grund das ich zusätzlich zu der Edomi Hardware noch einen Rasperry benötige um Alexa mit Edomi zu nutzen ?

    Ich will jetzt nicht deine Arbeit schmälern aber weiss vielleicht jemand ob es eine Möglichkeit das ganze wie bei Openhab zu nutzen ?
    D.h. ich installiere ein App auf Alexa. Das OpenhabApp ist relativ neu auf Alexa und connecte mich dann mit Edomi auf das App ?
    bzw vorher war das eine Bastellösung über das Phillips hue Binding das ich über das Binding Geräte anlegen konnte.

    Kommentar


      #3
      Der RPi ist nicht zwangsweise notwendig aber aus Sicherheitsgesichtspunkten empfohlen.

      Openhab hat vermutlich einen offiziellen Skill entwickelt, basierend auf einem Cloud Service. Dieser muss allerdings von jemandem entwickelt, gepflegt und betrieben werden. Dies ist bei meinem Skill anders, da ich mich explizit gegen diesen Aufwand entschieden habe, welcher auch mit Kosten verbunden ist. Daher ist diese Lösung dediziert für jeden User und mit etwas mehr Konfigurationsaufwand für den Nutzer verbunden, aber der Aufwand eine zentrale Plattform zu betreiben entfällt..

      Kommentar


        #4
        Hi,
        nun ist seit deiner Vorstellung der V3 deinerseits etwas Zeit vergangen... Könntest du bezüglich der Installation ein bischen Hilfestellung geben??

        Kommentar


          #5
          Ich denke zu 90% sollte die ober verlinkte Anleitung funktionieren. Die Amazon Screens haben sich vielleicht etwas geändert, aber grundsätzlich sollte es vermutlich machbar sein. Meine Empfehlung ist, damit zu starten und dann hier konkrete Fragen zu stellen. Ich werde sie dann versuchen so gut wie möglich zu beantworten.
          Ich habe leider aufgrund anderer Projekte keine Zeit ein detailliertes Update der Doku zu machen.

          Wäre natürlich hilfreich, wenn dann jemand seine Bemühungen dokumentiert (Update der aktuellen Beschreibung). Das würde anderen dann auch weiterhelfen.
          Mehr kann ich leider derzeit nicht anbieten.

          Kommentar


            #6
            Zitat von jonofe Beitrag anzeigen
            Ich habe leider aufgrund anderer Projekte keine Zeit ein detailliertes Update der Doku zu machen.

            .
            Das sind doch hoffentlich edomi Projekte und nicht Arbeit oder gar familiy
            Jean-Luc Picard: "Things are only impossible until they are not."

            Kommentar


              #7
              Leider sind es Projekte wie:
              - Fassade streichen
              - Randsteine setzen
              - Rasen erneuern
              - Bewässerunganlage
              - Mähroboter
              - Kameras

              Also nur teilweise und eher später mit Edomi Bezug

              Kommentar


                #8
                so, habe mich mal daran versucht..
                wenn ich bei amazon einen Skill anlege, muss ich doch smart home auswählen oder??? in diesem Fall gibt es als Endpoint nur die Möglichkeit einen AWS zu nutzen. In der Anleitung heisst es man soll den https von sich einrichten. Gibt es da einen Tipp??

                Kommentar


                  #9
                  Das klingt danach als würdest du gerade die Custom Skill Anleitung auf einen Smarthome Skill anwenden.

                  Wenn du bis Kapitel 8 alles erfolgreich durchgeführt hast, dann muss du mit Kapitel 12 weitermachen, denn Kapitel 9-11 beziehen sich ausschließlich auf den Alexa Custom Skill.

                  Ab Kapitel 12.5 müssen dann die Files aus dem ersten Post dieses Threads verwendet werden.

                  Kommentar


                    #10
                    Unbenannt.JPG Also ich habe nochmal alles durchgeschaut.... in der AWS bekomme ich folgende Meldung beim Test der Lambda


                    auch im Skill test, bekomme ich als Rückmeldung, keine Geräte gefunden und entsprechend keine Reaktion im Log von Edomi.
                    Zuletzt geändert von Sascha1983; 29.07.2018, 11:17.

                    Kommentar


                      #11
                      Versuche mal die angehängte ZIP Datei zum deployen der Lambda Funktion zu verwenden.
                      Und dann wie in der Anleitung beschrieben, die URL anpassen.

                      Angehängte Dateien

                      Kommentar


                        #12
                        Klasse, das hat schonmal etwas geholfen. Immerhin bekomme ich einen Connect im Log. Leider sagt er Payload V2 und im Shell von AWS kommt folgendes:

                        Response: { "stackTrace": [ [ "/var/task/edomi-aws-lambda-skill-adapter-PLv3.py", 21, "lambda_handler", "return json.loads(response.text)" ], [ "/usr/lib64/python2.7/json/__init__.py", 339, "loads", "return _default_decoder.decode(s)" ], [ "/usr/lib64/python2.7/json/decoder.py", 364, "decode", "obj, end = self.raw_decode(s, idx=_w(s, 0).end())" ], [ "/usr/lib64/python2.7/json/decoder.py", 382, "raw_decode", "raise ValueError("No JSON object could be decoded")" ] ], "errorType": "ValueError", "errorMessage": "No JSON object could be decoded" } Request ID: "20f52a85-9368-11e8-a0bb-65ebd8d8fb6e" Function Logs: START RequestId: 20f52a85-9368-11e8-a0bb-65ebd8d8fb6e Version: $LATEST #### Starte EDOMI SmartHome Skill Handler #### Event: {u'header': {u'messageId': u'F8752B11-69BB-4246-B923-3BFB27C06C7D', u'name': u'DiscoverAppliancesRequest', u'namespace': u'Alexa.ConnectedHome.Discovery', u'payloadVersion': u'2'}, u'payload': {u'accessToken': u'1'}} Response: u'' No JSON object could be decoded: ValueError Traceback (most recent call last): File "/var/task/edomi-aws-lambda-skill-adapter-PLv3.py", line 21, in lambda_handler return json.loads(response.text) File "/usr/lib64/python2.7/json/__init__.py", line 339, in loads return _default_decoder.decode(s) File "/usr/lib64/python2.7/json/decoder.py", line 364, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/usr/lib64/python2.7/json/decoder.py", line 382, in raw_decode raise ValueError("No JSON object could be decoded") ValueError: No JSON object could be decoded END RequestId: 20f52a85-9368-11e8-a0bb-65ebd8d8fb6e REPORT RequestId: 20f52a85-9368-11e8-a0bb-65ebd8d8fb6e Duration: 924.66 ms Billed Duration: 1000 ms

                        Kommentar


                          #13
                          Das sieht so aus, als wäre dein Alexa Skill und Lambda Setup korrekt. Lediglich der Callback auf deinen Smarthome Skill liefert keine Response.
                          Das kann jetzt verschiedene Ursachen haben. Du solltest den Kommunikationsweg nun wie folgt prüfen:
                          1. Log des Reverseproxy (apache oder nginx) prüfen, ob die Lambda Funktion versucht das Skill-Skript aufzurufen
                          2. Wenn das erfolgreich war, dann das Log des Skillskripts auf dem EDOMI Server prüfen, ob der Aufruf vom Reverseproxy bis zum Edomi Server durchgeht (ggf. Firewall zwischen RevProxy und Edomi Server freischalten, bzw. RevProxy korrekt konfigurieren)
                          3. Wenn das auch funktioniert sollte das Skillskript mit dem Smarthomeskill-LBS 1200 kommunizieren (hier wieder einen anderen Port wählen, wenn 800x bei dir nicht funktioniert). Es sollte dann etwas im Log des LBS auftauchen
                          4. Wenn auch dies funktioniert, dann den Smarthomeskill Device LBS prüfen, ob dieser korrekt konfiguriert ist. Hier sollte mindestens einer vorhanden sein, damit eine entsprechende Antwort auf "Alexa finde meine smarten Geräte" generiert wird.

                          Am besten dann die entsprechenden Logs/Ergebniss dieser 4 Prüfungen hier posten. Dann sehen wir weiter ...

                          Kommentar


                            #14
                            Also, soweit folgendes Ergebnis:

                            im log vom Skill:

                            Status received from EDOMI: {"event":{"header":{"messageId":"36189c6e-0e36-4e5e-bea5-d401db5b74bc","name":"Discover.Response","namespac e":"Alexa.Discovery","payloadVersion":"3"},"pay loa d":{"endpoints":[{"endpointId":1,"manufacturerName":"EDOMI Smarthome Skill - (c) jonofe","friendlyName":"test","description":"test" ,"displayCategories":["OTHER"],"cookie":{},"capabilities":[]},{"endpointId":"Powercontroller","manufacturerNa m e":"EDOMI Smarthome Skill - (c) jonofe","friendlyName":"k\u00fcche","description": "k\u00fcche","displayCategories":["Light"],"cookie":{},"capabilities":[{"type":"AlexaInterface","interface":"Alexa.Pow erC ontroller","version":"3","properties":{"supported" :[{"name":"powerState"}],"proactivelyReported":false,"retrievable":true }}]}]}}}

                            JSON RESPONSE:
                            {"event":{"header":{"messageId":"36189c6e-0e36-4e5e-bea5-d401db5b74bc","name":"Discover.Response","namespac e":"Alexa.Discovery","payloadVersion":"3"},"pay loa d":{"endpoints":[{"endpointId":1,"manufacturerName":"EDOMI Smarthome Skill - (c) jonofe","friendlyName":"test","description":"test" ,"displayCategories":["OTHER"],"cookie":{},"capabilities":[]},{"endpointId":"Powercontroller","manufacturerNa m e":"EDOMI Smarthome Skill - (c) jonofe","friendlyName":"k\u00fcche","description": "k\u00fcche","displayCategories":["Light"],"cookie":{},"capabilities":[{"type":"AlexaInterface","interface":"Alexa.Pow erC ontroller","version":"3","properties":{"supported" :[{"name":"powerState"}],"proactivelyReported":false,"retrievable":true }}]}]}}}


                            Nur leider findet er nichts..... Also er meldet keine neuen Geräte gefunden.

                            Kommentar


                              #15
                              Na immerhin sehe ich da schon Daten von zwei Geräten. Eins mit Namen test und eins mit Namen Küche.
                              Kannst du mal die Logikseite des Skill LBS und insbesondereder beiden Device LBS posten.

                              Kommentar

                              Lädt...
                              X