Als Test erstellten wir mit der Datei snap-picture.json eine eigene Aktion, die mit der RasPi-Kamera ein Bild aufnimmt und die Bilddatei dann per Scp (Secure Copy auf Basis von SSH) auf einen Server überträgt (Listing 2). Als Voraussetzung müssen Sie ein Kameramodul an den Raspberry Pi anschließen und dafür sorgen, dass sich der User pi mithilfe eines Schlüssels am gewünschten SSH-Server ohne die Eingabe eines Passworts anmelden darf. Unsere Schwesterzeitschrift LinuxUser erklärt das entsprechende Vorgehen im Detail [6].
Listing 2
snap-picture.json
{
"name": "Snap Picture",
"icon": "mdi-camera",
"handle": "camera",
"description": "Take picture and copy it to server",
"commands": {
"take-picture": {
"name": "Take picture",
"icon": "mdi-camera-image",
"description": "Smile for the camera!,
"confirm": true,
"user": "pi",
"command": [
["raspistill", "-o", "/home/pi/rpicam.jpg"],
["scp", "-P", "622", "/home/pi/rpicam.jpg", "[email protected]:/var/services/homes/otto"],
["rm" "/home/pi/rpicam.jpg"]
]
}
}
}
Die Basisdaten in den Zeilen 2 bis 12 gestalten Sie nach eigenen Vorstellungen. Für die Symbole bedient sich PiCockpit bei der Icons-Bibliothek Material Design. Eine vollständige Übersicht aller Piktogramme erhalten Sie auf der Github-Seite des Projekts [7]. Die auf dem RasPi ausgeführten Kommandos finden Sie im JSON-Objekt command ab Zeile 13. Einen Bash-Befehl wie raspistill -o /home/pi/rpicam.jpg müssen Sie dabei in der Art ["raspistill", "-o", "/home/pi/rpicam.jpg"] anhand der Leerzeichen in einzelne Strings zerlegen.
Das Command-Objekt erlaubt, mehrere Befehle hintereinander auszuführen. Im Test zeigte sich jedoch, dass es einfacher ist, die gewünschten Befehle in ein gesondertes Bash-Skript auszulagern. In unserem Fall etwa endet die JSON-Datei dann so, wie in Listing 3 gezeigt. Das dann von PiCockpit aufgerufene Skript /home/pi/bin/snap-picture.sh zeigt Listing 4. Es erleichtert nicht nur die Pflege der ausgeführten Kommandos – das Zerlegen erübrigt sich –, sondern verhindert auch, dass PiCockpit an komplizierteren Konstrukten wie etwa der Übernahme des Zeitstempels in den Dateinamen scheitert.
Listing 3
snap-picture.json (alternativ)
[...]
"user": "pi",
"command": ["/home/pi/bin/snap-picture.sh"]
}
}
}
Listing 4
snap-picture.sh
#!/bin/bash raspistill -o /home/pi/rpicam-$(date +'%Y%m%d_%H%M%S').jpg scp -P 622 /home/pi/rpicam*.jpg [email protected]:/var/services/homes/otto rm /home/pi/rpicam*.jpg
Nach jeder Änderung müssen Sie noch den PiCockpit-Client auf dem RasPi-System über das Kommando sudo service picockpit-client restart neu starten. Das Webfrontend übernimmt die neuen Aktionen dann automatisch in die Auswahl. Unser Beispiel schießt beim Klick auf TAKE PICTURE ein Bild, speichert es mit einem Zeitstempel im Namen ab, überträgt es mittels Scp auf den Server und löscht es dann von der Speicherkarte des Raspberry Pi (Abbildung 5).

Abbildung 5: Das PiControl-Modul lässt sich recht leicht um eigene Funktionen erweitern: Hier erstellt der RasPi per Mausklick ein Bild und lädt es auf einen Server hoch.
Fazit
Wer mit mehreren RasPi-Einheiten an verteilten Standorten arbeitet, findet in PiCockpit einen zuverlässigen Helfer. Der Webdienst liefert nicht nur Details zum Status der RasPi-Flotte, sondern erlaubt in der überarbeiteten Version nun auch, die Mini-Rechner fernzusteuern. Vom gelegentlichen Neustart bis hin zu selbst definierten Aktionen lässt sich das System vollständig kontrollieren. Die ausführliche Dokumentation erleichtert das Entwickeln eigener Aktionen, setzt jedoch Grundwissen zur Arbeit mit Shell-Skripten voraus.
In der aktuellen Version 2.0 unterstützt PiCockpit lediglich das offizielle Raspberry Pi OS. Test mit anderen Systemen wie etwa Ubuntu zeigten noch Probleme [8]. Für die nächste Entwicklungsstufe des Dienstes ist jedoch angedacht, den RasPi-Client dahingehend umzubauen, dass er auch mit anderen Distributionen funktioniert, etwa der Multimedia-Distribution Volumio. Zudem möchte Pi3g außerdem Videostreaming integrieren, sodass sich dann die Kamera des Raspberry Pi über den Browser nutzen lässt. (cla)
Infos
- RasPi als Infoscreen: Wolfgang Dautermann, “Stets im Blick”, RPG 03/2014, S. 64, https://www.raspi-geek.de/30407
- PiSignage: https://pisignage.com
- PiCockpit: https://picockpit.com
- PiCockpit: Christoph Langner, “Unter Kontrolle”, RPG 08/2019, S. 52, https://www.raspi-geek.de/42958
- “Control your Raspberry Pi remotely using PiControl”: https://picockpit.com/raspberry-pi/control-your-raspberry-pi-remotely-using-picontrol
- Secure Shell: Harald Zisler, “Sicherer Transfer”, LU 11/2017, S. 74, https://www.linux-community.de/39062
- Material-Design-Icons: https://pictogrammers.github.io/@mdi/font/4.9.95
- “Workaround for PiCockpit on Ubuntu”: https://picockpit.com/raspberry-pi/workaround-for-picockpit-on-ubuntu/





