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

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

Vorheriges Thema - Nächstes Thema

Snocksman

Hi !

Ich glaube dass mein FHEM beim Befehl "get Alexa interactionModel" irgendwie ein Problem hat; und zwar scheint das erzeugte Intent Schema etwas durcheinander zu geraten...

Intent Schema:
--------------
{
   "intents" : [
      {
         "slots" : [
            {
               "type" : "FHEM_article",
               "name" : "article"
            },
            {
               "type" : "FHEM_Device",
               "name" : "Device"
            },
            {
               "name" : "preposition",
               "type" : "FHEM_preposition"
            },
            {
               "name" : "Room",
               "type" : "FHEM_Room"
            },
            {
               "type" : "Hue_Value",
               "name" : "Hue_Value"
            }
         ],
         "intent" : "HueIntent"
      },
      {
         "intent" : "HueIntentB",
         "slots" : [
            {
               "name" : "article",
               "type" : "FHEM_article"
            },
            {
               "name" : "Device",
               "type" : "FHEM_Device"
            },
            {
               "type" : "FHEM_preposition",
               "name" : "preposition"
            },
            {
               "name" : "Room",
               "type" : "FHEM_Room"
            },
            {
               "type" : "Hue_ValueB",
               "name" : "Hue_ValueB"
            }
         ]
      },
      {
         "intent" : "prozentIntent",
         "slots" : [
            {
               "type" : "FHEM_article",
               "name" : "article"
            },
            {
               "name" : "Device",
               "type" : "FHEM_Device"
            },
            {
               "type" : "FHEM_preposition",
               "name" : "preposition"
            },
            {
               "type" : "FHEM_Room",
               "name" : "Room"
            },
            {
               "name" : "prozent_Value",
               "type" : "AMAZON.NUMBER"
            }
         ]
      },
      {
         "intent" : "OnIntent",
         "slots" : [
            {
               "name" : "article",
               "type" : "FHEM_article"
            },
            {
               "name" : "Device",
               "type" : "FHEM_Device"
            },
            {
               "type" : "FHEM_preposition",
               "name" : "preposition"
            },
            {
               "name" : "Room",
               "type" : "FHEM_Room"
            },
            {
               "type" : "On_Value",
               "name" : "On_Value"
            }
         ]
      },
      {
         "slots" : [
            {
               "type" : "FHEM_article",
               "name" : "article"
            },
            {
               "type" : "FHEM_Device",
               "name" : "Device"
            },
            {
               "type" : "FHEM_preposition",
               "name" : "preposition"
            },
            {
               "type" : "FHEM_Room",
               "name" : "Room"
            },
            {
               "type" : "AMAZON.NUMBER",
               "name" : "grad_Value"
            }
         ],
         "intent" : "gradIntent"
      },
      {
         "slots" : [
            {
               "name" : "article",
               "type" : "FHEM_article"
            },
            {
               "type" : "FHEM_Device",
               "name" : "Device"
            },
            {
               "name" : "preposition",
               "type" : "FHEM_preposition"
            },
            {
               "type" : "FHEM_Room",
               "name" : "Room"
            },
            {
               "name" : "TargetPosition_Value",
               "type" : "TargetPosition_Value"
            }
         ],
         "intent" : "TargetPositionIntent"
      },
      {
         "slots" : [
            {
               "name" : "article",
               "type" : "FHEM_article"
            },
            {
               "type" : "FHEM_Device",
               "name" : "Device"
            },
            {
               "type" : "FHEM_preposition",
               "name" : "preposition"
            },
            {
               "type" : "FHEM_Room",
               "name" : "Room"
            },
            {
               "type" : "AMAZON.NUMBER",
               "name" : "Saturation_Value"
            }
         ],
         "intent" : "SaturationIntent"
      },
      {
         "intent" : "SaturationIntentB",
         "slots" : [
            {
               "name" : "article",
               "type" : "FHEM_article"
            },
            {
               "name" : "Device",
               "type" : "FHEM_Device"
            },
            {
               "type" : "FHEM_preposition",
               "name" : "preposition"
            },
            {
               "name" : "Room",
               "type" : "FHEM_Room"
            },
            {
               "name" : "Saturation_ValueB",
               "type" : "AMAZON.NUMBER"
            }
         ]
      },
      {
         "intent" : "BrightnessIntent",
         "slots" : [
            {
               "name" : "article",
               "type" : "FHEM_article"
            },
            {
               "type" : "FHEM_Device",
               "name" : "Device"
            },
            {
               "type" : "FHEM_preposition",
               "name" : "preposition"
            },
            {
               "type" : "FHEM_Room",
               "name" : "Room"
            },
            {
               "type" : "AMAZON.NUMBER",
               "name" : "Brightness_Value"
            }
         ]
      },
      {
         "intent" : "FHEMgutenMorgenIntent"
      },
      {
         "intent" : "FHEMguteNachtIntent"
      },
      {
         "intent" : "StatusIntent",
         "slots" : [
            {
               "name" : "Device",
               "type" : "FHEM_Device"
            },
            {
               "type" : "FHEM_preposition",
               "name" : "preposition"
            },
            {
               "name" : "Room",
               "type" : "FHEM_Room"
            }
         ]
      },
      {
         "slots" : [
            {
               "type" : "FHEM_preposition",
               "name" : "preposition"
            },
            {
               "name" : "Room",
               "type" : "FHEM_Room"
            }
         ],
         "intent" : "RoomAnswerIntent"
      },
      {
         "intent" : "RoomListIntent"
      },
      {
         "slots" : [
            {
               "type" : "FHEM_article",
               "name" : "article"
            },
            {
               "name" : "Room",
               "type" : "FHEM_Room"
            }
         ],
         "intent" : "DeviceListIntent"
      },
      {
         "intent" : "AMAZON.CancelIntent"
      },
      {
         "intent" : "AMAZON.StopIntent"
      }
   ]
}

