Die benötigte Software heißt Ponyprog : Software
Kategorie: Allgemein
Huawei E353
Webcamaufzeichnungen am FTP Server automatisch verschieben
Hat man so eine billige WLAN Überwachungskamera (um z.B. ein Haustier zuhause zu überwachen), dann haben diese meisstens auch eine Funktion, um bei Bewegungserkennung automaitsch Bilder auf einen FTP Server zu schreiben.
Das funktioniert einigermassen gut, allerdings wird es ganz schnell unübersichtlich (und bei >10000 Dateien in einem Verzeichnis auch sehr langsam !)
Drum hab ich ein mini-Shellscript geschrieben, welches 1x pro Stunde läuft, und die Dateien in ein Verzichnis nach folgendem Schema einsortiert :
YYYY/MM/TT
So findet man auch was, ohne regelmässig alles löschen zu müssen :
#!/bin/bash verz="FTP Verzeichnis Kamera" for v in $verz do echo $v cd $v ls *.jpg | while read f do vv=$(ls "$f" -l --time-style=full-iso | cut -d" " -f6 | tr '-' '/') mkdir -p $vv chmod 777 $(echo $vv | cut -b1-4) chmod 777 $(echo $vv | cut -b1-7) chmod 777 $vv chmod 777 "$f" mv "$f" $vv done done
Bewegungserkennung unter OpenWRT
Da meine neue Webcam zwar die Funktion hat, bei Bewegung via FTP aufzuzeichnen, diese aber offensichtlich nicht funktioniert, hab ich kurzerhand sowas nachprogrammiert.
Genau genommen hole ich so ca 1x pro Sekunde ein Bild, und vergleiche die Grösse mit dem vorigen.
Soweit klappt das ganz gut.
Der Grund, warum ich das grade auf einem Router laufen lasse ist ganz einfach:
Die Router verbrauchen bei sowas nur ganz wenig mehr Strom, als im Leerlauf.
Einige extra Pakete werden benötigt :
apt-get update
apt-get install wget wput coreutils-sleep
cat /bin/other/webcam.sh :
#!/bin/sh
o=0
cd /tmp
while(true)
do
out=$(date +“%Y-%m-%d_%H-%M-%S“).jpg
/usr/bin/wget -T 1 -t 1 -O $out „http://IPDERWEBCAM/snapshot.cgi?user=USERNAME&pwd=PASSWORT“ 2>/dev/null
if test „$?“ -eq 0
then
n=$(wc -c < $out)
if test $n -gt $o
then
let d=$n-$o
else
let d=$o-$n
fi
if test "$d" -gt 500
then
/usr/bin/wput $out ftp://USERNAME:PASSWORT@IPADRESSEFTPSERVER/VERZEICHNIS/$out
fi
o=$n
fi
rm $out
/usr/bin/sleep 0.4
done
cat /etc/init.d/webcam
#!/bin/sh /etc/rc.common
# Copyright (C) 2006-2011 OpenWrt.org
START=99
start () {
sleep 1
/bin/other/webcam.sh >/dev/null &
}
Die Dateien müssen natürlich ausführbar sein, und das Startscript muss aktiviert werden :
chmod +x /etc/init.d/webcam
chmod +x /bin/other/webcam.sh
/etc/init.d/webcam enable
reboot
Merkwürdigerweise hängt sich diese Kamera hin-& wieder auf.
Sie ist aber per http noch erreichbar, liefert aber kein Bild mehr.
Evtl. bau ich da noch was ein…
Update : hab die Kamera wieder zurückgeschickt.
Segate Goflex Net mit Debian Linux am USB Stick
Mein neuestes Spielzeug:
Segate Goflex Net mit Debian auf einem USB Stick.
Zum Testen hab ich zwei 2,5″ Festplatten reingesteckt und gespiegelt. (2 „normale“ „USB-“ Festplatten, die ich von ihrem USB-Gehäuse befreit habe. Es ist NICHT nötig, die teuren GoFlex Festplatten von Segate zu kaufen; allerdings stehen „nackte“ Festplatte ein bischen schief drin. Wenn das gut funktioniert, dann betreibe ich das aber sowieso mit 3,5″ Festlpatten.)
Eins vorweg :
Die Verlockung ist gross, das Ding umzuflashen, ohne es zu öffnen. Wg. Garantie u.Ä….
Das ist aber mit derzeit im Internet vorhandenen Anleitungen definitiv NICHT möglich. D.h. ein 3,3 V Pegelwandler für die serielle Schnittstelle ist zwingend erforderlich :
Das Schöne dabei :
Selbst dann, wenn man den Bootloader versehentlich löscht (oder mit Müll überschreibt) benötigt man kein JTAG o.ä., sonder man kann einfach (mit einem speziellen Programm) über die Serielle „booten“ und einen neuen Bootloader draufflashen. Das funktioniert wirklich !
Die je drei 12V Leitungen für die beiden SATA Ports nicht beschaltet. D.h. man muss 2 Kabel einlöten, damit man (mit SATA-Verlängerungen) auch 3,5″ Festplatten betreiben kann.
Das Netzteil müsste mit 12V/2A eigentlich bei Weitem genug Leistung dafür liefern:
Ich hab dann noch etwas dünnere Kabel genommen, das Gehäuse geht aber leider trotzdem nicht mehr ganz zu; stört aber nicht :
Was bei mir mittlerweile alles funktioniert :
*) Boot vom Stick, obwohl die Platten schon drinstecken
*) Raid (/dev/md0 mit ext4 formatiert)
*) Dateisystem (für die Daten) wird erst mit der boot.local gemountet (damit das System auch mit defektem Raid/fehlenden Festplatten hochkommt)
*) Samba
*) Apache&PHP
*) iftop iotop screen mc
*) Fixe IP Settings
*) MAC Adresse kommt vom BootROM (die korrekte)
Was leider noch NICHT funktioniert :
*) reboot -> Bleibt „hängen“ !!!!
Die Anleitungen im Internet sind recht gut, aber halt leider unvollständig bzw. funktionieren sie nicht immer.
Evtl. werd ich hier nochmal alles Wesentliche zusammenfassen.
Was nicht ganz unwesentlich ist :
Hier sind meine Datendurchsatz-Werte :
Lesen : 36MB/s
Schreiben: 26MB/s
Test-Konfiguration :
1 Festplatte WDC WD2500BEVS-22UST0
1 Festplatte TOSHIBA MK5059GSXP
Konfiguriert als Raid 1
Formatiert mit EXT4
Client : Windows7(32Bit)
Switch : TP-Link 4300 (Openwrt ATTITUDE ADJUSTMENT (12.09, r36088))