Patami Alexa Skill Framework

mein voriger Eintrag ist missverständlch. Der Screenshot bezieht sich auf das Installieren des Moduls, die Aussage mit „Creating“ auf das Hinzugügen der Instanz, im Bild nicht ersichtlich.

Evtl. keine Variablen mehr verfügbar in Deiner Lizenz?
Mit 4.1 wird es nicht tun, es wird 4.2 benötigt. Probier mal 4.3 Test.

Hallo patami,

erst mal vielen Dank für Deinen Einsatz.
Auf einem jungfräulichen Testsystem läuft alles super.

Auf meinen Produktivsystem mit IP Symcon 4.3 kann ich das Modul problemlos installieren.
Bei dem hinzufügen der Kerninstanz kommt folgende Fehlermeldung:


Danach gibt es „Unnamed Objekt“ welches ich aber nicht bearbeiten kann.

Dazu muss ich sagen das ich parallel das Modul von Dave am Laufen habe.
Im Vorwege hatte ich schon Dein „altes Modul“ installiert. Allerdings habe ich versucht alle Bestandteile dieses Moduls zu löschen.

Hast Du einen Tipp für mich?

Gruß

Axel

Hallo patami,

meinen Fehler habe ich gefunden.
Ich hatte 2 „Modules“ unter den Kerninstanzen.

Eine Instanz gelöscht und schon konnte ich Alles installieren.

Gruß

Axel

Servus

Hab mir mal den Patami Demo Skill installiert. Scheinbar gibt es aktuell ein Problem mit der Versionserkennung des Strings den Alexa zu IPS schickt.

Nehme ich in der Request.php mal probehalber den Version Check raus funktioniert alles einwandfrei. - War ganz schön schwer die Zeile zu finden …

Hier noch der debug Output des Custom Skill Modules, in der Tat ist keine Versionkennung enthalten.:

{"session": <LF>{"sessionId":"SessionId.123456789","application":{"applicationId":"amzn1.ask.skill.123456789"},"attributes":{},"user":{"userId":"amzn1.ask.account.123456789","accessToken":null},"new":false},<LF>"request":<LF>{"requestId":"EdwRequestId.9bc9e668-f804-4bb9-b7ca-25b0683a552c","locale":"de-DE","type":"IntentRequest","timestamp":1501185664411,"intent":{"name":"GetInformation","slots":{"subject":{"name":"subject","value":"variablen"}}}},"context":{"System": {"application": {"applicationId": "applicationId"}, "user":{"userId": "userId","permissions": {"consentToken": "consentToken"},"accessToken": "accessToken"},"device": { "deviceId": "deviceId","supportedInterfaces":{} },"apiEndpoint": "apiEndpoint"}}}

Komischerweise ist er aber lt. Skils Simulator mitgesendet:

Hab ich mir irgendwas falsch eingerichtet oder ist da ein Bug der die Versionkennung verschluckt ?

greez
bb

Hi,

bei mir wird automatisch keine Webhook Instanz angelegt. Hab schon alles deinstalliert/gelöscht, IPS neu gestartet und das Framework neu installiert, nichts bringt was?

Hier der Fehler im Debug der „Alexa custom Skill Instanz“:

Cannot find the WebHook instance

Kann ich die Webhook Instanz manuell anlegen? Mit welchen Parametern?

Danke

Kerninstanzen -> CTRL+1 -> Webhook Control. Wenn diese vorhanden ist sollte das automatisch angelegt werden. Die Webhook Instanz nicht löschen, diese ist zentraler Bestandteil von IP-Symcon und auch für andere Dinge notwendig.

Hi,

Fehler gefunden…

Ich hatte 2 Webhook-Instanzen und damit kam das Framework anscheinend nicht klar. Hab jetzt eine gelöscht und schon geht!!!:loveips:

Danke + Gruß
spooniester

Hi nochmals,

nachdem ich nun den einen Fehler behoben habe laufe ich in den gleichen Fehler wie bbernhard.
Gibts hier schon eine Lösung? Oder ist der Workaround die Request.php zu bearbeiten derzeit der einzigste Weg?

danke

Habe auch das gleiche Problem beim einrichten. Hatte schon die Befürchtung ich habe was vergessen.

Lg Daniel

Ich versuche, das in den nächsten Tagen mal zu prüfen.
Sorry, ich bin gerade beruflich zu 150% ausgelastet.

Hallo,

ich wollte heute das Framework ausprobieren,
sobald ich das Modul hinzufüge bekomme ich leider folgende Meldungen im Meldungsfenster.(siehe screenshot) :confused:

hat vielleicht einer eine Idee woran das liegt?

Ne kleine Hilfe die noch Probleme haben mit der Version Erkennung und Alexa nicht zum laufen bekommen.

