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

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

Vorheriges Thema - Nächstes Thema

Norbert_G

Hallo Justme1968,

die FHEM-Version ist aktuell und die Alexa-Fhem Version die 0.1.9.

---------------------------------------------------------------
latest Revision: 13483
File                 Rev   Last Change
fhem.pl              13447 2017-02-19 13:24:25Z rudolfkoenig
---------------------------------------------------------------

Gruß

Norbert
Cubietruck, HM über HMLAN und HMUSB, 1-wire, IPCAMs, Visualisierung über smartVISU

justme1968

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

Tommy82

Hallo ,mal eine allegemeine Alexa frage, wie soll es zukünftig aussehen? Gibt es ein Alexa Fhem Modul welches sowohl den SmartHomeSkill wie auch den Custom skull vereint und worüber ich dann alexa steuern kann? Oder wird es immer zwei getrennte Skills geben?


Gesendet von iPhone mit Tapatalk
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

justme1968

das alexa fhem modul und auch alexa-fhem ist doch jetzt schon für beide skills...

das es zwei skills gibt liegt an amazon und daran das es zwei apis mit unterschiedlichen möglichkeiten gibt. daran wird sich vermutlich bist auf weiteres nichts ändern. je nach dem was du machen willst kannst du einen oder beide verwenden.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

Tommy82

Ok, dann muss ich mir das Modul und den custom skill mal genauer ansehen, und mal sehen wie ich den neben alexa-Fhem sinnvoll nutzen kann.

Danke für die Rückmeldung


Gesendet von iPhone mit Tapatalk
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

dron72

#2195
Zitat von: justme1968 am 11 November 2016, 10:02:41
@olli84: du kannst mit dem home automation skill nur die 8 vorgegebenen kommandos verwenden und hat nur freiheiten bei den devioce namen. du kannst also sagen alexa, schalte fernsehen ein. mit dem custom skill wird es hier mehr möglichkeiten geben.

der hub wird aber als mehrere schalter erkannt. damit kommt der aktuelle skill noch nicht automatisch zurecht.

ein dummy braucht eine setList mit on und off damit er automatisch erkannt wird, ansonsten homebridgeMapping passend setzen.

der dummy braucht übrigens für diese anwendung kein notify, ein passendes homebridgeMapping das die readings aus dem harmony device holt reicht,

die umwege über steckdose schalten und dann per notify etwas anderes machen braucht man nicht.

Ich hänge mich hier mal ran - ich bin entweder zu dumm, die passende Antwort hier zu finden, oder sehe den Wald vor lauter Bäumen nicht.
Obiges Zitat stammt von Seite 22 dieses Threads...

Also: Ich will auch den Fernseher über Alexa -> FHEM -> HarmonyHub an und aus schalten.
Ich habe den Smarthome Skill (Standard und Custom) erfolgreich am laufen.
Ich habe einen Dummy eingerichtet, den ich auch erfolgreich über Alexa schalten kann.

define fernsehen.HH.dummy dummy
attr fernsehen.HH.dummy alexaName Fernsehen
attr fernsehen.HH.dummy alexaRoom Wohnzimmer
attr fernsehen.HH.dummy genericDeviceType switch
attr fernsehen.HH.dummy room alexa
attr fernsehen.HH.dummy setList on off


Über Notify mein HarmonyHub device zu schalten, wäre ja zu einfach.  ;)
Wenn ich André richtig verstehe (ich habs oben mal fett markiert), müsste es aber auch irgendwie gehen, indem man dem dummy device noch ein homebridgeMapping attribut verpasst und ganz auf notifies hierfür verzichtet. Das würde ich gerne verstehen.

Mein Device heisst HarmonyHub und bei einem
"on" des dummies, sollte "set activity FERNSEHEN" auf dem HarmonyHub ausgeführt werden und bei einem
"off" des dummies entsprechend ein "set activity PowerOff"

Kann mir jemand nen passenden Link zu einer Alexa spezifischen homebridgeMapping Doku nennen und am liebsten auch gleich einen konkreten Vorschlag, wie es in meinem Fall aussehen könnte?

Wäre super, danke!

EDIT: Das hier: https://forum.fhem.de/index.php/topic,48558.msg402024.html#msg402024 kenne ich, aber irgendwie...

justme1968

attr <name> homebridgeMapping On=<hub>:activity,valueOn=FERNSEHEN,cmdOn=activity+FERNSEHEN,cmdOff=off

<hub> durch den namen des hub devices ersetzen.

wenn es nur die eine activity ist kannst du das mapping auch direkt im hub device haben. <hub>: kann dann entfallen.

es gibt keine alexa spezifisches homebridgeMapping. die allgemeine doku ist hier: https://github.com/justme-1968/homebridge-fhem/blob/master/README.md und hier: https://forum.fhem.de/index.php/topic,48558.msg402024.html#msg402024.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

zap

Der Endpoint ist doch in Nodejs realisiert. Warum eigentlich nicht direkt in FHEM? Schließlich bietet FHEM doch einen HTTPS Server an. Oder gibt es technische Gründe, die dagegen sprechen?

Das soll keine Kritik sein. Ich finde die Entwicklung super. Will nur die Hintergründe verstehen. Überlege schon eine Weile, welche Art der Alexa Integration die beste ist. V.a. Auch unter dem Sicherheitsaspekt. Die Portfreigabe stört mich doch ziemlich.
2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB

justme1968

1. der code ist zu 80% identisch mit hombridge-fhem und soll wieder damit zusammen gefasst werden..homebridge gibt es nur in node.js.

2. das ganze als eigenen dienst und nicht innerhalb von fhem laufen zu lassen macht es aus sicherheitsaspekten weniger kritisch den port von aussen zu öffnen.

es muss weder der gleiche rechner noch der gleiche user wie deine fhem installation sein.

3. auch wenn die ha-bridge anwender etwas anderes sagen ist diese art der fhem integration aktuell die einzige mögliche richtig flexible. du hast im prinzip die wahl zwischen veröffentlichtem skill (mehr oder weniger flexibel) bei dem du dein komplettes fhem inklusive zugangsdaten über einen cloud dienst zugreifbar machen musst oder die variante über einen privaten skill (hochgradig konfigurierbar) bei dem du nur einen port nach aussen auf machen musst. letzteres ist halt von der konfiguration etwas aufwändiger.

im prinzip könnte man noch mit einem reverse tunnel das öffnen von aussen vermeiden, das gibt es aber erstens nicht kostenlos und zweitens hast du denn einen mehr oder weniger angreifbaren dienst im internet.

die portfreigabe nur für den autonomen alexa-fhem dienst ist glaube ich das kleinere übel. und du kannst ihn wenn du meinst das es noch sicherer ist per Reverse proxy absichern.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

dron72

Zitat von: justme1968 am 22 Februar 2017, 21:40:21
attr <name> homebridgeMapping On=<hub>:activity,valueOn=FERNSEHEN,cmdOn=activity+FERNSEHEN,cmdOff=off

<hub> durch den namen des hub devices ersetzen.

wenn es nur die eine activity ist kannst du das mapping auch direkt im hub device haben. <hub>: kann dann entfallen.

es gibt keine alexa spezifisches homebridgeMapping. die allgemeine doku ist hier: https://github.com/justme-1968/homebridge-fhem/blob/master/README.md und hier: https://forum.fhem.de/index.php/topic,48558.msg402024.html#msg402024.
Ok, danke für die superschnelle Antwort!
Ich muss mich da wohl noch mehr durchwühlen und das ganze besser verstehen. In FHEM fühle ich mich ja helbwegs zu hause, aber mit den Homebridge/Homekit Characteristics/Parametern etc. bin ich noch nicht so ganz befreundet  ;)

So sieht mein Dummy jetzt aus - ich kanns nach wie vor schalten, allerdings kommt beim HarmonyHub (ja, so heisst das Device bei mir) nichts an.
Weder an noch ausschalten funktioniert.

define fernsehen.HH.dummy dummy
attr fernsehen.HH.dummy alexaName Fernsehen
attr fernsehen.HH.dummy alexaRoom Wohnzimmer
attr fernsehen.HH.dummy genericDeviceType switch
attr fernsehen.HH.dummy homebridgeMapping On=HarmonyHub:activity,valueOn=FERNSEHEN,cmdOn=activity+FERNSEHEN,cmdOff=activity+PowerOff
attr fernsehen.HH.dummy room alexa
attr fernsehen.HH.dummy setList on off


mit dem cmdOff=off (wie vorgeschlagen) tuts auch nicht.

Mein HarmonyHub ist nicht(!) alexa zugeordnet - ich hoffe, das ist nicht der Grund, da der Weg ja von Alexa über Dummy zum HarmonyHub gehen soll.

Kann man irgendwo sehen, ob die homebridge mappings genutzt werden? Trotz Verbose 5 beim Alexa Device und beim Dummy Device finde ich nichts dazu im fhem*.log, nur:
2017.02.22 22:35:45 4: dummy set fernsehen.HH.dummy on
2017.02.22 22:34:10 4: dummy set fernsehen.HH.dummy off

bzw.
[2/22/2017, 10:35:45 PM] [FHEM] fernsehen.HH.dummy: executing set cmd for On with value 1
[2/22/2017, 10:35:45 PM] [FHEM]   executing: https://192.168.178.59:8083/fhem?cmd=set%20fernsehen.HH.dummy%20on&XHR=1
response :{"header":{"name":"TurnOnConfirmation","payloadVersion":"2","namespace":"Alexa.ConnectedHome.Control","messageId":"xxxxxx keine Ahnung ob das hier was geheimes enthält daher habe ichs mal wegge-x-t xxxxxxxx"},"payload":{}}
  2017-02-22 22:35:45 caching: fernsehen.HH.dummy-state: on
im alexa*.log

justme1968

hast du alexa-fhem neu gestartet oder über set reload fernsehen.HH.dummy neu initialisiert?

beim start mit --debug wird das mapping ausgegeben.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

dron72

Zitat von: justme1968 am 22 Februar 2017, 22:46:47
hast du alexa-fhem neu gestartet oder über set reload fernsehen.HH.dummy neu initialisiert?

beim start mit --debug wird das mapping ausgegeben.
Bingo, das wars! Danke!
Dachte nicht, das man alexa-fhem neu starten muss, wenn man an einem Dummy was ändert - hatte das bisher immer nur gemacht, wenn ich neue Devices alexa zugeordnet habe (obwohl man das inzwischen wohl auch nicht mehr braucht, wenn ich das richtig gelesen habe).
Ich glaube ich habe 'ne Menge gelernt heute Abend und kann jetzt auch den Fernseher über Stimme an/aus schalten.
Herzlichen Dank nochmal. Nicht nur ne super Arbeit von Dir, sondern auch ein super Service! Weiter so!

Norbert_G

 Noch eine Ergänzung zu Antwort #2190:

Ich habe mittlerweile das Homekit runter geworfen und einmal neu aufgesetzt und an mein Iphone gekoppelt und schwupps lief auch Alexa.

Danke für die Hilfe

Norbert
Cubietruck, HM über HMLAN und HMUSB, 1-wire, IPCAMs, Visualisierung über smartVISU

Ampheus

Seit heute geht plötzlich mein alexa-fhem nicht mehr. Es spricht vermutlich nicht mehr mit dem Amazon Server. Bin schon den ganzen Tag am Suchen. Habe erst mal das FHEM update auf feature level 5.8 gemacht und auch Alexa auf 0.3.0. geupdatet. Aber auch das hat nicht geholfen. Gleiches Verhalten. Ebensowenig hat das Rückspielen eines Backups von vor 1 Woche geholfen oder das Rücksetzen aller Hardware. Die Portweiterleitung auf 3000 ist von aussen sauber erreichbar (https test).

Ich habe mal die alexa Logfiles verglichen. Alles sieht normal aus. Beim starten von Alexa stoppen aber die Einträge genau dort, wo sonst im Logfile es weitergeht mit

[2017-2-1 09:36:17] accepted new token
**** Received Directive: usw.....

Ich bin an der Stelle ratlos und hoffe auf Tips wo ich nachschauen kann wo es hakt. Vermute irgendein Authentifizierungsproblem. Aber in welchen Logfile finde ich da Hinweise? Eventmonitor and FHEM Logfile schweigen (in der Standardeinstellung). Zudem ist es komisch, weil ich eigentlich aktuell nur an (nicht Alexa) notifies gebastelt habe .

Danke.

Gruß
Thomas.