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

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

Vorheriges Thema - Nächstes Thema

paulbaumann

genau nach dieser Anleitung vor 2...3 Wochen
mein fhem war 2...3 Jahre alt deshalb musste ich es vor 2 Wochen aktualisieren weil ich die Alexa nicht zum laufen bekommen habe. Sollte also aktuell sein.

Aber ich habe es gerade gesehen, bin bis zum Punkt finale: Skill verknüpfen gekommen und den habe ich in der Tat überlesen
dumm...

Ja nun habe ich einen Schalter "anlage" und einen Schalter "alexa" das ist cool.
Passieren tut nichts wenn ich die Schalter betätige, anlage kann ich wenigstens von an auf aus schalten (ohne das sich was tut), bei alexa sagt er mir gleich "Ein Problem ist aufgetreten"

Aber so weit war ich noch nie gekommen! Erst mal danke dafür.

MadMax-FHEM

#4246
Natürlich tut sich nichts bzw. sollte sich der dummy anlage on/off schalten, wenn du sagst: "Alexa schalte anlage ein" bzw. "Alexa schalte anlage aus"...
...soviel fhem sollte dir klar sein... ;)

Und dann eben das notify, welches dann eben das tut was du eigentlich willst...

Alternative: homebridgeMapping direkt bei deinem Hub...
...aber dazu solltest du dich deutlich mehr einlesen!
(gibt im Forum was dazu irgendwo / ABER: wirklich erst mal verstehen WIE das jetzt schon so geht und WAS mit homebridgeMapping gemacht werden kann und WIE es funktioniert)

Wenn dir "Alexa schalte anlage ein" nicht gefällt, sondern du z.B. "Alexa Film ab!" sagen möchtest, dann mal Routinen in der Alexa-App anschauen... ;)

Und was bitteschön soll denn das "alexa Device" tun!?
Es ist "nur" das Device welches dafür sorgt, dass alexa-fhem gestartet wird etc. und von dort aus kann man eben auch manuell alexa-fhem "steuern"...

Falls autostart nicht geht, entweder wie geschrieben was "verbogen", evtl. noch mal einrichten...
...oder (NOTLÖSUNG) ein notify auf global_INITIALIZED (zeigt an, dass fhem gestartet ist) und dann eben set alexa start o.ä.

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)

paulbaumann

Prima da habe ich ja wieder was gelernt.
Dennoch die Frage:
Ich nutze KEINEN Custom Skill sondern den Smart Home Skill, habe ich gelernt und selbigen hinzugefügt in der Alexa App.
Nun hat Borkk ja eine detailliertes Beispiel der Steuerung Logitech Hub<->Alexa via Custom Skill hier reingestellt.
Gibt es irgendwo hier Jemand, der so ein Beispiel für den Standard FHEM Smart Home Skill reingestellt hat?
Sich einlesen in der Materie ist die eine Sache, die Lernkurve bei FHEM ist recht steil!
Da wäre es hilfreich mal ein Beispiel zu haben wo auch eine HarmonyHub activity eingebunden ist und diese activity im Ergebnis mit der Alexa per Sprache gesteuert wird.
Es wird doch hier genug Besitzer eines Harmony Hub geben im Forum?
Anhand eines Beispiels kann ich dann sicher selber leichter probieren. Was ja jetzt schon geht ist wenn ich auf der FHEM Oberfläche auf "set" klicke nachdem ich bei Harmony Hub activity eine meiner 6 definierten ausgewählt habe und diese wird ausgeführt. Wie ich das mit der Alexa für den Standard FHEM Smart Home Skill hinbekomme steht sicher in der Doku aber einfacher wäre wenn da Jemand ein Beispiel gepostet hat, in der Suche bin ich leider nur auf das Custom Skill Beispiel von Borkk gestoßen. Hat Jemand einen Link zu einem Beispiel für mich?

MadMax-FHEM

#4248
Lesen ist nicht so deins!? ;)

Ich habe ein Beispiel was OHNE Custom Skill auskommt bereits eingestellt!!

Deinen anlage dummy -> kannst du ja per Sprache schalten!?

Dann Notify mit schalte bestimmte Activity ein (habe ich geliefert) -> schon ausprobiert!?

Jetzt kannst du sagen: "Alexa schalte anlage ein" und die Activity des Notify wird gestartet...
...bzw. "Alexa schalte anlage aus" und es wird powerOff ausgeführt...

Wenn du etwas anderes sagen willst, z.B.: "Alexa, Film ab", dann eben eine Routine in der Alexa App anlegen mit GENAU DIESEM SATZ und an deren Ende eben anlage einschalten...

Das mal als Einstieg.

Dann habe ich verwiesen auf homebridgeMapping etc. ist aber halt für Fortgeschrittene, also: lesen, lernen, verstehen!

