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

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

Vorheriges Thema - Nächstes Thema

MadMax-FHEM

Zitat von: blane am 27 Juli 2018, 08:10:00
Nicht aber über den Port 3000, obwohl dieser in FHEM freigegeben ist.

Diese Freigabe musst du natürlich entfernen (wie hast du das in fhem "freigegeben"? Web-Instanz mit Port 3000?)!!

Eigentlich müsste alexa-fhem beim Start meckern, wenn der Port schon (von fhem) belegt ist...

alexa-fhem startet aber fehlerfrei!?
Weil sonst "lauscht" ja niemand (bzw. alexa-fhem) auf Port 3000...

EDIT: und hat so (erstmal) auch nichts mit alexa-fhem zu tun, außer es läuft nicht sauber. Dann erst das in diesem Thread sauber zum Laufen bringen. Für die Reverse-Proxy-Geschichte evtl. einen neuen gezielten Thread aufmachen. Bzw. schon mal im Forum/google gesucht? Es gibt doch bestimmt bereits Threads zum Thema alexa-fhem und Reverse-Proxy...

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)

Amenophis86

Dann lass mal den Reverse ausvor. Leite mal den Port 3000 direkt auf dein FHEM Gerät auf dem alexa-fhem läuft und da auf den Port 3000. Geht das? Und wenn das nicht geht, hast du überhaupt eine öffentliche IPv4 Adresse und funktioniert hier generell dein dynDNS zB?
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

blane

Zitat von: Amenophis86 am 27 Juli 2018, 10:41:16
Dann lass mal den Reverse ausvor. Leite mal den Port 3000 direkt auf dein FHEM Gerät auf dem alexa-fhem läuft und da auf den Port 3000. Geht das? Und wenn das nicht geht, hast du überhaupt eine öffentliche IPv4 Adresse und funktioniert hier generell dein dynDNS zB?

Freigabe über Fritzbox ist erfolgt aber ich komme nicht rauf. Zumindest auf den :3000.

SO sieht aktuell mein Zugriff von Extern auf FHEM aus, was über den Proxy sauber klappt.

