[alexa-fhem | Custom Skills] Probleme mit euren Setups

Begonnen von prodigy7, 19 Februar 2017, 13:16:06

Vorheriges Thema - Nächstes Thema

MadMax-FHEM

#120
Falscher Thread, solche Dinge besser hier posten: https://forum.fhem.de/index.php/topic,60452.0.html
(ist ja allgemein und nicht speziell bzgl. Custom Skill oder!?)

Du startest falsch: woher soll denn die Console $ALEXA_OPTS kennen ;)

Manueller Start geht (normalerweise) so:

cd /opt/fhem/alexa-fhem/
und dann
./bin/alexa

In deinen zweiten geposteten Startmeldungen sehe ich keinen Fehler...

Es werden sogar Geräte gefunden...
...sogar dein Blue_La...

Wobei der Name sicher nicht gut zu sprechen ist und von Alexa auch sicher schwer erkannt werden dürfte ;)

alexaRoom hat für den Smart Home Skill keine Bedeutung

alexaName (oder alias) wäre gut geeignet um "vernünftige" Namen zu vergeben, also die man auch sprechen kann und Alexa verstehen kann...

So aber genug hier, bitte im verlinkten Thread weiter...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Bastian0302

Schönen guten Tag.

kurz zu meinem Setup
Alexa sendet zu fhem die einzelnen Worte und ich werte sie mittels perl aus. Klappt wunderbar.
Aaaaber ich hab ein Problem mit den Synonymen die man bei den slote types einstellen kann.
fhem bekommt immer das was ich gesprochen habe. aber ich möchte dass eigentlich ja nur der slot value übergeben wird und nicht die Synonyme

Beispiel

slot value on synonym an
slot value off synonym aus

wenn  ich nun sage "an" -> kommt "an"
sage ich "on" -> kommt "on"
Ich möchte eigentlich dass immer "on" gesendet wird auch wenn ich "an" sage.

in einem anderen beitrag  https://forum.fhem.de/index.php?topic=65890.90
Post 94 wurde sowas ähnliches gefragt, aber habe dahin gehen keine Antwort gefunden.

bei den slot types kann ich ja auch eine id vergeben, gibt es eine Möglichkeit die bei alexa fhem zuverwenden??

Schönes wochenende :)
Raspbarry Pi 3, Panstamp NRG 2, Cul 433Mhz Sender/Empfänger, Mcp23017 Ein/Ausgabebaugruppe, TabletUi, Doorpi mit Nextion/RFID und Integration in Fhem, Sonos

micky0867

Hallo,

ich habe ein, hoffentlich einfache, Frage:

Nachdem ich meinen Smarthome-Skill mit dazugehöriger Lambda-Smarthome-Funktion angelegt habe (funktioniert soweit auch), wollte ich mich an den Custom-Skill machen.

Also habe ich einen Custom-Skill angelegt und dazu eine Lambda-Custom-Funktion (sieht erstmal vom JS genauso aus, wie die für Smarthome).
In der Lambda-Custom-Funktion habe ich dann einen Trigger für das Custom-Skill-Set angelegt.
Und im Custom-Skill wiederum den ANR-Ident vom Custom-Lamba eingegeben.
Der Custom-Skill liess sich daraufhin aber nicht speichern (Manifesterror).

Dann habe ich gelesen, man muss den Smarthome-Skill-Set ebenfalls als Trigger im Lambda registrieren....(???? Warum dies ???)
Nachdem ich das gemacht habe, liess sich aber schonmal der Custom-Skill speichern.

Jetzt herrscht komplette Verwirrung bei mir.
Der Skill ist doch der Trigger für die Lambda-Funktion.


Wenn jetzt ein Skill(Smarthome) beide Lamba-Funktionen(Smarthome + Custom) triggert, wird doch alles doppelt ausgefürt, oder?
Müsste ich den Custom-Skill auch auf alexa.amazon.de unter meinen Skills sehen können?

Danke schonmal für die Hilfe.
Micky



stefanru

Soweit ich mich erinnere siehst du deinen custom Skill auch.
Doppelt ausgeführt wird nicht da du den custom Skill ja mit Aktivierungswort ansprechen musst.