Custom Slot Types:
------------------
FHEM_article
  der
  die
  das
  den
FHEM_preposition
  in
  im
  in der
Hue_Value
  blau
  grün
  rot
Hue_ValueB
  blau
  grün
  rot
On_Value
  an
  ein
  aus
  um
TargetPosition_Value
  auf
  zu
TargetPosition_article
  den
  die

Sample Utterances:
------------------
HueIntent stelle {Device} auf {Hue_Value}
HueIntent stelle {Device} {preposition} {Room} auf {Hue_Value}
HueIntent stelle {article} {Device} auf {Hue_Value}
HueIntent stelle {article} {Device} {preposition} {Room} auf {Hue_Value}

HueIntentB färbe {Device} {Hue_ValueB}
HueIntentB färbe {Device} {preposition} {Room} {Hue_ValueB}
HueIntentB färbe {article} {Device} {Hue_ValueB}
HueIntentB färbe {article} {Device} {preposition} {Room} {Hue_ValueB}


prozentIntent stelle {Device} auf {prozent_Value} prozent
prozentIntent stelle {Device} {preposition} {Room} auf {prozent_Value} prozent
prozentIntent stelle {article} {Device} auf {prozent_Value} prozent
prozentIntent stelle {article} {Device} {preposition} {Room} auf {prozent_Value} prozent


OnIntent schalte {Device} {On_Value}
OnIntent schalte {Device} {preposition} {Room} {On_Value}
OnIntent schalte {article} {Device} {On_Value}
OnIntent schalte {article} {Device} {preposition} {Room} {On_Value}


gradIntent stelle {Device} auf {grad_Value} grad
gradIntent stelle {Device} {preposition} {Room} auf {grad_Value} grad
gradIntent stelle {article} {Device} auf {grad_Value} grad
gradIntent stelle {article} {Device} {preposition} {Room} auf {grad_Value} grad


TargetPositionIntent mach {Device} {TargetPosition_Value}
TargetPositionIntent mach {Device} {preposition} {Room} {TargetPosition_Value}
TargetPositionIntent mach {TargetPosition_article} {Device} {TargetPosition_Value}
TargetPositionIntent mach {TargetPosition_article} {Device} {preposition} {Room} {TargetPosition_Value}


SaturationIntent stelle sättigung {Device} auf {Saturation_Value}
SaturationIntent stelle sättigung {Device} {preposition} {Room} auf {Saturation_Value}
SaturationIntent stelle sättigung {article} {Device} auf {Saturation_Value}
SaturationIntent stelle sättigung {article} {Device} {preposition} {Room} auf {Saturation_Value}

SaturationIntentB sättige {Device} {Saturation_ValueB}
SaturationIntentB sättige {Device} {preposition} {Room} {Saturation_ValueB}
SaturationIntentB sättige {article} {Device} {Saturation_ValueB}
SaturationIntentB sättige {article} {Device} {preposition} {Room} {Saturation_ValueB}


BrightnessIntent stelle helligkeit {Device} auf {Brightness_Value} prozent
BrightnessIntent stelle helligkeit {Device} {preposition} {Room} auf {Brightness_Value} prozent
BrightnessIntent stelle helligkeit {article} {Device} auf {Brightness_Value} prozent
BrightnessIntent stelle helligkeit {article} {Device} {preposition} {Room} auf {Brightness_Value} prozent

FHEMgutenMorgenIntent guten morgen
FHEMguteNachtIntent gute nacht

StatusIntent status
StatusIntent {Device} status
StatusIntent status von {Device}
StatusIntent wie ist der status von {Device}
StatusIntent wie ist der status {preposition} {Room}

RoomAnswerIntent {preposition} {Room}

