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

Hallo Forum
ich hatte irgend wo gelesen, das jemand sogar drei bis vier FHEM Instanzen auf einem Raspberry Pi eingerichtet hat.
Ich würde gerne neben dem Standart Verzeichnis /opt/fhem ein weiteres z.B. /opt/fhem2 einrichten.
Damit müsste es ja genau abgegrenzt sein. Bei den Port würde ich die WEB auf 8086, die WEBphone auf 8087 und die WEBtablet auf 8088 einstellen.
Wenn sich das gegenseitig nicht behintert wäre eine klare Trennung möglich.
In diesem Beitrag,
https://forum.fhem.de/index.php/topic,8580.msg44401.html#msg44401
wurde 2012 schon mal kurz ein "Ja" zu dieser Frage gegeben.
Leider ist meine weitere Suche erfolglos geblieben.
Mir würde eine kleine Start- Hilfestellung sehr helfen.
Der Hintergrund für diese Gestaltung ist, man könnte auf dieser zusätzlichen FHEM Instanz nur Überwachungskameras zusammen fassen und diesen im Heimnetzwerk ohne Benutzer und Passwort erreichbar machen. (alternativ müsste noch ein weiterer Raspberry laufen)
Schöne Grüße
Elmar   
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;

Peteruser

Hallo,
per Docker sollte das tatsächlich machbar sein,  mir erschließt sich der Sinn aber nicht.

1. Wenn die Cam kein Gateway bekommen, dann können die nicht raus, damit sollte das schon passen.
2. Eigenes zusätzliches WLan für die Cam

Wenn die Cam aber von aussen nicht per Port Weiterleitung erreichbar sind, dann verstehe ich den Aufwand nicht. Gibt es noch andere Gründe für die Aktion?

Grüße Peter
Ubuntu+Debian FHEM + ESPEasy + Homematic + ConBee + DUROFERN

NewRasPi

Hallo Peter
von außen komme ich per VPN auf alle Raspberry und den Kameras. Nur intern z.b. auf dem TV ist es äusserst mühselig immer den Benutzer und das Passwort mit der TV Fernbedienung einzugeben. Da sich der für die Kameras zuständige Raspberry meistens sowieso "langweilt" könnte dieser doch etwas zusätzliche Arbeit übernehmen.
Hoffentlich macht das den Grund besser nachvollziehbar.
Grüße Elmar
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;

Deudi

Wenn wie im ersten Post geschrieben zwei FHEM auf dem gleichen pi laufen sollen, hast du schon alles beschrieben was du brauchst: Ein eigenes Verzeichnis und andere Portnummern. Ggf. musst du für das Starten mittels systemd noch einen zweiten Service einrichten. Ist auch ganz einfach. Alte Datei kopieren in z.b. fhem2.service, anpassen und starten. Nur falls du irgendwelche Werte zwischen den beiden Instanzen austauschen willst, kannst du diese mittels FHEM2FHEM verbinden, aber aufpassen, dass du keine Schleife baust.

P.S.: Falls sich wieder jemand über den Sinn Gedanken macht: Ich nutze das, um potentiell blockierende Module auszulagern. Ist im Forum schon hier und da diskutiert worden.
Gigabyte Brix, Ubuntu 16.04.3 LTS, Homematic, Z-Wave, EnOcean, Shelly@MQTT, SIGNALduino, JeeLink DAVIS-Sketch

Wzut

Ich habe zum Modul schreiben auch oft mehr als ein FHEM auf dem Raspi :)
Dir und Ports trennen wie im ersten Post schon geschrieben reicht, allerdings nicht nur die WEB Devices, das Telnet Device nicht vergessen ! 
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Wernieman

Nur für ein 2. Web-Device brauchst Du Doch kein 2. FHEM? Du kannst mehr als eines definieren ... also eines für "extern" und eines ohne Passwort für Intern.

Btw:
Ich hoffe, Du hast Dein externes FHEM gesichert?
- 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

NewRasPi

Hallo - vielen Dank für Eure Antworten.
Einen Versuch habe ich ja schon gemacht, unter /opt/fhem2 das ganze Verzeichnis aus /opt/fhem kopiert und dann die Ports ausnahmsweise in der fhem.cfg geändert. (auch den Telnet Port)
Damit allein macht es aber keine Anstalten zu starten. Da fehlt mir das Wissen wo man dem System mitteilen kann, das es jetzt auch die Daten im zusätzlichen Verzeichnis startet.
Eine Datei "fhem.service" oder *.service" finde ich nicht. Bitte geb mir noch eine Info wo diese Datei zu finden ist.
Bestimmt muss diese neue Start Datei auch noch in einer anderen "angemeldet" werden?
@ Wernieman
Ist dann der "Rest" von dem FHEM noch "Sicher", wenn da ein zusätzliches WEB2 Device ohne Benutzer und Passwort angelegt wird?
Natürlich ist mein Netzwerk hinter einer Firewall der Fritzbox ohne geöffnete Ports hoffentlich sicher. Das Fachwissen von normal sterblichen geht natürlich
auch nicht so weit wie das von Euch Spezialisten. Auch darum hoffe ich hier im Forum das eine oder andere zu lernen.
Euch allen noch mal vielen Dank für die Unterstützung.
Schöne Grüße
Elmar 
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;

Wernieman

Wenn der Zugang ohne PW aus dem netz nicht erreichbar ist und Du eventuell noch "Befehle" einschränkst, ist es sicher.

Das Sicherheits-Problem bei FHEM ist, das Du über die Eingabezeile oben beliebige Befehle, incl. perl, eingeben kannst und Du somit als "User fhem" Zugriff aufs System hast. Natürlich aber nur soviel, wie die jeweilige FHEM-Web-Instanz erlaubt.
- 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

Amenophis86

Die Frage zum start ist, wie du aktuell startest über init.d (/etc/init.d) oder systemd (/etc/systemd) da kannst du mal rein schauen und siehst die entsprechenden Dateien welche du kopieren und anpassen kannst.

Ich habe auch zwei Instanzen auf einem Pi. Eine welche alles über das Internet abgreift und auch mal blockieren kann und eine für alle anderen Aufgaben, welche nicht blockieren 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 21 Januar 2019, 13:01:13
Die Frage zum start ist, wie du aktuell startest über init.d (/etc/init.d) oder systemd (/etc/systemd) da kannst du mal rein schauen und siehst die entsprechenden Dateien welche du kopieren und anpassen kannst.

Ich habe auch zwei Instanzen auf einem Pi. Eine welche alles über das Internet abgreift und auch mal blockieren kann und eine für alle anderen Aufgaben, welche nicht blockieren soll.

