fhem-docker Image 4.0.0 (Tester gesucht)

Begonnen von Sidey, 02 März 2024, 11:35:13

Vorheriges Thema - Nächstes Thema

Sidey

Zitat von: juemuc am 11 März 2024, 15:53:36Hallo Sidey,

ich habe jetzt alexa-fhem als zweite Docker-Instanz am laufen. Mir ist jetzt nur nicht klar, wie ich die Verbindung herstelle, da ja der alexa-Connektor alles automatisch macht. Konkret geht es um folgende Punkte:

1. Im FHEM-Docker habe ich im alexa-Device "alexaFHEM-host" definiert. Ist erledigt.
2. In der Datei config.json müssen folgende Infos hinterlegt werden:
    "keyFile": "/certs/alexa-fhem.key",
    "certFile": "/certs/alexa-fhem.crt",
Ich habe die beiden Dateien aus dem FHEM-Docker-Verzeichnis in das certs-Verzeichnis von alexa-fhem kopiert
3. Es müssen diese Daten ergänt werden:
    "applicationId": "amzn1.ask.skill.XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX",
    "oauthClientID": "amzn1.application-oa2-client.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
Bei applicationID habe ich die xx durch den proxyKey ersetzt. Aber woher bekomme ich die oauthClientID? Ist der Rest korrekt?

Viele Grüße
Jürgen


Die Verbindung funktioniert ausschließlich von alexa-fhem -> fhem.

1. kein keyFile, kein certFile. Das Key file kopiert man auch nie irgendwo hin, es ist ein privater Schlüssel.


Wie in der Anleitung angegeben ist nur in ./alexa-fhem/alexa-fhem.json der Servername und Port für einer FHEMWEB Instanz anzupassen.

Beide Container müssen sich dafür natürlich im gleichen Netzwerk befinden, sonst klappt die Kommunikation nicht.


Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

juemuc

Hallo Sidey,

Es funktioniert leider noch nicht. Ich erhalte folgende Meldungen:

Alexa-logfile:
"Unknown cipher type '/tmp/alexa-fhem.cfg'"

Fhem-Logfile:
ssh: connect to host alexa-fhem port 22: Connection refused
ssh: connect to host alexa-fhem port 22: Connection refused
2024.03.11 18:55:13.354 2: MyAlexa: starting alexa-fhem: /usr/bin/ssh alexa-fhem  -c /tmp/alexa-fhem.cfg -a :hl␜Iw3␙B(M19b9 -s

Was mache ich falsch?

Viele Grüße
Jürgen
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

Sidey

Zitat von: juemuc am 11 März 2024, 18:58:43Hallo Sidey,

Es funktioniert leider noch nicht. Ich erhalte folgende Meldungen:

Alexa-logfile:
"Unknown cipher type '/tmp/alexa-fhem.cfg'"

Steht das im alexa-fhem Container?

Das Attribut Alexa-host kannst Du löschen, es ist nicht notwendig.
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

juemuc

Nein, das ist beides im FHEM-Container.

Wenn ich das Attribut Alexa-host lösche, kommt im Alexa-Device sofort

alexaFHEM  stopped; alexa-fhem not installed. install with 'sudo npm install -g alexa-fhem'.  2024-03-11 20:23:27
Ausserdem gibt es in dem Verzeichnis ./alexa-fhem/ nur eine config.json. Wenn ich hier ssl nicht auf true setze, versucht er fhem mit http zu connecten, was natürlich nicht geht. Wenn ssl auf true steht, benötigt er die "key-/ und cert-Datei"

Viele Grüße
Jürgen
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

juemuc

Hallo Sidey,

ich bin nun einen Schritt weiter. Ich wusste, dass FHEM mit Alexa mit einer Beta funktioniert hatte. Man muss nur bei den NODE.JS-Packages auch "alexa-fhem" installieren. Es wird also der separate Container nicht benötigt. Mit meiner kleinen Test-Instalation ohne https und allowed funktioniert es auch. In der normalen Umgebung kommt die Fehlermeldung "stopped; failed to connect to fhem: 401: Authorization Required"

UNd dies kann gelöst werden, wenn in der Datei alexa-fhem.cfg die Zeile "auth": {"user": "USER", "pass": "PASSWORD"},

eingefügt wird. Jetzt läuft es  ;D

Vielen Dank für Deine Unterstützung.

Viele Grüße
Jürgen
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

Sidey

Zitat von: juemuc am 11 März 2024, 22:02:37ich bin nun einen Schritt weiter. Ich wusste, dass FHEM mit Alexa mit einer Beta funktioniert hatte. Man muss nur bei den NODE.JS-Packages auch "alexa-fhem" installieren.
Als Lösung würde ich das nicht bezeichnen, denn in einem docker Container installiert man nichts nach.

Zitat von: juemuc am 11 März 2024, 22:02:37Es wird also der separate Container nicht benötigt.

Glaub mir, sobald Du im FHEM Container nichts mehr installieren kannst, oder kein nodejs mehr darin installiert ist, brauchst Du den separaten Container, der imho auch auf deutlich aktuellerem NodeJS läuft, weil das viel einfacher zu maintainen ist.
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

juemuc

Hallo Sidey,

ok. Danke für die Info. Dann werde ich morgen mit dem separaten Container weiter testen. Habe ja jetzt Übung im Container erstellen O:-). Werde bestimmt noch mit weiteren Fragen kommen.

AKtuell habe ich zum Beispiel im "Docker Image Info" ein rotes Dreieck mit Ausrufezeichen. Ich weiß aber nicht warum. Wie finde ich das heraus?

Viele Grüße
Jürgen
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

Sidey

Zitat von: juemuc am 11 März 2024, 22:15:54AKtuell habe ich zum Beispiel im "Docker Image Info" ein rotes Dreieck mit Ausrufezeichen. Ich weiß aber nicht warum. Wie finde ich das heraus?

Schau mal, ob das Attribut "devStateIcon" wie folgt gesetzt ist:

ok.*:security@green Initialized:system_fhem_reboot@orange .*:message_attention@red
Ansonsten, könnte es auch sein, dass der Health Check nicht funktioniert. Das sollte im Log stehen.
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

juemuc

Hallo sidey,

das passt alles. Der Container steht auf unhealthy. Ich finde aber die Ursache nicht. Hängt eventuell noch mit meinen "Alexa-Tests" zusammen.

Ich versuche die ganze Zeit mit "docker pull ghcr.io/fhem/fhem/alexa-fhem:v5.0.9" die aktuellste Version zu ziehen. Das fuktioniert aber nicht. Es kommt die Meldung "Error response from daemon: manifest unknown". Nur latest funktioniert. Die Version ist aber älter.

Viele Grüße
Jürgen
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

Sidey

Zitat von: juemuc am 11 März 2024, 22:46:05Hallo sidey,

das passt alles. Der Container steht auf unhealthy. Ich finde aber die Ursache nicht. Hängt eventuell noch mit meinen "Alexa-Tests" zusammen.
Das liegt vermutlich daran, dass es keine

Zitat von: juemuc am 11 März 2024, 22:46:05Ich versuche die ganze Zeit mit "docker pull ghcr.io/fhem/fhem/alexa-fhem:v5.0.9" die aktuellste Version zu ziehen. Das fuktioniert aber nicht. Es kommt die Meldung "Error response from daemon: manifest unknown". Nur latest funktioniert. Die Version ist aber älter.

Ein fhem zu viel im Pfad.
Da habe ich die Readme wohl vergessen anzupassen.

ghcr.io/fhem/alexa-fhem:5.0.9
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

juemuc

Hallo Sidey,

ich habe nun herausgefunden, dass der Container auf unhealthy geht, wenn ich in FHEM https aktiviere. Kann man das ändern? Ich habe hierzu einer neuen FHEM-Instanz nur das HTTPS-Attribut gesetzt. Sollte somit leicht reproduzierbar sein.

Viele Grüße
Jürgen.
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

juemuc

Hallo Sidey,

jetzt habe ich alexa-fhem (5.0.9) und fhem (Beta6) getestet. In fhem habe ich nur die updates durchgeführt. alexa-fhem hat in fhem das Device alexa automatisch angelegt. Allerdings muss man noch das Attribut "alexaFHEM-host" noch anlegen, sonst kommt die "node-Fehlermeldung". Nach setzten des Attributes wird trotzdem die Verbindung nnicht aufgebaut. Ich erhalte folgende Fehlermeldungen in FHEM:
fhem-log:
2024.03.12 11:52:30.006 3: alexa: using ssh cmd /usr/bin/ssh alexa-fhem
ssh: connect to host alexa-fhem port 22: Connection refused
ssh: connect to host alexa-fhem port 22: Connection refused
2024.03.12 11:52:30.026 2: alexa: starting alexa-fhem: /usr/bin/ssh alexa-fhem  -c /tmp/alexa-fhem.cfg
2024.03.12 11:52:30.028 3: alexa: starting
2024.03.12 11:52:30.032 3: alexa: using logfile: ./log/alexa-2024-03-12.log
2024.03.12 11:52:30.037 3: alexa: read: end of file reached while sysread
2024.03.12 11:52:30.037 3: alexa: stopped