Also wenn das Aktivierungswort FHEM ist musst du sagen: " Alexa sage FHEM licht an".

Beim Smarthome Skill dagegen brauchst du kein Aktivierungswort.

Gruß,
Stefan

MadMax-FHEM

Genau wie stefanru geschrieben hat: Aktivierungswort notwendig, zusätzlich zum Aktivierungswort Alexa ;)

Den Skill siehst du nur unter "meine Skills" NICHT aber unter Smart Home Skills...
...dort findest du nur den Smart Home Skill von alexa-fhem...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Sailor

#125
Ein herzerfrischendes "Moin" vorweg

Ich verzweifle langsam da ich nicht weiß wo ich mit der Fehlersuche in meinem Custom Skill anfangen soll.

Kommando:
ZitatAlexa, sage Haus schalte Licht im Gästezimmer an

Alexa-Antwort:
ZitatIch kann licht nicht auf undefined schalten. undefined gestellt

Internals:

   CFGFN      ./cfg/Room_GR.cfg
   DEF        526A2201
   NAME       GR_Light_Sw
   NOTIFYDEV  global
   NR         2217
   NTFY_ORDER 50-GR_Light_Sw
   STATE      off
   TYPE       CUL_HM
   chanNo     01
   device     GR_Light_Unit
   Helper:
     DBLOG:
       deviceMsg:
         myDbLog:
           TIME       1544465355.20978
           VALUE      off (to VCCU)
       dim:
         myDbLog:
           TIME       1544465355.20978
           VALUE      stop:off
       level:
         myDbLog:
           TIME       1544465355.20978
           VALUE      0
       overheat:
         myDbLog:
           TIME       1544465355.20978
           VALUE      off
       overload:
         myDbLog:
           TIME       1544465355.20978
           VALUE      off
       pct:
         myDbLog:
           TIME       1544465355.20978
           VALUE      0
       phyLevel:
         myDbLog:
           TIME       1544465355.20978
           VALUE      0
       reduced:
         myDbLog:
           TIME       1544465355.20978
           VALUE      off
       state:
         myDbLog:
           TIME       1544465355.20978
           VALUE      off
       timedOn:
         myDbLog:
           TIME       1544465355.20978
           VALUE      off
   READINGS:
     2018-12-05 09:22:51   CommandAccepted yes
     2018-09-16 01:53:12   R-fuseDelay     1 s
     2018-09-16 01:53:12   R-logicCombination or
     2018-09-16 01:53:12   R-ovrTempLvl    80 C
     2018-09-16 01:53:12   R-powerUpAction off
     2018-09-16 01:53:12   R-redLvl        40 %
     2018-09-16 01:53:12   R-redTempLvl    75 C
     2018-09-16 01:53:12   R-statusInfoMinDly 2 s
     2018-09-16 01:53:12   R-statusInfoRandom 1 s
     2018-09-16 01:53:12   R-transmitTryMax 6
     2018-12-10 19:09:15   deviceMsg       off (to VCCU)
     2018-12-10 19:09:15   dim             stop:off
     2018-12-10 19:09:15   level           0
     2018-12-10 19:09:15   overheat        off
     2018-12-10 19:09:15   overload        off
     2018-12-10 19:09:15   pct             0
     2018-12-10 19:09:15   phyLevel        0
     2018-12-10 19:09:15   recentStateType info
     2018-12-10 19:09:15   reduced         off
     2018-12-10 19:09:15   state           off
     2018-12-10 19:09:15   timedOn         off
     2018-12-05 09:22:51   trigLast        fhem:02
   helper:
     regLst     ,1,3p
     dir:
       cur        stop
     expert:
       def        1
       det        1
       raw        0
       tpl        0
     role:
       chn        1
     tmpl:
     vDim:
       idPhy      526A2201
       idV2       526A2202
       idV3       526A2203
Attributes:
   alexaName  Licht
   alexaRoom  Gästezimmer
   alias      Light Ceiling
   devStateIcon on:dim100% 9\d.*:dim93% 8\d.*:dim81% 7\d.*:dim68% 6\d.*:dim62% 5\d.*:dim50% 4\d.*:dim43% 3\d.*:dim31% 2\d.*:dim18% 1\d.*:dim12% 0\d.*:dim06% off:off
   genericDeviceType light
   group      Guest Room
   homebridgeMapping GR_Light_Sw=state,cmd=+
   model      HM-LC-Dim1TPBU-FM
   peerIDs    00000000,
   room       Guest Room,alexa,alexa
   webCmd     stop:up:on:100:90:80:70:60:50:40:30:20:10:0:off:down


Intent
Siehe Anlage

Habt Ihr eine Ahnung wo ich mit der Fehlersuche anfangen kann?
(Der Standard SmartHome Skill funktioniert fehlerfrei)

Danke für euren Hinweis!

Gruss
   Sailor
******************************
Man wird immer besser...

Cobra

#126
Spontan hätte ich darauf getippt dass die Umlaute sich nicht mit Alexa vertragen.

Hast du mal versucht den Raum umzubenennen?
Vielleicht auch mal nur zum Testen mit nem anderen einfachen Raum wie "studio"?
RaspberryPI 3 mit Raspbian Jessie, HMLAN/HM-LAN-Gateway
Diverse HM-Komponenten, Netatmo, Hue, Sonos, Nuki, Alexa

Sailor

Hallo Cobra

Zitat von: Cobra am 10 Dezember 2018, 23:56:04
Spontan hätte ich darauf getippt dass die Umlaute sich nicht mit Alexa vertragen.
Hast du mal versucht den Raum umzubenennen?
Vielleicht auch mal nur zum Testen mit nem anderen einfachen Raum wie "studio"?

Also das wäre ein Knaller.

Das neue Skill-Modul bei AMAZON lässt übrigens nicht mehr zu, den JSON Code von dem alexa-Modul zu übernehmen.
Der Skill-Builder will sich den Code aufgrund der vorher vorgenommenen Parameter selber generieren.

Kann das damit zusammenhängen?

Gruss
    Sailor
******************************
Man wird immer besser...

Reinhart

Sailor!

Diese komische Meldung "Ich kann nicht nicht auf undefined schalten. undefined gestellt" hatte ich auch schon, bin mir aber nicht mehr sicher wie ich die weggebracht habe. Ich habe einfach in der Developer Console das dann nochmals gecheckt und überarbeitet. Ich hatte da eher die Probleme, das die Reihenfolge der FhemIntents irgendwie nicht passte und habe die dann so verschoben bis es stimmte.

Ich zeige dir jetzt ein Beispiel wie es bei mir funktioniert:
Bild1 ist die Konfiguration in der Konsole.

attr MyAlexa fhemIntents #IntentName=<sample utterance>\
{currentEnergy()}=energieverbrauch\

Konfiguration in Fhem


sub currentEnergy() {
      my $title = (int(ReadingsVal("LS110_2", "electricityPower", "")/100))/10;
        $title =~ s/\./,/g;
        my $titleday = int(ReadingsVal("LS110_2", "electricityConsumed_EnergyDay", ""));
        my $titlespitze = int(ReadingsVal("LS110_2", "electricityConsumed_PowerDayMax", ""));
        my $titlekosten = (int(ReadingsVal("LS110_2", "electricityConsumed_EnergyCostDay", "")*10))/10;
        $titlekosten =~ s/\./,/g;
        return ("Leistung $title Kw Tagwert $titleday Kwh Spitze $titlespitze Watt Kosten $titlekosten €");
}

Konfig in der 99_myUtils.pm, da rechne ich nur zusammen was ich brauche und ersetze die Punkte in Beistrich sonst werden die Dezimalen nicht angesagt.
Die Ausgabe erfolgt auch am Bildschirm vom Show.

Die Abfrage erfolgt dann: Alexa, frage Haus, wie ist der Energieverbrauch
Alexa liest mir dann brav den Return Wert in der currentEnergy vor.

Vielleicht hilft es dir in deinen Überlegungen.

LG
Reinhart
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

Sailor

Hallo Reinhart

Zitat von: Reinhart am 11 Dezember 2018, 13:52:13

Diese komische Meldung "Ich kann nicht nicht auf undefined schalten. undefined gestellt" hatte ich auch schon, bin mir aber nicht mehr sicher wie ich die weggebracht habe. Ich habe einfach in der Developer Console das dann nochmals gecheckt und überarbeitet. Ich hatte da eher die Probleme, das die Reihenfolge der FhemIntents irgendwie nicht passte und habe die dann so verschoben bis es stimmte.

