Anzeige

Am Puls von Microsoft

Anzeige

Multimedia Suche Prog. zur Speicherung von Webcam Bildern

Hubertus

treuer Stammgast
Servus zusammen,
ich oute mich als der Programmierer und System Admin der dauerhaften Illumination der Sperrmauer Edersee.

Die Anlage läuft seit der Errichtung nahezu Autark und bedarf kaum Kontrolle, trotzdem wird der Gemeinde immer wieder zugetragen, das die Beleuchtung stellenweise nicht funktioniert. Leider erfahre ich davon immer erst Tage später und habe somit keine Möglichkeit diese Aussage zu kontrollieren.

Nun kam mir der Gedanke, dass ich die verbaute und frei zugängliche Webcam ja nutzen könnte um jede Nacht ein Bild zu speichern, um zu dokumentieren ob die Anlage aktiv war. Da die Webcam immer nur Standbilder zur Verfügung stellt, die eine Stunde lang abrufbar sind, sollte das kein Problem sein. Nur möchte ich das dieses automatisch durchgeführt wird.

Daher nun meine Frage, gibt es ein Programm das jeden Tag zu einer bestimmten Zeit ein Bild aus dem Internet speichern kann?

Es geht um diesen Link bzw. das Bild:

vielen Dank für eure Hilfe!
 
Zuletzt bearbeitet:
Anzeige
Windows 10 bringt von Haus aus curl mit. Damit kann man an der Kommandozeile oder in einer Powershell Dateien einfach herunterladen.


Das könnte man jetzt mit Powershell etwas verschönern und den Namen des heruntergeladenen Files mit dem aktuellen Datum versehen.

$Date = Get-Date -Format yyyyMMdd
$OutputFile = "Bild"+$Date+".jpg"
curl https://pss.wsv.de/wsahmue/WebCam-Edersee-02-Aktuell/current.jpg --output $OutputFile

Das dann einfach als .ps1 speichern und per Aufgabenplanung einmal täglich ausführen.

Alternativ kann man das Datumsformat um die Uhrzeit erweitern und es dann stündlich oder so ausführen.
$Date = Get-Date -Format yyyyMMddHHmm
$OutputFile = "Bild"+$Date+".jpg"
curl https://pss.wsv.de/wsahmue/WebCam-Edersee-02-Aktuell/current.jpg --output $OutputFile
 
Zuletzt bearbeitet:
Oh das muss ich mir doch später mal am Rechner ansehen. Klingt vielversprechend-auch wenn ich mit Curl noch keine Erfahrungen habe. Danke schonmal für diesen Lösungsansatz. Wie kann ich den Speicherort definieren?
 
Der Parameter bei curl heißt -o oder --output.

Du kannst -o auch als -outputtputt schreiben. Oder -omannomann, denn alles nach -o wird ignoriert.
-outfile ist also nur länger als -o, bewirkt aber sicherlich nichts anderes und ist auf gar keinen Fall "besser".

Sinnvoller ist es, bei den offiziellen Parametern zu bleiben. Also -o oder --output.
 
Du magst ja recht haben - ich kann nicht programmieren.

Wieso behauptest du dann einfach, irgendetwas würde anders "besser" funktionieren?

Auch bei format mußte ich etwas ändern.

Und warum musstest du das? Das funktioniert exakt so, wie ich es geschrieben hatte.

1624110321465.png


Es gibt auch mit Powershell oftmals mehrere Wege zum Ziel.

Solange man im Format keine Leer- oder Sonderzeichen hat, muss man es nicht in Anführungszeichen setzen. Kann man zwar, muss man aber nicht.
 
Wieso behauptest du dann einfach, irgendetwas würde anders "besser" funktionieren?
Das war nur eine freundliche Umschreibung von "Dein Script funktioniert nicht".

Zu format:
das hintere MM muß mm geschrieben werden, sonst bekommst Du immer nur 2021061506 als Antwort.

Ich will mich nicht mit Dir streiten - ich kann wirklich nicht programmieren. Aber Scripte überprüfen und mir die Fehlermeldungen anzeigen lassen, das bringe ich zustande.
 
Das war nur eine freundliche Umschreibung von "Dein Script funktioniert nicht".

Du hast das konkret auf den Parameter -o bezogen, welcher halt -o oder --output lautet, wie die Onlinehilfe auch anzeigt.

Zu format:
das hintere MM muß mm geschrieben werden, sonst bekommst Du immer nur 2021061506 als Antwort.

Das stimmt tatsächlich. Das war ein Fehler meinerseits, ich hab nicht genau auf die Minuten geschaut.
Hab es oben transparent korrigiert.
 
Soo jetzt sitze ich am Rechner und habe Powershell als Admin offen und habe die Zeilen nacheinander in die Powershell eingefügt.... bekomme aber bei der letzten Zeile einen Fehler

ich habe da so jetzt eingegeben:

PS C:\Windows\system32> $Date = Get-Date -Format yyyyMMdd
PS C:\Windows\system32> $OutputFile = "C:\Bilder" +$Date+".jpg"
PS C:\Windows\system32> curl https://pss.wsv.de/wsahmue/WebCam-Edersee-02-Aktuell/current.jpg --output $OutputFile
Invoke-WebRequest : Es wurde kein Positionsparameter gefunden, der das Argument "--output" akzeptiert.
In Zeile:1 Zeichen:1
+ curl https://pss.wsv.de/wsahmue/WebCam-Edersee-02-Aktuell/current.jpg ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: :)) [Invoke-WebRequest], ParameterBindingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.InvokeWebRequestCommand

PS C:\Windows\system32>

EDIT:

Ahh okay mit dem Befehl von @PeteM92 wirft er mir ein Bild raus - ohne Fehleranzeige - nur nicht in den Ordner Bilder sondern ins Hauptverzeichnis c:\

PS C:\Windows\system32> $Date = Get-Date -Format yyyyMMdd
PS C:\Windows\system32> $OutputFile = "c:\Bilder"+$Date+".jpg"
PS C:\Windows\system32> curl https://pss.wsv.de/wsahmue/WebCam-Edersee-02-Aktuell/current.jpg -outfile $OutputFile
PS C:\Windows\system32>

Den kleinen Fehler konnte ich aber durch zufügen eines \ hinter Bilder beheben

Und wie kann ich diese Powershell dann speichern für die Aufgabenplanung?

OK das mit dem speichern hab ich auch...muß dafür Powershell ISE starten.
Bin gespannt ob das funktioniert.
Ich werde berichten
 
Zuletzt bearbeitet:
Du hast beim ersten Versuch ein Leerzeichen hinter "C:\Bilder" gepackt und den \ vergessen. Deswegen funktioniert es nicht.

Lass das bitte mit "-outfile". Der Parameter heißt -o oder --output.
Der Befehl von Pete ist Unsinn. Ich hatte ja gehofft, dass Pete das genauso entfernt wie ich meinen Fehler, damit sich der Unsinn nicht noch verbreitet... :(

Speichere die drei Zeilen in eine Datei, nenne sie Download.ps1 oder wie du willst und rufe sie in der Aufgabenplanung auf.

$Date = Get-Date -Format yyyyMMdd
$OutputFile = "C:\Bilder\"+$Date+".jpg"
curl https://pss.wsv.de/wsahmue/WebCam-Edersee-02-Aktuell/current.jpg --output $OutputFile

Eine neue Aufgabe bauen, als Aktion ein Programm starten. Powershell eingeben, als Parameter den Pfad zur Download.ps1 Datei.

1624115552550.png


Dazu muss in der Powershell als Admin einmal auf dem PC vorher der Befehl

Set-ExecutionPolicy -ExecutionPolicy Unrestricted

ausgeführt werden, um das Ausführen von Scripts zu erlauben.
 
@IngoBingo,
Du hast nachträglich ohne jeden Hinweis Deinen Post #2 verändert. Das entspricht nicht den Gepflogenheiten in diesem Forum.
Ich mache das nicht. Leser dieses Posts können ja Deine Richtigstellung berücksichtigen.
 
Anzeige
Oben