SSD-Boot - PoE-HAT
Docker - Portainer - Mosquitto - Zigbee2mqtt - IP-Symcon / Heimdall
Raspberry Pi SSD-Boot
Zuerst ganz normal von Micro-SD Karte booten. Dann per SSH verbinden und folgende Befehle ausführen:
vcgencmd bootloader_version
sudo rpi-eeprom-update
Das angezeigte Datum muss der 3. September 2020, oder neuer sein. Wenn ein Update verfügbar ist, dann folgende Befehle ausführen.
sudo rpi-eeprom-update -a
sudo reboot
Micro-SD raus und (spätestens jetzt) das USB/SSD Laufwerk verbinden. Raspberry Pi einschalten und zur Erfolgskontrolle per SSH verbinden.
Danach ein Update kann nicht schaden
sudo apt-get update
sudo apt-get full-upgrade
PoE-HAT
Raspberry Pi ausschalten und Netzteil ausstecken! Falls vorhanden, kann jetzt der PoE-HAT aufgesteckt werden. (Foto) Ab jetzt kann der Raspberry Pi über das Netzwerk mit Spannung versorgt werden (Power over Ethernet). Voraussetzung dafür ist neben dem PoE-Hat auch ein entsprechendes Poe-Switch, dass die benötigte Spannung über die Netzwerkleitung zur Verfügung stellt. Hier ist keine Konfiguration nötig.
Nach erfolgter Montage kann der Raspberry Pi wieder in Betrieb genommen werden.
Docker
Verbindung per SSH
Docker herunterladen:
curl -fsSL https://get.Docker.com -o get-Docker.sh
Script zur Installation ausführen
sudo sh get-Docker.sh
Docker für aktuellen Benutzer ausführbar machen
sudo usermod -aG docker $USER
Benutzerrichtlinien neun laden
newgrp docker
Docker testen
docker run hello-world
Dockervolumen für Portainer erstellen
docker volume create portainer_data
Portainer pullen, konfigurieren & starten
docker run -d -p 8000:8000 -p 9443:9443 --restart always --name portainer -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data cr.portainer.io/portainer/portainer-ce:latest
Liste alle aktiven Docker-Container
docker ps
Portainer UI mit <https://ip-adresse:9443> starten. Benutzer & Passwort anlegen!
Mosquitto
Verzeichnisse und config-file anlegen
Befehle SSH in Konsole:
cd
sudo mkdir -p mosquitto/config
sudo nano mosquitto/config/mosquitto.conf
Inhalt “mosquitto.conf”:
persistence true
persistence_location /mosquitto/data/
log_dest file /mosquitto/log/mosquitto.log
listener 1883
## Authentication ##
allow_anonymous true
Mosquitto in Portainer konfigurieren:
Name für Container vergeben: mosquitto
Image: eclipse-mosquitto:latest
Ports: 1883 - 1883 TCP
9001 - 9001 TCP
Volumes:
Container: /mosquitto Host: /home/pi/mosquitto Bind
Container: /mosquitto/data Host: /home/pi/mosquitto/data Bind
Container: /mosquitto/log Host: /home/pi/mosquitto/log Bind
Restart policy:
Always
Deploy Container
Mosquitto testen mit MQTT-Explorer
Passwortschutz (authentication) einrichten:
Im Mosquitto Container auf die Console gehen
/bin/sh shell auswählen und connect klicken
mosquitto_passwd -c /mosquitto/config/password.txt admin
Passwort eingeben
Passwort wiederholen
Disconnect klicken
cd /mosquitto/config
sudo nano mosquitto.conf
mosquitto.conf wie folgt bearbeiten:
persistence true
persistence_location /mosquitto/data/
log_dest file /mosquitto/log/mosquitto.log
listener 1883
## Authentication ##
allow_anonymous false
password_file /mosquitto/config/password.txt
Restart Container!
Mosquitto testen mit MQTT-Explorer (mit den neuen Zugangsdaten)
Bei der Verwendung eines Zigbee LAN-Gateways, müssen die MQTT Zugangsdaten (Benutzer, Passwort und Port) in der UI des Gateways angegeben werden.
Zigbee2mqtt (LAN-Gateway)
per SSH Befehle für Konsole. Dann folgende Befehle ausführen
cd
mkdir -p zigbee2mqtt/data
cd zigbee2mqtt
wget https://raw.githubusercontent.com/Koenkk/zigbee2mqtt/master/data/configuration.yaml -P data
nano data/configuration.yaml
Inhalt configuration.yaml (LAN-Gateway)
# Home Assistant integration (MQTT discovery)
homeassistant: false
# allow new devices to join
permit_join: true
# MQTT settings
mqtt:
# MQTT base topic for zigbee2mqtt MQTT messages
base_topic: zigbee2mqtt
# MQTT server URL
server: mqtt://172.17.31.113:1883
# MQTT server authentication, uncomment if required:
user:
password:
# Serial settings
serial:
# Location of CC2531 USB sniffer
port: tcp://172.17.31.68:6638
advanced:
network_key: GENERATE
frontend:
port: 8080
Weiter mit Punkt: “Portainer Konfiguration”!
Zigbee2mqtt (USB-Gateway)
USB-Gateway (Dongle) einstecken.
per SSH Befehle für Konsole. Dann folgende Befehle ausführen
lsusb
Ausgabe (Beispiel)
Bus 001 Device 003: ID 1a86:55d4 QinHeng Electronics SONOFF Zigbee 3.0 USB Dongle Plus V2
Vendor-ID und Product-ID notieren.
.rules datei erstellen:
sudo nano /etc/udev/rules.d/99-usb-serial.rules
Inhalt 99-usb-serial.rules
SUBSYSTEM=="tty", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="55d4", SYMLINK+="zigbee-stick"
Vendor-ID und Product-ID an den hervorgehobenen Stellen eingeben (zwischen den “”)
sudo reboot
Symlink testen
ls -l /dev/zigbee-stick
Ausgabe (Beispiel)
lrwxrwxrwx 1 root root 7 Mar 30 11:28 /dev/zigbee-stick -> ttyACM0
Der USB-Port, hier "ttyACM0", muss später in der “configuration.yaml” eingegeben werden.
Weiter mit configuration file anlegen. folgende Befehle ausführen:
cd
mkdir -p zigbee2mqtt/data
cd zigbee2mqtt
wget https://raw.githubusercontent.com/Koenkk/zigbee2mqtt/master/data/configuration.yaml -P data
nano data/configuration.yaml
Inhalt configuration.yaml (USB-Gateway)
# Home Assistant integration (MQTT discovery)
homeassistant: false
# allow new devices to join
permit_join: true
# MQTT settings
mqtt:
# MQTT base topic for zigbee2mqtt MQTT messages
base_topic: zigbee2mqtt
# MQTT server URL
server: mqtt://172.17.31.113:1883
# MQTT server authentication, uncomment if required:
user:
password:
# Serial settings
serial:
# Location of CC2531 USB sniffer
port: /dev/ttyACM0
advanced:
network_key: GENERATE
frontend:
port: 8080
Portainer Konfiguration
Name vergeben: zigbee2mqtt
Image: koenkk/zigbee2mqtt:latest
Ports: 8080 - 8080 TCP
Command & Logging
Driver: json-file
2x add logging driver option
Volumes
Container: /app/data Host: /home/pi/zigbee2mqtt/data Bind
Container: /run/udev Host: /run/udev Bind (Read-only) (Nur bei USB-Dongle)
Restart policy
always
Runtime & Ressources (nur bei USB-Dongle)
Host: /dev/zigbee-stick container: /dev/ttyACM0 (entspricht dem Eintrag in "configuration.yaml")
Deploy container!
Zigbee2mqtt Ui: http://[RaspberryPi-IP]:8080
IP-Symcon (Docker-Container)
Portainer Konfiguration
Name: IP-Symcon
Image: symcon/symcon:latest ODER symcon/symcon:7.0-378-armhf
Ports: 3777 - 3777 TCP
1883 - 1883 TCP - Für MQTT-Server (wenn aus IP-Symcon und nicht aus Mosquitto etc.)
Volumes
Container: /var/lib/symcon Host: /home/pi/symcon/data Bind
Container: /var/log/symcon Host: /home/pi/symcon/log Bind
Container: /root Host: clear
Bind
Env
TZ Europe/Berlin
Restart policy
always
Deploy container!
IP-Symcon starten
Starten der IP-Symcon Konsole: http://IP-Adresse:3777/console/
Für neue Visu neue Visualisierungsinstanz hinzufügen “Tile-Visualisation”
Modul “Zigbee2mqtt” herunterladen und konfigurieren.
MQTT - Benutzer und Passwort vergeben.
MQTT - Port: 1883
Bei Verwendung von LAN-Gateway müssen die MQTT Server Zugangsdaten und der Port in der UI des Gateways angegeben werden.
Wechseln in UI von Zigbee2mqtt
Wechseln in Ip-Symcon
Im Objektbaum auf “Discovery Instanzen” und “Zigbee2mqtt” Konfigurator anklicken. Hier werden (wenn gepairt) alle von Zigbee2mqtt verwalteteten Devices angezeigt.
Ein Device auswählen und “Erstellen” → Instanz wird mit den entsprechenden Variablen im Objektbaum angelegt.
Steuerung über Funktionen: RequestAction($VariablenID, $Value);
Oder über die Visu!!
Heimdall
Name vergeben: heimdall
image: linuxserver/heimdall:latest
Ports: 80 - 80 TCP
443 - 443 TCP
Volumes
Container: /config Host: home/pi/heimdall
Env
PUID = 1000
PGID = 1000
TZ = Europe/Berlin
Tipp: PUID und PGID herausfinden
ssh auf Pi und Befehl eingeben
id user
Ergebnis (Beispiel)
Restart policy
always
deploy Container -- http://IP-Adresse