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

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

Vorheriges Thema - Nächstes Thema

MadMax-FHEM

Zitat von: Mathea am 23 Dezember 2016, 13:35:24
Hallo,

ich habe versucht, über das homebridgeMapping einen anderen Command an meine Lichter zu schicken, aber egal was ich dort eintrage, es wird immer der normale "on" Befehl ausgeführt. Ich möchte, dass Alexa meine Lichter auf "onAlexa" oder "offAlexa" setzt, damit ich abfangen kann ob etwas über Sprache geschaltet wurde und dementsprechend meine Lichtautomatik abschalten kann.

mein homebridgeMapping eines Homematic Schaltaktors sieht aktuell wie folgt aus:

attr AZ_Deckenleuchte homebridgeMapping cmdOn=onAlexa,cmdOff=offAlexa

Muss ich noch etwas anpassen, damit Alexa diese Befehle sendet?

Gruß,
Mathea

Da fehlt bestimmt noch das alexaMapping...

Etwas weiter vorne im Thread ist beschrieben welches Mapping was macht...

Ohne Gewähr hab ich so mitgelesen (komme erst nach Weihnachten dazu mich näher mit dem CustomSkill zu beschäftigen, daher lese ich nur mit):

alexaMapping: was kann ich mit Alexa machen/sagen...

homebridgeMapping: welcher Befehl soll dann was genau mit wlechem Gerät bewirken...

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)

justme1968

@Mathea: du musst im homebridgeMapping angeben für welche characteristic es ist (und welches reading den aktuellen wert enthält):attr AZ_Deckenleuchte homebridgeMapping On=state,cmdOn=onAlexa,cmdOff=offAlexa

wenn alexa gerade verwendet wird ist das active internal des alexa devices 1. d.h. du kannst auch darüber entscheiden.

@TomLee: ein skill kann den echo dazu bringen auch lokale files abzuspielen. das muss aber in den skill eingebaut werden und man muss das abspielen durch ein sprach kommando starten. die files müssen scheinbar per https mit offiziellem zertifikat zugreifbar sein. fhem selber ist nicht geeignet um audio files zu streamen. aber man könnte die files z.b. von plex oder einem lokalen apache holen. das eigentliche problem neben dem erweitern des skills ist die sprachsteuerung. da auch die titelauswahl darüber implementiert werden muss. einfacher wäre nur eine hand voll fest vorgegebener urls zu starten.

@Ma_Bo: ja. du musst die applicationId des custom skill und die oauthClientId des home automation skills eintragen. so wie im wiki beschrieben.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

TomLee

#1082
Nur zum Verständnis:

Zitataber man könnte die files z.b. von plex oder einem lokalen apache holen.

Vorrausgesetzt es läuft auf nem ATV eh Kodi.
verstehe ich das jetzt dann so, das man dies hier ...

http://www.howtogeek.com/249336/how-to-control-your-kodi-media-center-with-an-amazon-echo/


irgendwie in Deutsch umsetzt.

Einen USB-Stick etc.  an die Fritzbox steckt, ihn als Quelle für Kodi angibt und das wars?



Zitateinfacher wäre nur eine hand voll fest vorgegebener urls zu starten

Verstehe ich jetzt so, mit meinem derzeitigen Wissensstand, diese Costum Slot Geschichte auszulassen und stattdessen mit
fest vorgegebener urls zu arbeiten (wo auch immer die dann definiert werden?).Mit dem Nachteil diese dann immer zuvor definieren zu müssen.

Was dann eigtl. dann meinem Vorhaben schon sehr entsprechen würde. Wenn das ginge würd ich meinen 2. Dot den 2 Nichten unter den Weihnachtsbaum legen. Der ihnen dann mit 'Alexa, spiele Schneewittchen' oder 'Alexa, schalte Struwwelpeter an', in Zukunft die hinterlegten Hörbücher vorliest.   




Ma_Bo

#1083
@justme1968 Super danke, funktioniert. Problem bei mir ist, wenn ich sage "alexa schalte ard ein" erkennt sie "alexa schalte a. r. d. ein", das funktioniert mit dem home automation skill nicht, aber mit dem custom skil, wobei ich beim custom skill ja leider sagen muss "alexa sage ... schalte ard ein"
Andere Befehle wie "alexa schalte kinderkanal ein" funktionieren ohne Probleme sofort ohne, dass ich "alexa sage ... schalte kinderkanal ein" sagen muss.

Ist nicht schön, aber geht wohl nicht anders oder gibt´s da noch nen Trick?