Also ich bin schon ein Stück weiter!

Es ist die neue AMAZON developer console die die ganze Sache etwas umfangreicher zu machen scheint.

Hier meine bebilderte Anleitung mit der Bitte diese doch ins WIKI einzutragen (Thommy, machst du das?)

1. Man geht auf die Seite https://developer.amazon.com/de/ und klickt auf "amazon alexa"
00_amazon-alexa.png

2. Klicke "Produkte" und "Alexa Skills Kit"
01_amazon-alexa-skills-kit.png

2. Klick auf "Skill entwickeln"
02_amazon-alexa-skill-entwickeln.png


3. Klick auf "Create Skill"
03_Create_Skill.png

4. Klick auf "Custom" (Das ist schon die Vorauswahl), vergebe einen Namen und klicke auf "Create Skill"
04_Create_Custom_Skill.png

5. Klicke links auf "Invocation" und vergebe einen "Skill Invocation Name"
05_Invocation.png

Jetzt muss man zunächst alle Slot Type nach folgendem Beispiel eingeben
6. Klicke links neben "Slot Types" auf "+ Add" und füge den ersten der Slot Types gemäß "get myAlexa interactionModel" und "get myAlexa customSlotTypes" ein
07_Add_Slot_Custom_Type_Brightness_Value.png

7. Klicke auf "Bulk Edit" oben rechts
08_Add_Slot_Custom_Type_Brightness_Value.png

8. Füge das entsprechende Werte aus dem interactionModel ein, bzw. füge für "Brightness_Value", "grad_value" und "percent_value" die csv-Werte von 1 bis 100 wie folgt ein und klicke auf "Submit":
09_Brightness_Value_Bulk_Edit_Slot_Types.png

9. Klick auf "Save Model" oben
10_Add_Slot_Custom_Type_Brightness_Value.png

Schritt 6 bis 9 wiederholen bis alle Slots erstellt sind

Erst jetzt können wir nacheinander alle Intents nach folgendem Beispiel eingeben
11. Klicke links neben "Intents" auf "+ Add"
11_Add_Intent.png

12.Füge den ersten der Intent gemäß "get myAlexa interactionModel" ein
12_Brightness_Intenta.png

13. Klicke auf "Bulk Edit" oben rechts
13_Brightness_Intent.png

14. Füge die entsprechenden Sample Utterance aus dem interactionModel ein und klicke auf Submit.
14_Bulk_Edit.png

15. Verlinke jeden Inten Slot mit einem Slot Type den ihr gerade erstellt habt
15_Brightness_Intentb.png

16. So sollte es dann aussehen:
16_Brightness_Intent.png

17. Oben speichern
17_Brightness_Intent_Save.png

Schritt 11 bis 17 wiederholen bis alle Intents erstellt sind

18. "Build Model" anklicken
18_Build_Startet.png
19_Building.png

19. So sollte es am Ende aussehen. Jetzt nicht vergessen den alexa service neu zu starten!
20_Build_Successfull.png

Gruss
   Sailor
******************************
Man wird immer besser...

Sailor

Ein herzerfrischendes "Moin" vorweg

Eine Einschränkung zu meiner Anleitung im vorigen Beitrag:
Die Intents
"gradIntent"
"prozentIntent"
"OnIntent"
machen noch Probleme beim Build und daher habe ich diese erstmal gelöscht, bzw. nicht eingefügt.

Nachdem mein alexa auf folgendes Komando
Zitatalexa, sage haus stelle licht im gästezimmer auf hundert prozent

Hat alexa wie folgt richtig reagiert:
ZitatIch habe licht im Raum gästezimmer hundert gestellt

Das Licht ging aber nicht an.
Und nun der Hammer: Alexa versucht doch tatsächlich das richtige Reading mit den Wert "hundert" anstelle "100" zu füllen...
2018.12.11 21:51:55.944 3: CUL_HM set GR_Light_Sw pct hundert

Nun bin ich wieder mit meinem Latein am Ende... Und müde!

Kann mir da einer Weiterhelfen?

Gruss
    Sailor
******************************
Man wird immer besser...

micky0867

Ich bin beim Custom Skill auch noch so manches mal am rätseln.

Voller Überzeugung (die durchaus falsch sein kann) behaupte ich, dass man den Custom-Skill vollständig mit Json konfigurieren kann.
Ich habe einige Anpassungen an 39_alexa.pm gemacht, um einen Json-Code zu generieren, der vom Custom-Skill akzeptiert wird.
Leider habe ich keine Ahnung, ob der Code vollständig alle Geräte bzw. Räume übernimmt. (Feedback wäre Klasse)
Der Invocation ist immer fhem und muss ggf. beim copy/pasten geändert werden.
Wer mag und es sich zutraut, kann es gerne mal ausprobieren. (s. Anhang)
Andre baut wohl aber auch schon an einer anderen Variante.

Was den Prozentintent angeht, kannst du auch mal den folgenden Code im Json-Editor unter Extents einbauen...
Allerdings frage ich mich gerade, ob du neben dem Licht im Gästezimmer noch andere Geräte mit dem Namen Licht anlegen kannst...
Licht an/aus/xx prozent funktionierte bei mir auch schon mit dem Smarthome-Skill, deshalb verstehe ich deine Intention nicht.


                {
                    "name": "prozentIntent",
                    "slots": [
                        {
                            "name": "article",
                            "type": "FHEM_article"
                        },
                        {
                            "name": "Device",
                            "type": "FHEM_Device"
                        },
                        {
                            "name": "preposition",
                            "type": "FHEM_preposition"
                        },
                        {
                            "name": "Room",
                            "type": "FHEM_Room"
                        },
                        {
                            "name": "prozent_Value",
                            "type": "AMAZON.NUMBER"
                        }
                    ],
                    "samples": [
                        "stelle {Device} auf {prozent_Value} prozent",
                        "stelle {Device} {preposition} {Room} auf {prozent_Value} prozent",
                        "stelle {article} {Device} auf {prozent_Value} prozent",
                        "stelle {article} {Device} {preposition} {Room} auf {prozent_Value} prozent"
                    ]
                }


Bastian0302

Guten Morgen.
Hast du für den "wert" den "amazon_number" slot type genommen??
Ich hatte das auch Problem dass er manchmal zahlen als Wort erkennt. Da muss man auch höllisch bei den "sample utterences" aufpassen.

Hat jemand eine Lösung gefunden wie man das mit den synonymen lösen kann. Ich will halt nicht mehrere Varianten haben, sondern das Alexa nur den Slot type value sendet wenn ich zb sage leuchte,lampe licht, Soll nur der slot stype name licht übertragen werden. Man kann ja Synonyme einstellen aber dann kriege ich halt das was ich gesprochen habe übertragen.

Schönen Donnerstag dann.
Raspbarry Pi 3, Panstamp NRG 2, Cul 433Mhz Sender/Empfänger, Mcp23017 Ein/Ausgabebaugruppe, TabletUi, Doorpi mit Nextion/RFID und Integration in Fhem, Sonos

Sailor

Hallo Bastian

Zitat von: Bastian0302 am 13 Dezember 2018, 06:40:20
Hast du für den "wert" den "amazon_number" slot type genommen??

Danke, genau das wars!!
Darum funktionierte der durch "get myAlexa interactionModel" generierte Code nicht.
Es muss mittlerweile "AMAZON.NUMBER" heißen.

Demnach sind auch meine Slot_Types "grad_value", "prozent_value" hinfällig!

Gruss
    Sailor

Gruss
******************************
Man wird immer besser...

Sailor

Hallo Micky

Zitat von: micky0867 am 12 Dezember 2018, 21:34:41
Voller Überzeugung (die durchaus falsch sein kann) behaupte ich, dass man den Custom-Skill vollständig mit Json konfigurieren kann.

Tja, das neue User-Interface will erst die Slot-Types haben, dann die Intents und dann will es den JSON code selbst erstellen.

Wird jedes Mal automatisch überschrieben, sobald man ein neues Model erstellt.

Nun ja, ist halt Arbeit aber funktioniert jetzt!

Gruss
    Sailor
******************************
Man wird immer besser...