Dann suchen nach Beispielen, weil da vermutlich KEINES! einfach so passt...
...und anpassen halt nur geht, wenn man das verstanden hat.

Irgendwo gibt es sicher Beispiele (in einem der alexa-fhem Threads) wo jemand direkt per homebridgeMapping den Harmony Hub eingebunden hat...

Trotzdem würde ich dir raten erst mal zu verstehen wie alexa-fhem etc. funktioniert...
...was seitens Amazon/Alexa überhaupt geht mit dem Smart Home Skill...
...weil mit dem Smart Home Skill (auch sprachlich) halt nur geht was Amazon "eingebaut" hat...
...da kannst du soviel homebridgeMapping etc. rumtun wie du willst...
...das IST der Rahmen!

Ansosnten gibt es eben Routinen...
...oder Custom Skill...

...aber dein System, musst du wissen...

Wenn jetzt noch mal die Frage kommt: aber der hat doch mit dem Custom und ich will ja nur mit dem Smart Home Skill, dann werde ich zumindest nicht mehr antworten (2x sollte reichen bzw. jetzt ja schon 3x)... ;)

Mit/in fhem etc. kennst du dich aber aus!? Also Events, notify, at etc.!?

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)

paulbaumann

Ja Danke, ich werde am Wochenende mich nochmals näher mit der Materie befassen.
Immerhin habe ich den Schalter "anlage" schon so hinbekommen das er immer die activity "Film" anschaltet, ein erster Schritt aber er soll die auch wieder ausschalten.
Ich versuche am Wochenende ein wenig die Doku zu studieren und die Zusammenhänge zu begreifen, FHEM scheint zwar äußerst flexibel zu sein aber man muss schon Zeit reinstecken um zu begreifen.
Grüße

MadMax-FHEM

Mit dem Notify von mir sollte ausschalten auch gehen...

Viel Spaß!

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)

volschin

Also mal ganz ketzerisch. Ich habe meinen Harmony Hub in FHEM und gleichzeitig nutze ich den Harmony Skill in Alexa. Das funktioniert ziemlich gut. Ich hänge einfach meine Notify in FHEM an den Hub, der bekommt gut mit, wenn Alexa was über den Skill schaltet.
Intel NUC+Ubuntu 22.04+Docker+FHEM6
HomeMatic: HM-MOD-RPI-PCB+HM-USB-CFG2+hmland+diverse, HUE: Hue-Bridge, RaspBee+deCONZ+diverse
Amzn Dash-Buttons, Siro Rollos
4xRPi, 4xCO20, OWL+USB, HarmonyHub, FRITZ!Box 7590, Echo Dots+Show8, Logi Circle 2, HomeBridge
TIG Stack (Telegraf, InfluxDB, Grafana)

paulbaumann

Ich habe meinen Harmony Hub in FHEM -> bei mir seit ein paar Wochen
und gleichzeitig nutze ich den Harmony Skill in Alexa -> bei mir schon ewig
Ich hänge einfach meine Notify in FHEM an den Hub -> das will ich hinbekommen und deshalb muss ich mich mit der Materie befassen (was ist ein Notify, was ist ein dummy, wie funktioniert das im Zusammenspiel)

MadMax-FHEM

#4253
Wie ich geschrieben habe: lieber erst mal ohne alexa-fhem die fhem-Grundlagen erarbeiten...

Ohne das wird es nichts...

Es sind ja entsprechende Links zum Einarbeiten angepinnt...

Und zu (fast) allen Themen sind Wiki-Artikel vorhanden...

Tipp zu beginn: notif anlegen geht mit dem EventMonitor ganz einfach...

https://wiki.fhem.de/wiki/Event_monitor

Und dummy ist ein (Hilfs)Konstrukt, wenn kein tatsächliches Device (mit echter Hardware dahinter) vorhanden ist bzw. jemand kein vorhandenes Device "verändern" will...

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)

paulbaumann

Also ich habe es nicht nur hinbekommen sondern kann jetzt alles komplett über FHEM steuern. Dank Joachim für seine Geduld.
Ein Studium der Unterlagen FHEM hier und dann das finden der Probleme hat dazu geführt.
Ganz nett ist auch https://wiki.fhem.de/wiki/Alexa-Fhem
Ich möchte aber auch mal beschreiben was man so beachten muss von der Sicht eines Nicht-Profis:
1. Man muss schon den FHEM-Skill aktivieren. Den Fehler werden Wenige machen, habe das einfach überlesen.
2. Das magische Wort für die Alexa wie man es bei HABridge ja kennt, verbirgt sich hier in der Zuweisung "alexaName". Was man da reinschreibt, darauf reagiert Alexa wenn man redet.
(Hinweis: Bei mir fand Alexa es nicht so toll wenn ich sage "schalte Anlage an" oder "schalte Anlage aus". Hingegen "Anlage an" und "Anlage aus" funktionierte fehlerfrei)
3. Ich bin verzweifelt was wollen die Alle mit den Beispielen mit "hub", was ist das für ein Befehl, bis heute Mittag.
Bis ich die CommandRef von FHEM durchforstete und keinen hub fand. Da war mir klar das ich den Namen meines Harmony Hub hier eingeben muss, und den habe ich nun mal nicht hub sondern HarmonyHub genannt.
Deshalb für alle zum mitschreiben der Befehl zur activity-Steuerung des dummys "anlage" (dummy siehe ein paar Posts weiter oben von Joachim) bitte Klein- und Grossschreibung  beachten:

defmod set_anlage notify anlage:(on|off) {if($EVENT eq "on"){fhem("set <name deines harmony hub in fhem> activity <deine activity>")}elsif($EVENT eq "off"){fhem("set <name deines harmony hub in fhem> activity PowerOff")}}

So kann man wirklich Alles perfekt steuern, es klappt ganz einfach. Nochmals danke.

MadMax-FHEM

Danke für die "Blumen"!

Bitte gerne!

Dann mal viel Spaß noch!

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)

paulbaumann

Prima, also weiter im Text für die Steuerung HarmonyHub-Alexa über FHEM.
Nun haben wir die Steuerung der activity wie in der HABridge aber wie bekommen wir die Buttons hin?
Hier sind ein paar Klippen zu umschiffen, eine habe ich nicht direkt genommen sondern quick und dirty gelöst:
Zwar finde ich recht schnell die 8-stellige ID der Harmony Activity (get Harmony activity...) aber nicht die des Harmony Devices.
Macht nichts denn die ID einfach aus der HABridge zu kopieren und sichern.
Nun möchte ich den Button ARD nachbilden als Beispiel, ich habe den auf meinem Receiver als Kanal 1.
1. dummy

defmod ARD dummy
attr ARD alexaName ARD
attr ARD alias Das Erste
attr ARD genericDeviceType switch
attr ARD room alexa,Wohnzimmer
attr ARD setList on off


Nun soll der Button/Schalter stets ARD einschalten, vielleicht geht's eleganter aber ich schreibe einfach Folgendes was gut funktioniert:

defmod set_ARD notify ARD:(on|off) {if($EVENT eq "on"){fhem("set <fhem name des HarmonyHub> command <device ID 8-stellig> Number1")}elsif($EVENT eq "off"){fhem("set <fhem name des HarmonyHub> command <device ID 8-stellig> Number1")}}


Nun soll es ein Sender sein, der 2-stellig ist, als Beispiel nehmen wir mal Comedy Central auf Kanal 27:

defmod comedy dummy
attr comedy alexaName comedy
attr comedy alias Comedy Central
attr comedy genericDeviceType switch
attr comedy room alexa,Wohnzimmer
attr comedy setList on off

Jetzt wird es etwas länger ich erkläre mal die Unterschiede im schalten weiter unten:

comedy:(on|off) {if($EVENT eq "on"){fhem("set <fhem name des HarmonyHub> command <device ID 8-stellig> Number2;set <fhem name des HarmonyHub> command <device ID 8-stellig> Number7")}elsif($EVENT eq "off"){fhem("set <fhem name des HarmonyHub> command <device ID 8-stellig> Number2;sleep 1;set <fhem name des HarmonyHub> command <device ID 8-stellig> Number7")}}

Wer aufgepasst hat dem ist aufgefallen das ich beim ausschalten eine Pause zwischen den Tasten eingebaut habe. Das ist hier an diversen Stellen zu lesen und sicher gerätespezifisch ob man eine Pause benötigt. Bei der Dreambox scheint es egal zu sein, also ausprobieren und entweder vorne noch sleep 1 ergänzen oder hinten löschen je nachdem was besser bei Euch geht.
Mir fällt nun kaum noch was ein was bei der HABridge ging und hier nicht, nur sind wir hier sehr flexibel und die Community ist größer.
Weitere Anregungen gerne.

MadMax-FHEM

#4257
Warum schaltest du nicht einfach über den Harmony Hub statt über ein Device des Hubs!?

Darum hat man (zumindest ich) den Harmony Hub doch!?

Also set HarmonyHub channel ChannelNr

Hier geht auch direkt 27 ohne Pause etc.

Evtl. mal etwas mit dem Harmony Hub und dessen Möglichkeiten beschäftigen...
...hat aber nichts mit alexa-fhem oder fhem selbst zu tun...

Wenn der Hub richtig konfiguriert ist, dann schickt der doch die Kommandos je nach Aktivity an das passende Gerät...

Gilt ja auch für Pause/Play...

Laut(er)/Leise(r)...

Usw.

Für Kanalumschaltung kann man auch im Smart Home Skill genericDeviceType media nehmen und dann direkt das Reading channel "ansprechen"...

