Fhem Alexa Connector erweitern

Begonnen von r1snake, 12 Juni 2019, 09:09:26

Vorheriges Thema - Nächstes Thema

r1snake

Hallo zusammen,

aktuell habe ich bei mir den Fhem Connector für Amazon erfolgreich implementiert.

Jedoch würde ich diesen gerne erweitern, sodass ich Funktionen aufrufen kann.

Laut meiner Erfahrung müsste ich hierfür einen Custom Skill anlegen. Mein Problem hierbei liegt darin, dass ich keine aktuelle Anleitung im Netz finde und es deshlab nicht hinbekomme.

Kennt sich einer mit der aktuellen AWS und Skill Oberfläche aus und kann mir irgendwie dabei helfen einen kleinen Custom Skill anzulegen?


MadMax-FHEM

#1
Da wirst du dich vermutlich schwer tun...

Es gab mal irgendwo ein PDF was mal wieder aktuell war...
...aber vermutlich auch schon nicht mehr stimmt (selbst wenn es gefunden wird/würde)...

Es gibt viele verwaiste Threads wie den hier...

Ich selbst hatte mal einen Custom Skill aber mittlwerweise gibt es Routinen, damit kann man ziemlich viel machen...
...und zusammen mit dem echodevice-Modul noch viel mehr, hier ganz knapp:

Per Routine (da kannst du ja vorgeben was du sagen willst) einen Dummy schalten -> Notify/DOIF auf voice-Reading -> schauen was du wolltest -> Aktion/Funktion/was immer du willst tun (-> den passenden Echo mittels speak antworten lassen)

Da gibt es kaum noch was wozu man Custom Skill bräuchte bzw. kaum was das nur ein Custom Skill kann bzw. (viel) besser kann/könnte...

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)

amenomade

ZitatNotify/DOIF auf voice-Reading
Du meinst auf dem echodevice? Bei mir kommt es aber immer mit mehrere Sekunden Verzögerung.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

MadMax-FHEM

#3
Jep, genau.
Musst mal schauen, es gibt glaub ich ein Attribut, was dieses Reading schneller updatet...

EDIT: müsste 'intervalvoice' sein...

Bzw. die (alte) Lösung beim Notify auf den geschaltenen Dummy (der bei der Routine geschalten wird, ist immer der selbe) ein getStatus oder so beim Account-Device dadurch wird voice auch sofort aktualisiert...

EDIT: "alte Lösung" (meine 1. Idee ;)  ) Routine schaltet Dummy, Notify auf Dummy macht ein 'get Account-Device status' daraufhin wird das voice Reading aktualisiert, da dann ein Notify/DOIF auf voice und da dann das gesprochene Auswerten und entsprechende Aktion ausführen... Könnte man sicher auch TEERKO, babbel, Talk2Fhem, ... machen lassen. Also den Inhalt von voice Reading weitergeben zur "Auswertung"... Auch nur eine Idde, keine Zeit zur Umsetzung (aber TEERKO hab ich mir schon angesehen, damit sollte es problemlos gehen)...

Oder so ab hinterer Mitte im echodevice-Thread lesen...

Bin leider grad nicht so richtig online bzw. ohne vernünftigen Zugriff auf meine fhem...
...drum nur kurz und Stichworte...

Bzw. nutze ich das (noch) gar nicht.
Hatte nur die Idee dazu im echodevice-Thread und freue mich, dass es geht und dass es besser umgesetzt wurde... ;)
Aber ich hab schon Ideen was ich da alles machen könnte...
...leider zu wenig Zeit...

Später mehr (wenn du dann überhaupt noch was brauchst)... ;)

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)

amenomade

OK verstanden. Ich hatte am Anfang falsch interpretiert. Du nutzt den alexa-fhem zum triggern und dann echodevice um auszuwerten. Ich dachte, du lässt echodevice auch triggern.
Was mir noch nicht ganz klar ist, ist wie Du die Routine "variabilisierst", so dass es noch etwas gibt auzuwerten... Naja... werde bei Gelegenheit experimentieren
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

MadMax-FHEM

#5
Das mit dem Variabilisieren ist vermutlich der einzige bzw. einer der Unterschiede zum Custom Skill...

Sowas geht nicht (oder nur bedingt, habe ich noch nicht drüber nachgedacht ;)  )...

Ja alexa-fhem oder ha-bridge wird zum Triggern genutzt, wobei die "neueste Variante" (wie gesagt ich hatte nur ganz am Anfang die Idee, ich selbst nutze das noch gar nicht ;)  ) gleich auf das voice-Reading geht aber dabei das voiceinterval nach unten setzt...

Aber da man eh eine Routine anlegt, kann man neben der Antwort: "ich sehe nach" oder "einen Moment bitte" oder so ;)
auch noch einen Dummy "einschalten" und dann darauf reagieren, dann eben ein get settings oder get status und dann eben noch ein DOIF/Notify für voice...
...was dann die eigentliche "Arbeit" macht...

