Zitat von 2Fast4You78
Beitrag anzeigen
Ankündigung
Einklappen
Keine Ankündigung bisher.
Alexa Custom Skill für EDOMI (LBS 19000646 und 19000647)
Einklappen
X
-
Ok, logisch. Ich dachte mehr daran, dass der Umweg über Lambda evtl. eine direkte Kommunikation per IPv6 ermöglichen würde.Zitat von jonofe Beitrag anzeigenLambda 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.
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
-
Hmmm... bei mir ging es erst mit eingetragener UserID ?? Vorher gar nix...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.
Kommentar
-
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: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.
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.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)Zuletzt geändert von jonofe; 08.03.2017, 19:30.
Kommentar
-
Klasse. Das ist eine großartige Nachricht! Besten Dank für Deine Mühe und Zeit...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.
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
-
Das klappt sehr gut.Zitat von Nanosonde Beitrag anzeigen
3)
Klappt auch schon das Abfragen von Messwerten?
"Alexa, starte edomi und gib mit den Raumtemperatur des Wohnzimmers".
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
-
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 ReceiverHast du eine Idee?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
Kommentar
-
Nachdem es nun läuft, habe ich versucht den Fehler nochmals zu produzieren, will aber nicht mehr!Was genau war es denn? Wenn man damit EDOMI abschießen kann, dann würde ich das gerne im Error handling abfangen.
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
-
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
a.) Gibt es einen Weg bestimmte Funktionen einem dot zuzuordnen, bzw. anderen Dots zu verbieten?
Im Custom Slot Type "Switch_Name_Type" das Wort "Musik" ergänzen.Zitat von hartwigm Beitrag anzeigenb.) 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?
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
-
Ja, vielleicht einfach mal ein Update auf die aktuelle Version machen... Receiver und Validator ....Zitat von 2Fast4You78 Beitrag anzeigenMeine 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?
Kommentar
-
So habe ich es auch probiert, aber da kommt keine LocationIm Custom Slot Type "Switch_Name_Type" das Wort "Musik" ergänzen.
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 belegtGruß Hartwig
Kommentar


Kommentar