Alexa AWS Lambda SSL Handshake auf Apache2 Proxy Problem (LetsEncrypt)

Begonnen von Dersch, 13 Juli 2018, 10:04:51

Vorheriges Thema - Nächstes Thema

Dersch

Hi,

nachdem ich meinen FHEM Server neugestartet habe findet die Alexa App keine neuen Geräte mehr und schaltet auch nichts mehr.

Die Verbindung zwischen der App und dem FHEM device steht aber und auch die Ausgabe von Alexa-FHEM sieht gut aus:

Jul 13 09:31:21 FHEM-Server alexa[4448]:   SaturationIntentB: [ 'Saturation' ],
Jul 13 09:31:21 FHEM-Server alexa[4448]:   TargetPositionIntent: [ 'TargetPosition' ],
Jul 13 09:31:21 FHEM-Server alexa[4448]:   gradIntent: [ 'TargetTemperature' ] }
Jul 13 09:31:21 FHEM-Server alexa[4448]: [2018-7-13 09:31:21] prefixOfIntent:
Jul 13 09:31:21 FHEM-Server alexa[4448]: [2018-7-13 09:31:21] { OnIntent: undefined,
Jul 13 09:31:21 FHEM-Server alexa[4448]:   prozentIntent: 'auf',
Jul 13 09:31:21 FHEM-Server alexa[4448]:   HueIntent: 'auf',
Jul 13 09:31:21 FHEM-Server alexa[4448]:   HueIntentB: undefined,
Jul 13 09:31:21 FHEM-Server alexa[4448]:   SaturationIntent: 'auf',
Jul 13 09:31:21 FHEM-Server alexa[4448]:   SaturationIntentB: undefined,
Jul 13 09:31:21 FHEM-Server alexa[4448]:   TargetPositionIntent: undefined,
Jul 13 09:31:21 FHEM-Server alexa[4448]:   gradIntent: 'auf' }
Jul 13 09:31:21 FHEM-Server alexa[4448]: [2018-7-13 09:31:21] suffixOfIntent:
Jul 13 09:31:21 FHEM-Server alexa[4448]: [2018-7-13 09:31:21] { OnIntent: undefined,
Jul 13 09:31:21 FHEM-Server alexa[4448]:   prozentIntent: 'prozent',
Jul 13 09:31:21 FHEM-Server alexa[4448]:   HueIntent: undefined,
Jul 13 09:31:21 FHEM-Server alexa[4448]:   HueIntentB: undefined,
Jul 13 09:31:21 FHEM-Server alexa[4448]:   SaturationIntent: undefined,
Jul 13 09:31:21 FHEM-Server alexa[4448]:   SaturationIntentB: undefined,
Jul 13 09:31:21 FHEM-Server alexa[4448]:   TargetPositionIntent: undefined,
Jul 13 09:31:21 FHEM-Server alexa[4448]:   gradIntent: 'grad' }
Jul 13 09:31:21 FHEM-Server alexa[4448]: [2018-7-13 09:31:21] alexaTypes:
Jul 13 09:31:21 FHEM-Server alexa[4448]: [2018-7-13 09:31:21] { light: [ 'licht', 'lampen' ],
Jul 13 09:31:21 FHEM-Server alexa[4448]:   blind:
Jul 13 09:31:21 FHEM-Server alexa[4448]:    [ 'rolladen',
Jul 13 09:31:21 FHEM-Server alexa[4448]:      'rolläden',
Jul 13 09:31:21 FHEM-Server alexa[4448]:      'jalousie',
Jul 13 09:31:21 FHEM-Server alexa[4448]:      'jalousien',
Jul 13 09:31:21 FHEM-Server alexa[4448]:      'rollo',
Jul 13 09:31:21 FHEM-Server alexa[4448]:      'rollos' ] }
Jul 13 09:31:21 FHEM-Server alexa[4448]: [2018-7-13 09:31:21] roomOfEcho:
Jul 13 09:31:21 FHEM-Server alexa[4448]: [2018-7-13 09:31:21] {}
Jul 13 09:31:21 FHEM-Server alexa[4448]: [2018-7-13 09:31:21] fhemIntents:
Jul 13 09:31:21 FHEM-Server alexa[4448]: [2018-7-13 09:31:21] { FHEMgutenMorgenIntent: 'gutenMorgen',
Jul 13 09:31:21 FHEM-Server alexa[4448]:   FHEMguteNachtIntent: 'guteNacht' }
Jul 13 09:31:21 FHEM-Server alexa[4448]: [2018-7-13 09:31:21] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=%7B$defs%7BMyAlexa%7D-%
Jul 13 09:31:21 FHEM-Server alexa[4448]: [2018-7-13 09:31:21] [FHEM] got: 14 results
Jul 13 09:31:21 FHEM-Server alexa[4448]: [2018-7-13 09:31:21] [FHEM] FlurOGStehlampe is already published


Allerdings habe ich im FHEM Log grade viele Einträge die ich nicht zuordnen kann:

018.07.13 09:01:55 1: Accept failed (telnetForBlockingFn_1531414409.438: Too many open files)
2018.07.13 09:01:55 1: Accept failed (telnetForBlockingFn_1531414409.438: Too many open files)
2018.07.13 09:01:55 1: Accept failed (telnetForBlockingFn_1531414409.438: Too many open files)
2018.07.13 09:01:55 1: Accept failed (telnetForBlockingFn_1531414409.438: Too many open files)
2018.07.13 09:01:55 1: Accept failed (telnetForBlockingFn_1531414409.438: Too many open files)
2018.07.13 09:01:55 1: Accept failed (telnetForBlockingFn_1531414409.438: Too many open files)
2018.07.13 09:01:55 1: Accept failed (telnetForBlockingFn_1531414409.438: Too many open files)
2018.07.13 09:01:55 1: Accept failed (telnetForBlockingFn_1531414409.438: Too many open files)
2018.07.13 09:01:55 1: Accept failed (telnetForBlockingFn_1531414409.438: Too many open files)
2018.07.13 09:01:55 1: Accept failed (telnetForBlockingFn_1531414409.438: Too many open files)
2018.07.13 09:01:55 1: Accept failed (telnetForBlockingFn_1531414409.438: Too many open files)
2018.07.13 09:01:55 1: Accept failed (telnetForBlockingFn_1531414409.438: Too many open files)
2018.07.13 09:01:55 1: Accept failed (telnetForBlockingFn_1531414409.438: Too many open files)
2018.07.13 09:01:55 1: Accept failed (telnetForBlockingFn_1531414409.438: Too many open files)
2018.07.13 09:01:55 1: Accept failed (telnetForBlockingFn_1531414409.438: Too many open files)
2018.07.13 09:01:55 1: Accept failed (telnetForBlockingFn_1531414409.438: Too many open files)
2018.07.13 09:01:55 1: Accept failed (telnetForBlockingFn_1531414409.438: Too many open files)
2018.07.13 09:01:55 1: Accept failed (telnetForBlockingFn_1531414409.438: Too many open files)
2018.07.13 09:01:55 1: Accept failed (telnetForBlockingFn_1531414409.438: Too many open files)
2018.07.13 09:01:55 1: Accept failed (telnetForBlockingFn_1531414409.438: Too many open files)
2018.07.13 09:01:55 1: Accept failed (telnetForBlockingFn_1531414409.438: Too many open files)
2018.07.13 09:01:55 1: Accept failed (telnetForBlockingFn_1531414409.438: Too many open files)
2018.07.13 09:01:55 1: Accept failed (telnetForBlockingFn_1531414409.438: Too many open files)
2018.07.13 09:01:55 1: Accept failed (telnetForBlockingFn_1531414409.438: Too many open files)
2018.07.13 09:01:55 1: Accept failed (telnetForBlockingFn_1531414409.438: Too many open files)
2018.07.13 09:01:55 1: Accept failed (telnetForBlockingFn_1531414409.438: Too many open files)
2018.07.13 09:01:55 1: Accept failed (telnetForBlockingFn_1531414409.438: Too many open files)
2018.07.13 09:01:55 1: Accept failed (telnetForBlockingFn_1531414409.438: Too many open files)
2018.07.13 09:01:55 1: Accept failed (telnetForBlockingFn_1531414409.438: Too many open files)
2018.07.13 09:01:55 1: Accept failed (telnetForBlockingFn_1531414409.438: Too many open files)
2018.07.13 09:01:55 1: Accept failed (telnetForBlockingFn_1531414409.438: Too many open files)
2018.07.13 09:01:55 1: Accept failed (telnetForBlockingFn_1531414409.438: Too many open files)
2018.07.13 09:01:55 1: Accept failed (telnetForBlockingFn_1531414409.438: Too many open files)
2018.07.13 09:01:55 1: Accept failed (telnetForBlockingFn_1531414409.438: Too many open files)
2018.07.13 09:01:55 1: Accept failed (telnetForBlockingFn_1531414409.438: Too many open files)
2018.07.13 09:01:55 1: Accept failed (telnetForBlockingFn_1531414409.438: Too many open files)
2018.07.13 09:01:55 1: Accept failed (telnetForBlockingFn_1531414409.438: Too many open files)
2018.07.13 09:01:55 1: Accept failed (telnetForBlockingFn_1531414409.438: Too many open files)
2018.07.13 09:01:55 1: Accept failed (telnetForBlockingFn_1531414409.438: Too many open files)
2018.07.13 09:01:55 1: Accept failed (telnetForBlockingFn_1531414409.438: Too many open files)


