[GELÖST] Netzwerkzugriff - FHEM wird unvollständig gestartet

Begonnen von Burny4600, 15 November 2024, 17:34:59

Vorheriges Thema - Nächstes Thema

Burny4600

Seit der Umstellung von einem Pi3 auf einen Pi5 mit Bookworm startet FHEM nicht vollständig. Ich muss manuell FHEM anhalten und wieder starten damit alle Dateien vom NAS gelesen werden.

Der Netzwerkservice
networking.service                         enabled         enabled
NetworkManager-dispatcher.service          enabled         enabled
NetworkManager-wait-online.service         enabled         enabled
NetworkManager.service                     enabled         enabled
wird aber ausgeführt.

Was ich dabei nicht verstehe, ist das FHEM ohnehin verzögert gestartet wird.
systemctl show fhem.service -p TimeoutStartUSec
TimeoutStartUSec=1min 30s
Warum es dennoch dazu kommt das nur einige Dateien bei einem Neustart des Pi5 aus dem Netzwerk gelesen werden ist mir nicht klar.
Mit dem Pi3 und Bullseye gab es keine Probleme.
Mfg Chris

Raspberry Pi 2-5, Betriebssystem: Bullseye Lite, Bookworm Lite
Schnittstellen: RFXtrx433E, SIGNALduino, MQTT, nanoCUL, HM-MOD-UART, 1-Wire, LAN, ser2net, FHEM2FEHEM
Devices: FS20, IT, Homematic, MQTT, TEK603, WMR200, YouLess, S.USV, APC-USV, PV-Deye, PV-Fronius, Resol VBUS & DL2

Otto123

Idee: dein Fhem will schneller starten als das Netzwerk weil die Abhängigkeit nicht gesetzt ist.
https://wiki.fhem.de/wiki/Fhem.service_(systemd_unit_file)

Mir ist allerdings unklar welche Dateien von der nas geholt werden?
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

Burny4600

Die Abhängigkeit ist mit der Neuinstallation vom System und FHEM wie unter https://wiki.fhem.de/wiki/Fhem.service_(systemd_unit_file) von fhem.service.
Prozesse vor dem FHEM Start ausführen hatte ich bisher noch nie benötigt.

Ich habe einen Zugriffspunkt eingerichtet, auf dem sind zentral die Configs-, Logs- und Backup-Dateien abgelegt.
/etc/systemd/system/media-hdd.mount
[Unit]
  Description=Verbindung auf HDD extern
  After=network-online.target
  Wants=network-online.target
  ConditionPathExists=/media/hdd

[Mount]
  # What=//192.168.17.254/FHEM$
  What=//CCS-SRV-ADC01/FHEM$
  Where=/media/hdd
  Type=cifs
  Options=vers=2.1,iocharset=utf8,domain=DOMAIN,username=root,password=PASSWORT,rw,dir_mode=0777,file_mode=0666

[Install]
  WantedBy=multi-user.target

Das hatte bisher mit den Pi3 und Bullseye OS Lite auf allen Systemen funktioniert. Auch auf einem Pi4 mit Bullseye Lite funktioniert es wie gehabt.

Nur auf dem Pi5 mit Bookworm Lite erfolgte der Mount zum NAS nicht vollständig. Es werden bei einem Neustart des Systems nur wenige Dateien gelesen.
Zudem wird am Pi5 unter FHEM/log eine eigene fhem.log und fhem.save Datei abgelegt, die aber nicht das beinhalten was eigentlich die fhem.cfg beinhaltet.
Ich hatte gehofft daraus wenigstens den Fehler zu erkennen.

Beende ich fhem manuell und starte fhem wieder manuell, wird die fhem.cfg am Pi5 ordnungsgemäß abgearbeitet und alles wird ohne Probleme von der NAS gelesen bzw. geschrieben.

Hier sind gleich zwei Fehler vorhanden.
Warum verwendet FHEM nicht die vorhandene fhem.cfg am Pi5, und warum hat FHEM keinen Zugriff auf die NAS Dateien nach einem Systemstart.
Mfg Chris

