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

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

Vorheriges Thema - Nächstes Thema

prodigy7

Zitat von: justme1968 am 14 November 2016, 14:11:26der code simuliert ein wemo device. die gehen nicht über home automation skill oder custom skill sondern haben irgendeine sonderbehandlung direkt im echo eingebaut der wirklich lokal vom echo aus das device steuert. deshalb ist die lokale ip sichtbar.
Wenn ich mich richtig beim Thema Alexa eingelesen habe, war es wohl bis Anfang des Jahres so, dass man tatsächlich direkt lokale Geräte adressieren konnte. Das wurde dann aber wohl durch die API die wir jetzt nutzen (müssen) geändert. Lasst mich lügen, war aber glaube ich in Richtung April / Mai oder so wo das geändert wurde?

justme1968

ich habe diverse posts gesehen und das ging noch nie. es gibt einen recht langen thread in dem amazon gesagt hat das sie nicht daran gedacht haben und es mit auf die liste nehmen. vielleicht kommt es irgendwann ...

in meinem der bis her
vorhanden apis gibt es dir möglichkeit. auch nicht in alten versionen.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

Hotbird

@justme1968
In der Antwort #365 schreibst Du etwas von 8 Kommandos, laut Wiki sind es nur 4

"alexa, schalte <gerät> ein"
"alexa, schalte <gerät> aus"
"alexa, stelle <gerät> auf <wert> prozent"
"alexa, stelle <gerät/raum> auf <anzahl> grad"

Welche gibt es denn noch? Mit an/aus funktioniert es bei mir super. Stell die Heizung auf 20 Grad, da wird eher stell die Heizung auf 20 erkannt ( ich vergesse immer das STELLE :-) ) Aber langsam gewöhn ich mich an diese absolut geniale Funktion!!

Jetzt kommt dann wieder eine Noob Frage ;-) Kann ich theoretisch denn auch einen Dummy damit starten? Quasi einen Dummy erstellen "Sonos Favorit" der eine Playlist ins Sonos lädt und danach abspielt?

justme1968

zusätzlich gibt es noch diese:
Zitat"alexa, erhöhe <name> um <anzahl> prozent"
"alexa, reduziere <name> um <anzahl> prozent"
"alexa, erhöhe <name> um <anzahl> grad"
"alexa, reduziere <name> um <anzahl> grad"

für dummys gibt es weiter oben beispiele. sobald ein setList mit on und off vorhanden ist geht es automatisch.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

AmunRe

Zitat von: Hotbird am 14 November 2016, 19:41:13
Jetzt kommt dann wieder eine Noob Frage ;-) Kann ich theoretisch denn auch einen Dummy damit starten? Quasi einen Dummy erstellen "Sonos Favorit" der eine Playlist ins Sonos lädt und danach abspielt?

klar geht das.

Schau hier:

define szene_TopHits dummy
attr szene_TopHits alias TopHits
attr szene_TopHits group Szenen
attr szene_TopHits room alexa,sonos_automation
attr szene_TopHits setList on off


define TopHits_Sonos_control DOIF ([szene_TopHits] eq "on")(set Sonos_Wohnzimmer StartFavourite TopTracksGER) DOELSEIF ([szene_TopHits] eq "off")(set Sonos_Wohnzimmer EmptyPlaylist)
attr TopHits_Sonos_control room sonos_automation


4 x Echo Dot, HMLAN Gateway, und diverse HM Komponenten, Philips Hue + OSRAM Plugs

Hotbird

mhh, nach dem letzten Code kommt die Meldung
TopHits_Sonos_control DOIF: expected DOELSEIF or DOELSE: attr TopHits_Sonos_control room sonos_automation

Ich finde mich aber grad ein wenig zurecht. Hab grad ne Seite gefunden wo jemand durch einen Bewegungsmelder einen Radiosender startet.. Das müsste ich mir jetzt in einen on/off Dummy umbauen
set Sonos_Küche/Wohnzimmer/Bad  StartFavourite YOU FM - YOUNG FRESH MUSIC

irgendwie so. Ich glaub ich les mir erst einmal die Dokumentation von FHEM durch :-)

Aber Danke auf jeden Fall! Du hast mich schon mal auf den richtigen Lösungsweg gebracht :-)

AmunRe

Zitat von: Hotbird am 14 November 2016, 21:40:41
mhh, nach dem letzten Code kommt die Meldung
TopHits_Sonos_control DOIF: expected DOELSEIF or DOELSE: attr TopHits_Sonos_control room sonos_automation

Ich finde mich aber grad ein wenig zurecht. Hab grad ne Seite gefunden wo jemand durch einen Bewegungsmelder einen Radiosender startet.. Das müsste ich mir jetzt in einen on/off Dummy umbauen
set Sonos_Küche/Wohnzimmer/Bad  StartFavourite YOU FM - YOUNG FRESH MUSIC

irgendwie so. Ich glaub ich les mir erst einmal die Dokumentation von FHEM durch :-)

Aber Danke auf jeden Fall! Du hast mich schon mal auf den richtigen Lösungsweg gebracht :-)

Gute Idee


Du darfst die attr nicht mit in den DEF teil packen, das kommt halt dann noch danach hinzu.
4 x Echo Dot, HMLAN Gateway, und diverse HM Komponenten, Philips Hue + OSRAM Plugs

Pjg

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

Ich verstehe das homebridgemapping nicht. (Ich habe den Thread mehrfach gelesen, erfolglos..)
Wenn dieses doch nur das reading aus dem echten harmony device dem dummy zuordnet, dann bewirkt eine
Änderung des dummy über alexa-fhem auch ein setzen des entsprechenden Kommandos im harmony device?
Ohne notify oder doif?

Wie sieht denn dann so ein mapping konkret für z.B.  einen dummy ARD aus?
Also gesetzt den Fall die ARD liegt auf Kanal1.
Oder gerne jedes andere Beispiel was ihr implementiert habt.
Danke

Im Moment mache ich das nämlich noch über Yonomi; das will ich wieder los werden.
BananaPI, CUL 433, Somfy RTS, Hue LWL001, Hue LWB004, HM-CFG-LAN, HM-LC-SW2-FM

AmunRe

Zitat von: Pjg am 14 November 2016, 23:21:46
Ich verstehe das homebridgemapping nicht. (Ich habe den Thread mehrfach gelesen, erfolglos..)
Wenn dieses doch nur das reading aus dem echten harmony device dem dummy zuordnet, dann bewirkt eine
Änderung des dummy über alexa-fhem auch ein setzen des entsprechenden Kommandos im harmony device?
Ohne notify oder doif?

Wie sieht denn dann so ein mapping konkret für z.B.  einen dummy ARD aus?
Also gesetzt den Fall die ARD liegt auf Kanal1.
Oder gerne jedes andere Beispiel was ihr implementiert habt.
Danke

Im Moment mache ich das nämlich noch über Yonomi; das will ich wieder los werden.
In diesem Thread ein paar Seiten weiter vor ist ein Beispiel für Lautstärke.


Gesendet von iPhone mit Tapatalk
4 x Echo Dot, HMLAN Gateway, und diverse HM Komponenten, Philips Hue + OSRAM Plugs

justme1968

#384
du gibts im homebridgeMapping kommando:device:reading an. d.h. das kommando wird auf das angegebene device losgelassen wenn eines angebenden wurde und nicht auf den dummy.

da alexa hier aktuell keinen rückkanal hat sollte es so schon reichen:
attr <dummy> homebridgeMapping On=<hub>:activity,cmdOn=command.Kanal1
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

Pjg

Zitatdu gibts im homebridgeMapping kommando:device:reading an. d.h. das kommando wird auf das angegebene device losgelassen wenn eines angebenden wurde und nicht auf den dummy.

...
Code: [Auswählen]

attr <dummy> homebridgeMapping On:<hub>:activity,cmdOn=command.Kanal1

Danke.
Ich galube das hilft mir weiter, kann es aber erst am WE ausprobieren.

Ich interpretiere das nun so:

homebridgeMapping
On:                                      --> On ist der Befehl vom Dummy der gemappt wird. Also wenn Alexa den dummy auf On setzt, dann
<hub>:activity                     --> wird an den <hub> geschickt, was
,cmdOn=command.Kanal1   --> hinter cmdOn zugewiesen ist; also in dem Fall ein "set <hub> command Kanal1"

activity hat in dem Beispiel eigentlich keinen Einfluss.

Ich hoffe das ist soweit korrekt verstanden?
BananaPI, CUL 433, Somfy RTS, Hue LWL001, Hue LWB004, HM-CFG-LAN, HM-LC-SW2-FM

justme1968

fast :)

da die art der konfiguration von homekit übernommen ist gibt es ein paar spezialbegriffe.

- On ist die characteristic (eigenschaft) die einen schalter beschreibt der on und off versteht
- <hub>:activity gibt an das es um das reading activity vom harmony hub geht. das reading ist eigentlich wichtig um
  in homekit/alexa den aktuellen status anzeigen zu können. der smart home skill kann das nicht, den custom skill wird
  man danach fragen können. aktuell ist hier nur <hub> relevant.
- cmdOn ist das kommando das gesendet werden soll wenn eingeschaltet wird
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

Pjg

Perfekt, jetzt hab auch ich es kapiert.
Danke für die Nachhilfe. ;D
BananaPI, CUL 433, Somfy RTS, Hue LWL001, Hue LWB004, HM-CFG-LAN, HM-LC-SW2-FM

srohringer

#388
Hi,

ich komm irgendwie mit dem enablen des Users nicht klar, was muss ich genau in sudo nano /etc/sudoers tun ? Ich habe nur root und pi bei mir als user.

bzw. ich erhalte folgende Fehlermeldung wenn ich das script ausführen will mit PI

-su: /opt/fhem/log/alexa-2016-11.log: Permission denied


danke euch


Zitat von: RedCreek am 07 November 2016, 20:56:36
Hallo justme,

erstmal vielen Dank für den alexa-skill!
Hat auch schon wunderbar mit Version 0.0 funktioniert.

Was mir noch nicht gefällt, dass momentan kein Passwort auf dem Port 3000 gesetzt ist uns somit jeder einen Zugriff von aussen machen kann.

Ich habe zusätzlich einen startupscript von homebridge umgeschrieben (Ausgehend von http://www.fhemwiki.de/wiki/Homebridge_Start_und_Status_in_FHEM) damit man alexa aus fhem starten und stoppen kann.
(siehe Anhang)
script downloaden und unter /etc/init.d/alexa ablegen.
Der script geht davon aus, das der alexa-fhem script unter /opt/fhem/alexa-fhem liegt, und die logfiles später unter /opt/fhem/log
falls das bei euch nicht der Fall ist, muss das in diesem Script am Anfang angepasst werden.


sudo chmod 755 /etc/init.d/alexa
sudo update-rc.d alexa defaults


dann mit sudo nano /etc/sudoers
den alexa script für den fhem user zulassen

Um diesen zu verwenden muss innerhalb von fhem folgendes angelegt werden:
define FHEM.Alexa.Status dummy
attr FHEM.Alexa.Status room AlexaRoom
define FHEM.Alexa dummy
attr FHEM.Alexa event-on-change-reading state
attr FHEM.Alexa room AlexaRoom
attr FHEM.Alexa webCmd status:start:stop:restart
define FHEM.Alexa.DOIF DOIF ([FHEM.Alexa] eq "start") (set FHEM.Alexa on, {system ("sudo /etc/init.d/alexa start > /dev/null 2>&1 &")})\
DOELSEIF ([FHEM.Alexa] eq "stop") (set FHEM.Alexa on, {system ("sudo /etc/init.d/alexa stop > /dev/null 2>&1 &")})\
DOELSEIF ([FHEM.Alexa] eq "restart") (set FHEM.Alexa on, {system ("sudo /etc/init.d/alexa restart > /dev/null 2>&1 &")})\
DOELSEIF ([FHEM.Alexa] eq "status") (set FHEM.Alexa on, {system ("sudo /etc/init.d/alexa status > /dev/null 2>&1 &")})
attr FHEM.Alexa.DOIF room AlexaRoom


Das sollte es schon gewesen sein.

coolerkerl

So an dieser Stelle mal ein ganz fettes DAAAANNNNKKKKKEEEEE schön an alle die hier bisher mitgewirkt haben. Besonders natürlich an justme1968.  Die anderen natürlich auch! 
Ich habe es auch als absoluter Linux Laie geschafft. Hat zwar drei Nächte gedauert, aber schlussendlich stand jede Info , und wenn sie noch so schnell überlesen werden konnte, irgendwo geschrieben. Man musste es nur im richtigen Zusammenhang erkennen. Es läuft hervorragend bisher und spart mir doch jede Menge Stress mit irgendwelchen Automatisierungsscripten , die nie auch nur ansatzweise den WAF erfüllen.  Fhem in Kombination mit Alexa ist ein tolles Projekt.  Aber wie gesagt, man kann es schaffen ohne auch nur eine Frage stellen zu müssen, dafür einen fetten Dank.
Ich glaube das ist zwar OT aber dennoch!  ;)  Gruß Jörg