SSD Boot auf Raspberry PI4 – 8GB – 64Bit

Ich habe mich nun doch entschlossen noch einmal hass.io zu installieren und das SSD Boot des neuen Raspberry zu nutzen. Auch ist für den 8GB Rechner die 64Bit Version verpflichtend, was auch interessant werden wird bezgl. Performance.

Beschreibung des HASS Betriebssystems

https://github.com/home-assistant/operating-system

Download der HASS Releases – inkl. Beta

https://github.com/home-assistant/operating-system/releases

Konfiguration der SD & SSD Speicher

Stand 2.11.2020: Der 8GB RPi bootet nicht in das HASS Image (Beta 5 build 4 – 32/64bit)

Installationsprozedur mit hassos 5.5

https://community.home-assistant.io/t/installing-home-assistant-on-a-rpi-4b-8gb-with-ssd-boot/230948

 

Meine Maßnahmen am Raspberry

Console Login: Boot Options – USB…

Hier ist schon die ältere Version des „raspi-config“ Tools zu erkennen. Die Option „Boot Options“ findet sich in der aktuellen Version hinter „Advanced Options“.

Als ich die USB Boot Option im Menü ausgewählt hatte, bekam ich die Meldung „No eeprom available – aborting“

Maßnahmen:

  1. sudo raspi-config:
    • Localisation Options: Locale: de_DE.UTF-8 UTF.8
    • Interface Options: SSH: enable
    • Update
    • Finish
  2. SSH login vom Admin Arbeitsplatz
    • sudo apt-update && sudo apt full-upgrade
    • sudo rpi-eeprom-update

Das Boot Rom sollte dann so oder neuer sein

pi@raspberrypi:~ $ sudo rpi-eeprom-update
BCM2711 detected
VL805 firmware in bootloader EEPROM
BOOTLOADER: up-to-date
CURRENT: Do 3. Sep 12:11:43 UTC 2020 (1599135103)
 LATEST: Do 3. Sep 12:11:43 UTC 2020 (1599135103)
 FW DIR: /lib/firmware/raspberrypi/bootloader/stable
VL805: up-to-date
CURRENT: 000138a1
 LATEST: 000138a1

Dann das Tool verlassen, die SD Karte herausnehmen und die Reboot Anfrage bestätigen

Installation OpenZwave Gateway

Ich verwende nun den Z-Stick Gen5 von Aeontec.

Vormals hatte ich den Stick von Sigma Designs im Einsatz, weil ich dachte vom zwave Entwickler selbst wird es wohl der Beste sein 🙁 Falsch gedacht.

Seit ich nun den Aeontec Stick verwende habe ich keinerlei Entfernungsprobleme mehr. Ich komme mit dem Signal anstandslos 2 Stockwerke nach oben. Daran war früher nicht zu denken.

Jetzt habe ich den Wechsel nicht gemacht, weil ich Probleme hatte, sondern weil der Sigma Design Stick nicht auf der Kompatibilitätsliste für das OZW Gateway steht und ich dieses einsetzen wollte. So hat sich nun aus der „Will ich haben“ Motivation heraus auch dieses problem gelöst.

Ein weiterer großer Effekt nach dem Umstieg auf das OZW Gateway ist der Start von HomeAssistant. Der geht nun deutlich schneller, da ja kein zwave Gateway mehr gestartet wird! Das ist ein großer Vorteil vor allem für übergeordnete Anbindungen wie Apple Homekit oder Google Home wo es darauf ankommt, dass alle zu repräsentierenden Geräte auch verfügbar sind.

Für die OZW beta Integration in HomeAssistant muss das ozw-gateway installiert werden. Dies geschieht vor der Konfiguration der „ozw beta“ Integration in HA.

Hier bei mir wieder als Docker Container auf dem Raspberry. Ich habe mich im übrigen dagegen entschieden die Gateways auf unterschiedliche Raspberry zu verteilen. Sie laufen alle auf dem Raspberry PI4. Bislang sehe ich keine Probleme in dieser Konfiguration. Falls es doch einmal dazu kommen würde lässt sich dies durch die Docker Technology sehr einfach ändern und auf einen anderen Raspberry migrieren.

Zuerst muss der Device Pfad für den Stick ermittelt werden. Hierzu das Gleiche Vorgehen wie bei conbee.