Raspberry Pi 2-5, Betriebssystem: Bullseye Lite, Bookworm Lite
Schnittstellen: RFXtrx433E, SIGNALduino, MQTT, nanoCUL, HM-MOD-UART, 1-Wire, LAN, ser2net, FHEM2FEHEM
Devices: FS20, IT, Homematic, MQTT, TEK603, WMR200, YouLess, S.USV, APC-USV, PV-Deye, PV-Fronius, Resol VBUS & DL2

Otto123

#3
Zitat von: Burny4600 am 16 November 2024, 13:26:50Warum verwendet FHEM nicht die vorhandene fhem.cfg am Pi5, und warum hat FHEM keinen Zugriff auf die NAS Dateien nach einem Systemstart.
Die erste Frage verstehe ich nicht. ???
Die Antwort auf die zweite Frage, bzw. meine Idee dazu nochmal etwas ausführlicher: Dein Pi5 ist schneller als Deine alten Systeme, der FHEM Start überholt das Netzwerk oder den erfolgreichen Mount beim Systemstart. Das Verhalten was Du beschreibst legt diese Vermutung sehr nahe.
Meine Empfehlung: Mach doch einfach den FHEM Start vom vollständigen Start des Netzwerkes abhängig wie in dem Artikel beschrieben. Bzw. prüfe ob es schon ist?!
Wenn es schon so ist, dann müsste man sicherstellen, dass der Mount schon erfolgt ist, dazu fehlt mir spontan die Idee. Könnte man vielleicht mit einem ExecStartPre Script prüfen, Datei erfolgreich vom Mount lesen...

Dein erwähntes TimeoutStartSec bewirkt mMn keinen verzögerten Start, es bewirkt lediglich, dass FHEM in der Zeit gestartet sein muss, ansonsten macht systemd einen Neustart.
Siehe auch hier https://wiki.fhem.de/wiki/Fhem.service_(systemd_unit_file)#Start_verz%C3%B6gern
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

MadMax-FHEM

Fhem-Start abhängig vom Mount-Service machen, wäre meine Idee...

Ich würde den Mount aber (dann) in ein Script auslagern, das ich dann im Service aufrufe.

Im Script warten und prüfen, ob der Mount auch erfolgreich ist/war...

Dann würde fhem nur/erst starten, wenn der Mount erfolgt ist...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Burny4600

@MadMax-Fhem
ZitatIch würde den Mount aber (dann) in ein Script auslagern, das ich dann im Service aufrufe.

Hast du dazu ein Beispiel wie ich den media-hdd.mount in ein Script für FHEM umarbeiten kann?
Mfg Chris

Raspberry Pi 2-5, Betriebssystem: Bullseye Lite, Bookworm Lite
Schnittstellen: RFXtrx433E, SIGNALduino, MQTT, nanoCUL, HM-MOD-UART, 1-Wire, LAN, ser2net, FHEM2FEHEM
Devices: FS20, IT, Homematic, MQTT, TEK603, WMR200, YouLess, S.USV, APC-USV, PV-Deye, PV-Fronius, Resol VBUS & DL2

MadMax-FHEM

Nicht für fhem!

Wie soll das aus fhem gehen, wenn fhem den Mount braucht!

Einfach den Mount in einem Shell-Script ausführen und dort prüfen, ob er auch geklappt hat.

Das Script dann als/aus einem Service aufrufen (-> Mount-Service)...

Den fhem-Service abhängig vom Mount-Service machen...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Otto123

#7
Ich habe mal sowas
shell warten das ein mount verfügbar ist in die Suche eingegeben, der erste Treffer sieht schon gut aus.
Es gibt auch wirklich einen SYSTEMD-MOUNT Service (neu in Bookworm?), vielleicht den mount damit ausführen und dann fhem davon abhängig machen.
https://manpages.debian.org/testing/manpages-de/systemd-mount.1.de.html
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

Burny4600

#8
Ich habe eine Lösung gefunden.
Eigentlich war das nie richtig unter fhem gelöst. Das hatte bisher für den Pi3 und früheren Pi-OS gereicht, hätte aber auch hier schon zu einem Fehler führen können.
/etc/systemd/system/fhem.service
# $Id: fhem.service 19235 2019-04-21 13:26:17Z betateilchen $

[Unit]
Description=FHEM Home Automation
Wants=network.target
After=network.target
#Requires=postgresql.service
#After=postgresql.service
#Requires=mysql.service
#After=mysql.service

[Service]
Type=forking
User=fhem
Group=dialout
WorkingDirectory=/opt/fhem
ExecStart=/usr/bin/perl fhem.pl fhem.cfg
#ExecStart=/usr/bin/perl fhem.pl configDB
Restart=always

[Install]
WantedBy=multi-user.target

Es ist eine Änderung auf network-online.target in der /etc/systemd/system/fhem.service Datei notwendig.
[Unit]
Description=FHEM Home Automation
Wants=network-online.target
After=network-online.target
Damit wird auf das Netzwerk gewartet. Das sollte eigentlich als Standart für FHEM übernommen werden.

In meinem Fall warte ich auf den Mount zur NAS.
/etc/systemd/system/fhem.service
[Unit]
Description=FHEM Home Automation
Wants=media-hdd.mount
After=media-hdd.mount

Nun startet FHEM ohne Fehler auch mit dem Pi5.
Wie nun festgestellt, hatte es nichts mit dem Pi5 oder Bookworm zu tun.
Mfg Chris

Raspberry Pi 2-5, Betriebssystem: Bullseye Lite, Bookworm Lite
Schnittstellen: RFXtrx433E, SIGNALduino, MQTT, nanoCUL, HM-MOD-UART, 1-Wire, LAN, ser2net, FHEM2FEHEM
Devices: FS20, IT, Homematic, MQTT, TEK603, WMR200, YouLess, S.USV, APC-USV, PV-Deye, PV-Fronius, Resol VBUS & DL2

Otto123

#9
Zitat von: Burny4600 am 17 November 2024, 13:59:40Wie nun festgestellt, hatte es nichts mit dem Pi5 oder Bookworm zu tun.
;D da bin ich von ausgegangen
Zitat von: Burny4600 am 17 November 2024, 13:59:40Es ist eine Änderung auf network-online.target in der /etc/systemd/system/fhem.service Datei notwendig.
Stimmt da war was  :o hatten wir an andere Stelle schon
https://wiki.fhem.de/wiki/HM-MOD-RPI-PCB_HomeMatic_Funkmodul_f%C3%BCr_Raspberry_Pi#Variante_mit_ser2net
Ich habe das mal an der schon zitierten Stelle im Wiki aufgenommen.
Habe nur auf network geschaut, dabei weiß ich eigentlich dass es network-online sein sollte. :-[ 
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

Burny4600

Ich habe grundsätzlich für jeden Pi in der Haustechnik eine inhaltliche Beschreibung der Installationsmaßnahmen erstellt, wo ich früher schon die Änderung auf network-online.target angeführt hatte, um jederzeit eine Reproduktion der Installation auszuführen.

Nur genau dieser Pi war ursprünglich der aller Erste für die Haustechnik, und genau bei diesem führte ich die Korrektur in den Unterlagen nicht durch.
Ich habe mich so sehr auf meine Anleitung verlassen, und bin immer wieder über network.target darüber gestolpert, und habe den Fehler auf anderes zurückgeführt.
Selbstüberlistung.

Trotzdem danke an Euch.
Mfg Chris

Raspberry Pi 2-5, Betriebssystem: Bullseye Lite, Bookworm Lite
Schnittstellen: RFXtrx433E, SIGNALduino, MQTT, nanoCUL, HM-MOD-UART, 1-Wire, LAN, ser2net, FHEM2FEHEM
Devices: FS20, IT, Homematic, MQTT, TEK603, WMR200, YouLess, S.USV, APC-USV, PV-Deye, PV-Fronius, Resol VBUS & DL2