Skip to main content

⚙️ Schritt 7: Vorbereitung für ioBroker

1. Funktionen in /boot/config.txt anpassen

In der /boot/config.txt lassen sich bestimmte Funktionen deaktivieren, um Systemressourcen zu sparen.
Bei mir waren WiFi und Bluetooth, die ich nicht benötige, bereits deaktiviert:

sudo nano /boot/config.txt

Beispielinhalt:

# Uncomment if you want to disable wifi or bluetooth respectively
dtoverlay=disable-wifi
dtoverlay=disable-bt

💡 Hinweis:
Standardmäßig wird der UART des Raspberry Pi 4 vom integrierten Bluetooth-Modul belegt.
Um den UART für die serielle Kommunikation über die GPIO-Pins – z.B. für ein Z-Wave-Modul – freizugeben, füge folgende Zeile hinzu: enable_uart=1

Zusätzlich:

dtparam=audio=off
#dtoverlay=vc4-kms-v3d
display_auto_detect=0

2. NTP-Zeitserver konfigurieren

Ich nutze den Zeitserver der FritzBox:

sudo nano /etc/systemd/timesyncd.conf

Füge hinzu:

NTP=192.168.0.1

3. Root-Partition mit noatime mounten (ohne /etc/fstab)

a) /boot/cmdline.txt bearbeiten:

sudo nano /boot/cmdline.txt

b) In der vorhandenen Zeile den Parameter rootflags=noatime ergänzen.
Beispiel (alles in einer Zeile, keine Umbrüche!):

root=UUID=8823e411-2982-44c9-92f3-7af051ce915e rw rootwait rootflags=noatime console=serial0,115200 console=tty1 fsck.repair=yes

⚠️ Hinweis:
Wenn du ein Z-Wave-Modul verwendest, entferne den Eintrag console=serial0,115200.
Dadurch wird der Serial Port nicht mehr für Konsolenausgaben genutzt.

root=UUID=8823e411-2982-44c9-92f3-7af051ce915e rw rootwait rootflags=noatime console=tty1 fsck.repair=yes

Nach diesen Anpassungen:

sudo ldconfig
sudo usermod -a -G uucp iobroker
sudo reboot

Prüfen:

groups iobroker
cat /boot/cmdline.txt
ls -l /dev/ttyA*

Nach dem Neustart:

findmnt -no OPTIONS /

→ In der Ausgabe sollte noatime enthalten sein.
Damit werden keine Access-Time-Stempel mehr geschrieben → das spart Schreibzugriffe auf die SSD.


4. Automatischen TRIM-Lauf aktivieren

sudo systemctl enable --now fstrim.timer

Prüfen:

systemctl status fstrim.timer

💡 Hinweis:
Manche externe SSDs (z.B. Samsung T7) unterstützen TRIM über USB nicht.
Du kannst es manuell aktivieren mit einer udev-Regel:

lsusb
echo 'ACTION=="add|change", ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="4001", SUBSYSTEM=="scsi_disk", ATTR{provisioning_mode}="unmap"' \
| sudo tee /etc/udev/rules.d/50-usb-ssd-trim.rules
sudo udevadm control --reload-rules
sudo udevadm trigger

Prüfen:

cat /sys/block/sda/queue/discard_max_bytes

→ Sollte eine Zahl > 0 zeigen.

TRIM-Testlauf:

sudo fstrim -av

💡 Beispielausgabe:

/boot: 453 MiB (474963968 Bytes) auf /dev/sda1 getrimmt
/: 34,7 MiB (36335616 Bytes) auf /dev/sda2 getrimmt

Falls TRIM nicht unterstützt wird:

sudo systemctl disable --now fstrim.timer

5. LED (optional deaktivieren)

Die rote Power-LED (PWR) kann beim Boot automatisch abgeschaltet werden.

a) LED-Namen prüfen:

ls /sys/class/leds/

Beispielausgabe:

ACT  default-on  mmc0  mmc0::  PWR

b) Service-Datei erstellen:

sudo nano /etc/systemd/system/disable-pwr-led.service

Inhalt:

[Unit]
Description=Disable the PWR LED on Raspberry Pi

[Service]
Type=oneshot
ExecStart=/bin/sh -c "echo 0 > /sys/class/leds/PWR/brightness"

[Install]
WantedBy=multi-user.target

c) Service aktivieren:

sudo systemctl enable disable-pwr-led.service
sudo systemctl start disable-pwr-led.service

Oder testen nach Neustart:

sudo reboot

💡 Hinweis:
Mit cat /sys/class/leds/PWR/brightness kannst du den Zustand prüfen:
0 = aus, 1 = an.


6. Systempakete installieren

sudo pacman -S --needed \
acl avahi base-devel cairo cmake curl gcc giflib git htop iftop \
libcap libjpeg-turbo librsvg lm_sensors make fastfetch net-tools \
pam pango pkgconf systemd-libs unzip sqlite cifs-utils nfs-utils \
rsync polkit distro-info hdparm

7. Node.js installieren

💡 Hinweis:
ioBroker unterstützt keine Installation über NVM (Node Version Manager).
Verwende stattdessen eine LTS-Version direkt aus den offiziellen Arch-Paketquellen.

Installation der aktuellen LTS-Version Jod (Node.js 22.x, Stand Oktober 2025):

sudo pacman -S nodejs-lts-jod npm

Quelle: archlinux.de/packages/extra/x86_64/nodejs-lts-jod
Dokumentation: Node.js Previous Releases

💡 Info:
Das Paket nodejs-lts-jod entspricht der aktuellen Long-Term-Support-Version 22
und wird von ioBroker ausdrücklich empfohlen.

Prüfen:

command -v node nodejs npm npx && node -v && nodejs -v && npm -v && npx -v

Beispielausgabe (wenn „nodejs“ fehlt):

/usr/bin/node
/usr/bin/npm
/usr/bin/npx
-bash: nodejs: command not found
v22.19.0
11.6.0
11.6.0
sudo ln -s /usr/bin/node /usr/bin/nodejs

Erneuter Test:

command -v node nodejs npm npx && node -v && nodejs -v && npm -v && npx -v

💡 Hinweis:
Wenn du Dateien verschiebst oder löschst, aktualisiere den Bash-Cache:
hash -r


8. ioBroker installieren

Die Installation erfolgt über das offizielle ioBroker-Installationsskript:

curl -sL https://iobroker.net/install.sh | bash -

💡 Hinweis:
Warnungen wie „sudo: apt-get: Befehl nicht gefunden“ kannst du ignorieren.
Diese gelten nur für Debian-basierte Systeme.

Nach erfolgreicher Installation:

==========================================================================
    ioBroker was installed successfully
    Open http://192.168.0.33:8081 in a browser and start configuring!
==========================================================================

Service prüfen:

sudo systemctl status iobroker.service

Optional:

sudo chmod -v 755 /home/iobroker

🔧 Fehlerdiagnose und Wartung

Diagnoseskript starten:

iob diag

ioBroker-Fixer:

iob stop && iob fix

Oder direkt aus dem Internet:

iob stop && curl -fsSL https://iobroker.net/fix.sh | bash -

9. Optional: Sudo-Berechtigungen des ioBroker-Benutzers prüfen oder anpassen

sudo nano /etc/sudoers.d/iobroker

(Bei einem Problem kann der ioBroker-Fixer dies automatisch reparieren.)

Der Benutzer iobroker hat ohne Passworteingabe weitreichende Berechtigungen – darunter das Herunterfahren, Neustarten, Starten von Diensten und Ausführen von Befehlen auf dem System sowie spezielle Berechtigungen für den ioBroker-Dienst.
Es ist wichtig, dass die Pfade in der sudoers-Konfiguration exakt mit den tatsächlichen Installationspfaden der Befehle auf deinem System übereinstimmen.

Diese Datei sollte mit restriktiven Rechten gesichert werden:

sudo chmod 444 /etc/sudoers.d/iobroker

Wenn du die Datei bearbeiten möchtest, kannst du die Berechtigungen kurzzeitig anpassen:

sudo chmod 644 /etc/sudoers.d/iobroker
sudo nano /etc/sudoers.d/iobroker
sudo chmod 444 /etc/sudoers.d/iobroker

💡 Hinweis:
Achte darauf, nach dem Bearbeiten die Berechtigungen wieder auf chmod 444 zu setzen,
um die Sicherheit der Datei zu gewährleisten.