Offizielles FHEM Docker Basis Image für verschiedene Plattformen

Begonnen von Loredo, 28 Juli 2018, 21:24:57

Vorheriges Thema - Nächstes Thema

Sedonion

Darf ich mich da einklinken?
Ich stelle auch gerade um auf alexa-fhem im eigenen Container mit gleichen Problemen.

Schreibrechte auf das Verzeichnis musste ich auch setzen, aber auf dem Verzeichnis auf dem Host, das in den Container gemappt wird.

Mein Problem:
Der alexa-fhem Container liest brav die devices aus dem fhem Container aus.
Ebenso verbindet er sich mit dem Vereinsserver.
Aber: fhem kann die alexa-fhem.cfg nicht rüber kopieren.
Auch wenn ich alexaFHEM-sshUser fhem setze, verbindert er nicht.

2022.09.15 10:57:09 3: alexa: using ssh cmd /usr/bin/ssh 172.17.0.9
ssh: connect to host 172.17.0.9 port 22: Connection refused
ssh: connect to host 172.17.0.9 port 22: Connection refused


Was kann ich tun?
fhem auf HP Microserver Gen8 mit Openmedivault
- 4 Milight RGB Bulbs an Milight Wifi Controller
- MAX Cube mit 2 Heizkörperthermostaten und 2 Fenstersensoren
- VU+ Solo4k Enigma2
- Fritzbox mit Callmonitor

MadMax-FHEM

#1636
Zitat von: Sedonion am 15 September 2022, 11:00:26
Aber: fhem kann die alexa-fhem.cfg nicht rüber kopieren.
Auch wenn ich alexaFHEM-sshUser fhem setze, verbindert er nicht.

Ich wüsste nicht wozu fhem die alexa-fhem.cfg kopieren wollte/sollte (oder dies täte).

alexa-fhem (der nodejs Teil) braucht diese Konfiguration, um zu wissen wo fhem läuft und wie darauf zugegriffen werden soll: fhem-connection
ebenso Einträge bzgl. der Verbindung zum Vereinsserver...

EDIT: sie liegt bei einer Installation von alexa-fhem normalerweise im Bereich wo fhem per "Edit Files" Zugriff hat, damit man die Konfiguration aus fhem heraus editieren kann (das war's soweit mir bekannt)...

Beides läuft doch?

Was das Alexa-Modul tut ist, sich um Start/Stop von alexa-fhem zu kümmern.
Normalerweise läuft das lokal bzw. kann man eben auch angeben, dass es auf einem anderen Rechner (und anderem User) läuft.
Dazu muss eine passwortlose ssh-Verbindung des Users fhem auf dem einen Host (dort wo fhem unter dem User fhem läuft) als User unter dem alexa-fhem auf dem anderen Host läuft bestehen.

Unter nicht Docker gibt es Anleitungen:
https://heinz-otto.blogspot.com/2020/09/ssh-mit-public-key.html
https://forum.fhem.de/index.php/topic,95291.15.html
usw.

Wie man sowas ziwschen 2 Docker Containern macht: keine Ahnung...

Hatte ich ja hier schon geschrieben: https://forum.fhem.de/index.php/topic,94817.msg1235032.html#msg1235032

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)

Sedonion

Zitat von: MadMax-FHEM am 15 September 2022, 11:38:10

Wie man sowas ziwschen 2 Docker Containern macht: keine Ahnung...

Hatte ich ja hier schon geschrieben: https://forum.fhem.de/index.php/topic,94817.msg1235032.html#msg1235032

Gruß, Joachim
Danke Dir.
Da hier sowohl chrizza87 als auch sidey diese Konstellation, in diesem Thread beschrieben, laufen haben, wollte ich hier nochmal nachfragen.
fhem auf HP Microserver Gen8 mit Openmedivault
- 4 Milight RGB Bulbs an Milight Wifi Controller
- MAX Cube mit 2 Heizkörperthermostaten und 2 Fenstersensoren
- VU+ Solo4k Enigma2
- Fritzbox mit Callmonitor

MadMax-FHEM

Zitat von: Sedonion am 15 September 2022, 12:04:42
Danke Dir.
Da hier sowohl chrizza87 als auch sidey diese Konstellation, in diesem Thread beschrieben, laufen haben, wollte ich hier nochmal nachfragen.

Mir bekannt ;)

Wollte eher darauf hinaus, dass es (vermutlich) nicht um das Kopieren einer Datei geht, sondern um das Starten eines Programmes (alexa-fhem)... 8)

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)

Wernieman

Wobei es im Docker/Kubernetis Umfelt relativ ungewöhnlich ist, Infos per ssh unter Containern auszutauschen. z.B. ein geshartes Dateisystem ist da besser ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

MadMax-FHEM

Zitat von: Wernieman am 15 September 2022, 12:12:48
Wobei es im Docker/Kubernetis Umfelt relativ ungewöhnlich ist, Infos per ssh unter Containern auszutauschen. z.B. ein geshartes Dateisystem ist da besser ...

Wie geschrieben denke ich nicht, dass es um "Infos" oder Dateien/Dateiinhalte geht.

Sondern: das Alexa-Device in Container A also im fhem-Container (oder wie immer das heißt) "kontrolliert" (start/stop etc.) alexa-fhem (nodejs Programm) in Container B

Ohne Docker:

entweder lokale Installation von fhem und alexa-fhem -> ganz einfach

getrennte Installation, dann eben ssh-Zugriff ohne Passwort für fhem-User (A) auf B, damit das dort installierte alexa-fhem gesteuert werden kann (kenne/kann ich auch)

Wie das eben im Docker-Umfeld geht, ist das worum es (denke ich) hier geht...
(oder man sorgt dafür, dass alexa-fhem startet/läuft und ignoriert die Meldung des Alexa-Devices ;)  )

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)

Wernieman

Ach sooo .... eigentlich startet bei Docker ein Container keinen 2. (Mit Ausnahme von speziellen Lösungen wie Docker2Docker). Du würdest auch keinen Server nehmen, der einen kompletten 2. hoch/runterfährt ... (Wobei es diesbezüglich bekanntlich Ausnahmen giebt)

Insofern kann ich hier auch nicht helfen ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

MadMax-FHEM

Naja es geht nicht drum einen Container zu starten, das würde das Alexa-Device in fhem (im fhem-Container) auch nicht "glücklich" machen.

Ich weiß nicht wie ich es sonst beschreiben soll, ich versuch's noch mal:

das Alexa-Device startet/stoppt per "Consolen-Commando" (= "Programmaufruf") das alexa-fhem "Programm".

Im einfachsten Fall ist beides auf dem selben System/Rechner/Server/... installiert, also das Alexa-Device (fhem) kann das dann einfach aufrufen.

Wenn man eine verteilte Installation auf "bare metal" hat, dann kann man das Alexa-Device in fhem so konfigurieren, dass es den (normalerweise simplen lokalen Aufruf) eben per ssh "remoten" kann.
(dazu muss aber fhem sich remote OHNE PW einloggen können und dann alexa-fhem ausführen dürfen)

Letzteres ist ja im prinzip simpel und mehrfach im Internet und fhem Forum beschrieben (gut nicht immer speziell für alexa-fhem / Alexa-Device aber das ist ja dann nur ein Attribut beim Alexa-Device, wenn eben PW-loser Zugang per ssh besteht).

Aber wie ist es, wenn man per ssh von einem Container ein Programm/Befehl/... in einem anderen Container aufrufen "möchte"?

Am einfachsten: der Container alexa-fhem läuft und dort ist alles ok (Verbindung zu fhem per http[ s ] besteht und Verbindung zum fhem-Vereins-Server besteht usw.) und alex-fhem wird automatisch gestartet UND man ignoriert einfach, dass sich das Alexa-Device (in fhem im fhem Container) "beschwert", dass eben alexa-fhem nicht laufen würde bzw. ja nicht mal installiert wäre.

Denn: esfunktioniert ja alles, nur das Alexa-Device ist "unzufrieden" und zeigt dies halt (zurecht? ;) ) an...

(diese Meldung ist "logisch", da ja das Alexa-Device im fhem Container keine alexa-fhem Installation finden kann, diese befindet sich ja im alexa-fhem Container)

Jetzt dürfen mal die Docker-Spezialisten ran ;)

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)

Wernieman

Ein Conainter ist immer ein "Programm", d.h. wenn Du eben das "alexa-fhem Programm" stoppen, willst, stoppst Du eben den Container ..... so ist eben die Grundlage von Docker.

Du kannst auch einen Container so bauen, das er vergleichbar wie eine VM arbeitet, d.h. Du hast eine ssh-Server UND das "alexa-fhem Programm" in einem Container .. das entspricht nur eben nicht der "micro-Service" Docker Idee.

Was mir aber einfällt .. Du kannst den SSH-Aufruf doch auf den Host umleiten und dort dann den Container (und damit das "alexa-fhem Programm") starten/stoppen.

Wie man das nur in dem speziellen Umsetzt ... das müssen andere klären ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

MadMax-FHEM

Mir ist klar, dass ein Container auch nur ein Programm ist bzw. halt docker mit Parameter für den Container aufgerufen wird.

ABER: das Alexa-Device WEISS NIX VON DOCKER sondern will DIREKT das alexa-fhem Programm starten/prüfen (entweder lokal auf demselben Rechner oder halt per ssh / mehr ist nicht implementiert).

Das habe ja nicht ich so eingebaut, es ist halt nun mal so im Alexa-Modul implementiert.

D.h. solange es keine Möglichkeit gibt dem Alexa-Device (im fhem Container) irgendwie ssh-Zugriff DIREKT auf das "Programm" alexa-fhem (NICHT den Docker/Container!) zu geben wird das Alexa-Device einfach "beleidigt" bleiben.

Aber (noch mal): es funktioniert ja auch ohne das prima (es wird eben nur nicht angezeigt, dass alles eigentlich funktioniert).

Ich wollte ja nur Klarheit in den Sachverhalt bringen.

Ich selbst installiere lieber "bare metal"...
...bzw. nutze Docker nur wo es für mich Sinn macht (z.B. SW-Development für Generierumgebung: immer gleiche Voraussetzungen für alle die eine Generierung anwerfen usw.)...

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)

Sidey

#1645
Zitat von: MadMax-FHEM am 15 September 2022, 14:18:18
ABER: das Alexa-Device WEISS NIX VON DOCKER sondern will DIREKT das alexa-fhem Programm starten/prüfen (entweder lokal auf demselben Rechner oder halt per ssh / mehr ist nicht implementiert).

Genau so ist das FHEM Alexa Modul gebaut.
Ich habe auch schon darüber nachgedacht, ob es sinnvoll ist, eine SSH Verbindung auf den alexa-fhem-container zu ermöglichen, allerdings stoppt man keine Programme in einem anderen Container.

Mir fällt auch nichts ein, wieso wir das bräuchten, denn der alexa-fhem-container kümmert sich ja bereits darum, dass die Alexa nodejs Komponente läuft und überwacht diese auch.

Die Anzeige im FHEM Modul könnte der Maintainer ändern und überwachen, ob sich das nodejs Alexa Programm verbunden hat.
Meinetwegen könnte ich auch eine Art Lebenszeichen aus dem Container an das Modul senden, wenn es eine passede Schnittstelle bietet.

Grüße Sidey
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem

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

maddhin

Hallo,

mal eine Frage zu -e PIP_PKGS="package1 package2":

Kann, oder besser: wie kann ich hier die --upgrade Option nutzen? Ich würde gerne ein pip install --upgrade pip machen... -e PIP_PKGS="--upgrade pip" wird wohl nicht funktionieren, oder doch?

Sidey

#1647
Zitat von: maddhin am 16 September 2022, 11:18:27
Kann, oder besser: wie kann ich hier die --upgrade Option nutzen? Ich würde gerne ein pip install --upgrade pip machen... -e PIP_PKGS="--upgrade pip" wird wohl nicht funktionieren, oder doch?

Was ist das Ziel, welches Du verfolgst?
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem

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

maddhin

in diesem Fall um die aktuellste Version von PIP zu installieren. Ich kämpfe im Moment sehr damit fhempy (und insbesondere die dependency "cryptography") zu installieren. Das mag irgendwie alles nicht mit dem bullseye image (auf RPI2) zu funktionieren.

Sidey

Zitat von: maddhin am 16 September 2022, 22:24:21
in diesem Fall um die aktuellste Version von PIP zu installieren. Ich kämpfe im Moment sehr damit fhempy (und insbesondere die dependency "cryptography") zu installieren. Das mag irgendwie alles nicht mit dem bullseye image (auf RPI2) zu funktionieren.


Probier mal das debian Paket "libglib2.0" zu installieren. Wenn das nicht klappt, setze ich mir einen RPI2 auf und stelle es nach. Auf AMD64 klappts damit.
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem

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