Alexa-log:
Unknown cipher type '/tmp/alexa-fhem.cfg'
Unknown cipher type '/tmp/alexa-fhem.cfg'
Unknown cipher type '/tmp/alexa-fhem.cfg'
Unknown cipher type '/tmp/alexa-fhem.cfg'
Unknown cipher type '/tmp/alexa-fhem.cfg'
Unknown cipher type '/tmp/alexa-fhem.cfg'
Unknown cipher type '/tmp/alexa-fhem.cfg'
Unknown cipher type '/tmp/alexa-fhem.cfg'
Unknown cipher type '/tmp/alexa-fhem.cfg'
Unknown cipher type '/tmp/alexa-fhem.cfg'
Unknown cipher type '/tmp/alexa-fhem.cfg'
Unknown cipher type '/tmp/alexa-fhem.cfg'
Unknown cipher type '/tmp/alexa-fhem.cfg'
Unknown cipher type '/tmp/alexa-fhem.cfg'
Unknown cipher type '/tmp/alexa-fhem.cfg'
Unknown cipher type '/tmp/alexa-fhem.cfg'
Unknown cipher type '/tmp/alexa-fhem.cfg'
Unknown cipher type '/tmp/alexa-fhem.cfg'
Unknown cipher type '/tmp/alexa-fhem.cfg'
Unknown cipher type '/tmp/alexa-fhem.cfg'
Unknown cipher type '/tmp/alexa-fhem.cfg'
Unknown cipher type '/tmp/alexa-fhem.cfg'

Ich teste jetzt noch einmal mit alexa-fhem:latest

Viele Grüße
Jürgen
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

Sidey

Zitat von: juemuc am 12 März 2024, 10:59:44ich habe nun herausgefunden, dass der Container auf unhealthy geht, wenn ich in FHEM https aktiviere. Kann man das ändern? Ich habe hierzu einer neuen FHEM-Instanz nur das HTTPS-Attribut gesetzt. Sollte somit leicht reproduzierbar sein.

Grundsätzlich kann der Healthcheck auch HTTPS. Gerade noch mal getestet :)

Ich habe folgendes Gerät zusätzlich definiert:

defmod WEBS FHEMWEB 8084 global
attr WEBS userattr DockerHealthCheck:0,1
attr WEBS DockerHealthCheck 1
attr WEBS HTTPS 1

Dann wird der Healthcheck Zusätzlich auch über Port 8084 ausgeführt und beide Ports können überwacht werden.
Du hast vermutlich etwas anders gemacht



Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

passibe

Der Fehler
Zitat von: juemuc am 12 März 2024, 11:59:07Unknown cipher type '/tmp/alexa-fhem.cfg'

liegt hier dran:
Zitat von: juemuc am 12 März 2024, 11:59:072024.03.12 11:52:30.026 2: alexa: starting alexa-fhem: /usr/bin/ssh alexa-fhem  -c /tmp/alexa-fhem.cfg

Aus irgendeinem Grund ruft alexa-fhem die ssh binary auf (/usr/bin/ssh) und versucht da das Argument -c zu setzen, was bei SSH die cipher-specification ist, deshalb auch die die Fehlermeldung unkown cipher type.

Keine Ahnung wieso das passiert. Irgendwas scheint bei dir ganz grundlegend falsch zu sein. Am besten du löscht mal in FHEM dein alexa device und startest dann den alexa-fhem Container neu. Dann sollte das alexa-device in FHEM automatisch neu angelegt werden und alles sollte funktionieren.

Wenn es dann immer noch nicht funktioniert ist vermutlich etwas im alexa-fhem-Container nicht richtig konfiguriert.
Falls das der Fall sein sollte:

Es reicht, im compose file ein
    volumes:
      - ./alexa-fhem:/alexa-fhem
einzufügen und dann in das Verzeichnis deine config.json reinzulegen. Dann in FHEM nochmal das alexa-device löschen und dann den Container neustarten. Alles müsste dann automatisch passieren. Wobei, vermutlich musst du dann noch in der Alexa-App den Skill neu verknüpfen.

Hier mal meine config.json, wo du (vermutlich) nur die Einträge in <> ersetzen musst.
Falls du dir wegen des Hostnames unsicher bist, folgender Befehl gibt dir den aus:
sudo docker inspect <NAME DES FHEM CONTAINERS> | grep --after 3 DNSNames
config.json:
{
  "alexa": {
    "port": 3000,
    "name": "Alexa",
    "ssl": false,
    "keyFile": "/certs/alexa-fhem.key",
    "certFile": "/certs/alexa-fhem.crt",
    "nat-pmp": "",
    "nat-upnp": false,
    "applicationId": "amzn1.ask.skill.XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX",
    "oauthClientID": "amzn1.application-oa2-client.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
  },
  "sshproxy" : {
    "description" : "FHEM Connector",
    "ssh" : "/usr/bin/ssh"
  },
  "connections": [
    {
      "name": "FHEM",
      "webname": "fhem",
      "filter": "alexaName=..*",
      "auth": {"user": "<FHEM-USER>", "pass": "<FHEM-PASSWORT>"},
      "uid": "6062",
      "port": "8083",
      "server": "<HOSTNAME DES FHEM CONTAINERS>"
    }
  ]
}

juemuc

Hallo Sidey,

ich weiß nicht, was ich jetzt anders gemacht habe, aber aktuell ist alles "grün". Jetzt muss ich das Thema "Alexa" angehen.

Viele Grüße
Jürgen
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).