Offizielles FHEM Docker Basis Image für verschiedene Plattformen

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

Vorheriges Thema - Nächstes Thema

P.A.Trick

#810
Zitat von: volschin am 15 März 2020, 19:17:18
Ich befürchte, dass hier jemand versucht etwas mit Docker zu machen, was eigentlich ganz einfach ist.

Vielleicht einfach nochmal ein paar Grundlagen lesen.
https://phoenixnap.com/kb/how-to-ssh-into-docker-container

Nun ich sehe in der Anleitung keinen Unterschied zu der Lösung. Ich möchte via SSH auf den fhemuser einloggen. Da helfen mir die anderen Methoden nicht weiter.
Übersehe ich etwas?
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

guhu

Andere Möglichkeit -je nach Anwendungsfall- wäre es auch, einfach über Portainer eine Shell zu öffnen.
FHEM 5.9 auf Synology DS918+ (in Docker), HM-CFG-USB2 mit hmlan, HM-CC-RT-DN, HM-SEC-SC-2, nanoCUL,a-culfw,deCONZ,Brennenstuhl-Steckdosen,-FB
Module:ENIGMA2,SONOS,FRITZBOX,FB_CALLLIST,WDT_TIMER,VCONTROL300,WITHINGS

Wernieman

Ich glaube, hier ist ein grundsätzliches Missverständnis:

Docker <> VM

Was Du willst, ist eigentlich eher eine VM .... eigentlich sollte in Docker nur "ein" Dienst laufen. Was Du willst, sind mehrere Dienste ...
- 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

plin

Zitat von: guhu am 16 März 2020, 11:02:04
Andere Möglichkeit -je nach Anwendungsfall- wäre es auch, einfach über Portainer eine Shell zu öffnen.
docker exec <container> <command>
führt zum gwünschten Ergebnis
FHEM1 (Main) Raspi4 mit CUL, Homematic, SDUINO 433/OOK, zentrale Steuerung
FHEM2 (Keller) x86 mit CUL/hmland, IP-basierte Module
FHEM3 (Erdgeschoss) Raspi2 mit SDUINO 868/GFSK
FHEM4 (Hausanschlussraum), USV und OBIS-Modul
FHEM5 (Docker) mit FHEM2FHEM, InfluxDB

P.A.Trick

Also mal zu meinem Anwendungsfall: Ich steuere über ein Shell Script (via SSH) FHEM. Ja geht auch über HTTPS.
Wozu? Um auf der Shell Dinge zu steuern! Da die Ports von FHEM nicht aus dem Container geführt sind, finde ich
SSH in den Container ok. Ja ich weiß, das entspricht nicht der Docker Philosophie, dass tut das Image ja schließlich auch nicht.
Und wenn ich jetzt noch sage, dass ich sogar einen Cron Dämonen laufen habe, werde ich wahrscheinlich gesteinigt :-) *duckundrennweg*
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

plin

Zitat von: P.A.Trick am 16 März 2020, 15:26:49
... Da die Ports von FHEM nicht aus dem Container geführt sind, finde ich SSH in den Container ok. ...
Mal 'ne Frage: Den Container willst Du nicht für die FHEM-Ports öffnen wohl aber für den SSH-Port? Wo ist da der Unterschied?
FHEM1 (Main) Raspi4 mit CUL, Homematic, SDUINO 433/OOK, zentrale Steuerung
FHEM2 (Keller) x86 mit CUL/hmland, IP-basierte Module
FHEM3 (Erdgeschoss) Raspi2 mit SDUINO 868/GFSK
FHEM4 (Hausanschlussraum), USV und OBIS-Modul
FHEM5 (Docker) mit FHEM2FHEM, InfluxDB

P.A.Trick

Zitat von: plin am 16 März 2020, 15:31:57
Mal 'ne Frage: Den Container willst Du nicht für die FHEM-Ports öffnen wohl aber für den SSH-Port? Wo ist da der Unterschied?

ganz einfach: SSH vertraue ich mehr :-)
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

plin

Zitat von: P.A.Trick am 16 März 2020, 15:39:58
ganz einfach: SSH vertraue ich mehr :-)
Was willst Du denn "steuern"? Start/Stop? Auf welchem Trägersystem läuft Dein conatainer?
Geht

  • docker exec fhemcontainer ps -ef | grep fhem
  • docker exec fhemcontainer kill mypid
  • docker exec fhemcontainer /entry.sh
  • cat myfile | docker exec telnet localhost 7072
  • ...
?
FHEM1 (Main) Raspi4 mit CUL, Homematic, SDUINO 433/OOK, zentrale Steuerung
FHEM2 (Keller) x86 mit CUL/hmland, IP-basierte Module
FHEM3 (Erdgeschoss) Raspi2 mit SDUINO 868/GFSK
FHEM4 (Hausanschlussraum), USV und OBIS-Modul
FHEM5 (Docker) mit FHEM2FHEM, InfluxDB

P.A.Trick

#818
cat myfile | docker exec telnet localhost 7072

^^ das schaue ich mir an! Danke für die Tipps.


*EDIT*

cat myfile | docker exec -u1000 fhem_fhem telnet localhost 7072
^^ das klappt leider nicht. Any idea?
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

Wernieman

- 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

P.A.Trick

Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

Wernieman

Dann probiere bitte erst mal:
docker exec telnet localhost 7072

Was kommt raus?
- 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

plin

telnet versucht Input aus dem Container zu lesen und nicht vom host-System. So geht's
cat myfile  | docker exec --interactive fhem_fhem telnet localhost 7072
FHEM1 (Main) Raspi4 mit CUL, Homematic, SDUINO 433/OOK, zentrale Steuerung
FHEM2 (Keller) x86 mit CUL/hmland, IP-basierte Module
FHEM3 (Erdgeschoss) Raspi2 mit SDUINO 868/GFSK
FHEM4 (Hausanschlussraum), USV und OBIS-Modul
FHEM5 (Docker) mit FHEM2FHEM, InfluxDB

P.A.Trick

#823
Zitat von: plin am 16 März 2020, 18:56:34
telnet versucht Input aus dem Container zu lesen und nicht vom host-System. So geht's
cat myfile  | docker exec --interactive fhem_fhem telnet localhost 7072

Cool - überzeugt ich schmeiße den SSH Dämon raus.
In einem Skript sieht das dann wie folgt aus:

#!/usr/bin/env sh
#
# Description: send FHEM command via ssh to the local telnet daemon
#
# Configuration file: none
#
# Parameters: none
#

ssh 2>/dev/null pi@raspberrypi4 -n "echo "$@" | docker exec --interactive fhem_fhem socat -t50 - TCP:localhost:7072"


Als fcmd.sh speichern und mit chmod +x ausführbar machen.
Vielleicht kann das ja noch jemand gebrauchen. Danke dir plin!

Aufruf mit

fcmd.sh <FHEM CMD>
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

P.A.Trick

Zitat von: P.A.Trick am 16 März 2020, 19:35:42
Cool - überzeugt ich schmeiße den SSH Dämon raus.
In einem Skript (ok mit socat muss nicht unbedingt sein) sieht das dann wie folgt aus:

#!/usr/bin/env sh
#
# Description: send FHEM command via ssh to the local telnet daemon
#
# Configuration file: none
#
# Parameters: none
#

ssh 2>/dev/null pi@raspberrypi4 -n "echo "$@" | docker exec --interactive fhem_fhem socat -t50 - TCP:localhost:7072"


Als fcmd.sh speichern und mit chmod +x ausführbar machen.
Vielleicht kann das ja noch jemand gebrauchen. Danke dir plin!

Aufruf mit

fcmd.sh <FHEM CMD>
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn