Eine zweite FHEM Instanz auf einem Raspberry Pi oder Banana Pi einrichten

Begonnen von NewRasPi, 20 Januar 2019, 20:15:40

Vorheriges Thema - Nächstes Thema

NewRasPi

Zitat von: Amenophis86 am 21 Januar 2019, 21:35:59
Freut mich schon mal, dass es geht. Allerdings wären noch Fragen offen:
Was ist mit dem Logfile Fehler?
Unter welchem User läuft dein Fhem zwei?
Wenn es nicht fhem ist, dann kann auch das stop aus dem. Skript nicht gehen. Dieses killt in beiden Fällen aktuelle alle Prozesse des User Fhem, also fhem eins und fhem zwei.
Hallo Amenophis86
Das Logfile habe ich jetzt wieder auf meine SSD Festplatte umgeleitet.
Die Rechte für den User fhem habe ich unter "cd /opt" den Befehl
"sudo chmod -R a+w fhem"
nachgeholt.
Den User unter dem FHEM läuft finde ich jetzt nicht heraus. Pauschal hätte ich mal den User fhem unterstellt.
Der Befehl "/etc/init.d/fhem2 stop" ergibt immer noch einen Fehler.
Kann es sein das auf dieser zusätzlichen Instanz auch keine Update mehr gehen?
Schöne Grüße
Elmar

Edit: unter top steht der Benutzer fhem
Edit2: Der Befehl "sudo /etc/init.d/fhem2 stop" ergibt keinen Fehler zurück. Ausgeführt wird es aber wohl trotzdem nicht, nachdem "/etc/init.d/fhem2 status" immer noch "fhem2 is running" anzeigt.
pi@bPi:~ $ sudo /etc/init.d/fhem2 status
fhem2 is running
pi@bPi:~ $ sudo /etc/init.d/fhem2 stop
Stopping fhem2...
pi@bPi:~ $ sudo /etc/init.d/fhem2 status
fhem2 is running


Raspberry Pi 2 Mod B + Raspberry Pi 3 + Raspberry Pi4; HM Lan Adapter; 8 Kanal Relaiskarte; ca. 15x 1wire Temperatur Sensor DS18B20; 10x HC-SR501 Bewegungsmelder; 9x HM Rauchmelder HM-Sec-SD; HM Funk Fenstersensoren; HM Strommess-Zwischenstecker;

Amenophis86

Wenn beide Instanzen unter dem User fhem laufen, dann muss bei top u fhem ja auch zwei Instanzen zu sehen sein. Ist das nicht der Fall, dann läuft eine nicht unter dem User Fhem oder gar nicht.

Das stop Skript killt aktuell alle Prozesse des User Fhem. Somit musst du rausfinden ob beide unter fhem laufen.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

connormcl

Vielen Dank für den Thread - leider derzeit noch absolut Notwendig.

Es gibt viele Hardware und Softwareprobleme, die FHEM derzeit noch zum erliegen bringen können - und viele Sachen, die links und rechts in FHEM-Tutorials genannt werden, sind leider nicht langzeitstabil oder haben Effekte, wenn man zu viele Geräte hat.

Die Kapselung in mehreren Instanzen habe ich mir auch schon überlegt um bspw. das Jeelink RFM12 hang-Problem abzufangen.
Glücklicherweise ist FHEM so flexibel, das das geht.

Otto123

Zitat von: Amenophis86 am 22 Januar 2019, 10:47:10
Somit musst du rausfinden ob beide unter fhem laufen.
Was heisst hier rausfinden? In der fhem.pl wird doch auf den user fhem umgeschaltet? Wie sollte es anders sein, wenn die fhem.pl an der Stelle nicht angepasst wird?
Kurzer Auszug aus der Doku:
ZitatFalls FHEM als root gestartet wurde, und ein OS-Benutzer fhem existiert, dann wechselt FHEM nach dem start zu diesem Benutzer (via setuid).
Also müsste man die zweite Instanz anders starten, ein anderer User (nicht mit root Recht) und dann hat man getrennte User ohne die fhem.pl anzufassen.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Amenophis86

Schau an Otto, war mir nicht bewusst. Danke für die Info.

Naja ich würde den kill Prozess auf die PID umbauen, dann hast du nicht das Problem mit dem User. Aber laut dem TE läuft das zweite Fhem ja nicht unter dem User fhem bzw. Er hat es noch nicht bestätigt. Und sonst würde mir aktuell noch kein Grund einfallen, wieso stop nicht gehen soll.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

NewRasPi

Zitat von: Amenophis86 am 22 Januar 2019, 12:43:17
Schau an Otto, war mir nicht bewusst. Danke für die Info.

Naja ich würde den kill Prozess auf die PID umbauen, dann hast du nicht das Problem mit dem User. Aber laut dem TE läuft das zweite Fhem ja nicht unter dem User fhem bzw. Er hat es noch nicht bestätigt. Und sonst würde mir aktuell noch kein Grund einfallen, wieso stop nicht gehen soll.
Hallo Amenophis86, hallo Otto und alle anderen
ich musste erst mal rausfinden, wie ich es auseinander halten kann, wer den aktuell im Putty Fenster mit "top" den "perl Command" auslöst.
Im Log der fhem2 Instanz steht aber das es unter user:pi läuft :-(
Jetzt weiß ich nicht wie ich das auf user:fhem ändern könnte.
Eventuell wäre ja ein neuer User z.B. fhem2 eine Möglichkeit?
Es ist schon nicht gerade einfach diese Geschichte mit einer weiteren Instanz - auch weil ich ja keine Möglichkeiten sehe, unter wem es eingerichtet und auf welchen Pfad es liegen soll. Für die Standart Nutzung ist das bestimmt ein großer Vorteil.
Schöne Grüße und vielen Dank
Elmar

P.S. Als User pi darf man im FHEM kein Update machen?!
P.P.S. Nur mal so ein Gedanke: ginge es bei einem Usernamen "Stop-Befehl" ein "offenes Ende" zu lassen?
So nach dem Beispiel, fhem oder fhem1 oder fhem2 ... egal, alle die als fhem??? etwas starten können damit beendet werden. 

Raspberry Pi 2 Mod B + Raspberry Pi 3 + Raspberry Pi4; HM Lan Adapter; 8 Kanal Relaiskarte; ca. 15x 1wire Temperatur Sensor DS18B20; 10x HC-SR501 Bewegungsmelder; 9x HM Rauchmelder HM-Sec-SD; HM Funk Fenstersensoren; HM Strommess-Zwischenstecker;

Amenophis86

mach doch einfach mal bitte folgendes:

1. Beide FHEM Instanzen müssen laufen, sowie du sie immer laufen lässt
2. Mach top auf gib u ein und dann fhem und poste das Ergebnis hier.

Dann sehen wir endlich mal, wie es wirklich aussieht bei dir und machen dann weiter :)
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

NewRasPi

Hallo

Tasks: 160 total,   1 running, 158 sleeping,   0 stopped,   1 zombie
%Cpu(s):  0,7 us,  1,3 sy,  0,0 ni, 98,0 id,  0,0 wa,  0,0 hi,  0,0 si,  0,0 st
KiB Mem :  1022600 total,   593728 free,   168452 used,   260420 buff/cache
KiB Swap:   102396 total,   102396 free,        0 used.   791384 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
2667 fhem      20   0   35696  28988   4436 S   0,0  2,8   0:10.49 perl
2981 fhem      20   0   27536  20728   1188 S   0,0  2,0   0:00.09 perl



Raspberry Pi 2 Mod B + Raspberry Pi 3 + Raspberry Pi4; HM Lan Adapter; 8 Kanal Relaiskarte; ca. 15x 1wire Temperatur Sensor DS18B20; 10x HC-SR501 Bewegungsmelder; 9x HM Rauchmelder HM-Sec-SD; HM Funk Fenstersensoren; HM Strommess-Zwischenstecker;

NewRasPi

Nochmal hallo
das top und pi ergibt:
Tasks: 159 total,   2 running, 156 sleeping,   0 stopped,   1 zombie
%Cpu(s):  3,1 us,  1,9 sy,  0,0 ni, 95,0 id,  0,0 wa,  0,0 hi,  0,1 si,  0,0 st
KiB Mem :  1022600 total,   593160 free,   168980 used,   260460 buff/cache
KiB Swap:   102396 total,   102396 free,        0 used.   790846 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
31095 pi        20   0   35260  28644   4460 R  10,2  2,8   0:07.56 perl
9759 pi        20   0    8200   1808   1268 R   1,0  0,2   0:00.72 top
2830 pi        20   0  139396  16312  12096 S   0,3  1,6   0:47.46 lxpanel
2698 pi        20   0    9780   3616   2796 S   0,0  0,4   0:00.28 systemd
2699 pi        20   0   11308   1512    168 S   0,0  0,1   0:00.00 (sd-pam)

Raspberry Pi 2 Mod B + Raspberry Pi 3 + Raspberry Pi4; HM Lan Adapter; 8 Kanal Relaiskarte; ca. 15x 1wire Temperatur Sensor DS18B20; 10x HC-SR501 Bewegungsmelder; 9x HM Rauchmelder HM-Sec-SD; HM Funk Fenstersensoren; HM Strommess-Zwischenstecker;

Amenophis86

Jetzt die Frage, wie lange die beiden Instanzen schon laufen müssten vor der Abfrage? Ich würde behaupten, dass es sich bei der zweiten Instanz unter fhem um einen fork handelt und bei dem perl Prozess unter pi um dein zweites FHEM.

Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

NewRasPi

Hallo
das "beschäftigen beider FHEM ergibt das:
Tasks: 158 total,   1 running, 156 sleeping,   0 stopped,   1 zombie
%Cpu(s):  2,7 us,  0,6 sy,  0,0 ni, 96,8 id,  0,0 wa,  0,0 hi,  0,0 si,  0,0 st
KiB Mem :  1022600 total,   599440 free,   161708 used,   261452 buff/cache
KiB Swap:   102396 total,   102396 free,        0 used.   798066 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
2420 mpd       20   0  197396  16680  10996 S   5,3  1,6   0:08.10 mpd
31095 pi        20   0   35260  28648   4464 S   4,6  2,8   0:11.30 perl
11894 fhem      20   0   27604  22060   2424 S   2,3  2,2   0:05.17 perl
12444 pi        20   0    8228   1764   1196 R   1,3  0,2   0:01.47 top



Ich hatte die erste FHEM Instanz beendet. Dann ist nur der User pi als perl Benutzer zu sehen.
Wenn beide laufen ist der User fhem und ein User pi mit perl beschäftigt.
Raspberry Pi 2 Mod B + Raspberry Pi 3 + Raspberry Pi4; HM Lan Adapter; 8 Kanal Relaiskarte; ca. 15x 1wire Temperatur Sensor DS18B20; 10x HC-SR501 Bewegungsmelder; 9x HM Rauchmelder HM-Sec-SD; HM Funk Fenstersensoren; HM Strommess-Zwischenstecker;

NewRasPi

Die Dateien im /etc/init.d sind jedenfalls dem gleichen Eigentümer und die gleichen Rechte:
pi@bPi:/etc/init.d $ ls -l
insgesamt 172
.......
-rwxr-xr-x 1 root root 1442 Jul 14  2018 fhem
-rwxr-xr-x 1 root root 1449 Jan 22 10:38 fhem2
.......


Warum startet dann die zweite Instanz als User pi - kann man das irgend wo beeinflussen?
Raspberry Pi 2 Mod B + Raspberry Pi 3 + Raspberry Pi4; HM Lan Adapter; 8 Kanal Relaiskarte; ca. 15x 1wire Temperatur Sensor DS18B20; 10x HC-SR501 Bewegungsmelder; 9x HM Rauchmelder HM-Sec-SD; HM Funk Fenstersensoren; HM Strommess-Zwischenstecker;

NewRasPi

Auch root darf das fhem2 nicht beenden!
root@bPi:/etc/init.d# /etc/init.d/fhem2 stop
Stopping fhem2...
pkill: invalid user name: fhem2


Im Browser Firefox ist die orginale erste Instanz dann weg. Die neue fhem2 geht noch.
Bei der Abfrage was User fhem macht mit "top" und "fhem" ist dann alles leer.
Raspberry Pi 2 Mod B + Raspberry Pi 3 + Raspberry Pi4; HM Lan Adapter; 8 Kanal Relaiskarte; ca. 15x 1wire Temperatur Sensor DS18B20; 10x HC-SR501 Bewegungsmelder; 9x HM Rauchmelder HM-Sec-SD; HM Funk Fenstersensoren; HM Strommess-Zwischenstecker;

Amenophis86

Also ist es wie gedacht, fhem2 wird durch pi gestartet und ausgeführt. Das heißt jetzt müssen wir schauen, wie wir das ändern.

Welches Betriebssystem hast du drauf?
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

Otto123

Zitat von: Amenophis86 am 22 Januar 2019, 19:24:00
fhem2 wird durch pi gestartet
Er hat ihn doch unter Garantie als pi im Script gestartet? Beim Boot als Service passiert das bestimmt nicht. Falls die Rechte stimmen.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz