zigbee2mqtt auf einem Raspberry Pi Zero installieren

Raspberry Pi Zero

Vorbereitung

mkdir downloads
cd downloads
sudo apt update
sudo apt full-upgrade
sudo apt install -y git make gcc g++

USB Stick indentifizieren

ls -l /dev/ttyUSB0

oder

ls -l /dev/serial/by-id

Pfad anpassen

sudo nano ~/.profile

ans Ende anfügen

if [ -d "/usr/local/bin" ] ; then
PATH=$PATH:/usr/local/bin
fi

npm downloaden

npm in der Version 18 ist mit z2m kompatibel, vllt auch andere Versionen, habe ich aber nicht getestet (19.3.0 jedenfalls nicht zu diesem Zeitpunkt der Veröffentlichung dieses Artikels).

wget https://unofficial-builds.nodejs.org/download/release/v18.0.0/node-v18.0.0-linux-armv6l.tar.xz
tar xvfJ node-v18.0.0-linux-armv6l.tar.xz
sudo cp -R node-v18.0.0-linux-armv6l/* /usr/local/
z2m installieren
sudo mkdir /opt/zigbee2mqtt
sudo chown -R ${USER}: /opt/zigbee2mqtt
git clone --depth 1 https://github.com/Koenkk/zigbee2mqtt.git /opt/zigbee2mqtt
cd /opt/zigbee2mqtt/
npm ci

z2m yaml anpassen

nano /opt/zigbee2mqtt/data/configuration.yaml

frontend: true

und

advanced:
pan_id: GENERATE

Service erstellen und starten (systemctl)

sudo nano /etc/systemd/system/zigbee2mqtt.service

Inhalt

[Unit]
Description=zigbee2mqtt
After=network.target

[Service]
Environment=NODE_ENV=production
ExecStart=/usr/local/bin/npm start
WorkingDirectory=/opt/zigbee2mqtt
StandardOutput=inherit

# Or use StandardOutput=null if you don't want Zigbee2MQTT messages filling syslog, for more options see systemd.exec(5)

StandardError=inherit
Restart=always
RestartSec=10s
User=pi

[Install]
WantedBy=multi-user.target

Start Zigbee2MQTT

sudo systemctl start zigbee2mqtt

Show status

systemctl status zigbee2mqtt.service

Show journal

sudo journalctl -f -u zigbee2mqtt.service

bash beim User starten

Lege ich einen neuen User wie folgt auf meinem Raspi an

sudo useradd -m lordvador -G sudo

 

dann wird standardmäßig nicht die bash verwendet. Dazu /etc/passwd öffnen:

sudo nano /etc/passwd

 

und folgendes am Ende des neuen Nutzers eintragen: /bin/bash

Beispiel an Hand der pi-User

pi:x:1000:1000:,,,:/home/pi:/bin/bash

 

Danach öffnet sich das Terminal direkt mit der bash.

Alternativ folgenden Befehl verwenden:

adduser –gecos „Lord Vador“ lordvador

 

sudo cd

sudo cd /woauchimmerhin

 

hat mich zur Verzweiflung gebracht. Und dabei ist das so einfach! cd ist ein bash-builtin

chdir()

 

und kann somit nicht mit sudo aufgerufen werden. Abhilfe schafft

sudo su

 

und dann

cd /woauchimmerhin