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

    Zitat von 2Fast4You78 Beitrag anzeigen
    Hier die Antwort: Eine UserID muss zwingend eingetragen werden, auch wenn darunter "false" gesetzt ist in der alexa.php.
    Vielen Dank an Andre für die Klasse Anleitung und die bisher programmierten Bausteine!
    Nein, das sollte nicht notwendig sein. Wenn false, dann false. Nur wenn es nicht auf false gesetzt wird, dann ist eine userId notwendig.

    Kommentar


      Zitat von jonofe Beitrag anzeigen
      Lambda wäre eine Alternative zum alexa.php Skript. Allerdings muss auch die Lambda Funktion den EDOMI Server erreichen. Daher ist es hier keine Alternative zum Reverse Proxy.
      Ok, logisch. Ich dachte mehr daran, dass der Umweg über Lambda evtl. eine direkte Kommunikation per IPv6 ermöglichen würde.
      Ich kenne mich mit Lambda überhaupt nicht aus. Dachte, dass man dort sowas wie einen Mini-Repeater installieren könnte, der dann mit dem alexa.php Skript spricht.


      Kommentar



        Kleiner Ausblick: Bald wird es auch einen passenden Smarthome Skill geben, der sich in den Alexa Command Validator integriert. Dauert aber noch etwas.
        Dann warte ich noch mit der Implementierung der Custom Skills bei meinen Lampen und Jalousien?
        www.knx-Hausblog.de

        Kommentar


          Zitat von jonofe Beitrag anzeigen

          Nein, das sollte nicht notwendig sein. Wenn false, dann false. Nur wenn es nicht auf false gesetzt wird, dann ist eine userId notwendig.
          Hmmm... bei mir ging es erst mit eingetragener UserID ?? Vorher gar nix...
          www.knx-Hausblog.de

          Kommentar


            Das wäre sehr seltsam. Denn es ist nur ein Variable. Wenn ich das false reinschreibe, dann ist es völlig egal was vorher drin stand.
            Kannst es ja noch mal versuchen.

            Kommentar


              Zitat von Nanosonde Beitrag anzeigen

              Ok, logisch. Ich dachte mehr daran, dass der Umweg über Lambda evtl. eine direkte Kommunikation per IPv6 ermöglichen würde.
              Ich kenne mich mit Lambda überhaupt nicht aus. Dachte, dass man dort sowas wie einen Mini-Repeater installieren könnte, der dann mit dem alexa.php Skript spricht.

              Im Prinzip mache ich das so für den SmartHome Skill. Ich habe eine Mini-Lambda Funktion, die nur den Event an mein PHP Skript weiterleitet:

              Code:
              import requests
              import json
              from pprint import pprint
              
              def lambda_handler(event, context):
                  access_token = event['payload']['accessToken']
                  url = 'https://alexa.xxxxxx.xxx/admin/lbs/xxxxx-xxxxxxxxx-xxxxx.php'
                  headers = {"content-type": "application/json"}
                  data = json.dumps(event)
                  response = requests.post(url, headers=headers, data=data, verify=True)
                  return json.loads(response.text)
              Wäre also grundsätzlich möglich, werde ich aber so nicht im Rahmen des LBS machen, da es nur ein weiterer Zwischenschritt ist, der Zeit kostet.
              Zuletzt geändert von jonofe; 08.03.2017, 19:30.

              Kommentar


                Zitat von jonofe Beitrag anzeigen

                Kleiner Ausblick: Bald wird es auch einen passenden Smarthome Skill geben, der sich in den Alexa Command Validator integriert. Dauert aber noch etwas.
                Klasse. Das ist eine großartige Nachricht! Besten Dank für Deine Mühe und Zeit...

                Gunnar

                Kommentar


                  @jonofe:
                  Tolle Arbeit, danke


                  Bei der Rolladenpositionierung überlege ich gerade wie eigentlich der einfachste Weg ist, die 0-100% Werte bei der ALEXA Ausgabe in die 0-255 Positionswerte für das KO zu konvertieren. Mit einem reinen Multiplikator LBS funktioniert das nicht direkt, da der bei der Initialisierung ja sofort ein 0 Produkt ausliefert (Eingang leer). Wer kann mir hier bitte helfen? Vorab Danke

                  Kommentar


                    Zitat von Nanosonde Beitrag anzeigen

                    3)
                    Klappt auch schon das Abfragen von Messwerten?
                    "Alexa, starte edomi und gib mit den Raumtemperatur des Wohnzimmers".
                    Das klappt sehr gut.
                    Die Anfrage ist sogar noch etwas einfacher.

                    "Alexa, frag Edomi nach der Außentemperatur" gibt mit folgender Logik die aktuelle Außentemperatur, sowie die Min- und Max-Werte (aus dem entsprechenden Datenarchiv) der vergangenen 12 Stunden aus:

                    Zwischenablage01.jpg
                    Die Rechnerei mit mal 10 und dann div/mod war notwendig, um in allen Fällen korrekte Angaben mit einer NachKOMMAStelle zu erzeugen. Hab in einem anderen Thread mal angeregt, ein LBS zu erstellen, in dem genau dieselben mathematischen/String- Funktionen wie in Visuelementen auf KO-Werte angewendet werden können.... dann wirds einfacher.
                    Der Response-Text im Command Validator lautet in meinem Fall "Die Außentemperatur beträgt %1% Komma %2% Grad Celsius. Das Minimum der letzten zwölf Stunden war %3% Komma %4%, das Maximum %5% Komma %6% Grad Celsius."
                    In der Amazon-Skill-Verwaltung muss lediglich unter den "custom Slot types" der "group type" um den value "Außentemperatur" (oder was auch immer Du abfragen willst) ergänzt werden.

                    Läuft bestens.

                    Grüße,

                    Gunnar

                    Kommentar


                      Der Ausgang bei Rolläden Position wird automatisch auf 0-255 skaliert.
                      Wenn du also 100% sagst, dann sollte an A2 des Command Validators 255 rauskommen.

                      Kommentar


                        alexa_logik.PNGNabend André,
                        Meine Alexa hört soweit schon auf mich, ich habe allerdings recht viele Fehler im Log der folgenden Art im Alexa Receiver
                        LBS19000642 [v0.2]: File: /usr/local/edomi/www/data/liveproject/lbs/EXE19000646.php | Error: 2 | Line: 80 | stream_socket_accept(): accept failed: Connection timed out
                        Hast du eine Idee?
                        www.knx-Hausblog.de

                        Kommentar


                          Was genau war es denn? Wenn man damit EDOMI abschießen kann, dann würde ich das gerne im Error handling abfangen.
                          Nachdem es nun läuft, habe ich versucht den Fehler nochmals zu produzieren, will aber nicht mehr!
                          Keine Ahnung wie ich das hinbekommen habe!

                          Jetzt habe ich aber noch 2 Fragen.

                          a.) Gibt es einen Weg bestimmte Funktionen einem dot zuzuordnen, bzw. anderen Dots zu verbieten?

                          b.) Ich schalte die Musik in meinem Büro mit dem Kommando
                          "Alexa schalte Licht im Büro an/aus"

                          Was muß ich unternehmen, damit ich hier Musik <Raumbezeichnung> sagen kann?
                          Gruß Hartwig

                          Kommentar


                            Zitat von hartwigm Beitrag anzeigen


                            a.) Gibt es einen Weg bestimmte Funktionen einem dot zuzuordnen, bzw. anderen Dots zu verbieten?
                            Nein, das geht m.W. nicht, da die Device ID nicht ausgewertet werden kann. Ist zumindest mein letzter Stand. D.h. Echos, die demselben Account zugeordnet sind, können nicht unterschieden werden.

                            Zitat von hartwigm Beitrag anzeigen
                            b.) Ich schalte die Musik in meinem Büro mit dem Kommando
                            "Alexa schalte Licht im Büro an/aus"

                            Was muß ich unternehmen, damit ich hier Musik <Raumbezeichnung> sagen kann?
                            Im Custom Slot Type "Switch_Name_Type" das Wort "Musik" ergänzen.

                            Danach sollten dann folgende Befehle möglich sein:
                            Alexa, starte EDOMI und schalte die Musik im Büro ein.
                            Alexa, starte EDOMI und schalte im Büro die Musik ein.
                            Alexa, starte EDOMI und schalte die Musik ein.


                            Den Alexa Command Validator musst du natürlich entsprechend an den Eingängen konfigurieren.

                            Kommentar


                              Zitat von 2Fast4You78 Beitrag anzeigen
                              Meine Alexa hört soweit schon auf mich, ich habe allerdings recht viele Fehler im Log der folgenden Art im Alexa Receiver
                              Hast du eine Idee?
                              Ja, vielleicht einfach mal ein Update auf die aktuelle Version machen... Receiver und Validator ....

                              Kommentar


                                Im Custom Slot Type "Switch_Name_Type" das Wort "Musik" ergänzen.
                                So habe ich es auch probiert, aber da kommt keine Location

                                Als Antwort bekomme ich nur einfachen Schaltbefehl empfangen

                                der Receiver liefert {"group":"schalten","name":"musik","location":""," value":0,"queue":179962176}

                                mache ich das mit Licht, dann wird Location korrekt belegt
                                Gruß Hartwig

                                Kommentar

                                Lädt...
                                X