DIY Magic Mirror #8 – Cronjob einrichten und verwalten

Magic Mirror mit Cronjob automatisch ausschalten

Mein Magic Mirror hängt zu Hause im Büro. Da auch ich noch einer Arbeit nach gehe, die meistens auswärts stattfindet, muss der Magic Mirror natürlich nicht die ganze Zeit eingeschaltet sein. Bis jetzt habe ich meinen Spiegel einfach mit einer smarten Steckdose ein- und ausgeschaltet. Nicht ganz die feine Art, da ja auch der Raspberry ein Computer ist. Cronjob heisst das Zauberwort.

Magic Mirror runterfahren

Bis jetzt hat sich mein Magic Mirror bzw. mein Raspberry ausgeschaltet, wenn er von der Steckdose keinen Strom mehr bekommen hat. Dies ist natürlich jeweils nicht so die ganz feine Art.

Um einen Raspberry Pi korrekt runterzufahren gibt es verschiedene Befehle:

sudo shutdown

Mit diesem Kommando fährt sich der Raspberry nach einer Minute runter. Mit den nachfolgenden Befehlen macht er dies sofort:

sudo shutdown -h 0
sudo shutdown -h now

Und auch ein einleuchtender Alias steht zum runterfahre noch zur Verfügung:

sudo poweroff

Magic Mirror geplant runterfahren

Nun müssen wir nur noch diesen Befehl zu bestimmten Zeitpunkten ausführen und der Magic Mirror wird schön runtergefahren und erst anschliessend schaltet die smarte Steckdose alles aus. Dies geschieht mittels einem Cronjob.

Cronjob einrichten

Ein Cronjob führt einen Befehl zu einem bestimmten Zeitpunkt aus. Perfekt also um unserem Raspberry mitzuteilen, dass er jetzt runterfahren soll. Ein Cron bzw. einen Cronjob einzurichten, ist auch gar nicht so schwierig.

Als erstes müssen wir verstehen, wie so ein Cronjob aufgebaut ist beziehungsweise wie das Format aussieht:

* * * * * /Befehl/

Die fünf einzelne Stern stehen für folgende Zeiten:

Stern 1 * - Minuten von 0-60
Stern 2 * - Stunden von 0-24
Stern 3 * - Tage von 1-31 eines Monats
Stern 4 * - Alle Tage bestimmter Monate von 1-12
Stern 5 * - Wochentage von 0-7 (0 und 7 stehen beide für Sonntag)

Somit könnte mein Beispiel zum runterfahren folgendermassen ausschauen:

29 7 * * 1 /sudo poweroff

In normaler Sprache heisst dies:

Fahre den Raspberry, jeden Montag um 07:29 Uhr, mittels dem Befehl sudo poweroff runter.

Jetzt muss natürich dieser Befehl nicht irgendwo im Terminal eingegeben werden, sondern im Cron-Editor.

Cronjob Editor öffnen

Um den Cronjob Editor zu öffnen musst du in deiner Konsole das Kommando:

sudo crontab -e

eingeben und anschliessend öffnet sich der Cronjob Editor. Zuvor kann man noch den Editor auswählen, mit dem man den Crontab bearbeiten möchte. Ich habe den Nano-Editor ausgewählt.

Nun kannst du alle Zeitpunkte eingeben, an welcher der Magic Mirror runtergefahren werden soll. Bei mir sieht der Cronjob Editor so aus:

Hier noch meine Einträge zu kopieren (ich brauch das sicher wieder mal ;-))

#MONTAG BIS FREITAG AUSSCHALTEN AM MORGEN
29 7 * * 1 sudo poweroff
29 7 * * 2 sudo poweroff
29 7 * * 3 sudo poweroff
29 7 * * 4 sudo poweroff
29 7 * * 5 sudo poweroff
#
#MONTAG BIS FREITAG AUSSCHALTEN AM ABEND
59 19 * * 1 sudo poweroff
59 19 * * 2 sudo poweroff
59 19 * * 3 sudo poweroff
59 19 * * 4 sudo poweroff
59 19 * * 5 sudo poweroff
#
#SAMSTAG AUSSCHALTEN AM VORMITTAG UND ABEND
59 11 * * 6 sudo poweroff
59 19 * * 6 sudo poweroff
#
#SONNTAG AUSSCHALTEN AM VORMITTAG
59 11 * * 7 sudo poweroff

Magic Mirror Updates per Cronjob

Wie oben schon beschrieben, kann man jegliche Befehle per Cronjob ausführen lassen. Da lag es für mich auf der Hand, dass ich auch gleich noch einen Job einrichte, welches den Magic Mirror automatisch aktualisiert, damit ich nicht jedesmal die Updates manuell einspielen muss. Im Magic Mirror #6 habe ich beschrieben wie man dies manuell machen muss.

Jetzt habe ich mir dafür einen Cronjob eingerichtet, der folgendermassen konfiguriert ist:

#MAGIC MIRROR UPDATE GIT PULL
0 2 * * 7 sudo cd ~/MagicMirror && git pull
4 2 * * 7 sudo poweroff

Wiederum in meiner Sprache heisst dies:

Führe jeden Sonntag um 02:00 Uhr nachts folgenden Befehl aus cd ~/MagicMirror && git pull und fahre anschliessend um 02:05 Uhr den Raspberry wieder mit dem Befehel sudo poweroff runter.

Natürlich muss ich dazu dann auch noch den Zeitplan der smarten Steckdose aktualisieren, dann der Raspberry lässt sich natürlich nicht ohne Strom starten.

Nicht vergessen mit Ctrl+x anschliessend mit Yes den Cronjob Editor zu speichern.

Cronjob und Logfile

Da ich im nach hinein immer mal schauen möchte, ob die Updates ausgeführt oder allgemein ob der Cronjob richtig ausgeführt wurde, gibt es noch ein entsprechendes Logfile. Allerdings muss in einer Standard Raspberry OS-Installation dieses Logfile erst mal aktiviert werden.

Zuerst muss das rsyslog.conf File mit dem Nano-Editor geöffnet werden:

sudo nano /etc/rsyslog.conf

Anschliessend muss man im Bereich Rules die Zeile cron auskommentieren.

Die #cron Zeile muss auskommentiert werden

Das heisst die Zeile mit dem cron muss anschliessend so aussehen:

cron.*                          /var/log/cron.log

Sobald der erste Cronjob durchgelaufen ist, wird im Pfad /var/log das File cron.log angelegt:

/var/log/cron.log

Mit nano/cron.log lässt sich das File noch öffnen und analysieren. Kann einem vielleicht mal behilflich sein.

Fazit

Mittels Cronjob kann man den Raspberry zeitgesteuerte Befehle oder Kommandos ausführen. So zum Beispiel den Raspberry runterfahren oder den Magic Mirror automatisch aktualisieren.

3 Replies to “DIY Magic Mirror #8 – Cronjob einrichten und verwalten

  1. Hallo,
    du musst nicht für jeden Tag eine Zeile in die crontab schreiben. Es geht z.B. auch so
    29 7 * * 1-5 sudo poweroff

    oder auch so, falls die Tage nicht inReihe liegen:
    59 19 * * 1,2,4,5 sudo poweroff

    So geht das auch mit den anderen Werten. ganz kurz wäre also auch
    29,59 7,19 * * 1-5 sudo poweroff

    Allerdings würde der Pi damit auch um 19:29 heruntergefahren werden 😉

    Viele Grüße

    Sepp

Mentions

  • Magic Mirror selber bauen - Eine einfache und vollständige Anleitung

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.