alexaName ist eingetragen als a. r. d.

#####Edit 1

Ist es auch irgendwie möglich einem device mehrere alexaNamen zu geben, Hintergrund ist der,
ich sage schonmal "alexa schalte den Tannenbaum ein" oder "alexa schalte den Weihnachtsbaum ein" oder "alexa schalte den Baum ein"

#####Edit 2
mein Edit1 habe ich gerade selber getestet, wenn ich attr ... alexaName Tannenbaum,Weihnachtsbaum,Baum eingeben, schaltet es zuverlässig bei jedem dieser Wörter
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.

justme1968

@TomLee: der link nützt dir nichts. damit steuerst du kodi um in kodi etwas abzuspielen. du willst aber auf dem echo etwas abspielen. eine fritzbox müsste server für die files spielen können, ich weiss aber nicht ob es mit dem zertifikat klappt. und du musst einen skill finden der lokale medien auf dem echo wiedergeben kann. es sollte nicht aufwändig sein den fhem custom skill zu erweitern, aber nich mehr vor weihnachen :)

die hand voll urls würden weiter über einen custom slot benannt.


@Ma_Bo: was den home automation skill angeht hat der skill keinen einfluss drauf was wie erkannt wird. du kannst nur in der app nachschauen was erkannt wird und dann den alexaName passend vergeben. wenn du pech hat so wie bei dir mag der homeautomation skill dann den namen nicht. weil z.b. punkte drin sind.

du kannst nur den sender anders benennen. 'das erste' oder was auch immer passt.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

det.

@justme1968: vielen Dank für deine großartige Arbeit! Letzten Samstag Alexa bekommen. Das Device steht bei mir im Bad, fand es immer unpassend mit dem iPad in die Wanne zu gehen. Daher habe ich auch dort kein Sonos. Inzwischen kann ich das Licht, die Raumwärme und natürlich die Musik und Nachrichten per Sprache steuern. Fantastisch!
Bau nicht zuviele Features ein, das Fhem System wird immer komplexer. Als ich vor über 5 Jahren mit Fhem begonnen habe, war das noch sehr übersichtlich. Wage mir nicht vorzustellen , wie verwirrt ich ob der vielen Möglichkeiten wäre, wenn ich jetzt einsteigen wollte.
LG
det.

knueppler

Zitat von: justme1968 am 21 Dezember 2016, 13:49:40
hat jemand mehr als einen echo?

könnt ihr bitte mal beide skills jeweils ein zweites mal unter einem zusätzlichen (invocation) namen einrichten. in der nächsten version wird es die möglichkeit geben mehr als eine applicationId (und oauthClientID) im config file anzugeben und jeweils einem default room zuzuordnen der dann automatisch verwendet wird wenn man keinen raum im kommando hat.

gruss
  andre
Hallo Andre,
ich würde das jetzt gerne ausprobieren, mit einem zweiten Dot und zweiten Amazon-Account. Wie muss ich denn das config.json anpassen, damit das wie oben beschrieben, funktioniert? Die Raumzuordnung ist mir nicht ganz klar.
BTW, kann ich je Dot/Echo eine(n) eigene(n) Connection/Filter respektive gar ein eigenes Alexa-Device zuordnen? Damit könnte ich verhindern, dass unser Großer bei uns im Schlafzimmer das Licht anmacht  8)
Danke Christian

Esjay

Hallo zusammen,
ich habe einen AVR den ich über ein Harmony Hub lauter und leiser stelle.Fürs erste habe ich mir einen Dummy erstellt,welcher bei on 5 mal das lauter / leiser Kommando sendet.Könnte mir jemand einen Ansatz nennen, wie ich das über den Custom Skill Sinnvoll realisieren kann?

Zweite Idee:
Wäre es prinzipiell möglich, eine Anzahl an Kommandos auf einen Prozentwert zu mappen?
Nach dem Motto : Alexa erhöhe die Lautstärke des avr um
10 % --> Kommando wird 3 mal ausgeführt
20 % --> Kommando wird 6 mal ausgeführt

Frohe Weihnachten,und liebe Grüße!

justme1968

das geht am einfachsten mit einem readingsProxy.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

Riker

