alexa-fhem: amazon alexa smart home skill für fhem

Begonnen von justme1968, 05 November 2016, 23:21:32

Vorheriges Thema - Nächstes Thema

cyvr1

Hallo Fixel2012,

nicht hauen, wenn ich falsch liege. ;D

Wenn ich es richtig verstanden haben, wird AlexaRoom nur im Custom Skill ausgewertet. Und im Smart Home Skill kannst du zwar Gruppen in der Alexa App oder -Homepage anlegen, aber die dienen nur dazu, mehrere Geräte mit einem Befehl zu schalten, in dem man den Gruppennamen im Befehl verwendet.

Das, was dü möchtest, geht nur mit dem Custom Skill.

Sollte ich falsch liegen, behaupte ich ab sofort das Gegenteil.   :-[ :D

----------
Stephan Krätzschmar

Fixel2012

Zitat von: cyvr1 am 08 Februar 2017, 14:56:34
Hallo Fixel2012,

nicht hauen, wenn ich falsch liege. ;D

Wenn ich es richtig verstanden haben, wird AlexaRoom nur im Custom Skill ausgewertet. Und im Smart Home Skill kannst du zwar Gruppen in der Alexa App oder -Homepage anlegen, aber die dienen nur dazu, mehrere Geräte mit einem Befehl zu schalten, in dem man den Gruppennamen im Befehl verwendet.

Das, was dü möchtest, geht nur mit dem Custom Skill.

Sollte ich falsch liegen, behaupte ich ab sofort das Gegenteil.   :-[ :D

??? Das wäre mir neu :-[

Das alexaroom nur für den Custom Skill ist, ist mir bewusst.

Bin für jede Hilfe dankbar  :P

Ich danke dir erstmal  :D Falls deine Aussage bestätigt wird muss ich meine Einstellungen wohl wieder zurück stellen, um sie mit dem SmartHome Skill nutzen zu können. :(
Fhem 5.8 auf Raspi 3, HMLAN und 868MHz CUL mit einigen Komponenten, Z-Wave Rollladenaktoren, Tablet UI, 433 MHz CUL mit Baumarktsteckdosen und Temp Sensoren, Amazon Echo, Echo Dot, 2x SONOS  play1, 1x SONOS Connect AMP,  presence, HUE, Lightify

derNeue

Vielen lieben Dank, habe eine neue Dyndns angelegt und schon ging es.....Danke :-)

thunder1902

#1848
@Fixel: Das hatte ich auch schon mal versucht. Irgendjemand im Forum hatte behauptet, dass dies funktioniert. Hat es aber nicht. Wie hast du denn die gleichlautenden Geräte in die Gruppen einsortieren können?
Ich habe mir sehr schwer getan.

Du kannst aber trotzdem z.B. alle Rolläden im Wohnzimmer ansprechen. Dafür darf aber kein Rolladen das Wort "Rolladen oder Rollo/Jalousie" im alexaNamen enthalten. Dann kannst du erst sagen "Alexa, stelle die Rolläden auf 0%". Was nicht geht (zumindest im Alexa Skill): "Alexa, mach die Rolläden im Wohnzimmer zu". (Das meinte @justforme1968 mit "eingeschränkte Rolladensteuerung im Alexa-Skill". Dies muss man im Custom Skill machen.

Das, was cyvr1 geschrieben hat, ist auch mein Kenntnisstand...

Fixel2012

#1849
Zitat von: thunder1902 am 08 Februar 2017, 15:09:11
@Fixel: Das hatte ich auch schon mal versucht. Irgendjemand im Forum hatte behauptet, dass dies funktioniert. Wie hast du denn die gleichlautenden Geräte in die Gruppen einsortieren können?

Das, was cyvr1 geschrieben hat, ist auch mein Kenntnisstand...

Mhh, so was blödes...

Wenn man in der App bei der Übersicht der Geräte ist, sieht man in welchem raum die Geräte sind. Außerdem sieht man die Reihenfolge, diese bleibt im Menü, wo man die Räume konfiguriert gleich.

Habe mich mit dem Custom Skill bisher noch nicht beschäftigt, da es mich nervt immer gleichzeitig das wake word für den Custom skill zu sagen.  :-\

Mal schauen, ob ich das in dem Custom Skill umsätze, oder die Namen wieder abändere und beim SmartHome Skill bleibe.

Edit: Kann ich denn zwei verschiedene Namen für das gleiche Gerät benutzen? einmal für den SmartHome Skill und einmal für den CustomSkill?
Fhem 5.8 auf Raspi 3, HMLAN und 868MHz CUL mit einigen Komponenten, Z-Wave Rollladenaktoren, Tablet UI, 433 MHz CUL mit Baumarktsteckdosen und Temp Sensoren, Amazon Echo, Echo Dot, 2x SONOS  play1, 1x SONOS Connect AMP,  presence, HUE, Lightify

thunder1902

Zitat von: Fixel2012 am 08 Februar 2017, 15:13:59

Habe mich mit dem Custom Skill bisher noch nicht beschäftigt, da es mich nervt immer gleichzeitig das wake word für den Custom skill zu sagen.  :-\

Das nervt mich auch sehr. Da muss man immer zuerst überlegen was man sagen muss, und kann nicht gleich losquatschen :-)

Fixel2012

Zitat von: thunder1902 am 08 Februar 2017, 15:18:29
Das nervt mich auch sehr. Da muss man immer zuerst überlegen was man sagen muss, und kann nicht gleich losquatschen :-)

Ja! Genrell habe ich so meine Probleme mit dem vorher überlegen ;D
Fhem 5.8 auf Raspi 3, HMLAN und 868MHz CUL mit einigen Komponenten, Z-Wave Rollladenaktoren, Tablet UI, 433 MHz CUL mit Baumarktsteckdosen und Temp Sensoren, Amazon Echo, Echo Dot, 2x SONOS  play1, 1x SONOS Connect AMP,  presence, HUE, Lightify

cyvr1

#1852
@Fixel2012
Nein, zwei verschiedene Namen gehen nicht. Für beide Skills wird der AlexaName verwendet.

Ehrlich gesagt finde ich den Custom Skill intuitiver als den Smart Home Skill. Gut, man muss den Skill ansprechen, aber dafür kann ich die Befehle so konfigurieren, wie ich sie haben möchte ("Mach die Rolläden runter/hoch" usw.)


Gesendet von meinem LG-H960 mit Tapatalk

----------
Stephan Krätzschmar

Fixel2012

Zitat von: cyvr1 am 08 Februar 2017, 16:01:26
@Fixel2012
Nein, zwei verschiedene Namen gehen nicht. Für beide Skills wird der AlexaName verwendet.

Ehrlich gesagt finde ich den Custom Skill intuitiver als den Smart Home Skill. Gut, man muss den Skill ansprechen, aber dafür kann ich die Befehle so konfigurieren, wie ich sie haben möchte ("Mach die Rolläden runter/hoch" usw.)


Gesendet von meinem LG-H960 mit Tapatalk
Schade, dachte ich mir schon.

Ja, da hast du Recht, mich stören diese 2 zusätzlichen Wörter sehr stark, Mal schauen
Fhem 5.8 auf Raspi 3, HMLAN und 868MHz CUL mit einigen Komponenten, Z-Wave Rollladenaktoren, Tablet UI, 433 MHz CUL mit Baumarktsteckdosen und Temp Sensoren, Amazon Echo, Echo Dot, 2x SONOS  play1, 1x SONOS Connect AMP,  presence, HUE, Lightify

Prof. Dr. Peter Henning

Eigentlich brauche ich Alexa nur begrenzt - meine Spracherkennung mit mehreren Android-Tablets funktioniert astrein. Und zwar semantisch sehr viel sauberer, als Alexa.

Ich muss auch nicht einen Google-Cloudserver beschäftigen, um mein Haus zu steuern. Oder dass Alexa jeweils meine Anweisungen doof kommentiert.

Was ich benötige:
- Hardware, um auch bei Hintergrundgeräuschen einen menschlichen Sprecher und seine Worte zu isolieren.
- Einen Webdienst, um diese Worte in geschriebenen Text umzuwandeln (Amazon, von mir aus, auch Google, von mir aus)
- Meine eigene semantisch aufgepeppte Software zur Umsetzung in konkrete Handlungen
- Eine TTS-Engine, um Sprache auch wieder auszugeben (aktuell und schon seit Jahren: Fan von Marlene von TTS Ivona)

Aktuell experimentiere ich mit einem kommerziellen Konferenzmikro mit Bluetooth-Anbindung (das aber von der Alexa-Hardware noch um Längen geschlagen wird). Also, was machen wir  ?

Ich tippe auf folgenden Hardware-Inhalt bei Alexa:

6 Mikrofone im Außenring, eines zentral.
Einen oder mehrere schnelle DSP, um durch zeitliche Korrelation die Richtung festzustellen und der nachfolgenden Stimmaufnahme eine präzise Richtcharakteristik zu geben

Ich muss mal sehen, ob ich einen Kollegen, der sich mit DSP auskennt, zu einer Zusammenarbeit motivieren kann.

LG

pah

TomLee

#1855
Hallo,

hab mir bisher folgenden Dummy gebastelt:

Internals:
   NAME       du_AnzahlSeiten
   NR         505
   STATE      3
   TYPE       dummy
   Readings:
     2017-02-08 23:20:28   state           3
Attributes:
   alexaName  anzahl seiten
   genericDeviceType switch
   homebridgeMapping Volume=state,cmd=+
   room       AlexaControl,DUMMY
   setList    state:slider,0,1,20


Im jetzigen Zustand bricht Alexa bei der Bestätigung mitten im Satz ab.
Auf 1 Prozent stellen ist nicht möglich.
Gerne würde ich ohne den valueSuffix (Prozent oder Grad) zu nennen auf ganze Zahlen stellen.
Hätt  jemand Ideen das umzusetzen.

Gruß

Thomas

[2017-02-08 23:27:30] IntentRequest                                                                                                               
[2017-02-08 23:27:30] prozentIntent                                                                                                               
[2017-02-08 23:27:30] [FHEM]   executing: http://192.168.188.26:8083/fhem?cmd=%7B$defs%7BMyAlexa%7D-%3E%7B%22active%22%7D%20=%201%7D&XHR=1       
[2017-02-08 23:27:30] [FHEM]   executing: http://192.168.188.26:8083/fhem?cmd=setreading%20MyAlexa%20intent%20IntentRequest%20prozentIntent&XHR=1
[2017-02-08 23:27:30] [FHEM]   executing: http://192.168.188.26:8083/fhem?cmd=%7B$defs%7BMyAlexa%7D-%3E%7B%22active%22%7D%20=%200%7D&XHR=1       
[2017-02-08 23:27:30] 0                                                                                                                           
[2017-02-08 23:27:30] prozent                                                                                                                     
[2017-02-08 23:27:30] prozentIntent                                                                                                               
[2017-02-08 23:27:30] [ 'Brightness', 'TargetPosition', 'Volume' ]                                                                               
[2017-02-08 23:27:30] Brightness                                                                                                                 
[2017-02-08 23:27:30] TargetPosition                                                                                                             
[2017-02-08 23:27:30] Volume                                                                                                                     
[2017-02-08 23:27:30] prozentIntent -> Volume                                                                                                     
[2017-02-08 23:27:30] [FHEM] du_AnzahlSeiten: executing set cmd for Volume with value 6                                                           
[2017-02-08 23:27:30] [FHEM]   executing: http://192.168.188.26:8083/fhem?cmd=set%20du_AnzahlSeiten%20%20%206&XHR=1                               
response :{"version":"1.0","sessionAttributes":{},"response":{"outputSpeech":{"type":"PlainText","text":"Ich habe die anzahl seiten auf 6 prozent
gestellt"},"shouldEndSession":false,"card":{"type":"Simple","title":"prozentIntent","content":"die anzahl seiten auf 6 prozent gestellt"}}}       
**** Received Directive: {"version":"1.0","session":{"new":false,"sessionId":"amzn1.echo-api.session.a85822c0-310c-4268-a0b2-32dcbe1fa872","applic
ation":{"applicationId":"amzn1.ask.skill.9dddcea2-5d70-46e5-a4a1-c25e091e269c"},"user":{"userId":"amzn1.ask.account.AFNV5CAZIGPASFLXIO26MPZAKHAPFN
OSPV3XOZ5XDMMWDU6SCIXTT5FCYFW2NOF7TX3Q7ONUOXLW4L6F7M75XWHXSPQDKG3GKFZZL5SSXIQZBYBLMAST5VZSV2VMWLL5T2YYD4IG7Q6HVDLZUI6RCM4UJEEJKDXMA6GWWD5KSGOLB3YO
B2VJREJZIQIIGJ2NPH675EPQBAIPIEQ"}},"context":{"System":{"application":{"applicationId":"amzn1.ask.skill.9dddcea2-5d70-46e5-a4a1-c25e091e269c"},"us
er":{"userId":"amzn1.ask.account.AFNV5CAZIGPASFLXIO26MPZAKHAPFNOSPV3XOZ5XDMMWDU6SCIXTT5FCYFW2NOF7TX3Q7ONUOXLW4L6F7M75XWHXSPQDKG3GKFZZL5SSXIQZBYBLM
AST5VZSV2VMWLL5T2YYD4IG7Q6HVDLZUI6RCM4UJEEJKDXMA6GWWD5KSGOLB3YOB2VJREJZIQIIGJ2NPH675EPQBAIPIEQ"},"device":{"supportedInterfaces":{"AudioPlayer":{}
}}}},"request":{"type":"SessionEndedRequest","requestId":"amzn1.echo-api.request.892b8fe6-bf7f-496c-bb7f-1321cc4bf49a","timestamp":"2017-02-08T22:
27:38Z","locale":"de-DE","reason":"EXCEEDED_MAX_REPROMPTS"}}                                                                                     
[2017-02-08 23:27:38] SessionEndedRequest                                                                                                         
[2017-02-08 23:27:38] [FHEM]   executing: http://192.168.188.26:8083/fhem?cmd=%7B$defs%7BMyAlexa%7D-%3E%7B%22active%22%7D%20=%201%7D&XHR=1       
[2017-02-08 23:27:38] [FHEM]   executing: http://192.168.188.26:8083/fhem?cmd=setreading%20MyAlexa%20intent%20SessionEndedRequest&XHR=1           
[2017-02-08 23:27:38] [FHEM]   executing: http://192.168.188.26:8083/fhem?cmd=%7B$defs%7BMyAlexa%7D-%3E%7B%22active%22%7D%20=%200%7D&XHR=1       
response :{"version":"1.0","sessionAttributes":{},"response":{"outputSpeech":{"type":"PlainText","text":"Bye"},"shouldEndSession":true}}       


edit:
Auf 1 Prozent stellen ist nicht möglich.
Lösung:
nicht auf ein Prozent, sondern eins Prozent muss man sagen

visionsurfer

Hallo,

ich habe nun schon mehrfach in verschiedenen Videos gesehen, dass manche es mit Ihrem Skill hinbekommen, Alexa ziemlich viel sagen zu lassen.
Mich stört im Augenblick am meisten, dass man den Echo ja nicht Mißbrauchen kann, um z.B. Sprachansagen machen zu lassen.

Kriegt man es aber irgendwie hin, den ECHO längere Sätze auf bestimmte Befehle sagen zu lassen ?

Zum Beispiel:

Alexa, sag FHEM ich bin zu Hause
Antwort von Alexa: Willkommen zu Hause, du hast 2 Nachrichten auf dem Anrufbeantworter, vergiss nicht morgen die Mülltonne an die Straße zu stellen.

Ich habe einen Echo in den Flur gestellt. Normal müsste ich dazu jetzt eine Sonos stellen, was ich natürlich vermeiden will.

@Pah
Hört sich sehr interessant an. Also wenn du eine Art Alexa FHEM Version nachbaust, wäre ich sofort interessiert. Ich brauche fast den ganzen Amazon kram nicht wirklich. Ich möchte nur mein Smarthome sehr gut per Sprache steuern können. Ich hab überall schon Dots und Echos verteilt. 8 Stück insgesamt. Die Qualität wie gut die ECHOS und DOTS reagieren ist schon super. Nur würde ich mir bessere Interaktion wünschen.

Grüße,
Visionsurfer

baukater

Zitat von: Fixel2012 am 08 Februar 2017, 15:25:01
Ja! Genrell habe ich so meine Probleme mit dem vorher überlegen ;D

Ich habe mir überlegt das mit dem Nachnahmen zu belegen, also "Alexa Müller schalte die Stehlampe ein". Ist flüssig
zum sprechen und man spart sich ein Wort sowie die unnatürliche Grammatik "Alexa, sag Freddy schalte die Stehlampe ein".

Was mich da wohl dann mehr stören wird, dass wenn man zusätzlich Customskills definiert, man eventuelle nicht mehr weiß,
ob man das Aktivierungswort bei dem Gerät jetzt dazusagen muss oder nicht. Find ich doof.

Leider habe ich es noch nicht geschafft ein Custom-Skill anzulegen.

FB7490,Raspi 2/3,HM-Lan,Jeelink Classic (868),Logilink BT0015 Bluetooth 4.0, 2x mySmartUSB light,RS485USB , entities:272 device:14 channel:27 virtual:1, 6 x HM-LC-BL1-FM,4 x HM-LC-SW4-WM, 1 x HM-LC-SW2-FM,1 x Fensterkontakt,1 1x Türkontakt, 1 1x Bewegungsmelder, DECT-200,DECT100,6xAuthentic Xiaom

baukater

Zitat von: cyvr1 am 08 Februar 2017, 16:01:26
@Fixel2012
Nein, zwei verschiedene Namen gehen nicht. Für beide Skills wird der AlexaName verwendet.

Ehrlich gesagt finde ich den Custom Skill intuitiver als den Smart Home Skill. Gut, man muss den Skill ansprechen, aber dafür kann ich die Befehle so konfigurieren, wie ich sie haben möchte ("Mach die Rolläden runter/hoch" usw.)


Gesendet von meinem LG-H960 mit Tapatalk

Hast Du mir da einen Link oder Beispiel, was man alles einrichten muss. Die Grundeinrichtung der Customskills hab ich schon.
FB7490,Raspi 2/3,HM-Lan,Jeelink Classic (868),Logilink BT0015 Bluetooth 4.0, 2x mySmartUSB light,RS485USB , entities:272 device:14 channel:27 virtual:1, 6 x HM-LC-BL1-FM,4 x HM-LC-SW4-WM, 1 x HM-LC-SW2-FM,1 x Fensterkontakt,1 1x Türkontakt, 1 1x Bewegungsmelder, DECT-200,DECT100,6xAuthentic Xiaom

cyvr1

#1859
Hallo baukater,

das ist im Prinzip recht einfach.

Im myAlexa Device (wenn du dich an der Wiki orientiert hast, solltest du ein Device mit diesem Namen in FHEM haben) musst du im alexaMapping einen vorhandenen Eintrag für "TargetPosition" bei den Values anpassen.

Ich habe den ersten Eintrag wie folgt angepasst:
TargetPosition=verb=mache,articles=die,values=hoch:auf:100;runter:zu:0

Zusätzlich habe ich bei alexaTypes noch einen Alias bei "blind" ergänzt, so dass der Eintrag jetzt so aussieht:
blind=rollade,rolladen,rolläden,jalousie,jalousien,rollo,rollos

Dann noch die entsprechenden Einträge für den CustomSkill bei developer.amazon.com mit "get myAlexa customSlotTypes" und "get interactionModel" erzeugen und im CustomSkill entsprechend eintragen.

Das sollte es schon gewesen sein.

Auf die gleiche Art habe ich mir ein Mapping für "Fahre die Rolläden rauf/runter" und "Fahre die Rolläden auf x Prozent" erzeugt.

ZitatTargetPosition=verb=fahre,values=hoch:auf:100;runter:zu:0
TargetPosition=verb=fahre,valuePrefix=auf,values=AMAZON.NUMBER,valueSuffix=prozent

Da hier ein anderes Verb verwendet wird, ist der Anpassungsaufwand im CustomSkill auf Amazon-Seite etwas größer, da hier ein neuer Intend mit "TargetPositionB" erzeugt wird. Dafür müssen zuerst neue Custom Slots angelegt werden. Man erhält aber alle benötigten Informationen mit den beiden oben genannten get-Befehlen.

----------
Stephan Krätzschmar