Befehle für docker in fhem?

Begonnen von antonwinden, 19 Mai 2026, 16:43:07

Vorheriges Thema - Nächstes Thema

antonwinden

Kann ich in Fhem (läuft in docker) einen befehl an docker eingeben um einen anderen docker container zu stoppen und zu starten?
Hintergrund:
frigate läuft für die kameras in 1 Container und denn will ich nur bei Abwesenheit laufen lassen.
{system('docker stop frigate')} ergibt nur -1
gruß Anton
KNX, Raspberry, Denon 3313, Philips TV, Xtrend9X00 und viel Optimismus...

passibe

Nicht auf diese Weise, weil das Programm docker im FHEM-Image gar nicht installiert ist.
Der einfachste Weg ist, die Docker Socket (/var/run/docker.sock) an den FHEM-Container weiterzugeben und damit zu interagieren (einfach googeln, wie man das macht, habe das selbst noch nicht implementiert; kenne nur andere Images, die das nutzen (z.B. Watchtower)).

Aber Achtung, das ist ein recht großes Sicherheitsrisiko, weil der FHEM-Container damit quasi den gesamten Host steuern kann. Du solltest auf jeden Fall einen Socket-Proxy dazwischenschalten, ganz ideal wäre vielleicht sogar eine Middleware, die nichts anderes kann als Frigate zu starten und zu stoppen und mit der FHEM z.B. per HTTP interagiert. Dann kannst du Frigate mit einem einfachen HTTP-Request aus FHEM starten/stoppen (idealerweise ist das Docker-Netzwerk dieser Middleware dann auch nur noch mit FHEM verbunden und es handelt sich um ein --internal-Netzwerk).

Wenn dir diese ganzen Sicherheitsthemen aber egal sind, z.B. weil dein FHEM-Server sowieso nicht von außen erreichbar ist o.ä., dann einfach die docker.sock so nutzen (bzw. mit einem Proxy nutzen, der ist schnell aufgesetzt).

Sidey

Du könntest dir auch einen Systemd Dienst erstellen.

Entweder pollt dieser periodisch Fhem nach dem Stand und startet dann vom Host aus den anderen Container.
Oder Du lässt Fhem eine Datei schreiben.
Ein Systemd Job könnte die Datei überwachen und bei Änderungen den Inhalt auswerten.


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

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

Sany

Du kannst frigate per http-api und mqtt "fernsteuern". Muss ja nicht komplett gestoppt werden. Zumindest per mqtt kann man wohl laut Doku camera enabled set on oder off schicken, ansonsten kann man record, detect und snapshot auch ein und ausschalten. Das nutze ich bei mir für die Innencameras, die nur detecten und speichern wenn abwesend.

Bei disabled cameras hat frigate ja quasi nix mehr zu tun, dann kann der Container auch durchlaufen.


Gruß



Sany
fhem als LXC auf Proxmox auf einem minix Z100 , weitere LXC mit ZigBee2MQTT, volvo2mqtt, MariaDB und Grafana. Sowie Homematic, FS20, mySensors, Tasmota (MQTT2), Shelly(MQTT2), kein Z-Wave mehr  ....