[alexa-fhem | Generell] Alles zu Installation und damit verbundenen Problemen

Begonnen von prodigy7, 09 November 2016, 19:42:01

Vorheriges Thema - Nächstes Thema

Stonemuc

Eine Lampe oder ein Rollo steuern. Im Wiki ist dafür ja ein dummy angelegt der dann mit den 3 Parametern belegt ist und dann ein Doif zur eigentlichen Steuerung. Aber was fehlt mir noch, dass das Gerät in meinem Skill gefunden wird und bedienbar ist?
FHEM aus Raspberry PI 3 B+, Haussteuerung auf EnOcean Basis, Tecalor THZ 404eco Wärmepumpe

MadMax-FHEM

Poste doch mal ein list von dem Dummy...
Er muss (laut deinem gepostenen config.json) im Raum "alexa" sein.

Also:

attr DummyName room alexa

Nach dem Anlegen des Dummy nicht vergessen alexa-fhem neu zu starten (da wird dann von alexa-fhem nach neuen Geräten "gesucht") und dann eben per Alexa-App oder per Sprache nach neuen Geräten suchen lassen.

Wichtig beim Dummy: genericDeviceType und setList!

Das DOIF ist ja dann "nur" fhem-seitig...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Stonemuc

Zitat von: MadMax-FHEM am 19 Oktober 2018, 11:26:56
Das mit dem Dummy und DOIF geht NUR wenn du per initd startest.
Dort sind im Startscript die entsprechenden Aufrufe drin, die FEHLEN beim Start mit systemd (was du hast / soweit ich gesehen habe)...

Es gibt aber ein anderes Modul: https://forum.fhem.de/index.php/topic,79952.msg719659.html#msg719659

Gruß, Joachim

wie velinke ich dann mit dem Modul? Also was ist da der Service? Verweise ich auf das serviced startskript oder auf alexa-fhem?

define <name> serviced <Dienst Name> [<user@ip-adresse>]

define Alexa serviced ???
FHEM aus Raspberry PI 3 B+, Haussteuerung auf EnOcean Basis, Tecalor THZ 404eco Wärmepumpe

MadMax-FHEM

Gehört zwar eigentlich in den anderen Thread aber kurz (eh nur Handy grad):

das Startscript heißt verm. alexa.service und liegt in /etc/systemd/system

Daher heißt der Dienst dann verm. alexa...
Kannst das auf der Console ja mal testen (siehe Links)...

https://www.raspberrypi.org/documentation/linux/usage/systemd.md

https://www.elektronik-kompendium.de/sites/raspberry-pi/2002211.htm

Also:

define Alexa serviced alexa

sollte passen.

Ich selbst hab noch initd, daher kann ich hier nur vermuten...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Stonemuc

Wenn ich mit

sudo systemctl status alexa

den Status abfrage, kommt folgender Eintrag - muss ich noch meine Zugangsdaten von FHEM in der json.config hinterlgen?

