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

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

Vorheriges Thema - Nächstes Thema

Chaos

Hi,

meine echos sind endlich da, aber leider bekommt amazon es nicht hin meine aws account freizuschalten...

@justme1968
könnte man nicht theoretisch auf Lambda verzichten und das Ganze direkt auf dem FHEM mit drauf packen? Ist das zu kompliziert?

MfG
Manuel

ThommyTom

Hallo zusammen,

ich habe da mal eine Frage zur Installation bzw. zu einem der benötigten Dienste.

Unter Punkt "AWS Lambda Funktion anlegen" steht, dass ich zu der angezeigten URL gehen soll. Ok habe ich gemacht?? Und nu? Da steht anmelden und ich soll meine KK-Daten angeben!? Weiterhin das ich das Konto für 12 Monate kostenlos testen kann!?

Wie gehe ich da vor? Wo melde ich mich da genau an und kostet mich der Account etwas? Ich war da etwas überfordert! :-\

vielen Dank für Eure Hilfe

Gruß Thommy
Intel NUC
Harmony Smart Control
div. HUE Komponenten
div. HM-IP Komponenten
1x Kühlschrank voll mit Bier

AmunRe

#152
Zitat von: AmunRe am 07 November 2016, 17:02:47
Hue steuern geht ja schon direkt mit Alexa. Wenn man Szenen steuern möchte muss man noch den hue skill nehmen


@justme1968 wie mach ich raumspezifische Alias

Gesendet von iPhone mit Tapatalk

Also neuer Stand, habe alles in Gruppen gepackt, gleich benannt und einfrig getestet.

Was noch fehlt ist, den Dienst im Hintergrund laufen zu lassen, bei mir geht alles im moment nur mit geöffneter Konsole

Wenn ich z.B. Fernseher mehrfach habe und in vershciedenen Räumen, geht das nicht. Sie sagt mir, ich solle nur einen namen haben und bitte neu suchen.

Desweiteren sagt sie auch, die Gruppen wären zum schalten von mehreren Geräten.

Und der Alias Name darf aus zwei Teilen bestehen, funktioniert hier sehr gut mit "Fernseher Wohnzimmer"
4 x Echo Dot, HMLAN Gateway, und diverse HM Komponenten, Philips Hue + OSRAM Plugs

mikail86

#153
Tolle Arbeit!

Habe das heute getestet und bin begeistert.
Lampen und Heizungen lassen sich schalten und stellen.

Habe noch eine Anregung.
Bei MAX! stellt sich die eingestellte Temperatur ein, verlässt aber den Auto Modus und wechselt zum Manuellen Modus.
Das kann man unterbinden wenn vor der Temperatur ein "auto" mitgeschickt wird, wenn ich mich richtig erinnere.
Ob das möglich ist, zu integrieren?

Zitat von: AmunRe am 07 November 2016, 19:10:43

Was noch fehlt ist, den Dienst im Hintergrund laufen zu lassen, bei mir geht alles im moment nur mit geöffneter Konsole

Moin.
Schau dir mal den Befehl "screen" an. Damit kannst du alles im Hintergrund  laufen lassen

harry66

ZitatWas noch fehlt ist, den Dienst im Hintergrund laufen zu lassen, bei mir geht alles im moment nur mit geöffneter Konsole

einfach ./bin/alexa &

Gruß Rolf
BananaPI, RPI, nanoCUL433, RCS 1000 N Comfort, Dect200, Powerline546E, MAX!Cube, 7xMAX! HT's,3xMAX!FK HMLAN, HM-LC-Bl1PBU-FM, HM-LC-Sw4-Ba-PCB Relay Karte,  LW12, Sqeezelite, TabletUI=Kindel 8" FireHD+Handy,AmazonEcho

IceTee

Hallo! Ich bin leider mit der Installation noch nicht sehr weit gekommen. Da ich noch nicht so fit in Linux bin, hat es schon bei Punkt 4 im Wiki nicht geklappt.
Gefunden habe ich hier das hier: sudo apt-get install npm, ich dachte mit der Installation von nodejs-legacy wäre das erledigt. Nach "npm install" kamen zwar einige "warnings" aber ich gehe davon aus, das es ok ist.

Punkt 5 hat dann auch nicht funktioniert. Ich musst erst die Rechte anpassen und dann konnte ich./createKey.sh ausführen.

Jetzt bin ich also bei Punkt 6:
Die Datei config.json.sample nach ~/.alexa/config.json kopieren und die....
Die Config habe ich schon angepasst, aber ich weiß nicht, wohin ich die Datei verschieben soll. Ein Ordner mit .alexa existiert nicht oder ich kann ihn in WinSCP nicht sehen (wegen des ".").

Kann mir jemand den Befehl sagen, wie ich die Datei dahinbekomme, wo sie in soll. Danke.

Tommy82

Hi,
juhu meine Geräte sind nun endlich da, ich hab die iptables gelöscht und neugesetztund siehe da, ich komme durch und mein Test Gerät wird gefunden :-)