Erstmal vielen Dank an justme für dieses großartige Werk!
Ich habe mich durch das Wiki gehangelt. Hat soweit alles geklappt. Nun hänge ich an einer Stelle wo ich nicht mehr weiter weiss.
Wenn ich mich bei http://alexa.amazon.de einlogge und auf meine Skills klicke, sehe ich auch unter "meine Skills" das "FHEM Smarthome Skill"
klicke ich auf aktivieren kommt die Kontoanmeldung, nachdem ich mich eingeloggt habe, erscheint sofort die Fehlermeldung: " Bei der Verknüpfung mit external providerist ein Fehler aufgetreten. Versuchen Sie es später nochmal"
Kennt jemand diesen Fehler?
Lieben Gruß

Shuzz

Auch ich möchte mich bei justme bedanken - verdammt gute Arbeit!

Habe nun Alexa mit SmartHome und Custom Skill am Laufen. Einstellen von Farbe und Helligkeit meines RGB-LED-Streifens (ESP RGBWW Controller hier aus dem Forum) funktionieren super!
Nur die Sättigung klappt nicht so wirklich, ich nehme an, dass das noch im JS implementiert werden muss. Ist ein "SaturationIntent" geplant? Falls noch nicht, wäre das möglich? :)

An einer Stelle bin ich etwas kleben geblieben: Um zwei Skills auf eine NodeJS Instanz arbeiten zu lassen müssen logischerweise zwei applicationIds konfiguriert werden in der config.json.
Das klappt, indem man ein JSON-Array definiert, in etwa so:
"applicationId":["AppID1","AppID2"]
Ich hab die Info weder hier im Thread noch auf der Wiki-Seite gefunden, evtl. war ich aber auch nur blind (ist ja schon früh momentan... ;) ).

Ein Hinweis darauf im Wiki wäre aber sicher praktisch.

Nochmal Danke für das Projekt und keep it up! :)

Esjay

Zitat von: justme1968 am 25 Dezember 2016, 19:53:09
das geht am einfachsten mit einem readingsProxy.
Könntest du noch ein zwei Sätze dazu sagen?Beziehst du das auf den zweiten Punkt?Das Schalten per lauter / leiser konnte ich jetzt schon realisieren..Mir ist nur noch nicht ganz klar wie ich den einzelnen Prozentwerten jetzt die Anzahl der Kommandos beibringe..Vll könntest du mir da den Weg etwas detailierter zeigen..Danke

justme1968

@Riker: das problem hatte schon mal jemand. da war es das handy. mit einem desktop browser ging es dann. schau mal im anderen thread.

@Shuzz: was hast du denn für die sättigung schon probiert? eigentlich sollte es reichen in alexaMapping einen passenden satz zu konfigurieren. etwas in der art sollte schon reichen:Saturation:verb=sättige,values=AMAZON.NUMBER,prefix=auf eventuell geht auch verb=stelle wenn dir ein passender suffix (nicht prozent) einfällt oder du den suffix weg lässt. es darf keine zwei mappings geben die einen satz mit gleichem verb und suffix und werte typ ergeben. die kann ich dann nicht auseinander halten und weiss nicht welche characteristic gemeint ist. mit den fragen die demnächst kommen wird es aber eine erweiterung um die properties geben. dann wird man stelle die sättigung von <device> auf <xy> prozent sagen können.

das mit den applicationId array ist doch noch garnicht dokumentiert :). das kommt vollständig erst im nächsten update um dann die raum abhängig steuerung mit mehreren echos etwas zu verbessern.

warum hast du schon zwei skills? die applicationId vom home automation skill musst du nicht eintragen. hier ist nur die oauthClientID wichtig. applicationId ist nur für den custom skill relevant.

@Esjay: zeig doch mal was hast du denn schon konfiguriert hast.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

prodigy7

Hallo zusammen,

leider ist ja die Konfiguration recht kompliziert danke Amazon AWS usw., weshalb ich auch die Anleitung recht umfangreich finde und stellenweise sehr kompliziert. Fühlt sich jemand von euch in der Lage, ein Video-Tutorial zu erstellen? Ich denke, das machts für viele nachvollziehbarer als die derzeitige Text-Anleitung.

p7

Esjay

Zitat von: justme1968 am 26 Dezember 2016, 11:17:32

@Esjay: zeig doch mal was hast du denn schon konfiguriert hast.
Ich muss mich korrigieren.Ich dachte es reicht das alexaMapping
[codeOn=verb=schalte,valueOn=an;ein,valueOff=aus,valueToggle=um[/code]
auf
On=verb=schalte,valueOn=an;ein;lauter,valueOff=aus;leiser,valueToggle=um
ändern..

An aus funktioniert,aber sie sagt,dass sie das gerät nicht leiser/lauter schalten kann