● alexa.service - Node.js Alexa Server
   Loaded: loaded (/etc/systemd/system/alexa.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2018-10-19 11:05:45 CEST; 24h ago
Main PID: 304 (alexa)
   CGroup: /system.slice/alexa.service
           └─304 alexa

Oct 20 11:13:35 raspberrypi alexa[304]: [2018-10-20 11:13:35] [FHEM]   executing: http://192.168.2.101:8083/fhem?cm
Oct 20 11:13:35 raspberrypi alexa[304]: [2018-10-20 11:13:35] [FHEM] Fetching FHEM devices...
Oct 20 11:13:35 raspberrypi alexa[304]: [2018-10-20 11:13:35] [FHEM] fetching: http://192.168.2.101:8083/fhem?cmd=j
Oct 20 11:13:35 raspberrypi alexa[304]: [2018-10-20 11:13:35] [FHEM] longpoll ended, reconnect in: 30000msec
Oct 20 11:13:35 raspberrypi alexa[304]: [2018-10-20 11:13:35] [FHEM] There was a problem connecting to FHEM (http:/
Oct 20 11:13:35 raspberrypi alexa[304]: [2018-10-20 11:13:35] [FHEM]   401: Authorization Required
Oct 20 11:13:35 raspberrypi alexa[304]: [2018-10-20 11:13:35] [FHEM] There was a problem connecting to FHEM (http:/
Oct 20 11:13:35 raspberrypi alexa[304]: [2018-10-20 11:13:35] [FHEM]   401: Authorization Required
Oct 20 11:13:35 raspberrypi alexa[304]: [2018-10-20 11:13:35] [FHEM] There was a problem connecting to FHEM
Oct 20 11:13:35 raspberrypi alexa[304]: [2018-10-20 11:13:35] [FHEM]   401: Authorization Required
FHEM aus Raspberry PI 3 B+, Haussteuerung auf EnOcean Basis, Tecalor THZ 404eco Wärmepumpe

MadMax-FHEM

Natürlich.
Siehe alexa-fhem Wiki...
...denke etwas weiter unten...

Kurz da Handy...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Stonemuc

Wenn ich das aber einfüge, läuft alexa nicht mehr:


Oct 20 14:11:36 raspberrypi systemd[1]: alexa.service: Failed with result 'exit-code'.
pi@raspberrypi:~ $ sudo systemctl status alexa
● alexa.service - Node.js Alexa Server
   Loaded: loaded (/etc/systemd/system/alexa.service; enabled; vendor preset: enabled)
   Active: activating (auto-restart) (Result: exit-code) since Sat 2018-10-20 14:11:36 CEST; 9s ago
  Process: 828 ExecStart=/opt/fhem/alexa-fhem/bin/alexa -U /home/pi/.alexa (code=exited, status=1/FAILURE)
Main PID: 828 (code=exited, status=1/FAILURE)

Oct 20 14:11:36 raspberrypi systemd[1]: alexa.service: Failed with result 'exit-code'.
pi@raspberrypi:~ $ sudo systemctl status alexa
● alexa.service - Node.js Alexa Server
   Loaded: loaded (/etc/systemd/system/alexa.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2018-10-20 14:11:46 CEST; 1s ago
Main PID: 889 (alexa)
   CGroup: /system.slice/alexa.service
           └─889 alexa

Oct 20 14:11:46 raspberrypi systemd[1]: Started Node.js Alexa Server.


Uwenn ich 6 x den Stats checke, gibt er mir 5 x den Fehler...über den Port 3000 ist auh nichts mehr erreichbar. Wenn ich die User Sache weglasse,  geht es, aber er bekommt keine Verbindung zu FHEM
FHEM aus Raspberry PI 3 B+, Haussteuerung auf EnOcean Basis, Tecalor THZ 404eco Wärmepumpe

MadMax-FHEM

Dann mach doch zum Test einen weiteren Webzugang in fhem ohne irgendwelchen User/Passwort und ohne ssl...

Wenn das komplett geht, also inkl. Geräte finden und steuern über Alexa, dann mal wieder das mit User/Passwort etc.

Vielleicht auch mal noch mal manuell von der Console starten um zu sehen welcher Fehler kommt...

Oder per journal die Fehler beim automatischen Start ausgeben lassen...

Wie sieht die config.json mit User/Passwort aus?
Nutzt du ssl?
(ohne macht eigentlich mit User/Passwort wenig Sinn)
Hast du das auch entsprechend eingetragen?

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Stonemuc

Zitat von: MadMax-FHEM am 20 Oktober 2018, 15:10:10
Dann mach doch zum Test einen weiteren Webzugang in fhem ohne irgendwelchen User/Passwort und ohne ssl...

Wenn das komplett geht, also inkl. Geräte finden und steuern über Alexa, dann mal wieder das mit User/Passwort etc.

Vielleicht auch mal noch mal manuell von der Console starten um zu sehen welcher Fehler kommt...

Oder per journal die Fehler beim automatischen Start ausgeben lassen...

Wie sieht die config.json mit User/Passwort aus?
Nutzt du ssl?
(ohne macht eigentlich mit User/Passwort wenig Sinn)
Hast du das auch entsprechend eingetragen?

Gruß, Joachim

Siehst du...daran wird's liegen...ich hab zwar ssl eingerichtet, aber nicht für meinen normalen Webzugang, sondern nur für den IFTTT Zugang um über Alexa per Weblink zu steueren. Daran liegt's vermutlich. Ich müsste meinen normalen Zugang noch über ssl absichern oder vermutlich den Eintrag bzgl. ssl aus der json.config löschen.


{
    "alexa": {
        "port": 3000,
        "name": "FHEM_AlexaSKill",
        "keyFile": "./key.pem",
        "certFile": "./cert.pem",
        "nat-pmp": "192.168.2.1",
        "nat-upnp": false,
        "applicationId": "amzn1.ask.skill.b7bbdeaf-a325-4d60-9645-7c25ef5e39a7",
        "oauthClientID": "amzn1.application-oa2-client.38134c9037b04e2684331be403db9d18 ",
        "permissions": {"<skill-id>": { "client_id": "xyz", "client_secret": "123"}}
    },
   
    "connections": [
        {
            "name": "FHEM",
            "server": "192.168.2.101",
            "port": "8083",
            "webname": "fhem",
            "filter": "room=alexa",
"auth": {"user": "fhem", "pass": "fhempassword"},
"ssl":true

        }
    ]
}


Und vmtl. muss einfach das ssl raus....
FHEM aus Raspberry PI 3 B+, Haussteuerung auf EnOcean Basis, Tecalor THZ 404eco Wärmepumpe

MadMax-FHEM

Wenn du nur User/Passwort hast ohne ssl, dann nat. auch ohne ssl konfigurieren, also ssl=false...
(aber User/Passwort ohne ssl!?)

Oder halt testweise weiterer Webzugang "ohne alles".
So kann dann getestet werden, ob es generell geht...

EDIT: die Einträge bzgl. natpmp etc. gehen jetzt/stören nicht mehr?

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Stonemuc

Ja, das mit dem natpmp ist gelöst. Das mit dem ssl kann ich momentan nicht testen, bin bis 3 Uhr in der Arbeit
FHEM aus Raspberry PI 3 B+, Haussteuerung auf EnOcean Basis, Tecalor THZ 404eco Wärmepumpe

Stonemuc

Das ist wie verhext, ich bekomme es einfach nicht zum laufen. jetzt hab ich per ssl und Benutzerkennung Zugriff, aber er gibt folgenden Fehler aus und auf Port 3000 ist Alexa auch nicht zu erreichen:


pi@raspberrypi:~ $ sudo systemctl status alexa
● alexa.service - Node.js Alexa Server
   Loaded: loaded (/etc/systemd/system/alexa.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since Mon 2018-10-22 08:51:10 CEST; 8min ago
  Process: 297 ExecStart=/opt/fhem/alexa-fhem/bin/alexa -U /home/pi/.alexa (code=exited, status=0/SUCCESS)
Main PID: 297 (code=exited, status=0/SUCCESS)

Oct 22 08:51:10 raspberrypi alexa[297]:     at Request.self.callback (/opt/fhem/alexa-fhem/node_modules/request/request.js:185:22)
Oct 22 08:51:10 raspberrypi alexa[297]:     at emitTwo (events.js:126:13)
Oct 22 08:51:10 raspberrypi alexa[297]:     at Request.emit (events.js:214:7)
Oct 22 08:51:10 raspberrypi alexa[297]:     at Request.<anonymous> (/opt/fhem/alexa-fhem/node_modules/request/request.js:1161:10)
Oct 22 08:51:10 raspberrypi alexa[297]:     at emitOne (events.js:116:13)
Oct 22 08:51:10 raspberrypi alexa[297]:     at Request.emit (events.js:211:7)
Oct 22 08:51:10 raspberrypi alexa[297]:     at Gunzip.<anonymous> (/opt/fhem/alexa-fhem/node_modules/request/request.js:1083:12)
Oct 22 08:51:10 raspberrypi alexa[297]: [2018-10-22 08:51:10] [FHEM] failed to parse Forbidden command jsonlist2.
Oct 22 08:51:10 raspberrypi alexa[297]: [2018-10-22 08:51:10] [FHEM] got: undefined results
Oct 22 08:51:10 raspberrypi alexa[297]: [2018-10-22 08:51:10] [FHEM] genericDeviceType attribute was not known. please restart.
FHEM aus Raspberry PI 3 B+, Haussteuerung auf EnOcean Basis, Tecalor THZ 404eco Wärmepumpe

MadMax-FHEM

Starte doch mal in der Console (vorher Dienst beenden bzw. alexa killen [sicherheitshalber/falls läuft]), damit man mehr sieht oder Log per journalcontrol (weiter oben mal verlinkt)...

Hast du den Webzugang abgesichert bzw. eingeschränkt!?
Also nur bestimmte Kommandos zugelassen (z.B. nur get etc.)...

Mach doch mal (wie schon mal vorgeschlagen) einen weiteren Webzugang ohne irgendwas zum Testen...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Stonemuc

So..hier mal der Auszug aus dem manuellen Start:

pi@raspberrypi:/opt/fhem/alexa-fhem $ ./bin/alexa
[2018-10-22 10:12:34] using /home/pi/.alexa/config.json
[2018-10-22 10:12:34] ---
[2018-10-22 10:12:34] this is alexa-fhem 0.4.4
[2018-10-22 10:12:34] Fetching FHEM devices...
[2018-10-22 10:12:34] [FHEM] starting longpoll: https://192.168.2.101:8088/webhook?XHR=1&inform=type=status;addglobal=1;filter=.*;since=null;fmt=JSON&timestamp=1540195954664
[2018-10-22 10:12:34] Server listening on: https://:::3000
[2018-10-22 10:12:34] [FHEM] Checking devices and attributes...
[2018-10-22 10:12:34] [FHEM]   executing: https://192.168.2.101:8088/webhook?cmd=%7BAttrVal(%22global%22,%22userattr%22,%22%22)%7D&XHR=1
[2018-10-22 10:12:34] [FHEM]   executing: https://192.168.2.101:8088/webhook?cmd=jsonlist2%20TYPE=alexa&XHR=1
[2018-10-22 10:12:34] [FHEM] Fetching FHEM devices...
[2018-10-22 10:12:34] [FHEM] fetching: https://192.168.2.101:8088/webhook?cmd=jsonlist2%20room=alexa&XHR=1
[2018-10-22 10:12:35] [FHEM]   executing: https://192.168.2.101:8088/webhook?cmd=%7B%20addToAttrList(%20%22homebridgeMapping:textField-long%22%20)%20%7D&XHR=1
[2018-10-22 10:12:35] [FHEM] homebridgeMapping attribute created.
[2018-10-22 10:12:35] [FHEM]   executing: https://192.168.2.101:8088/webhook?cmd=%7BaddToAttrList(%20%22genericDeviceType:security,ignore,switch,outlet,light,blind,thermometer,thermostat,contact,garage,window,lock%22%20)%20%7D&XHR=1
[2018-10-22 10:12:35] [FHEM] SyntaxError: Unexpected token F in JSON at position 0
    at JSON.parse (<anonymous>)
    at FHEM.<anonymous> (/opt/fhem/alexa-fhem/lib/fhem.js:1110:34)
    at Request._callback (/opt/fhem/alexa-fhem/lib/fhem.js:1387:27)
    at Request.self.callback (/opt/fhem/alexa-fhem/node_modules/request/request.js:185:22)
    at emitTwo (events.js:126:13)
    at Request.emit (events.js:214:7)
    at Request.<anonymous> (/opt/fhem/alexa-fhem/node_modules/request/request.js:1161:10)
    at emitOne (events.js:116:13)
    at Request.emit (events.js:211:7)
    at Gunzip.<anonymous> (/opt/fhem/alexa-fhem/node_modules/request/request.js:1083:12)
[2018-10-22 10:12:35] [FHEM] failed to parse Forbidden command jsonlist2.
[2018-10-22 10:12:35] [FHEM] got: undefined results
[2018-10-22 10:12:35] [FHEM] genericDeviceType attribute was not known. please restart.
FHEM aus Raspberry PI 3 B+, Haussteuerung auf EnOcean Basis, Tecalor THZ 404eco Wärmepumpe

MadMax-FHEM

Da bin ich jetzt leider auch überfragt.

Hast du nun ein Alexa-Device definiert?
Nicht dass irgendwas mit den selbstdefinierten userAttr etc. schief ist.

Poste doch mal ein list des FhemWeb und eines Gerätes welches gefunden werden sollte...

Hast du nun ein eigenes FhemWeb (ohne irgendwas spezielles) zum Test angelegt!?

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)