Ob das was damit zu tun hat weiß ich leider nicht.

Ein List von MyAlexa:

Internals:
   NAME       MyAlexa
   NR         329
   STATE      active
   TYPE       alexa
   active     0
   alexa-fhem version 0.4.4
Attributes:
   alexaMapping #Characteristic=<name>=<value>,...
On=verb=schalte,valueOn=an;ein,valueOff=aus,valueToggle=um

Brightness=verb=stelle,property=helligkeit,valuePrefix=auf,values=AMAZON.NUMBER,valueSuffix=prozent

Hue=verb=stelle,valuePrefix=auf,values=rot:0;grün:128;blau:200
Hue=verb=färbe,values=rot:0;grün:120;blau:220

Saturation=verb=stelle,property=sättigung,valuePrefix=auf,values=AMAZON.NUMBER
Saturation=verb=sättige,values=AMAZON.NUMBER

TargetPosition=verb=mach,articles=den;die,values=auf:100;zu:0
TargetPosition=verb=stelle,valuePrefix=auf,values=AMAZON.NUMBER,valueSuffix=prozent

TargetTemperature=verb=stelle,valuePrefix=auf,values=AMAZON.NUMBER,valueSuffix=grad

Volume:verb=stelle,valuePrefix=auf,values=AMAZON.NUMBER,valueSuffix=prozent

#Weckzeit=verb=stelle,valuePrefix=auf;für,values=AMAZON.TIME,valueSuffix=uhr
   alexaTypes #Type=<alias>[,<alias2>[,...]]
light=licht,lampen
blind=rolladen,rolläden,jalousie,jalousien,rollo,rollos
   echoRooms  #<deviceId>=<room>

   fhemIntents #IntentName=<sample utterance>
gutenMorgen=guten morgen
guteNacht=gute nacht
   room       Zentral


Alexa sagt beim Schalten nun immer kann Gerät nicht finden :(

MadMax-FHEM

Ob das eine was mit dem anderen zu tun hat kann ich (so) nicht sagen...

Aber: too many open files -> da gehen bzw. sind deinem Betriebssystem wohl Handles ausgegangen...

Da kann dann so einiges nicht mehr (richtig) funktionieren...

Wo läuft denn alexa-fhem?
Selber Server (was für einer)?
Wie wird alexa-fhem gestartet?

alexa-fhem schon mal nachgestartet?

Wobei du erst mal schauen solltest warum du das mit den Handles hast (also too many open files)...

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)

Dersch