/dev/serial/by-id/usb-0658_0200-if00

Verzeichnis für OZW Gateway anlegen

sudo mkdir -p /usr/share/ozw
sudo chown -R pi:docker /usr/share/ozw 
sudo chmod 775 /usr/share/ozw

OZW Gateway installieren

ich habe mich für die Installationsvariante inklusive Admin GUI entschieden. Damit habe ich den vollen Zugriff auf das zwave Netzwerk, da die Integration in HomeAssistant noch beta ist und es dort noch nicht alle Features gibt.

Der Network Key wir auf dem Raspberry generiert. Er wird zwingend für Secure Bindings benötigt.

cat /dev/urandom | tr -dc '0-9A-F' | fold -w 32 | head -n 1 | sed -e 's/\(..\)/0x\1, /g'

Die IP Adresse der MQTT_SERVER Variablen muss angepasst werden.

docker run -it -d \
    --security-opt seccomp=unconfined \
    --device=/dev/serial/by-id/usb-0658_0200-if00 \
    -v $PWD/ozw:/opt/ozw/config \
    -e MQTT_SERVER="10.100.200.102" \ 
    -e USB_PATH=/dev/serial/by-id/usb-0658_0200-if00 \
    -e OZW_NETWORK_KEY="0xA4, 0x25, 0x2D, 0x39, 0x1A, 0x5D, 0x9E, 0x61, 0xA7, 0xFA, 0x67, 0x9E, 0x61, 0x5D, 0xAA, 0x39 \
    -p 1983:1983 \   
    -p 5901:5901 \
    -p 7800:7800 \
    openzwave/ozwdaemon:allinone-latest

Überprüfung der Installation

Aufruf des VNC Desktops über einen VNC Viewer

Admin Oberfläche

Aufruf mit dem integrierten VNC over HTTP

http://<ip adresse>:7800

„Basic Web Based VNC Client“

„Standard Web Based VNC Client“

Leider ist es bei allen Ansichten so, dass sich die Auflösung der Anzeige nicht verändern lässt. Es bleibt also nur das Scrollen im Admin Panel.

Installation MQTT Broker

Der MQTT Broker ist nicht unbedingt ein MUSS, ich habe ihn aber wegen dem OZW Gateway installiert. 

Da ich bislang kein MQTT einsetze, bleibt es vorerst auch bei der reinen Installation – keine spezielle Konfiguration!

Verzeichnis für mosquitto anlegen

sudo mkdir -p /usr/share/mosquitto
sudo chown -R pi:docker /usr/share/mosquitto 
sudo chmod 775 /usr/share/mosquitto

mosquitto MQTT Broker installieren

docker run -it -d \
-p 1883:1883 \
-p 9001:9001 \
--name mosquitto  \

-v /usr/share/docker/mosquitto/config:/mosquitto/config \
-v /usr/share/docker/mosquitto/data:/mosquitto/data \
-v /usr/share/docker/mosquitto/log:/mosquitto/log \
eclipse-mosquitto

Installation deConz / Phoscon zigbee Gateway

Der große Vorteil des conbee Sticks mit seiner Applikation ist, dass auch nicht Philips Hue Geräte konfiguriert werden können.

Ich benutze unterschiedliche Hersteller:

  • Philips Hue – Lampen
  • tint – Lampen von Müller Licht, gibt es immer mal wieder bei Aldi
  • innr – Lampen
  • Aquara Sensoren und Taster

Auf der Homepage von Dresden Elektronik findet sich ein Artikel zur Installation

Vor der Installation muss der conbee II Stick am Raspberry angesteckt sein. Die richtige Schnittstelle fiindet sich auf der console:

ls -l /dev/ttyA*

lsusb

ls -l /dev/serial/by-id/

Ich neige dazu anstatt „/dev/ttyACM1“ den Pfad aus Device by ID zu wählen. Der Vorteil ist, dass sich dieser auch bei einem Reboot nicht verändert.

/dev/serial/by-id/usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DE2154123-if00

Verzeichnis für deConz anlegen

sudo mkdir -p /usr/share/deconz 
sudo chown -R pi:docker /usr/share/deconz
sudo chmod 775 /usr/share/deconz

Docker Container starten

