Hallo Freunde,
nach langem hin und her wollte ich meine gewachsene FHEM-Instanz aus Performance-Gründen vom Einplatinenrechner (Ubuntu 18.04 auf Odroid-C2) umziehen auf einen "normelen" x86er und unter Docker betreiben.
Das hat auch soweit für alles gut funktioniert, außer für Alexa mit dem FHEM-Connector. Vor dem Umzug hatte ich da nie Probleme.
Das alexa-fhem Device sagt immer, dass alexa-fhem nicht läuft, aber das soll scheinbar kein Problem sein, da das nunmal so ist wenn es in einem anderen Container läuft.
Leider schimpft mich immer die Alexa so: "Stehlampe reagiert gerade nicht." Das hat bis vor dem Umzug immer geklappt.
Was mache ich falsch?
Bin für jede Hilfe dankbar!
Hier mal meine docker-compose.yml:
networks:
fhem:
services:
# Example to connect USB to the container w/o
# privileged mode (preferred method)
fhem:
image: fhem/fhem
restart: unless-stopped
#privileged: true
networks:
- fhem
ports:
- "8083:8083"
volumes:
- "./fhem/:/opt/fhem/"
- "/dev/bus/usb:/dev/bus/usb"
- "/var/run/dbus:/var/run/dbus"
- "/etc/localtime:/etc/localtime:ro"
# - "/dev/serial/by-id/:/dev/serial/by-id/"
devices:
- "/dev/serial/by-id/usb-0658_0200-if00:/dev/serial/by-id/usb-0658_0200-if00"
- "/dev/serial/by-id/usb-STM32_MapleCUL_a808a856-if00:/dev/serial/by-id/usb-STM32_MapleCUL_a808a856-if00"
- "/dev/serial/by-id/usb-EnOcean_GmbH_EnOcean_USB_300_DC_FT5P4200-if00-port0:/dev/serial/by-id/usb-EnOcean_GmbH_EnOcean_USB_300_DC_FT5P4200-if00-port0"
environment:
FHEM_UID: 999
FHEM_GID: 20
TIMEOUT: 10
RESTART: 1
TELNETPORT: 7072
LANG: "de_DE.UTF-8"
TZ: "Europe/Berlin"
PIDFILE: "/opt/fhem/run/fhem.pid"
APT_PKGS: "python3 python3-pip python3-dev python3-venv libffi-dev libssl-dev libjpeg-dev zlib1g-dev autoconf build-essential libglib2.0-dev libdbus-1-dev bluez libbluetooth-dev git libprotocol-websocket-perl"
alexa-fhem:
depends_on:
fhem:
condition: service_healthy
image: ghcr.io/fhem/alexa-fhem
restart: unless-stopped
networks:
- fhem
volumes:
- "./alexa-fhem/:/alexa-fhem/"
environment:
ALEXAFHEM_UID: 999
ALEXAFHEM_GID: 20
TZ: Europe/Berlin
Hier meine "config.json" von alexa-fhem:
{
"sshproxy" : {
"ssh" : "/usr/bin/ssh",
"description" : "FHEM Connector"
},
"connections" : [
{
"port" : "8083",
"server" : "fhem",
"uid" : 999,
"name" : "FHEM",
"webname" : "fhem",
"filter" : "alexaName=..*"
}
]
}
Hier ein "list alexa" (mein Alexa-Device):
Internals:
FUUID 5f98795c-f33f-4dde-a561-7a71a940b533a249
FVERSION 39_alexa.pm:0.238200/2021-02-24
NAME alexa
NOTIFYDEV global,global:npmjs.*alexa-fhem.*
NR 167
NTFY_ORDER 50-alexa
STATE stopped
TYPE alexa
active 0
alexa-fhem version 0.5.65
eventCount 34
logfile ./log/alexa-%Y-%m-%d.log
CoProcess:
cmdFn alexa_getCMD
name alexaFHEM
READINGS:
2025-02-14 22:21:27 alexaFHEM stopped
2025-02-26 10:10:43 alexaFHEM.ProxyConnection running; SSH connected
2025-02-13 23:59:49 alexaFHEM.bearerToken crypt:KAUDERWELSCH123ABC
2025-02-13 23:59:49 alexaFHEM.skillRegKey crypt:KAUDERWELSCH123ABC
Attributes:
alexaFHEM-config ./alexa-fhem.cfg
alexaFHEM-host alexa-fhem
alexaFHEM-log ./log/alexa-%Y-%m-%d.log
alexaMapping #Characteristic==,...
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=[,[,...]]
light=licht,lampen
blind=rolladen,rolläden,jalousie,jalousien,rollo,rollos
devStateIcon stopped:control_home@red:start stopping:control_on_off@orange running.*:control_on_off@green:stop
disable 1
echoRooms #=
fhemIntents #IntentName=
gutenMorgen=guten morgen
guteNacht=gute nacht
icon alexa2
persons #=
room System->Amazon,System->Gateways
stateFormat alexaFHEM
verbose 5
Hier ein Auszug aus dem alexa-fhem log:
alexa-fhem-1 | [2/25/2025, 10:09:24 AM] Reading alexaFHEM.ProxyConnection set to running;; stderr=client_loop: send disconnect: Broken pipe
alexa-fhem-1 | [2/25/2025, 10:09:24 AM] [FHEM] executing: http://fhem:8083/fhem?cmd=%7B%24defs%7B%22alexa%22%7D-%3E%7B%22active%22%7D%20%3D%201%3B%3Bundef%7D%3Bsetreading%20alexa%20alexaFHEM.ProxyConnection%20running%3B%3B%20stderr%3Dclient_loop%3A%20send%20disconnect%3A%20Broken%20pipe%20%20%3B%7B%24defs%7B%22alexa%22%7D-%3E%7B%22active%22%7D%20%3D%200%3B%3Bundef%7D&fwcsrf=csrf_353305647521941&XHR=1
alexa-fhem-1 | [2/25/2025, 10:09:24 AM] *** SSH: stderr: client_loop: send disconnect: Broken pipe
alexa-fhem-1 | [2/25/2025, 10:09:24 AM] SSH: exited with 255 - will restart in 76.63225140403942 seconds
alexa-fhem-1 | [2/25/2025, 10:09:24 AM] Reading alexaFHEM.ProxyConnection set to stopped;; Terminated with client_loop: send disconnect: Broken pipe , ssh will restart at 10:10:41
alexa-fhem-1 | [2/25/2025, 10:09:24 AM] [FHEM] executing: http://fhem:8083/fhem?cmd=%7B%24defs%7B%22alexa%22%7D-%3E%7B%22active%22%7D%20%3D%201%3B%3Bundef%7D%3Bsetreading%20alexa%20alexaFHEM.ProxyConnection%20stopped%3B%3B%20Terminated%20with%20client_loop%3A%20send%20disconnect%3A%20Broken%20pipe%20%20%2C%20ssh%20will%20restart%20at%2010%3A10%3A41%3B%7B%24defs%7B%22alexa%22%7D-%3E%7B%22active%22%7D%20%3D%200%3B%3Bundef%7D&fwcsrf=csrf_353305647521941&XHR=1
alexa-fhem-1 | [2/25/2025, 10:10:41 AM] Reading alexaFHEM.ProxyConnection set to starting;; starting SSH
alexa-fhem-1 | [2/25/2025, 10:10:41 AM] [FHEM] executing: http://fhem:8083/fhem?cmd=%7B%24defs%7B%22alexa%22%7D-%3E%7B%22active%22%7D%20%3D%201%3B%3Bundef%7D%3Bsetreading%20alexa%20alexaFHEM.ProxyConnection%20starting%3B%3B%20starting%20SSH%3B%7B%24defs%7B%22alexa%22%7D-%3E%7B%22active%22%7D%20%3D%200%3B%3Bundef%7D&fwcsrf=csrf_353305647521941&XHR=1
alexa-fhem-1 | [2/25/2025, 10:10:41 AM] Starting SSH with -R 1234:127.0.0.1:44085 -oServerAliveInterval=90 -i /alexa-fhem/.ssh/id_rsa -p 58824 fhem-va.fhem.de
alexa-fhem-1 | [2/25/2025, 10:10:41 AM] Reading alexaFHEM.ProxyConnection set to running;; SSH connected
alexa-fhem-1 | [2/25/2025, 10:10:41 AM] [FHEM] executing: http://fhem:8083/fhem?cmd=%7B%24defs%7B%22alexa%22%7D-%3E%7B%22active%22%7D%20%3D%201%3B%3Bundef%7D%3Bsetreading%20alexa%20alexaFHEM.ProxyConnection%20running%3B%3B%20SSH%20connected%3B%7B%24defs%7B%22alexa%22%7D-%3E%7B%22active%22%7D%20%3D%200%3B%3Bundef%7D&fwcsrf=csrf_353305647521941&XHR=1
alexa-fhem-1 | [2/25/2025, 10:10:41 AM] *** SSH: proxy connection established
alexa-fhem-1 | [2/25/2025, 10:10:41 AM] SSH: Welcome at the reverse proxy! This pseudoshell does not react to any input - do not get irritated.
alexa-fhem-1 | 2025-02-25 17:46:38 caching: ZWave_SWITCH_MULTILEVEL_22-state: dim 50
alexa-fhem-1 | [2/25/2025, 5:46:38 PM] [FHEM] caching: On: 1 (as number; from 'dim 50')
alexa-fhem-1 | [2/25/2025, 5:46:38 PM] [FHEM] caching: Brightness: 50 (as number; from 'dim 50')
alexa-fhem-1 | 2025-02-25 17:46:38 caching: ZWave_SWITCH_MULTILEVEL_27-state: dim 50
alexa-fhem-1 | [2/25/2025, 5:46:38 PM] [FHEM] caching: On: 1 (as number; from 'dim 50')
alexa-fhem-1 | [2/25/2025, 5:46:38 PM] [FHEM] caching: Brightness: 50 (as number; from 'dim 50')
alexa-fhem-1 | 2025-02-25 17:50:03 caching: ZWave_SWITCH_MULTILEVEL_22-state: off
alexa-fhem-1 | [2/25/2025, 5:50:03 PM] [FHEM] caching: On: 1 (as number; from 'off')
alexa-fhem-1 | [2/25/2025, 5:50:03 PM] [FHEM] caching: Brightness: 0 (as number; from 'off')
alexa-fhem-1 | 2025-02-25 17:50:03 caching: ZWave_SWITCH_MULTILEVEL_27-state: off
alexa-fhem-1 | [2/25/2025, 5:50:03 PM] [FHEM] caching: On: 1 (as number; from 'off')
alexa-fhem-1 | [2/25/2025, 5:50:03 PM] [FHEM] caching: Brightness: 0 (as number; from 'off')
alexa-fhem-1 | 2025-02-25 18:13:50 caching: ZWave_SWITCH_MULTILEVEL_22-state: dim 50
alexa-fhem-1 | [2/25/2025, 6:13:50 PM] [FHEM] caching: On: 1 (as number; from 'dim 50')
alexa-fhem-1 | [2/25/2025, 6:13:50 PM] [FHEM] caching: Brightness: 50 (as number; from 'dim 50')
alexa-fhem-1 | 2025-02-25 18:13:50 caching: ZWave_SWITCH_MULTILEVEL_27-state: dim 50
alexa-fhem-1 | [2/25/2025, 6:13:50 PM] [FHEM] caching: On: 1 (as number; from 'dim 50')
alexa-fhem-1 | [2/25/2025, 6:13:50 PM] [FHEM] caching: Brightness: 50 (as number; from 'dim 50')
Folgende Prozesse laufen auf dem alexa-fhem Container:
cat /proc/47/cmdline -> node /usr/local/bin/alexa-fhem --dockerDetached
cat /proc/421617/cmdline -> /usr/bin/ssh -R1234:127.0.0.1:44085 -o ServerAliveInterval=90 -i /alexa-fhem/.ssh/id_rsa -p58824 fhem-va.fhem.de
Probier mal folgendes:
1. In FHEM das alexa-Device löschen
2. In der Alexa-App auf dem Handy den FHEM-Skill löschen (oder deaktivieren oder wie das heißt)
3. compose stack neustarten
4. Im nun automatisch angelegten alexa-Device
get alexa proxyKey
ausführen und
5. mit diesem proxyKey den FHEM-Skill in der Alexa-App auf dem Handy neu aktivieren.
Dann sollte alles funktionieren. Beim automatisch angelegten alexa-Device in FHEM musst du GAR NICHTS einstellen, also z.B. das attr alexaFHEM-host alexa-fhem kann da auch raus (wobei das auch keine Probleme verursachen sollte, aber es ist jedenfalls unnötig). "Kosmetische" Sachen wie room, usw. sind natürlich ok ...
Vielleicht reicht es hier aber schon, wenn du einfach das alexaFHEM-host-Attribut entfernst, den Skill in der Alexa-App entfernst und mit einem proxyKey von get alexa proxyKey neu einrichtest.
Hoffe das hilft!
Woah, es war echt nur:
- Alexa-Fhem-host entfernen
- FHEM Skill bei Amazon deaktivieren
- get Alexa proxyKey
- FHEM Skill bei Amazon aktivieren und proxyKey eintragen
=> Alles geht wieder!
Mega vielen Dank!