EDIT: interessant wäre es (für mich) für Abfragen: Alexa wie warm ist es im Wohnzimmer (das in die Routine) und dann als "Kurzantwort" von Alexa: "warte ich schaue mal" ;)  und dann eben per speak die Antwort... Leider nicht so flexibel wie mit dem Custom Skill wo der Raum eben als Variable mitgegeben werden kann. Hier müsste dann halt für jeden Raum eine Routine erzeugt werden...

Ich habe versucht das "lange" DOIF zu finden, steckt irgendwo im echodevice Thread konnte es aber immer noch nicht finden... :-|

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)

r1snake

Danke erstmal für die Antworten.

Ich glaube man kann es schon etwas Variable machen. Wenn man ja ein Event Auslöst durch den Dummy kann man doch in einer Funktion das was gesprochen worden ist auswerten.

z.B. Man sagt "Alexa wie warm ist es im Wohnzimmer"

Kann man ja grob gesagt in der Funktion mehrere If else und contain Zweige machen

If String contain warm
     then if string contain Wohnzimmer
           then Echo Sprache "Im Wohnzimmer sind es XX Grad"
     else if string contain Küche
           then ....


Oder denke ich mir das zu einfach?

MadMax-FHEM

#7
Das geht schon so...
...und (vermutlich) auch so einfach ;)

Wie geschrieben man kann auch eines der "Sprach-Auswerte-Module" dahinter schalten, also TEERKO, Babel, Talk2Fhem, ...
Vermutlich sogar "Snips" (das geht mittlerweile auch mit übergebenen Text-Kommandos [soweit ich gelesen habe])...

Mit TEERKO geht es (ziemlich) sicher, bei den anderen weiß ich es nicht, vermute aber, dass es auch gehen müsste...
...da habe ich es mit einem IFTTT-Konstrukt testweise laufen (d.h. da kommt mein Text per IFTTT nach fhem / ist aber egal wo der Text her kommt, kann also auch vom voice-Reading an TEERKO übergeben werden)...

Allerdings ist die Variabilität zum Custom Skill schon deutlich unterschiedlich (weil es eigentlich NICHT wirklich "variabel" ist ;)  ):

bei deinem genannten Beispiel braucht es für JEDEN Raum eine Routine, also:

"Wie warm ist es im Wohnzimmer" -> schalte AlexaDummy

"Wie warm ist es im Esszimmer" -> schalte AlexaDummy

usw.

Klar nur einen Dummy (wenn man nicht direkt auf voice reagieren will/kann / was aber mittlerweile [intervalvoice entsprechend setzen: 1s oder so] ganz gut gehen soll) und nur ein DOIF mit allen Möglichkeiten...
Aber eben nicht "komplett" variabel...
(Hinweis: wenn man eine "Kurzantwort" geben lässt sowas wie: "warte kurz ich sehe nach" oder so, dann muss man noch [glaube ich gelesen zu haben] dieses unterdrücken, sonst erscheint das auch bei voice [ich glaube so war es] und damit ist die Auswertung nicht mehr möglich [steht ja nicht die Anfrage drin, sondern evtl. bereits die Kurzantwort], mag mich aber täuschen, ich lese ja nur mit, verwende es selbst [noch] nicht)

Im Gegensatz zum Custom Skill:

"Alexa wie warm ist es im {$ROOM}" -> es wird dann eben der gesprochene Raum übergeben...
Klar die Auswertung in der Sub (oder wo auch immer) ist dann die selbe...
Aber man muss keine 1000 Routinen einrichten ;) und man braucht auch keinen Dummy etc.

Klar für dieses Szenario ist es evtl. nicht schlimm, wieviele Zimmer (die interessant sind) kann man schon haben...
...wenn man kein Schloss hat ;)

Aber es ist schon ein Unterschied...
...dafür muss man sich bei diesem "Konstrukt" nicht mit Amazon AWS "rumschlagen"...

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)

Thyraz

#8
Zitat von: r1snake am 13 Juni 2019, 10:31:20
z.B. Man sagt "Alexa wie warm ist es im Wohnzimmer"
...

Das Problem ist hier nur, dass du für jede mögliche Variante eine Routine anlegen musst.
Also für jedes Zimmer.

Ansonsten bekommst du von Alexa zuerstmal die Antwort dass sie das nicht kann, bevor deine über echodevice ausgegebene Antwort kommt.


Ich würde übrigens eher dazu raten, mit der Routine einen Dummy zu triggern und wenn der geschalten wird in FHEM über get <echoaccount> settings die voice Readings aktualisieren.
Das dürfte schneller gehen als alle 2-3 Sekunden über intervalvoice.
Zudem steigt mit so niedrigen Intervallen sicher die Gefahr, irgendwann von Amazon geblockt zu werden.
Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Conbee II, Hue, Harmony, Solo4k, LaMetric, Echo, Sonos, Roborock S5, Nuki, Prusa Mini, Doorbird, ...