Vorbereitung des Raspberry Pi 3
Zunächst sollte man sich
Raspbian Buster Lite herunterladen. Wählt man die zip-Datei, dann diese entpacken und das Image z.B. mit dem Win32DiskImager auf eine µSD-Karte installieren. Danach die Karte in den Raspi stecken und ihn mit Strom versorgen. Sehr hilfreich sind zudem eine per USB bzw. USB-Dongle mit dem Raspi verbindbare Tastatur und Maus.
Hinweis: Ich hatte irgendwann Probleme nach Updates von Raspbian Jessie Lite bzw. Stretch Lite und des RPi_Cam_Web_Interfaces, weil die aktuelle GLIBC nicht mehr gefunden werden konnte. Daher habe ich auf
Raspbian Buster Lite gewechselt. Damit läuft alles sauber und problemlos.
Nach dem ersten Booten des Raspis loggt man sich erstmalig mit dem User "pi" und dem Passwort "raspberry" (Achtung: die Tastatur dürfte noch auf Englisch stehen, so dass das Y auf der Z-Taste liegt) ein. Anschließend ruft man die Konfiguration mit
auf. Hier nun in Kurzform die erforderlichen Einstellungen:
- Change User Password -> Zur Änderung des Standardpassworts "raspberry" für den User pi.
- Network Options -> Zum Einstellen des Hostnamens (z.B. bei mir "LBoxPi"), der SSID des eigenen Routers und des WLAN-Passworts, falls gewünscht.
- Localisation Options -> Zum Ändern des WiFi-Lands (z.B. DE), der Zeitzone (z.B. Europa, Berlin) und des Keyboard-Layouts (alle drei de_DE-Optionen aus- und en abwählen; danach de_DE.UTF-8 und die verwendet Tastatur mit den Standardeinstellungen für Deutsch übernhemen).
- Interfacing Options -> Zur Aktivierung insbesondere des Kamera-Moduls und der Secure Shell (SSH). Soll ein PiFace Digital 2 Moduls verwendet werden, muss auch SPI aktiviert werden.
Abschließend den Raspi neu booten.
Vergeben einer statischen IP-Adresse für die WLAN-Verbindung
Ich würde grundsätzlich empfehlen, statische IP-Adressen für Geräte zu vergeben, die innerhalb des WLANs von anderen Geräten häufig angesprochen werden müssen. Dies ist auch bei DHCP-Betrieb möglich, wobei dann eine IP-Adresse außerhalb des DHCP-Bereichs gewählt werden sollte. Zur statischen IPv4-Konfiguration öffnet man die Datei "/etc/dhcpcd.conf" mit dem Befehl
Dann fügt man z.B. für die statische WLAN-Adresse "192.168.0.21" des Raspis und im Falle der Server-Adresse "192.168.0.1" des WLAN-Routers die folgenden Zeilen am Ende von "dhcpcd.conf" hinzu:
Code: Alles auswählen
interface wlan0
static ip_address=192.168.0.21/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1
Vermeiden eines Abbruchs der WLAN-Verbindung (nicht für Buster Lite)
Ich hatte häufiger das Problem, dass mein Raspi 3 irgendwann nicht mehr per WLAN erreichbar war. Der Grund dafür waren die Energiespareinstellungen für das WLAN-Modul. Mit folgendem Befehl lässt sich das Problem sehr einfach vermeiden:
Hinweis: Da dieses Paket bei Buster Lite nicht enthalten ist, muss es auch nicht mit obigem Befehl entfernt werden. Vielleicht hilft die Info aber ja trotzdem mal jemandem weiter.
Installation von DoorPi
Wenn soweit alles konfiguriert wurde, kann es mit der Installation des DoorPi weitergehen. Zunächst müssen pip und linphone als wichtige Pakete heruntergeladen und installiert werden:
Code: Alles auswählen
sudo apt-get remove python-pip
sudo easy_install pip || (wget https://bootstrap.pypa.io/ez_setup.py -O - | sudo python) && sudo easy_install pip
sudo pip install linphone4raspberry python-daemon
Danach geht es mit dem Download und der Installation von DoorPi weiter:
Abschließend noch den Benutzer anpassen:
Erster Start des DoorPi
Es kann sein, dass der Startvorgang des DoorPi beim ersten Mal mit der folgenden Fehlermeldung stoppt.
Trotzdem sollte das Web-Interface nun in einem Browser mit "
http://<doorpi-IP>/dashboard/pages/index.html" aufgerufen werden können.
Nach dem Start wird automatisch die Konfigurationsdatei "doorpi.ini" angelegt, die es später noch zu bearbeiten gilt. Hat soweit alles geklappt, kann DoorPi mit CTRL-C wieder beenden werden.
Einrichten von DoorPi als Deamon
Die Einrichtung von DoorPi als Deamon hat den Vorteil, dass dieser nach dem Schließen der Konsole weiterläuft und dass nach jedem Neustart des Raspi gleichzeitig auch ein automatischer Start des DoorPi erfolgt. Zuerst sollte geprüft werden, ob der DoorPi überhaupt als Daemon lauffähig ist:
Code: Alles auswählen
sudo systemctl daemon-reload
sudo /etc/init.d/doorpi start
Falls bei der Installation kein Daemon-File erzeugt wurde und/oder dieses nachträglich erzeugt werden soll (Achtung: Die Datei /etc/init.d/doorpi wird ohne Rückfrage überschrieben!), folgende Befehlszeilen ausführen:
Code: Alles auswählen
cd /tmp
wget https://raw.githubusercontent.com/motom001/DoorPi/master/doorpi/docs/service/create_daemon_file.py -O - | sudo python
sudo systemctl daemon-reload
Danach wird der Daemon in den "Autostart" eingetragen:
Code: Alles auswählen
sudo systemctl daemon-reload
sudo update-rc.d doorpi defaults
DoorPi wird jetzt automatisch bei einem Neustart des Raspi gestartet. Zudem kann der Dienst auch mit
gestartet werden (außer "start" gibt es auch noch die Optionen "stop", "restart" und "status").
Installation des RPI-Cam-Web-Interface
Voraussetzung für die nachfolgende Installationsanleitung ist ein mit dem Raspi verbundenes Raspberry Camera Module.
- Falls nicht bereits bei der Ersteinrichtung des Raspis geschehen, sollte zunächst mit
das Konfigurationstool von Raspian gestartet und die Kamera unter "Enable Camera" aktiviert werden. Anschließend den Raspi mit
neu starten.
- Im Anschluss wird das RPI-Cam-Web-Interface mit der folgenden Befehlsfolge installiert:
Code: Alles auswählen
sudo apt-get install git
sudo git clone https://github.com/silvanmelchior/RPi_Cam_Web_Interface.git
cd RPi_Cam_Web_Interface
sudo ./install.sh
- Nach Abschluss der Installation sollte sich automatisch das nachfolgende Konfigurationsfenster öffnen.

- RPi_Cam_Web_Interface_01.png (16.5 KiB) 21904 mal betrachtet
Standardmäßig ist als Cam subfolder "html" eingestellt. Ich habe auf dieses Unterverzeichnis verzichtet, da auch schon mal anderer Raspi so konfiguriert ist. Zudem verwende ich den Webport 8181 statt 80. Auch das ist eher dem anderen Raspi geschuldet, weil dort bereits der Port 80 belegt war.
Raspbian Buster findet nach dem erstmaligen Aufruf nicht alle Pakete. Daher ist nach dem Drücken auf den OK-Button vermutlich erst mal ein
mit anschließendem, nochmaligem
notwendig. Danach sollte dann aber das nachfolgende Fenster zum Starten des Interfaces angezeigt werden.

- RPi_Cam_Web_Interface_02.png (8.49 KiB) 21904 mal betrachtet
Konfiguration des RPi_Cam_Web_Interfaces
Das eigentliche Web-Interface kann nun in eimem Brower durch Eingabe der IP-Adresse gefolgt vom konfigurierten Port, also z.B. mit "
http://192.168.0.22:8181/" geöffnet werden.
Die Konfiguration gestaltet sich recht einfach, da man sämtliche Änderungen sofort angezeigt bekommt. Neben der Auflösung (ich empfehle keine allzu hohen Werte, um eine möglichst schnelle Anzeige und Übertragung zu erzielen) und der Bildlage kann man unter anderem auch den Inhalt, die Größe, die Farbe und den Hintergrund einer Texteinblendung (Annotation) ändern.
Auch lässt sich hier eine Bewegungserkennung einstellen, was ich aber in Verbindung mit einer Haustürkamera eher nicht empfehlen würde, da diese besser in Abhängigkeit von einem Klingeln und/oder einem Briefeinwurf ausgelöst werden sollte.
Anzeige der Außentemperatur im Video- und Standbild
Um von der CCU aus Dateien auf dem Raspi schreiben und verändern zu können, sind zunächst folgende Schritte auf dem Raspi und der CCU per PuTTY, Termius oder einem anderen Terminal-Programm auszuführen:
Raspi (IPv4: 192.168.0.21)
Code: Alles auswählen
sudo mkdir /home/pi/.ssh
sudo chmod -R 777 /home/pi/.ssh
Die Schreibrechte müssen zunächst für alle eingeräumt werden, da ssh-copy-id sonst im nachfolgenden Schritt die Datei "authorized_keys" nicht anlegen kann.
CCU (IPv4: 192.168.0.20)
- Bemerkung: nicht für CCU3 erforderlich
-
- Enter file in which to save the key (/root/.ssh/id_rsa): Return-Taste drücken
- Enter passphrase (empty for no passphrase): Return-Taste drücken
- Enter same passphrase again: Return-Taste drücken
-
Achtung (
nur für CCU1 und 2 erforderlich): nach einem FW-Update der CCU gehen die rsa-Dateien im root-Verzeichnis der CCU in der Regel verloren (dies ist bei der CCU3 und der Raspberrymatic nicht der Fall). Daher empfiehlt sich, das von @uwe111 erzeugte WebUI-Addon
ssh-keygen zu installieren. Damit sind die Dateien dann sicher.
Raspi (IPv4: 192.168.0.21)
Wichtig: Die Schreibrechte des Ordners ".ssh" müssen abschließend auf den Eigentümer beschränkt sein (755 oder 700). Ansonsten wird immer wieder eine Authentifizierung verlangt und das automatische Einwählen der CCU auf dem Raspi schlägt fehl.
Nun legt man mit
Code: Alles auswählen
sudo nano /home/pi/RPi_Cam_Web_Interface/user_annotate.txt
eine leere Datei im Verzeichnis "/home/pi/RPi_Cam_Web_Interface" an und beendet den Editor mit Ctrl-X und J zum Abspeichern. Anschließend vergibt man noch Lese- und Schreibreichte für alle:
Code: Alles auswählen
sudo chmod 666 /home/pi/RPi_Cam_Web_Interface/user_annotate.txt
Wichtig: Standardmäßig ist raspimjpeg so konfiguriert, dass es die Datei "user_annotate.txt" im Verzeichnis "/dev/shm/mjpeg" erwartet. Dies führt aber leider dazu, dass die Datei bei jedem Refresh des Verzeichnisses wieder gelöscht wird und die Annotations nur flüchtig sind. Daher muss "/etc/raspimjpeg" mit
so umkonfiguriert werden, dass der Eintrag
in
Code: Alles auswählen
user_annotate /home/pi/RPi_Cam_Web_Interface/user_annotate.txt
geändert wird. Danach den Raspi mit
zur Übernahme der Änderungen neu starten.
In die Datei "user_annotate.txt" kann dann mit dem nachfolgenden Programm und HomeMatic-Skript die aktuelle Außentemperatur eines Wettersensors oder dergleichen geschrieben werden.

Code: Alles auswählen
! Aktuelle Außentemperatur in Datei für RPI-Cam-Web-Interface auf LBoxPi schreiben
! Version 1.1, Autor: dtp
! Kanal des Kombisensors
string channel = "DG Dach Wettersensor Daten";
! Einwahldaten des LBoxPi
string login = "pi@192.168.0.21";
! #####################################################################
! ##### ab hier bitte keine weiteren Einstellungen mehr vornehmen #####
! #####################################################################
! +++++ Deklaration weiterer Variablen +++++
string temp;
! +++++ Ausgabe des aktuellen Außentemperaturwerts +++++
temp = (dom.GetObject(ID_CHANNELS).Get(channel)).DPByHssDP("ACTUAL_TEMPERATURE").Value().ToString(1);
! +++++ Temperaturwert in Datei schreiben +++++
(dom.GetObject(ID_DATAPOINTS).Get("CUxD.CUX2801001:1.CMD_EXEC")).State("echo -n "#temp#" C | ssh "#login#" 'cat > /home/pi/RPi_Cam_Web_Interface/user_annotate.txt'");
Leider wird das °-Zeichen nicht vom RPi_Cam_Web_Interface unterstützt. Daher muss man darauf verzichten und die Temperatur nur mit "C" ausgeben. Nicht schön, aber leider nicht zu ändern. Und "Gr C" sieht irgendwie auch doof aus.
Update des RPi_Cam_Web_Interfaces
Zum Updaten des RPi_Cam_Web_Interfaces zunächst einfach die folgenden Schritte durchführen und die dann erscheinenden Fenster jeweils mit OK bestätigten.
Im Anschluss daran muss die Datei "user_annotate.txt" im Verzeichnis "/dev/shm/mjpeg" mit
noch wieder so umkonfiguriert werden, dass der Eintrag
in
Code: Alles auswählen
user_annotate /home/pi/RPi_Cam_Web_Interface/user_annotate.txt
geändert wird. Dies ist leider nach jedem Update notwendig, da "user_annotate.txt" immer mit den Standardwerten überschrieben wird. Danach den Raspi mit
zur Übernahme der Änderungen neu starten.
Gruß,
Thorsten