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

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

Vorheriges Thema - Nächstes Thema

m311331

schade bekomme es nicht hin

@Esjay geht es bei dir ?


Esjay

#1126
Hey Andre..
Riesen großes Dankeschön.Solltest du mal auf die Idee kommen, wie einige andere Entwickler eine PayPal Adresse für kleine Spenden einzurichten, werde ich mich erkenntlich Zeigen.

Ich werde hier gleich mal meinen Weg aufschreiben, damit auch andere verstehen, was genau hier gemacht werden muss.

So für alle.

Ihr legt den dummy an, wie Andre es beschrieben hat


define VolumeUpDown dummy
attr VolumeUpDown alexaName  Receiver
attr VolumeUpDown alexaRoom  Spielzimmer
attr VolumeUpDown genericDeviceType Speaker
attr VolumeUpDown homebridgeMapping LauterLeiser=harmony_39933799:state,cmd=command


dann ändert ihr harmony_39933799 in euer/euren Device/Avr um.

ACHTUNG, dieser Dummy erscheint nicht in der Alexa App, da er lediglich dazu dient, durch den Custom Skill geschaltet zu werden.

dann geht ihr in Fhem auf euer alexa Device, welches ihr mit define <Euer gewählter Name> alexa angelegt habt.

nun gebt ihr oben in der Kommandozeile folgendes ein:
folgendes ein:
attr <Euer gewählter Name> alexaMapping LauterLeiser=state,verb=mach,articles=den,values=lauter:VolumeUp;leiser:VolumeDown
Falls euer Receiver nicht auf VolumeUp oder VolumeDown hört,müsst ihr dies ebenfalls anpassen.

anschließend macht ihr ein

set <Euer gewählter Name> reload

nun ein
get <Euer gewählter Name> customSlotTypes

und tragt die Ergebnisse ( In dem Fall die Erweiterung des Device Receiver) unter Interaction Model in eurem Custom Skill unter Custom Slot Types nach dem im Wiki beschriebenen Schema ein.

dann führt ihr ein

get <Euer gewählter Name> interactionModel
aus, und erweitert in der Reihenfolge -->Custom Slot Types -->Sample Utterances--> Intent Schema den Custom Skill.

Anschließend könnt ihr sagen : Alexa sage <euer gewähltes Startwort für den Custom Skill> mach den Receiver lauter/leiser.
oder über Alexa starte  <euer gewähltes Startwort für den Custom Skill> --> und anschließend mach den Receiver lauter/leiser

So ich hoffe ich habe nichts vergessen!!

Grüße

mpl8580

Hallo Esjay

ich bin gespannt. Bei mir wird lediglich Alexa selbst lauter.

Auf deine Anleitung bin ich gespannt

m311331

#1128
Hi

-edit-
so wieder bereinigt ...

hab alle schritte so ausgeführt
jetzt sagt Alexa das bei der anforderung des ausgewählten skill ein fehler aufgetreten ist 

wo hänge ich noch ?

Borkk

#1129
Hi,

ich bin dabei ein Wecker Dummy einzubauen und scheitere gerade am eintragen der Daten im Alexa Custom Skill. Ich bin in der Reihenfolge vorgegangen wie Esjay oben es beschrieben hat, beim Speichern bekomme ich folgende Meldung

Error: There was a problem with your request: Unknown slot type 'Weckzeit_prefix' for slot 'Weckzeit_valuePrefix'

Bevor ich hier alles reinposte, hat evtl. jemand eine Idee wo ich schauen könnte?
Docker@DS220+ FHEM, ConBeeII, Homebridge, Nginx ReverseProxy, ConfigDB, MQTT, NodeRed, InfluxDB, Grafana,
Raspberrymatic@Raspi3: HmIP Akt- /Sensoren, Shelly´s, Tibber Puls, Alexa, ASC, Gardena, Netatmo, E-Paper, FritzBox; Tado°, HOMEMODE, iBeacon, OLED ; ESP32/8266, SwitchBot ...

Chaos

Ahoi,

ich weiß das ich vermutlich nerve...
Aber kann man nicht alles was seitens Alexa geantwortet wird, in ne i18n Datei packen? Würde das ganze dann auch für Englisch übersetzen usw, aber ich bin halt zu dumm das in die server.js einzubinden.

MfG
Manuel

justme1968

@mpl8580: du musst auch den custom skill ansprechen: alexa, sage fhem mach den receiver lauter.

@m311331: mit deinem log schaut auf den ersten blick alles gut aus.

ich glaube nicht das du schneller antworten bekommst wenn du beide threads belagerst.

@Borkk: hast du die Custom Slot Types eingetragen bevor du Intent Schema und Sample Utterances erweitern?

@Chaos: aktuell ist alles fest kodiert. demnächst wird es konfigurierbar sein. einfach alles auf englisch zu verwenden nützt aber nichts weil zum einen die grammatik anders ist (auch bei der erkennung!) und man den skill passend konfigurieren muss. ich muss erst mal schauen wie man mehr als eine sprache unterstürzt.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

m311331

#1132
Hi


@justme1968
Zitat
ich glaube nicht das du schneller antworten bekommst wenn du beide threads belagerst.
wie ? das war keine Absicht

-edit-
wenn ich Alexa sage: "Alexa sage james mache den Reciver lauter"
bekomme ich die Antwort: bei der Antwort des ausgewählten skill ist ein Fehler aufgetreten





Chaos

Hi
Zitat von: justme1968 am 27 Dezember 2016, 21:34:55
@Chaos: aktuell ist alles fest kodiert. demnächst wird es konfigurierbar sein. einfach alles auf englisch zu verwenden nützt aber nichts weil zum einen die grammatik anders ist (auch bei der erkennung!) und man den skill passend konfigurieren muss. ich muss erst mal schauen wie man mehr als eine sprache unterstürzt.

