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

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

Vorheriges Thema - Nächstes Thema

sauserl

Gibt es schon einen Thread für Fragen zur Einrichtung?
Bei mir läuft es leider immer noch nicht.

stera

Ja kann gerne aufgemacht werden.

Ich glaube die größten Unterschiede und Probleme entstehen momentan mit den verschiedenen Systemen.

Raspberry 1B - macht bei mir noch immer Problem.

Wenn ich es jetzt nicht zum laufen bekomme, versuche ich es auf meinen Raspberry2. Wollte das eigentlich erstmal gerne auf dem TestRaspi zum laufen bringen..

Gruß,
SteRa

harry66

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

stera

Das habe ich auch schon gemacht. Leider ging es bei mir auch nicht  :(

ThommyTom

Hallo,

habe es jetzt geschafft, bei Amazon alles einzurichten. Weiterhin habe ich FHEM eingerichtet und Alexa-Fhem eingerichtet. Wenn ich jetzt starte passiert folgendes:

root@bananapi:~/alexa-fhem# ./bin/alexa
[Wed Nov 09 2016 19:17:35 GMT+0100 (CET)] using /root/.alexa/config.json
[Wed Nov 09 2016 19:17:35 GMT+0100 (CET)] ---
[Wed Nov 09 2016 19:17:35 GMT+0100 (CET)] Trying UPnP NAT-PMP ...
[Wed Nov 09 2016 19:17:35 GMT+0100 (CET)] Fetching FHEM devices...
starting longpoll: http://192.168.0.23:8083/fhem.pl?XHR=1&inform=type=status;addglobal=1;filter=.*;since=null;fmt=JSON&timestamp=1478715457060
[Wed Nov 09 2016 19:17:37 GMT+0100 (CET)] [FHEM] Checking genericDeviceType...
[Wed Nov 09 2016 19:17:37 GMT+0100 (CET)] [FHEM]   executing: http://192.168.0.23:8083/fhem?cmd=%7BAttrVal(%22global%22,%22userattr%22,%22%22)%7D&XHR=1
[Wed Nov 09 2016 19:17:37 GMT+0100 (CET)] [FHEM] Fetching FHEM devices...
[Wed Nov 09 2016 19:17:37 GMT+0100 (CET)] [FHEM] fetching: http://192.168.0.23:8083/fhem?cmd=jsonlist2%20room=alexa&XHR=1
Server listening on: https://:::3000
[Wed Nov 09 2016 19:17:38 GMT+0100 (CET)] [FHEM] got: 2 results
[Wed Nov 09 2016 19:17:38 GMT+0100 (CET)] [FHEM] PS3 is switch
[Wed Nov 09 2016 19:17:38 GMT+0100 (CET)] [FHEM] PS3 has
[Wed Nov 09 2016 19:17:38 GMT+0100 (CET)] [FHEM]   On [state;on,off]
  2016-11-09 19:17:38 caching: PS3-state: off
[Wed Nov 09 2016 19:17:38 GMT+0100 (CET)] [FHEM] SchlafzimmerTV is switch
[Wed Nov 09 2016 19:17:38 GMT+0100 (CET)] [FHEM] SchlafzimmerTV has
[Wed Nov 09 2016 19:17:38 GMT+0100 (CET)] [FHEM]   FirmwareRevision [D-firmware]
[Wed Nov 09 2016 19:17:38 GMT+0100 (CET)] [FHEM]   On [state;on,off]
  2016-11-09 19:17:38 caching: SchlafzimmerTV-D-firmware: 2.4
  2016-11-09 19:17:38 caching: SchlafzimmerTV-state: off



Danach ist aber Feierabend.. Es bleibt bei dem caching stehen und weiter nichts!? Gehe ich in die Alexa-App finde ich keine Geräte!?

Vielleicht weiss jemand einen Rat!?

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

kjmEjfu

Hi,

mal eine blöde Frage: bei den Jungs, die am Sonos-Skill arbeiten, ist auch ein SQS-Proxy zu finden. Der macht es anscheinend die Portfreigabe/-weiterleitung überflüssig. Da die mir grundsätzlich etwas Bauchschmerzen macht, wäre so ein Proxy auch für FHEM vielleicht eine Idee?
https://github.com/rgraciano/echo-sonos/tree/master/echo-sqs-proxy

Oder macht das keinen Sinn?

Grüße.
kjmEjfu
Migriere derzeit zu Home Assistant

prodigy7

So, Thread für Installation und Co eröffnet: https://forum.fhem.de/index.php/topic,60452.0.html

@justme1968: Könntest du im Startthread verlinken damit man das gleich findet?

stera

Vielen Dank für den neuen thread. Glaube ich hab mein Fehler gefunden und mache morgen da weiter.

Hab nochmal eine andere Frage. Wenn jetzt der custom skill funktioniert, würde ja auch https anstatt lambda funktionieren oder? Liegt es dann nur noch am  Zertifikat. Ein Kollege hat ip symcom, dort funktioniert der Austausch mit alexa schon auch echt gut über https...  Gruß SteRa

Gesendet von meinem SM-G800F mit Tapatalk


Tommy82

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.

Hi, irgendwie klappt das bei mir noch nicht.
Ich hab im Skript die Zeile wo fhem-alex liegt gegen meinen Speicherort getauscht, ansonsten bin ich deiner Anleitung gefolgt, beim Anlegen des Doif, bekomme ich diese Meldung:



FHEM.Alexa.DOIF DOIF: expected DOELSEIF or DOELSE: \ 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 &")})


Das doif sieht dann so aus.

Internals:
   CFGFN
   DEF        ([FHEM.Alexa] eq "start")
   NAME       FHEM.Alexa.DOIF
   NR         36466
   NTFY_ORDER 50-FHEM.Alexa.DOIF
   STATE      cmd_1
   TYPE       DOIF
   Helper:
     Dblog:
       Cmd:
         Mydblog:
           TIME       1478719626.93363
           VALUE      1
       Cmd_event:
         Mydblog:
           TIME       1478719626.93363
           VALUE      FHEM.Alexa
       Cmd_nr:
         Mydblog:
           TIME       1478719626.93363
           VALUE      1
       Error:
         Mydblog:
           TIME       1478719626.93363
           VALUE      {system ("sudo /etc/init.d/alexa start > /dev/null 2>&1 &")}
       State:
         Mydblog:
           TIME       1478719626.93363
           VALUE      cmd_1
   Readings:
     2016-11-09 20:27:06   Device          FHEM.Alexa
     2016-11-09 20:27:06   cmd             1
     2016-11-09 20:27:06   cmd_event       FHEM.Alexa
     2016-11-09 20:27:06   cmd_nr          1
     2016-11-09 20:27:06   e_FHEM.Alexa_STATE start
     2016-11-09 20:27:06   error           {system ("sudo /etc/init.d/alexa start > /dev/null 2>&1 &")}: -1
     2016-11-09 20:27:06   state           cmd_1
   Condition:
     0          InternalDoIf($hash,'FHEM.Alexa','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "start"
   Devices:
     0           FHEM.Alexa
     all         FHEM.Alexa
   Do:
     0:
       0          set FHEM.Alexa on, {system ("sudo /etc/init.d/alexa start > /dev/null 2>&1 &")}
     1:
   Helper:
     event      start
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   FHEM.Alexa
     timerevent start
     triggerDev FHEM.Alexa
     timerevents:
       start
       on
     timereventsState:
       state: start
     triggerEvents:
       start
       on
     triggerEventsState:
       state: start
   Internals:
     0           FHEM.Alexa:STATE
     all         FHEM.Alexa:STATE
   Itimer:
   Readings:
   Regexp:
     0:
     All:
   State:
   Trigger:
Attributes:
   room       AlexaRoom


Ich bekomme bei Status aber nichts angezeigt und wenn ich start drücke passiert auch nichts.

Im Fhem LOg steht dann
2016.11.09 20:21:36.522 1: 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 &")}): FHEM.Alexa.DOIF DOIF: expected DOELSEIF or DOELSE: \ 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 &")})
2016.11.09 20:26:57.678 2: FHEM.Alexa.DOIF: {system ("sudo /etc/init.d/alexa start > /dev/null 2>&1 &")}: -1
2016.11.09 20:27:06.893 2: FHEM.Alexa.DOIF: {system ("sudo /etc/init.d/alexa start > /dev/null 2>&1 &")}: -1


Was mache ich falsch?
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

IceTee

#294
nodes Install - hat funktionier mit der Anleitung von ceimler!
npm install - hat sofort funktioniert

.createKey.sh - permission denied - dann von 0644 auf 0777 geändert und Passwort vergeben, danach wieder auf 0644 gestellt. Check!

Die Datei config-sample.json nach ~/.alexa/config.json...
mkdir ~/.alexa anlegen. dann mit cp config.json.sample  ~/.alexa/config.json kopieren

bin/alexa :Permission denied!
chown -R pi /opt/alexa-fhem/bin : Permission denied!
die Datei alexa auf 0777 geändert: funktioniert, bricht nicht ab, aber FHEM funktioniert nicht mehr!

Zitatpi@raspberrypi:/opt/alexa-fhem $ bin/alexa
[11/9/2016, 8:26:05 PM] using /home/pi/.alexa/config.json
[11/9/2016, 8:26:05 PM] ---
[11/9/2016, 8:26:05 PM] Trying UPnP NAT-PMP ...
[11/9/2016, 8:26:05 PM] Fetching FHEM devices...
starting longpoll: http://192.168.178.47:8083/fhem.pl?XHR=1&inform=type=status;addglobal=1;filter=.*;since=null;fmt=JSON&timestamp=1478719567361
[11/9/2016, 8:26:07 PM] [FHEM] Checking genericDeviceType...
[11/9/2016, 8:26:07 PM] [FHEM]   executing: http://192.168.178.47:8083/fhem?cmd=%7BAttrVal(%22global%22,%22userattr%22,%22%22)%7D&XHR=1
[11/9/2016, 8:26:07 PM] [FHEM] Fetching FHEM devices...
[11/9/2016, 8:26:07 PM] [FHEM] fetching: http://192.168.178.47:8083/fhem?cmd=jsonlist2%20room=alexa&XHR=1
longpoll error: Error: connect ECONNREFUSED 192.168.178.47:8083, retry in: 5000msec
[11/9/2016, 8:26:07 PM] [FHEM] There was a problem connecting to FHEM (http://192.168.178.47:8083/fhem?cmd=%7BAttrVal(%22global%22,%22userattr%22,%22%22)%7D&XHR=1).
[11/9/2016, 8:26:07 PM] [FHEM] There was a problem connecting to FHEM (http://192.168.178.47:8083/fhem?cmd=%7BAttrVal(%22global%22,%22userattr%22,%22%22)%7D&XHR=1):Error: connect ECONNREFUSED 192.168.178.47:8083
[11/9/2016, 8:26:07 PM] [FHEM] There was a problem connecting to FHEM
NAT-PMP failed: Error: Request failed: 500
Server listening on: https://:::3000
starting longpoll: http://192.168.178.47:8083/fhem.pl?XHR=1&inform=type=status;addglobal=1;filter=.*;since=null;fmt=JSON&timestamp=1478719572713
longpoll error: Error: connect ECONNREFUSED 192.168.178.47:8083, retry in: 10000msec
starting longpoll: http://192.168.178.47:8083/fhem.pl?XHR=1&inform=type=status;addglobal=1;filter=.*;since=null;fmt=JSON&timestamp=1478719582741
longpoll error: Error: connect ECONNREFUSED 192.168.178.47:8083, retry in: 15000msec
starting longpoll: http://192.168.178.47:8083/fhem.pl?XHR=1&inform=type=status;addglobal=1;filter=.*;since=null;fmt=JSON&timestamp=1478719597770
longpoll error: Error: connect ECONNREFUSED 192.168.178.47:8083, retry in: 20000msec
starting longpoll: http://192.168.178.47:8083/fhem.pl?XHR=1&inform=type=status;addglobal=1;filter=.*;since=null;fmt=JSON&timestamp=1478719617808
longpoll error: Error: connect ECONNREFUSED 192.168.178.47:8083, retry in: 25000msec
^C[11/9/2016, 8:27:06 PM] Got SIGINT, shutting down Alexa...
[11/9/2016, 8:27:06 PM] Stopping UPnP NAT-PMP ...
Wenn ich mit STRG+C den "Server" abbreche, kann ich den FHEM-Server aber auch nicht mehr unter der IP im Browser aufrufen.

Was habe ich falsch gemacht?
Auch wenn ich reboote und den Alexa-Server nicht starte, funktioniert der FHEM-Server nicht mehr...

prodigy7

Kopiere mal die URL raus und rufe die mal auf mit wget <url>
Geht wget nicht, nimm curl, geht curl nicht nimm w3m (irgendetwas von alle dem wird gehen). Dann siehst du, ob die URL überhaupt von dem Host aus erreichbar ist

IceTee

#296
Du meinste mit ssh auf dem Pi?
Zitatpi@raspberrypi:~ $ wget  http://192.168.178.47:8083/fhem.pl?XHR=1&inform=type=status;addglobal=1;filter=.*;since=null;fmt=JSON&timestamp=1478719572713
[1] 628
[2] 629
pi@raspberrypi:~ $ --2016-11-09 20:44:55--  http://192.168.178.47:8083/fhem.pl?XHR=1
Connecting to 192.168.178.47:8083... failed: Connection refused.
guck mal über TV, was der PI zeigt, wenn er startet. Muss ja ne Meldung ausgeben, warum er FHEM nicht starten kann.

PI sagt: FAILED to start LSB : FHEM Server

Wenn ich kein "screen" habe, kann LINUX/PI dann immer nur einen Server starten? Die Frage eines daU (dümmster, anzunehmender User)  8)

Das ist der gleiche Fehler, den ich vorher auch schon hatte, als ich mit den "nodes" rumprobiert habe. Diesmal habe ich aber bei jedem Schritt ausprobiert, ob der Server noch läuft und er lief die ganze Zeit, bis ich Alexa gestartet habe.

stera

Die meisten Abstürze passieren bei Fhem bzw komplett Abstürze vom pi durch log Dateien auf der sd Karte.Ich habe alle logs verlagert auf einem Usb Stick sowie die fhem.cfg über symlink im Netzwerk liegen. Seit dem ist fhem seit über einem Jahr nicht mehr abgestürzt. Nur mal so als tip, auch wenn es daran vll jetzt nicht lag.

Gesendet von meinem SM-G800F mit Tapatalk


RedCreek

Zitat von: Tommy82 am 09 November 2016, 20:34:45
Hi, irgendwie klappt das bei mir noch nicht.
Ich hab im Skript die Zeile wo fhem-alex liegt gegen meinen Speicherort getauscht, ansonsten bin ich deiner Anleitung gefolgt, beim Anlegen des Doif, bekomme ich diese Meldung:



FHEM.Alexa.DOIF DOIF: expected DOELSEIF or DOELSE: \ 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 &")})


Was mache ich falsch?

Hi Thommy82,

ich hab mal ein Bild von meinem Define angehängt. Ich vermute du hast den DOIF nicht korrekt angelegt. Fang mal mit einer zeile an und ändere/erweitere dann um weitere Zeilen im FHEM Frontend.

justme1968

@olli84: aktuell funktionieren nur die im ersten post angebenden kommandos:
Zitat6. "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"
   "Alexa, erhöhe Gerätename um Anzahl Prozent"
   "Alexa, reduziere Gerätename um Anzahl Prozent"
   "Alexa, erhöhe Gerätename um Anzahl Grad"
   "Alexa, reduziere Gerätename um Anzahl Grad"
alexa home automation kann (noch) nicht mehr. mit dem custom skill der demnächst dazu kommt wird (hoffentlich) das meiste gehen da auch mit siri geht. d.h. abfragen und schalten von geräte typen in bestimmten räumen. ohne das es einer zusätzlichen konfiguration braucht. also dinge wie: mach die lampen in xxx an. wie warm ist es im haus: liefert alle temperturen, wie warm ist es im 1.og liefert die temperaturen dort, wie warm ist es im wohnzimmer liefert nur die temperatur da. usw.

@ThommyTom: mach bitte im anderen thread weiter. es liegt am port forwarding.

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

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