Ihr findet die Request.php unter
C:\IP-Symcon\modules\ipspatami\libs\Patami\IPS\Services\Alexa\Skills\Custom

da sucht ihr nach diesen Zeilen und klammer sie aus.

        //if ($version != '1.0') {
        //    $this->Debug('Version Validation', 'Version is not supported');
        //   throw new InvalidRequestVersionException();
        //}

Ich denke das ist die beste Lösung bis Flo Zeit mal über den Fehler zu gucken.
Habe bis jetzt gerade meine ganzen alten Alexa Scripte umgeschrieben… jetzt läufts wieder :wink:

Diese Meldungen zeigen an, dass Skripte von Dir keine saubere Fehlerbehandlung haben.
Diese Fehler treten ohnehin auf, sie wurden aber ohne das Patami Framework nicht protokolliert.

Zwei Optionen:

  • „Unbehandelte PHP Fehler und Ausnahmen protokollieren“ im Patami Framework deaktivieren
  • Die Fehler beheben (besser)

Hallo!

Wenn ich die Anfrage über der Service Simulator sende, steht die Version zwar im „Service Request“ Feld, aber kommt nicht beim Skill an. Bei Anfragen über Alexa selbst, scheint es zu tun.

Evtl. liegt es ja am Simulator selbst: „We are aware of issues with the simulator Text tab and are working on a fix. We are also aware that the request shown in the simulator Text tab excludes the generated request context data. Please use the simulator JSON tab if you run into issues with Text tab. For more information, refer to this forum post.“

Wenn man den Request über den „Text“ Tab auslöst, den Request dann in den „JSON“ Tab kopiert und absendet, tut es übrigens.

In der test (und develop) Branch ist nun ein Workaround eingebaut, der beim Fehlen des „version“ Feldes nur noch eine Warnung erzeugt im Debug Log des Skills.

Das sollte helfen. Bitte Feedback.

Bei der Gelegenheit gibt es auch eine neue Funktion:

In der Execute() Funktion eines Custom Skills könnt ihr nun mit

$deviceId = $request->GetDeviceId()

die ID des Alexa Gerätes ermitteln. Damit könnt ihr z.B. bei „Schalte den Fernseher ein“ realisieren, dass in Abhängigkeit vom Gerät (z.B. Echo Dot im Schlaf- oder Wohnzimmer) der Fernseher neben dem entsprechenden Echo Dot eingeschaltet wird.

Die Funktion steht im test und develop Branch zur Verfügung.

Danke , für die Info. [emoji106][emoji2]

Super Arbeit dein Framework.

Gesendet von iPhone mit Tapatalk

So jetzt hab ich wieder Zeit zum testen… :wink:

Evtl. liegt es ja am Simulator selbst: „We are aware of issues with the simulator Text tab and are working on a fix. We are also aware that the request shown in the simulator Text tab excludes the generated request context data. Please use the simulator JSON tab if you run into issues with Text tab. For more information, refer to this forum post.“

Wenn man den Request über den „Text“ Tab auslöst, den Request dann in den „JSON“ Tab kopiert und absendet, tut es übrigens.

Ja stimmt über den Tab Text geht es nicht, wenn ich den Request ins JSON Tab kopiere klappt es.

In der test (und develop) Branch ist nun ein Workaround eingebaut, der beim Fehlen des „version“ Feldes nur noch eine Warnung erzeugt im Debug Log des Skills.

Ich habe gerade die Branch auf Test umgestellt… geht leider nicht siehe … Debug

Im Brach Develop sieht es auch nicht besser aus …

Danke für deinen tollen Job Flo :stuck_out_tongue:

Probier es nochmal, da war leider halbfertiger Code drin. Sorry.

Es gibt übrigens jetzt noch zwei neue Methoden:

$request->GetCountryAndPostalCode() und $request->GetAddress() um die in der Alexa App hinterlegten Adressinformationen des Alexa Gerätes abzurufen.

Bitte beachten, dass dies in der Konfiguration des Skills aktiviert und vom Benutzer in der Alexa App freigegeben werden muss.

Können die Methoden die Informationen nicht abrufen, wird eine Exception geworfen. Siehe Code.
Es ist zu beachten, dass immer nur eine der beiden Methoden funktioniert (je nachdem, was man in der Konfiguration des Skills ausgewählt hat).

In der test (und develop) Branch ist nun ein Workaround eingebaut, der beim Fehlen des „version“ Feldes nur noch eine Warnung erzeugt im Debug Log des Skills.

Die Branch Test und Develop funktionieren nur !!! Allerdings funktioniert der Master Zweig jetzt auch ohne das ich die Versionsüberprüfung raus genommen haben. Hast du noch was verändert ??

Schönen Sonntag noch :wink: