Offizielles FHEM Docker Basis Image für verschiedene Plattformen

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

Vorheriges Thema - Nächstes Thema

guhu

Zitat von: MCh76 am 29 Januar 2020, 07:12:28
vielen dank! dann hatte ich guhu's vorschlag wohl missverstanden als er in antwort  #701 meinte:vermutlich hat er den vorschlag so gemeinst erstmal mit dem blanken image zu beginnen und dann nach und nach die benötigten individuellen dateien nachträglich in das dann ja schon vorhandene /opf/fhem mountverzeichnis bzw. deren jeweiligen unterordner zu kopieren.

Ja. Die Frage ist natürlich auch, wieviel externe Dateien Du da überhaupt noch brauchst. Bei mir sind es nur einige *.cfg-Dateien gewesen (Vitodens, Weekdaytimer, ..) das war's dann auch.
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

MCh76

@loredo, guhu
vielen dank für eure erklärungen, dann ist mir jetzt der weg klar wie es weitergehen soll ;-)

FunkOdyssey

Ich nutze bereits seit langer Zeit FHEM, Samba und eine FHEM-Sonos-Container in Docker.
Dies habe ich ähnlich wie hier beschrieben umgesetzt: https://forum.fhem.de/index.php?topic=89745.msg836848#msg836848

Neben dem normalem FHEM-Container (bridged) sind die anderen Container folgendermaßen konfiguriert:

    fhem_sonos:
        build: fhem_sonos
        cap_add:
            - SYS_ADMIN
            - NET_ADMIN
            - NET_RAW
        volumes:
             - ./opt/data/SonosSpeak:/opt/SonosSpeak
        network_mode: "host"



    samba:
        ports:
            - "139:139"
            - "445:445"
        image: dperson/samba
        volumes:
             - ./opt/data/SonosSpeak:/mnt/SonosSpeak
        command: samba.sh -S -u "fhem;pass" -s "SonosSpeak;/mnt/SonosSpeak;no;no;yes"  -g "security = user" -g "ntlm auth = yes"
        networks:
             bridge:
                ipv4_address: x.y.z.d



Das Sonos-Device hat folgende Pfad-Attribute:

   targetSpeakDir /opt/SonosSpeak
   targetSpeakFileHashCache 1
   targetSpeakFileTimestamp 0
   targetSpeakMP3FileDir /opt/SonosSpeak
   targetSpeakURL \\hostname\SonosSpeak



Eigentlich funktioniert alles. Aber leider nur gelegentlich.
Die Wiedergabe der Sprache über "set sonosplayer speak 10 de Test" hat eine enorme Verzögerung; wenn es denn überhaupt klappt.
Über die Google soll die MP3-Datei generiert werden. Die URL ist korrekt und wenn ich diese aus dem Docker-Log manuell aufrufe, so wird mir die Sprache auch abgespielt.
Aber es dauert teilweise viele Minuten bis die MP3-Datei im Samba-Share abgelegt wird. Der Player scheint aber nur eine begrenzte Zeit auf die Datei zu warten.

Im Docker-Log des Sonos-Container sehe ich folgende Zeilen:
21:27:16.847 Load Google generated MP§ (1. Element) from "http://translate.google.com...." to "/opt/SonosSpeak/RINCON_xxxx.mp31"
21:29:26.793 Combine loaded chunks into "/opt/SonosSpeak/RINCON_xxx.mp3"
21:29:26.851 Start temporary playing of "\\hostname\SonosSpeak/RINCON_xxx.mp3"


Wie man sieht, dauert es etwas über 2 Minuten bis die MP3 generiert/geholt/gespeichert wird.

Hat jemand dieses Problem auch?
Kennt jemand die Lösung oder einen Ansatz wo ich suchen muss?





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

FunkOdyssey

Danke, dass du dich damit beschäftigst. Nein, der Aufruf über die URL spielt die Datei direkt ab.

Wernieman

Wenn Du manuell eine Datei ablegst ....

Irgendwo müssen die 2 Minuten herkommen. Also einfach mal manuell einen Schritt nach dem anderen und gucken, wo es hängt ..
- 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

steru85

Hallo zusammen,

ich steige gerade von einem Rasperry auf einen NUC mit Docker um. Das meiste läuft schon.
Habe aber das Problem das ich keine Verbindung zur Fritzbox über das Fritzboxmodul und den FB_Callmonitor hinbekomme.
Bekomme immer den Fehler "Didn't get a session ID".  Boxuser und Passwort habe ich gesetzt. Habe mal versuchshalber im Fritzboxmodul den Repeater im Mesh eingetragen, dieser funktioniert. Fritzbox ist eine 7490.
Auf dem Rasperry funktiontiert es tadelos.
Die IP der Fritzbox kann ich vom Docker aus erfolgreich anpingen.

Hatte jemand dasselbe Problem?

FunkOdyssey

#742
Zitat von: Wernieman am 30 Januar 2020, 18:42:21
Wenn Du manuell eine Datei ablegst ....

Irgendwo müssen die 2 Minuten herkommen. Also einfach mal manuell einen Schritt nach dem anderen und gucken, wo es hängt ..

Deine Hinweise haben mir geholfen. Danke.
Es hat nichts mit Docker zu tun. Egal in welchem Container oder sogar auf dem Host-System habe ich folgenden Ablauf:

wget --verbose -U Mozilla "http://translate.google.com/translate_tts?tl=de&client=tw-ob&q=%20Hallo" -O test2.mp3
--2020-01-30 22:07:02--  http://translate.google.com/translate_tts?tl=de&client=tw-ob&q=%20Hallo
Auflösen des Hostnamens translate.google.com (translate.google.com) ... 2a00:1450:4005:803::200e, 172.217.19.78
Verbindungsaufbau zu translate.google.com (translate.google.com)|2a00:1450:4005:803::200e|:80 ... fehlgeschlagen: Die Wartezeit für die Verbindung ist abgelaufen.
Verbindungsaufbau zu translate.google.com (translate.google.com)|172.217.19.78|:80 ... verbunden.
HTTP-Anforderung gesendet, auf Antwort wird gewartet ... 200 OK
Länge: 2976 (2,9K) [audio/mpeg]
Wird in »test2.mp3« gespeichert.

test2.mp3                 100%[====================================>]   2,91K  --.-KB/s    in 0s     

2020-01-30 22:09:11 (28,3 MB/s) - »test2.mp3« gespeichert [2976/2976]


Mein Debian benötigt zwei Minuten zum Auflösen des IPv6-Hostnamens. Ich war mir nicht sicher, ob ich in Debian die IPv6-Unterstützung ausschalten soll oder im Router. Ich habe mich für den Router entschieden. Damit habe ich das Problem aber nur verschoben. Über IPv4 (oder vorher mit wget -4 getestet) funktioniert alles reibungslos.

mumpitzstuff

Ich habe mich auch mal ein wenig mit Docker auseinandersetzen wollen und kämpfe mit dem Problem, das bereits die Tatsache das dockerd und containerd laufen, die SD Karte massiv belastet wird. Nicht ein einziger Container läuft wie gesagt. Trotzdem schreiben die beiden Prozesse mehrere Gigabyte pro Tag auf die SD Karte.
iostat macht das direkt sichtbar. Mit iotop sehe ich leider nur das dockerd und containerd irgendwas schreiben, hier wird als Menge aber immer nur 0 ausgegeben. Hat jemand eine Ahnung weshalb das so sein könnte bzw. wie ich rausbekommen kann, was dort genau geschrieben wird?

Aber 3-4 Gigabyte pro Tag, ohne das irgendwas an Containern gestartet ist, ist doch nicht wirklich normal bzw. gesund. Wenn ich beide Prozesse stoppe, ist übrigens sofort Ruhe.

Wernieman

Dürfte auch am Mageren Speicher vom PI liegen .. müsste mal meinen "PI-Docker-Cluster" rausholen. habe nur dieses WE keine zeit

@FunkOdyssey

Wenn Du kein IPv6 brauchst, ist es relativ einfach an einem unix-System abgeschaltet. Du hast jetzt "global" abgeschaltet, was ich für die Zukunft nicht tuen würde. Irgendwo bei Docker kann man IPv6-Support abschalten .. oder eben am System
https://www.thomas-krenn.com/de/wiki/IPv6_deaktivieren


ZitatVerbindungsaufbau zu translate.google.com (translate.google.com)|2a00:1450:4005:803::200e|:80 ... fehlgeschlagen: Die Wartezeit für die Verbindung ist abgelaufen.
Nicht Du, google hat ein IPv6 Problem
- 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

mumpitzstuff

Ich habe gestern Docker mit allem was dazu gehört komplett deinstalliert und danach neu aufgesetzt. Container oder irgend was anderes habe ich nicht laufen lassen. Nach rund 8h wurden auf meine SD Karte 400-500MB geschrieben. Auf den Tag hochgerechnet wären das 1,2GB. Das wäre jetzt selbst für eine SSD nicht so toll. Hat dieses Verhalten noch jemand beobachten können (sieht man mit iostat)?

P.A.Trick

Hat jemand einen Tipp für mich, wie man am besten eine Email aus dem Container verschickt?
Leider bietet das Image mein bisher genutztes SSMTP nicht an. Wie macht ihr das?
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

balli1187

Zitat von: P.A.Trick am 10 Februar 2020, 12:21:43
Hat jemand einen Tipp für mich, wie man am besten eine Email aus dem Container verschickt?
Leider bietet das Image mein bisher genutztes SSMTP nicht an. Wie macht ihr das?
Was heißt "bietet das Image nicht an"? Von Haus aus ist Mail Versand doch garnicht implementiert.

Ich mache das über sendEmail in einer Funktion in den 99_myutils. Ein Beispiel ist im Mail-Wikieintrag unter "Raspberry Pi" zu finden.
Das hat den Umzug nach docker ohne weiteres überlebt.


Gesendet von iPhone mit Tapatalk
FHEM auf QNAP im docker, nanoCUL per ser2net an VU+, 2x Echo Dot, 3x HM-ES-PMSw1-Pl, 3x HM-LC-Bl1PBU-FM, 6x Sonoff Basic, div. "Shelly Eigenbauten" von Papa Romeo, ESPRGBWW-Controller, ...
Projekte: Smart Mirror in Spiegelschrank auf RPi Zero

volschin

Und ansonsten musst Du Dir eben das Paket über die Funktion des Images installieren lassen.
Intel NUC+Ubuntu 22.04+Docker+FHEM6
HomeMatic: HM-MOD-RPI-PCB+HM-USB-CFG2+hmland+diverse, HUE: Hue-Bridge, RaspBee+deCONZ+diverse
Amzn Dash-Buttons, Siro Rollos
4xRPi, 4xCO20, OWL+USB, HarmonyHub, FRITZ!Box 7590, Echo Dots+Show8, Logi Circle 2, HomeBridge
TIG Stack (Telegraf, InfluxDB, Grafana)

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