Offizielles FHEM Docker Basis Image für verschiedene Plattformen

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

Vorheriges Thema - Nächstes Thema

Loredo

Das ist bei FHEM anders. FHEM kann nicht über das Image aktualisiert werden, nur die Umgebung drum herum.
Das grundsätzliche Design von FHEM lässt das nicht anders zu.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

marty29ak

#241
Hallo, erst mal danke für deine Arbeit uns das Docker Image zu Verfügung zu stellen!!

Allerdings versuche ich mich schon den ganzen Tag  daran das ganze auf meinem Synology System ordentlich ans laufen zu bringen.
Grundsätzlich geht auch erst mal alles wie gewünscht, allerdings lastet das Fhem sobald ich meine fhem.cfg einspiele das NAS komplett aus.
Es funktioniert zwar alles normal weiter aber die vier Prozessoren sind durchgehen auf 100%. Wenn die fhem.cfg original vom Image bleibt habe ich die Effekt nicht. Der Fehler liegt also bei mir nur,....
finde einfach nicht den (sicher dummen) Fehler.
Vielleicht kann ja mal Jemand drüber schauen und mir einen Tip geben?

Gruß Martin

eisler


Mit einem aktuellen 5.9-s18876_v1.10.2 Image habe ich den gleichen Effekt:

root@7fac1843c202:/opt/fhem# ps faxw
  PID TTY      STAT   TIME COMMAND
2120 pts/0    Ss     0:00 bash
2161 pts/0    R+     0:00  \_ ps faxw
    1 ?        Ss     0:00 /bin/bash /entry.sh start
  211 ?        S      0:00 perl fhem.pl fhem.cfg
  214 ?        S      0:00  \_ perl fhem.pl fhem.cfg
  216 ?        S      0:00      \_ sh -c echo n | node -e "console.log(JSON.stringify(process.versions));" 2>&1
  218 ?        Rl     1:22          \_ node -e console.log(JSON.stringify(process.versions));
2160 ?        S      0:00 sleep 0.5
root@7fac1843c202:/opt/fhem# top

top - 08:39:48 up  6:54,  0 users,  load average: 2.62, 1.10, 0.41
Tasks:   8 total,   2 running,   6 sleeping,   0 stopped,   0 zombie
%Cpu(s): 21.3 us, 41.2 sy,  0.0 ni, 37.2 id,  0.2 wa,  0.0 hi,  0.2 si,  0.0 st
KiB Mem :  2047036 total,   194320 free,   662796 used,  1189920 buff/cache
KiB Swap:  1048572 total,  1028840 free,    19732 used.  1201996 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                                     
  218 fhem      20   0  157720  13304  12756 R  99.0  0.6   1:51.57 node                                                                                         
    1 root      20   0   19784   3544   3088 S   0.3  0.2   0:00.39 entry.sh                                                                                     
  211 fhem      20   0   90188  31724   4528 S   0.0  1.5   0:00.23 perl                                                                                         
  214 fhem      20   0   81352  28784   2120 S   0.0  1.4   0:00.00 perl                                                                                         
  216 fhem      20   0    4276    720    656 S   0.0  0.0   0:00.00 sh                                                                                           
2120 root      20   0   19864   3836   3288 S   0.0  0.2   0:00.03 bash                                                                                         
2511 root      20   0   44772   3580   3108 R   0.0  0.2   0:00.00 top                                                                                         
2727 root      20   0    5828    684    620 S   0.0  0.0   0:00.00 sleep

marty29ak

Wenn man die Zeilen für den Telnetport mit der Raute deaktiviert, scheint es das Problem nicht zu geben.

#define allowed_telnetPort allowed
#attr allowed_telnetPort allowedCommands on,off
#attr allowed_telnetPort globalpassword 1
#attr allowed_telnetPort room A_Global
#attr allowed_telnetPort validFor telnetPort
Gruß Martin

eisler

noch mal mit 5.9-s18929_v1.10.3 getestet. Sieht nach einem "node" Problem aus.
Warum das mit 100% CPU hängt ist mir unklar. Der gleiche Befehl via Shell kommt sofort zurück:
root@bc8aa69cf2e8:/opt/fhem# sh -c echo n | node -e "console.log(JSON.stringify(process.versions));" 2>&1
{"http_parser":"2.8.0","node":"10.15.3","v8":"6.8.275.32-node.51","uv":"1.23.2","zlib":"1.2.11","ares":"1.15.0","modules":"64","nghttp2":"1.34.0","napi":"3","openssl":"1.1.0j","icu":"62.1","unicode":"11.0","cldr":"33.1","tz":"2018e"}
root@bc8aa69cf2e8:/opt/fhem#


Grüße
Stephan

Loredo

Zitat von: eisler am 17 März 2019, 13:28:15
noch mal mit 5.9-s18929_v1.10.3 getestet. Sieht nach einem "node" Problem aus.
Warum das mit 100% CPU hängt ist mir unklar. Der gleiche Befehl via Shell kommt sofort zurück:
root@bc8aa69cf2e8:/opt/fhem# sh -c echo n | node -e "console.log(JSON.stringify(process.versions));" 2>&1
{"http_parser":"2.8.0","node":"10.15.3","v8":"6.8.275.32-node.51","uv":"1.23.2","zlib":"1.2.11","ares":"1.15.0","modules":"64","nghttp2":"1.34.0","napi":"3","openssl":"1.1.0j","icu":"62.1","unicode":"11.0","cldr":"33.1","tz":"2018e"}
root@bc8aa69cf2e8:/opt/fhem#



Ich bekomme das bei mir leider nicht nachgestellt.  ???


Zitat von: marty29ak am 17 März 2019, 09:50:32
Wenn man die Zeilen für den Telnetport mit der Raute deaktiviert, scheint es das Problem nicht zu geben.

#define allowed_telnetPort allowed
#attr allowed_telnetPort allowedCommands on,off
#attr allowed_telnetPort globalpassword 1
#attr allowed_telnetPort room A_Global
#attr allowed_telnetPort validFor telnetPort



Der lokale Telnet Port darf nicht beschränkt sein. Das braucht man auch nicht, solange man ihn nicht als "global" definiert.
Wer einen globalen Telnet Port braucht, legt einen separaten an, der dann geschützt werden kann.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

eisler

Hallo Loredo,

danke fürs nachschauen. Ist alles ok. War wohl bloß ein Docker Swarm Problem.

Grüße
Stephan

adnan

#247
Hallo zusammen

Danke für das Docker Image. Ich betreibe mein Setup auf einem raspi 3 und das ganze läuft sehr stabil.

Ein problem habe ich aktuell noch:
FHEM/FhemUtils/uniqueID

D.h. jedesmal wenn ich den container neu erstelle (z.B. um auf das neueste Image zu wechseln), sind die dort abgelegten secrets im Eimer. Mein TelegramBot und der Alexa Skill speichern ihre Secrets in diesem File. Ich muss für den TelegramBot das Token dann nochmals neu setzen bzw. Alexa nochmals neu einrichten.
uniqueID ist irgendwie am host system gekoppelt, was in einem docker setup nicht so vorteilhaft ist.

Hat jemand eine Lösung für dieses Problem?
Von mir aus kann man die uniqueID auch komplett deaktivieren, falls jemand weiss wie das geht. Oder mindestens auf das neue Image migrieren.

kadettilac89

Zitat von: adnan am 21 März 2019, 08:16:15
Hat jemand eine Lösung für dieses Problem?
Von mir aus kann man die uniqueID auch komplett deaktivieren, falls jemand weiss wie das geht. Oder mindestens auf das neue Image migrieren.

Wo liegen die Secrets? Sind das Dateien? Wenn ja, kannst du diese per docker cp in beide Richtungen kopieren ... https://docs.docker.com/engine/reference/commandline/cp/

Alternativ dazu, vorausgesetzt der Fhem-User im Container hat Schreibrechte, könntest das auch direkt aus Fhem machen lassen ... {qx (cp -p /<pfad>/file /opt/fhem/log/file_sik) } ... und beim Zurückspielen genau in umgekehrter Reihenfolge

adnan

ich hab mein komplettes fhem directory als volume in den container ge-mounted.

Mein komplettes fhem und damit auch das File ist  persistent und verschwindet nicht, falls der container bzw. das image neu erstellt werden.
Daher muss ich das nicht kopieren.

Im textfile "FHEM/FhemUtils/uniqueID" werden passwörter, etc. verschlüsselt abgelegt.
Das Problem ist, das das "FHEM/FhemUtils/uniqueID" irgendwie am am host gekoppelt ist. Wenn ich einen neuen container nach einem image update starte, dann ist das wie ein neuer host und alle einträge in das "uniqueID" file sind nicht mehr valide, obwohl noch vorhanden und unverändert.

Loredo

Dieses Problem ist mir nicht bekannt.
Wenn /opt/fhem als ganzes Volume behandelt wird, dann verschwinden Dateien nicht einfach so daraus. Dateien aus und in den Container zu kopieren ist nicht der richtige Weg dafür.
Bitte die README.md beachten.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

arallon

Betreibt das Image noch jemand auf Synology mit alexa-fhem?

Habe das heute versucht ans laufen zu bekommen. Wenn ich das aus dem Terminal starte mit dem user "fhem" (also alexa-fhem), dann startet der Service und ist erreichbar unter Port 3000.
Starte ich das ganze via definiertem Device bekomme ich immer das Problem mit den Berechtigungen auf dem home dir. (Ich habe ein Ordner eingebunden für /opt/fhem).
chmod Befehl als fhem/root haben bisher keine Abhilfe geschafft. Stehe wohl irgendwie auf dem Schlauch gerade.

Jemand ein Denkanstoss? Noch der letzte Step damit ich vom rasp umziehen kann.

Danke und Gruss

Loredo

Die Berechtigungen für /opt/fhem werden beim Start des Containers automatisch durch das entry-Script korrigiert.
Ich verstehe nicht, was du hiermit meinst:


Zitat von: arallon am 29 März 2019, 20:29:26
Starte ich das ganze via definiertem Device bekomme ich immer das Problem mit den Berechtigungen auf dem home dir.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

arallon

#253
ah ich meinte, wenn ich ein Device (alexa) im fhem anlege und dort via set Befehl starte.
Dann gibts das reading, dass etwas mit den Berechtigungen auf das home directory nicht passt und ein chmod 755 ausgeführt werden sollte.

alexaFHEM.ProxyConnection
error; user homedir writable by group/other ('chmod 755 /opt/fhem' required)


edit: das Problem scheint gelöst (alles neu und im terminal chmod hat jetzt geklappt) jetzt muss ich mir das mal anschauen, da ich noch 0.4.4 verwendet hatte vorher.

adnan

Zitat von: Loredo am 23 März 2019, 09:38:16
Dieses Problem ist mir nicht bekannt.
Wenn /opt/fhem als ganzes Volume behandelt wird, dann verschwinden Dateien nicht einfach so daraus. Dateien aus und in den Container zu kopieren ist nicht der richtige Weg dafür.
Bitte die README.md beachten.

Wie gesagt, ich kopiere die Dateien nicht aus dem Container. Ich mounte mein fhem root verzeichnis in den container als volume, gemäss der Anleitung. Ich nutze Docker-Compose für mein Setup.

Anders gefragt:
Hat jemand Telegram oder alexa-fhem am laufen? Falls ja, funktionieren diese zwei Geräte nach einem Image-Update noch korrekt?

Bei mir gehend diese zwei Geräte "kaputt", weil die tokens nach einem neuen image nicht mehr OK sind. Bei diesen zwei Plugins werden die tokens in der oben genannten Datei "uniqueID" gespeichert.