Allerdings lässt es sich noch nicht anschaltem, was wahrscheinlich am zu "einfachem" :-) Namen liegt.

ZitatFritzDect_Wohnzimmerschrank

Wie klappt das jetzt mit dem Alias? Hab dem Device jetzt mal den Alias Wohnzimmerschrank gegeben
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

AmunRe

Zitat von: Tommy82 am 07 November 2016, 20:03:27
Hi,
juhu meine Geräte sind nun endlich da, ich hab die iptables gelöscht und neugesetztund siehe da, ich komme durch und mein Test Gerät wird gefunden :-)

Allerdings lässt es sich noch nicht anschaltem, was wahrscheinlich am zu "einfachem" :-) Namen liegt.

Wie klappt das jetzt mit dem Alias? Hab dem Device jetzt mal den Alias Wohnzimmerschrank gegeben
Wenn Du in deiner Alexa App schaust, welcher Name steht den in dick da? Also obere Zeile.
4 x Echo Dot, HMLAN Gateway, und diverse HM Komponenten, Philips Hue + OSRAM Plugs

Tommy82

Hi,
FritzDect_Wohnzimmerschrank steht in dick da
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

AmunRe

#159
Zitat von: Tommy82 am 07 November 2016, 20:29:34
Hi,
FritzDect_Wohnzimmerschrank steht in dick da

les mal weiter vor hier im Thread. Das problem hatte ich auch, musst was an deiner Server.js ändern. Er ruft bei dir nicht den Alias als Rufnamen auf.

justme1968 sagte:
Zitatdu kannst in lib/server.js in zeile 290 beim friendlyName device.name wieder gegen device.alias austauschen. im nächsten update ist es gefixed.
4 x Echo Dot, HMLAN Gateway, und diverse HM Komponenten, Philips Hue + OSRAM Plugs

justme1968

es gibt ganz oben einen neue version 0.0.6 in der die aliase repariert sind.

das automatisch starten geht ziemlich gut mit node forever. anleitung kommt noch.

@dk3572: wie oben geschrieben mindestens 0.12.7. deine node version ist zu alt.

@Chaos: auf lambda kann man bei alexa home automation nicht verzichten. das ist hier die einzige option.
  für den custom skill der demnächst noch kommt geht es auch ohne aws lambda.

@AmunRe: laut doku müssen namen eigentlich nicht eindeutig sein. ich probiere es mal.

@mikail86: das ist über homebridgeMapping konfigurierbar. schau mal im homebridge thread. da gibt es beispiele.

@IceTee: welche rechte hast du angepasst? das sollte nicht nötig sein. für das directory per ssh auf den rechner, mkdir .alexa

@Tommy82: hab die aliase gerade repariert

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

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

AmunRe

Zitat von: harry66 am 07 November 2016, 19:49:22
einfach ./bin/alexa &

Gruß Rolf

Ich dachte eher so an ein Systemscript.

Sowas wie bei der Homebridge:

#!/bin/sh
### BEGIN INIT INFO
# Provides: homebridge
# Required-Start: $network $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time for homebridge
# Description: Enable service provided by daemon.
### END INIT INFO
export PATH=$PATH:/usr/local/bin
export NODE_PATH=$NODE_PATH:/usr/local/lib/node_modules
PID=`pidof homebridge`
case "$1" in
start)
if ps -p $PID > /dev/null 2>&1; then
        echo "Homebridge is already running"
else
        su - pi -c "homebridge > /dev/null 2>&1 &"
        echo "Homebridge starting"
        $0 status
fi
;;
stop)
if ! ps -p $PID > /dev/null 2>&1; then
        echo "Homebridge is not running"
else
        kill $PID
        echo "Homebridge closed"
fi
;;
restart)
if ! ps -p $PID > /dev/null 2>&1; then
        $0 start
else
        $0 stop
        $0 start
fi
;;
status)
if ps -p $PID > /dev/null 2>&1; then
        echo "Homebridge is running PID $PID"
else
        echo "Homebridge is not running"
fi
;;
*)
echo "Usage: $0 {start|stop|status|restart}"
exit 1
;;
esac
exit 0


Edit:

Dann warte ich wohl auf Node Forever =)
4 x Echo Dot, HMLAN Gateway, und diverse HM Komponenten, Philips Hue + OSRAM Plugs

Tommy82

Hi,
ok das hab ich gemacht, jetzt steht der alias oben und in dick, allerdings sagt alexa mir das sie kein entsprechendes Gerät bzw. Gruppe finden könnte
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

@Tommy82: stehen die geräte noch in deinen gruppen?

zu den kosten steht hier: https://aws.amazon.com/de/lambda/pricing/ etwas. so wie ich das verstehe sollte es für die private nutzung bei einem anwender weit unter den grenzen bleiben ab denen es etwas kostet.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

RedCreek

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.