<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerName *******.de

    ServerAdmin *******@gmail.com
    DocumentRoot /var/www/html

    ErrorLog ${APACHE_LOG_DIR}/*******.de.error.log
    CustomLog ${APACHE_LOG_DIR}/*******.de.access.log combined

    SSLCertificateFile /etc/letsencrypt/live/*******.de/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/*******.de/privkey.pem

    Include /etc/letsencrypt/options-ssl-apache.conf

    ProxyRequests Off
    ProxyVia Off
    ProxyPreserveHost On

    <Location /fhem>
        ProxyPass http://localhost:8083/fhem
        ProxyPassReverse http://localhost:8083/fhem
    </Location>

    <Location /api>
        ProxyPass http://localhost:8089/fhem
        ProxyPassReverse http://localhost:8089/fhem
        AuthUserFile /etc/fhemapi-htpasswd
    </Location>

    <Location /alexa>
        AuthType Basic
        AuthName "Authentication Required"
        AuthUserFile "/etc/fhem-htpasswd"
        Require valid-user
        ProxyPass http://localhost:3000
        ProxyPassReverse http://localhost:3000
        Order deny,allow
        Allow from All
    </Location>

    <Directory />
        RedirectPermanent / /fhem
    </Directory>

    <Proxy *>
        AuthType Basic
AuthName "Password for FHEM Required"
        AuthUserFile /etc/fhem-htpasswd
        Require valid-user
        Order deny,allow
        Allow from all
    </Proxy>
</VirtualHost>
</IfModule>

MadMax-FHEM

Nochmal der Hinweis (siehe etwas weiter oben): den Port 3000 in fhem hast du beendet!

alexa-fhem läuft ohne Fehler hoch (poste doch mal die Ausgabe bei Start über Console bzw. Logeinträge: alexa-fhen Log!)?

Weil sonst "lauscht" alexa-fhem (oder gar niemand) auf Port 3000

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)

blane

Zitat von: MadMax-FHEM am 27 Juli 2018, 11:16:31
Nochmal der Hinweis (siehe etwas weiter oben): den Port 3000 in fhem hast du beendet!

alexa-fhem läuft ohne Fehler hoch (poste doch mal die Ausgabe bei Start über Console bzw. Logeinträge: alexa-fhen Log!)?

Weil sonst "lauscht" alexa-fhem (oder gar niemand) auf Port 3000

Gruß, Joachim

Hi Joachim,

was meinst du mit Port in fhem beenden? Port 3000 ist nur in der Fritz freigegeben. In Fhem habe ich nichts definiert. Oder brauche ich hier etwas wie define WEBfhem FHEMWEB 3000


Anbei meine config.json
{
    "alexa": {
        "port": 3000,
        "name": "Alexa FHEM",
        "keyFile": "./key.pem",
        "certFile": "./cert.pem",
        "nat-pmp": "",
        "nat-upnp": false,
        "applicationId": "***********",
        "oauthClientID": "***********"
    },

    "connections": [
        {
            "name": "FHEM",
            "server": "192.168.***.**",
            "port": "8083",
            "auth": {"user": "***********", "pass": "***********},
            "webname": "fhem",
            "filter": "room=alexa"
        }
    ]
}


Ok nach einem Alexa Update habe ich nun folgendes:
/opt/fhem/alexa-fhem$ ./bin/alexa
[2018-7-27 12:05:43] using /home/blane/.alexa/config.json
[2018-7-27 12:05:43] ---
[2018-7-27 12:05:43] this is alexa-fhem 0.4.4
[2018-7-27 12:05:43] Fetching FHEM devices...
[2018-7-27 12:05:43] [FHEM] starting longpoll: http://192.168.***.***:8083/fhem?XHR=1&inform=type=status;addglobal=1;filter=.*;since=null;fmt=JSON&timestamp=1532685943931
[2018-7-27 12:05:43] Server listening on: https://:::3000
[2018-7-27 12:05:44] [FHEM] Checking devices and attributes...
[2018-7-27 12:05:44] [FHEM]   executing: http://192.168..***.***:8083/fhem?cmd=%7BAttrVal(%22global%22,%22userattr%22,%22%22)%7D&fwcsrf=csrf_369945918607125&XHR=1
[2018-7-27 12:05:44] [FHEM]   executing: http://192.168..***.***:8083/fhem?cmd=jsonlist2%20TYPE=alexa&fwcsrf=csrf_369945918607125&XHR=1
[2018-7-27 12:05:44] [FHEM] Fetching FHEM devices...
[2018-7-27 12:05:44] [FHEM] fetching: http://192.168..***.***:8083/fhem?cmd=jsonlist2%20room=alexa&fwcsrf=csrf_369945918607125&XHR=1
[2018-7-27 12:05:44] [FHEM] alexa device is alexa
[2018-7-27 12:05:44] [FHEM] alexa is switch
[2018-7-27 12:05:44] [FHEM] alexa has
[2018-7-27 12:05:44] [FHEM] homebridgeMapping
.... USW


Beim Aufruf der intern URL kommt nun folgendes https://192.168.178.62:3000/ Gleiches bei der externen URL https://********.de:3000/ (wobei die https kein sichere Verbindung anzeigt)

{"header":{"name":"UnsupportedOperationError","payloadVersion":"2","namespace":"Alexa.ConnectedHome.Control","messageId":"**********-**********-**********-**********-**********"},"payload":{}}

Der Lampda quittiert nun auch positiv.

MadMax-FHEM

Du hast doch selbst geschrieben, dass du in fhem Port 3000 freigegeben hast... ;)

Nein in fhem musst du da nichts tun...

Bekommst du jetzt in Lambda immer noch einen Fehler?

Sieht soweit (ich das auf dem Handy entziffern kann ;)  ) ja gut aus...

Wenn du nicht mit usw. abgebrochen hättest hätte man/ich auch gleich bzgl. Filter/gefundenen Geräten schauen können aber wenn dann keine gefunden werden meldest du dich bestimmt wieder... ;)

EDIT: Zugriffstest von außen war auch wirklich "von außen"!? Also nicht im WLAN oder so, sondern beispielsweise Handy über Providernetz.

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)

blane

Zitat von: MadMax-FHEM am 27 Juli 2018, 12:34:32
Du hast doch selbst geschrieben, dass du in fhem Port 3000 freigegeben hast... ;)

Nein in fhem musst du da nichts tun...

Bekommst du jetzt in Lambda immer noch einen Fehler?

Sieht soweit (ich das auf dem Handy entziffern kann ;)  ) ja gut aus...

Wenn du nicht mit usw. abgebrochen hättest hätte man/ich auch gleich bzgl. Filter/gefundenen Geräten schauen können aber wenn dann keine gefunden werden meldest du dich bestimmt wieder... ;)

Gruß, Joachim

OK ich finde keine neuen Geräte. :)
Habe folgendes erstellt
define Licht_EG_WOH_KNX_Deckenspots_Schalten KNX 1/1/7:dpt1:schalten
attr Licht_EG_WOH_KNX_Deckenspots_Schalten userattr room_map structexclude
attr Licht_EG_WOH_KNX_Deckenspots_Schalten IODev KNX
attr Licht_EG_WOH_KNX_Deckenspots_Schalten alexaName Wohnzimmerleuchten
attr Licht_EG_WOH_KNX_Deckenspots_Schalten alexaRoom alexa
attr Licht_EG_WOH_KNX_Deckenspots_Schalten genericDeviceType switch
attr Licht_EG_WOH_KNX_Deckenspots_Schalten group Licht
attr Licht_EG_WOH_KNX_Deckenspots_Schalten room Licht,Wohnzimmer,alexa


Wie bekomme ich das jetzt in der App?

MadMax-FHEM

Immer schön langsam...

Bekommst du nun weiterhin einen Fehler über Lambda oder nicht!?

Dann würde ich zuerst mal das Dummy-Schalter Beispiel aus dem Wiki probieren.

Wenn das geht weitere Dinge hinzunehmen...

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)

blane

Lambda gibt aktuell keinen Fehler mehr aus.

Den Dummy habe ich angelegt.
defmod Alexa.Party dummy
attr Alexa.Party alexaName party
attr Alexa.Party alexaRoom alexaroom
attr Alexa.Party genericDeviceType switch
attr Alexa.Party group AlexaGeräte
attr Alexa.Party room AlexaRoom
attr Alexa.Party setList on off


Allerdings findet er das Gerät nicht in der Alexa-App.
Muss noch etwas neugestartet werden?

MadMax-FHEM

Immer wenn du was in fhem änderst, dass alexa-fhem betrifft (neues Gerät, Gerät löschen, umbenennen etc.) musst du alexa fhem neu starten...

In deinem Fall passt aber der Filter schon nicht:

In deiner config.json: filter:room="alexa"
Das muss nat. mit dem Gerät das du finden (lassen) willst übereinstimmen.
Also entweder den Filter in der config.json auf room="AlexaRoom" ändern oder das Gerät in den room alexa packen...

Poste doch (nach Anpassung) die Ausgabe von alexa-fhem bzw. schau ob weitere Ausgaben folgen, wenn du die Gerätesuche anstößt...

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)

blane

OK also nach der Änderung des Party-Dummys funktioniert dieser.

Meine "echten" Lampen allerdings nicht.
defmod Licht_EG_WOH_KNX_Deckenspots_Schalten KNX 1/1/7:dpt1:schalten
attr Licht_EG_WOH_KNX_Deckenspots_Schalten userattr room_map structexclude
attr Licht_EG_WOH_KNX_Deckenspots_Schalten IODev KNX
attr Licht_EG_WOH_KNX_Deckenspots_Schalten alexaName Spots
attr Licht_EG_WOH_KNX_Deckenspots_Schalten alexaRoom alexa
attr Licht_EG_WOH_KNX_Deckenspots_Schalten genericDeviceType switch
attr Licht_EG_WOH_KNX_Deckenspots_Schalten group Licht
attr Licht_EG_WOH_KNX_Deckenspots_Schalten room Licht,Wohnzimmer,alexa


Was ist denn das entscheidende für die Ansprache von Alexa?
alexaName also "Spots", die Definition also Licht_EG_WOH_KNX_Deckenspots_Schalten oder geht auch ein Alias?
Und wie wird das Gerät erkannt?
Durch "alexaRoom alexa" oder "room alexa"?

Und woran liegt es, dass meine richtige Lampe nicht geht?
In der Ausgabe ist leider sehr sehr viel Zeug (Hue und Co).

MadMax-FHEM

Sollte alles im Wiki zu finden sein...

Wichtig ist der Filter in der config.json das kennst du ja jetzt...
...was immer da steht muss halt auch bei den relevanten Geräten passen...

alexa-fhem muss auch erkennen können, "was" es ist (manches wird direkt unterstützt, z.B. Homematic / manchmal ist der genericDeviceType hilfreich).

Dann muss alexa-fhem noch erkennen was der Status ist, beispielsweise temperature Reading für Temperatur etc.

Dann noch wie es schalten kann, also wie on/off funktionieren oder setzen von Temperaturen.
Hier ebenso: manches geht "einfach so" bei anderen hilft u.U. homebridgeMapping...

Dann gilt bzgl. Namen etc.:

Wenn alexaName gesetzt ist wird der genommen, ansonsten alias und gibts auch den nicht dann name.

alexaRoom hat nur für den Custom Skill Bedeutung...

Evtl. Mal in diversen Threads die alle irgendwie lauten: alexa findet keine Geräte o.ä. schauen...

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)

blane

Super. Ich danke dir für deine Hilfe. Zu den Devices werde ich mich dann noch belesen.
Eine letzte Frage habe ich noch zum Start-Script.
Ich bekomme leider immer die Fehlermeldung. Ich gehe mal davon aus, dass mein ExecStart falsch ist, weiß aber nicht was ich da eintragen soll.
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 Fri 2018-07-27 14:16:30 CEST; 7s ago
  Process: 3383 ExecStart=/opt/fhem/alexa-fhem/bin/alexa -U /home/blane/.alexa (code=exited, status=1/FAILURE)
Main PID: 3383 (code=exited, status=1/FAILURE)

Jul 27 14:16:30 nuc systemd[1]: alexa.service: Unit entered failed state.
Jul 27 14:16:30 nuc systemd[1]: alexa.service: Failed with result 'exit-code'.


Laut Wiki steht hier folgendes:
WorkingDirectory=/opt/fhem/alexa-fhem
ExecStart=/opt/fhem/alexa-fhem/bin/alexa -U /home/alexa/.alexa


Hier liegt meine alexa.service und im nächsten Ordner meine COnfig
/etc/systemd/system$ cd /home/blane/.alexa
blane@nuc:~/.alexa$ ls -l
insgesamt 4
-rw-r--r-- 1 blane blane 634 Aug 31  2017 config.json
blane@nuc:~/.alexa$

MadMax-FHEM

Wie startest du denn von Console (da nehme ich an geht es wohl)?

Also in welchem Pfad und unter welchem User (nehme an blane) und mit welchem Kommando (sollte bin/alexa sein).

Und dann poste doch mal das Startscript...

EDIT: und du hast auch nur eins eingerichtet!? Also entweder systemd (das was du bislang gepostet hast) oder initd!

EDIT: lass dir doch mal mittels journalctl oder so (also das Logging bzgl. systemd) Logeinträge anzeigen damit man sehen kann was nicht geht...

EDIT: du musst natürlich mindestens die Pfade anpassen!

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)

blane

Zitat von: MadMax-FHEM am 27 Juli 2018, 14:38:24
Wie startest du denn von Console (da nehme ich an geht es wohl)?

Also in welchem Pfad und unter welchem User (nehme an blane) und mit welchem Kommando (sollte bin/alexa sein).

Und dann poste doch mal das Startscript...

EDIT: und du hast auch nur eins eingerichtet!? Also entweder systemd (das was du bislang gepostet hast) oder initd!

EDIT: lass dir doch mal mittels journalctl oder so (also das Logging bzgl. systemd) Logeinträge anzeigen damit man sehen kann was nicht geht...

EDIT: du musst natürlich mindestens die Pfade anpassen!

Gruß, Joachim

Also starten mittels Konsole klappt so:
/opt/fhem/alexa-fhem$ ./bin/alexa

Startscript schaut so aus:
[Unit]
Description=Node.js Alexa Server
After=syslog.target network-online.target

[Service]
Type=simple
User=alexa
WorkingDirectory=/opt/fhem/alexa-fhem
ExecStart=/opt/fhem/alexa-fhem/bin/alexa -U /home/blane/.alexa
Restart=on-failure
RestartSec=10
KillMode=process

[Install]
WantedBy=multi-user.target


Zu initd kann ich nichts sagen. Hatte früher mal Alexa laufen. Kann sein das dies noch irgendwo rumschwirrt? WIe finde ich das heraus?

Und sudo journalctl -u alexa gibt mir Fehlermeldungen, dass die Config nicht gefunden wird.