Kameraüberwachung des Hauseingangs mit Raspberry Zero, inklusive Bewegungserkennung, Fernzugriff auf den Livestream und autom. Sicherung der Aufnahmen

  • Hallo zusammen, hier stelle ich mein erstes Raspberry-Projekt vor, eine:


    Kameraüberwachung des Hauseingangs mit Raspberry Pi Zero


    :!:Jeder, der das System nachbauen will ist herzlich eingeladen, sämtliche hier geposteten Informationen zu kopieren und zu verwenden (:


    Ich habe diesen Post bewusst so gestaltet dass man hier alle benötigten Informationen findet, und nicht noch mit 18 geöffneten Browsertabs sich mühsam von unterschiedlichen Internetseiten alles zusammensuchen muss. Sozusagen eine A-Z-Anleitung und Projektvorstellung aus einer Hand.


    Hier die Eckdaten des Projektes. Man kann:

    • mit einem Computer auf die gespeicherten Kameravideos (Bewegungserkennung) bequem zugreifen
    • mitbekommen was am Kamerastandort los ist/war, auch wenn man nicht zu Hause ist/war
    • Kameravideos in seinem Google-Drive-Account, die automatisch hochgeladen werden, wiederfinden und abspielen
    • den Videostream von überall auf der Welt beobachten, zum Beispiel vom Smartphone aus
    • per "Fernwartung" (SSH) auf den Raspberry zugreifen um Konfigurationen vorzunehmen, sowohl vom lokalen Netzwerk aus, als auch vom Internet
    • einen großen Sichtbereich abdecken, dank 120-Grad-Weitwinkelkamera
    • einen nahezu beliebigen Standort wählen, da drahtlose WLAN-Anbindung
    • eine preisgünstige Videoüberwachung mitsamt Aufzeichnung realisieren

    Hier noch ein paar Impressionen des fertigen Projekts:


    Videodateien der Bewegungserkennung in Nautilus


    Livestream am Handy


    Da kommt noch 'ne schöne Aufputzsteckdose,

    und eine saubere Verdrahtung hin, keine Angst :-)


    Dieses Kameramodell passt zwar vorne durch das

    Gehäuseloch, hält aber erstens nicht richtig weil das

    Loch viel größer ist als das Objektiv, außerdem müsste

    die Kamera hinten auf dem Flachbandkabel sitzen, und

    nicht vorne. Für eine Montage im Kameraloch ist das

    Flachbandkabel also genau um 180 Grad verdreht und

    eine Montage im weißen Deckel somit nicht möglich.

    Glücklicherweise waren auf der Rückseite des

    Flachbandkabels zwei doppelseitige Klebebänder,

    die werden schon gewusst haben, warum ;-)


    Schnell noch ein Loch in den

    weißen Deckel gebohrt, und mit

    einem Winkel an der Dachsparre

    befestigt. So lässt sich die Kamera

    für Wartungsarbeiten ohne

    Aufwand aus dem Clip-Verschluss

    des Deckels abnehmen.




    Also, los gehts.

    Die verwendete Hardware

    Ich habe folgende Komponenten eingesetzt:


    Für die Kamera:

    • Raspberry Pi Zero mit Gehäuse: RPIZ-ZWPC
    • Netzteil, 1A, mit Micro-USB-Anschluss: 8003512
    • Kameramodul: RPIZ-CAM-WA
    • SD-Karte mit 32 GB, damit auch jede Menge Fotos und Videos draufpassen*: 740617274707

    Alles zusammen kostet ca. 40,- Euro.


    * (meine SD-Karte ist von HAMA und vom Händler im Ort, weil ich die bestellte SD-Karte gekillt habe, deswegen also nicht wundern wenn auf den Fotos eine Hama-SD-Karte auftaucht)


    Wem eine Überwachung per Handy und Computer nicht reicht, der kann sich zusätzlich noch einen Monitor an die Wand klatschen:

    ** (vielleicht etwas übertrieben für eine einfache Streamdarstellung, aber ich plane noch weitere Aufgaben für diesen Raspberry)


    *** Anmerkung: Für zukünftige Projekte würde ich persönlich ein IPS-Display verwenden statt des oben genannten LCD's. Das Bild ist nur erkennbar, wenn man rechts neben dem Monitor steht, bei der Betrachtung von links wird ein Negativ-Effekt sichtbar und die Farben kehren sich um. Die Auflösung von 480x320 ist außerdem zu gering, teilweise passen Fensterdialoge von Raspbian nichtmal komplett auf's Bild und man muss mit der Tab-Taste navigieren und erraten, ob man auf der richtigen Schaltfläche ist. Die Aktualisierungsrate dieses Displays liegt bei gefühlt 3 Frames pro Sekunde, also für Videostreaming dann doch eher ungeeignet. Ich empfehle daher eine Mindestauflösung von 800x480 und ein Blickwinkelunabhängiges IPS-Display mit HDMI-Ansteuerung. Tja, wiedermal am falschen Ende gespart :-)


    Zum Konfigurieren und Installieren verwendete ich:

    • Laptop mit Ubuntu 18.04.02 LTS

    Vorbereiten der SD-Karte

    Zunächst habe ich mir Raspbian Stretch Lite heruntergeladen.


    forum-raspberrypi.de/attachment/20589/


    Unter "Laufwerke" und "Laufwerksabbild wiederherstellen" (Ubuntu) wurde dann das Betriebssystem-Image auf die SD-Karte geschrieben.




    Um für die folgenden Änderungen auf die SD-Karte zugreifen zu können, nimmt man diese nach dem Image-Schreibvorgang kurz aus dem Computer und steckt sie dann wieder rein. Die Karte wird dann automatisch von Ubuntu in's Dateisystem eingehängt.


    WLAN


    Als erstes wird der WLAN-Zugang eingerichtet. Dazu geht man in's Terminal mit STRG+ALT+T, und bearbeitet die entsprechende Konfigurationsdatei direkt auf der SD-Karte mit folgendem Befehl:

    sudo nano /media/<benutzername>/rootfs/etc/wpa_supplicant/wpa_supplicant.conf


    forum-raspberrypi.de/attachment/20590/


    und passt diese folgendermaßen an:

    Code
    1. ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
    2. update_config=1
    3. country=DE
    4. network={
    5. ssid="<netzwerkname>"
    6. scan_ssid=1
    7. psk="<schlüssel>"
    8. key_mgmt=WPA-PSK
    9. }

    "scan=ssid=1" ist normalerweise nicht nötig, habe ich aber eingefügt, weil mein WLAN unsichtbar ist und keine SSID übermittelt. Gespeichert und geschlossen wird die Datei mit STRG+O, Enter, STRG+X.


    SSH


    Anschließend muss man noch dafür sorgen, dass man zu jeder Zeit in einem Terminalfenster per SSH auf den Raspberry zugreifen kann. Um dies zu ermöglichen, wechselt man auf der SD-Karte in die Boot-Partition mit

    cd /media/<benutzername>/boot/

    und fügt dort mit den Befehlen

    touch ssh

    und STRG+C eine neue leere Datei ein.


    Abschließend schmeißt man die SD-Karte wieder aus dem Dateisystem mit folgenden Befehlen:

    umount /media/<benutzername>/boot/

    und

    umount /media/<benutzername>/rootfs/


    Jetzt wird die SD-Karte aus dem Computer entnommen und in den (stromlosen, nicht eingesteckten) Raspberry Zero gesteckt.

    Zugriff auf den Zero über's Netzwerk überprüfen

    Nachdem der Raspberry Pi Zero mit Strom versorgt wurde und gebootet hat (erkennbar an der flackernden grünen LED während des Startvorgangs), sollte er sich aus dem Netzwerk ansprechen lassen. Im LAN taucht der Zero normalerweise mit "raspberrypi" auf. Auf der Fritz!Box kann man das leicht überprüfen, in dem man im Menü auf "Heimnetz" und "Netzwerk" klickt. Dort werden alle Netzwerkgeräte aufgelistet.

    IP-Adresse und Netzwerkname des Zero festlegen

    Ich persönlich empfinde die Konfigurationsarbeit als einfacher, wenn bestimmte Netzwerkgeräte feste IP-Adressen haben. Zum Beispiel meine Raspberrys. Andere Geräte, wie etwa Smartphones oder Computer, werden bei mir per DHCP automatisch mit IP's versorgt.


    Um die IP-Adresse des Zero fest einzustellen, verbinden wir uns zunächst per SSH in einem Terminal mit dem Raspberry. Der Befehl dazu lautet:

    ssh pi@raspberrypi

    Die folgende Abfrage bestätigt man dann mit "yes" und Enter. Anschließend ist noch das Standardkennwort "raspberry" erforderlich, und wir sind drin! :-)


    Um eine ganz bestimmte IP-Adresse für den Zero festzulegen, öffnet man die entsprechende Konfigurationsdatei mit dem Befehl

    sudo nano /etc/dhcpcd.conf

    In der Datei habe ich dann folgenden Abschnitt hinzugefügt bzw. die entsprechenden Zeilen angepasst und auskommentiert:

    Code
    1. interface wlan0
    2. static ip_address=10.0.0.206/8
    3. static routers=10.0.0.1
    4. static domain_name_servers=10.0.0.1

    ...wobei hier die 206 frei gewählt wurde und für den Raspberry Zero steht. Die Datei wird wieder mit STRG+O, Enter, STRG+X gespeichert und geschlossen.


    Für das standardmäßige 192er-Netz der Fritz!Box sähe das ganze z. B. folgendermaßen aus:

    Code
    1. interface wlan0
    2. static ip_address=192.168.178.206/24
    3. static routers=192.168.178.1
    4. static domain_name_servers=192.168.178.1


    Jetzt legen wir noch einen Netzwerknamen für den Zero fest. Im Terminal rufen wir dazu

    sudo raspi-config

    auf. Mit den Pfeiltasten navigieren wir zu "Network Options", wählen mit der Tab-Taste "Select" und bestätigen mit Enter. Jetzt wählen wir "Hostname" und bestätigen wieder mit "Select". Der folgende Hinweis kann mit Enter bestätigt werden. Jetzt fordert uns der Raspberry auf: Please enter a hostname". Ich habe "eg-haustuer-aussen" gewählt. Nachdem der Name eingetippt wurde, wird mit "Ok" bestätigt.




    Damit nicht jeder Unbefugte an unserem Schätzchen herumfuchteln kann, legen wir nun noch ein neues Passwort für den Zero fest. Dazu wählen wir den Menüpunkt "Change User Password", geben zweimal hintereinander das neue Passwort ein, und bestätigen dann mit "Ok". Jetzt noch auf "Finish" gehen und die Abfrage "Would you like to reboot now?" mit "Ja/Yes" beantworten.


    Nun startet der Zero neu, und ist ab sofort im Netzwerk mit der von uns festgelegten IP-Adresse und unserem gewählten Namen erreichbar. Ich zum Beispiel erreiche meinen Raspberry entweder mit

    ssh pi@eg-haustuer-aussen

    oder mit

    ssh pi@10.0.0.206

    Montageort wählen

    Bevor die Kamera endgültig am finalen Platz montiert wird, empfehle ich eine Überprüfung der WLAN-Signalstärke mit wavemon, dieses nette Tool lässt sich mit

    sudo apt-get install wavemon

    schnell installieren und benötigt weder Einrichtung noch Konfiguration.


    Nachdem das Tool mit

    wavemon

    im Terminal auf einer SSH-Sitzung aufgerufen wurde, kann man am Laptop schön mitverfolgen wie sich mit wechselnden Kamerapositionen die WLAN-Signalstärke ändert und den Montageort dementsprechend festlegen.


    Meine Experimente haben gezeigt, dass ein "signal level" von weniger als ca. -75 dBm nicht mehr hinnehmbar ist, die Übertragungsraten werden dann zu gering, und auch das Anmelden per SSH dauert dann eine Ewigkeit. Ab etwa -80 bis -85 dBm geht dann fast gar nix mehr, hier beginnt der Videostream sporadisch für mehrere Sekunden auszusetzen. Die "link quality" kann auch weit nach unten gehen - solange der obere Balken grün bleibt, funktioniert alles.



    Kameraüberwachungsprogramm "motion" installieren

    Wir verbinden uns im Terminal wieder per SSH, in meinem Fall lautet der Befehl dazu:

    ssh pi@eg-haustuer-aussen

    Dann noch das Kennwort eintippen, und wir sind wiedermal "drin" ;-)


    Betriebssystem aktualisieren


    Anschließend bringen wir das Betriebssystem auf den neuesten Stand mit

    sudo apt-get update

    und

    sudo apt-get upgrade

    Je nach Internetanbindung kann der Upgradevorgang schon eine Weile dauern.


    Kernelmodule beim Systemstart laden, damit die Kamera erkannt wird


    Im Terminal die folgenden zwei Zeilen eintragen, und mit Enter bestätigen:

    Code
    1. echo "v4l2_common" | sudo tee -a /etc/modules
    2. echo "bcm2835-v4l2" | sudo tee -a /etc/modules


    Danach wird die Kamera bei jedem Neustart erkannt.


    motion installieren


    Nun wird motion installiert. Dies geschieht ganz einfach mit dem Befehl

    sudo apt-get install motion


    Verzeichnisse erstellen und vorbereiten


    Nach abgeschlossener Installation müssen wir noch ein paar Konfigurationsanpassungen und Einrichtungen vornehmen. Zunächst erstellen wir zwei Verzeichnisse. Eines für die Aufnahmen der Kamera, und ein weiteres für Log-Dateien.


    Wir erstellen ein Kameraverzeichnis und vergeben die entsprechenden Schreibrechte für motion:

    Code
    1. mkdir /home/pi/cam/
    2. sudo chgrp motion /home/pi/cam/
    3. chmod g+rwx /home/pi/cam/


    Dann noch das Logverzeichnis erstellen und wieder die entsprechenden Schreibrechte für motion vergeben:

    Code
    1. mkdir /home/pi/log/
    2. sudo chgrp motion /home/pi/log/
    3. chmod g+rwx /home/pi/log/


    In der Standardeinstellung sind Kameradateien und Logdatei in einem einzigen Verzeichnis untergebracht, ich habe es aber lieber getrennt, damit beim Synchronisieren mit Google Drive nicht jedesmal dutzende Megabyte an Logdaten übertragen werden müssen und damit es übersichtlicher bleibt. Außerdem verhindert man so, dass versehentlich auch die Logdatei mitgelöscht wird, wenn man meint, den Videoordner leerräumen zu müssen (Alle Dateien markieren + löschen + dabei die motion.log übersehen).


    motion nach Neustart immer ausführen


    Damit motion bei jedem Neustart ausgeführt wird, muss die entsprechende Konfigurationsdatei mit

    sudo nano /etc/default/motion

    geöffnet und angepasst werden. Wir ändern folgene Zeile von "no" auf "yes":

    start_motion_daemon=yes


    Konfigurationsdatei von motion anpassen


    Bevor wir an der Datei herumexperimentieren, machen wir zunächst eine Sicherungskopie mit

    sudo cp /etc/motion/motion.conf /etc/motion/motion.conf.backup


    Nun öffnen wir mit

    sudo /etc/motion/motion.conf

    die Konfigurationsdatei von motion und passen diese noch entsprechend an.


    Starten in daemon mode auf "on" stellen:

    Code
    1. # Start in daemon (background) mode and release terminal (default: off)
    2. daemon on


    Speicherort für die Logdatei:

    Code
    1. # Use a file to save logs messages, if not defined stderr and syslog is used. ($
    2. logfile /home/pi/log/motion.log


    Bilddrehung, falls die Kamera kopfüber hängt oder verdreht ist:

    Code
    1. # Rotate image this number of degrees. The rotation affects all saved images as
    2. # well as movies. Valid values: 0 (default = no rotation), 90, 180 and 270.
    3. rotate 180


    Auflösung und Framerate - hier muss man etwas herumexperimentieren. Wie das geht, erläutere ich weiter unten. Zwar können die allermeisten Kameramodule Full HD mit 30 Bildern pro Sekunde liefern, diese Datenmenge aber in's WLAN zu pressen ist mit einem Zero nahezu unmöglich - dafür ist er zu leistunggschwach und auch die onboard-WLAN-Antenne bei größeren Entfernungen zum Accesspoint nicht mehr ausreichend. Ist die Kamera um 90 oder 270 Grad verdreht, muss man width (320 statt 480) und height (480 statt 320) vertauschen, da ja sozusagen sonst vom Quer- ins Hochformat gewechselt wird. Folgende Einstellungen klappen bei mir sehr gut:

    Code
    1. # Image width (pixels). Valid range: Camera dependent, default: 352
    2. width 480
    3. # Image height (pixels). Valid range: Camera dependent, default: 288
    4. height 320
    5. # Maximum number of frames to be captured per second.
    6. # Valid range: 2-100. Default: 100 (almost no limit).
    7. framerate 10


    Nun zur Empfindlichkeit für die Bewegungserkennung. Bei einem Wert von 500 (vorausgesetzt die oben genannte Auflösung wird verwendet) reagiert die Bewegungserkennung bereits auf Katzen oder Igel. Falls nur auf Menschen oder Fahrzeuge reagiert werden soll, muss man den Wert entsprechend raufdrehen - auf 1000 oder noch mehr.

    Code
    1. # Threshold for number of changed pixels in an image that
    2. # triggers motion detection (default: 1500)
    3. threshold 500


    Damit auch wirklich ein komplettes Ereignis in einer Videodatei gespeichert, und nicht vorne oder hinten abgeschnitten wird, habe ich noch "pre_capture" und "post_capture" angepasst:

    Code
    1. # Specifies the number of pre-captured (buffered) pictures from before motion
    2. # was detected that will be output at motion detection.
    3. # Recommended range: 0 to 5 (default: 0)
    4. # Do not use large values! Large values will cause Motion to skip video frames $
    5. # cause unsmooth movies. To smooth movies use larger values of post_capture ins$
    6. pre_capture 5
    7. # Number of frames to capture after motion is no longer detected (default: 0)
    8. post_capture 50


    Die Ausgabe von Fotos nach einem Ereignis habe ich abgeschaltet und statt dessen die Videoausgabe aktiviert. Diese Einstellung kann man je nach Wunsch ein- oder ausschalten:

    Code
    1. # Output 'normal' pictures when motion is detected (default: on)
    2. # Valid values: on, off, first, best, center
    3. # When set to 'first', only the first picture of an event is saved.
    4. # Picture with most motion of an event is saved when set to 'best'.
    5. # Picture with motion nearest center of picture is saved when set to 'center'.
    6. # Can be used as preview shot for the corresponding movie.
    7. output_pictures off


    Falls Bewegungen erkannt werden, wird eine Videodatei mit dem Ereignis erstellt:

    Code
    1. # Use ffmpeg to encode movies in realtime (default: off)
    2. ffmpeg_output_movies on


    Den Videocodec habe ich von mpeg4 auf mp4 umgestellt, da einige Geräte im Haus dieses Videoformat nicht wiedergeben konnten (zum Beispiel ein Raspberry Pi 3 B+ mit Raspbian):

    Code
    1. # Codec to used by ffmpeg for the video compression.
    2. ffmpeg_video_codec mp4


    Am linken und rechten unteren Bildschirmrand kann man sich frei wählbare Informationen einblenden lassen. Bei mir steht links unten der Kamerastandort, und rechts unten das Datum und die Uhrzeit. Damit man den Text auch auf kleinen Bildschirmen noch gut lesen kann, wurde die Schriftgröße mit "text_double on" vergrößert.


    Im folgenden Abschnitt kann man das Ausgabeverzeichnis für Fotos und Videos festlegen:

    Code
    1. # Target base directory for pictures and films
    2. # Recommended to use absolute path. (Default: current working directory)
    3. target_dir /home/pi/cam


    Der Dateiname von ausgegebenen Videos lässt sich ebenfalls nahezu beliebig anpassen. Selbst wenn sich Punkte oder Doppelpunkte im Dateinamen befinden (wegen der besseren Lesbarkeit von Datums- und Zeitangaben) läuft alles tadellos - ich habe es erfolgreich getestet. Die Videodateien mit den Sonderzeichen im Namen lassen sich ohne Probleme im Netzwerk herumkopieren, auf Google Drive hochladen, am Handy betrachten oder per E-Mail versenden.

    Code
    1. # File path for motion triggered ffmpeg films (movies) relative to target_dir
    2. # Default: %v-%Y%m%d%H%M%S
    3. # File extensions(.mpg .avi) are automatically added so do not include them
    4. movie_filename %d.%m.%Y-%H:%M:%S


    Nun müssen wir noch den Zugriff auf den Kamerastream (= das Livebild) erlauben, und setzen dazu folgende Einstellung:

    Code
    1. # Restrict stream connections to localhost only (default: on)
    2. stream_localhost off


    Damit nicht jeder Nutzer auf das Livebild zugreifen kann, habe ich den Videostream mit einem Passwort geschützt:

    Code
    1. # Set the authentication method (default: 0)
    2. # 0 = disabled
    3. # 1 = Basic authentication
    4. # 2 = MD5 digest (the safer authentication)
    5. stream_auth_method 1
    6. # Authentication for the stream. Syntax username:password
    7. # Default: not defined (Disabled)
    8. stream_authentication pi:geheimespasswort


    Nachdem alles angepasst ist, wird die motion.conf mit STRG+O, Enter und STRG-X gespeichert und geschlossen.


    Dann wird mit

    sudo reboot

    der Zero neu gestartet. Bis ein Livebild geliefert wird, dauert es nach dem Einschalten bzw. Neustart etwa 30 Sekunden.


    Normalerweise müsste man jetzt schon ein Livebild bekommen. Wir testen das im Browser an einem Computer mit folgender Eingabe in der Adresszeile:

    http://eg-haustuer-aussen:8081 + Enter.

    Den Netzwerknamen muss man dann natürlich durch den selbst gewählten ersetzen.

    Herumexperimentieren mit den motion.conf-Einstellungen

    Bildgröße und Framerate


    Um feststellen zu können, wie viel Bildschirmauflösung und Frameraten das ganze System leisten kann, "spielen" wir nun etwas mit der Konfiguration herum. Nachdem eine Änderung gemacht ist wird der motion-Dienst neu gestartet und anschließend geprüft, wieviele CPU-Ressourcen dieser verbrät.


    Zunächst öffnen wir wieder unsere Konfiguration mit

    sudo nano /etc/motion/motion.conf

    Im Abschnitt "height" und "width" kann dann schrittweise eine höhere Auflösung getestet werden, zum Beispiel height 720 und width 1280.

    Code
    1. # Image width (pixels). Valid range: Camera dependent, default: 352
    2. width 1280
    3. # Image height (pixels). Valid range: Camera dependent, default: 288
    4. height 720
    5. # Maximum number of frames to be captured per second.
    6. # Valid range: 2-100. Default: 100 (almost no limit).
    7. framerate 10


    Nachdem die Bildschirmauflösung geändert wurde, verlassen wir die Datei mit STRG+O, Enter, STRG-X. Anschließend wird der motion-Dienst mit

    sudo service motion restart

    neu gestartet. Am Betrachtungscomputer muss man den Livestream aktualisieren (meistens Taste F5), damit dieser wieder startet und aktuelle Bilder liefert.


    Wichtig: Bei mir ist es so, dass motion nur offizielle Auflösungen unterstützt (wie z. B. 1280x720). Werte die dazwischen liegen oder "krumm" sind (z. B. 1597x889), werden nicht akzeptiert und der motion-Dienst startet nicht (feststellbar mit dem Befehl "top", siehe nächster Absatz).


    Mit dem Befehl

    top

    lässt sich am Zero die aktuelle CPU-Auslastung anzeigen. Falls der motion-Dienst nahe an der 100-%-Marke liegt, waren die vorherigen Einstellungen zuviel des Guten, und man muss eine geringere Auflösung wählen. Auf diese Art kann man etwas mit Bildgrößen und Frameraten herumexperimentieren, bis die idealen Werte gefunden sind. Bei mir liegt die CPU-Last von "motion" mit einer gewählten Auflösung von 1280x720 und einer Framerate von 10 bei durchschnittlich 92 %. Daher verwende ich 480x320 bei 10 Frames pro Sekunde. Hier beansprucht der motion-Dienst dann nur noch ca. 15 % CPU und es bleibt auch noch für andere Aufgaben (SSH, WLAN-Upload, etc...) genug Rechenzeit übrig.




    Trotz allem ist eine Verzögerung feststellbar, vom Auftreten des realen Ereignisses vor der Kamera, bis zur Anzeige am Monitor. Ist die WLAN-Anbindung perfekt, vergeht etwa eine halbe Sekunde, bei schlechtem WLAN-Signal sind es etwa 3 bis 4 Sekunden bevor man sieht, was an der Haustür los ist.


    Empfindlichkeit der Bewegungserkennung


    Bevor man die motion.conf 20-mal öffnet und ändert, kann man die Empfindlichkeit der Bewegungserkennung auch einfacher feststellen. Dazu lassen wir uns auf dem Livebild die Variable "changed pixels" anzeigen. Dies erzeugt auf dem Webcambild eine Zahl die angibt, wieviele Pixel sich gerade ändern, wenn sich etwas durch das Bild bewegt. Ich habe mir dazu in der motion.conf einen Debugmodus gebastelt, der so ziemlich alle relevanten Werte auf das Livebild draufpackt. Der entsprechende Abschnitt der motion.conf sieht folgendermaßen aus:



    Wie man sieht, gibt es "text_right" zweimal. Je nachdem ob man nur Uhrzeit und Datum, oder alle Informationen angezeigt haben möchte, kommentiert man entweder die eine oder die andere Zeile mit ";" aus. Auf dem Webcambild sieht mein DEBUG-MODE dann folgendermaßen aus:




    Wichtig ist hier der Parameter "CHANGED PX". Man kann jetzt entweder warten, bis der Gartenigel anfängt seine Runde zu drehen, oder selbst für Pixeländerungen im Bild sorgen. Die Anzeige "CHANGED PX" behält man währenddessen (zum Beispiel am Laptop) genau im Blick und erhält so einen Richtwert für die optimale Einstellung. Bei mir hat sich "500" bewährt. Die Kamera reagiert noch nicht auf Laub oder Schattenspiele, aber auf Katzen. Dieser Wert wird dann in der motion.conf in folgendem Abschnitt eingetragen:

    Code
    1. # Threshold for number of changed pixels in an image that
    2. # triggers motion detection (default: 1500)
    3. threshold 500


    Anschließend wieder den motion-Dienst mit

    sudo service motion restart

    neu starten, und die Bewegungserkennung sollte ab jetzt zuverlässig funktionieren.

    Einrichten einer automatischen Synchronisierung zu Google Drive

    Damit, aus welchen Gründen auch immer, keine Beweismittel verloren gehen (zum Beispiel wenn der Postbote aus Langeweile den Briefkasten runterreißt), habe ich noch einen automatischen Google-Drive-Upload eingerichtet - hier sind die Daten von überall aus abrufbar und auch besser aufgehoben als auf einer nicht ganz so zuverlässigen SD-Karte, die mitsamt dem Raspberry draußen Wind und Wetter ausgesetzt ist.


    Programm herunterladen


    Nun rufen wir mit einem PC den Link https://github.com/gdrive-org/gdrive auf, scrollen runter bis zum Abschnitt "Downloads" und laden uns die Datei "gdrive-linux-rpi" auf den (ganz normalen, nicht Raspberry) Computer herunter.


    forum-raspberrypi.de/attachment/20587/


    Diese heruntergeladene Datei müssen wir jetzt auf den Raspberry schicken. Das passiert mit folgendem Befehl (Netzwerkname des Raspberrys einfach ersetzen):

    scp gdrive-linux-rpi pi@eg-haustuer-aussen:/home/pi/


    Wenn alles geklappt hat, befindet sich jetzt die Datei gdrive-linux-rpi auf unserem Raspberry im Homeverzeichnis /home/pi/.


    Aus Bequemlichkeitsgründen bzw. wegen der besseren Lesbarkeit habe ich die Datei in "gdrive" umbenannt mit:

    mv /home/pi/gdrive-linux-rpi /home/pi/gdrive


    Damit die Datei auch aufgerufen werden kann und ihre Arbeit verrichtet, wird sie mit

    chmod +x /home/pi/gdrive

    ausführbar gemacht.


    Ich bin mir jetzt nicht Hundertprozentig sicher wo die Datei gdrive hingehört, aber ich denke im Verzeichnis /usr/local/bin ist sie gut aufgehoben, weil auch die $PATH-Variable darauf zeigt und das Programm deswegen ohne Angabe eines kompletten Pfades aufgerufen werden kann. Also hin damit:

    sudo mv /home/pi/gdrive /usr/local/bin/

    Nun hat gdrive seinen Bestimmungsort erreicht und ist von nun an bereit zum Werkeln.


    gdrive und Google Drive konfigurieren


    Zunächst muss gdrive mit dem eigenen Google-Drive-Account verbunden werden bzw. die nötigen Rechte erhalten. Mit dem Befehl

    gdrive about

    startet man die Einrichtung.


    Anschließend öffnet man den angezeigten Link im Browser, erteilt Google die Zugriffsrechte, und trägt den Verifizierungscode im Terminal ein.




    Ist die Einrichtung abgeschlossen, überprüfen wir nochmal mit

    gdrive about

    die Konfiguration. Die Ausgabe sollte dann in etwa so aussehen:





    Jetzt richten wir in Google Drive einen neuen Ordner ein, in dem die Kameravideos und -fotos gespeichert werden.


    In meinem Fall habe ich folgende Verzeichnisstruktur auf Google Drive angelegt:


    /Überwachungskameras Videos und Fotos/eg-haustuer-aussen/




    Es kommen sicher noch weitere Überwachungskameras dazu, hier werden dann weitere entsprechende Unterordner auf Google Drive erstellt, zum Beispiel "eg-gartentor-eingang" oder "ug-garage-einfahrt".


    Videos aus der motion-detection automatisch auf Google Drive hochladen


    Mein Zero an der Haustür ist so programmiert, dass er täglich um Mitternacht einen Abgleich mit Google Drive macht. Sind neue Bewegungserkennungs-Videos hinzugekommen, werden diese automatisch in die Cloud hochgeladen.


    Das automatisierte Hochladen ist in zwei Teile ausgelagert:

    1. ein Skript, welches eine Verbindung zu Google Drive aufbaut und die Dateien hochlädt
    2. eine zeitgesteuerte Aufgabe, die das Skript zu festgelegten Zeiten startet

    Zunächst starten wir mit der Erstellung des Skripts. Dazu wird im Homeverzeichnis (/home/pi/) mit dem Befehl

    nano /home/pi/sync-camfiles-to-google-drive.sh

    eine leere Datei erstellt.


    Diese Datei "befüllen" wir nun so, wie im folgenden Abschnitt zu sehen. Die lange unleserliche ID in Zeile 10 teilt dem Programm gdrive mit, in welches Verzeichnis die Dateien hochgeladen werden sollen. Wie man diese ID herausfindet, wird nach dem Quellcode-Abschnitt gezeigt.

    Shell-Script
    1. #!/bin/sh
    2. # Skript überträgt neue Camvideos und Fotos, die aus der motion detection vom Dienst motion stammen, auf google drive
    3. # Aktuelles Datum und aktuelle Uhrzeit in log-Datei schreiben
    4. datum=$(date +"%d.%m.%Y %H:%M:%S")
    5. echo "\n\n\n${datum}\n###################" >> sync-camfiles-to-google-drive.log
    6. # Synchronisierung beginnen und Meldungen in log-Datei schreiben
    7. gdrive sync upload /home/pi/cam/ 1OeMNDpb9LPUGnC****************** >> sync-camfiles-to-google-drive.log


    Bei mir entspricht die ID "1OeMNDpb9LPUGnC******************" aus Zeile 10 dem Ordner "eg-haustuer-aussen" auf Google Drive. An diese ID kommt man relativ einfach mit dem Befehl

    gdrive list --query "name contains 'eg-haustuer-aussen'"

    den wir in einem zweiten Terminalfenster ausführen. Den Text "eg-haustuer-aussen" muss man dann natürlich mit dem Ordnernamen ersetzen, zu dem man die entsprechende ID haben will. Die Ausgabe sieht dann etwa so aus:




    Diese ID markieren wir mit der Maus und drücken anschließend STRG+SHIFT+C um diese zu kopieren.


    Dann wechseln wir wieder in's andere Terminal zu unserem Skript, und fügen die ID mit der Tastenkombination STRG+SHIFT+V an der entsprechenden Stelle ein.


    Mit den bereits bekannten Tastenkombinationen STRG+O, Enter, und STRG+X wird die Datei gespeichert und geschlossen. Die Log-Datei in Zeile 7 muss nicht extra erstellt werden, sondern wird vom Skript automatisch angelegt.


    Bevor das Skript gestartet werden kann, müssen wir es noch mit

    chmod +x sync-camfiles-to-google-drive.sh

    ausführbar machen.


    Nun testen wir erstmal das Skript, bevor wir es automatisiert ablaufen lassen. Dazu rufen wir es auf mit:

    ./sync-camfiles-to-google-drive.sh

    Je nachdem wieviele Dateien schon von der Kamera auf die SD-Karte geschrieben wurden, und auch je nach Internetanbindung, dauert der Uploadvorgang auch schon mal ein paar Minütchen. Wir warten geduldig ab, bis wir wieder an der Eingabeaufforderung landen. Anschließend sehen wir uns mit

    nano sync-camfiles-to-google-drive.log

    die Logdatei an, die in etwa so aussehen müsste:



    Auf Google Drive sieht das Ganze dann so aus:




    Google-Drive-Synchronisierung automatisieren


    Damit wir uns nicht immer einloggen und das Skript per Hand starten müssen, legen wir einen entsprechenden Job an, der das automatisch für uns erledigt. Zunächst rufen wir

    crontab -e

    auf.


    In die letzte Zeile tragen wir ein:

    Code
    1. # Täglich um Mitternacht Kameravideos und -Fotos mit Google Drive synchronisieren
    2. 0 0 * * * /home/pi/sync-camfiles-to-google-drive.sh

    Wichtig: Nach der letzten Zeile Enter drücken, um noch eine Leerzeile einzufügen, ansonsten zickt eventuell die Job-Ausführung.


    Gespeichert wird wieder mit STRG+O, Enter, STRG+X.


    Das war's. Von nun an werden immer Punkt Mitternacht alle neu angefallenen Videos mit Google Drive synchronisiert.

    Webcam-Livestream am Computer anzeigen

    Man kann den Livestream entweder in einem normalen Browserfenster öffnen, oder sich aber auch ein kleines Skript basteln, welches den Browser ohne Menüleiste und in minimaler Ansicht darstellt. So spart man Platz und man kann gleich mehrere Webcams auf dem Bildschirm platzsparend unterbringen.


    Wir wechseln also wieder vom Raspberry an den normalen Computer, öffnen ein Terminal, und erstellen eine leere Datei im Home-Verzeichnis:

    nano show-livestream-eg-haustuer-aussen.sh

    Das "eg-haustuer-aussen" natürlich wieder nach eigenen Vorstellungen anpassen ;-)


    Da ich ein Fan von Chrome und Chromium bin, habe ich das ganze auch über diesen Browser realisiert.


    Mit der Option --app startet der Browser in minimaler Ansicht, mit --window-size legt man die Fenstergröße fest. Der Schalter --disable-extensions schaltet alle Erweiterungen ab.

    Shell-Script
    1. #!/bin/sh
    2. /snap/bin/chromium -app=http://pi:geheimeskennwort@eg-haustuer-aussen:8081 --window-size=480,320 --disable-extensions

    "geheimeskennwort" und "eg-haustuer-aussen" müssen natürlich noch ersetzt werden.


    Und wieder das alte Lied: Speichern und schließen mit STRG+O, Enter, STRG+X.


    Jetzt noch eine ausführbare Datei draus machen:

    chmod +x show-livestream-eg-haustuer-aussen.sh


    Damit der Dateimanager "Nautilus" unter Ubuntu die sh-Datei bei einem Aufruf auch ausführt und nicht nur als Textdatei darstellt, ist folgende Anpassung nötig:

    • Nautilus öffnen
    • Auf "Dateien" und "Einstellungen" gehen
    • Im Reiter "Verhalten" bei "Ausführbare Textdateien" den Punkt "Ausführen" anwählen

    Nun sieht man nach einem Doppelklick auf die sh-Datei den Livestream der Kamera in einem kleinen Browserfenster. Und wenn es nicht gerade dunkel wäre, würde man sogar ein Bild sehen :-)





    Fernzugriff einrichten mit einer Fritz!Box (7560)

    DynDNS


    Zunächst müssen wir sicherstellen, dass wir immer Zugriff auf die externe IP-Adresse der Fritz!Box haben, die sich in der Regel alle 24 Stunden ändert. Dafür richten wir uns bei einem DynDNS-Anbieter ein Konto ein. Ich habe ddnss.de gewählt.


    Nachdem man im Dashboard "Neuen Host erstellen" gewählt hat...




    ...vergibt man einen Namen und die Domain.




    Anschließend legt man fest ob IPv4 oder v6 verwendet werden soll...




    Dann noch auf "Jetzt erstellen" klicken und der Host ist eingerichtet.




    Den Hostnamen müssen wir uns merken bzw. kopieren, diesen brauchen wir gleich für die Einrichtung der Fritz!Box.


    Fritz!Box für Fernzugriff konfigurieren


    DynDNS aktivieren


    Damit die Fritz!Box auf DynDNS-Anfragen reagiert, müssen wir ihr unseren DynDNS-Anbieter noch bekannt geben. Die Einrichtung geschieht im Menüpunkt "Freigaben" unter "DynDNS". Die Informationen, die hier rein müssen, erfährt man beim DynDNS-Anbieter. Bei DynDNS klickt man dazu auf den Schraubenschlüssel auf der rechten Seite.



    Diese Informationen müssen wir nun an der entsprechenden Stelle in der Fritz!Box eintragen und mit "Übernehmen" aktivieren:




    Kamera aus dem Internet erreichbar machen


    Zunächst wählen wir auf der Benutzeroberfläche der Fritz!Box:

    Internet / Freigaben / Gerät für Freigabe hinzufügen




    In der Dropdown-Liste oben wählen wir unseren Raspberry (in meinem Fall eg-haustuer-aussen) und klicken dann rechts unten auf die Schaltfläche "Neue Freigabe".



    Im folgenden Fenster müssen diese Einstellungen gemacht werden:

    • Portfreigabe
    • Anwendung: Andere Anwendung
    • Bezeichnung: Frei wählbar, in meinem Fall "Überwachungskamera"
    • Protokoll TCP
    • Port an Gerät: 8081 bis 8081 (je nachdem, wie es in der motion.conf eingestellt ist)
    • Port extern: Frei wählbar. Ich habe die interne IP-Adresse des Raspberry gewählt, plus eine "81" hinten dran. Weil ich weiß, dass der Raspberry unter der IP 10.0.0.206 erreichbar ist, lässt sich so der Port leicht merken. Kommen noch weitere Raspberrys hinzu, bekommen diese die Ports 20781, 20881, 20981, und so weiter. Wenn der Port außerhalb des zulässigen Bereichs ist (maximal 65535), meldet sich die Fritz!Box sowieso und meckert.



    Dann bestätigen wir mit OK, nochmals mit OK und mit "Übernehmen".


    Anschließend erscheinen folgende Einträge in der Fritz!Box:



    Raspberry per SSH aus dem Internet erreichbar machen


    Das, was wir eben für die Kamera gemacht haben, wiederholen wir nochmals für den SSH-Fernzugriff.

    Dazu klicken wir im Menüpunkt "Freigaben" und "Portfreigaben" auf den Bearbeiten-Bleistift rechts neben unserem Raspberry und wählen "Neue Freigabe".


    Im folgenden Fenster müssen diese Einstellungen gemacht werden:

    • Portfreigabe
    • Anwendung: Andere Anwendung
    • Bezeichnung: Frei wählbar, in meinem Fall "SSH"
    • Protokoll TCP
    • Port an Gerät: 22 bis 22
    • Port extern: Frei wählbar. Ich habe wieder die interne IP-Adresse des Raspberry gewählt, plus eine "22" hinten dran. Weil ich weiß, dass der Raspberry unter der IP 10.0.0.206 erreichbar ist, lässt sich so der Port leicht merken. Kommen noch weitere Raspberrys hinzu, bekommen diese die Ports 20722, 20822, 20922, und so weiter...


    Jetzt wieder OK, OK und Übernehmen klicken.


    Wir erhalten dann folgende Darstellung:




    Fertig - von nun an lässt sich der Raspberry Zero aus dem Internet erreichen, entweder um das Kamera-Livebild anzusehen, oder sich per SSH draufzuschalten um Konfigurationen vornehmen zu können.


    Das Livebild der Kamera lässt sich folgendermaßen betrachten:


    Man tippt seine DynDNS-Adresse, gefolgt vom Port, in die Adresszeile des Browsers ein, zum Beispiel:

    mein-gewählter-hostname.ddnss.org:20681


    Da ich in der motion.conf meine Webcam mit Benutzername und Passwort gesichert habe, tippen wir diese beiden Zeilen noch ein:




    Wenn die Kamera jetzt nicht zu Testzwecken im Dachboden, sondern außen an der Tür hängen würde, wäre auch das Livebild das Richtige 8o




    Fernzugriff auf den Raspberry mit SSH


    Da ich kein Windows-Fan (mehr) bin, zeige ich den Fernzugriff am Beispiel von Linux bzw. Ubuntu.


    Man öffnet am Computer an einem x-beliebigen Standort auf der Welt ein Terminal (STRG+ALT+T) und tippt folgenden Befehl ein:

    ssh -p 20622 pi@mein-gewählter-hostname.ddnss.org


    Mit der Option "-p" teile ich der SSH-Verbindung mit, welchen Port sie benutzen soll. Die "20622" muss man dann natürlich durch den Wert ersetzen, den man in der Fritz!Box bei den Portfreigaben eingetragen hat.




    Dann noch das Raspberry-Kennwort eintippen, und wir sind drin :-)


    Viel Spaß bei der Umsetzung!


    LG

    Christian


    PS: Sobald ich wieder Zeit und Lust habe, beschreibe ich noch die Installation und Einrichtung des Überwachungsmonitors in der Wohnung.

  • Kameras sind schon ganz gut zum Abschrecken der meisten nur wer schaut sich die Aufnahmen an?

    Bester das Verbrechen nicht zu erleben als die Kerlen in den Knast zu schicken.

    Edited once, last by Herman ().

  • Auf Google Drive sieht das Ganze dann so aus:

    Verstehe ich das richtig ...?.... es werden unverschlüsselte Video-Dateien aus der Hausüberwachung hochgeladen, mit der damit einhergehenden Abtretung der Rechte an Google gemäß deren AGB's, hochgeladene Dateien weiterverwenden zu dürfen? *wow* :conf: > :stumm:

  • Das wuerde ich auch nochmals ueberdenken, mit Google Drive...


    Google Drive, Dropbox oder was auch immer, wuerde ich an deiner Stelle mit einem eigenem Server kombinieren - Seafile, Nextcloud oder halt zumindest die Daten verschluesseln.


    Am besten waere die Videos / Fotos zu einem anderen Standort schicken lassen (Freund, Familie ...). Oder halt einen weiteren Pi irgendwo versteckt im Haushalt haben, der die Daten emfpaengt und nicht gleich ersichtlich ist und gegebenenfalls mit geklaut wird.


    Persoenlich wuerde ich ebenso MotionEyeOS benutzen aber alternativen gibt's ja eh immer zu hauf. Aber koennte man vllt noch in betracht ziehen.


    Aber ansonsten Danke, fuer das Tutorial!



    Edit:

    Uiii... . Geloescht.


    Fande das waren eigentlich berechtigte Kritiken, die man annehmen kann aber ja nicht muss. Oder warum wurde das jetzt hier geloescht?

    PwOSS - Privacy with Open Source Software

    Get rid of the data collector and become your own digital hoster.


    Das Projekt ist ausgerichtet die sich fuer Privatsphaere im digitalen Bereich Interessieren und gerne mithelfen moechten.

    Edited once, last by DanSman ().

  • User3941943285344

    Changed the title of the thread from “Projektvorstellung und Anleitung: Überwachungskamera mit Pi Zero, Livestream an PC und Handy, Fernzugriff über Internet, Bewegungserkennung, automatischer Upload auf Google Drive” to “-gelöscht-”.
  • Hallo User3941943285344 !


    Warum löschst Du gleich Deinen Beitrag? Der war doch richtig gut!

    Einzig die Ablage der Daten auf Google Drive ist so eine Sache die nicht ganz ohne ist. Z.B. so wie ich Deinen Beitrag einfach wiederhergestellt habe, so hat Google auch Zugriff auf Deine privaten Daten, egal ob gelöscht oder nicht. ;)

  • User3941943285344 Sehe ich genauso wie hyle : Warum loescht Du Deinen guten Beitrag nur weil verschiedene Leute bzgl GoogleDrive Bedenken haben? Den kann man gut als Basis nehmen um seinen VideoKram auch woanders abzulegen ;)

    "Really, I'm not out to destroy Microsoft. That will just be a completely unintentional side effect." Linus Torvalds, 28.9.2003

    >>> raspiBackup: Sichere Deine Raspberry regelmäßig im laufenden Betrieb <<<

  • Eine gut beschriebene Lösung einfach zu löschen, weil ein einzelner "Typ" gravierende Vorbehalte zur Vertrauenswürdigkeit von Google hat, empfinde ich auch als kindisch. Die Lösung ist allemal als Basis tauglich, um gerade um Google einen großen Bogen machen zu können.

  • User3941943285344

    Changed the title of the thread from “-gelöscht-” to “Kameraüberwachung des Hauseingangs mit Raspberry Zero, inklusive Bewegungserkennung, Fernzugriff auf den Livestream und autom. Sicherung der Aufnahmen”.
  • Eine gut beschriebene Lösung einfach zu löschen, weil ein einzelner "Typ" gravierende Vorbehalte zur Vertrauenswürdigkeit von Google hat, empfinde ich auch als kindisch.

    Kindisch bin ich öfter mal. Ich bin Asperger-Autist und kann mit Kritik nicht umgehen. Das hat schon zu so mancher Kurzschlussreaktion geführt, so wie gestern Nacht.


    Vielen Dank für die Wiederherstellung des Beitrags.

    :danke_ATDE:


    so wie ich Deinen Beitrag einfach wiederhergestellt habe

    Vielleicht lässt sich ja auch mein früherer Benutzername wiederherstellen...? :/:love:

  • Ich finde den Beitrag auch sehr gut. Er ist so gut struktuiert das man problemlos einzelne Komponenten an eigene Bedürfnisse anpassen kann. Beispielsweise hab ich einen Raspiserver versteckt laufen.

    Vorbildliche Anleitung, finde ich.:thumbup:

  • Hallo Christian, hallo Forenbewohner,


    vielen Dank für Dein Tutorial, das ich persönlich für extrem herausragend gut halte.


    Manchmal verstehe ich @Forenkollegen Euch nicht. Da macht sich einer die Mühe, recherchiert, konzipiert, überlegt, tüftelt, programmiert, optimiert und dokumentiert ein Projekt, das in dem Umfang UND Qualität wohl seinesgleichen vergeblich sucht.


    Da ist für viele was dabei und viele Einzelaspekte sind hier vorbildlich gelöst.


    Meines Erachtens geht es hauptsächlich darum, eine Machbarkeit zu demonstrieren.

    Wer beim Raspberry Pi überzogene Sicherheitsaspekte überbetont, sollte immer bedenken, was das Teil eigentlich ist: Eine kleine Platine für rund 30 € zum Basteln und Programmieren lernen und zum Erweitern des eigenen Horizonts.


    Mir persönlich hat die Beschäftigung mit dem RPi mittlerweile mehrere Karrieresprünge ermöglicht. Aktuell leite ich bei einem Kunden eine Software-Validierungsabteilung und darf sogar selbstentwickelte Software validieren. Das macht einen Heidenspaß!


    Christian : Ich wünsche Dir von Herzen das Gleiche!


    Meiner Erfahrung nach sind Beiträge wie Deiner der Türöffner zu lukrativen Anfragen aus der Industrie...



    Beste Grüße


    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    • Icon-Tutorials (IDE: Geany) - GPIO-Library - µController-Programmierung in Icon! - ser. Devices - kein Support per PM / Konversation

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Edited once, last by Andreas ().

  • Echt Mal wieder typisch fürs Forum.. :wallbash:

    Danke Andreas , du triffst den Nagel auf den Kopf ;)


    @Themenersteller, tolles Tutorial, schön bebildert und ist schön zu lesen..

    Lass dich nicht unterkriegen. Eventuell hast du bereits welche ermuntert deine kamera nachzubauen :bravo2:

    Wenn's brennt 112 hilft weiter!

    Edited once, last by raspbastler ().

  • Von meiner Seite aus noch ein kleiner Verbesserungsvorschlag:

    Bevor die Kamera endgültig am finalen Platz montiert wird, empfehle ich eine Überprüfung der WLAN-Signalstärke mit wavemon, dieses nette Tool lässt sich mit


    sudo apt-get install wavemon

    schnell installieren und benötigt weder Einrichtung noch Konfiguration.

    Den Ablauf würde ich umdrehen, damit erst ein update/upgrade ausgeführt worden ist bevor neue Programme installiert werden, sonst kann es passieren das auf veraltete Paketquellen wavemon installiert wird.

    Außerdem bin ich mittlerweile dazu übergegangen, nur noch apt zu verwenden, und ebenfalls durch mitlesen in einigen Threads hier zur Entscheidung gekommen, nur noch full-upgrade auszführen.


    eine zeitgesteuerte Aufgabe, die das Skript zu festgelegten Zeiten startet

    Wünscht du eine weitere Verkürzung der Dauer, bis der Upload erfolgt, so kann ich dir Incron empfehlen, dortkann man Skripte anhand von Events starten.


    vielen Dank für Dein Tutorial, das ich persönlich für extrem herausragend gut halte.

    Echt Mal wieder typisch fürs Forum.. :wallbash:

    Danke Andreas, du triffst den Nagel auf den Kopf ;)

    Keiner hat das Tutorial im gesamte kritisiert und als schlecht bewertet, lediglich den Teil mit Google und das war auch nur mehr ein Hinweis auf die AGBs oder ist das nicht mehr legitim und erwünscht? :fies:

  • Es wird sich an 1. Stelle aufgegangen, nichtmal cooles Tutorial sondern direkt Kritik..


    Ich fände es auch nicht sonderlich Cool..

    Wenn's brennt 112 hilft weiter!

  • Es wird sich an 1. Stelle aufgegangen, nichtmal cooles Tutorial sondern direkt Kritik..

    Ich nehme an, Du meinst meine Reaktion auf die Google-Speicherung. Dazu möchte ich Dich um folgendes bitten... bitte verzichte künftig darauf, mir hier eine Absicht zu unterstellen, die ich -wie in #8 erkennbar ist -gar nicht habe. Ich habe das Tutorial als ganzes nicht mit einem einzigen Wort kritisiert... und zwar deshalb nicht, weil ich vor jedem gut dokumentierten und funktionierenden Projekt größten Respekt habe und davon überzeugt bin, dass gerade auch die Veröffentlichung solcher Projekte immer auch die Open-Source-Community voranbringt.


    Der Speicherort "Google" ist jedenfalls nicht das Tutorial, meiner Meinung nach noch nicht mal ein sekundärer Aspekt, sondern nur ein geradezu beliebig austauschbarer Aspekt. Drive ist allenfalls auf einer Linie mit den Alternativen einer lokalen Festplatte, einem USB-Stick, einer SDCard, einer eigenen Cloud oder dem FTP-Space auf einer Home-Page zu sehen... halt beliebig austauschbar. Und "Google" ist aufgrund seiner AGBs , die jeden Uploader hinsichtlich der Rechte auf die eigenen Uploads quasi enteignen, ein Konzern, der nach meiner Einschätzung ohne jeden Zweifel uns privaten Anwendern auf Dauer schaden wird. Ich jedenfalls hege maximales Misstrauen gegen Google & Co und würde denen freiwillig nicht mal bedrucktes Klo-Papier anvertrauen. Diese Haltung muss man nicht teilen, das soll jeder selber entscheiden.... ich bin aber der Meinung, jeder sollte seine Entscheidung aus dem Wissen heraus treffen, was da passiert... und wenn ihm dann Datenschutz und Vertrauchlichkeit egal ist, ist das für mich jedenfalls kein Problem. Und deshalb gehören solche Hinweise eben auch angehängt an ein Tutorial.... als Hinweise auf die Nebenwirkungen. Nebenwirkungen nicht zu kennen und möglicherweise hinterher 'kranker' als vorher zu sein, ist imho definitiv nicht die Lösung.