Servus,
Ich habe mir eine Pan/Tilt- Webcam zugelegt, mit der ich Wetterfotos machen will, die dann zu einem täglichen Film zusammengefasst werden. Das läuft seit einiger Zeit mit einer "stationären" Cam einwandfrei. Bei der PTZ- Cam muss ich aber vor jedem Wetterbild sicherstellen, daß die Cam in die richtige Richtung schaut.
Von der Cam wird alle 3 Minuten per wget ein Schnappschuss geholt, gespeichert und dann weiterverwurstelt.
Nun müsste ich in die Batch einen Befehl einbauen, der die Cam in Position bringt.
Hat da jemand eine Idee, wie man das per Script erledigen kann?
Per HTTP über den Browser geht das mit folgendem Befehl:
http://192.168.1.130/decoder_control.cgi?command=33&onestep=&user=xxx&pwd=yyy
wobei der Parameter"command=33" die Position angibt, die man vorher in der Cam festgelegt hat.
Ich habe auch ein PHP- Script gefunden, welches das wohl auch könnte, ich würde aber, wenn möglich, das in die Batch integrieren wollen.
Leider habe ich keinen Schimmer, wie...
Hier mal das PHP- Schnipsel:
IF ( $_IPS['SENDER']=="WebFront")
{
switch ($_IPS['VALUE'])
{
case 0:
cam_motion(31); // Position 0
break;
case 1:
cam_motion(33); // Position 1
break;
case 2:
cam_motion(35); // Position 2
break;
case 3:
cam_motion(37); // Position 3
break;
case 4:
cam_motion(39); // Position 4
break;
}
}
SetValue($_IPS['VARIABLE'],$_IPS['VALUE']);
function cam_motion($nummer)
{
$cam="192.168.001.130:80";
$ch=curl_init("http://$cam/decoder_control.cgi?command=$nummer&user=xxx&pwd=yyy");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$command=curl_exec($ch);
return($command);
}
?>
Wenn mir da mal jemand einen Tipp geben könnte, wäre das sehr schön!
Ich würde dafür wget verwenden, wie du ja schon für den Schnappschuß machst. Da einfach die URL wie in Beitrag gepostet angeben. Wenn das nicht funktioniert (wegen der Sonderzeichen), kann man die URL auch in eine Datei hinterlegen und diese Datei dann übergeben (können auch mehrere URL's sein, die dann nacheinander abgearbeitet werden).
Ein weiteres problem könnte zB die Browserkennung sein, falls davon abhängig in dem Positionierkommando der CAM unterschieden wird. Auch den kann man mit wget fälschen.
Ein Beispiel bei mir (holt die Sichtweiten von Wetter Online)...
wo_sicht="http://www.wetteronline.de/cgi-bin/cgiakttab?KEY=NIE&TYP=sichtweite&ART=tabelle&RUBRIK=akt&JJ=xxxx&MM="$dt_mon"&TT="$dt_tag"&TIME="$dt_std"00&KEY=NIE&LANG=de&SORT=2&INT=06"
wget -T 60 -t 3 -U "Mozilla/4.0" $wo_sicht -Owo_sicht.html
Servus,
ich fürchte, das wird nicht funktionieren. wget kann nur was holen, nichts "befehlen".
Die Position muss aber gesetzt werden. Evt. könnte man mit wput was machen, aber das ist eigentlich nur umgekehrt zu wget, nur eben zum Hochladen. Ich suche aber ein Befehlsinstrument...
Vermutlich recht einfach, aber wissen müsste man es :eek: :oops:...
Wenn der Parameter in der URL steht (das 'command=33'), dann wird der auch gesendet.
Ich habe es auch schon hinbekommen, eine Wettermeldung per wget an www.parhelia.de zu senden.
Aktuell mache ich das bei neuwetter.de auch so:
wget -i neuwetter_werte.wget -O neuwetter_werte.out
http://www.neuwetter.de/import/wswin_directpost.php?data=xxxx;yyyy;%28TUTC_%20--%29;%28TIME_%202014-07-24%2023:50%29;%28VERSN%201.0%29;%28TCUR_%2016.1%29;blablabla
In der Ausgabedatei .out steht dann nichts 'drin (evtl eine Meldung im Fehlerfall), brauche ich hier aber auch nicht.
Was wohl nicht so einfach geht, ist eine seperate datei (zB. ein Bild) zu senden.
...muss ich mal probieren - Danke erstmal!
Beiträge zusammengeführt, weil der Autor sich selbst geantwortet hat statt seinen letzten Beitrag zu ändern: 25.07.2014, 13:52:23
So, probiert - funktioniert (danke an Jürgen, der mit seiner Aussage "es geht" mich dazu gebracht hat, weiterzumurksen)
Falls es jemand brauchen kann, hier der Inhalt der Batch:
wget --http-user=admin --http-password=xxx 192.168.1.xxx/decoder_control.cgi?command=31
ping -n 12 192.168.1.xxx
wget -r -nH --http-user=admin --http-password=xxx 192.168.1.xxx/snapshot.cgi
del snapshot.jpg
ren snapshot.cgi snapshot.jpg
del /Q decoder_control.cgi*.*
Zu beachten ist, daß für den Admin oder einen anderen User ein Passwort gesetzt sein muss.
Im Auslieferzustand ist der Admin ohne Passwort, das funktioniert dann zwar über den Browser, aber nicht mit wget über Batch. Darüber bin ich gestolpert, weil ich der Einfachheit halber mit dem Admin ohne Passwort getestet habe. Muss man auch erst mal drauf kommen...
Noch zur Erklärung:
Das Bild der Cam nennt sich "snapshot.cgi", die Erweiterung "cgi" kennt natürlich kein Bildprogramm, daher die Umbenennung in "snapshot.jpg".
"command=31" bringt die Cam in die vorgegebene Position 1, "command=33" wäre Position 2, "command=35" Pos.3 usw.
Der Ping- Befehl ist nur dazu da, um der Cam die Zeit zur Positionierung zu verschaffen, bevor der Schnappschuss gemacht wird.
Der Befehl "del /Q decoder_control.cgi*.*" löscht die Bestätigungsdatei, daß die Cambewegung erfolgreich war. Ansonsten müllt der langsam das Laufwerk voll