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

MariaDB für Zugriff von außen konfigurieren

Wir haben eine MariaDB-Installation auf einem Raspberry Pi und wollen nicht über localhost (127.0.0.1) sondern von einem anderen Rechner in einem Skript auf die DB zugreifen. Dafür muss in der

/etc/mysql/my.cnf

folgendes hinzugefügt werden.

[mysqld]
skip-networking=0
skip-bind-address

Und dann noch mit

sudo systemctl restart mysqld.service

den Service neu starten.

Diese ziemlich verkürzte Anleitung wurde von hier geklaut: https://mariadb.com/kb/en/configuring-mariadb-for-remote-client-access/

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

 

Bildschirm sperren über Shortcut und Taskbar Icon

Es gibt out-of-the-box keinen Shortcut unter PIXEL, der spontan den Desktop sperrt. Je nach Einsatzzweck und -ort kann dies aber recht hilfreich sein. Das Einrichten ist nicht schwer. Benötigt wird ein Skript und ein paar Anpassungen in ein paar Configs. Alles ohne sudo!

Shortcut anlegen, um den Bildschirmschoner zu aktivieren.

Dazu habe ich unter ~/ ein Skript mit dem Namen xscreen.sh angelegt. Inhalt:

#!/bin/bash
xscreensaver-command -activate &

Es wird doch einmal sudo gebraucht, um das Skript ausführbar zu machen:

sudo chmod +x /home/pi/xscreen.sh

Damit das Skript in der Taskbar auftaucht, muss dieses erst bekannt gemacht werden. Dazu wird unter /home/pi/.local/share/applications eine Textdatei mit dem Namen xlock.desktop angelegt. Inhalt:

[Desktop Entry]
Name=Lock Screen
Comment=Lock it
Exec=/home/pi/xscreen.sh
Type=Application
Encoding=UTF-8
Terminal=false
Categories=Utility;

Mit dem Parameter Icon kann auch noch ein Icon definiert werden.

Reboot! Danach befindet sich im Startmenü unter Zubehör das Programm Lock Screen.  Jetzt kann auf der Taskbar mit rechter Maustaste die „Anwendungsstartleiste Settings“ aufgerufen werden.  Das Programm unter Zubehör auswählen und Schwupps ist es in der Taskbar zu finden.

Jetzt noch der Shortcut. Dieser wird in der Datei /home/pi/.config/openbox/lxde-pi-rc.xml definiert. Diese Datei ist recht groß. Folgenden Eintrag unter <keyboard> eintragen.

&lt;keyboard&gt;
...
&lt;keybind key="C-A-L"&gt;
&lt;action name="Execute"&gt;
&lt;command&gt;xscreensaver-command -activate&lt;/command&gt;
&lt;/action&gt;
&lt;/keybind&gt;
&lt;/keyboard&gt;

In meinem Fall wird der Bildschirmschoner nicht gelockt, sonder nur aktiviert. Zum Sperren einfach -lock verwenden.

Noch ein paar praktische Tipps:
Super_L –> Linke Windows Taste
Super_R –> Rechte Windows Taste
lxpanelctl menu–>Applikationsmenü