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

  • junibart
    antwortet
    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

    Einen Kommentar schreiben:


  • marco_weinkauf
    antwortet
    @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

    Einen Kommentar schreiben:


  • junibart
    antwortet
    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

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    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.

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    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.

    Einen Kommentar schreiben:


  • 2Fast4You78
    antwortet
    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...

    Einen Kommentar schreiben:


  • 2Fast4You78
    antwortet

    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?

    Einen Kommentar schreiben:


  • Nanosonde
    antwortet
    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.


    Einen Kommentar schreiben:


  • jonofe
    antwortet
    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.

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Zitat von Nanosonde Beitrag anzeigen

    Jedenfalls habe ich jetzt alles gemäß der Anleitung laufen. Danke an André dafür!

    Vier Fragen noch:
    1)
    Ist denn die Verwendung von SSL auf dem EDOMI-Server zwingend notwendig?
    Ich kann beim Reverse-Proxy doch auch einen HTTP-Server ohne SSL angeben.
    Oder ist das einfach zusätzliche Sicherheit, falls der Reverse Proxy in einer DMZ steht und intern den EDOMI-Server kontaktiert, so dass niemand in der DMZ lauschen kann?
    Das wird wohl auch ohne SSL funktionieren. Ist zusätzliche Sicherheit.

    Zitat von Nanosonde Beitrag anzeigen
    2)
    Wäre es auch irgendwie möglich statt eines HTTPS-Servers eine Lambda-Funktion zu nutzen?
    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.

    Zitat von Nanosonde Beitrag anzeigen
    3)
    Klappt auch schon das Abfragen von Messwerten?
    "Alexa, starte edomi und gib mit den Raumtemperatur des Wohnzimmers".
    Abfragen sollten grundsätzlich funktionieren. Allerdings ist das Thema Temperatur noch nicht implementiert.

    Zitat von Nanosonde Beitrag anzeigen
    4)
    Kann Alexa auch durch das Triggern über eine Verbindung selbst aktiv werden und sich melden, ohne dass ich was angefragt habe?
    Alexa meldet sich auf einen KNX-Trigger und sagt einfach was wie: "Eine Info für Harry: der Wagen steht schon vor der Tür."
    [/QUOTE]

    Nein, das geht derzeit nicht. Es gibt allerdings einige wenige Funktionen, die man remote auslösen kann, ohne einen Sprachbefehl zu geben. Dies basiert aber nur auf Reverse Engeneering (z.B. Lautstärke, Radiosender starten, Stop, Pause). Dazu gibts einen Thread hier im EDOMI Forum. Einfach mal nach Alexa suchen. M.W. ist dies aber noch nicht für EDOMI implementiert. Steht noch auf meiner Liste zur Erweiterung.

    Kleiner Ausblick: Bald wird es auch einen passenden Smarthome Skill geben, der sich in den Alexa Command Validator integriert. Dauert aber noch etwas.

    Einen Kommentar schreiben:


  • Nanosonde
    antwortet
    Zitat von Nanosonde Beitrag anzeigen
    Ist bekannt, ob die Endpoint URL beim Alexa Custom Skill auch auf eine IPv6-Adresse auflösen darf?
    Hallo zusammen,

    ich beantworte meine Frage mal selbst: aktuell leider NEIN!

    Amazon selbst gibt an, dass man beim HTTPS Endpoint sehr pingelig ist. HTTPS muss auch wohl zwingend über Port 443 laufen.
    Mein Test bestätigte beides: kein anderer Port möglich, keine IPv6-DNS-Auflösung.

    Ich nutze nun diesen Service hier und habe mir eine feste IPv4-Adresse für den dedizierten Portmapper geholt:
    https://www.feste-ip.net

    Jedenfalls habe ich jetzt alles gemäß der Anleitung laufen. Danke an André dafür!

    Vier Fragen noch:
    1)
    Ist denn die Verwendung von SSL auf dem EDOMI-Server zwingend notwendig?
    Ich kann beim Reverse-Proxy doch auch einen HTTP-Server ohne SSL angeben.
    Oder ist das einfach zusätzliche Sicherheit, falls der Reverse Proxy in einer DMZ steht und intern den EDOMI-Server kontaktiert, so dass niemand in der DMZ lauschen kann?

    2)
    Wäre es auch irgendwie möglich statt eines HTTPS-Servers eine Lambda-Funktion zu nutzen?

    3)
    Klappt auch schon das Abfragen von Messwerten?
    "Alexa, starte edomi und gib mit den Raumtemperatur des Wohnzimmers".

    4)
    Kann Alexa auch durch das Triggern über eine Verbindung selbst aktiv werden und sich melden, ohne dass ich was angefragt habe?
    Alexa meldet sich auf einen KNX-Trigger und sagt einfach was wie: "Eine Info für Harry: der Wagen steht schon vor der Tür."
    Zuletzt geändert von Nanosonde; 08.03.2017, 14:58.

    Einen Kommentar schreiben:


  • 2Fast4You78
    antwortet
    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!

    Einen Kommentar schreiben:


  • 2Fast4You78
    antwortet
    Ich habe den Reverse Proxy jetzt scheinbar am Laufen. Bekomme aber beim Test "Starte Edomi" im Service-Simulator den Eintrag
    Code:
    There was an error calling the remote endpoint, which returned HTTP 500 : Internal Server Error
    Die phpinfo.php auf dem Edomi-Server ist von aussen erreichbar, auch der Raspi selbst. Wie mache ich da weiter, bzw kann das weiter eingrenzen?

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Was genau war es denn? Wenn man damit EDOMI abschießen kann, dann würde ich das gerne im Error handling abfangen.

    Einen Kommentar schreiben:


  • hartwigm
    antwortet
    Hallo André,

    vielen Dank für deine Geduld!

    Es geht !
    War in der Tat ein Fehler im Feld Response was den Edomi in die Ferien geschickt hat.
    Die Fehlermeldung dazu im Eingang von 20:29

    Einen Kommentar schreiben:

Lädt...
X