docker run -d \ 
--name=deconz \
--net=host \
--restart=always \
-v /etc/localtime:/etc/localtime:ro \
-v /usr/share/deconz:/root/.local/share/dresden-elektronik/deCONZ \
--device=/dev/ttyACM1 \
marthoc/deconz

Installation überprüfen

Aufruf: http://<hostname>/pwa

Beim Ersten Aufruf wird das Admin Password angelegt.

Wenn in der „Gateway“ Übersicht die Firmware des Sticks zu sehen ist, ist die Konfiguration OK.

Installation HomeAssistant

Was benötige ich alles für mein SmartHome?

Die Frage was ich alles installieren muss, hängt maßgeblich davon ab, welche Geräte ich einsetzen möchte.

Ich bin ja heterogen unterwegs und brauche daher HomeAssistant, zigbee und zwave. Für Wifi Geräte benötigt es keine spezielle Anbindung. Die Qualität der Wifi Geräte steht und fällt natürlich mit der LAN / WLAN Infrastruktur im Haus. Diese sollte zu Beginn eines SmartHome Projektes mit mehr als einer durchschnittlichen Qualität zur Verfügung stehen. Nichts ist schlimmer als wenn Sensoren nicht melden, Aktoren nicht reagieren und die Web App auf dem Handy ruckelt oder gar nicht reagiert.

Investiert ein wenig Geld in das WLAN, es zahlt sich auf Dauer aus. Besser einen Repeater mehr als zu wenig. Meiner Meinung nach müssen es auch nicht die Top Performance Modelle sein, wichtig sit ein durchgängige Abdeckung.

Das zigbee Gateway ist in meinem Fall „deConz / Phoscon“ von Dresden Elektronk mitdem conbee II Stick.

Für zwave habe ich jetzt das OpenZwave Gateway installiert. GitHub

Als Hardware nutze ich den „Aeotec AEOEZW090-C Aeon Labs USB Stick mit eingebauter Batterie“.


Installation Raspberry

Für die Installation des linux Betriebssysteme der Beschreibung auf der Raspberry Seite folgen.

Auch für die Konfiguration des SSD Boots gib es genügend Anleitungen im Netz.

Die Docker Installation habe ich hier beschrieben.

Installation der Subsysteme

Installation deConz / phosconn für zigbee Geräte

Installation MQTT Broker

Installation OpenZwave Gateway 

Installation HomeAssistant

Es gibt meines Erachtens zwei Varianten HomeAssistant zu betrieben

  • Installation von HASS.IO als Appliance mit Administration über die GUI
  • Auf Linux in Docker und selbst verwaltet

Ich hatte früher HASS.IO in Betrieb und war damit sehr zufrieden. Dann habe ich wohl was falsch verstanden oder interpretiert. Es gab die Meldung, dass HomeAssisant Core eingestellt wird. Meine Interpretation war, dass das hass.io und den Supervisor betrifft. Daraufhin wollte ich nicht warten bis ich unsupported bin und habe auf die Docker Variante umgestellt. Zur Zeit habe ich keinen Bedarf wieder auf hass.io zurück zu wechseln, aber für die Zukunft ist der Gedanke da.

Verzeichnis für HomeAssistant anlegen

sudo mkdir -p /usr/share/homeasistant 
sudo chown -R pi:docker /usr/share/homeasistant 
sudo chmod 775 /usr/share/homeasistant

Installation des Docker Containers

docker run --init -d \
  --name="home-assistant" \
  -e "Europe/Berlin" \
  -v /usr/share/homeasistant:/config \
  --net=host \
  homeassistant/raspberrypi4-homeassistant:stable

Die 3 PIs

Ich habe meine Anwendungen auf 3 Raspberrys verteilt. Die Aufteilung geschah nach unterschiedlichen Gesichtspunkten:

  • verfügbare Hardware
  • sinnvolle Gruppierung
  • Sicherheit
  • Performance

Verfügbar hatte ich 2x RP3 B+ und einen RP4. Für einen 3er eines USB-SATA Adapter und einen für den 4er. Dazu 2 MSATA Karten.

Sinnvolle Gruppierung:

  • Infrastruktur
  • Administration
  • Smarthome

Sicherheit:

Da ich eine Certificate Authority erstellen wollte, sollte diese unbedingt auf einen eigenen Rechner. 

Infrastruktur:

Für den Zugriff von Aussen habe ich ein VPN Gateway installiert. Dass dieses weder auf dem SmartHome Rechner noch auf dem mit der CA laufen soll geben Sicherheitsaspekte vor.

Also ergab sich folgende Aufteilung:

  • raspy3 – Raspberry 3 mit SD
    • Wireguard VPN Gateway
    • SAMBA Server
  • raspy4 – Raspberry 3 mit SSD
    • Administrations Desktop 
    • Certificate Authority
  • raspy5 – Raspberry PI4 mit SSD
    • Docker
    • Homeassistant
    • deConz
    • OZW Gateway
    • Mosquitto MQTT Server

Ich installiere meine PIs immer mit dem Standard Raspberry PI OS. Download hier.

 

Meine Hardware

Ich verwende seit vielen Jahren Raspberry PIs.

Auch wenn immer wieder von Bastel Rechner und Spielzeug geredet wird, der Raspberry hat mich noch nie im Stich gelassen. Manch anderer – auch Server HW – schon.

Die Verpackung in einzelne Gehäuse, die es für den Betrieb mit einer SSD auch nicht so viele gibt, hat mich dazu veranlasst meine RPIs in diesem offenen Stack zu betreiben. Der PI4 muss zusätzlich gekühlt werden, für die 3er reicht die passive Kühlung über die Kühlkörper aus.

Raspberry PI Stack

Aktuell betreibe ich 3 PIs:

  • Raspberry PI 3 B+ mit SD Karte
  • Raspberry PI 3 B+ mit SSD
  • Raspbery PI 4 – 4GB mit SSD
APC NetShelter

Ich habe das Glück mich mit meinem Hobby hier in unserem Haus ausbreiten zu können.

Dieses Rack ist ein APC Netshelter, das ich 2011 auf ebay für 350€ erstanden habe. Es hat keine Seitenteile, was mich zwar optisch immer noch stört, aber zum arbeiten daran ist es Klasse.

Jetzt habe ich mir dort einen KVM Switch mit kleinem Monitor und Tastatur / Maus für die Raspberry installiert.

Aus früheren Zeiten existiert noch ein Fujitsu Primergy TX300S6 Server. Auf dem ist ein vmware ESXi installiert. Hier teste ich manchmal noch die Sachen, die auf dem Raspberrys (ARM Prozessor) nicht laufen. Ansonsten ist er aber immer Aus, braucht einfach zuviel Strom und ist laut.

Zur Zeit existieren 3 NAS Systeme von Synology

  • DS1010+
  • DS718+
  • DS218play

Sie dienen als Dateiablage und Surveillance Station.

Das Netzwerk im Haus stellt eine Fritz!Box bereit.

Ich habe mich diesmal sehr bewusst für die Fritz Infrastruktur entschieden. Im vorhergehenden Haus hatte ich mit viel Aufwand eine Ubiquiti Unify Installation am laufen. Mit getrennten VLANs und spezifischen Firewall Anpassungen explizit für das SmartHome.

In den 3 Jahren mit Ubiquiti sind mir 2 Gateways gestorben, sie ließen einfach keinen Zugriff mehr zu, und 3x hat der Controller das Update nicht überlebt und ich musste ihn neu installieren. Dazu kam noch, dass ich selten aber doch spürbar, immer mal wieder Probleme mit den iPhones im Unify WIFI hatte.

Nun, also der Aufbau hier:

Fritz!box 7590 mit 8x Fritz!Repeater 2400 und einen alten 300er im Keller. Das Ganze verteilt auf 3 Stockwerke. 3 der Repeater habe einen LAN Uplink, alle miteinander arbeiten im Mesh.

Die Anbindung an das LAN erfolgt durch einen Netgear GS724TPP mit PoE für mein Telefon und die Kameras. Ich nutze Netgear Switches schon seit vielen Jahren und hatte immer positive Erfahrungen damit. Auch wenn es einmal Probleme gab, der Support bei den Procurve Geräten ist sensationell.

Netgear GS724TPP

Für die Verkabelung ins Haus habe ich einige CAT7 Kabel bei der Renovierung verlegen lassen. Sie enden hinter dem Rack.

CAT7 Wanddosen