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

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

Vorheriges Thema - Nächstes Thema

justme1968

@Pjg:On=harmony_38790942:activity,cmdOn=command.PowerOn,cmdOff=command.PowerOff

@mrbreil: um prozentwerte zu setzen brauchst du z.b. ein mapping für Brightness: Brightness=state

@besitzer: deine node version ist zu alt. mindestens 0.12.7. bitte im anderen thread weiter machen.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

prodigy7

Hallo zusammen,

ich hab mir folgenden Code
Zitat von: RedCreek am 07 November 2016, 20:56:36
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
(https://forum.fhem.de/index.php/topic,60244.msg517271.html#msg517271) raus gepickt und habe es soweit umsetzen wollen, dass ich meinen PC via Sprachsteuerung Ein- und Ausschalten kann.

Das sieht bei mir so aus:define Wohnung3.Arbeitzimmer.Device.PC.status dummy

define Wohnung3.Arbeitszimmer.Device.PC dummy
attr Wohnung3.Arbeitszimmer.Device.PC alias PC
attr Wohnung3.Arbeitszimmer.Device.PC event-on-change-reading state
attr Wohnung3.Arbeitszimmer.Device.PC room Kommunikation | Spracherkennung,Raum | Arbeitszimmer
attr Wohnung3.Arbeitszimmer.Device.PC webCmd on:off

define Wohnung3.Arbeitszimmer.Device.PC.DOIF
DOIF ([Wohnung3.Arbeitszimmer.Device.PC] eq "on") (set Wohnung3.Arbeitszimmer.Device.PC on, {system ("/opt/bin/suspend-remote.sh start")})\
    DOELSEIF ([Wohnung3.Arbeitszimmer.Device.PC] eq "off") (set Wohnung3.Arbeitszimmer.Device.PC on, {system ("/opt/bin/suspend-remote.sh stop")})
attr Wohnung3.Arbeitszimmer.Device.PC.DOIF
room Raum | Arbeitszimmer
Jetzt wird der Schalter aber nicht von Alexa erkannt. Was läuft hier schief?

justme1968

ein dummy braucht eine setList damit er automatisch erkannt wird: attr <name> setList on off

wenn man statt des dummy einen readingsProxy verwendet kann man sich notify und DOIF auch noch sparen.

oder es könnte mal jemand versuchen ob man nicht sogar direkt "/opt/bin/suspend-remote.sh+start" im homebridgeMapping angeben kann.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

prodigy7

Zitat von: justme1968 am 18 November 2016, 19:53:24
ein dummy braucht eine setList damit er automatisch erkannt wird: attr <name> setList on off

wenn man statt des dummy einen readingsProxy verwendet kann man sich notify und DOIF auch noch sparen.

oder es könnte mal jemand versuchen ob man nicht sogar direkt "/opt/bin/suspend-remote.sh+start" im homebridgeMapping angeben kann.
Cool! Damit funktioniert es! Kann meinen PC via Sprachbefehl Ein- und Ausschalten. WIe würden denn eine vereinfachte Variante (also via readingsProxy) aussehen?


justme1968

fast. du musst aber die setFn abwandeln da du ja kein set an ein anderes device weiter reichst. eher wie das vorletzte beispiel.

etwas so sollte es gehen: attr <name> setFn { if( $CMD eq 'on') {fhem('"/opt/bin/suspend-remote.sh start"') } else {fhem('"/opt/bin/suspend-remote.sh start"')};; return undef;; }
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

thm2014

An dieser Stellen vielen Dank an justme1968 für die Idee und Entwicklung. Mit der Anleitung im Wiki hat es sofort geklappt und es funktioniert super. Füge aktuell immer mehr Geräte zusätzlich in den Raum "alexa" rüber und freue mich, wie super es funktioniert!! Ein hoffe ein "Danke schön" ist an dieser Stelle erlaubt.

Pjg

#427
Zitat@Pjg:
Code: [Auswählen]
On=harmony_38790942:activity,cmdOn=command.PowerOn,cmdOff=command.PowerOff


Tut leider auch nicht.  Wenn ich den dummy in fhem anschalte, reagiert der Fernseher nicht.
Mache ich das ganze über ein doif, klappt es.
Das homebridgemapping läuft bei mir einfach nicht.
Muss ich da evtl. Noch etwas installlieren?
Bisher habe ich das nie gebraucht/verwendet.
BananaPI, CUL 433, Somfy RTS, Hue LWL001, Hue LWB004, HM-CFG-LAN, HM-LC-SW2-FM

justme1968

@Pjg: achtung. hier geht gerade einiges durcheinander.

bitte noch mal von vorne: was genau möchtest du machen?
- eine bestimmte activity starten? -> http://www.fhemwiki.de/wiki/Harmony#Button_f.C3.BCr_eine_bestimmte_Activity_im_Frontend_und_Homekit_.C3.BCber_readingsProxy

- ein device kommando absetzen? -> im prinzip genau so mit anderem kommando

- ein device ausserhalb einer activity ein und aus schalten? On=harmony_38790942:power,cmdOn=on,cmdOff=off

da ist kein dummy beteiligt.

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

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

justme1968

ich habe ganz oben eine neue version 0.1.2 hochgeladen. die sichtbaren änderungen sind:

- das alexaName attribut wird ausgewertet. dazu am besten ein fhem alexa device anlegen: define alexa alexa
  danach gibt es das neue attribut alexaName das statt alias verwendet werden kann.

- neue config optionen nat-pmp und nat-upnp zum aktivieren der automatischen port freigabe per nap-pmp oder nat-upnp.
  wobei immer noch nicht ganz klar ist ob letzteres funktioniert.
  die freigaben gelten jeweils für eine stunde, die timer zum refresh sind noch nicht implementiert.

- diverse interne änderungen

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

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

Maiks

Bei mir läuft das soweit, allerdings bekomme ich es nicht hin mehrere licht Schalter oder dergleichen zu verwenden.
Alexa sagt immer Name doppelt oder nicht eindeutig :(

z.b alias Wohnzimmer licht und Schlafzimmer licht  oder Wohnzimmerlicht bzw. Schlafzimmerlicht. Auch wenn ich 2 gruppen anlege die z.B. Wohnzimmer Heizung und Wohnzimmer Licht etc. geht das nicht :(

Wie habt Ihr die Devices benannt ?

Pjg

Ich möchte das mein dummy, der über Alexa geschaltet wird
das Kommando "set harmony_xzy command PowerOn" ausführt, wenn der dummy auf on geht.

harmony_xyz ist ein device, welches aus dem hub heraus per Autocreate erstellt wurde.
Es ist der Fernseher. Dieses device hat kein on off, sondern eben command gefolgt von z.B. PowerOn
BananaPI, CUL 433, Somfy RTS, Hue LWL001, Hue LWB004, HM-CFG-LAN, HM-LC-SW2-FM

justme1968

bei den automatisch angelegten devices kann man command in der regel weg lassen und on und off wird automatisch auf PowerOn und PowerOff gemapped. das reading in der der aktuelle zustand steht ist power. das obige beispiel sollte also gehen:On=harmony_38790942:power,cmdOn=on,cmdOff=offeventuell muss man valueOn und valueOff noch mappen.

wenn nicht: bitte schau auf der konsole was genau passiert.

gruss
  andre
ps: warum steuerst du mit alexa nicht die activity?
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

Pjg

Zitat von: justme1968 das reading in der der aktuelle zustand steht ist power.l
/quote]

Das war der Fehler. Danke. Hab schon fast nicht mehr dran geglaubt, das ich es noch ohne doif schaffe.
BananaPI, CUL 433, Somfy RTS, Hue LWL001, Hue LWB004, HM-CFG-LAN, HM-LC-SW2-FM

Byte09



Zitat von: justme1968 am 19 November 2016, 20:28:22


- das alexaName attribut wird ausgewertet. dazu am besten ein fhem alexa device anlegen: define alexa alexa
  danach gibt es das neue attribut alexaName das statt alias verwendet werden kann.


Danke hierfür ..... super!

Gruss byte

Gesendet von meinem SM-G900F mit Tapatalk