jepp, hab mir mal die Arbeit gemacht den Großteil zu übersetzen (zumindest das was Alexa antwortet). Aber das ist natürlich bei Updates suboptimal.
Zum Thema Erkennung: Läuft nicht über die AlexaMapping?
Hab das jetzt noch nicht groß getestet, aber ich bin der Meinung, dass sollte doch schon relativ viel abdecken.
On=verb=set,valueOn=on,valueOff=off,valueToggle=um

Brightness=verb=set,valuePrefix=to,values=AMAZON.NUMBER,valueSuffix=percent

TargetPosition=verb=set,articles=the,values=up:100;open:100;close:0;down:0
TargetPosition=verb=set,valuePrefix=to,values=AMAZON.NUMBER,valueSuffix=percent

Hue=verb=set,valuePrefix=to,values=red:0;green:128;blue:200
Hue=verb=color,values=red:0;green:120;blue:220

TargetTemperature=verb=set,valuePrefix=to,values=AMAZON.NUMBER,valueSuffix=degree

Weckzeit=verb=set,valuePrefix=to;for,values=AMAZON.TIME,valueSuffix=clock


und dann noch die entsprechenden Custom Slot Types dann so:
FHEM_Room alexa | elternzimmer | esszimmer | wohnzimmer | terrace
FHEM_article der | die | das | the
FHEM_preposition in | im | in der
Hue_Value red | green | blue
Hue_ValueB blue | green | red
On_Value on | off | um Edit
TargetPosition_Value close | down | open | up
Weckzeit_prefix to | for


MfG
Manuel

TomLee

#1134
Hi,

wenn ich hier so mitlese stell ich  mir jetzt die Frage wie du das ganze jetzt auf Sonos übertragen würdest.Finde dazu nix. Da gibt's kein VolumeUp oder VolumeDown. Wie löst man das dann unter der Bedingung kein doif oder on off zu verwenden?

ZitatAlexa, stelle Sonos auf 20. etc.

Ist schon so mit dem Home skill möglich und

ZitatAlexa, sag James mach die Lautstärke leiser/lauter

vlt. ein weiteres Plus😉?



Eine weitere Frage wäre ob es möglich ist/wäre den Led-Ring in Zukunft auch als Statusanzeige zu verwenden. bspw. mit set Alexa blink 3 2

Gruß
Thomas

Borkk

Andre,

ok das wars: Weckzeit_prefix   auf | für hat gefehlt, jetzt klappt es und zwar richtig cool. :-)
Docker@DS220+ FHEM, ConBeeII, Homebridge, Nginx ReverseProxy, ConfigDB, MQTT, NodeRed, InfluxDB, Grafana,
Raspberrymatic@Raspi3: HmIP Akt- /Sensoren, Shelly´s, Tibber Puls, Alexa, ASC, Gardena, Netatmo, E-Paper, FritzBox; Tado°, HOMEMODE, iBeacon, OLED ; ESP32/8266, SwitchBot ...

justme1968

#1136
@m311331: was steht auf der konsole ?

@TomLee: sonos hat volumeU und volumeD. wenn man nur sonos steuern will trägt man es ins alexaMapping ein. wenn man geräte mit unterschiedlichen kommandos steuern will trägt man im alexaMapping irgendetwas symbolisches ein und im homebridgeMapping der devices ordnet man diesen symbolischen werten dann die tatsächlichen kommandos zu. genau hier kommt der vorteil des zweistufigen mappings ins spiel. auf alexa seite bleibt alles gleich. egal wie viele geräte mit wievielen unterschiedlichen kommandos es sind.

auf einen direkten wert setzen geht mit dem smart home skill. aber du musst aufpassen das nicht mit lampen zu mischen. sonst ändert sich lautstärke oder helligkeit unbeabsichtigt.

der smart home skill versteht lauter und leiser? seit wann?

der led ring ist nicht steuerbar.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

m311331

#1137
Hi


[2016-12-27 22:27:40] applicationId amzn1.ask.skill.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxe not authorized
[2016-12-27 22:27:40] ERROR: InvalidAccessTokenError from ::ffff:52.214.88.86
response :{"header":{"name":"InvalidAccessTokenError","payloadVersion":"2","namespace":"Alexa.ConnectedHome.Control","messageId":"40059e6d-38c5-45a3-8750-0fe6ea2eeb00"},"payload":{}}
[2016-12-27 22:27:40] applicationId amzn1.ask.skill.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxe not authorized
[2016-12-27 22:27:40] ERROR: InvalidAccessTokenError from ::ffff:52.214.88.86
response :{"header":{"name":"InvalidAccessTokenError","payloadVersion":"2","namespace":"Alexa.ConnectedHome.Control","messageId":"c231cfe0-1f6a-4aad-8284-781f2099dde2"},"payload":{}}


tja das ist wohl mein skill nicht zugelassen  :o
der muß inder config.json eingetragen werden

kannst du das nochmal kurz erkären hatte da einen beitrag gelesen wo ein Array gebildet wird 

justme1968

es steht doch da: du hast die applicationId nicht im config file eingetragen.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

m311331

#1139
wow bist du schnell !!!!!!!!!!!

hatte gerade nur den output reinkopiert und gespeichert

wie genau trage ich die zweite ein

"applicationId": ["amzn1.ask.skill.xxxxxxxxxxxxxxxxxxxxxxxxxxxxx4","skill.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx9"]
so hatte es nicht funktioniert