Ein Beispiel ist in einem der alexa-fhem Threads und evtl. auch im Wiki...

EDIT: oder hier https://forum.fhem.de/index.php/topic,60244.msg974748.html#msg974748

EDIT: das verlinkte Beispiel ist "gekürzt" auf nur Nummern... Es gehen auch Namen. Ich habe dazu ein Array mit den Sendernamen und der Index ist dann die Kanalnummer. Ich durchsuche da dann das Array nach dem von Alexa übermittelten Namen und schalte dann den entsprechenden Kanal. Ich hab das aber rausgenommen, weil Alexa die Sender immer wieder mal anders "versteht" und dann kommen "andere Namen" und dann wird das mit dem Suchen im Array naja... Außerdem: ich habe ja die FB, ist mir lieber als bei laufendem Film in meine Alexa zu schreien. Da bin ich mit der FB 1000mal schneller und v.a. auf jeden Fall gezielter... ;)

EDIT: mögliche "Stolperfallen" https://forum.fhem.de/index.php/topic,102274.0.html

EDIT: ansonsten mal das Wiki durchforsten. Da steht was alles geht bzw. legt das ja Amazon fest aber im Wiki ist der Link wo bei Amazon steht was geht...

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)

paulbaumann

Ja ich habe Deine Meinung schon an anderer Stelle gelesen. Das geht auch, aber ich habe das schon bewusst nicht bei der HA Bridge gemacht.
Möglichst keine activity sondern Alles was geht über die Devices ist meine Sicht, aber solange beide Wege gehen ist das ja legitim beide Wege zu erwähnen.
Ich nutze die activity nur dafür wo ich denke diese ist praktisch, nämlich mehrere Geräte gleichzeitig ein- und auszuschalten.
Ich denke letztlich hat Logitech das Konzept der activity nur übergestülpt, weil es sicher auch bequem ist.
Aber man kann trotzdem jedes Device direkt ansteuern, das ging mit der HABridge via Button und es geht ja prima mit FHEM. (wie ich mittlerweile gelernt habe)
Man muss es nicht tun, klar man kann auch beliebig activities mit dem HarmonyHub creiern.
Ich habe halt einen möglichen Weg beschrieben, und der funktioniert für mich prima.
Aber danke für den Hinweis das man es auch anders machen kann.
Mir fehlt eigentlich nur wie ich die Device ID in FHEM mit einem get-Befehl hole.
(brauche ich aber nicht zwingend weil ich die aus der HABridge auslesen kann und ich habe nur 4 physische Geräte, also 4 devices)
Was gefällt mir weniger an der activity-Geschichte?
------Also set HarmonyHub channel ChannelNr Hier geht auch direkt 27 ohne Pause etc.
Das mag bei einem Fernseher sein und ich schalte Kanal 27 an, ja aber ich schalte Kanal 27 auf meiner SAT-Box. Nun will ich aber auch an meinem Fernseher schalten...
Da finde ich es übersichtlicher wenn ich über die devices von Fernseher und Box gehe.
Lautstärke ist noch defiziler. Ich kann an 3 Geräten an der Lautstärke drehen, am Fernseher, am SAT-Receiver und am Receiver (Verstärker für meine Boxen).
Hier nutze ich in der Tat eine activity, je nach Modus.
activity "Film" schaltet den Fernseher stumm und steuert die Lautstärke nur über den Receiver, der angeschaltet und auf den TV-Ausgang geschaltet wird.
activity "TV" schaltet nur den Fernseher und SAT-Receiver ein ein und steuert die Lautstärke über den Fernseher.
Bei den 4 Zusatztasten habe ich 2 auf der Fernbedienung so belegt das man dort die Lautstärke des SAT-Receivers manipulieren kann.
Also danke für die weiteren Anregungen, ich denke hier führen wirklich viele Wege nach Rom.

Grüße



MadMax-FHEM

#4259
Tja, klar jeder wie er will...

ABER: du hast Harmony konfiguriert, dass eben bei bestimmten Activities Befehle an die richtigen Geräte gehen und dann NOCHMAL die gleichen "Überlegungen" aus fhem heraus... Wenn du ein neues Gerät bekommst oder doch mal die Lautstärke nicht mehr über den TV sondern den Verstärker willst, musst du immer an 2 Stellen drehen...

Ich nur an einer: Harmony Hub... :)

Du kannst die Devices und deren IDs beim Hub "abfragen": get HarmonyHub devices

Oder: list TYPE=harmony

Oder: beim Harmony Hub auf den Link harmony klicken...

EDIT: du kannst über den Hub auch noch mehr abfragen (und steuern)... Allerdings wäre das fast besser im Harmony Hub Thread oder einem "eigenen Thread" aufgehoben... ;)

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)