alexa-fhem läuft auf dem gleichen device welches eine Zotac Z-Box mit Debian Stretch ist (irgendwas celeron mäßiges und 4gb speicher)
alexa-fhem wird über ein systemctl init script gestartet. Nachgestartet habe ich schon mehrfach. Und so wie ich es sehe steht die Verbindung auch eigentlich von Lambda zu Alexa-FHEM und dann zu Fhem selbst. Nur Alexa sagt "Gerät reagiert nicht"

Wg den Handles habe ich bereits einen gesonderten Thread erstellt. Das ist schon sehr komisch nur weiß ich da 0% wo ich die Fehlersuche überhautp beginnen soll :(

Thyraz

Hier hatten doch neulich welche das Problem, dass das Zertifikat abgelaufen war.
Gibt dazu glaub auch einen Kommentar im Wiki dazu.

Nur als Hinweis, da das ein fieser Fehler ist...

Weiß aber nicht wie der sich genau geäußert hat.
Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Conbee II, Hue, Harmony, Solo4k, LaMetric, Echo, Sonos, Roborock S5, Nuki, Prusa Mini, Doorbird, ...

Dersch

Das Zertifikat ist erst ca 3 Wochen alt und 1 Jahr gültig.

retikulum

Gerade bei mir getestet. Geht.

Poste mal deine Definition.
Versuchst du die Verknüpfung auf die Hardware direkt (zb. Espeasy) oder übern Dummy Device?

Dersch

Ich mache die Verknüpfung direkt über das Device indem ich es in den Alexa Raum schiebe, teilweise aber auch über dummys.

Das hier sagt mir doch, dass die Verbindung von dem Alexa Modul in Fhem zum alexa tool steht.

Jul 13 21:23:06 FHEM-Server alexa[811]: [2018-7-13 21:23:06] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=%7B$defs%7BMyAlexa%7D-%3E%7B%22active%22%7D%20=%201;;undef%7D;list%20MyAlexa%
Jul 13 21:23:06 FHEM-Server alexa[811]: [2018-7-13 21:23:06] [FHEM] got: 14 results


Versuche ich über Sprache ein Device zu schalten antwortet mir Alexa nur "der Hub mit dem das Gerät XXX verbunden ist reagiert nicht"

Amazon Lambda sagt mir folgendes:
problem with request: write EPROTO 140193286526784:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:../deps/openssl/openssl/ssl/s23_clnt.c:827:

Ich fahre alexa über einen Apache2 Proxy welcher über LetsEncrypt abgesichert ist. Mir scheint es, dass hier ein SSL Handshake fehlschlägt. Nur warum plötzlich von heute auf morgen? Es lief ja genau so seit dem ich es eingerichtet habe...

Dersch

Ja klar es ist ein SSL Handshake Problem.

Ich habe nun Testweise ein portforwarding IP:3000 gemacht und bei Lambda eingetragen. Siehe da schon geht es, Lambda sagt es mir auch gleich klar und deutlich und alles lässt sich wieder schalten....

So nun frage ich mich folgendes:

- Warum ging es die ganze Zeit so??? Ich hatte nichts geändert, erst recht nicht am Proxy.
- Warum hat AWS ein Problem mit gängigen und aktuellen Chipers?
- Wie bekomme ich nun Lambda wieder dazu mit meinem Proxy zu reden? Das ist mir lieber als ein einfaches NAT Portforwarding direkt auf meine FHEM Maschine



Dersch

Ich rudere hiermit wieder zurück. Es hatte rein gar nichts mit alexa und/oder fhem zu tun. Dort hat sich das Symptom nur zuerst gezeigt und ich fing an dort zu suchen.

Es war letztendlich ein Bug in meiner PFsense mit der aktuellen Dev Version welcher NAT Freigaben über Ports welche in Aliasen zusammengefasst sind nicht mehr korrekt verarbeitet (Eigentlich nur ein PHP Problem im Webif). Dadurch war mein Webserver nur noch über IPv6 erreichbar aber nicht mehr via IPv4. AWS kann kein IPv6 daher zeigte es sich dort zuerst.

Daher:

- Mit Fhem ist alles ok
- mit alexa-fhem ist alles ok
- mit dem Proxy und dessen SSL Cert ist alles ok
- Mit PFsense ist momentan gar nicht alles ok

Grüße
Dirk