RoomListIntent raumliste
DeviceListIntent geräteliste
DeviceListIntent geräteliste {Room}
DeviceListIntent geräteliste für {article} {Room}

reload 39_alexa
get alexa interactionmodel


Teilweise wird das Intent hinter den Slots angegeben, teilweise davor (was mir richtiger erscheint...), teilweise ist "type" und "name" in den einzelnen Slots vertauscht und beim "TargetPositionIntent" denke ich, dass anstatt "name:article" und "type:FHEM_article" dort jeweils "TargetPosition_article" stehen sollte ?!

justme1968

nein. das ist kein problem. das sind hashes und die reihenfolge ist egal.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Snocksman

#47
OK... und wie sieht es dann mit diesem "TargetPositionIntent" aus ? Ich frage, weil ich beim anlegen des Custom Skills folgende Fehlermeldung bekomme:

Error: There was a problem with your request: Unknown slot name '{TargetPosition_article}'.This error occurred in sample 'TargetPositionIntent mach {TargetPosition_article} {Device} {TargetPosition_Value}' on line 49..

Unter den "Custom Slot Types" ist "TargetPosition_article    den | die" aber angelegt.

Amenophis86

Den Fehler hatte ich auch immer, weil beim Berechnen und erstellen des interataction Model etwas fehlt. Wurde in einem anderen Thema schon mal angesprochen. Einfach das fehlende manuell noch hinzufügen, dann klappt es wieder.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

Snocksman

Wäre echt cool, wenn du mir sagen könntest was denn fehlt, damit ich es manuell hinzufügen kann, oder mir nen link zum genannten Thema nennen könntest.

Google und die Forensuche habe ich bereits bemüht...

Amenophis86

Steht doch quasi da :) im Intent Schema beim TargetPositionIntent noch TargetPosition_article einfügen. Wie du das machst siehst du bei den anderen Intents, im Schema einfach mal nach TargetPosition_article suchen und schauen, wie es da eingebunden ist.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

Snocksman

Naja, vielleicht bin ich etwas begriffsstutzig...  :o

In den anderen Intents habe ich kein "TargetPosition_article", sondern nur "name":"article / "type":"FHEM_article"... Genau so im "TargetPositionIntent".

Jetzt könnte ich dieses "name":"article / "type":"FHEM_article" jeweils durch TargetPosition_article ersetzen, oder zusätzlich einfügen... Ich hab aber keine Ahnung, ob das dann richtig ist, oder nicht...  :-\

Amenophis86

{
          "name": "TargetPosition_article",
          "type": "TargetPosition_article"
        }

Das im Intent einfügen.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

Romoker

Eine Alternative ist im alexaMapping auf die articles-Definition zu verzichten. Dann werden die Standard-Artikel FHEM_article "der | die | das | den" angezogen, wenn diese Deinen Anforderungen für die Spracheingabe genügen. Das generierte Intent-Schema ist dann korrekt.

Viele Grüße
BeagleBoneBlack & Raspberry Pi 4; FB7490; div. Homematic Komponenten; CUL433: CUL_TX, Conbee II, SOMFY, 1-Wire, Z-Wave, Zigbee, SmartPlugs von Sonoff und Shelly mit MQTT

Snocksman

Ok, ich glaube ich hab mir das ganze zu kompliziert vorgestellt...

Aber eine letzte Frage habe ich noch:

Muss unter dem Punkt " Sample Utterances" der Abschnitt ganz unten: "reload 39_alexa" & "get alexa interactionmodel" mit eingefügt werden ?! Ich denke nicht, oder ?!

Ma_Bo

NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

Snocksman

So, hat jetzt alles funktioniert !  ;D

Vielen Dank allen für die Hilfe !!!

Andi35

Hallo.
Ich habe mich jetzt durch sämtliche Anleitungen gewühlt, und ein relativ gut funktionierendes Custom Skill zum laufen gebracht.
Jetzt bin ich jedoch auf ein Problem gestoßen, und wollte fragen ob das jemand ebenfalls hat, und wie die Lösung aus sieht.

Wenn ich zum Beispiel die Frage stelle:

"Alexa, frage die Wohnung, wie ist der Status im Wohnzimmer?"
dann bekomme ich entweder den korrekten Status aller Geräte im Wohnzimmer angesagt. Was ja auch so sein soll.
Oder Alexa antwortet mir:
"Ich habe kein Gerät mit Namen Status im Raum Wohnzimmer gefunden." Hierbei wird das Wort "Status" englisch, also akustisch wie "staites" ausgesprochen.
Oder auch:
"Ich habe Wohnung, Wohnzimmer nicht gefunden"

Was kann ich machen, damit dies korrekt erkannt wird?

justme1968

in der app schauen und dort konsequent markieren was nicht richtig erkannt wurde.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Andi35

Danke.  :) Daran hätte ich natürlich selbst denken können. Dachte zuerst an ein Konfigurationsproblem.