Hallo Amenophis86
Danke für den Tip. Unter /etc/systemd ist nichts offensichtlich passendes zu sehen. Unter /etc/init.d gibt es eine Datei *fhem die ich mir zu *fhem2 mit anpassen der Rechte wie die Original Datei kopiert habe. In dieser Datei habe ich mit dem Editor alle Pfade die auf /opt/fhem waren auf /opt/fhem2 geändert.
Das ist noch nicht Zielführend.
Nun habe ich dem von Hand editieren der fhem.cfg nicht mehr ganz vertraut. Darum habe ich jetzt mal die Ports in dem neuen FHEM wieder zurück auf die
8083 gestellt und die Verzeichnise von /opt/fhem zu /opt/fhem-org umbenannt. Anschliessend mein neues /opt/fhem2 auf /opt/fhem geändert und einen "sudo reboot" das System neu gestartet. Jetzt kann ich im FHEM die WEB Port ändern auf den gewünschten 8086. Die WEBphone auf Port 8087, die WEBtablet auf Port 8088 und den Telnet Port auf 7074.
Nach einem Neustart komme ich dann auf das neue FHEM unter IP:8086 - so weit, so gut.
Die Verzeichnisse wieder zurück umbenannt auf /opt/fhem und auf /opt/fhem2 erlauben dann wieder den Start des ursprünglichen FHEM, aber Ziel der Übung, eine zweite "erreichbare Instanz FHEM" geht leider nicht.
Vielleicht weiß noch jemand woran das jetzt hängt?
Hoffentlich kommen sich die neuen "eindeutige FUUID" nicht gegenseitig ins Gehege?!
Danke für jede Hilfe dazu.
Schöne Grüße
Elmar 
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

Naja die Frage ist ja auch, wie du es nun effektiv startest. Du kannst wie folgt vorgehen:

1. /opt/fhem kopieren in /opt/fhem-zwei
2. unter /opt/fhem-zwei die cfg editieren und die Ports anpassen
3. unter /etc/init.d "fhem" kopieren in "fhem-zwei" und alles darin auf /opt/fhem-zwei anpassen
4. fhem alt starten mittels "/etc/init.d fhem start"
5. fhem-zwei starten mittels "/etc/init.d fhem-zwei start"

Allerdings ist die Frage, ob du wirklich rein mittels init.d arbeitest oder doch mit systemctl bzw. systemd. Sollte aber eigentlich so gehen.
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 21 Januar 2019, 16:24:20
Naja die Frage ist ja auch, wie du es nun effektiv startest. Du kannst wie folgt vorgehen:

1. /opt/fhem kopieren in /opt/fhem-zwei
2. unter /opt/fhem-zwei die cfg editieren und die Ports anpassen
3. unter /etc/init.d "fhem" kopieren in "fhem-zwei" und alles darin auf /opt/fhem-zwei anpassen
4. fhem alt starten mittels "/etc/init.d fhem start"
5. fhem-zwei starten mittels "/etc/init.d fhem-zwei start"

Allerdings ist die Frage, ob du wirklich rein mittels init.d arbeitest oder doch mit systemctl bzw. systemd. Sollte aber eigentlich so gehen.

Hallo Amenophis86
heißt das, es können NICHT beide Instanzen gleichzeitig laufen???
Ich hatte gehofft das die zweite FHEM Instanz, genau so wie die erste auch, automatisch gestartet wird.
Wenn ich jetzt im Putty Fenster:
/etc/init.d/fhem2 start
eingebe bekomme ich einen Zugriff Fehler auf die Log Datei, obwohl die aber da ist.
Starting fhem2...
Can`t open /media/sda1/log/fhem2-2019-01.log : Permission denied at fhem.pl line 2731

Die Rechte sind aber:

pi@bPi:/media/sda1/log $ ls -l
insgesamt 5808
.....
-rw-r--r-- 1 fhem dialout   36098 Jan 21 15:47 fhem-2019-01.log
-rw-r--r-- 1 fhem dialout    1580 Jan 21 14:44 fhem2-2019-01.log    #<<<<<<<<<<<< NEU
-rw-rw-rw- 1 fhem dialout   13105 Apr 29  2018 fhem.save
......
nach meiner Ansicht gleich vergeben. In dieser beschriebenen Zeile 2731 steht eigentlich nichts für mich erkennbares.
So ganz einfach will es bei mir wohl nicht laufen.
Schöne Grüße
Elmar

Edit: Auch wenn ich die Log Datei auf ./opt/fhem2-2019-01.log ändere kommt ein verweigern des Zugriff in der fhem.pl Zeile 2731

Doch seltsam?
pi@bPi:~ $ /etc/init.d/fhem2 start
Starting fhem2...
Can't open ./log/fhem2-2019-01.log: Permission denied at fhem.pl line 2731.
pi@bPi:~ $ /etc/init.d/fhem2 status
fhem2 is running
pi@bPi:~ $ /etc/init.d/fhem2 stop
Stopping fhem2...
pkill: killing pid 2639 failed: Die Operation ist nicht erlaubt
pkill: killing pid 2991 failed: Die Operation ist nicht erlaubt
pi@bPi:~ $ /etc/init.d/fhem2 status
fhem2 is running
pi@bPi:~ $

Aber im Browser Firefox mit dem IP:8086 geht kein FHEM auf. Ob da wirklich ein fhem2 läuft? Oder nur die editierten Meldungen angezeigt werden weiß ich nicht. Das System wurde jeweils neu gestartet.
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

Ich glaube wir müssen hier mal ganz von vorne anfangen. Verstehe zum Beispiel nicht wieso dein Log Datei da ist und nicht im Ordner FHEM. Als erstes kopier bitte mal beide Start Skripe hier rein. Dann kopierste bitte mal alle FHEMWEB und Telnet Instanzen von beiden hier rein um zu sehen auf welchen Ports die beiden laufen. Dann gehen wir 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 Amenophis86
die ursprüngliche /etc/init.d/fhem
#!/bin/sh
# description: Start or stop the fhem server
# Added by Alex Peuchert

### BEGIN INIT INFO
# Provides:             fhem.pl
# Required-Start:       $local_fs $remote_fs
# Required-Stop:        $local_fs $remote_fs
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    FHEM server
### END INIT INFO

set -e
cd /opt/fhem
port=7072

if test "$2" != "noaptmark"; then
  apt-mark hold fhem > /dev/null
fi

case "$1" in
'start')

        echo "Starting fhem..."

# if you need to start hmland for use with
# Homematic, please start the hmland daemon
# like this (please use correct path and port,
# depending on your installation!)
#
#       /opt/hmcfgusb/hmland -d -p 1234 -r 0
#

        perl fhem.pl fhem.cfg

# if you want to use configDB for configuration,
# use this command to start fhem:
#
#       perl fhem.pl configDB
#
# and remove/comment the above line including fhem.cfg

        RETVAL=$?
        ;;
'stop')
        echo "Stopping fhem..."

# if you want to stop hmland during fhem stop:
#       pkill hmland

        pkill -U fhem perl
        RETVAL=$?
        ;;
'status')
        cnt=`ps -ef | grep "fhem.pl" | grep -v grep | wc -l`
        if [ "$cnt" -eq "0" ] ; then
                echo "fhem is not running"
        else
                echo "fhem is running"
        fi
        ;;
*)
        echo "Usage: $0 { start | stop | status }"
        RETVAL=1
        ;;
esac
exit $RETVAL


Die neue /etc/init.d/fhem2
#!/bin/sh
# description: Start or stop the fhem server
# Added by Alex Peuchert

### BEGIN INIT INFO
# Provides:             fhem.pl
# Required-Start:       $local_fs $remote_fs
# Required-Stop:        $local_fs $remote_fs
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    FHEM2 server
### END INIT INFO

set -e
cd /opt/fhem2
port=7074

if test "$2" != "noaptmark"; then
  apt-mark hold fhem > /dev/null
fi

case "$1" in
'start')

        echo "Starting fhem2..."

# if you need to start hmland for use with
# Homematic, please start the hmland daemon
# like this (please use correct path and port,
# depending on your installation!)
#
#       /opt/hmcfgusb/hmland -d -p 1234 -r 0
#

        perl fhem.pl fhem.cfg

# if you want to use configDB for configuration,
# use this command to start fhem:
#
#       perl fhem.pl configDB
#
# and remove/comment the above line including fhem.cfg

        RETVAL=$?
        ;;
'stop')
        echo "Stopping fhem2..."

# if you want to stop hmland during fhem stop:
#       pkill hmland

        pkill -U fhem perl
        RETVAL=$?
        ;;
'status')
        cnt=`ps -ef | grep "fhem.pl" | grep -v grep | wc -l`
        if [ "$cnt" -eq "0" ] ; then
                echo "fhem2 is not running"
        else
                echo "fhem2 is running"
        fi
        ;;
*)
        echo "Usage: $0 { start | stop | status }"
        RETVAL=1
        ;;
esac
exit $RETVAL



Die FHEM WEB vom ursprünglichen FHEM (aus der fhem.cfg kopiert)
define WEB FHEMWEB 8083 global
define WEBphone FHEMWEB 8084 global
define WEBtablet FHEMWEB 8085 global
define telnetPort telnet 7072 global


Aus der /opt/fhem2/fhem.cfg
define WEB FHEMWEB 8086 global
define WEBphone FHEMWEB 8087 global
define WEBtablet FHEMWEB 8088 global
define telnetPort telnet 7074 global

Die Log Datei war auf einer SSD Festplatte "ausgelagert", weil es mich ärgerte das wenn FHEM einmal diese Datei nicht zu Ende schreiben konnte, das ganze FHEM nicht mehr erreichbar war. Um einem möglichen stören vorzubeugen habe ich die Log-Datei in der /opt/fhem2/fhem.cfg aber wieder auf die ./log/fhem2-2019-01.log umgebogen.
attr global logfile ./log/fhem2-%Y-%m.log

Hoffentlich kannst Du damit etwas erkennen.
Vielen Dank und schöne Grüße
Elmar

Edit: Es geht *hurra ! Danke Danke Danke
Ich habe von einem anderen Raspberry aus eine FHEM2FHEM Verbindung auf den Telnet Port 7074 eingerichtet weil ich der Anzeige das fhem2 running nicht wirklich geglaubt habe. Das ging zuerst nicht. Nach einem weiteren nicht funktionierendem /etc/init.d/fhem2 stop habe ich dann erneut
ein /etc/init.d/fhem2 start abgeschickt und siehe da, es läuft.
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

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.
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 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

Amenophis86

Das denke ich auch, daher wollte ich jetzt noch wissen ob wir auf systemd direkt umstellen können :)
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...

Amenophis86

Du darfst aber auch gerne Helfen Otto, ich weiß, dass deine Kenntnisse besser sind als meine was das angeht :)
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

Nein nein, ich will nicht reinreden. Ich bin nicht besser - ich lese aus Interesse von Anfang an mit. Das Thema ist interessant!
Ich werfe meine Gedanken einfach mit rein. Getestet habe ich das selbst noch nicht. Mach ich aber bestimmt   ;)
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

Wernieman

Also .. bis jetzt schlägst Du Dich gut Amenophis86

Sonst hätte ich schon längs etwas geschrieben .... (oder willst Du nicht mehr?)
- 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

Amenophis86

LOL doch ich würde noch weiter machen, bin aber auch für jeden dankbar, der mithilft :) Wie gesagt meine nächste Idee wäre auf systemd zu wechseln und da im Start einstellen, dass der User fhem genutzt wird.
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, 19:24:00
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?

Hallo Ihr fleissigen Spezialisten
ich habe das auf einem Banana Pi mit Stretch auf dem neusten Stand laufen.
Von Hand gestartet hatte ich vor den Versuchen mit der zweiten Instanz das FHEM nie. Irgend wie muss sich das als Autostart anmelden.
Grüße Elmar
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;

fredl99

Hallo,

Auch wenn ich neu hier bin, würde ich mich gerne einmischen.

Aus meiner Sicht ist es unnötig, das ganze Verzeichnis zu kopieren. Man will ja keine zweite Anwendung, sondern nur eine zweite Instanz der eigentlichen.

Es reicht also ein zweiter Aufruf von /opt/fhem/fhem.pl mit der anderen Konfiguration.

Der ganz normale Startvorgang ist ja auch nichts anderes, die Hauptanwendung ist schließlich perl und davon gibt es idR. auch nur eine Kopie am ganzen System.

Fhem ist lediglich ein Script,  das perl zur Ausführung übergeben wird, eben in Begleitung mit der gewünschten Konfiguration.

Ob der Aufruf in das originale init-script zugefügt wird oder in ein separates hängt davon ab, wie man es gebrauchen will.

Im einen Fall starten und stoppen immer beide gemeinsam. Bei einem Fehler aber beide nicht.
Im anderen Fall sind beide vollig autark. Den Weg würde ich der Einfachheit halber empfehlen.

PS: das ganze fhem Verzeichnis samt Inhalt für alle beschreibbar zu machen, war imho keine gute Idee.
PS 2; Da die init-scripte momentan für jedermann ausführbar sind, kann user pi sie starten. Diese Instanz gehört ihm dann und folglich könnte nur er sie wieder beenden. Wenn das auch scheitert, liegt es an was anderem.
Wie auch immer, das derzeitige Setup ist komplizierter und fehlerträchtiger als notwendig.

Otto123

Vor den Versuchen...
Aber fhem2 ist von Hand gestartet? Oder hast Du alles eingetragen und den Rechner neu gestartet?
Ich habe keine Idee wie der Service auf User Pi switchen könnte. Aber ich weiß da auch wenig von Linux :)
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

NewRasPi

Hallo Otto
wenn ich den Banana Pi reboote ist nur die erste orginale FHEM Instanz am laufen. Die zweite muss ich von Hand im SSH- Fenster mit "/etc/init.d/fhem2 start" extra starten.
Grüße Elmar
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;

Otto123

Hallo Elmar,

und genau deswegen läuft er als pi  ;D
Ich denke für den Autostart könnte dies helfen
sudo update-rc.d fhem2 defaults
Und so starten
sudo service fhem2 start

Dann sollte er normal laufen

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

NewRasPi

Zitat von: Otto123 am 22 Januar 2019, 21:14:37
Hallo Elmar,

und genau deswegen läuft er als pi  ;D
Ich denke für den Autostart könnte dies helfen
sudo update-rc.d fhem2 defaults
Und so starten
sudo service fhem2 start

Dann sollte er normal laufen

Super Otto
jetzt startet die zweite Instanz auch automatisch nach dem rebooten.
Es laufen jetzt auch beide unter dem User fhem.
Nur der Befehl "update check" und "update" gehen auf dem zweiten FHEM nicht.
Grüße Elmar

Gruß Otto
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

Tasks: 158 total,   1 running, 156 sleeping,   0 stopped,   1 zombie
%Cpu(s):  0,4 us,  0,7 sy,  0,0 ni, 98,9 id,  0,0 wa,  0,0 hi,  0,0 si,  0,0 st
KiB Mem :  1022600 total,   471176 free,   166344 used,   385080 buff/cache
KiB Swap:   102396 total,   102396 free,        0 used.   799010 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
2689 fhem      20   0   35660  29028   4436 S   0,0  2,8   0:05.43 perl
2690 fhem      20   0   35196  28564   4464 S   0,0  2,8   0:06.04 perl
2992 fhem      20   0   26584  19604   1072 S   0,0  1,9   0:00.01 perl
2993 fhem      20   0   26432  19564   1188 S   0,0  1,9   0:00.01 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;

Otto123

Hast Du die zweite Instanz als pi kopiert?
Hast Du mal Rechte korrigiert?

sudo chown -R fhem: /opt/fhem2/
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

NewRasPi

Zitat von: Otto123 am 22 Januar 2019, 21:30:18
Hast Du die zweite Instanz als pi kopiert?
Hast Du mal Rechte korrigiert?

sudo chown -R fhem: /opt/fhem2/
Hallo Otto
ja, normal als pi angemeldet hatte ich das Verzeichnis kopiert.
pi@bPi:/opt $ ls -l
insgesamt 24
drwxrwxrwx 12 fhem dialout 4096 Dez 15 18:12 fhem
drwxrwxrwx 12 fhem dialout 4096 Jan 21 16:50 fhem2
drwxr-xr-x  5 root root    4096 Aug 16  2017 minecraft-pi
drwxr-xr-x  3 root root    4096 Aug 16  2017 pigpio
drwxr-xr-x  7 root root    4096 Aug 16  2017 vc
drwxr-xr-x  3 root root    4096 Aug 16  2017 Wolfram

Ja, auch die Rechte wollte ich so wie es bei der Einrichtung von FHEM angegeben ist einrichten.
Gruß Elmar
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;

Otto123

und einen Tiefer?
ls -l /opt/fhem2/

Das mit dem update geht nicht liegt eventuell an den Rechten?
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

NewRasPi

Zitat von: Otto123 am 22 Januar 2019, 21:39:53
und einen Tiefer?
ls -l /opt/fhem2/

Das mit dem update geht nicht liegt eventuell an den Rechten?

pi@bPi:/opt $ cd fhem
pi@bPi:/opt/fhem $ ls -l
insgesamt 600
drwxrwxrwx  2 fhem dialout   4096 Jan 21 21:04 backup
-rw-rw-rw-  1 fhem dialout 275283 Jan 21 21:04 CHANGED
-rw-rw-rw-  1 fhem dialout  39621 Jan 20 02:42 configDB.pm
drwxrwxrwx 40 fhem dialout   4096 Jul 14  2018 contrib
drwxrwxrwx  3 fhem dialout   4096 Jul 14  2018 demolog
drwxrwxrwx  4 fhem dialout   4096 Jul 14  2018 docs
drwxrwxrwx  6 fhem dialout  20480 Jan 17 11:03 FHEM
-rw-rw-rw-  1 fhem dialout  14346 Jan 22 10:23 fhem.cfg
-rw-rw-rw-  1 fhem dialout  19987 Okt  4 00:07 fhem.cfg.demo
-rwxrwxrwx  1 fhem dialout 155579 Jan 21 21:04 fhem.pl
drwxrwxrwx  2 fhem dialout   4096 Jan  1 00:00 log
-rw-rw-rw-  1 fhem dialout  39072 Jan 17 11:03 MAINTAINER.txt
drwxrwxrwx  2 fhem dialout   4096 Dez 15 18:13 mp3
-rw-rw-rw-  1 fhem dialout    935 Feb 19  2017 README_DEMO.txt
drwxrwxrwx  5 fhem dialout   4096 Jul 28 13:33 restoreDir
drwxrwxrwx  2 fhem dialout   4096 Jul 14  2018 unused
drwxrwxrwx  9 fhem dialout   4096 Jan  6 00:41 www
pi@bPi:/opt/fhem $ cd
pi@bPi:~ $ cd /opt/fhem2
pi@bPi:/opt/fhem2 $ ls -l
insgesamt 600
drwxrwxrwx  2 fhem dialout   4096 Jan 22 21:21 backup
-rw-rw-rw-  1 fhem dialout 275539 Jan 22 10:09 CHANGED
-rw-rw-rw-  1 fhem dialout  39621 Jan 20 02:42 configDB.pm
drwxrwxrwx 40 fhem dialout   4096 Jul 14  2018 contrib
drwxrwxrwx  3 fhem dialout   4096 Jul 14  2018 demolog
drwxrwxrwx  4 fhem dialout   4096 Jul 14  2018 docs
drwxrwxrwx  6 fhem dialout  28672 Jan 17 11:03 FHEM
-rw-rw-rw-  1 fhem dialout   7503 Jan 21 23:59 fhem.cfg
-rw-rw-rw-  1 fhem dialout  19987 Okt  4 00:07 fhem.cfg.demo
-rwxrwxrwx  1 fhem dialout 155579 Jan 21 21:32 fhem.pl
drwxrwxrwx  2 fhem dialout   4096 Jan 21 14:34 log
-rw-rw-rw-  1 fhem dialout  39072 Jan 17 11:03 MAINTAINER.txt
drwxrwxrwx  2 fhem dialout   4096 Dez 15 18:13 mp3
-rw-rw-rw-  1 fhem dialout    935 Feb 19  2017 README_DEMO.txt
drwxrwxrwx  5 fhem dialout   4096 Jul 28 13:33 restoreDir
drwxrwxrwx  2 fhem dialout   4096 Jul 14  2018 unused
drwxrwxrwx  9 fhem dialout   4096 Jan  6 00:41 www
pi@bPi:/opt/fhem2 $


Ich sehe keine Abweichungen in den beiden Verzeichnisen.
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

Hallo
Das Update könnte ich natürlich auch auf der ersten Instanz durchführen und dann die neuen Dateien und Module in die zweite Instanz Fhem kopieren. Schön ist das aber nicht.
Grüße Elmar
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;

Otto123

was sagt denn {qx(pwd)} in der FHEM Kommandozeile in beiden Instanzen?

Schreibt das Log was beim Update Befehl?
Mal verbose hoch gedreht?
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

NewRasPi

Zitat von: Otto123 am 22 Januar 2019, 22:15:27
was sagt denn {qx(pwd)} in der FHEM Kommandozeile in beiden Instanzen?

Schreibt das Log was beim Update Befehl?
Mal verbose hoch gedreht?
Hallo Otto
{qx(pwd)}
auf dem ersten FHEM "/opt/fhem"
auf dem zweiten FHEM "/opt/fhem2"

Das mit dem Update Check muss ich noch mal gucken. Es zeigt nach dem umstellen auf verbose 5 ein anderes Verhalten!
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

Ein Ausschnitt - das verbose 5 ist verdammt umfangreich!
Control: max-age=0, no-cache, no-store, must-revalidate Pragma: no-cache Keep-Alive: timeout=5, max=99 Connection: Keep-Alive
2019.01.22 22:27:14 4 : mv ./www/pgm2/fhemweb_multiple.js ./unused
2019.01.22 22:27:14 4 : mv ./www/pgm2/fhemweb_noArg.js ./unused
2019.01.22 22:27:14 4 : mv ./www/pgm2/fhemweb_slider.js ./unused
2019.01.22 22:27:14 4 : mv ./www/pgm2/fhemweb_svg.js ./unused
2019.01.22 22:27:14 4 : mv ./www/pgm2/fhemweb_textField.js ./unused
2019.01.22 22:27:14 4 : mv ./www/pgm2/fhemweb_time.js ./unused
2019.01.22 22:27:14 4 : mv ./www/pgm2/darktouchpadsvg_defs.svg ./unused
2019.01.22 22:27:14 4 : mv ./www/pgm2/darktouchpadsvg_style.css ./unused
2019.01.22 22:27:14 4 : mv ./www/pgm2/ios6touchpadsvg_defs.svg ./unused
2019.01.22 22:27:14 4 : mv ./www/pgm2/ios6touchpadsvg_style.css ./unused
2019.01.22 22:27:14 4 : mv ./www/pgm2/ios7touchpadsvg_defs.svg ./unused
2019.01.22 22:27:14 4 : mv ./www/pgm2/ios7touchpadsvg_style.css ./unused
2019.01.22 22:27:14 4 : mv ./www/pgm2/iostouchpadsvg_defs.svg ./unused
2019.01.22 22:27:14 4 : mv ./www/pgm2/iostouchpadsvg_style.css ./unused
2019.01.22 22:27:14 4 : mv ./www/pgm2/darksmallscreensvg_defs.svg ./unused
2019.01.22 22:27:14 4 : mv ./www/pgm2/darksmallscreensvg_style.css ./unused
2019.01.22 22:27:14 4 : mv ./www/pgm2/ios7smallscreensvg_defs.svg ./unused
2019.01.22 22:27:14 4 : mv ./www/pgm2/ios7smallscreensvg_style.css ./unused
2019.01.22 22:27:14 4 : mv ./www/pgm2/iossmallscreensvg_defs.svg ./unused
2019.01.22 22:27:14 4 : mv ./www/pgm2/iossmallscreensvg_style.css ./unused
2019.01.22 22:27:14 4 : mv ./FHEM/firmware/LaCrosseGateway.bin ./unused
2019.01.22 22:27:14 1 : nothing to do...
2019.01.22 22:27:14 4 : WEB: /fhem&fw_id=56&room=Unsorted&cmd=update / RL:1708 / text/html; charset=UTF-8 / Content-Encoding: gzip / Cache-Control: no-cache, no-store, must-revalidate


Hat die verbose Einstellung einen Einfluss auf Update? - ich hatte das als Report von FHEM gesehen.
Jetzt jedenfalls geht auf beiden Instanzen das Update.   

DANKESCHÖN
auch nach einem reboot starten beide Instanzen und auch beide melden zurück, beim "check update"
"nothing to do..."
Vielen Dank an alle die mir hiermit geholfen haben.
Schöne Grüße
Elmar
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;

Otto123

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

NewRasPi

Zitat von: Otto123 am 22 Januar 2019, 22:50:06
Nein verbose bestimmt nur den Loglevel.
Hat dann Dein Befehl " {qx(pwd)}" den Knoten gelöst?
Falls man das "nachvollziehen" kann.
Grüße Elmar
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;

Otto123

Nö {qx()} führt einen Befehl aus und schreibt die Antwort ins Browserfenster. pwd bestimmt den aktuellen Pfad. Ich wollte nur wissen ob beide Instanzen wirklich in ihrem Pfad laufen.

Vielleicht lag es einfach am zweiten Start. Blöd, aber wahrscheinlich nicht mehr nachvollziehbar.

Aber ich setz mich bestimmt mal hin und probier das aus. Mal sehen was da so passiert.

Gute Nacht
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

Bin ich wohl zu früh ins Bett gegangen, dass es nun doch gelöst wurde :)

Dann haben wir das Problem ja gefunden, durch den Start per Hand. Deswegen war meine Überlegung auf systemd zu wechseln, da du eh schon Stretch nutzt. Aber egal, geht auch so weiterhin.

Ich habe übrigens bewusst das Verzeichnis kopiert und nicht beides über das selbe laufen lassen. Warum? Teilweise probiere ich in der zweiten Instanz Sachen aus, teilweise soll es dort ein Update geben vor der ersten um auf Fehler zu prüfen und so weiter. Es ist natürlich möglich mit nur einem Ordner alles laufen zu lassen aber man muss sich bewusst sein, ob man das auch so möchte.

Ansonsten danke für die ganzen Hilfen und Tipps :)
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 Amenophis86, Otto und alle anderen Helfer
vielen Dank für die super Unterstützung.
Neugierig bin ich welche Instanz jetzt "Herr über die GPIO-Ports" ist. Zwischendurch kam mal der Hinweis das man diese beiden Instanzen per FHEM2FHEM zum auswerten oder nutzen der Device verbinden kann.
Die Trennung "nur" über ein zusätzliches Fhem- Perl- Sqript hätte mir auch nicht so gefallen. So lang der Platz auch für zwei sauber getrennte Verzeichnisse vorhanden ist traue ich dem mehr. Theoretisch kann ich jetzt ein Update immer erst mal als Testlauf auf der zweiten Instanz ausführen.
Der Hauptgrund ist aber immer noch der "Hürdenfreie Zugang" auf die Kamerabilder ohne Benutzer und Passwort Eingabe.
Dazu muss ich nur die umfangreichen Rechte der zweiten Instanz "begrenzen".
Schöne Grüße
Elmar 
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

Zitat von: NewRasPi am 23 Januar 2019, 09:40:22
"Herr über die GPIO-Ports"
Was meinst du damit? Lässt du beide auf die Ports zugreifen? Würde mich für eine Entscheidung und die andere nicht zugreifen lassen. Generell gilt, dass beide FHEM Instanzen nicht zwei Dinge (CULs etc) gleichzeitig zugreifen sollten.
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

Ein kleines HowTo 8)
Mein erster Test für zweite Instanz. Keine separaten Pfade - alles läuft in einem Pfad!

Achtung! Jeder sollte wissen was er tut, ich garantiere für nix!!!

Nur 3 Zeilen für die FHEM Kommandozeile -> https://commandref.fhem.de/#command
Man braucht sein FHEM und den Browser nicht verlassen!

Frische fhem.cfg holen und unter fhem2.cfg speichern
"wget -q -O fhem2.cfg https://svn.fhem.de/fhem/trunk/fhem/fhem.cfg"
fhem2.cfg editieren, damit die Grundlegenden Dateien getrennt sind + initialUsbCheck ausschalten
"sed -i -e 's/\/fhem/\/fhem2/;;s/\/eventTypes/\/eventTypes2/;;s/8083/8093/;;$aattr initialUsbCheck disable 1' fhem2.cfg"
FHEM starten
"perl /opt/fhem/fhem.pl /opt/fhem/fhem2.cfg"

Die zweite "frische" Instanz läuft auf Port 8093  ;D

Mit shutdown kann man die zweite Instanz separat beenden.
Mit shutdown der ersten Instanz (egal wie) wird die zweite mit beendet, da sie ein Kind Prozess der Hauptinstanz ist.
Mit einem notify in der ersten Instanz, kann man die 2 Instanz automatisch mit starten:
define n_StartFhem2 notify global:INITIALIZED "perl /opt/fhem/fhem.pl /opt/fhem/fhem2.cfg"
Damit läuft auch ein restart ohne Probleme: beide Instanzen werden nacheinander neu gestartet.

Soweit ich das sehen kann nutzen beide Instanzen unterschiedliche CPUs

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

NewRasPi

Zitat von: Amenophis86 am 23 Januar 2019, 10:46:37
Was meinst du damit? Lässt du beide auf die Ports zugreifen? Würde mich für eine Entscheidung und die andere nicht zugreifen lassen. Generell gilt, dass beide FHEM Instanzen nicht zwei Dinge (CULs etc) gleichzeitig zugreifen sollten.
Hallo Amenophis86
da ich ja die komplette fhem.cfg mitsamt dem Verzeichnis als Grundlage für die zweite Instanz genommen habe, habe ich auch erst mal alle Device aus der ersten Instanz. Fehler habe ich da noch keine gesehen. Einen CULs etc. habe ich nicht dran. Aber der MPD Musikplayer lässt sich jetzt von beiden FHEMs aus starten und beenden. Auf den GPIO Ports habe ich die Relaisplatine um den Verstärker abhänig vom MPD Status an oder aus zu schalten. Das schaltet ja ein DOIF in der ersten Instanz - geht also automatisch an und aus, auch wenn ich in der zweiten Instanz einschalte. Weitere GPIO-Ports schalten über die Relaisplatine auf welchen Raum die Lautsprecherkabel (Minus alle dauerhaft verbunden, Plus wird über Wechselrelais verteilt) Musik abspielen sollen.
Die noch als Reserve freien GPIOs sind jetzt auf beiden Instanzen "zugänglich".
@ Otto
bei dieser Lösung sind aber die Module nicht "geschützt" - also ein Update ändert ALLE Quell Dateien.
Schöne Grüße
Elmar
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;

fredl99

@Otto123:
Genau so hab ich es weiter oben gemeint. Aber Du hast einen typo in Deinem sed-script: "evenTypes2"
Ohne init-script am System wird bei einem reboot natürlich überhaupt nichts passieren.

@NewRasPi:
Falls Du mit "mit einem separaten Verzeichnis wohler fühlen" den Sicherheitsaspekt gemeint hast, dann ist das ein trügerisches Gefühl. Dein zuletzt gezeigtes Setup wäre für einen ernstzunehmenden Angreifer ein offenes Scheunentor. Alle Dateien sind beschreibbar für jedermann (und das heißt unter Linux wirklich für jeden Weltbürger). Beschreibbar bedeutet auch lösch- und austauschbar. Nachdem einige Dateien (ebenfalls für jedermann) ausführbar sind, ist das ganze eine Startrampe für jedes erdenkliche Szenario.
Klar denkst Du jetzt, "wer soll denn einen fhem-Server angreifen". Leider sind die Angriffe, die man für ausgeschlossen hält, meistens die erfolgreichsten. Wenn Dir einer die Heizungen abregelt, ist es ein Lausbubenstreich. Wenn er über den kompromittierten Raspi Zugang zum restlichen Netzwerk erlangt oder ihn durch eine modifizierte fhem.pl zum Spam-Bot umbaut, wird's schon unangenehmer.

Man kann nur hoffen, daß Dein Raspi von außen gut geschützt ist, von sich aus ist er es so nicht.
Aus dieser Sicht ist der Passwort-Schutz des Web-UI ebenso trügerisch.

Da der ganze Aufwand nur für einen Web-Zugang ohne Passworteingabe gedacht war, sei gesagt daß Zugangsdaten auch über die URL mitgesendet werden können. Ich gehe davon aus, daß Du die URL am TV nicht manuell eintippst, sondern ein Lesezeichen gesetzt hast. Das könntest Du entsprechend erweitern.

NewRasPi

Zitat von: fredl99 am 23 Januar 2019, 14:38:20

@NewRasPi:
Falls Du mit "mit einem separaten Verzeichnis wohler fühlen" den Sicherheitsaspekt gemeint hast, dann ist das ein trügerisches Gefühl. Dein zuletzt gezeigtes Setup wäre für einen ernstzunehmenden Angreifer ein offenes Scheunentor. Alle Dateien sind beschreibbar für jedermann (und das heißt unter Linux wirklich für jeden Weltbürger). Beschreibbar bedeutet auch lösch- und austauschbar. Nachdem einige Dateien (ebenfalls für jedermann) ausführbar sind, ist das ganze eine Startrampe für jedes erdenkliche Szenario.
Klar denkst Du jetzt, "wer soll denn einen fhem-Server angreifen". Leider sind die Angriffe, die man für ausgeschlossen hält, meistens die erfolgreichsten. Wenn Dir einer die Heizungen abregelt, ist es ein Lausbubenstreich. Wenn er über den kompromittierten Raspi Zugang zum restlichen Netzwerk erlangt oder ihn durch eine modifizierte fhem.pl zum Spam-Bot umbaut, wird's schon unangenehmer.

Man kann nur hoffen, daß Dein Raspi von außen gut geschützt ist, von sich aus ist er es so nicht.
Aus dieser Sicht ist der Passwort-Schutz des Web-UI ebenso trügerisch.

Da der ganze Aufwand nur für einen Web-Zugang ohne Passworteingabe gedacht war, sei gesagt daß Zugangsdaten auch über die URL mitgesendet werden können. Ich gehe davon aus, daß Du die URL am TV nicht manuell eintippst, sondern ein Lesezeichen gesetzt hast. Das könntest Du entsprechend erweitern.
Hallo fredl99

Danke für den Hinweis. Erst mal wollte ich das es läuft. Jetzt darf ich das natürlich auf bessere / weniger Rechte wieder zurück schrauben.

Zu dem URL Link mit Parametern für den TV: Das hatte ich versucht - die zig Varianten die mir bekannt sind gingen alle nicht.
Mit dem guten Gefühl wegen zwei getrennten Verzeichnissen. Ich als Linux Laie mogel mich da immer so mit durch. Wenn ich jetzt in einer Instanz einen Fehler mache, kann ich über SSH die hoffentlich unbeschädigten Datein auf dem gleichen Raspberry/ BananaPi wieder da hin kopieren wo es hackt.

Es freut mich sehr das die Spezialisten in diesem Forum auch bezüglich den Gefahren Tipps geben.
"Bringt" das schliessen aller Ports auf der Fritzbox nur eine trügerische Sicherheit?
Die einzigen Zugänge sind über VPN.
Schöne Grüße
Elmar 
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;

Otto123

Zitat von: fredl99 am 23 Januar 2019, 14:38:20
@Otto123:
Genau so hab ich es weiter oben gemeint. Aber Du hast einen typo in Deinem sed-script: "evenTypes2"
korrigiert, danke.
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

fredl99

Hallo Elmar,

Eine aktuelle FritzBox, auf der auch die neuesten Versionen von FritzOS noch laufen sollte in der normalen Konfiguration ausreichend sicher nach außen sein. Die hat normalerweise auch keine unnötigen Ports offen.

Macht man absichtlich "alles dicht", sollte man auch wissen was man tut, denn so manches könnte anschließend haken. Auch kurioses kann passieren: Als vor ca. zwei Jahren die Schwachstelle aller deutschen Telekom-Router bekannt wurde, haben die Ösis vorsichtshalber die heimischen Anschlüsse abgeklappert. Mein Zugang wurde gesperrt, weil sie ihn für bereits infiziert hielten, da sie einfach nirgends reinkamen... ;)

Wieder zum topic:
Das Heimnetz nach außen abzuschotten ist nur die halbe Miete. Fängst Du dir was ein, das von innen eine Verbindung aufbaut, hilft es dagegen nicht. Genau so arbeiten praktisch alle rootkits und ähnliche Malware. Du fängst Dir über eine infizierte Webseite oder email ein mini-script ein, das sich den dicken Rest von draußen nachzieht.

Otto123

Zitat von: fredl99 am 23 Januar 2019, 14:38:20
Ohne init-script am System wird bei einem reboot natürlich überhaupt nichts passieren.
Hab oben den Beitrag um den Start ergänzt  8)
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

fredl99

Zitat von: Otto123 am 23 Januar 2019, 12:15:40
Bei einem shutdown der ersten Instanz (egal wie ob in FHEM oder über systemctl) wird die 2 Instanz auch mit beendet.
Ich weiß noch nicht genau wieso, aus der fhem.service kann ich das nicht ablesen.
Wenn der Elternprozess baden geht, saufen die Kinder mit ab. :)
Eine völlig autarke Instanz benötigt ihr eigenes init-script in SysV oder service-file in systemd.

Nochmal an @NewRasPi zum Thema credentials in der URL:
Es kommt auf den Browser an. Chrome hat die Weiterleitung dieser Methode an untergeordnete Resourcen vor einiger Zeit gekippt. (https://www.chromestatus.com/feature/5669008342777856) Mittlerweile lehnt es auch den ersten Aufruf direkt ab.

Der Gnome-Browser zum Beispiel hat hingegen gar kein Problem mit http://user:passwort@server:port/fhem
Andere hab ich jetzt nicht probiert, aber ich weiß ohnehin nicht was auf Deinem TV für einer läuft...

Otto123

Zitat von: fredl99 am 23 Januar 2019, 17:01:10
Wenn der Elternprozess baden geht, saufen die Kinder mit ab. :)
Danke, ich hatte es gerade eben durch Prozesse anschauen auch begriffen  :D
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

Otto123

Zweiter Teil von mir: Komplett separierte Instanz
neuer User, neues Port, kopierter /opt/fhem Pfad, neuer Dienst, neue leere Konfig
Installiertes FHEM  mit Systemd als Voraussetzung!

Achtung, das kopiert und "patched" die Version von fhem.cfg und fhem.service Stand heute! Wenn sich in Zukunft was ändert muss das Ganze angepasst werden!

Das Script / die Befehle alle im sudo Kontext (sudo su) ausführen!
Ich hoffe die Kommentare genügen  :D
#!/bin/bash
# Username und Port vergeben
fUser=fhem3
fPort=8103
# Dienst User anlegen, Gruppen zuordnen
adduser $fUser --home /opt/$fUser --ingroup dialout --disabled-login --gecos ""
usermod -G audio,davfs2 $fUser
# aktiven Pfad kopieren
cp -r /opt/fhem/* /opt/$fUser/
chown -R $fUser: /opt/$fUser/
# fhem Service kopieren, anpassen und anlegen
cp /etc/systemd/system/fhem.service /etc/systemd/system/$fUser.service
sed -i -e "s/User=fhem/User=$fUser/;s/\/fhem/\/$fUser/;s/fhem.cfg/$fUser.cfg/" /etc/systemd/system/$fUser.service
systemctl --system daemon-reload
systemctl enable $fUser
# Leere cfg holen und anpassen
wget -q -O /opt/$fUser/$fUser.cfg https://svn.fhem.de/fhem/trunk/fhem/fhem.cfg
sed -i -e "s/\/fhem/\/$fUser/;s/\/eventTypes/\/eventTypes$fUser/;s/8083/$fPort/;\$aattr initialUsbCheck disable 1" /opt/$fUser/$fUser.cfg
# Service starten
systemctl start $fUser


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

NewRasPi

Hallo Otto
das ist ja super wenn man damit automatisiert eine zusätzliche FHEM Instanz einrichten kann.
Ich hätte noch mal eine Frage zu den Rechten der einzelnen Dateien.
Für mich kurios erscheint es, dass wenn ich den Dateien die Rechte für JEDER ausschalte (chmod -R 770) auf meiner zweiten Instanz wieder kein
"Update check" oder "Update" geht.
Kann man irgend wo nachschauen, welche Dateien mit welchen Rechten ausgestattet werden müssen.
Schöne Grüße
Elmar
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;

Otto123

der User mit dem FHEM läuft muss Eigentümer sein.
Sieht man so für den Standardpfad ls -l /opt/fhem
Kann man für User fhem so setzen:
chown -R fhem: /opt/fhem

Ich denke: Dein FHEM läuft mit dem falschen User!
Was sagt {qx(ps -aux|grep fhem)} in deiner FHEM Kommandozeile?
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

NewRasPi

Hallo Otto

fhem      2666  0.2  2.9  37600 30656 ?        S    22:11   0:08 perl fhem.pl fhem.cfg
fhem      2667  0.2  2.2  28216 22552 ?        S    22:11   0:08 perl fhem.pl fhem.cfg
fhem      2985  0.0  1.9  26288 19448 ?        S    22:11   0:00 perl fhem.pl fhem.cfg
fhem      2989  0.0  1.9  26976 20084 ?        S    22:11   0:00 perl fhem.pl fhem.cfg
fhem     17812  0.0  0.0   1892   528 ?        S    23:20   0:00 sh -c ps -aux|grep fhem
fhem     17813  0.0  0.1   7732  1512 ?        R    23:20   0:00 ps -aux
fhem     17814  0.0  0.0   4364   848 ?        S    23:20   0:00 grep fhem
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;

Otto123

gut alles läuft mit User fhem.
Die Rechte stimmen in allen Ebenen?
Ich weiß deinen Pfad nicht mehr ?
ls -lR /opt/fhem2/
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

NewRasPi

Zitat von: Otto123 am 23 Januar 2019, 23:57:27
gut alles läuft mit User fhem.
Die Rechte stimmen in allen Ebenen?
Ich weiß deinen Pfad nicht mehr ?
ls -lR /opt/fhem2/

Hallo Otto
bei dem Befehl rattern ja zig Seiten blitzschnell durch.
Nachdem ich eben gerade mit "sudo chmod -R 770 fhem2" im Verzeichnis /opt hatte laufen lassen, den "sudo reboot" durchgeführt,  dürfte jetzt alles passen.
.....
/opt/fhem2/www/frontend/www/frontend/lib/ext-4.2.0.663/images:
insgesamt 76
drwxrwx--- 2 fhem dialout 4096 Jul 14  2018 boundlist
drwxrwx--- 2 fhem dialout 4096 Jul 14  2018 box
drwxrwx--- 2 fhem dialout 4096 Jul 14  2018 button
drwxrwx--- 2 fhem dialout 4096 Jul 14  2018 dd
drwxrwx--- 2 fhem dialout 4096 Jul 14  2018 editor
drwxrwx--- 2 fhem dialout 4096 Jul 14  2018 form
drwxrwx--- 2 fhem dialout 4096 Jul 14  2018 grid
drwxrwx--- 2 fhem dialout 4096 Jul 14  2018 layout
drwxrwx--- 2 fhem dialout 4096 Jul 14  2018 menu
drwxrwx--- 2 fhem dialout 4096 Jul 14  2018 shared
drwxrwx--- 2 fhem dialout 4096 Jul 14  2018 sizer
drwxrwx--- 2 fhem dialout 4096 Jul 14  2018 slider
............


Ich habe aber jetzt auch mal das "Update check" und "Update" drei mal mit verbose 0 und verbose 1 (oder höher) getestet.
Es geht mit verbose 0 keine Update Prüfung und kein Update.

Grüße und gute Nacht für heute
Elmar
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;

Otto123

Ich halte dieses Rechte setzen für groben Unfug.
Ich weiß nicht wie das bei Linux per Standard wirklich gesetzt wird.
Ich weiß, dass verbogene Rechte ALLES bewirken können!

Normal ist es am fhem Pfad so:
Alle User haben r (4) Rechte an den Dateien und x (5) Rechte an den Verzeichnissen.
Der Eigentümer hat rw (6) an den Dateien und x (7) Rechte an den Verzeichnissen.

Irgendwo habe ich heute gelesen: mit verbose 0 gibt es keine Anzeige beim update check.

Gute Nacht
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

NewRasPi

Zitat von: Otto123 am 24 Januar 2019, 00:44:51
Ich halte dieses Rechte setzen für groben Unfug.
Ich weiß nicht wie das bei Linux per Standard wirklich gesetzt wird.
Ich weiß, dass verbogene Rechte ALLES bewirken können!

Normal ist es am fhem Pfad so:
Alle User haben r (4) Rechte an den Dateien und x (5) Rechte an den Verzeichnissen.
Der Eigentümer hat rw (6) an den Dateien und x (7) Rechte an den Verzeichnissen.

Irgendwo habe ich heute gelesen: mit verbose 0 gibt es keine Anzeige beim update check.

Gute Nacht
Otto
Hallo Otto
mich hat fredl99 aufgeschreckt. (...jeder Weltbürger ...)
Der Benutzer JEDER muss doch gar nichts auf meinem System dürfen. Das sollte "hoffentlich" auch nicht zu Störungen führen.
Bestimmt zeigt Euch Spezialisten die Erfahrung mehr dazu.
Sobald ich Zeit habe werde ich noch mal ein ganz neues jungfräuliches FHEM auf Stretch einrichten und da abgucken, wie den da die Rechte
vergeben sind.
Vielen Dank für Eure super Unterstützung.
Schöne Grüße
Elmar
 
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;

Otto123

Moin,

ZitatDer Benutzer JEDER muss doch gar nichts auf meinem System dürfen.
Naja aber dann dieses Recht global zu null machen ist auch keine Lösung. Bestimmte Dateien werden so abgesichert, aber "normal" darf JEDER lesen. Wie schon gesagt, die Rechte sind im FHEM Pfad normalerweise so:
drwxr-xr-x  2 fhem dialout   Verzeichnis
-rw-r--r--  1 fhem dialout  Datei

Ausnahme z.B: der Pfad .ssh - und genau deswegen ist Rechte von oben nach unten bügeln gefährlich (böse! wie Werner immer sagt)
ssh funktioniert nicht mehr mit verkorksten Rechten (777)
Das System schützt sich zum Teil gegen einen dummen Admin.  :D

Deswegen sag ich nochmal: chmod -R "einfach mal so" ist bestenfalls grober Unfug!

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

Wernieman

Und auch ein reboot ist bei Rechteänderungen selten (bis gar nicht) nötig.
Wir leben in der Unix Welt (und nicht bei Windows).

Aber im fhem-Ordner selber ist eine Änderung jetzt nicht sooo dramatisch. Wichtig ist bei Sensiblen Dateien, das sie nicht für jeden lesbar/schreibbar sind, wie z.B. die ssh-keys. Auch ssl-Keys (und andere Konfigs) sind aus gutem Grunde nicht für jeden lesbar (z.B. /etc/sudoers.de). Aber bei Unterordnern sehe ich es (persönlich) entspannt.

Solange Du Rechte NICHT global setzt.

Aus meiner Berufserfahrung:
Habe mal ein chmod -R ausversehen auf / (root) angesetzt, wegen eines " " zuviel (Leerzeichen. also das chown hat ausgesehen
chmod -R / weitere/Verzeichnis/angaben
Also chmod hat "/" und "weitere/Verzeichnis/angaben" gesehen .... und wegen / Global .. anschließend konnten wir das System nur durch Neuaufbau "reparieren" ....
- 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

fredl99

Welche Rechte standardmäßig für neu angelegte Dateien gesetzt werden hängt von der distro ab. Global ist die Einstellung der umask dafür ausschlaggebend, die per User oder für einzelne Verzeichnisse auch abgeändert werden kann.

Unabhängig davon setzen nachinstallierte Pakete ihre einzelnen Dateien auf notwendige und sinnvolle Rechte und Eigentümer. (Sollten sie zumindest in einer idealen Welt)

Daher macht es meistens keinen Sinn, daran zu drehen. Wenn etwas nicht wie gewünscht läuft liegt es meistens an etwas anderem. (Sehr oft im layer 8... ;))
Im konkreten thread zB. am Aufruf des Scripts durch den User, was andererseits nur durch die zu weiten Rechte möglich war (x für jedermann, womit wir wieder bei der idealen Welt wären)

Ich persönlich bevorzuge Rechte, die auf 0 enden, speziell für die Home-Verzeichnisse. Das verhindert nicht nur das Ausspähen durch andere User, sondern auch den Zugriff durch Systembenutzer, wie zB. Webserver. Auch Systembereiche müssen nicht zwingend für User lesbar sein, aber das ist natürlich Ansichtssache. Zum Glück hat man unter Linux ja die freie Wahl.

RalfP

Hallo,

ich experimentiere gerade mit einer zweiten Instanz, wie hier und in vielen Quellen beschrieben. Otto vielen Dank für die vielen Infos.

Nun hab ich es selbst mal getestet, weil ich ein bestimmtes Ziel verfolge. Ich möchte eine separate Instanz nur für meine Sonos haben, die auch gern mal ein kleines freez dann haben darf, aber meine andere Instanz mit der Heimautomation nicht gleich mit beeinflusst.

Zwei Instanzen laufen bei mir (Testumgebung). Zwei getrennte Pfade, aber alles unter User fhem.

Beide verhalten sich, wie ich es mir vorgestellt hab. Bisher sah ich noch keine Beeinflussung.

Jetzt aber versuchte ich define SONOS - und peng. Hier geht perl in etwas, wie eine Endlosschleife. Selbst ein kill funktioniert nicht, um den Prozess zu beenden (nur noch reboot). Die andere Instanz völlig funktionsfähig, keine Probleme damit.

Da weder im Log, noch sonst wo etwas geschrieben wird, bin ich erst mal blind. Hätte jemand von euch dies auch schon mal getestet? Wenn ja, mit welchen Ergebnissen?

Das Sonos Modul ist ja schon ein wenig speziell. Da wird mit Threads gearbeitet u.s.w. - Da kann man sich vieles vorstellen, was schief gehen könnte. Ich hoffe ich stolpere aber nicht über prinzipielle Dinge.

vielen Dank und ein schönes Wochenende noch
Ralf

RalfP

...ha, nach einer Runde Laufen und Kopf frei bekommen, doch gefunden.

Im Code von Sonos.pm wird oft $attr{global}{modpath} verwendet, was mich veranlasste dort den absoluten Pfad mal anzugeben. Siehe da, Sonos.pm wurde nun geladen und scheint zu laufen.

Jetzt kann ich weiter testen  :D

Also, wer bei abweichenden Pfaden Probleme hat, kann es ja mal versuchen.

schönen Advent
Ralf