+ Antworten
Seite 24 von 24 ErsteErste ... 14 22 23 24
Ergebnis 231 bis 232 von 232
  1. #231
    Registriert seit
    Mar 2009
    Ort
    München + 1 more
    Beiträge
    53

    Nachdem das Thema Alexa Custom Skill für mich gerade wieder aktuell wird, möchte ich a) den Thread wieder nach oben bringen und b) meine Idee zum Thema der Slotvalue ID, was Burkhard
    Zitat Zitat von bumaas Beitrag anzeigen
    ...
    gefragt hatte, zum Besten geben.

    Ich habe einen rudimentären Ansatz gefunden, um die Antwort des Skills besser auszuwerten. Dazu sind in der Alexa Dev Console die IDs der Slotvalues selbst eindeutig festlegen (z.B. "ID_SUBJ_WETTER"), dann kann ich diese im jeweiligen Intent-Modul-Skript sicher identifizieren (anstatt alle möglichen Synonyme in einem Case-Zweig aufzulisten, wie es in Patamis Demo-Skill gemacht wird.)

    Hier mein Ansatz, ohne die Klassen zu verändern (ich habe keine richtige Ahnung, was das für Auswirkungen hätte). Meine Idee ist es, einfach den Wert des jeweiligen Slotvalues (=String) um meine eindeutige Slotvalue-ID zu erweitern.

    Man muss nur in Patamis IntentSlots.php die Zeilen ändern:

    PHP-Code:
                $slotValue = @$slot['value'];
                
    // slot id for first match
                
    $slotValueDetails = @$slot['resolutions']['resolutionsPerAuthority'][0]['values'][0]['value']['id'];
                
    // IPS_LogMessage($_IPS['SELF'], "Alexa Custom Skill slotValueDetails: " . var_export($slotValueDetails, true));
                
    if ( isset($slotValue) and is_string($slotValueDetails)) {
                    
    $this->data[$slotName] = $slotValue ':' $slotValueDetails;
                } else {
                    
    $this->data[$slotName] = $slotValue;
                } 
    Siehst sicher nicht schön aus, insbesondere der fixe Arrayzugriff, aber es funktioniert. Der Wert des Slots wird einfach erweitert um die ID, die ich dann in meinem Skript in der Modul-Funktion Execute() herausfiltern kann, etwa so:

    PHP-Code:
        $subject strtolower($request->slots->mySubject);
        
    $subject explode(":"$subject)[1]; // Slot-ID steht nach Teiler 
    Vielleicht hilft es ja jemanden... Und falls einer das besser implementieren kann - ich freue mich auf jede Verbesserung.

    Viele Grüße, Carsten
    Geändert von doctee (08.02.19 um 11:22 Uhr)
    Viele Grüße!
    NUC6CAYH - Homematic - Tasmota - Windows 10 - IPS 5.3 - HighCharts 6

  2. #232
    Registriert seit
    Mar 2017
    Beiträge
    318

    Zitat Zitat von Fonzo Beitrag anzeigen
    Du hast einen Alexa Custom Skill das ist der I/O. Du kannst so viele Custom Skill Intent Instanzen haben wie Du brauchst, Du musst nur einfach als übergeordnete Instanz jeweils den gleichen Custom Skill IO zuordnen.

    Anhang 40387Anhang 40388
    [Fonzo schläft nie]
    Guten Morgen,

    kurze Frage, die die sicher aus der Hüfte schießt. Ich hatte vor bei einem aktiven Alexa Custum Skill, einen weiteren hinzuzufügen. Zweck:
    Ich sage für die Steuerung im Haus: "Alexa, sage Haus...Rolläden schließen"
    Jetzt möchte ich für einen Bereich das ganze abgrenzen: "Alexa, sage Heimkino...Licht ausschalten"
    Problem:
    wenn ich einen 2. Skill in der Devoloper Console anlege, in IPS alles konfiguriere, mein Alexa auf einen Testbefehl: tut ihr leid, kann sie nicht ausführen, weil die ApplikationsID nicht zulässig ist

    Geht das überhaupt mit einem zweiten Skill?

    Gruß oekomat

Ähnliche Themen

  1. Slots und Utterances für ein Alexa Customs Skill
    Von Fonzo im Forum Amazon Alexa
    Antworten: 37
    Letzter Beitrag: 30.11.17, 11:36
  2. Alexa Custom Skill Modul
    Von patami im Forum Amazon Alexa
    Antworten: 121
    Letzter Beitrag: 05.08.17, 11:41
  3. Antworten: 28
    Letzter Beitrag: 08.03.17, 02:15
  4. Wird es einen Smart Home Skill für Alexa geben?
    Von sschnake im Forum Allgemeine Diskussion
    Antworten: 3
    Letzter Beitrag: 10.11.16, 19:40