Tibbs 10 Geschrieben 16. März 2016 Melden Teilen Geschrieben 16. März 2016 Hallo an alle, ich hoffe, dass mir hier jemand weiterhelfen kann. Ich habe ne Menge halbfertiger und halbpassende Infos im Internet gefunden. Leider hat mich keine davon näher an mein Ziel gebacht. Gegeben: - Mobotix IP-Kamera mit 2x Input und 2x Output - NAS-Server - Windows PC (Betriebssystem egal, da können wir alles einsetzen was uns hilft) Wenn die Kamera ein Bild auf einem speziellen Ordner auf dem NAS speichert, wird durch ein Windows Tool (z.B. Directory Monitor o.ä.) eine Aktion ausgelöst. In dieser Aktion kann man z.B. eine .bat .cmd .exe o.ä ausführen. Durch diese Datei soll ein Befehl an die Kamera gesendet werden, damit diese Ihren Output1 schaltet um eine Kontrollleuchte zu aktivieren. Es gibt zwei mögliche Befehle auf die die Kamera reagiert: 1. Netzwerkmeldung: Empfänger: 192.168.1.206 Port: 8000 Text: cam1-ok Mein Problem ist, dass ich es nicht hinbekommen habe von einem Windows PC eine passende Nachricht z.B. per Eingabe im cmd Fenster zu senden. alternative: 2. Http-request (wenn ich im Browser folgendes eingebe schaltet die Kamera wie gewünscht) http://192.168.1.206/control/rcontrol?action=sigout&name=Out1 Mein Problem hier ist, dass ich es nicht hinbekomme diesen Befehl zu verschicken, ohne ein Browserfenster zu öffnen. Hierbei habe ich auch schon eine Batch Datei erstellt in der ich die Url im Browser öffne und den Browser dann auch "kille", aber das Problem ist, dass später im fertigen System bis zu 20 Kameras gleichzeitig überwacht werden sollen und in diesem Fall wird es auf jedenfall zu Kollisionen kommen. Ziel: Entweder - eine Batch o.ä. mit dem Text als TCP oder - die Url ohne eine Browserfenster (bzw. ein eigenes Fenster welches sich schließt, ohne ggf. andere offene Fenster mit zu schließen) Ich hoffe, dass es eine Lösung gibt und bedanke mich bereits jetzt für die Unterstützung. Gruß Tibbs Zitieren Link zu diesem Kommentar
zahni 554 Geschrieben 16. März 2016 Melden Teilen Geschrieben 16. März 2016 Z.B. per telnet: http://stackoverflow.com/questions/13197376/is-it-possible-to-use-a-batch-file-to-establish-a-telnet-session-send-a-command Einen HTTP-Request kann man recht einfach per Powershell absetzen. https://technet.microsoft.com/en-us/library/hh849901.aspx Zitieren Link zu diesem Kommentar
Nobbyaushb 1.471 Geschrieben 16. März 2016 Melden Teilen Geschrieben 16. März 2016 Die Mobotix kann doch selber Ereignisse und Aktionen - du brauchst eigentlich nix externes dazu. Wir haben 28 davon.... Außerdem könntest du das kostenlose Mobotix-Tool verwenden. ;) Zitieren Link zu diesem Kommentar
Tibbs 10 Geschrieben 17. März 2016 Autor Melden Teilen Geschrieben 17. März 2016 @zahni: Danke für die Links. Ich werde mir diese heute noch mal ansehen und testen. @Mobbyaushb: Die Mobotix kann aber kein Ereignis auslösen, wenn das Bild erfolgreich gespeichert wurde. Somit benötige ich einen Trigger für die Kamera. Anschließend arbeitet die Kamera selbstständig weiter. Zitieren Link zu diesem Kommentar
Nobbyaushb 1.471 Geschrieben 17. März 2016 Melden Teilen Geschrieben 17. März 2016 @zahni: Danke für die Links. Ich werde mir diese heute noch mal ansehen und testen. @Mobbyaushb: Die Mobotix kann aber kein Ereignis auslösen, wenn das Bild erfolgreich gespeichert wurde. Somit benötige ich einen Trigger für die Kamera. Anschließend arbeitet die Kamera selbstständig weiter. Ich bin der Norbert und Nobbyaushb ist mein Username hier ;) Du kannst doch gleichzeitig mit dem Speichern des Bildes eine Aktion / Trigger auf der Mobitx auslösen? Welche der Modelle hast du? ;) Zitieren Link zu diesem Kommentar
Tibbs 10 Geschrieben 17. März 2016 Autor Melden Teilen Geschrieben 17. März 2016 das Modell steht noch nicht ganz fest, ist aber eigentlich auch egal, da alle die gleichen Möglichkeiten bieten. Wenn alles passt wird es eine c25. Das ich das Speichern und den Output gleichzeitig antriggern kann ist klar, aber dann weiß ich nur, dass die Kamera das Bild zum speichern rausschickt, aber noch nicht, ob das Bild auf dem Server auch angekommen ist. Normalerweise übernimmt das die Speicherausfallüberwachung. In diesem Fall (FTP) funktioniert diese Funktion aber leider nicht. Zitieren Link zu diesem Kommentar
Nobbyaushb 1.471 Geschrieben 17. März 2016 Melden Teilen Geschrieben 17. März 2016 (bearbeitet) Dann nehme eine Monitoring-Lösung, die Kamera und den share überwacht. Machen wir on-top mit dem prtg von Paessler. Bis 100 Sensoren kostenlos. Ach, nochwas - die Mobotix kannst du zusätzlich mit SD-Karte ausstatten, so werden da Bilder zwischengespeichert, falls der FTP offline ist. Ggf. ist auch die Speicherung als Motion-JPEG (Format von Mobitx) besser, so sieht man Bewegungen flüssiger. Wollt ihr als Software das Controlcenter verwenden? bearbeitet 17. März 2016 von Nobbyaushb Zitieren Link zu diesem Kommentar
Tibbs 10 Geschrieben 17. März 2016 Autor Melden Teilen Geschrieben 17. März 2016 Z.B. per telnet: http://stackoverflow.com/questions/13197376/is-it-possible-to-use-a-batch-file-to-establish-a-telnet-session-send-a-command Einen HTTP-Request kann man recht einfach per Powershell absetzen. https://technet.microsoft.com/en-us/library/hh849901.aspx Hallo Zahni: kannst du mir evtl. etwas detailierter helfen. Irgendwie habe ich hier glaube ich Verständnissprobleme. Es fängt irgendwie schon damit an, dass ich nicht kapiere welche Grundlagen ich für die o.g. Anleitungen brauche. Schreibe ich die Befehle einfach in eine Datei die ich dann ausführe, welche Dateiendung benötige ich, muss ich zusatzsoftware installieren, usw. ? Ich kann mir irgendwie nicht vorstellen, dass es so schwer sein soll ein einzelnes Wort ins Netzwerk an eine bestimmte IPAdresse zu senden. Mir wurde gesagt, dass es evtl. auch mit dem "net send" Befehl funktionieren kann, aber auf diesem Weg kam ich leider auch nicht zum Erfolg. @Nobbyaushb: Dann würde ich aber auch nur Rückmeldungen an z.b. den Administrator bekommen, wenn es einen Fehler gibt. Die Arbeiten die die Kamera würden dann aber weiter gehen und nicht dokumentiert werden. Wir benötigen definitiv eine Bestätigungsmeldung wenn das Bild erfolgreich gespeichert wurde, denn erst dann kann der Arbeitsschritt abgeschlossen werden und der nächste beginnen. Zitieren Link zu diesem Kommentar
zahni 554 Geschrieben 17. März 2016 Melden Teilen Geschrieben 17. März 2016 Hm, wie man ein Powershell-Script schreibt und aufruft. kann man sich "ergooglen".... Zitieren Link zu diesem Kommentar
Tibbs 10 Geschrieben 18. März 2016 Autor Melden Teilen Geschrieben 18. März 2016 Danke für den Hinweis... nciht mit dem googlen sondern mit Powershell... irgendwie war ich noch bei vbs bzw. batch :D Mit Powershell hatte ich noch nichts zu tun, aber das Rad wurde ja nicht neu erfunden, von daher denke ist, dass ich mit den Grundlagen zurecht kommen werde. Falls ich detailfragen zu dem Script habe werde ich mich hier wieder melden. Danke noch mal an zahni und Nobbyaushb für die Unterstützung bis hier her. Zitieren Link zu diesem Kommentar
zahni 554 Geschrieben 18. März 2016 Melden Teilen Geschrieben 18. März 2016 (bearbeitet) Hm, einen Dreizeiler in Powershell ist so ein Problem? Z.B. $client = new-object System.Net.WebClient$client.UseDefaultCredentials = "true" (oder false, oder was auch immer, Doku lesen)$client.DownloadFile( "http://myserver/wichtigeurl","Antwort vom server.html" ) bearbeitet 18. März 2016 von zahni Zitieren Link zu diesem Kommentar
Tibbs 10 Geschrieben 18. März 2016 Autor Melden Teilen Geschrieben 18. März 2016 (bearbeitet) Hm, einen Dreizeiler in Powershell ist so ein Problem? Z.B. $client = new-object System.Net.WebClient $client.UseDefaultCredentials = "true" (oder false, oder was auch immer, Doku lesen) $client.DownloadFile( "http://myserver/wichtigeurl","Antwort vom server.html" ) irgendwie verstehe ich nicht so richtig was du mir mit dieser Aussage mitteilen willst. Ich will ja nichts runterladen. Ich will ja lediglich einen String bzw. ein http-request senden Ich dachte mir jetzt ich könnte evtl. mit Invoke-WebRequest -Uri http://192.168.1.206/control/rcontrol?action=sigout"&"name=Out1 Denn das ist die URL die die gewünschte Funktion über den Browser ausführt. Aber irgendwie habe ich die Befürchtung, dass ich mir das zu einfach vorgestellt habe. Den Link mit dem telnet habe ich mir auch noch mal angesehen, glaube aber, dass es mir nicht wirklich etwas bringt, da die Kamera kein telnet unterstützt. bearbeitet 18. März 2016 von Tibbs Zitieren Link zu diesem Kommentar
zahni 554 Geschrieben 18. März 2016 Melden Teilen Geschrieben 18. März 2016 Du willst http://192.168.1.206/control/rcontrol?action=sigout&name=Out1 aufrufen. Warum genau geht meine beispielhafte Lösung nicht? Zitieren Link zu diesem Kommentar
Tibbs 10 Geschrieben 18. März 2016 Autor Melden Teilen Geschrieben 18. März 2016 (bearbeitet) ich komme mir grad wieder wie ein blutiger Anfänger vor :schreck: irgendwie stehe ich komplett auf dem Schlauch oder ich habe irgendwelche Grundlagen überlesen oder nicht verstanden. ich habe deinen Lösungsvorschlag probiert und meine Url eingefügt. $client = new-object System.Net.WebClient $client.UseDefaultCredentials = "true" $client.DownloadFile( "http://192.168.1.206/control/rcontrol?action=sigout&name=out1") So funktioniert es auf jeden Fall nicht. Ich hänge mich auch etwas an dem Befehl $client.DownloadFile auf. bearbeitet 18. März 2016 von Tibbs Zitieren Link zu diesem Kommentar
zahni 554 Geschrieben 18. März 2016 Melden Teilen Geschrieben 18. März 2016 (bearbeitet) Lies Dir doch mal die Doku von system.net.webclient durch oder schaue mal hier: http://learn-powershell.net/2011/02/11/using-powershell-to-query-web-site-information/ Meinen Kommentar bei $client.UseDefaultCredentials = "true" hast Du gelesen? Hier versucht der Client eine SSO-Anmeldung, was bei Deiner CAM vermutlich eher nicht geht. bearbeitet 18. März 2016 von zahni Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.